유용한 명령어 및 스크립트
유용한 명령어 및 스크립트
scan these directories for items of interest e.g. unusual exe, dll, bat, lnk etc files with:
dir /s /b %localappdata%\*.exe | findstr /e .exe
dir /s /b %appdata%\*.exe | findstr /e .exe
dir /s /b %localappdata%\*.dll | findstr /e .dll
dir /s /b %appdata%\*.dll | findstr /e .dll
dir /s /b %localappdata%\*.bat | findstr /e .bat
dir /s /b "%appdata%\Microsoft\Windows\Start Menu\Programs\Startup\" | findstr /e .lnk
dir /s /b "C:\Users\Public\" | findstr /e .exe
dir /s /b "C:\Users\Public\" | findstr /e .lnk
dir /s /b "C:\Users\Public\" | findstr /e .dll
dir /s /b "C:\Users\Public\" | findstr /e .bat
Scan for malware with Windows Defender
"%ProgramFiles%\Windows Defender\MpCmdRun.exe" -Scan -ScanType 1
"%ProgramFiles%\Windows Defender\MpCmdRun.exe" -Scan -ScanType 2
"%ProgramFiles%\Windows Defender\MpCmdRun.exe" -Scan -ScanType 3 -File C:\Users\[username]\AppData\Local\Temp
Check running executables for malware via VirusTotal
PS F:\temp> foreach ($process in Get-WmiObject win32_process | where {$_.ExecutablePath -notlike ""}) {Invoke-RestMethod -Method 'POST' -Uri 'https://www.virustotal.com/vtapi/v2/file/report' -Body @{ resource =(Get-FileHash $process.ExecutablePath | select Hash -ExpandProperty Hash); apikey = "바이러스토탈 API Key"}}
바이러스토탈은 원래 유료이며 무료는 분석(조회) 건수 제한이 있습니다.
List of IPV4 addresses who have connected (RDP)
Get-WinEvent -Log 'Microsoft-Windows-TerminalServices-LocalSessionManager/Operational' | select -exp Properties | where {$_.Value -like '*.*.*.*' } | sort Value -u
List Alternate Data Streams in current Dir and view them
gi * -s *
gc [FILENAME] -s [ADSNAME]
Locate BITSAdmin Persistence
bitsadmin /list /allusers /verbose
Find files without extensions
Get-ChildItem -Path C:\Users\[user]\AppData -Recurse -Exclude *.* -File -Force -ea SilentlyContinue
Obtain hash of unsigned or invalid DLLs currently loaded by processes
$A=$(foreach ($dll in gps|select -ExpandProperty modules -ea ig){Get-AuthenticodeSignature $dll.FileName |Where-Object Status -NE "Valid"|Select Path});$B=$(foreach ($dll in $A){Get-FileHash $dll.Path| select Hash -ExpandProperty Hash})|Sort-Object| Get-Unique;$B
Obtain unsigned DLL information loaded by processes
listdlls -u
Check all Appdata files for unsigned or invalid executables
Get-ChildItem -Recurse $env:APPDATA\..\*.exe -ea ig| ForEach-object {Get-AuthenticodeSignature $_ -ea ig} | Where-Object {$_.status -ine "Valid"}|Select Status,Path
Find executables and scripts in Path directories ($env:Path)
Get-Command * -Type Application | FT -AutoSize
Get-Command -Name * | FL FileVersionInfo
Find files created/written based on date date
Get-ChildItem C:\ -recurse -ea SilentlyContinue -force | where-object { $_.CreationTime.Date -match "12/25/2014"}
Get-ChildItem C:\ -recurse -ea SilentlyContinue -force | where-object { $_.LastWriteTime -match "12/25/2014"}
Get-ChildItem C:\ -recurse -ea SilentlyContinue -force | where-object { $_.CreationTime.Hour -gt 2 -and $_.CreationTime.Hour -lt 15}
USN Journal (any changes to NTFS volume)
c:\>fsutil usn readjournal F: > f-usn.txt
'Security > Malware Analyze' 카테고리의 다른 글
Tool - Loki, Simple IOC and Incident Response Scanner (0) | 2020.04.08 |
---|---|
악성코드 분석 대상 폴더 및 레지스트리 (0) | 2020.03.12 |
Loki, Simple IOC and Incident Response Scanner
사용법
F:\tool\malware\loki_0.30.6>F:\tool\malware\loki_0.30.6\loki.exe -h
IOC 및 Yara RuleSet 업데이트
F:\tool\malware\loki_0.30.6>loki-upgrader.exe
분석 수행
F:\tool\malware\loki_0.30.6>loki.exe -p f:\temp -a 1 --printall --allreasons
탐지되면 탐지 이유도 알려준다. 간단하고 좋은 도구인 것 같다.
'Security > Malware Analyze' 카테고리의 다른 글
유용한 명령어 및 스크립트 (3) | 2020.04.08 |
---|---|
악성코드 분석 대상 폴더 및 레지스트리 (0) | 2020.03.12 |
악성코드 분석 대상 폴더 및 레지스트리
악성코드가 자주 사용하는 레지스트리 경로
아래에 언급된 레지스트리는 OS 유형이나 버젼별로 또는 OS 업데이트에 따라 가변적이므로 항상 최신의 정보를 인지할 수 있도록 해야 한다.
문서를 더블 클릭할 때마다 자동으로 실행
HKCR\Wordpad.Document.[version]\shell\open\command
F:\Temp>reg query HKEY_CLASSES_ROOT\Wordpad.Document.1\shell\open\command
HKEY_CLASSES_ROOT\Wordpad.Document.1\shell\open\command
(기본값) REG_EXPAND_SZ "%ProgramFiles%\Windows NT\Accessories\WORDPAD.EXE" "%1"
cmd.exe를 /d 옵션없이 실행하면 위 경로에 설정된 실행 파일들 자동 실행
HKLM\SOFTWARE\Microsoft\Command Processor\AutoRun
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun
F:\temp>reg query "HKLM\SOFTWARE\Microsoft\Command Processor" /v AutoRun
F:\temp>reg query "HKEY_CURRENT_USER\Software\Microsoft\Command Processor" /v AutoRun
기타 설치 중 설정이나 사용자 추가에 의한 자동실행 관련
OS 부팅 시 자동 실행
F:\temp>reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Run"
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
TrustNetCert REG_SZ C:\Program Files (x86)\UNETsystem\TrustNET\NPH\TrustNetCert.exe
MagicMRS REG_SZ C:\Program Files (x86)\DreamSecurity\SmartMobileSign\Launcher.exe
CrossEXService REG_SZ C:\Program Files (x86)\iniLINE\CrossEX\crossex\CrossEXService.exe
HKU\SID\Software\Microsoft\Windows NT\CurrentVersion\Windows
HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows
Load : 시스템이 시작할 때 등록된 경로에 있는 파일이 자동으로 동작
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
HKU\SID\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
사용자가 로그인 시 등록된 경로에 있는 파일이 자동으로 동작
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Run
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Run 키에 등록된 파일은 Windows OS가 시작할 때 자동으로 실행
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RunOnce
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
RunOnce 키에 등록된 파일은 Windows OS가 시작할 때 자동으로 실행
GUI Application이 시작될 때마다 DLL을 memory 내로 Load함
현재 로그온 한 세션에서 각 어플리케이션에 의해서 로드가 되는 DLL 항목이 지정된다.
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows
F:\temp>reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows" /v AppInit_DLLs
Winlogon Notification Package
Winlogon 이벤트 핸들러를 익스포트하고 있는 dll
Winlogon은 사용자의 시스템 로그온 같은 특정이벤트 발생 시 notification package 에서 해당 이벤트의 정보를 제공하는 익스포트한 핸들러를 자동 수행한다.
HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon\Notify
F:\temp>reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Notify
시스템이벤트 연결 실행
사용자 로그온/로그오프, 화면보호기 시작 등 이벤트에 외부 기능을 차단하는 알림
HKLM\Software\Policies\Microsoft\Windows\Control Panel\Desktop\
탐색기에 연결되어 각 경우마다 자동 실행
탐색기 Explorer.exe에 연결된 쉘(Shell) 확장, BHO(Browser Helper Objects), 익스플로러 툴바(Explorer Toolbar) 목록을
레지스트리의 아래 경로에서 내용 확인
HKLM\Software\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad\
HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\ShellServiceObjects\
HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\
HKLM\Software\Classes\Drive\ShellEx\ContextMenuHandlers\
HKLM\Software\Classes\Drive\ShellEx\PropertySheetHandlers\
HKLM\Software\Classes\Drive\ShellEx\DragDropHandlers\
HKLM\Software\Classes\Drive\ShellEx\CopyHookHandlers\
HKLM\Software\Classes\Folder\ShellEx\ContextMenuHandlers\
HKLM\Software\Classes\Folder\ShellEx\PropertySheetHandlers\
HKLM\Software\Classes\Folder\ShellEx\DragDropHandlers\
HKLM\Software\Classes\Folder\ShellEx\CopyHookHandlers\
HKLM\Software\Classes\Directory\ShellEx\ContextMenuHandlers\
HKLM\Software\Classes\Directory\ShellEx\PropertySheetHandlers\
HKLM\Software\Classes\Directory\ShellEx\DragDropHandlers\
HKLM\Software\Classes\Directory\ShellEx\CopyHookHandlers\
HKLM\Software\Classes\Directory\Background\ShellEx\ContextMenuHandlers\
HKLM\Software\Classes\Directory\Background\ShellEx\PropertySheetHandlers\
HKLM\Software\Classes\Directory\Background\ShellEx\DragDropHandlers\
HKLM\Software\Classes\Directory\Background\ShellEx\CopyHookHandlers\
응용프로그램 연결 실행
응용프로그램을 실행시키면 레지스트리의 Image File Execution Options 키를 확인합니다. 만약 하위 키 값에 실행하려는 이미지가 존재하면 Debugger 값을 참조하여 해당 값에 연결되어 있는 이미지를 먼저 실행합니다.
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
F:\temp>reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options"
F:\temp>reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" /v ProcName
F:\temp>reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" /v Debugger
일반적인 AutoRun 경로
HKLM\Software\Microsoft\Windows\CurrentVersion\policies\Explorer\Run
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
HKLM\Software\Microsoft\Windows\CurrentVersion\Runonce
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKCU\Software\Microsoft\Windows\CurrentVersion\RunServices
HKCU\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
(ProfilePath)\Start Menu\Programs\Startup
SharedTaskScheduler
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\SharedTask
프로그램을 자동으로 시작 시킬 수 있는 레지스트리 중 하나. 대부분의 사용자가 사용하지 않는 기능이므로
사용되고 있다면 의심해볼 만 하다. Windows 의 Shell 프로그램인 Explorer.exe 프로세스가 로드되자마자
특정 레지스트리 항목에 지정된 dll 들을 참조하여 불러오는 형태이다.
적용되는 시스템 : Windows Vista, XP, 2000, NT
Shell\Open\Command
HKCR\exefile\shell\open\command
HKCR\batfile\shell\open\command
HKCR\comfile\shell\open\command
default value가 “.%1. %*” 인데 이 값을 “파일명 "%1" %*” 과 같이 수정된 경우 프로그램을 숨겨 자동실행하고자 함이다.
F:\temp>reg query "HKCR\exefile\shell\open\command"
HKEY_CLASSES_ROOT\exefile\shell\open\command
(기본값) REG_SZ "%1" %*
IsolatedCommand REG_SZ "%1" %*
ShellServiceObjectDelayLoad(SSODL)
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad
Undocumented 된 Windows 자동 실행방법 중 하나이다. Windows 의 Shell 프로그램인 Explorer.exe 프로세스가
시작되면 레지스트리 항목에 지정된 dll 들을 참조하여 불러온다.
SYTEM.INI / WIN.INI File
악성코드는 해당 파일 및 항목들을 조작하여 Windows 부팅시 악성코드가 자동 시작되도록 만든다
SYSTEM.INI 파일
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
사용자가 시스템에 로그인 한 후 실행되어야 하는 프로그램을 지정. 디폴트는 Userinit.exe 로 이 프로그램은 사용자의
실행환경을 설정하고 바로 종료된다. 따라서 Userinit.exe 가 부팅 이후 상당한 시간이 지났는데도 실행중인 경우 의심해 보아야 한다. Userinit.exe 외에 추가적으로 실행한 프로그램을 등록할 수 있다.
SYSTEM.INI 파일 : 악성코드는 Shell 혹은 Userinit 값의 데이터를 조작하여 부팅 시 자동실행되도록 한다.
예를 들어, Shell value는 디폴트로 Explorer.exe가 세팅되어 있으므로 Shell=Explorer.exe %system%\System32.exe 와 같이 수정하여 시스템 재부팅 후 로그인시에 자동 실행되도록 할 수 있다
F:\temp>reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v shell
shell REG_SZ explorer.exe
F:\temp>reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v userinit
userinit REG_SZ C:\Windows\system32\userinit.exe,
WIN.INI 파일
HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows
악성코드는 Load 혹은 Run 값의 데이터를 조작하여 부팅 시 자동실행되도록 할 수 있다.
F:\temp>reg query "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows" /v load [Run]
ShellExecute Hook
Windows Explorer(ShellExecute)을 이용하여 프로그램을 실행하는 경우 ShellExecuteHooks 에 등록된 모듈이 먼저 실행된다.
HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks
인터넷 브라우저 관련
IE확장기능(BHO)
BHO가 자동으로 로드하는 DLL 확인
HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\
F:\temp>reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects" /s
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\{199921A6-940E-420A-B063-B12A146EFB7C}
(기본값) REG_SZ UplusNetDriveDsShell
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\{31D09BA0-12F5-4CCE-BE8A-2923E76605DA}
(기본값) REG_SZ Skype for Business Click to Call BHO
NoExplorer REG_SZ 1
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\{D0498E0A-45B7-42AE-A9AA-ABA463DBD3BF}
(기본값) REG_SZ
NoInternetExplorer REG_SZ 1
위에서 matching이 되는 Registry Key는 따로 등록에 되어 있는데 위치는 다음과 같으며 제조 회사, 로드 되는 DLL,
DLL 의 위치 등이 등록되어 있다.
\HKCR\CLSID
\HKCR\BHO
기타 BHO
HKLM\Software\Microsoft\Internet Explorer\Extensions
HKLM\Software\Microsoft\Internet Explorer\Toolbar
HKLM\Software\Microsoft\Internet Explorer\Explorer Bars
HKLM\Software\Microsoft\Internet Explorer\UrlSearchHooks
IE Start page / search page / search bar / search assistant URL
IE 의 시작페이지와 검색도우미(search assistant)에 관련된 항목. 이 곳에 심겨있는 unknown 키의 경우 악성코드라기
보다는 Adware일 가능성이 많다. 라인 마지막 부분의 웹주소가 사용자가 설정하지 않았거나 의심스러운 것이면 확인
HKCU\Software\Microsoft\Internet Explorer\Main
HKCU\Software\Microsoft\Internet Explorer\Search
HKCU\Software\Microsoft\Internet Explorer\SearchURL
HKCU\Software\Microsoft\Internet Explorer\Toolbar
HKLM\SOFTWARE\Microsoft\Internet Explorer\Search
HKLM\SOFTWARE\Microsoft\Internet Explorer\SearchURL
Default URL Searchhook
URL Search Hook에 관련된 항목. URL Search Hook 은 사용자가 웹 브라우저의 주소 창에 http://, ftp:// 같은 정확한
프로토콜을 표시하지 않고 웹주소만 입력한 경우에 사용된다. 웹브라우져가 정확한 프로토콜을 찾아내는데 실패하면 URL Search Hook 객체를 호출한다.
기본값은 {CFBFAE00-17A6-11D0-99CB-00C04FD64497}라는 CLSID(클래스 아이디)가 기본값(Default Value)으로 설정되어 있다. 대다수의 IE Hijacker 는 사용자가 프로토콜을 입력하지 않은 상태로 url 을 입력핛 경우 공격자의 사이트로 리다이렉트 시키는 방법을 통해 악성코드를 다운받게 한다.
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\URLSearchHooks
Extra Items in IE right-click menu
IE 에서 마우스 우클릭했을 때 보여지는 확장항목 레지스트리이다. 각각의 서브키들은 메뉴 아이템들을 나타낸다.
원하지 않는 것들은 지울 수 있다. 악성코드는 사용자가 해당항목을 클릭하도록 하여 악의적인 스크립트가 있는 페이지
를 실행하도록 할 수 있다. (참조 : http://support.microsoft.com/kb/177241/ko/)
HKCU\Software\Microsoft\Internet Explorer\MenuExt
IE나 Explorer가 실행될때마다 등록된 DLL 실행
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
악성코드가 은닉등을 위해 값을 변경할 수 있는 레지스트리
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL
: "Type" 이 빈칸으로 세팅됨 (원래 값은 “radio” 이다.)
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
: "ShowSuperHidden" 이 0 으로 세팅됨
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\HideFileExt
: "UncheckedValue" 가 1 로 세팅됨
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL
: "CheckedValue" 가 0 으로 세팅됨
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\SuperHidden
: "UncheckedValue" 가 1 로 세팅됨
악성코드 선호 경로 (Malware Favorite Path)
시스템에 유입되는 악성코드 중 바로 실행되어 목적9개인정보나 기밀정보 탈취, 악성코드 전사 배포 등)을 수행한 후
스스로 소멸하거나 장기적으로 은닉하면서 시스템을 모니터링하거나 다른 시스템으로 추가적인 침투를 수행하는 유형이 있다.
전자의 경우는 실행 이후 자가 삭제 등의 방법을 이용해 흔적을 삭제할 수 있지만, 후자의 경우는 목적을 달성할 때까지 최대한 시스템에 은닉하고 있어야 한다.
후자의 경우 특정 조직에 타겟팅된 악성코드라면 사전에 조사를 마친 정보를 이용하거나 다운로더에 의해 최적화된 악성코드를 유입시키기 때문에 조직의 보안 시스템을 이용해 탐지하기는 매우 어렵다. 하지만 주기적이고 지속적인 2차공격은 조직 내부의 보안 정책과 조직의 망 구성 등에 따라 최소 1~2주에서 몇 달이 걸리기도 한다. 그 때문에 최적화된 악성코드도 시간이 지나면서 탐지될 가능성이 높아진다.
악성코드를 은닉하는 방법은 루트킷 기법부터 슬랙 영역 사용, 속성 변경, 파일명 변경, 파일 숨기기 등 다양하지만 가장 기본적인 방법은 사용자가 자주 사용하지 않는 폴더를 이용하는 것이다. 사용자가 사용하지 않는 폴더는 AV의 실시간 감지의 대상이 되지 않기 때문에 정밀 검사를 수행하지 않는 이상 탐지될 위험이 적다. 물론, 최적화된 악성코드는 정밀 검사를 수행한다고 해도 탐지되기 어렵다.
악성코드가 자주 위치하는 경로를 살펴보면 다음과 같다. 해당 경로는 악성코드의 존재 여부를 판단할 때 우선적으로 살펴볼 필요가 있으며, 일부 경로는 파일이 존재하는 것만으로도 악성코드의 존재 여부를 판단할 수 있기 때문에 모니터링 항목에 추가할 필요가 있다.
시스템 폴더
시스템 폴더는 윈도우의 주요 시스템 파일이 존재하는 곳으로 은닉을 위해 시스템 파일과 파일명을 유사하게 변경하거나 경로를 바꿔 저장한다.
%SystemRoot%\
%SystemRoot%\system\
%SystemRoot%\system32\
%SystemRoot%\system32\
%SystemRoot%\system32\dllcache
%SystemRoot%\system32\drivers
%SystemRoot%\SysWOW64\
%SystemRoot%\SysWOW64\dllcache
%SystemRoot%\SysWOW64\drivers
SysWOW64는 64비트 시스템에서만 존재하는 폴더로 32비트와의 호환성을 위해 존재하는 폴더이다. “%SystemRoot%\system32\” 폴더에 64비트 시스템 파일이 위치한다면 “%SystemRoot%\SysWOW64\”에는
32비트 시스템 파일이 위치한다. 따라서, 64비트 시스템에서는 2개의 폴더를 모두 조사할 필요가 있다.
위 폴더에 시스템 파일과 유사한 이름으로 존재하거나 시스템 파일과 동일한 이름이지만 위 폴더가 아닌 다른 폴더에 존재하는 실행 가능한 포맷의 파일들 조사
사용자 기본 폴더
윈도우 비스타 이후부터 사용자의 홈 폴더는 “%SystemDrive%\Users\” 하위에 존재한다. 해당 폴더 하위를 살펴보면 사용자의 홈 폴더 이외에도 기본 폴더인 “Public(공용)”, “Default”가 존재한다. “Public” 폴더에는 각 사용자가 공통으로 가지는 파일(공용 사진, 비디오 등)이 저장되어 있고, “Default” 폴더에는 새로운 사용자 생성 시 초기 구성(프로파일링)을
위한 파일이 저장되어 있다. 이런 폴더는 일반적으로 직접 들어가지 않기 때문에 공격자가 자주 은닉의 대상으로 삼는다. 또한 “Default”에 악성코드를 위치시키면 새로운 사용자가 생성될 때마다 자동 복사되기도 한다.
%SystemDrive%\Users\Public\(%Public%)
%SystemDrive%\Users\Default\
사용자 데이터 폴더
사용자의 응용프로그램 데이터가 저장되는 데이터 폴더는 숨긴 폴더이기 때문에 폴더 속성을 변경해야만 나타난다.
데이터 폴더도 일반적으로는 들어가지 않기 때문에 해당 경로가 악성코드 은닉에 자주 사용된다.
%UserProfile%\AppData\
%UserProfile%\AppData\Local\(%LocalAppData%)
%UserProfile%\AppData\LocalLow\
%UserProfile%\AppData\Roaming\(%AppData%)
%SystemDrive%\ProgramData\(%AllUsersProfile%)
휴지통 폴더
윈도우의 휴지통 폴더는 운영체제에 의해 보호되어 있기 때문에 폴더 속성을 변경해야만 나타난다. 휴지통 폴더 하위에는 각 사용자의 SID 폴더가 나타나도 SID 폴더에 각 사용자가 삭제한 파일이 위치한다. 바탕화면에서 살펴보는 휴지통 내용은 로그인 사용자의 SID 폴더 내용이다. 악성코드는 휴지통 하위 SID 폴더와 동일한 수준으로 자주 은닉한다.
%SystemDrive%\$Recycle.Bin\
휴지통은 휴지통이라는 특수한 어플리케이션만 접근이 가능하며 휴지통에 파일을 표시하는 네이밍 룰에 맞는 파일만 표시하기 때문에 일반 파일이나 실행 가능한 포맷의 파일들을 자주 숨겨 놓는다.
시스템 볼륨 정보 폴더
시스템 복원 지점이나 볼륨 섀도 복사본이 저장되는 시스템 볼륨 정보 폴더는 운영체제에 의해 보호되어 있다. 폴더 속성을 변경하면 폴더의 존재는 확인할 수 있지만 폴더 내용은 확인할 수 없다. 폴더 내용을 확인하기 위해서는 폴더의 접근 권한을 변경해주어야 한다. 따라서, 악성코드를 장기간 안전하게 은닉할 수 있고 일부 보안 솔루션은 이런 이유로 해당 폴더 하위를 진단하지 못하기 때문에 악성코드가 종종 사용한다.
%SystemDrive%\System Volume Information\
임시 폴더
임시 폴더는 공격자가 의도하기 보다는 악성코드가 시스템에 자동 유입되거나 드롭퍼가 드롭할 때 임시로 사용하는 경로로 악성코드의 복사본이 자주 존재한다.
%UserProfile%\AppData\Local\Temp(%Temp%)
%SystemRoot%\Temp\
%LocalAppData%\Microsoft\Windows\Temporary Internet Files\
웹 브라우저 다운로드 경로
웹 브라우저의 기본 다운로드 경로나 액티브 X, 자바 애플릿 경로 등도 웹 브라우저를 이용하는 악성코드가 다운되어 있을 가능성이 많다.
%UserProfile%\Downloads
%UserProfile%\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\#
%SystemRoot\Downloaded Program Files(Active X)
알려진 폴더
조직마다 공통된 사양의 표준 PC를 사용하다보니 모든 사용자에게 공통으로 존재하는 폴더가 있다. 특정 조직을 공격할 때 이런 폴더들이 종종 사용되곤 한다.
%SystemDrive%\Intel
%SystemDrive%\HNC
%SystemDrive%\JungUmData
… …
그 밖에 폴더
앞서 언급한 폴더 이외에도 악성코드가 자주 위치하는 경로는 다음과 같다.
%AppData%\Microsoft\Windows\Start Menu\Programs\Startup
%SystemDrive%\Program Files\Common Files\(%CommonProgramFiles%)
%SystemDrive%\Program Files (x86)\Common Files\(%CommonProgramFiles(x86)%)
… …
공격자는 언제든지 자기가 원하는 대로 악성코드의 위치를 변경시킬 수 있다. 따라서, 앞서 언급한 경로는 절대 지표보다는 참고 지표로 사용할 필요가 있다. 조직 내에서 감염 시스템을 분석했을 때 해당 악성코드가 은닉을 위해 특정 폴더를 사용한 경우, 해당 경로를 침해 지표로 만들어 추가적인 감염시스템을 찾는 용도로 사용할 수 있다.
'Security > Malware Analyze' 카테고리의 다른 글
유용한 명령어 및 스크립트 (3) | 2020.04.08 |
---|---|
Tool - Loki, Simple IOC and Incident Response Scanner (0) | 2020.04.08 |