House of Roman
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Dit was 'n baie interessante tegniek wat RCE sonder leaks via vals fastbins, die unsorted_bin aanval en relatiewe oorskrywing moontlik gemaak het. Dit is egter gepatch.
You can find an example in https://github.com/shellphish/how2heap/blob/master/glibc_2.23/house_of_roman.c
RCE deur relatiewe punte te misbruik
Wysig fastbin en onsorted bin punte
12 bits van ewekansigheid moet gebruteforce word (0.02% kans) om te werk
Skep verskeie chunks:
fastbin_victim
(0x60, offset 0): UAF chunk wat later die heap pointer sal wys na die LibC waarde.
chunk2
(0x80, offset 0x70): Vir goeie uitlijning
main_arena_use
(0x80, offset 0x100)
relative_offset_heap
(0x60, offset 0x190): relatiewe offset op die 'main_arena_use' chunk
Dan free(main_arena_use)
wat hierdie chunk in die onsorted lys sal plaas en 'n pointer na main_arena + 0x68
in beide die fd
en bk
punte sal kry.
Nou is dit toegeken 'n nuwe chunk fake_libc_chunk(0x60)
omdat dit die punte na main_arena + 0x68
in fd
en bk
sal bevat.
Dan word relative_offset_heap
en fastbin_victim
vrygestel.
fastbin_victim
het 'n fd
wat na relative_offset_heap
wys
relative_offset_heap
is 'n offset van afstand vanaf fake_libc_chunk
, wat 'n pointer na main_arena + 0x68
bevat
Deur net die laaste byte van fastbin_victim.fd
te verander, is dit moontlik om fastbin_victim points
na main_arena + 0x68
te laat wys
Vir die vorige aksies moet die aanvaller in staat wees om die fd pointer van fastbin_victim
te verander.
Dan is main_arena + 0x68
nie so interessant nie, so laat ons dit verander sodat die pointer na __malloc_hook
wys.
Let daarop dat __memalign_hook
gewoonlik begin met 0x7f
en nulles voor dit, dan is dit moontlik om dit as 'n waarde in die 0x70
fast bin te vervals. Omdat die laaste 4 bits van die adres ewekansig is, is daar 2^4=16
moontlikhede vir die waarde om te eindig waar ons belangstel. So 'n BF-aanval word hier uitgevoer sodat die chunk eindig soos: 0x70: fastbin_victim -> fake_libc_chunk -> (__malloc_hook - 0x23)
.
(Vir meer inligting oor die res van die bytes, kyk die verduideliking in die how2heap voorbeeld). As die BF nie werk nie, val die program net in duie (so begin weer totdat dit werk).
Dan word 2 mallocs uitgevoer om die 2 aanvanklike fast bin chunks te verwyder en 'n derde een word toegeken om 'n chunk in die __malloc_hook:
te kry.
Vir meer inligting kan jy kyk:
Unsorted Bin AttackMaar basies laat dit jou toe om main_arena + 0x68
na enige plek te skryf soos gespesifiseer in chunk->bk
. En vir die aanval kies ons __malloc_hook
. Dan, nadat ons dit oorgeskryf het, sal ons 'n relatiewe oorgeskrywing gebruik om na 'n one_gadget
te wys.
Vir hierdie begin ons om 'n chunk te kry en dit in die ongeordende bin te plaas:
Gebruik 'n UAF in hierdie stuk om unsorted_bin_ptr->bk
na die adres van __malloc_hook
te wys (ons het dit voorheen brute-forced).
Let daarop dat hierdie aanval die onsortering bin korrupteer (dus klein en groot ook). So ons kan slegs toewysings van die vinnige bin gebruik (n 'n meer komplekse program mag ander toewysings doen en crash), en om dit te aktiveer moet ons die dieselfde grootte toewys of die program sal crash.
So, om die skrywe van main_arena + 0x68
in __malloc_hook
te aktiveer, voer ons uit nadat ons __malloc_hook
in unsorted_bin_ptr->bk
gestel het, ons moet net doen: malloc(0x80)
In die eerste stap het ons 'n stuk beheer wat __malloc_hook
bevat (in die veranderlike malloc_hook_chunk
) en in die tweede stap het ons daarin geslaag om main_arena + 0x68
te skryf.
Nou, ons misbruik 'n gedeeltelike oorskrywing in malloc_hook_chunk
om die libc adres wat ons daar geskryf het (main_arena + 0x68
) te gebruik om na 'n one_gadget
adres te wys.
Hier is waar dit nodig is om 12 bits van ewekansigheid te brute-force (meer inligting in die how2heap voorbeeld).
Laastens, een keer die korrekte adres oorgeskryf is, noem malloc
en aktiveer die one_gadget
.
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)