▼ 아래의 강의를 활용해 학습 및 정리하였습니다. ▼

https://inf.run/zmPL

 

인프런 - 라이프타임 커리어 플랫폼

프로그래밍, 인공지능, 데이터, 마케팅, 디자인, 엑셀 실무 등 입문부터 실전까지 업계 최고 선배들에게 배울 수 있는 곳. 우리는 성장 기회의 평등을 추구합니다.

www.inflearn.com


volatility

  • 메모리 포렌식 도구
  • 오픈소스
  • CLI 인터페이스 (명령어를 입력하는 방식) (<-> GUI 인터페이스)
  • volatility에서 증거를 획득할 수 있는 이유
    • 메모리: 프로세스가 마음대로 사용할 수 있는 공간
    • 규칙적인 구조체가 메모리 안에 존재할 경우 그를 가져와서 보여주는 도구가 볼라틸리티, 그러나 기본적인 기능들만으로 모든 구조를 다 가져올 수는 없다.
    • 분석가의 역량에 따라 획득 가능한 증거의 양이 천차만별

volatility 명령어 정리

  • 운영체제 식별
    • imageinfo : 메모리 덤프의 운영체제를 식별
  • 프로세스 검색
    • pslist: 시간 순서대로 보여줌
    • psscan: 숨겨진 프로세스 출력 가능
    • pstree: PID, PPID 기준으로 구조화하여 보여줌(가시성이 높음)
    • psxview: pslist, psscan을 포함한 도구들의 결과를 한 눈에 볼 수 있음
  • 네트워크 분석
    • netscan
      • Windows 7 이상에서 동작
      • TCP, UDP / IPv4, IPv6 지원
      • Listening(소켓 열고 있는 상태), Established(소켓 열려 통신 중인 상태), Closed(소켓 닫힌 상태)
    • Connections
      • Windows 7 미만에서 동작
      • 현재 연결된 TCP 통신에 대한 정보 (Established에 대해서만) 출력
    • Sockets
      • Windows 7 미만에서 동작
      • TCP, UDP를 포함한 모든 프로토콜
      • 현재 Listening 상태에 있는 소켓을 출력
  • CMD 분석
    • cmdscan: 콘솔에 입력한 값들을 볼 수 있음
    • consoles: 콘솔에 입력한 값, 출력한 값들을 볼 수 있음
    • cmdline: 프로세스가 실행될 때의 인자값을 확인할 수 있음 (실행 시의 초기값 확인)
  • 파일 분석 및 덤프
    • filescan: 메모리 내에 존재하는 모든 파일의 리스트 출력
    • dumpfiles: 파일을 덤프, 옵션으로 메모리 주소, 프로세스 줄 수 있음 (P옵션 사용하면 해당 프로세스가 사용하는 모든 프로세스를 다 뽑아줌)
  • 프로세스 세부 분석
    • memdump: 특정 프로세스의 메모리 영역을 덤프 → strings 사용 (의미 있는 문자열들을 뽑아주는 명령어. 이를 통해 메모 파일로 만들어 분석할 수 있음)
    • procdump: 프로세스의 실행 파일을 추출 
  • 악성 프로그램 식별
    • virustotal 주로 사용
    • Windows Defender(윈도우즈 기본 백신 프로그램)도 정확한 편

 


 

Volatility Cridex 정리

  • 운영체제 식별
    • WinXPSP2x86
  • 프로세스 검색
    • reader_sl.exe(1640)가 수상한 프로세스
  • 네트워크 분석
    • 공격자 IP: 42.168.5.140:8080
    • PID: 1484(explorer.exe)
  • CMD 분석 → 결과 없음
  • 파일 분석 및 덤프
    • filescan 결과로부터 reader_sl.exe 추출
    • dumpfiles 이용하여 추출 → 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 조회 (어떤 사람의 IP인지)
  • 레지스트리 추출 - 자동 실행 관련 분석
  • explorer.exe 메모리 덤프 내부에 웹페이지 소스코드(HTML) 분석

나는 아직 이만큼의 실력이 되지 못하기 때문에... 실제로 해 보진 않고 알아만 두기. 

 


 

GrrCon 2015 정리

  • 운영체제 식별
    • Win7SP1X86
  • 프로세스 검색
    • Teamviewer 관련 프로세스 (tv_w32.exe)
    • explorer 하위 프로세스 (mstsc.exe, OUTLOOK.exe)
    • 인터넷 익스플로러 (iexplorer.exe, cmd.exe)
  • 네트워크 분석
    • 공격자 IP: 180.76.254.120:22
    • PID: 2996(iexplorer.exe)
  • CMD 분석
    • cmdscan, consloes → 악성 실행파일 발견 (wce.exe)
  • 파일 분석
    • wce.exe: 관리자 계정을 포함하여 패스워드를 가져오는 실행파일
    • w.tmp: wce.exe의 실행 결과로 출력된 파일
    • AnyConnectInstaller.exe: Outlook 메일로부터 출력된 실행파일
  • 프로세스 세부 분석
    • Outlook.exe의 메모리 덤프로부터 피싱 메일 발견 + AnyConnectInstaller.exe의 URL 확보
    • iexplorer.exe 메모리 덤프로부터 공격의 흔적 발견
    • Teamviewer 관련 프로세스는 정상 프로세스로 판단

