House of Einherjar
AWS рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдкреНрд░реИрдХреНрдЯрд┐рд╕ рдХрд░реЗрдВ: HackTricks рдкреНрд░рд╢рд┐рдХреНрд╖рдг AWS рд░реЗрдб рдЯреАрдо рдПрдХреНрд╕рдкрд░реНрдЯ (ARTE) GCP рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдкреНрд░реИрдХреНрдЯрд┐рд╕ рдХрд░реЗрдВ: HackTricks рдкреНрд░рд╢рд┐рдХреНрд╖рдг GCP рд░реЗрдб рдЯреАрдо рдПрдХреНрд╕рдкрд░реНрдЯ (GRTE)
рдореВрд▓ рдЬрд╛рдирдХрд╛рд░реА
рдХреЛрдб
https://github.com/shellphish/how2heap/blob/master/glibc_2.35/house_of_einherjar.c рд╕реЗ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ
рдпрд╛ https://guyinatuxedo.github.io/42-house_of_einherjar/house_einherjar_exp/index.html#house-of-einherjar-explanation рд╕реЗ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ (рдЖрдкрдХреЛ tcache рднрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ)
рд▓рдХреНрд╖реНрдп
рд▓рдХреНрд╖реНрдп рд╣реИ рдХрд┐ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрддреЗ рдкрд░ рдореЗрдореЛрд░реА рдХрд╛ рдЖрд╡рдВрдЯрди рдХрд░реЗрдВред
рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ
рдЬрдм рд╣рдо рдПрдХ рдЪрдВрдХ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдПрдХ рдирдХрд▓реА рдЪрдВрдХ рдмрдирд╛рдПрдВ:
рд╕реНрдпрд╛рдирд┐рдЯреА рдЪреЗрдХреНрд╕ рдХреЛ рдЫрд▓рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдЦреБрдж рдкрд░ рдкреЙрдЗрдВрдЯ рдХрд░реЗрдВ
рдПрдХ рдмрд╛рдЗрдЯ рдУрд╡рд░рдлреНрд▓реЛ рдПрдХ рдирд▓ рдмрд╛рдЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдЪрдВрдХ рд╕реЗ рдЕрдЧрд▓реЗ рдЪрдВрдХ рддрдХ рдореЙрдбрд┐рдлрд╛рдИ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
PREV_INUSE
рдлреНрд▓реИрдЧредрдСрдл-рдмрд╛рдИ-рдирд▓ рджреБрд░реБрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЪрдВрдХ рдХреЗ
prev_size
рдореЗрдВ рдЗрд╕рдХреЗ рдФрд░ рдирдХрд▓реА рдЪрдВрдХ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рджрд░реНрд╢рд╛рдПрдВрдирдХрд▓реА рдЪрдВрдХ рдХрд╛ рдЖрдХрд╛рд░ рднреА рд╕реНрдпрд╛рдирд┐рдЯреА рдЪреЗрдХреНрд╕ рдХреЛ рдЫрд▓рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдЗрди рдЪрдВрдХреНрд╕ рдХреЛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рд╣реАрдк рд▓реАрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рд╣рдорд▓рд╛
рд╣рдорд▓рд╛рд╡рд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдПрдХ рдЪрдВрдХ рдХреЗ рдЕрдВрджрд░ рдПрдХ рдирдХрд▓реА рдЪрдВрдХ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ
fd
рдФрд░bk
рджреНрд╡рд╛рд░рд╛ рдореВрд▓ рдЪрдВрдХ рдХреА рдУрд░ рдкреЙрдЗрдВрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрд╛рдпреЛрдВ рдХреЛ рдЫрд▓рдирд╛ рд╣реЛ2 рдЕрдиреНрдп рдЪрдВрдХ (
B
рдФрд░C
) рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВB
рдореЗрдВ рдСрдл-рдмрд╛рдИ-рд╡рди рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдХреЗprev in use
рдмрд┐рдЯ рдХреЛ рд╕рд╛рдл рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░prev_size
рдбреЗрдЯрд╛ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВC
рдЪрдВрдХ рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддрдХрдиреАрдХреА рдЪрдВрдХA
рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░рдпрд╣
prev_size
рдФрд░ рдирдХрд▓реА рдЪрдВрдХA
рдореЗрдВ рдЖрдХрд╛рд░ рдХреЛ рдЫрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПредрдлрд┐рд░, tcache рднрд░рд╛ рдЬрд╛рддрд╛ рд╣реИ
рдлрд┐рд░,
C
рдХреЛ рдореБрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдирдХрд▓реА рдЪрдВрдХA
рдХреЗ рд╕рд╛рде рд╕рдореЗрдХрд┐рдд рд╣реЛ рдЬрд╛рдПрдлрд┐рд░, рдПрдХ рдирдпрд╛ рдЪрдВрдХ
D
рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдирдХрд▓реАA
рдЪрдВрдХ рдореЗрдВ рд╢реБрд░реВ рд╣реЛрдЧрд╛ рдФрд░B
рдЪрдВрдХ рдХреЛ рдХрд╡рд░ рдХрд░реЗрдЧрд╛рдпрд╣рд╛рдБ рдЖрдЗрдирд╣реЗрд░реНрдЬрд░ рдХрд╛ рдШрд░ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ
рдЗрд╕реЗ рдПрдХ рддреЗрдЬ рдмрд┐рди рд╣рдорд▓реЗ рдпрд╛ Tcache poisoning рдХреЗ рд╕рд╛рде рдЬрд╛рд░реА рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
B
рдХреЛ рдореБрдХреНрдд рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЗрд╕реЗ рддреЗрдЬ рдмрд┐рди / Tcache рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХреЗB
рдХрд╛fd
рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░ рджреЗрдВ рддрд╛рдХрд┐ рдпрд╣ рд▓рдХреНрд╖реНрдп рдкрддреЗ рдХреА рдУрд░ рдкреЙрдЗрдВрдЯ рдХрд░реЗ рдЬреЛD
рдЪрдВрдХ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВB
рд╢рд╛рдорд┐рд▓ рд╣реИ)рдлрд┐рд░, 2 mallocs рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рджреВрд╕рд░рд╛ malloc рд▓рдХреНрд╖реНрдп рдкрддреЗ рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ
рд╕рдВрджрд░реНрдн рдФрд░ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдг
рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЛ рдореБрдХреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЙрдиреНрд╣реЗрдВ рдирд▓ рдХрд┐рдпрд╛ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрдирдХреЗ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рдЕрдм рднреА рд╕рдВрднрд╡ рд╣реИред рдЗрд╕рд▓рд┐рдП рдПрдХ рдЪрдВрдХ рдЕрд╕рдВрдЪрд┐рдд рдмрд┐рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЙрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЛ рд▓реАрдХ рдХрд░рддрд╛ рд╣реИ (libc рд▓реАрдХ) рдФрд░ рдлрд┐рд░ рдПрдХ рдирдпрд╛ рд╣реАрдк рдЕрд╕рдВрдЪрд┐рдд рдмрд┐рди рдкрд░ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЙрд╕ рдкреЙрдЗрдВрдЯрд░ рд╕реЗ рдПрдХ рд╣реАрдк рдкрддрд╛ рд▓реАрдХ рдХрд░рддрд╛ рд╣реИред
strtok
рдореЗрдВ рдирд▓-рдмрд╛рдЗрдЯ рдУрд╡рд░рдлреНрд▓реЛ рдмрдЧредHouse of Einherjar рдХрд╛ рдЙрдкрдпреЛрдЧ рдУрд╡рд░рд▓реИрдкрд┐рдВрдЧ рдЪрдВрдХреНрд╕ рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ Tcache poisoning рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд░реНрдмрд┐рдЯреНрд░реЗ рд░рд╛рдЗрдЯ рдкреНрд░рд╛рдЗрдорд┐рдЯрд┐рд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
AWS рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдкреНрд░реИрдХреНрдЯрд┐рд╕ рдХрд░реЗрдВ: HackTricks рдкреНрд░рд╢рд┐рдХреНрд╖рдг AWS рд░реЗрдб рдЯреАрдо рдПрдХреНрд╕рдкрд░реНрдЯ (ARTE) GCP рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдкреНрд░реИрдХреНрдЯрд┐рд╕ рдХрд░реЗрдВ: HackTricks рдкреНрд░рд╢рд┐рдХреНрд╖рдг GCP рд░реЗрдб рдЯреАрдо рдПрдХреНрд╕рдкрд░реНрдЯ (GRTE)
Last updated