▼ 아래의 강의를 활용해 학습 및 정리하였습니다. ▼
인프런 - 라이프타임 커리어 플랫폼
프로그래밍, 인공지능, 데이터, 마케팅, 디자인, 엑셀 실무 등 입문부터 실전까지 업계 최고 선배들에게 배울 수 있는 곳. 우리는 성장 기회의 평등을 추구합니다.
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 상태에 있는 소켓을 출력
- netscan
- 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
- 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는 콘솔 호스트.
- 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 |