강좌 / 팁

서버 / IT 해킹피해시스템(Windows NT/2000) 분석절차

2011.12.19 10:40

gooddew 조회:7511

 

해킹피해시스템(Windows NT/2000) 분석절차

 

2001.03.02

하도윤/CERTCC-KR dyha@certcc.or.kr

 


이 문서는 윈도우 NT 시스템이 해킹을 당했는지 여부를 알 수 있는 절차를 제공한다. 해킹을 당했다면 분석한 로그는 컴퓨터 포렌식스를 위한 자료로 활용될 수도 있다. 이 문서는 일반적인 분석절차이므로 시스템관리자는 운영중인 시스템환경에 맞게 적용하기를 권고한다.

1. 사용하지 않는 IP 대역이나 비정상적인 행위를 하는 로그를 점검한다.

▶ 이벤트 표시기(시작 ->프로그램 ->관리도구(공용) ->이벤트 표시기)를 실행하여 시스템, 보안, 애플리케이션 로그를 점검한다.

o 시스템 로그 점검

매개 변수 '/gjgjgjgjgjh'을(를) 가진 URL '/scripts/../../winnt/system32/cmd.exe'에서 시작한 스크립트가 구성된 시간 초과 기간 내에 응답하지 않았습니다. HTTP 서버가 스크립트를 종료하고 있습니다.


매개 변수 '/c+del+"'을(를) 가진 URL '/scripts/../../winnt/system32/cmd.exe'에서 시작한 스크립트가 구성된 시간 초과 기간 내에 응답하지 않았습니다. HTTP 서버가 스크립트를 종료하고 있습니다.
 


o 보안 로그 점검

로그온 실패:
원인: 알 수 없는 사용자 이름 또는 잘못된 암호
사용자 이름: CHIEF
도메인: CERT
로그온 유형: 3
로그온 프로세스: KSecDD
인증 패키지: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
워크스테이션 이름: \\CHIEF
 


o 응용프로그램 로그 점검 예제

Microsoft FrontPage Server Extensions:
Error #20015 Message: Cannot open "C:\InetPub\wwwroot\trojanhorse.htm": no such file or directory.
 


침입탐지시스템(Firewall), 웹서버(IIS), 라우터를 운영하고 있다면 관련로그도 점검하여야 한다.

Top

2. 사용자 계정과 그룹을 점검한다.

도메인 사용자 관리자(시작 ->프로그램 ->관리도구(공용) ->도메인 사용자 관리자)를 실행하여 불법적인 계정이나 그룹의 생성여부를 점검한다.

o 사용자 계정 점검

C:\>net user
\\TESTNT에 대한 사용자 계정
----------------------------------------------------------------
Administrator chief FuckU
Guest IUSR_TESTNT IWAM_TESTNT
명령이 잘 실행되었습니다.
 


FuckU란 해커계정이 생성되어 있음을 알 수 있다.

o 글로벌그룹 계정 점검예제

C:\>net group
\\TESTNT에 대한 그룹 계정
-------------------------------------------------------------------
*Domain Admins *Domain Guests *Domain Users
*FuckYou
명령이 잘 실행되었습니다.
 


FuckYou란 불법 글로벌그룹 생성되어 있음을 알 수 있다.

o 로컬그룹 계정 점검예제

C:\>net localgroup
\\TESTNT에 대한 별명
---------------------------------------------------------------------------
*Account Operators *Administrators *Backup Operators
*FuckYouAll *Guests *MTS Trusted Impersonators
*Print Operators *Replicator *Server Operators
*Users
명령이 잘 실행되었습니다.
 


FuckYouAll 이란 불법 로컬그룹 생성되어 있음을 알 수 있다.

그리고 내장된 guest 계정이 사용안함으로 되어 있는지 점검한다.

Top

3. 모든 그룹에서 불법사용자를 점검한다.

