Exploiting Tools
Last updated
Last updated
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unaweza kutumia hii fork ya GEF ambayo ina maagizo ya kuvutia zaidi.
Wakati wa kujaribu GDB itakuwa na anwani kidogo tofauti na zile zinazotumiwa na binary wakati inatekelezwa. Unaweza kufanya GDB iwe na anwani sawa kwa kufanya:
unset env LINES
unset env COLUMNS
set env _=<path>
Weka njia kamili ya binary
Fanya unyakuzi wa binary ukitumia njia hiyo hiyo kamili
PWD
na OLDPWD
lazima ziwe sawa wakati wa kutumia GDB na wakati wa kufanya unyakuzi wa binary
Wakati una binary iliyounganishwa kwa statically kazi zote zitakuwa za binary (na si za maktaba za nje). Katika kesi hii itakuwa vigumu kubaini mtiririko ambao binary inafuata kwa mfano kuomba pembejeo ya mtumiaji.
Unaweza kwa urahisi kubaini mtiririko huu kwa kukimbia binary na gdb hadi uombwe pembejeo. Kisha, simamisha kwa CTRL+C na tumia amri bt
(backtrace) kuona kazi zilizoitwa:
gdbserver --multi 0.0.0.0:23947
(katika IDA unapaswa kujaza njia kamili ya executable katika mashine ya Linux na katika mashine ya Windows)
Ghidra ni muhimu sana kupata offset kwa buffer overflow kutokana na taarifa kuhusu nafasi ya mabadiliko ya ndani.
Kwa mfano, katika mfano hapa chini, mtiririko wa buffer katika local_bc
inaonyesha kwamba unahitaji offset ya 0xbc
. Zaidi ya hayo, ikiwa local_10
ni cookie ya canary inaonyesha kwamba ili kuandika tena kutoka local_bc
kuna offset ya 0xac
.
&#xNAN;Rkumbuka kwamba 0x08 ya kwanza ambapo RIP imehifadhiwa inahusiana na RBP.
Get every opcode executed in the program.
gcc -fno-stack-protector -D_FORTIFY_SOURCE=0 -z norelro -z execstack 1.2.c -o 1.2 --> Kamilisha bila ulinzi &#xNAN;-o --> Matokeo &#xNAN;-g --> Hifadhi msimbo (GDB itaweza kuiona) echo 0 > /proc/sys/kernel/randomize_va_space --> Kuondoa ASLR katika linux
Ili kukamilisha shellcode: nasm -f elf assembly.asm --> rudisha ".o" ld assembly.o -o shellcodeout --> Inayoweza kutekelezwa
-d --> Disassemble executable sehemu (ona opcodes za shellcode iliyokamilishwa, pata ROP Gadgets, pata anwani ya kazi...) &#xNAN;-Mintel --> Intel sintaksia &#xNAN;-t --> Symbols jedwali &#xNAN;-D --> Disassemble all (anwani ya variable ya statiki) &#xNAN;-s -j .dtors --> sehemu ya dtors &#xNAN;-s -j .got --> sehemu ya got -D -s -j .plt --> plt sehemu iliyotafsiriwa &#xNAN;-TR --> Relocations ojdump -t --dynamic-relo ./exec | grep puts --> Anwani ya "puts" kubadilisha katika GOT objdump -D ./exec | grep "VAR_NAME" --> Anwani au variable ya statiki (hizi zimehifadhiwa katika sehemu ya DATA).
Kimbia ulimit -c unlimited
kabla ya kuanza programu yangu
Kimbia 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 ASLR, basi hii hubadilika kila wakati) for i in `seq 0 20`; do ldd <Ejecutable> | grep libc; done --> Mzunguko kuona ikiwa anwani inabadilika sana readelf -s /lib/i386-linux-gnu/libc.so.6 | grep system --> Offset ya "system" strings -a -t x /lib/i386-linux-gnu/libc.so.6 | grep /bin/sh --> Offset ya "/bin/sh"
strace executable --> Kazi zinazoitwa na executable rabin2 -i ejecutable --> Anwani ya kazi zote
Ndani ya folda ya IDA unaweza kupata binaries ambazo zinaweza kutumika kubaini binary ndani ya linux. Ili kufanya hivyo, hamasisha binary linux_server
au linux_server64
ndani ya seva ya linux na uendeshe ndani ya folda inayoshikilia binary hiyo:
Kisha, tengeneza debugger: Debugger (linux remote) --> Chaguzi za Proccess...:
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)