해당 포스팅 내용은 잊어먹지 않기 위해 간략히 작성한 내용이기 때문에 볼 필요는 없을 것 같고, 

http://codeengn.com/archive/Forensic/Volatility%20command%202.1%20%5B%EB%B3%B4%EC%95%88%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8,%20%EC%9D%B4%EC%8A%B9%EC%A4%80%5D.pdf

PDF 파일을 보시면 자세히 알 수 있습니다.
맨 밑에 cuckoo 연동 부분만 보셔도..


1) VB2016 paper: Open source malware lab(http://kkn1220.tistory.com/115)

2) Cuckoo Sandbox (http://kkn1220.tistory.com/116)

3) Thug (http://kkn1220.tistory.com/117)

4) Bro (http://kkn1220.tistory.com/118)


Volatility


1. Volatility  개념

- 포렌직 메모리 분석에서 많이 사용하고 있는 파이썬 기반 오픈소스
- 은닉되어 있는 프로세스 조사
(1)
pslist: 시스템의 프로세스를 열거하기 위함

(2) psscan: 풀 태그 스캐닝을 사용하여 프로세스들을 열거하기 위해 사용되는데 종료된 프로세스들과 루트킷에 의해 숨겨지거나 연결이 끊어진 프로세스들을 찾을 수 있음

(3) psxview: pslistpsscan으로 숨겨진 프로세스를 찾음

(4) ssdt: System Service Descriptor Table(SSDT)에서 후킹된 것을 찾음


psxview 플러그인은 pslistpsscan을 교차하여 숨겨진 프로세스를 찾는 역할

pslist는 각 프로세스가 더블 링크드 리스트로 연결되어 있는 것을 이용해서 프로세스 목록을 출력하지만 psscan은 메모리 이미지의 처음부터 끝까지 스캔을 하여 프로세스 목록을 출력하는 형식
-> 그러므로 psscan에서는 확인이 가능하지만 pslist에서 확인이 안되는 프로세스는 악성 일 가능성이 높음

Psscanpslist와 유사하지만 pool tag 스캔을 통해 프로세스 목록을 생성하기때문에 DKOM을 통해서 프로세스를 은닉하는 경우에도 출력이되는 차이점이 있음

※DKOM(Direct Kernel Object Manipulation) : 자신의 앞 뒤에 존재하는 EPROCESSActiveProcessLinks를 조작하여 자신을 건너뛰고 서로 직접 연결되도록 조작하는 기법 




2. Volatility 분석 (SSDT 후킹 내용 간략 설명)

1) 메모리 덤프

- Dumpit이나 기타 메모리 덤프 할 수 있는 툴을 사용하여 메모리 덤프


2) 이미지 확인 

- profile 확인


3) 프로세스 목록 확인

pslist, psscan, psxview, ssdt를 통해 목록 확인
- volatility -f
덤프파일 --profile=Win7SP1x86 pslist > c:\usb\pslist.txt

- volatility -f 덤프파일 --profile=Win7SP1x86 psscan > c:\usb\psscan.txt

- volatility -f 덤프파일 --profile=Win7SP1x86 psxview > c:\usb\psxview.txt

- volatility -f 덤프파일 --profile=Win7SP1x86 ssdt > c:\usb\ssdt.txt

4) (ex. ssdt 후킹 사례)

ssdt를 확인 결과 ntoskrnl.exe / win32k.sys 이외에 목적지로 설정 되어있다는 가정 (후킹 된 것임)

(꼭 위에 두개로 owned by <ntoskrnl.exe / win32k.sys> 가 있어야됨  (왼쪽은 시스템쪽 api 오른쪽은 gui 관련 api))

5) ssdt 후킹 확인

type ssdt.txt | findstr /i /v ntoskrnl.exe | findstr /i /v win32k.sys


6) 다음 진행 사항들  

-Sleutkit 와 같은 툴을 사용하여 은닉 악성파일 추출


(본 내용은 해당 내용 범위에 벗어나는 내용이기 때문에 다루지 않음

추후 $MFT, UserJnrl, Log File 을 추출하고, 해당 내용을 분석 하는 방법에 대해 포스팅 할 예정)



3. Cuckoo 연동

Cuckoo는 Volatility 연동을 지원을 하는데

- 시간이 엄청 오래 걸림... 사실 샌드박스는 3~5분에 한 파일에 대해 끝내야 되는데 메모리 덤프 및 분석을

위한시간이 많이 소요됨

- Cuckoo가 뭔가 큰 그림을 보는거 같은데 잘 모르겠음..


설정파일 변경

- cuckoo.conf 변경

- memory_dump = on으로 변경


processing.conf 변경

메모리 분석 기능 활성화

- enabled = yes로 변경

memory.conf 변경

모두 yes 로 변경