디폴트 그룹에서 그룹에 속한 사용자들에게 특별한 권한을 준다. 즉, 예를 들면 Administrator 그룹에 속한 사용자는 로컬시스템에서 무엇이든지 할수 있고, Backup operators 그룹에 속한 사용자는 시스템상의 어떤 파일이든지 읽을수 있고, PowerUsers 그룹에 속한 사용자는 공유를 생성할 수 있다. 물론 이외에 다른 권한도 있다.

4. 사용자권한을 점검한다.

사용자와 그룹에 할당될수 있는 권한은 27가지가 있다.

5. 비인가된 응용프로그램이 실행되었는지 점검한다.

공격자가 백도어 프로그램을 심을 수 있는 방법은 여러 가지가 있다. 다음을 점검한다.

▶ 시작폴더를 점검한다. c:\winnt\profiles\(Administrator, All Users, Default

User 중 선택)\시작 메뉴\프로그램\시작프로그램 폴더를 점검한다. 혹은 시작-> 프로그램-> 시작프로그램을 클릭하여 간단히 확인할 수 도 있다.

※ 주의: 시작폴더가 2개 있다. 하나는 로컬사용자를 위한 것이고 다른 하나는 모든 사용자를 위한 것이다.

▶ 레지스트리를 점검한다.

레지스트리를 통한 일반적인 애플리케이션의 위치정보

o 레지스트리 리스트 점검

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\KnownDLLs
HKEY_LOCAL_MACHINE\System\ControlSet001\Control\Session Manager\KnownDLLs


HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version\RunOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version\RunOnceEx
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows ("run=" line)


HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\RunOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\RunOnceEx
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows ("run=" value)
 


Top

▶ 실행중인 불법서비스를 점검한다.

어떤 백도어 프로그램은 시스템 부팅시 시작되는 서비스로 설치된다. 이 백도어 서비스는 "서비스로 로그온 권한"을 가진 사용자에 의해 실행된다. 자동으로 실행되는 서비스를 점검하고, 트로이쟌이나 백도어 프로그램인지 점검한다.

다음은 레지스트리로부터 실행중인 서비스정보를 수집할 수 있는 간단한 배치화일이다. 실행하면 서비스키, 시작 값과 실행파일을 볼수 있다. 이 배치파일은 리소스킷에 있는 reg.exe를 사용한다.

o 배치파일을 이용한 점검

@echo off

REM The 'delims' parameter of PULLINFO1 and PULLINFO2 should be a single TAB.


