4.7 KiB
WWW2Exec - .dtors & .fini_array
{% hint style="success" %}
Jifunze na zoea AWS Hacking:Mafunzo ya HackTricks AWS Timu Nyekundu Mtaalam (ARTE)
Jifunze na zoea GCP Hacking: Mafunzo ya HackTricks GCP Timu Nyekundu Mtaalam (GRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 Kikundi cha Discord au kikundi cha telegram au tufuate kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud github repos.
.dtors
{% hint style="danger" %} Leo ni kigeni sana kupata faili ya binary na sehemu ya .dtors! {% endhint %}
Waharibifu ni kazi ambazo zina tekelezwa kabla ya programu kukamilika (baada ya kazi ya main
kukamilika).
Anwani za kazi hizi zimehifadhiwa ndani ya sehemu ya .dtors
ya binary na kwa hivyo, ikiwa utaweza kuandika anwani ya shellcode katika __DTOR_END__
, hiyo itatekelezwa kabla ya programu kukamilika.
Pata anwani ya sehemu hii na:
objdump -s -j .dtors /exec
rabin -s /exec | grep “__DTOR”
Kawaida utapata alama za DTOR kati ya thamani ffffffff
na 00000000
. Kwa hivyo ikiwa unaona thamani hizo tu, inamaanisha kwamba hakuna kazi iliyoandikishwa. Kwa hivyo badilisha 00000000
na anwani ya shellcode ili kuitekeleza.
{% hint style="warning" %} Kwa hakika, kwanza unahitaji kupata mahali pa kuhifadhi shellcode ili baadaye uitee. {% endhint %}
.fini_array
Kimsingi hii ni muundo na kazi ambazo zitaitwa kabla ya programu kukamilika, kama .dtors
. Hii ni ya kuvutia ikiwa unaweza kuita shellcode yako kwa kuruka kwenye anwani, au katika hali ambapo unahitaji kurudi kwenye main
tena ili kutumia udhaifu mara ya pili.
objdump -s -j .fini_array ./greeting
./greeting: file format elf32-i386
Contents of section .fini_array:
8049934 a0850408
#Put your address in 0x8049934
Mzunguko wa milele
Ili kutumia .fini_array
kupata mzunguko wa milele unaweza angalia kilichofanyika hapa: Ikiwa una angalau vitu 2 katika .fini_array
, unaweza:
- Tumia andika yako ya kwanza kuita kazi ya andika isiyo na mpangilio tena
- Kisha, hesabu anwani ya kurudi kwenye stakabadilishwa na
__libc_csu_fini
(kazi inayoitwa na.fini_array
zote) na weka huko anwani ya__libc_csu_fini
- Hii itafanya
__libc_csu_fini
kuita yenyewe tena ikitekeleza kazi za.fini_array
tena ambayo itaita kazi ya WWW isiyo na kinga mara 2: moja kwa andika isiyo na mpangilio na nyingine kwa kubadilisha tena anwani ya kurudi ya__libc_csu_fini
kwenye stakabadilisha kuita yenyewe tena.
{% hint style="danger" %}
Tambua kwamba na Full RELRO, sehemu ya .fini_array
inafanywa kuwa soma-tu.
Katika toleo jipya, hata na [Partial RELRO] sehemu ya .fini_array
inafanywa kuwa soma-tu pia.
{% endhint %}
{% hint style="success" %}
Jifunze & zoezi la Udukuzi wa AWS:Mafunzo ya HackTricks AWS Red Team Expert (ARTE)
Jifunze & zoezi la Udukuzi wa GCP: Mafunzo ya HackTricks GCP Red Team Expert (GRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 Kikundi cha Discord au kikundi cha telegram au tufuate kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud github repos.