๐ Introduction
Command Injection์ ์ดํ๋ฆฌ์ผ์ด์ ์ด systemcall ๋ฑ OS command๋ฅผ ์ฌ์ฉํ๋ ๋ถ๋ถ์ด ์๊ฑฐ๋, application๋จ์์ ๋ณ๋์ command๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ ๊ฒฝ์ฐ ๊ณต๊ฒฉ์๊ฐ Injection์ ํตํด ์๋ํ ๋ช ๋ น์ ์ํํ๋ ๊ณต๊ฒฉ ๊ธฐ๋ฒ์ ์๋ฏธํฉ๋๋ค.
๐ก Offensive techniques
Detect
์์ค์ฝ๋๋ฅผ ๋ณผ ์ ์๋ Whitebox๋ Graybox ํ ์คํ ์์ exec ๋ฑ command ์ฒ๋ฆฌ๋ฅผ ํ๋ ํจ์ ์์ฃผ๋ก ๋ถ์ํ๋ฉด ์ฝ๊ฒ ์ฐพ์ ์ ์์ง๋ง, ์จ์ ํ๊ฒ Blackbox ํ ์คํ ์ ํด์ผํ๋ ๊ฒฝ์ฐ ์ด ๊ตฌ๊ฐ์ ์๋ณํ๋๊ฒ ์ฝ์ง๋ ์์ต๋๋ค.
Fuzzing์ ํตํด Command Injection์ ์ํฅ์ ์ค ์ ์๋ ์์ฒญ์ ์ ์กํ๊ณ , ์ด์ ๋ฐ๋ฅธ Response์ Response-time ๋ฑ์ ๋ณด๊ณ ๋ฐฑ์๋์ Command ์ฒ๋ฆฌ๋ฅผ ํ๋ ๋ถ๋ถ์ด ์๋์ง ์๋ณํด์ผํฉ๋๋ค.
|
|
|
|
๋ฐฑ์๋์์ filename์ cli๋ก ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ ์ ํน์๋ฌธ์ ๊ตฌ๋ฌธ์ผ๋ก ์ธํด ๊ณต๊ฒฉ์๊ฐ ์๋ํ ๋ช
๋ น ping -c 5 127.0.0.1
์ด ์ํ๋๋ฉด localhost์ 5๋ฒ ping์ ๋ ๋ฆฌ๊ธฐ ๋๋ฌธ์ 5์ด์ ๋๋ ์ด๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด๋ฌํ ๊ฒฝ์ฐ Response time ๋ณด๊ณ ์ฒดํฌํ๋ฉด ์ค์ ๋ช
๋ น์ด ์ํ ๋ฌ๋์ง ์ ์ ์์ต๋๋ค.
(๊ฐ์ธ์ ์ผ๋ก Blind RCE ์ผ์ด์ค๋ ๋ง์๊ธฐ ๋๋ฌธ์ ping ์ด๋ sleep์ผ๋ก time ๊ธฐ๋ฐ ์ฒดํฌํ๋๊ฒ ๊ฐ์ฅ ์ ํํ์ต๋๋ค)
๋๋๋ก ์ด๋ค Application๋ค์ ํ๋ผ๋ฏธํฐ์์ command ์์ฒด๋ฅผ ๋ฐ๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ์ด๋ฌํ ๊ฒฝ์ฐ๋ ์ฝ๊ฒ ์๋ณ์ด ๊ฐ๋ฅํฉ๋๋ค.
|
|
Polyglot payload
|
|
Exploitation
๋ช ๋ น์ ์คํํ ์ ์๊ธฐ ๋๋ฌธ์ OS์ ์ค์์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๊ฑฐ๋, Shell์ ๋ด๋ ค์ ์ถ๊ฐ์ ์ธ ๊ณต๊ฒฉ์ ์ํํ ์ ์์ต๋๋ค. Shell์ ๋ด๋ฆฌ๋ ๋ฐฉ๋ฒ์๋ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๊ฒ ์ง๋ง, ๊ฐ๋จํ๊ฒ๋ nc ๋ฑ์ ์ด์ฉํด์ linsten ์ํจ ํ ์ ๊ทผํ์ฌ ์์ ์ฌ์ฉํ๊ฑฐ๋ Metasploit์ ์ฌ์ฉํ์ฌ ์์ ๋ด๋ฆฌ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. metasploit์ meterpreter shell์ ์ฌ์ฉํ๋ฉด ๋์ ์์คํ ์์ ๋ค์ ํ์ด๋ ํ๊ธฐ ์ข๊ธฐ ๋๋ฌธ์ ๋ง์ฝ ๋ด๋ถ ์นจํฌ๊น์ง ์งํํ๋ค๋ฉด meterpreter shell์ ์ถ์ฒํฉ๋๋ค. (๋ฌผ๋ก ๋ฐฑ์ ์ ์๊ฑธ๋ฆฌ๊ฒ payload encode๋ฅผ ์ ์ง์ผ๊ฒ ์ฃ )
Bypass protection
Bypass without space
linux
|
|
Windows
|
|
Bypass with a line return
|
|
Bypass characters filter via hex encoding
Linux
|
|
Bypass characters filter
|
|
Bypass Blacklisted words
single quote
|
|
double quote
|
|
backslash
|
|
$@
|
|
???
|
|
wildcard(*
)
|
|
Bypass system hardening (OOB)
RCE์ ์ข์ ํ์ง ๋ฐฉ๋ฒ ์ค ํ๋์ธ OOB๋ ๋๋๋ก ์์คํ ํ๋๋์ ์ํด ๋ฐฉํด๋ฐ์ ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ฒฝ์ฐ ์ฌ๋ฌ๊ฐ์ง ๋๊ตฌ๋ค์ ํตํด์ HTTP/DNS Query๊ฐ ๋ฐ์ํ๋๋ก ์ ๋ํ์ฌ ์ฐํํ๊ณ Callback์ ๋ฐ์ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ “System Hardening์ ํผํด RCE๋ฅผ ํ์งํ๊ธฐ ์ํ OOB ๋ฐฉ๋ฒ๋ค” ๊ธ์ ์ฐธ๊ณ ํด์ฃผ์ธ์.
๐ก Defensive techniques
๋ณดํต ์๋น์ค์์ systemcall ๋ฑ์ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ application libarary์ ๊ธฐ๋ฅ์ ํตํด sandbox ์ฒ๋ผ ์ฌ์ฉ์ ์ ๋ ฅ์ด ์ ์ดํ๋ก ๋์ด๊ฐ์ง ๋ชปํ๋๋ก ์ฒ๋ฆฌํ๊ฑฐ๋ ๊ณต๊ฒฉ์ ์ฌ์ฉ๋๋ ํน์๋ฌธ์๋ฅผ ํํฐ๋งํ๋ ํํ๋ก ๋์ํฉ๋๋ค.
Library protection
|
|
๋ค๋ง ๋ณดํต ์ด๋ฌํ ๊ณผ์ ์ด ๊ฐ๋ฐ์ ๋ถํธํจ์ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ๋ช
๋ น์ ์ ๋์ ์ผ๋ก ๋ฐ๋ ๊ฒฝ์ฐ ์๋์ ๊ฐ์ด bash -c
๋ฑ์ผ๋ก ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ๋ ๋ง์ต๋๋ค. (์ด๋ฌํ ๊ฒฝ์ฐ๋ ์ทจ์ฝํ๊ฒ ์ฃ )
|
|
Escape special chars
ํน์๋ฌธ์ ์ ํ์ ๊ฒฝ์ฐ ๊ณต๊ฒฉ์ ์ฃผ๋ก ์ฌ์ฉ๋๋ ํน์๋ฌธ์์ ๋ํด ์ ํํ๋ ํํ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค.
|
$
(
)
&
|
\r\n
(CRLF)>
<
-
;
- ๋ฑ
๐น Tools
๐ Articles
- https://www.hahwul.com/2018/05/26/hacking-evasion-technique-using/
- https://www.hahwul.com/2022/03/11/bypass-system-hardening-rce-oob/