분석 결과

  • 침입 경로
    • Outlook 피싱 메일을 통해 AnyConnectInstaller.exe 다운로드를 유도
  • 악성 행위
    • AnyConnectInstaller.exe 실행파일 발견
    • iexplorer.exe 내부에서도 공격 흔적 발견
    • wce.exe를 통해 관리자 패스워드 가져오고 w.tmp 파일로 저장
  • 추가 공격
    • mstsc를 이용한 추가 공격 예상

 

OlympicDestroyer - Volatility Contest 2018

시나리오 - 상황 이해에 도움

  • 2018 평창올림픽에 OlympicDestroyer라는 악성코드가 유포. 
  • 보안팀이 최초 감염 PC를 덤프. 첨부파일을 통해 감염된 것으로 추정

 

* 스피어 피싱 - 특정 타겟 정해둔 해킹

 

단서

  • 첨부파일 V10 "Olympic_Session_V10"
  • 메일을 통해 감염됨

명령어

  • imageinfo

 

  • pstree

pstree.log

  • 9번째 줄의 OlympicDestroy라는 악성 코드가 아래 3개의 프로세스를 만들어서 각 프로세스가 악성 행위를 한 것으로 추정. 
  • 18번째 줄의 OSPPSVC.EXE는 ms오피스 관련 프로세스. 엑셀을 통해 침입했다면 이것도 의심해 볼 수 있다
  • 33번째 줄의 taskeng.exe는 작업 스케줄러 서비스.  악성코드가 컴퓨터에 들어와 본인 파일을 작업스케줄러에 등록해 지속적으로 사용되도록 하는 경우 있음. 이것도 의심해 볼 수 있다. 
  • pslist
  • 37번째 행 OSFFSVC.EXE 파워셸과 인접한 시간에 동작. 만약 문서 관련 악성코드라면 해당 문서가 파워셸을 실행했을 가능성. 
  • 시간 텀도 주의깊게 봐야 함. 
  • psscan
  • 출력된 내용 없음.
  • psxview
  • psscan의 출력된 내용 없으므로, 이 내용 역시 의미가 없어진다. 

 

  • netscan
  • 사실상 얻을 수 있는 정보는 크게 없음
  • 192.168.111.130 - 로컬 IP
  • 192.168.111.128 - 원격 IP
  • cmdline

  • OlympicDestroyer3 경로

  • pstree에서 의심됐던, OlympicDestroyer 하위의 exe 파일 경로.
  • cmdscan
  • consoles
  • cmdscan보다 consoles가 더 자세하게 나와있음.

  • conhost라는 프로세스가 파워셸 실행했다. 그럼 conhost는 누가 실행했지? 
  • conhost는 콘솔 호스트. 

pslist.log

  • csrss.exe가 conhost를 실행함. csrss는 클라이언트/서버 런타임 프로세스라고 함. 크게 의심스럽진 않다.
  • filescan
  • filescan에서 추출할 파일 이름 검색해 그의 16진수 부분을 복사한 내용으로 파워셸에서 추출해내는 것. 
  • OlympicDestroyer3의 경로를 추출. (파워셸에서 mkdir로 dumps, files 만들어 주고 dumpfile에서 q옵션 사용해 offset 줌. n옵션 주고 D옵션 사용해 dump.dir 줘서 파일 추출. 
  • _xut.exe의 경로를 추출. 
  • 추출해서 나온 files 파일(dat이나 img)을 'virustotal'이라는 웹사이트에 던져서 악성코드 검사.
    • _xut과 olympicdstroyer3 모두 악성 프로세스인 것 확인.
  • dumpfiles
  • procdump
  • memdump
  • Virustotal
  • strings

 

.dat와 .img의 차이점: dat는 데이터 섹션 오브젝트라는 곳에서 데이터 빼 오는 것, img는 이미지 섹션 오브젝트라는 곳에서 데이터 빼오는 것. 서로 추출 방식이 다른 것임. 내용적 차이는 크게 없다. 


Q. Windows 7 이상에서 동작하는 Volatility 네트워크 분석 명령어는?

A. netscan

 

Q. volatility 수행할 때 어떤 단계로 파악해야 하는가?

A. 어떤 경로로 해커가 들어왔는지, 

 

Q. memdump를 strings 할 수 없는 이유는?  (자세하게 말하면, 가능은 하지만 해당 영상에서 시행하지 않은 이유는?)

A. 크기가 너무 컸기 때문. 

 

Q. 악성 프로그램인지 식별할 때 사용하는 프로그램 2개는 무엇인가?

A. Virustotal, Windows defender

'SWUFORCE > 디지털 포렌식' 카테고리의 다른 글

디지털 포렌식_06  (0) 2024.07.03
디지털 포렌식_05  (0) 2024.05.21
디지털 포렌식_04  (0) 2024.05.15
디지털 포렌식_02  (0) 2024.04.02
디지털 포렌식_01  (1) 2024.03.26

+ Recent posts