• [인프런] 기초부터 따라하는 디지털포렌식 3

    2026. 4. 28.

    by. 김예삐

    섹션 3. 침해사고 대응기법, 해커의 발자취를 찾아라!! 🔥

    CONTENTS
    10. 도구 설치, 환경 설정, 문제 다운로드
    11. Volatility Cridex 풀이 (1)
    12. Volatility Cridex 풀이 (2)
    13. CTF-d, GrrCon 2015 풀이 (1)
    14. CTF-d, GrrCon 2015 풀이 (2)
    15. Volatility 정리
    16. Volatility Cridex 정리 & 추가 분석

    10. 도구 설치, 환경 설정, 문제 다운로드

    - Volatility

    - Windows Terminal

    - 시스템 환경 변수 설정

    Win+s → 시스템 환경 변수 편집 검색 → 시스템 변수의 Path 누르고 편집 → 새로 만들기 → 경로 설정 → 확인

     

    - 문제 다운로드

     1) Volatility Wiki - Memory Samples

     2) CTF-d - GrrCON 2015


    11. Volatility Cridex 풀이 (1)

    volatility -f <이미지> imageinfo

    운영체제 정보는 분석 동안 계속 사용되기 때문에, 꼭 분석 전에 먼저 확인

    여기서 분석할 이미지의 운영체제 정보는 WinXPSP2x86

     

    volatility_2.6_win64_standalone.exe -f .\cridex.vmem --profile=WinXPSP2x86 pslist

    - 프로세스들의 리스트를 출력 

     

    volatility_2.6_win64_standalone.exe -f .\cridex.vmem --profile=WinXPSP2x86 pslist > pslist.log

    - 파일로 저장해서 확인 가능

     

    pslist

    - 시간 순서대로 출력

     

    psscan

    - 오프셋 순서대로 출력 (메모리에 위치한 순서로) + 숨김 프로세스 출력

     

    pstree

    - PID, PPID 기반으로 구조화해서 출력

     

    psxview

    - pslist, psscan을 한눈에 볼 수 있게 출력 

    → 프로세스 리스트를 통해 의심스러운 프로세스 목록을 만드는게 중요!

     

    출력된 정상 프로세스

    ✅ System

    - Windows 커널/시스템 프로세스. PID 4인 경우 정상 

    ✅ smss.exe

    - Session Manager Subsystem (윈도우의 모든 사용자 세션을 관리하는 파일) → 부팅 초기에 실행

    Winlogon.exe

    - Windows 인증 유틸리티로 Windows 로그온 실행

    services.exe

    - 서비스 제어 관리자

    ✅ svchost.exe

    - 여러 Windows 서비스를 묶어서 실행하는 호스트 프로세스

    ✅ alg.exe

    - Application Layer Gateway Service (인터넷 공유/방화벽이 특정 프로그램 통신을 잘 통과시키게 도와주는 Windows 보조 프로세스)

    ✅ wuauclt.exe

    - Windows Update AutoUpdate Client (Windows 업데이트를 자동으로 확인하고 받는 프로그램)

    ✅ lsass.exe

    - 로그인 인증/보안 토큰 관

    ✅ csrss.exe

    - Client/Server Runtime (Windows 핵심 프로세스)

    ✅ spoolsv.exe

    - 프린터 스풀러 서비스

    ✅ explorer.exe

    - 바탕화면/파일 탐색기 셸

    🚨 reader_sl.exe

    - Adobe Acrobat 소프트웨어 구성요소

    - Adobe라고 하면 PDF를 읽는 건데, PDF를 통한 악성코드가 많으니 아주 의심스러운 친구 !!

     

    ✨ Tip ✨
    1. 악성 파일이 정상 프로세스 이름으로 위장할 수 있지만, 식별할 수 있는 단서들 찾기
    → 특히 svchost.exe로 자주 위장함
    2. adobe → PDF → PDF 문서를 통한 악성코드가 엄청 많음
    3. 의심스러운 프로세스 실행 이후의 프로세스들도 함께 의심하기

    12. Volatility Cridex 풀이 (2)

    cmdline

    - 프로세스가 실행될 때 인자값 출력 

     

    filescan

    - 메모리 내에 존재하는 모든 파일에 대한 정보 출력

     

    - 출력되는 로그가 아주 많기 때문에, Ctrl+F로 필요한 것만 검색해서 보는 거 추천 

    - 아까 의심되었던 reader_sl.exe 검색

    0x00000000023ccf90      1      0 R--rwd \Device\HarddiskVolume1\Program Files\Adobe\Reader 9.0\Reader\reader_sl.exe
    0x00000000024d5978      1      0 R--rw- \Device\HarddiskVolume1\Program Files\Adobe\Reader 9.0\Reader\reader_sl.exe

     

    dumpfiles로 reader_sl.exe 추출했고,

    덤프한 파일을 하나하나 분석해보긴 어려우니 virus total에 넣어서 악성행위 확인

     

    악성파일로 인식됨! 

     

    connections

    - 연결된 TCP 통신 출력 

    - PID 1484가 통신중 → PID 1484를 pstree로 보면 explorer.exe임 !! 의심스러워 !!! 🚨 🚨 🚨 🚨

     

    volatility_2.6_win64_standalone.exe -f .\cridex.vmem --profile=WinXPSP2x86 memdump -p 1640 -D .\dumps\

    1640.dmp로 저장! 

     

    Q. 왜 explorer.exe가 아니라 explorer.exe의 자식프로세스인 reader_sl.exe를 덤프할까?

    A. 작은 것부터 차근차근 분석하려고 reader_sl.exe 덤프한 거!

     

    HxD로 열어보면 이처럼 쓰레기 데이터가 많이 나와서 분석하기 어려움 

    strings.exe .\dumps\1640.dmp > string_1640.log

    문자열만 뽑아서 확인

     

    PID 1484 exploere.exe와 통신하던 Remote Address 41.168.5.140:8080 검색 

     

    공격자의 웹사이트로 보임

     

    /zb/v_01_a/in/로 검색

    /zb/v_01_a/in/ 검색 결과, 위와 같이 bank와 관련된 문자열이 많이 보임 

     

    📍 예상되는 시나리오 
    reader_sl.exe → 악성 PDF 문서 → 악성 행위 → URL 접속 → 은행 관련 피싱으로 추정 

     

    procdump

    - 프로세스의 exe 파일 추출

    - 근데 이렇게 추출하면 윈도우에서 보안 조치함 

     

    https://www.virustotal.com/gui/file/5b136147911b041f0126ce82dfd24c4e2c79553b65d3240ecea2dcab4452dcb5


    13. CTF-d, GrrCon 2015 풀이 (1)

    imageinfo로 운영체제 먼저 확인

     

    <새로 배울 명령어>
    connections: "현재 연결된" TCP 통신에 대한 정보
    sockets: "응답받기를 기다리고 있는" 모든 프로토콜에 대한 socket 정보
    netscan: 짱짱(?) 
    cmdline: 프로세스가 실행될 때 인자값
    cmdscan: 콘솔에 입력한 값들을 실제로 볼 수 있음
    consoles: 콘솔에서 입력 & 출력한 값들을 실제로 볼 수 있음

     

     

    명령 실행 결과를 다 저장해준 뒤 분석 시작 

     

    psscan으로 의심스러운 프로세스 먼저 식별


    14. CTF-d, GrrCon 2015 풀이 (2)

    cmdline 출력 결과를 보면 TeamViewer.exe에서 실행한 명령들이 좀 수상하므로

    TeamViewer 부터 분석 시작

     

    관리자 권한 상승, wce.exe → w.tmp 파일명 변경 등 의심스러운 명령줄들이 보임

     

    일단 tv_w32.exe  덤프 (TeamViewer의 자식 프로세스) 

     

    <수상 ! ! ! ! 🚨🚨🚨🚨🚨>
    outlook.exe
    tv_w32.exe
    C:\Windows\Temp\wce.exe, w.tmp 

     

    wce.exe 검색 

    wce.exe 오프셋: 0x000000003df31038

     

    dumpfiles로 wce.exe 덤프

     

    w.tmp 오프셋: 0x000000003eca37f8

     

    w.tmp도 덤프

     

    WCE라는 프로그램이 관리자 PC의 계정 비밀번호와 frontdesk의 비밀번호를 추출한 걸로 보임 

     

    wce.exe 바이러스 토탈 돌려본 결과, 악성 파일로 나옴 

     

    netscan 출력 결과 확인해보면, 수상한 IP들 확인 가능

    1. iexploere 180.76.254.120

    2. outlook.exe 10.1.1.3

    3. TeamViewer.exe 192.96.201.138

     

     

    tv_w32.exe는 악성이 아닌갑다

     

    그럼 이번에는 outlook.exe 덤프해서 메일 내용 확인해보자 (outlook.exe 의 PID는 3196)

    메일 내용을 찾기 위해 strings까지 같이 해줌

     

    피싱 메일 특징인 http:// + .exe, .pdf, .docx, .xlsx로 검색! 

     

    찾았당 낚시형 메일이었음!

    고로 AnyConnectInstaller.exe는 100% 악성파일일 것 

     

    덤프해서 확인해본 결과,

     

    악성코드가 맞음! 🚨🚨🚨🚨🚨

     

    📍 예상되는 시나리오 
    outlook mail → AnyConnectInstaller.exe → wce.exe, w.tmp(관리자 패스워드 탈취) → mstsc.exe

     

    조금 더 연결고리를 찾아보자

     

    iexplore.exe → cmd.exe 실행한 흔적이 있었음 

     

    http://180.76.254.120/AnyConnectInstaller.exe

    아마 여기서 wce.exe가 떨어졌을 걸로 추측 → 원격으로 관리자 권한으로 악성행위를 한 걸로 보임!


    15. Volatility 정리

    Volatility

    - 메모리 포렌식 도구로 오픈 소스로 제공하며 CLI 인터페이스임

    - 버전 3까지 공개되어 있으나, 아직까지는 2를 많이 사용 (내가 작성하는 현재 기준으로는 3을 더 많이 사용하는 거 같음)

     

    Volatility 명령어 정리

    운영체제 식별

    - imageinfo: 메모리 덤프의 운영체제를 식별

    프로세스 검색

    - pslist: 시간 순서대로 출력

    - psscan: 숨겨진 프로세스 출력 가능

    - pstree: PID, PPID 기준으로 구조화하여 출력 (트리 형태로!)

    - psxview: pslist, psscan을 포함한 도구들의 결과를 한 눈에 볼 수 있도록 모두 출력 

    네트워크 분석

    - netscan: Windows7 이상 / TCP,UDP / IPv4, IPv6 / Listening(소켓을 열고 있는 상태), Established(소켓이 열려서 통신중인 상태), Closed(소켓이 닫힌 상태)

    → 네트워크 분석을 통해 공격자가 현재도 통신중인지, 공격자와 접촉하기 위해 기다리는 중인지를 알 수 있음!

    Connections: Windows7 미만 / 현재 연결된 TCP 통신에 대한 정보

    Sockets: Windows7 미만 / TCP, UDP를 포함한 모든 프로토콜 / 현재 Listening 상태에 있는 소켓만 출력

    CMD 분석

    - cmdscan, consloes: 콘솔에 입력한 값들을 확인 가능

    - cmdline: 프로세스가 실행될 때의 인자값을 확인할 수 있음 

    → 검색 방식이 다르기 때문에 모두 써서 확인하자!

    파일 분석 및 덤프

    - filescan: 메모리 내에 존재하는 모든 파일들의 리스트 출력

    - dumpfiles: 파일을 덤프 (옵션으로 메모리 주소, PID 줄 수 있음) 

    프로세스 세부 분석

    - memdump: 특정 프로세스의 메모리 영역을 덤프 → strings 같이 써서 의미있는 문자열 확인

    - procdump: 프로세스의 실행 파일을 추출 

    → 의심스러운 프로세스가 있다면 바이러스토탈에 던져보기! 

    악성 프로그램 식별

    - virustotal 주로 사용

    - Windows Defender도 정확한 편 


    16. Volatility Cridex 정리 & 추가 분석

    ① 운영체제 식별 - WinXPSP2x86

    ② 프로세스 검색 - reader_sl.exe(1640)가 수상한 프로세스로 보임!

    ③ 네트워크 분석 - 공격자 IP: 41.168.5.140:8080, PID: 1484(explorer.exe)

    ④ CMD 분석 - 결과 X

    ⑤ 파일 분석 및 덤프 - filescan 결과로부터 reader_sl.exe 추출, dumfiles 이용하여 추출 → Virustotal 겸색 (애매해!)

    ⑥ 프로세스 세부 분석

    - procdump 이용하여 reader_sl.exe 실행파일 추출 → Virustotal 검색 (너구나!!!🚨🚨)

    - memdump 이용하여 reader_sl.exe 메모리 영역 덤프 → strings 명령어 이용 → 수상한 URL 발견 !!

     

    📍 분석 결과 (어떤 경로로 침입했을까? → 그래서 어떤 악성 행위를 했는데? → 추가적인 악성행위가 남아있는지!)
    침입 경로: 확인 불가
    악성 행위
    - 악성 프로세스 reader_sl.exe (PID 1640) 식별
    - 외부 통신 IP 41.168.5.140:8080 발견
    - 프로세스 덤프 후 Virustotal 검색 결과 → 악성 프로세스 확인 🚨
    - 프로세스 메모리 덤프 내부에서 수상해보이는 단서 확보
    추가 공격: 확인 불가

     

    💡 추가 분석 가능한 부분들! 
    - explorer.exe 프로세스 분석
    - IP 추적 → Whois 조회
    - 레지스트리 추출 → 자동 실행 관련 분석 
    - explorer.exe 메모리 덤프 내부에 웹페이지 소스코드(HTML) 분석

     


    예삐의 추가 분석

    1) explorer.exe 프로세스 분석

    memdump로 explorer.exe 추출

     

    악성 파일이 아니라고 나와서 

     

    prodump로 다시 추출

     

    악성 파일이 맞음 ! ! 🚨

     

    2) IP 추적 → Whois 조회

    🚨 exploere.exe의 메모리 → strings로 문자열 추출 → IP만 다시 추출
     
    http://110.234.150.163:8080/zb/v_01_a/in/cp.php
    http://125.19.103.198:8080/zb/v_01_a/in/cp.php
    http://155.98.65.40:8080/zb/v_01_a/in/cp.php
    http://164.15.21.2:8080/zb/v_01_a/in/cp.php
    http://184.106.189.124:8080/zb/v_01_a/in/cp.php
    http://188.40.0.138:8080/zb/v_01_a/in/cp.php
    http://190.81.107.70:8080/zb/v_01_a/in/cp.php
    http://210.56.23.100:8080/zb/v_01_a/in/cp.php
    http://211.44.250.173:8080/zb/v_01_a/in/cp.php
    http://213.17.171.186:8080/zb/v_01_a/in/cp.php
    http://216.24.197.66:8080/zb/v_01_a/in/cp.php
    http://41.168.5.140:8080/zb/v_01_a/in/cp.php
    http://59.90.221.6:8080/zb/v_01_a/in/cp.php
    http://85.214.204.32:8080/zb/v_01_a/in/cp.php
    http://91.121.103.143:8080/zb/v_01_a/in/cp.php
    http://91.228.154.199:8080/zb/v_01_a/in/cp.php
    NetRange:       41.0.0.0 - 41.255.255.255
    CIDR:           41.0.0.0/8
    NetName:        NET41
    NetHandle:      NET-41-0-0-0-1
    Parent:          ()
    NetType:        Allocated to AfriNIC
    OriginAS:
    Organization:   African Network Information Center (AFRINIC)
    RegDate:        2005-04-12
    Updated:        2010-11-09
    Ref:            https://rdap.arin.net/registry/ip/41.0.0.0
    ResourceLink:  http://afrinic.net/en/services/whois-query
    ResourceLink:  whois.afrinic.net
    OrgName:        African Network Information Center
    OrgId:          AFRINIC
    Address:        Level 11ABC
    Address:        Raffles Tower
    Address:        Lot 19, Cybercity
    City:           Ebene
    StateProv:
    PostalCode:
    Country:        MU
    RegDate:        2004-05-17
    Updated:        2015-05-04
    Comment:        AfriNIC - http://www.afrinic.net
    Comment:        The African & Indian Ocean Internet Registry
    Ref:            https://rdap.arin.net/registry/entity/AFRINIC
    ReferralServer:  whois://whois.afrinic.net
    ResourceLink:  http://afrinic.net/en/services/whois-query
    OrgAbuseHandle: GENER11-ARIN
    OrgAbuseName:   Generic POC
    OrgAbusePhone:  +230 4666616
    OrgAbuseEmail:  abusepoc@afrinic.net
    OrgAbuseRef:    https://rdap.arin.net/registry/entity/GENER11-ARIN
    OrgTechHandle: GENER11-ARIN
    OrgTechName:   Generic POC
    OrgTechPhone:  +230 4666616
    OrgTechEmail:  abusepoc@afrinic.net
    OrgTechRef:    https://rdap.arin.net/registry/entity/GENER11-ARIN

    공격자 IP: 41.168.5.140 → 남아공 일반 ISP IP


    3) 레지스트리 추출 → 자동 실행 관련 분석 

    Robert NTUSER.DAT 확인 (0xe1a19b60)

     

    HKCU\...\Run → KB00207877.exe = C:\Documents and Settings\Robert\Application Data\KB00207877.exe

    KB00207877.exe를 확인해봐야겠음 

     

    메모리에 남아있는 KB00207877.exe 모두 덤프해주고 분석 시작

     

    KB00207877.exe는 악성 코드가 맞았음. 

     

     

    레지스트리 분석 결과 정리해보면, Robert 사용자 계정의 Run Key에 KB00207877.exe 등록 → 악성 코드의 지속성 확보 

     

    🚨 KB00207877.exe 정리
    KB00207877.exe는 Cridex banking trojan의 reflective loader임
    .data에 암호화된 PE를 품고 있다가 메모리에서 복호화 → explorer.exe에 인젝션 → 스스로 종료~

     

     

    4) explorer.exe 메모리 덤프 내부에 웹페이지 소스코드(HTML) 분석

    *chaseonline.chase.com/MyAccounts.*
    <input name="ccnumber1" maxlength="4">
    <input name="ssn1"><input name="ssn2"><input name="ssn3"> 
    <input name="mmn">
    <input name="dln">

    explorer.exe 메모리에서 추출한 Chase 가짜 로그인 폼 🚨

     

    사용자가 진짜 은행 사이트에 접속하면 가짜 입력 폼을 끼워넣어 SSN·카드번호·PIN까지 다 훔쳐 41.168.5.140:8080(C2 서버)으로 보내고 KB00207877.exe를 Run Key로 등록해 지속성까지 확보한 상태로 보임

     

    📍 최종 시나리오 추정
    ① 사용자 Robert가 KB00207877.exe를 실행 (Microsoft 보안 패치로 위장한 파일)
    ② 재부팅 시 자동으로 시작되도록 레지스트리 Run Key에 등록 → HKCU\...\Run\KB00207877.exe
    ③ explorer.exe에 코드 인젝션 (Cridex가explorer.exe 프로세스 안에 숨음)
    ④ reader_sl.exe(PID 1640) 자식 프로세스 생성 (Adobe로 위장)
    ⑤ 사용자가 Chase 같은 은행 사이트 방문 시 가짜 입력 폼이 페이지에 끼어듦
    ⑥ 훔친 자격증명을 C2로 POST (메모리 내 실시간 네트워크 트래픽 패킷 조각 확인)

    참고 자료

    https://www.inflearn.com/course/%EA%B8%B0%EC%B4%88-%EB%94%94%EC%A7%80%ED%84%B8-%ED%8F%AC%EB%A0%8C%EC%8B%9D?cid=328431&srsltid=AfmBOoq6-JAHQd_Iut7fkCDAqsqdDiTUSJOiA9MQux7NIAbuECoeG50H

     

    [지금 무료]기초부터 따라하는 디지털포렌식| 훈지손 - 인프런 강의

    현재 평점 4.9점 수강생 5,863명인 강의를 만나보세요. 기초부터 따라하는 디지털포렌식 강의입니다. 강의를 따라하다보면 "물 흐르듯, 자연스럽게" 실력이 늘어가는 강의를 추구합니다. 디지털포

    www.inflearn.com

     

    댓글