시스템 이상징후 판단 기준
시스템 이상징후 판단 기준
동적 분석이 아닌 정적 분석에 의해 간단하고 빠르게 판단할 수 있는 전적으로 나름대로의 개인적인 기준을 정리해 봄
프로세스(실행 가능한 PE 포맷)
- OS 필수 프로세스와 동일한 경로에 위치하면서 파일명을 비교하여 유사율이 조직 내부 기준(%) 이상인 경우
- OS 필수 프로세스와 다른 경로에 위치하면서 파일명이 동일한 경우
- OS 필수 프로세스와 비교하여 실행된 프로세스 개수, 프로세스 실행 권한, 숨김, 실행경로, 부모 프로세스가
기본 정보와 다를 경우
- OS 필수 프로세스와 동일한 경로에 위치하면서 이름더 같은데 실행 기본 사용자가 다른 것
- 속성이 숨김일 경우. 특히 시작 프로그램에 등록되어 있으면서 숨김 속성일 경우
- Code Siging/디지털 서명 이 안되어 있을 경우
- Code Signing/디지털 서명 이 되어 있지만 패커 정보(패킹주체, 회사)가 없는 경우
- 악성코드들이 주로 사용하는 API를 사용하는 경우. 프로세스가 로드하는 DLL이나 호출하는 API가 악성코드가 자주
또는 반드시 사용하는 API를 호출
- VirusTotal 검색 또는 Open Source ClamAV 검색
- 실행 후 삭제되었거나 원격으로 실행된 프로세스 (프리패치는 존재하지만 실행파일은 존재하지 않는 경우)
- ADS(Alternative Data Stream) 형태로 존재하는 실행 가능한 포맷(exe, dll, sys, scr, ocx)의 파일
- 로드된 DLL 또는 윈도우즈 폴더 내 DLL 목록에서 버전이 없는 파일이 있는 경우(추가로 DLL을 로드하여 사용하는
프로세스 정보)
- 부모 프로세스가 winword.exe, excel.exe, powerpoint.exe 이면서 자식 프로세스가 cmd.exe, wscript.exe,
powershell.exe이면 굉장히 위험
OS 기본 주요 프로세스 예제
smss.exe | 1) 프로세스 실행 경로 : C:\Windows\System32 2) 부모프로세스명 : System 3) 실행허용 개수 : 1 4) 실행권한 : System |
winint.exe | 1) 프로세스 실행 경로 : C:\Windows\System32 2) 부모프로세스명 : 없음 3) 실행허용 개수 : 1 4) 실행권한 : System |
윈7 - : taskhost.exe 윈8 : taskhostex.exe 윈10 : taskhostw.exe |
1) 프로세스 실행 경로 : C:\Windows\System32 2) 부모프로세스명 : 윈7 이하 : services.exe / 윈8 이상 : svchost.exe 3) 실행 허용 개수 : Login user count 4) 실행권한 : User |
lsass.exe | 1) 프로세스 실행 경로 : C:\Windows\System32 2) 부모프로세스명 : wininit.exe 3) 실행허용 개수 : 1 4) 실행권한 : System |
winlogon.exe | 1) 프로세스 실행 경로 : C:\Windows\System32 2) 부모프로세스명 : 없음 3) 실행허용 개수 : Login user count 4) 실행권한 : System |
csrss.exe | 1) 프로세스 실행 경로 : C:\Windows\System32 2) 부모프로세스명 : 없음 3) 실행허용 개수 : xp - Login user count / vista이상 - Login user count + 1 4) 실행권한 : System |
lsm.exe ( Xp만 체크한다 ) |
1) 프로세스 실행 경로 : C:\Windows\System32 2) 부모프로세스명 : wininit.exe 3) 실행허용 개수 : 1 4) 실행권한 : System |
expolorer.exe | 1) 프로세스 실행 경로 : C:\Windows\ 2) 부모프로세스명 : 없음 3) 실행허용 개수 : Login user count 4) 실행권한 : User |
iexpolorer.exe | 1) 프로세스 실행 경로 : C:\Program Files\Internet Explorer or C:\Program Files (x86)\Internet Explorer 2) 부모프로세스명 : explorer.exe 3) 실행허용 개수 : Login user count 4) 실행권한 : User |
네트워트 (IP나 웹 URL)
- 외부로 접속된 IP/URL 주소가 악성코드 유포지 목록에 포함된 IP 주소인 경우(Open Source DataSet 이용)
http://www.malware-domains.com/files/justdomains.zip
https://ransomwaretracker.abuse.ch/downloads/RW_DOMBL.txt
- 웹 평판과 연동
- VirusTotal 검색
- Hosts, Hosts.ics 파일에 임의로 등록된 /IPURL
일반 파일
- 내부에 실행 가능한 스크립트를 가진 매크로 존재 (특히 다운로드된 파일)
- 숨긴 파일이나 숨긴 폴더 내에 존재하는 파일
- 일반 폴더가 아닌 특수 목적의 시스템 폴더에 존재하는 파일
- Hosts, Hosts.ics 파일이 사용자 의도와 상관없이 변경된 경우
서비스나 자동 실행 파일
- 최근에 등록되었거나 자동실행 여부 등 속성이 변경된 경우
- 서비스 실행 파일이나 로드하는 DLL이 최근에 접근일자가 변경된 경우
'DFIR > 시스템 분석' 카테고리의 다른 글
시스템 이상징후 기초 분석 (0) | 2020.03.12 |
---|
시스템 이상징후 기초 분석
시스템 이상징후 기초 분석
분석을 위해 CMD 창을 띄워서 실행 결과를 표시할 때 만약 한글이 깨져 보인다면 CMD 출력 창을 UTF-8로 변경한다.
C:\Dropbox\DFIR\Window\SystemBasic\Tools\RegRipper>chcp -> 현재 코드페이지
활성 코드 페이지: 949
C:\Dropbox\DFIR\Window\SystemBasic\Tools\RegRipper>chcp 65001 -> 코드페이지 변경
포렌식이나 침해사고 분석에서 시간은 매우 중요하다. 파일의 MAC Time이나 이벤트 발생 시간등과 직접적 연관이 있고
데이터 표현이나 분석에서 중요한 기법인 TimeLine 에서 시간은 기본이다. 수 많은 데이터에서 분석 범위를 한정하기 위해서도 이벤트 발생 시간으로 그 범위가 결정되어 보다 빠르고 정밀하게 분석이 가능하다.
표준 시간대(TimeSozne) 변경 여부
C:\>w32tm /tz
시간대: Current:TIME_ZONE_ID_UNKNOWN Bias: -540min (UTC=LocalTime+Bias)
[Standard Name:"대한민국 표준시" Bias:0min Date:(지정되지 않음)]
[Daylight Name:"대한민국 일광 절약 시간" Bias:-60min Date:(지정되지 않음)]
NTP 설정 및 활성화 여부
C::\>w32tm /dumpreg /subkey:parameters
값 이름 값 종류 값 데이터
-------------------------------------------------------
NtpServer REG_SZ time.windows.com,0x9
ServiceDll REG_EXPAND_SZ %systemroot%\system32\w32time.dll
ServiceDllUnloadOnStop REG_DWORD 1
ServiceMain REG_SZ SvchostEntry_W32Time
Type REG_SZ NTP
서비스 상태
C:\>sc query w32time
SERVICE_NAME: w32time
종류 : 30 WIN32
상태 : 1 STOPPED
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
검사점 : 0x0
WAIT_HINT : 0x0
C:\>w32tm /query /status
윤초 조정: 3(동기화되지 않음)
계층: 0(지정되지 않음)
정밀도: -23(틱당 119.209ns)
루트 지연: 0.0000000s
루트 분산: 0.0000000s
참조 ID: 0x00000000(지정되지 않음)
마지막으로 동기화한 시간: 지정되지 않음 <- 주의깊게 살펴봐야 함
원본: Local CMOS Clock <- NTP가 내려가 있을 경우임.
폴링 간격: 10(1024s)
또는
윤초 조정: 0(경고 없음)
계층: 4(보조 참조 - (S)NTP로 동기화됨)
정밀도: -23(틱당 119.209ns)
루트 지연: 0.1376417s
루트 분산: 7.9801694s
참조 ID: 0x28515E41(원본 IP: 40.81.94.65)
마지막으로 동기화한 시간: 2020-03-12 오후 3:14:52
원본: time.windows.com,0x9
폴링 간격: 12(4096s)
동기화 주기
C:\>w32tm /query /configuration
......
MinPollInterval: 10 (로컬)
MaxPollInterval: 15 (로컬)
......
FrequencyCorrectRate: 4 (로컬)
......
UpdateInterval: 360000 (로컬)
......
OS 시간변경 여부
관련 이벤트 ID
security log : XP 이하 : 520, 577 / Vista 이후 : 4616
system log : XP 이하 : 없음 / Vista 이후 : 1, 34
Application log : XP 이하 : 없음 / Vista 이후 : 20000
F:\temp>LogParser.exe -stats:off -i:evt "select TimeGenerated, Message from security where EventID=4616"
F:\temp>LogParser.exe -stats:off -i:evt "select TimeGenerated, Message, strings from system where EventID=6013"
TimeGenerated Message Strings
------------------- ---------------------- --------------------------
2020-02-17 12:38:56 시스템 작동 시간은 15초입니다. ||||15|60|-540 대한민국 표준시
2020-02-18 08:47:25 시스템 작동 시간은 11초입니다. ||||11|60|-540 대한민국 표준시
2020-02-18 12:00:00 시스템 작동 시간은 11568초입니다. ||||11568|60|-540 대한민국 표준시
2020-02-19 08:46:00 시스템 작동 시간은 9초입니다. ||||9|60|-540 대한민국 표준시
2020-02-19 12:00:00 시스템 작동 시간은 11649초입니다. ||||11649|60|-540 대한민국 표준시
2020-02-20 08:51:38 시스템 작동 시간은 9초입니다. ||||9|60|-540 대한민국 표준시
2020-02-20 11:59:59 시스템 작동 시간은 11311초입니다. ||||11311|60|-540 대한민국 표준시
2020-02-20 12:00:00 시스템 작동 시간은 11312초입니다. ||||11312|60|-540 대한민국 표준시
2020-02-21 08:46:09 시스템 작동 시간은 10초입니다. ||||10|60|-540 대한민국 표준시
2020-02-21 11:59:59 시스템 작동 시간은 11640초입니다. ||||11640|60|-540 대한민국 표준시
F:\temp>wevtutil qe System /q:"*[System[(EventID=6013)]]" /e:Events /uni:false /f:text
……
Event[38]:
Log Name: System
Source: EventLog
Date: 2020-03-11T08:43:17.827
Event ID: 6013
Task: N/A
Level: 정보
Opcode: N/A
Keyword: 클래식
User: N/A
User Name: N/A
Computer: chohb
Description:
시스템 작동 시간은 14초입니다.
……
F:\temp>wevtutil qe /rd Security /q:"*[System[(EventID=520) or (EventID=4616)]]" /e:Events /uni:false /f:text
Event[17]:
Log Name: Security
Source: Microsoft-Windows-Security-Auditing
Date: 2020-02-27T11:48:42.317
Event ID: 4616
Task: Security State Change
Level: 정보
Opcode: 정보
Keyword: 감사 성공
User: N/A
User Name: N/A
Computer: chohb
Description:
시스템 시간이 변경되었습니다.
주체:
보안 ID: S-1-5-19
계정 이름: LOCAL SERVICE
계정 도메인: NT AUTHORITY
로그온 ID: 0x3E5
프로세스 정보:
프로세스 ID: 0x1584
이름: C:\Windows\System32\svchost.exe
이전 시간: 2020-02-27T02:48:42.313630900Z
새 시간: 2020-02-27T02:48:42.317348000Z
이 이벤트는 시스템 시간이 변경되면 생성됩니다. 시스템 권한으로 실행되는 Windows 시간 서비스가 정기적으로 시스템 시간을 변경하는 것은 정상입니다. 다른 시스템 시간 변경은 컴퓨터를 임의로 변경하려는 시도를 나타낼 수 있습니다.
Prefetch
C:\>dir %windir%\prefetch\rundll*.pf
2019-07-19 오후 01:17 4,467 RUNDLL32.EXE-65953559.pf
2019-07-19 오전 11:05 4,445 RUNDLL32.EXE-A3EE2396.pf
C:\>PECmd.exe -f c:\Windows\prefetch\RUNDLL32.EXE-65953559.pf | findstr /i /c:"timedate.cpl"
Rundll32-XXXXXXXXXX.pf 가 있고 해당 프리패치 내 참조 파일 목록에 timedate.cpl이 있으면 OS 시간 변경을 유출할 수 있지만 제어판을 열어도 동일 흔적이 남기 때문에 다른 흔적도 같이 살펴보아서 정상 시간 변경 여부를 판단해야 한다.
부팅 이력
최근 부팅 시간
F:\temp>uptime.exe 또는 F:\tool\forensic>net stats work
\\CHOHB has been up for: 0 day(s), 7 hour(s), 25 minute(s), 37 second(s)
F:\temp>systeminfo
시스템 부트 시간: 2020-03-12, 오전 8:41:50
부팅 이력
관련 이벤트 ID
F:\temp>wevtutil qe System /q:"*[System[(EventID=6005) or (EventID=6006) or (EventID=6008) or (EventID=6009)]]" /e:Events /uni:false /f:text
Event[37]:
Log Name: System
Source: EventLog
Date: 2020-03-01T18:51:20.926
Event ID: 6005
Task: N/A
Level: 정보
Opcode: N/A
Keyword: 클래식
User: N/A
User Name: N/A
Computer: chohb
Description:
이벤트 로그 서비스가 시작되었습니다.
F:\>LogParser.exe -stats:off "select timegenerated, message from system where eventid = '6005' or eventid = 6006"
TimeGenerated Message
------------------- ---------------------
2020-02-17 12:34:52 이벤트 로그 서비스가 시작되었습니다.
2020-02-17 12:38:29 이벤트 로그 서비스가 멈추었습니다.
2020-02-17 12:38:56 이벤트 로그 서비스가 시작되었습니다.
2020-02-17 18:02:34 이벤트 로그 서비스가 멈추었습니다.
F:\script\batch>wevtutil qe Security /q:"*[System[(EventID=4624) or (EventID=4627) ]]" /e:Events /uni:false /f:text
Event[87]:
Log Name: Security
Source: Microsoft-Windows-Security-Auditing
Date: 2020-02-27T11:49:02.355
Event ID: 4624
Task: Logon
Level: 정보
Opcode: 정보
Keyword: 감사 성공
User: N/A
User Name: N/A
Computer: chohb
Description:
계정이 성공적으로 로그온되었습니다.
주체:
보안 ID: S-1-5-18
계정 이름: CHOHB$
계정 도메인: WORKGROUP
로그온 ID: 0x3E7
로그온 정보:
로그온 유형: 5
제한된 관리 모드: -
가상 계정: 아니요
상승된 토큰: 예
공유 현황
의도치 않게 생성된 공유 폴더나 기존 공유 폴더의 접근 권한 변경 확인. admin$나 IPC$는 원격에서 해당 PC에
프로그램을 실행 시킬 수 있으므로 특히 주의가 필요하다.
F:\temp>net share
F:\temp>wmic path win32_share get * /format:table
공유폴더 접근 권한
F:\temp>net share IPC$
공유 이름 IPC$
경로
설명 원격 IPC
최대 사용자 수 제한 없음
사용자
캐싱 문서의 수동 캐시
사용 권한 Everyone, FULL <- Everyone, FULL이다
F:\temp>F:\tool\OS\accesschk.exe -h IPC$
IPC$
RW BUILTIN\Administrators
RW S-1-5-32-549
RW BUILTIN\Backup Operators
RW NT AUTHORITY\INTERACTIVE
RW NT AUTHORITY\SERVICE
RW NT AUTHORITY\BATCH
F:\temp>net share users
공유 이름 Users
경로 C:\Users
설명
최대 사용자 수 제한 없음
사용자
캐싱 문서의 수동 캐시
사용 권한 BUILTIN\Administrators, FULL
Everyone, FULL
F:\temp>F:\tool\OS\accesschk.exe -d C:\Users
C:\Users
RW NT AUTHORITY\SYSTEM
RW BUILTIN\Administrators
R BUILTIN\Users
R Everyone
중요 폴더 권한
F:\temp>icacls C:\WINDOWS
C:\WINDOWS NT SERVICE\TrustedInstaller:(F)
NT SERVICE\TrustedInstaller:(CI)(IO)(F)
NT AUTHORITY\SYSTEM:(M)
NT AUTHORITY\SYSTEM:(OI)(CI)(IO)(F)
BUILTIN\Administrators:(M)
BUILTIN\Administrators:(OI)(CI)(IO)(F)
BUILTIN\Users:(RX)
BUILTIN\Users:(OI)(CI)(IO)(GR,GE)
CREATOR OWNER:(OI)(CI)(IO)(F)
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(RX)
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(OI)(CI)(IO)(GR,GE)
APPLICATION PACKAGE AUTHORITY\모든 제한된 응용 프로그램 패키지:(RX)
APPLICATION PACKAGE AUTHORITY\모든 제한된 응용 프로그램 패키지:(OI)(CI)(IO)(GR,GE)
F:\temp>F:\tool\OS\accesschk.exe -d C:\windows
C:\Windows
RW NT SERVICE\TrustedInstaller
RW NT AUTHORITY\SYSTEM
RW BUILTIN\Administrators
R BUILTIN\Users
R APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES
R APPLICATION PACKAGE AUTHORITY\?? ??? ?? ???? ???
세션 연결 확인
C:\>net session /list
NBT(NetBIOS) Session
arp spoofing 시도 등 원격에서 호스트명을 알아내기 위해 주로 사용하는 명령어가 nbtstat -c
C:\>nbtstat -c
Wi-Fi:
노드 IpAddress: [10.102.10.72] 범위 ID: []
캐시에 이름 없음
F:\script\batch>nbtstat -a 10.102.10.72
이더넷:
노드 IpAddress: [10.102.10.219] 범위 ID: []
NetBIOS 원격 컴퓨터 이름 테이블
이름 유형 상태
---------------------------------------------
TEST <00> UNIQUE 등록됨
TEST <03> UNIQUE 등록됨
TEST <20> UNIQUE 등록됨
..__MSBROWSE__.<01> GROUP 등록됨
WORKGROUP <00> GROUP 등록됨
WORKGROUP <1D> UNIQUE 등록됨
WORKGROUP <1E> GROUP 등록됨
......
로그온-오프 내역
F:\script\batch>wevtutil qe Security /q:"*[System[(EventID=4624) or (EventID=4627) ]]" /e:Events /uni:false /f:text
Event[87]:
Log Name: Security
Source: Microsoft-Windows-Security-Auditing
Date: 2020-02-27T11:49:02.355
Event ID: 4624
Task: Logon
Level: 정보
Opcode: 정보
Keyword: 감사 성공
User: N/A
User Name: N/A
Computer: chohb
Description:
계정이 성공적으로 로그온되었습니다.
주체:
보안 ID: S-1-5-18
계정 이름: CHOHB$
계정 도메인: WORKGROUP
로그온 ID: 0x3E7
로그온 정보:
로그온 유형: 5
제한된 관리 모드: -
가상 계정: 아니요
상승된 토큰: 예
F:\script\batch>F:\tool\OS\NTLast.exe -f
- No Records - Check to see if auditing is on
<참고> 시스템 감사 정책이 활성화되어 있어야 한다.
네트워크 관련
NIC 동작 모드
F:\script\batch>F:\tool\OS\promiscdetect.exe
Promiscuous Mode가 발견되면 Warning과 함께 알려준다.
현재 연결 내역
F:\script\batch>netstat -anb
라우팅 정보
F:\script\batch>netstat -r
<참고>
네트워크 데이터 흐름을 분석하기 위해 라우팅 정보를 수집해야 한다. 만약 게이트웨이 등이 내부 개인 PC등으로 설정되어 있으면 중계 컴퓨터로 사용될 수도 있다. "netstat -r" 명령어로 인터페이스 / 라우팅 테이블 정보를 확인한다. 특히 네트워크 인터페이스 정보를 분석해야 하는 이유는 MAC의 변조 유무를 파악하여 sniffer / spoofing 공격에 당하고 있는지를 파악할 수 있어야 한다.
DNSQuery
C:\>ipconfig /displaydns
ARP
F:\script\batch>arp -a[v]
<참고>
ARP Cache Table의 내용을 공격자의 의도대로 변경한다. 그 결과 패킷의 전송 방향이 달라진다.
예약 작업
F:\script\batch>schtasks
폴더: \Microsoft\XblGameSave
작업 이름 다음 실행 시간 상태
======================================== ======================
XblGameSaveTask N/A 준비
폴더: \Microsoft\Windows\WaaSMedic
작업 이름 다음 실행 시간 상태
======================================== ======================
PerformRemediation 2020-03-15 오전 6:51:5 준비
프로세스 분석
<참고>
악성코드 등에서 자주 사용하는 레지스트리 경로, 등록된 이상한 파일 들이 있는지 확인
1. HKCR\Wordpad.Document.[version]\shell\open\command
: 문서를 더블 클릭할 때마다 실행
2. HKLM\SOFTWARE\Microsoft\Command Processor\AutoRun
: cmd.exe를 실행할 때마다 실행
3. HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs
: GUI Application이 시작될 때마다 DLL을 memory 내로 Load함
4. HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify
: 사용자 로그온/로그오프, 화면보호기 시작 등 이벤트에 외부 기능을 차단하는 알림
자동실행 프로그램
C:\>rip.exe -r "f:\Test\chohb.NTUSER.DAT" -f system -p autoruns
C:\>reg query "HKEY_CURRENT_USER\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
시작프로그램
C:\>Autorunsc.exe -> 아래 레지스트리 조회
HKLM\System\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\StartupPrograms
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
C:\>wmic Startup get * /format:list
부팅 시 실행
C:\>Autorunsc.exe -b
HKLM\System\CurrentControlSet\Control\Session Manager\BootExecute
AppInit DLLs
C:\>Autorunsc.exe -d
Explorer AddOn
C:\>Autorunsc.exe -e
HKLM\SOFTWARE\Classes\Protocols\Filter
실행 목록(활성 프로세스)
C:\>pslist64.exe -t
프로세스 계층형 조회
-> 원래 부모 프로세스가 아닌 다른 프로세스를 부모로 가지면 상세 분석 필요
-> 윈도우 기본 프로세스랑 이름이 비슷하거나 이름이 같으면서 기본 경로가 다르면 상세 분석 필요
C:\>tasklist
C:\>wmic process list brief [ or wmic path win32_process get * /format:list ]
로드 DLL
C:\>Listdlls.exe /?
C:\>Listdlls.exe [ -r ]
C:\>Listdlls.exe -u
C:\>tasklist /m
Handle
C:\>handle.exe
서비스 목록
F:\script\batch>sc query
F:\>wmic service list brief
F:\>wmic path win32_service get * /format:list
F:\>tasklist /svc
활성 드라이브 목록
F:\>sc query type= driver | more
최근 실행 명령어
HKU\{UserSID}\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU
'DFIR > 시스템 분석' 카테고리의 다른 글
시스템 이상징후 판단 기준 (0) | 2020.03.13 |
---|