Tcache Bin Attack

рд╣реИрдХрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ

рдореМрд▓рд┐рдХ рдЬрд╛рдирдХрд╛рд░реА

Tcache bin рдХреНрдпрд╛ рд╣реИ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкреГрд╖реНрда рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:

Bins & Memory Allocations

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ Tcache рдХреЛ Glibc рд╕рдВрд╕реНрдХрд░рдг 2.26 рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

Tcache рд╣рдорд▓рд╛ (рдЬрд┐рд╕реЗ Tcache poisoning рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ) рдЬреЛ guyinatuxido рдкреЗрдЬ рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рддреЗрдЬ рдмрд┐рди рд╣рдорд▓реЗ рдХреЗ рдмрд╣реБрдд рд╣реА рд╕рдорд╛рди рд╣реИ рдЬрд╣рд╛рдВ рд▓рдХреНрд╖реНрдп рд╣реИ рдХрд┐ рдПрдХ рдореБрдХреНрдд рдЪрдВрдХ рдореЗрдВ рдмрд┐рди рдХреЗ рдЕрдВрджрд░ рдЕрдЧрд▓реЗ рдЪрдВрдХ рдХреЗ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдПрдХ рдРрд╕реЗ рдкрддреЗ рдкрд░ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░реЗрдВ рдЬреЛ рдмрд╛рдж рдореЗрдВ рдЙрд╕ рд╡рд┐рд╢реЗрд╖ рдкрддреЗ рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░реЗрдВред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдЬрдХрд▓, рдпрджрд┐ рдЖрдк рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЛ рдЪрд▓рд╛рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реЗрдЧреА: malloc(): unaligned tcache chunk detectedред рдЗрд╕рд▓рд┐рдП, рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдирдП рдкреЙрдЗрдВрдЯрд░ рдореЗрдВ рдПрдХ рд╕рдВрд░реЗрдЦрд┐рдд рдкрддрд╛ рд▓рд┐рдЦрдирд╛ рд╣реИ (рдпрд╛ рдмрд╛рдпрдирд░реА рдХреЛ рдкрд░реНрдпрд╛рдкреНрдд рдмрд╛рд░ рдЪрд▓рд╛рдирд╛ рд╣реИ рддрд╛рдХрд┐ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдкрддрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрд░реЗрдЦрд┐рдд рд╣реЛ)ред

Tcache рдЗрдВрдбреЗрдХреНрд╕ рд╣рдорд▓рд╛

рд╕рд╛рдорд╛рдиреНрдпрдд: рд╣реАрдк рдХреЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рдЪрдВрдХ рдорд┐рд▓рдирд╛ рд╕рдВрднрд╡ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЯреАрдХреИрд╢ рдмрд┐рди рдореЗрдВ рдкреНрд░рддрд┐ рдЗрдВрдбреЗрдХреНрд╕ рдЪрдВрдХ рдХреА рдорд╛рддреНрд░рд╛ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЯреАрдХреИрд╢ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд╣реЗрдб рдЪрдВрдХ рдХрд╛ рдкрддрд╛ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдгрд╡рд╢ рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ рдХрд┐ рдХрд┐рд╕реА рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд╣реЗрдб рдЪрдВрдХ рдХреЛ рдПрдХ рдЗрдЪреНрдЫрд┐рдд рдкрддреЗ рдкрд░ рдкрд╣реБрдВрдЪрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ (рдЬреИрд╕реЗ __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 рд░реЗрдкреЛ рдореЗрдВред

Last updated