1) VB2016 paper: Open source malware lab(http://kkn1220.tistory.com/115)

2) Cuckoo Sandbox (http://kkn1220.tistory.com/116)

3) Thug (http://kkn1220.tistory.com/117)

4) Volatility (http://kkn1220.tistory.com/119)


Bro


1. Bro 개념

Bro는 침입탑지 시스템(IDS) 중 하나

- 네트워크 패킷을 읽어 유해한 내용을 탐지하는 솔루션에서 출발-> 탐지 뿐만 아니라 클러스터링과 분석까지 수행

- 분석에는 오프라인 분석과 포렌직까지 수행 (진행 중인데 현재 상황 확인 필요)
- 다양한 응용 프로토콜 지원(DNS, FTP, HTTP, IRC, SMTP, SSH, SSL )
- 포괄적인 IPv6 지원.


2. Bro Architecture


Tap: 감청을 위해 패킷 스트림의 복사본을 만드는 메커니즘

- Frontend: 트래픽을 많은 스트림 또는 플로우들로 나누는 호스트 상의 기술
- Manager: 로그 메시지들을 받아 처리하고, 중복 노티스 제거
- Proxy: 동기화 상태 관리
- Worker: 네트워크 트래픽을 스니핑하고, 프로토콜 분석 수행
            
모든 프로토콜에 대한 파싱과 분석 수행

Bro는 멀티쓰레드가 아님. 그래서, 일단, 싱클 프로세서 코어의 한계가 있고, 현재 이를 위한 선택사항으로 부하를 다수 코어에 분배하는 것을 고려할 수 있음



3. 설치

1) Bro 다운로드

https://www.bro.org/download/index.html

2) 필수 설치 항목 설치

$sudo apt-get install cmake make gcc g++ flex bison libpcap-dev python-dev swig zlibig-dev

3) 컴파일 설정 파일 생성

$ sudo ./configure

4) 컴파일 및 설치

$sudo make


$sudo make install

4. 실행

(자세한 실행은 추후 진행 예정..)



http://www.hakawati.co.kr/215 참고


1) VB2016 paper: Open source malware lab(http://kkn1220.tistory.com/115)

2) Cuckoo Sandbox (http://kkn1220.tistory.com/116)

3) Bro (http://kkn1220.tistory.com/118)

4) Volatility (http://kkn1220.tistory.com/119)


Thug


1. Honeypot개념

허니팟이란 비정상적인 접근을 탐지하기 위해 의도적으로 설치해 둔 시스템

- 이를 통해 공격자를 추적하고 정보를 수집하는 역할 수행

- 공격자를 속이기 위해 마치 정상 시스템에 침투한 것처럼 속임

- 특징으로 사용자 PC 환경과 유사하여야 하며, 해당 시스템에 접근하는 모든 패킷을 감시해야 함

- Client Side Honeypot, Server Side Honeypot


2. Client Side Honeypot 종류 (HoneyClient)


웹 브라우저에 초점을 두기 때문에 웹 서버와의 상호작용에서 악의적인 행위를 탐지하는 부분으로 특화

-> Drive-By Download 형태와 같은 공격에 대한 탐지와 연구에 많은 도움


1) High interaction:
-
실제 브라우저를 통해 웹 서버에 방문 후 발생하는 파일의 변화, 레지스트리 변화 등의 시스템의 변화를 관찰하는 시스템으로 실제 시스템을 구현하여 사용하는 형태

- 장점: Unknown 공격(Zero-day attack) 탐지 가능
- 단점: 구현하기가 쉽지 않고, 시스템 성능에 따라 속도 차이가 심함

- 종류: Capture-HPC, HoneyClient, Strider HoneyMonkey, Web Exploit Finder, Cuckoo


2) Low interaction

- 실제 시스템을 구현하는 것이 아닌 서버와 상호작용하는 부분만을 구현하여 시뮬레이션

- 장점: 구현하기가 쉽고, 시스템 일부만을 구현하기 때문에 자원소모가 적음

- 단점: 알려진 공격에 대해서만 정보 수집이 가능

- 종류: HoneyC, Monkey-Spider, PhoneyC, SpyBye, Thug, CUJO, Jsand, Dionaea, Glastopf


3) Hybrid Client Honeypots

- 1, 2를 결합한 형태로 알려진 악의적인 행위에 대해서는 낮은 상호작용 허니팟을 통해 빠르게 탐지하고 알려지지 않은 악의적인 행위는 높은 상호작용 허니팟을 통해 탐지하여 탐지 속도 및 미탐에 대한 대응
- 종류: HoneySpider



3. 설치(Ubuntu 16.04 기준)

- Thug의 경우 단순 설치만을 하였기 때문에 Docker로 설치함

$sudo apt-get install docker.io


$sudo docker pull honeynet/thug


4. 실행

$sudo docker run –it honeynet/thug


(Usage)


Test site는 malicious URL 을 참고함

해당 Thug는 자바스크립트 내용 및 크롤링을 통해 분석하는 기능 또한 제공



+ Recent posts