Exploiting Tools
Last updated
Last updated
Jifunze na zoezi la Kudukua AWS:Mafunzo ya HackTricks AWS Timu Nyekundu Mtaalam (ARTE) Jifunze na zoezi la Kudukua GCP: Mafunzo ya HackTricks GCP Timu Nyekundu Mtaalam (GRTE)
Unaweza hiari kutumia hii fork ya GEF ambayo ina maelekezo zaidi ya kuvutia.
Wakati wa kudebugi GDB itakuwa na anwani kidogo tofauti na zile zinazotumiwa na binary inapotekelezwa. Unaweza kufanya GDB iwe na anwani sawa kwa kufanya yafuatayo:
unset env LINES
unset env COLUMNS
set env _=<njia>
Weka njia kamili ya binary
Tumia mbinu ya kudukua binary kwa kutumia njia kamili
PWD
na OLDPWD
lazima ziwe sawa unapotumia GDB na unapodukua binary
Ukiwa na binary iliyolinkwa kistatiki kazi zote zitakuwa sehemu ya binary (na sio maktaba za nje). Katika kesi hii itakuwa ngumu kutambua mwendelezo ambao binary inafuata kwa mfano kuomba mwingiliano wa mtumiaji.
Unaweza kutambua mwendelezo huu kwa kutekeleza binary na gdb hadi utakapoombwa mwingiliano. Kisha, isimamishe kwa kubonyeza CTRL+C na tumia amri ya bt
(backtrace) kuona kazi zilizoitwa:
gdbserver --multi 0.0.0.0:23947
(katika IDA unahitaji kujaza njia kamili ya faili ya kutekelezwa kwenye mashine ya Linux na kwenye mashine ya Windows)
Ghidra ni muhimu sana kwa kupata offset kwa kuzidi kwa buffer kutokana na habari kuhusu nafasi ya variables za ndani.
Kwa mfano, katika mfano hapa chini, kuzidi kwa buffer katika local_bc
inaonyesha kwamba unahitaji offset ya 0xbc
. Zaidi ya hayo, ikiwa local_10
ni kuki ya canary inaonyesha kwamba kuiandika upya kutoka local_bc
kuna offset ya 0xac
.
Kumbuka kwamba 0x08 ya kwanza ambapo RIP inahifadhiwa inahusiana na RBP.
Pata kila opcode inayotekelezwa katika programu.
gcc -fno-stack-protector -D_FORTIFY_SOURCE=0 -z norelro -z execstack 1.2.c -o 1.2 --> Kupachika bila ulinzi -o --> Matokeo -g --> Hifadhi kanuni (GDB itaweza kuiona) echo 0 > /proc/sys/kernel/randomize_va_space --> Kulegeza ASLR katika linux
Kupachika shellcode: nasm -f elf assembly.asm --> rudisha ".o" ld assembly.o -o shellcodeout --> Inatekelezeka
-d --> Disassemble sehemu za utekelezaji (angalia opcodes ya shellcode iliyopachikwa, pata ROP Gadgets, pata anwani ya kazi...) -Mintel --> Sintaksia ya Intel -t --> Jedwali la alama -D --> Disassemble zote (anwani ya kipengee tuli) -s -j .dtors --> sehemu ya dtors -s -j .got --> sehemu ya got -D -s -j .plt --> sehemu ya plt iliyopachikwa -TR --> Uhamishaji ojdump -t --dynamic-relo ./exec | grep puts --> Anwani ya "puts" ya kuhaririwa katika GOT objdump -D ./exec | grep "VAR_NAME" --> Anwani au kipengee tuli (hizi hifadhiwa katika sehemu ya DATA).
Tekeleza ulimit -c unlimited
kabla ya kuanza programu yangu
Tekeleza sudo sysctl -w kernel.core_pattern=/tmp/core-%e.%p.%h.%t
sudo gdb --core=<path/core> --quiet
ldd executable | grep libc.so.6 --> Anwani (ikiwa na ASLR, basi hii hubadilika kila wakati) for i in `seq 0 20`; do ldd <Ejecutable> | grep libc; done --> Mzunguko wa kuona ikiwa anwani inabadilika sana readelf -s /lib/i386-linux-gnu/libc.so.6 | grep system --> Kielezo cha "system" strings -a -t x /lib/i386-linux-gnu/libc.so.6 | grep /bin/sh --> Kielezo cha "/bin/sh"
strace executable --> Kazi zilizoitwa na utekelezaji rabin2 -i ejecutable --> Anwani ya kila kazi
Ndani ya folda ya IDA unaweza kupata binaries ambazo zinaweza kutumika kudebugi binary kwenye linux. Ili kufanya hivyo hamisha binary linux_server
au linux_server64
ndani ya server ya linux na iendeshe ndani ya folda inayohifadhi binary hiyo:
Kisha, sanidi kielekezi cha kufuatilia: Kielekezi (mbali ya linux) --> Chaguo la Mchakato...:
Jifunze & zoezi la Udukuzi wa AWS:Mafunzo ya HackTricks AWS Timu Nyekundu Mtaalam (ARTE) Jifunze & zoezi la Udukuzi wa GCP: Mafunzo ya HackTricks GCP Timu Nyekundu Mtaalam (GRTE)