for /f "tokens=1 delims=[]" %%I in ('reg queryHKLM\SYSTEM\CurrentControlSet

\Services') do call :PULLINFO1 %%I

set START_TYPE=

goto :EOF


:PULLINFO1

for /f "tokens=3 delims= " %%I in ('reg query HKLM\SYSTEM\CurrentControlSet

\Services\%1 ^| findstr "Start" ') do call :PULLINFO2 %1 %%I

goto :EOF


:PULLINFO2

for /f "tokens=3,4 delims= " %%I in ('reg query HKLM\SYSTEM\CurrentControlSet

\Services\%1 ^| findstr "ImagePath" ') do call :SHOWINFO %1 %2 %%I %%J

goto :EOF


:SHOWINFO

if /i {%2}=={0} set START_TYPE=Boot

if /i {%2}=={1} set START_TYPE=System

if /i {%2}=={2} set START_TYPE=Automatic

if /i {%2}=={3} set START_TYPE=Disabled


if not "%4" == "" (echo %1 -%START_TYPE%- %3\%4) else (echo %1 -%START_TYPE%- %3)

goto :EOF
 


o reg 명령어를 이용한 점검

C:\Administrator>reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services


! REG.EXE VERSION 2.0


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Abiosdsk

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\abp480n5

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ACPI

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ACPIEC


-----------------------중간생략--------------------------------


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinMgmt

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinTrust

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Wmi

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\{C898773A-5CF1-4AAD-B822-4

D0EEA86B27}
 


Top

6. 변경된 시스템 바이너리 파일을 점검한다.

CD-ROM이나 기타 설치매체에서 설치된 초기 시스템 바이너리 정보를 복사한 후 주기적으로 비교한다. 또한 백업시 트로이쟌이나 백도어 파일이 있는지 미리 점검한다.

트로이쟌호스 프로그램을 정상 프로그램과 같은 파일 사이즈, timestamp 로 조작이 가능하다. 이런 경우는 MD5, Tripwire나 기타 무결성 점검도구를 이용하여 트로이쟌호스 프로그램을 탐지할 수 있다. 이런 무결성 점검도구는 공격자에 의해 조작되지 않도록 안전하게 보관하여야 한다.

또는 백신프로그램을 이용하여 바이러스, 백도어, 트로이쟌호스 프로그램을 점검 할 수 있다. 하지만 변종 프로그램이 지속적으로 나오기 때문에 백신 프로그램은 최신버전으로 업데이트 하여야 한다.

7. 시스템과 네트워크 환경설정을 점검한다.

WINS, DNS, IP 포워딩 같은 환경설정변경을 점검한다. 네트워드 환경설정 등록정보를 이용하거나 ipconfig /all 명령어를 이용하여 점검한다.


o ipconfig 명령어를 이용한 점검

C:\Administrator>ipconfig /all


Windows 2000 IP Configuration

Host Name . . . . . . . . . . . . : chiefw2k
Primary DNS Suffix . . . . . . . : kisa.or.kr
Node Type . . . . . . . . . . . . : Hybrid
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
DNS Suffix Search List. . . . . . : kisa.or.kr
or.kr
Ethernet adapter 로컬 영역 연결:
Connection-specific DNS Suffix . :
Description . . . . . . . . : FE574B-3Com 10/100 LAN PCCard-Fast Ethernet
Physical Address. . . . . . . . . : 00-50-DA-D4-11-A4
DHCP Enabled. . . . . . . . . . . : No
IP Address. . . . . . . . . . . . : 172.16.2.202
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 172.16.2.1
DNS Servers . . . . . . . . . . . : 211.252.150.xxx
211.252.150.xxx
 


불필요한 네트워크 서비스가 실행중인지 점검한다. "netstat -an" 명령어를 이용하여 의심스러운 호스트의 접근이나 연결대기중인 의심스러운 포트를 점검한다.

Top

o netstat 명령어를 이용한 점검

C:\>netstat -na


Active Connections


Proto Local Address Foreign Address State

TCP 0.0.0.0:21 0.0.0.0:0 LISTENING

---------------------- 중간생략 ------------------------

TCP 0.0.0.0:31337 0.0.0.0:0 LISTENING

TCP 127.0.0.1:1026 0.0.0.0:0 LISTENING

TCP 172.16.2.168:31337 172.16.2.154:1652 ESTABLISHED

UDP 0.0.0.0:135 *:*

UDP 172.16.2.168:137 *:*

UDP 172.16.2.168:138 *:*
 


백오리피스2000이 설치되었고, 연결되어 있음을 알수 있다.

o 배치파일을 이용한 점검

@echo off

for /f "tokens=1,2 delims=:" %%I in ( 'netstat -an ^| findstr "0.0.0.0:[1-9]"' ) do call : CLEAN %%I %%J

goto :EOF


:CLEAN

set X=0

for /f "tokens=1,2,3 delims=TAB " %%A in ( 'findstr /I "\<%3/%1\>" port-numbers.txt' ) do call :SETUP %%A %%C %3 %1

if %X% == 0 echo %3/%1 ***UNKNOWN***

goto :EOF


:SETUP

echo %3/%4 %1 %2

set X=1;

goto :EOF
 


port-numbers.txt 라는 파일이 필요하다. 이 파일에는 점검하고자 하는 포트를 정리한다. 첨부1. 참고

Top

8. 비인가된 파일공유를 점검한다.

명령프롬프트에서 net share 명령어를 이용하여 점검하거나 서버관리자를 이용하여 점검한다. 공유폴더의 끝에 "$" 표시가 있으면 이는 hidden share이다. 즉, 불법 공유폴더와 NT의 디폴트나 공유폴더에 비인가된 사용자가 연결되어 있는지 점검한다.

o net share 명령어를 이용한 점검

C:\>net share


공유 이름 리소스 설명


--------------------------------------------------------------

print$ C:\WINNT\system32\spool\drivers 프린터 드라이버

IPC$ Remote IPC

C$ C:\ Default share
ADMIN$ C:\WINNT Remote Admin
I386 C:\I386
QLaserSF LPT1: 스풀됨 QLaser SF710
명령이 잘 실행되었습니다.
 


o net use, net session 명령어를 이용하여 점검

o 서버관리자(시작->프로그램->관리도구(공용)->서버관리자)를 이용한 점검

 

FuckU 란 해커가 C 드라이버에 공유연결을 사용하고 있음을 찾을 수 있다.

Top

9. 실행중인 스케줄러를 점검한다.

"at" 명령어나 리소스 킷에 있는 WINAT 도구를 사용하여 점검한다.

o at 명령어를 이용한 점검

C:\>at
상태 ID 날짜 시간 명령줄
-------------------------------------------------------------
1 다음 29 오후 3:00 cmd.exe

 

10. 불법프로세스를 점검한다.

작업관리자나 리소스 킷에 있는 pulist.exe나 tlist.exe를 이용하여 실행중인 프로세스를 점검한다. pulist 명령어를 이용하면 누가 프로세스를 실행시켰는지 알수 있다.

o tlist 명령어를 이용한 점검

C:\Administrator>tlist -t
System Process (0)
System (8)
smss.exe (200)
csrss.exe (228)
winlogon.exe (252) NetDDE Agent
services.exe (280)
mstask.exe (1188) SYSTEM AGENT COM WINDOW
svchost.exe (2204) ModemDeviceChange
dns.exe (1812)
---------------------- 중간생략 ------------------------
explorer.exe (1836) Program Manager
cmd.exe (2080) C:\WINNT.0\System32\cmd.exe - tlist -t
tlist.exe (2352)
IEXPLORE.EXE (2064) Microsoft Internet Explorer
regedt32.exe (1360) 레지스트리 편집기
mmc.exe (1988) 컴퓨터 관리
spade.exe (440) Spade - [Scan 172.16.2.200-172.16.2.202, finished]
tp4mon.exe (2420) Zoom Window
internat.exe (864)
conime.exe (2020
 

spade.exe 프로그램으로 스캔이 완료되었음을 알 수 있다.

Top

11. 이상한 파일이나 숨겨진 파일을 찾는다.

패스워드 크래킹 프로그램이나 다른 시스템의 패스워드 파일이 있는지 점검한다. 탐색기(보기 ->폴더 옵션 ->보기 ->모든 파일 표시)를 이용하여 숨겨진 파일을 찾거나, "dir /ah" 명령어를 이용하여 점검한다.

12. 파일 퍼미션 변경이나 레지스트리 키값의 변경을 점검한다.

리소스 킷의 xcacls.exe 프로그램을 이용하여 디렉토리별 파일들을 점검한다.

13. 사용자나 컴퓨터의 정책변화를 점검한다.

정책편집기(poledit.exe)에서 구성된 현재 정책의 복사본을 정리하여 주기적으로 변경되었는지 점검한다.

14. 시스템이 다른 도메인으로 변경되었는지 점검한다.

15. 한 시스템이 해킹을 당했다면 로컬 네트워크내의 모든 시스템을 점검한다.

첨부1. 윈도우 NT 4.0의 잘 알려진 서비스 포트정리

서비스(function)
 포트(static ports)
 
Browsing
DHCP Lease
DHCP Manager
Directory Replication
DNS Administration
DNS Resolution
Event Viewer
File Sharing
Logon Sequence
NetLogon
Pass Through Validation
Performance Monitor
PPTP
Printing
Registry Editor
Server Manager
Trusts
User Manager
WinNT Diagnostics
WinNT Secure Channel
WINS Replication
WINS Manager
WINS Registration
 UDP:137,138
UDP:67,68
TCP:135
UDP:138 TCP:139
TCP:135
UDP:53
TCP:139
TCP:139
UDP:137,138 TCP:139
UDP:138
UDP:137,138 TCP:139
TCP:139
TCP:1723 IP Protocol:47 (GRE)
UDP:137,138 TCP:139
TCP:139
TCP:139
UDP:137,138 TCP:139
TCP:139
TCP:139
UDP:137,138 TCP:139
TCP:42
TCP:135
TCP:137
 


[ Reference ]

1. https://www.cert.org/tech_tips/win_intruder_detection_checklist.html
2. https://www.cert.org/tech_tips/win-resources.html
3. https://www.cert.org/tech_tips/win-UNIX-system_compromise.html
4. https://www.boran.com/security/nt1.html
5. https://support.microsoft.com

 

번호 제목 글쓴이 조회 추천 등록일
[공지] 강좌 작성간 참고해주세요 gooddew - - -
1420 하드웨어| Wear Range Delta 의 정의 [23] NEX 9364 4 05-12
1419 윈 도 우| MS Visual C++ 2005/2008/2010 패키지모음 및 오류해결 [7] 드로리안 18538 4 05-12
1418 윈 도 우| .Net Framework(닷넷프레임웤)관련 총정리 및 오류해결 [8] 드로리안 28151 7 05-12
1417 윈 도 우| Microsoft Fix it Center Online (Windows의 모든 문제를 ... 조남식 8619 2 05-12
1416 소프트웨어| mscomctl.ocx, msinet.ocx, msvbvm60.dll에러 초간단 해결 [7] 드로리안 20546 3 05-10
1415 윈 도 우| Win7 크롬에서 윈미플(WMP) 플러그인 실행 안될때.. [3] 드로리안 10231 2 05-10
1414 소프트웨어| 대륙의 종결자 2 조각모음 선지자 10864 2 05-09
1413 소프트웨어| TriDef 3D로 심즈3 3차원으로 실행하는 방법 나는나다 8534 0 05-09
1412 소프트웨어| Pale Moon에서 Roboform 사용하기. [4] 코프 7259 0 05-09
1411 윈 도 우| diskpart를 갖고 놀아봐요~ [8] 윈도우찬양 20502 10 05-06
1410 윈 도 우| USB로 XP 설치하기(AHCI 지원, USB CD 영역 불필요) [35] 해밀 44464 16 05-04
1409 소프트웨어| 윈7에서 프로그램 인터넷 차단 방법 [9] 구들목 17601 3 05-02
1408 윈 도 우| 5/11 일자 SP3 누적 업데이트 + DotnetFX 3.5 SP1 [22] 오펜하이머 11316 5 04-26
1407 소프트웨어| HEX에디터로 디스크 MBR 지우기 [16] 초월신 10694 3 04-25
1406 소프트웨어| 구글뮤직을 크롬에서 베리 간지나는 인터페이스로 사용하는... [2] No1choin 8311 1 04-21
1405 소프트웨어| [팁] Bluestacks에서 카카오톡 친구 추가하기 [6] 우울한헐크 17849 2 04-17
1404 윈 도 우| (통합용)XPSP3 이후 핫픽스 모음 2012.4.13 [8] 제스트- 13943 4 04-13
1403 소프트웨어| mkWDclean을 이용한 썸네일 깨진 MKV 복구 및 최적화 [3] ☆미친참새 10021 1 04-12
1402 소프트웨어| madVR (Madshi Video Renderer) 적용시 검은화면만 나올때 ... [13] ☆미친참새 12972 1 04-12
1401 윈 도 우| windows Update 에러 중 80071A91, 80070643 발생하시고 해... [2] TrueOne 16328 1 04-12
XE1.11.6 Layout1.4.8