Tcache Bin Attack
Last updated
Last updated
AWS рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ:HackTricks рдкреНрд░рд╢рд┐рдХреНрд╖рдг AWS рд░реЗрдб рдЯреАрдо рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ (ARTE) GCP рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ: HackTricks рдкреНрд░рд╢рд┐рдХреНрд╖рдг GCP рд░реЗрдб рдЯреАрдо рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ (GRTE)
Tcache bin рдХреНрдпрд╛ рд╣реИ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкреГрд╖реНрда рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:
Bins & Memory Allocationsрд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ Tcache рдХреЛ Glibc рд╕рдВрд╕реНрдХрд░рдг 2.26 рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
Tcache рд╣рдорд▓рд╛ (рдЬрд┐рд╕реЗ Tcache poisoning рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ) рдЬреЛ guyinatuxido рдкреЗрдЬ рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рддреЗрдЬ рдмрд┐рди рд╣рдорд▓реЗ рдХреЗ рдмрд╣реБрдд рд╣реА рд╕рдорд╛рди рд╣реИ рдЬрд╣рд╛рдВ рд▓рдХреНрд╖реНрдп рд╣реИ рдХрд┐ рдПрдХ рдореБрдХреНрдд рдЪрдВрдХ рдореЗрдВ рдмрд┐рди рдХреЗ рдЕрдВрджрд░ рдЕрдЧрд▓реЗ рдЪрдВрдХ рдХреЗ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдПрдХ рдРрд╕реЗ рдкрддреЗ рдкрд░ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░реЗрдВ рдЬреЛ рдмрд╛рдж рдореЗрдВ рдЙрд╕ рд╡рд┐рд╢реЗрд╖ рдкрддреЗ рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░реЗрдВред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдЬрдХрд▓, рдпрджрд┐ рдЖрдк рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЛ рдЪрд▓рд╛рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реЗрдЧреА: malloc(): unaligned tcache chunk detected
ред рдЗрд╕рд▓рд┐рдП, рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдирдП рдкреЙрдЗрдВрдЯрд░ рдореЗрдВ рдПрдХ рд╕рдВрд░реЗрдЦрд┐рдд рдкрддрд╛ рд▓рд┐рдЦрдирд╛ рд╣реИ (рдпрд╛ рдмрд╛рдпрдирд░реА рдХреЛ рдкрд░реНрдпрд╛рдкреНрдд рдмрд╛рд░ рдЪрд▓рд╛рдирд╛ рд╣реИ рддрд╛рдХрд┐ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдкрддрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрд░реЗрдЦрд┐рдд рд╣реЛ)ред
рд╕рд╛рдорд╛рдиреНрдпрдд: рд╣реАрдк рдХреЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рдЪрдВрдХ рдорд┐рд▓рдирд╛ рд╕рдВрднрд╡ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЯреАрдХреИрд╢ рдмрд┐рди рдореЗрдВ рдкреНрд░рддрд┐ рдЗрдВрдбреЗрдХреНрд╕ рдЪрдВрдХ рдХреА рдорд╛рддреНрд░рд╛ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЯреАрдХреИрд╢ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд╣реЗрдб рдЪрдВрдХ рдХрд╛ рдкрддрд╛ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдгрд╡рд╢ рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ рдХрд┐ рдХрд┐рд╕реА рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд╣реЗрдб рдЪрдВрдХ рдХреЛ рдПрдХ рдЗрдЪреНрдЫрд┐рдд рдкрддреЗ рдкрд░ рдкрд╣реБрдВрдЪрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ (рдЬреИрд╕реЗ __malloc_hook
) рддрд╛рдХрд┐ рдлрд┐рд░ рдЙрд╕ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рдЖрдХрд╛рд░ рдХрд╛ рдЪрдВрдХ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ __malloc_hook
рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
Libc рдЬрд╛рдирдХрд╛рд░реА рд▓реАрдХ: рдЯреАрдХреИрд╢ рдХреЛ рднрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдЕрд╕рдВрдЧрдард┐рдд рд╕реВрдЪреА рдореЗрдВ рдПрдХ рдЪрдВрдХ рдЬреЛрдбрд╝рдирд╛, рдЯреАрдХреИрд╢ рдХреЛ рдЦрд╛рд▓реА рдХрд░рдирд╛ рдФрд░ рдЕрд╕рдВрдЧрдард┐рдд рдмрд┐рди рд╕реЗ рдЪрдВрдХ рдХреЛ рдкреБрдирдГ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдирд╛ рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ 8B рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рддреЗ рд╣реБрдП, рдЪрдВрдХ рд╕реЗ рджреВрд╕рд░рд╛ рдкрддрд╛ рд▓рд┐рдмреНрд╕реА рд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╡рд╢рд┐рд╖реНрдЯ рд░рдЦрдирд╛ред
Tcache рд╣рдорд▓рд╛: рдмрд╛рдЗрдирд░реА рдореЗрдВ рдПрдХ 1B рд╣реАрдк рдУрд╡рд░рдлреНрд▓реЛ рд╣реИред рдЗрд╕реЗ рдмрдбрд╝рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡рдВрдЯрд┐рдд рдЪрдВрдХ рдХреЗ рдЖрдХрд╛рд░ рд╣реЗрдбрд░ рдХреЛ рдмрдбрд╝рд╛ рдХрд░рдиреЗ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдлрд┐рд░, рдпрд╣ рдЪрдВрдХ рдореБрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕реЗ рдирдХрд▓реА рдЖрдХрд╛рд░ рдХреЗ рдЯреАрдХреИрд╢ рдЪрдВрдХреЛрдВ рдХреЗ рдЯреАрдХреИрд╢ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред рдлрд┐рд░, рд╣рдо рдПрдХ рдЪрдВрдХ рдЖрд╡рдВрдЯрд┐рдд рдХрд░реЗрдВрдЧреЗ рдЬрд┐рд╕рдореЗрдВ рдирдХрд▓реА рдЖрдХрд╛рд░ рд╣реЛрдЧрд╛, рдФрд░ рдкрд┐рдЫрд▓рд╛ рдЪрдВрдХ рд╡рд╛рдкрд╕ рдЬрд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рдЪрдВрдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЫреЛрдЯрд╛ рдерд╛ рдФрд░ рдпрд╣ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ рдХрд┐ рдореЗрдореЛрд░реА рдореЗрдВ рдЕрдЧрд▓реЗ рдЪрдВрдХ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
рд╣рдо рдЗрд╕рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рдЕрдЧрд▓реЗ рдЪрдВрдХ рдХрд╛ FD рдкреЙрдЗрдВрдЯрд░ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП malloc_hook
рдХреЛ рдкреЙрдЗрдВрдЯ рдХрд░реЗрдВ, рддрд╛рдХрд┐ рдлрд┐рд░ рджреЛ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ: рдкрд╣рд▓рд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреЙрдЗрдВрдЯрд░ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдЕрднреА рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рджреВрд╕рд░рд╛ рдЖрд╡рдВрдЯрди malloc_hook
рдореЗрдВ рдПрдХ рдЪрдВрдХ рд▓реМрдЯрд╛рдПрдЧрд╛ рдЬрд┐рд╕реЗ рд╣рдо рдПрдХ рд╡рди рдЧреИрдЬреЗрдЯ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рджреБрд░реБрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
Libc рдЬрд╛рдирдХрд╛рд░реА рд▓реАрдХ: рдпрд╣рд╛рдВ рдПрдХ рдпреВрдЬ рдмрд╛рдж рдореЗрдВ рдлреНрд░реА рдФрд░ рдбрдмрд▓ рдлреНрд░реА рд╣реИред рдЗрд╕ рд░рд╛рдЗрдЯрдЕрдк рдореЗрдВ рд▓реЗрдЦрдХ рдиреЗ рдПрдХ рдЪрдВрдХ рдХреЗ рдкрддреЗ рдХреЛ рдПрдХ рдЫреЛрдЯреЗ рдмрд┐рди рдореЗрдВ рд░рдЦреЗ рдЧрдП рдПрдХ рдЪрдВрдХ рдХреЗ рдкрддреЗ рдХреЛ рдкрдврд╝рдХрд░ рд▓рд┐рдмреНрд╕реА рдХрд╛ рдкрддрд╛ рд▓реАрдХ рдХрд┐рдпрд╛ред
Tcache рд╣рдорд▓рд╛: рдПрдХ Tcache рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбрдмрд▓ рдлреНрд░реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рд╣реА рдЪрдВрдХ рджреЛ рдмрд╛рд░ рдореБрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЯреАрдХреИрд╢ рдореЗрдВ рдЪрдВрдХ рдЦреБрдж рдХреЛ рдкреЙрдЗрдВрдЯ рдХрд░реЗрдЧрд╛ред рдлрд┐рд░, рдЗрд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рдХрд╛ FD рдкреЙрдЗрдВрдЯрд░ рдлреНрд░реА рд╣реБрдХ рдХреЛ рдкреЙрдЗрдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдлрд┐рд░ рдпрд╣ рдлрд┐рд░ рд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рддрд╛рдХрд┐ рд╕реВрдЪреА рдореЗрдВ рдЕрдЧрд▓рд╛ рдЪрдВрдХ рдлреНрд░реА рд╣реБрдХ рдореЗрдВ рд╣реЛред рдлрд┐рд░, рдпрд╣ рднреА рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ system
рдХрд╛ рдкрддрд╛ рдпрд╣рд╛рдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдЬрдм "/bin/sh"
рд╢рд╛рдорд┐рд▓ malloc
рдХрд┐рдпрд╛ рдЬрд╛рдП, рддреЛ рд╣рдореЗрдВ рдПрдХ рд╢реИрд▓ рдорд┐рд▓реЗред
рдпрд╣рд╛рдВ рдореБрдЦреНрдп рджреЛрд╖ рд╣реИ рдХрд┐ рд╣реАрдк рдореЗрдВ рдХрд┐рд╕реА рднреА рдкрддреЗ рдХреЛ рдлреНрд░реА
рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
Tcache рдЗрдВрдбреЗрдХреНрд╕ рд╣рдорд▓рд╛: рдПрдХ рдРрд╕реЗ рдЖрдХрд╛рд░ рдХрд╛ рдЪрдВрдХ рдЖрд╡рдВрдЯрд┐рдд рдФрд░ рдореБрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЯреАрдХреИрд╢ рдЪрдВрдХ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдЯреАрдХреИрд╢ рдмрд┐рдиреЛрдВ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╡рд╛рд▓рд╛ рдЪрдВрдХ) рдЬрд┐рд╕рд╕реЗ рдПрдХ рдорд╛рди 0x100 рдХреЗ рдорд╛рди рд╡рд╛рд▓рд╛ рдкрддрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧрд╛ред рдпрд╣ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЯреАрдХреИрд╢ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рд╣рд░ рдмрд┐рди рдореЗрдВ рдЪрдВрдХреЛрдВ рдХреА рдорд╛рддреНрд░рд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдПрдХ рдЪрдВрдХ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдорд╛рди 0x100 рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
рдлрд┐рд░, рдпрд╣ рдорд╛рди рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ рдХрд┐ 0x100 рдХреЗ рдЖрдХрд╛рд░ рдХрд╛ рдПрдХ рдЪрдВрдХ рд╣реИред рдЗрд╕ рдкрддреЗ рдХреЛ рдлреНрд░реА
рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдпрд╣ рддрдм рдЯреАрдХреИрд╢ рдореЗрдВ рдЖрдХрд╛рд░ 0x100 рдХреЗ рдЪрдВрдХреЛрдВ рдХреЗ рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдЙрд╕ рдкрддреЗ рдХреЛ рдЬреЛрдбрд╝ рджреЗрдЧрд╛ред
рдлрд┐рд░, рдЖрдХрд╛рд░ 0x100 рдХрд╛ рдПрдХ рдЪрдВрдХ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдирд╛, рдкрд┐рдЫрд▓рд╛ рдкрддрд╛ рдПрдХ рдЪрдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рдЕрдиреНрдп
рд╣рдорд╛рд░реЗ рд╕рд╛рде рдЬреБрдбрд╝реЗрдВ ЁЯТм Discord рд╕рдореВрд╣ рдпрд╛ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд╕рдореВрд╣ рдореЗрдВ рдпрд╛ рд╣рдореЗрдВ Twitter ЁЯРж @hacktricks_live** рдкрд░ рдлреЙрд▓реЛ рдХрд░реЗрдВред**
рд╣реИрдХрд┐рдВрдЧ рдЯреНрд░рд┐рдХреНрд╕ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ, PR рдЬрдорд╛ рдХрд░рдХреЗ HackTricks рдФрд░ HackTricks Cloud github рд░реЗрдкреЛ рдореЗрдВред