์ง๊ธ๊น์ง shellcode์ ์๋ฆฌ, ์ ์์ ๊ดํ ์ ๋ฐ์ ์ธ ๊ณผ์ ๋ค์ ํจ๊ป ์งํํด ๋ณด์์ต๋๋ค.
์ด๋ฒ ํฌ์คํ ์์๋ ์ต์ข ์ ์ผ๋ก /bin/sh, shell์ ์คํ์ํค๋ shellcode๋ฅผ ๋ง๋ค์ด๋ณด๋ฉด์ ๋ง๋ฌด๋ฆฌ๋ฅผ ํด๋ณผ๊น ํฉ๋๋ค.
eds000n.github.io/syscalls-x86.html
Linux Syscall Reference
eds000n.github.io
systemcall 11๋ฒ execve์ ์ธ์๋ฅผ ์ฐ์ ์ดํด๋ด ์๋ค.
reg | eax | ebx | ecx | edx |
type | 0xd | *filename | *argv[ ] | *envp[ ] |
value | 11(syscall ๋ฒํธ) | "/bin/sh"์ ์ฃผ์ | ๋ฐฐ์ด ["/bin/sh", NULL] ์ ์ฃผ์ | ๋ฐฐ์ด [NULL] ์ ์ฃผ์ |
filename (ebx)
์คํํ๊ณ ์ ํ๋ ํ๋ก๊ทธ๋จ, "/bin/sh"
ํ๋ก๊ทธ๋จ ๊ฒฝ๋ก๋ฅผ ์ ๋๊ฒฝ๋ก๋ ์๋๊ฒฝ๋ก๋ก ์ ํํ๊ฒ ํํํด์ผํฉ๋๋ค.
argv[ ] (ecx)
์คํ๋๋ ํ๋ก๊ทธ๋จ์ ์ ๋ฌ๋๋ argv[ ],
๋ณ๋ค๋ฅธ ์ ๋ฌ๊ฐ์ด ํ์ ์์ผ๋ฏ๋ก argv[0](์คํ ํ์ผ๋ช )์ "/bin/sh"๋ฅผ ๋ฃ์ด์ค๋๋ค.
๋ํ, NULLํฌ์ธํฐ๋ก ๋๋์ผ ํ๊ธฐ๋๋ฌธ์ ์ ๋ฌ๊ฐ์ ["/bin/sh", NULL]๊ฐ ๋๊ฒ ์ฃ .
envp[ ] (edx)
ํ๊ฒฝ๋ณ์๋ฅผ ์ค์ ํด์ค์ ์๋ ๋ถ๋ถ์ ๋๋ค.
์ด๋ํ ๋ณ๋ค๋ฅธ ์ ๋ฌ๊ฐ์ด ํ์ํ์ง ์์ผ๋ฏ๋ก, ๋ฐฐ์ด [NULL]์ ์ฃผ์๋ฅผ ๋ฃ์ด์ค์๋ค.
ํ๋ฒ ์ด์ ๋ธ๋ฆฌ ์ฝ๋ฉ์ ํด๋ณผ๊น์
ํ.. ์ ์์ ์ผ๋ก ์ ์คํ์ด ๋๋ค์.
์ถ๋ ฅ๋ shellcode๋ฅผ ์ง์ ๊ณต๊ฒฉ์ ์ด์ฉํด ๋ณด๋ฉด ์๋ง ํ๋ฅญํ๊ฒ ์์ด ์คํ๋ ๊ฒ๋๋ค.
์ง๊ธ๊น์ง shellcode๋ฅผ ๋ง๋ค์ด๋ณด๋ ๊ณผ์ ์ ํจ๊ป ํด๋ณด์์ต๋๋ค.
์ด์ ์์ผ๋ก ์์ฝ๋๋ฅผ ์ปค์คํฐ๋ง์ด์งํ ํ์๊ฐ ์ค๋ ์ํฉ์ ๋นํฉํ์ง์๊ณ ์ฐ์ฐ์ฑ ํ์๋ฉด ๋๋๋ค.
the end..
'system hacking ๐ฑ > shellocde' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
shellcode (0x2f ์์ ๊ธฐ) (0) | 2020.12.19 |
---|---|
shellcode (3) (0) | 2020.12.18 |
shellcode (2) (0) | 2020.12.18 |
shellcode (1) (0) | 2020.12.17 |