Computer/Network

Network Attack Traffic Analysis 2

우저미 2024. 2. 15. 00:32
네트워크 트래픽을 분석해보자!

 

네트워크 분석 도구

- Security Onion
- Wireshark
- Xplico
- Network Miner
- CapTipper

- IDS(Sguil)

- VlrusTotal

 

샘플 분석

- MALWARE-TRAFFIC-ANALYSIS.NET

- #01 (2015-08-31)

- #02 (2016-07-07)

- #03 (2016-10-15)

 

자바스크립트 난독화

- 자바스크립트
- 기초 문법
- 자바스크립트 난독화
- 난독화 해제


네트워크 분석 도구

Security Onion

침입 탐지, 네트워크 보안 모니터링 및 로그 관리를 위한 리눅스 배포판

우분투 기반

네트워크 분석 도구를 대부분 담고 있음

 

Wireshark

다른 네트워킹 프로토콜의 구조(캡슐화)를 이해하는 데이터 캡처 프로그램

다양한 네트워킹 프로토콜에 지정된 대로 필드를 구문 분석하고 표시

pcap을 사용하여 패킷을 캡처하므로 pcap이 지원하는 네트워크 유형의 패킷만 캡처

디스플레이 필터를 사용하여 데이터 디스플레이를 개선

새로운 프로토콜을 분석하기 위해 플러그인 개발 가능

https://ojeomi-study.tistory.com/33

 

Wireshark

와이어샤크(Wireshark) 분석을 해보자! 1. 소개 - Packet Filter - Display Filter - Coloring - Mark - 패킷 검색 - 요약 기능 - 악성코드 샘플 분석 사이트 - 패킷에 comment 추가하기 - 원하는 패킷만 선택하여 분석

ojeomi-study.tistory.com

자주 사용하는 디스플레이 필터 top 10

ip.addr == 10.0.0.1 출발지나 목적지의 ip가 10.0.0.1인 경우 출력
ip.addr == 10.0.0.1 && ip.addr == 10.0.0.2 두 개의 정의된 IP 주소 모두 출력
http or arp 모든 http와 dns 프로토콜 출력
tcp.port == 4000 출발지나 목적지의 포트가 4000인 TCP 패킷 출력
tcp.flags.reset == 1 모든 TCP reset 플래그가 활성화된 패킷 출력
http.request 모든 HTTP GET 요청 패킷 출력
tcp contains traffic traffic 이라는 단어(특정 문자열)를 포함하는 TCP 패킷 출력
!(arp or icmp or dns) 괄호 내용을 모두 제외한 패킷을 출력
contains 33:27:58 헥스 값(0x33 0x27 0x58) 필터
tcp.analysis.retransmission 추적에서 모든 재전송을 표시(느린 응용 프로그램 성능 및 패킷 손실을 추적할 때 효과적)


Xplico

포함된 응용 프로그램 데이터를 인터넷 트래픽 캡처에서 추출

오픈 소스 네트워크 포렌식 분석 도구(NFAT)

 

특징

- 지원되는 프로토콜이 다양함(HTTP, SIP, IMAP, POP, SMTP, TCP, UDP, IPv6 .. )

- 각 애플리케이션 프로토콜에 대한 PIPI(Port Independent Protocol Identification)

- SQLite 데이터베이스, MySQL 데이터베이스, 파일에 데이터 및 정보 출력

- 재구성한 각 데이터에는 플로우를 고유하게 식별하는 XML 파일과 재구성된 데이터가 포함된 pcap 연결

- 임의의 패킷 또는 소프트 ACK 검증을 위한 ACK 검증을 통한 TCP 리어셈블리

- pcap에 포함된 DNS 패키지에서 역 DNS 조회

- 모듈화가 특징임

- 디스패처를 쉽게 생성할 수 있는 기능이 있음


Network Miner

Windows 용 Network Forensic Analysis Tool (NFAT)

OS, 세션, 호스트 이름, 열린 포트 등 검색하기 위해 수동 네트워크 스니퍼/패킷 캡처 도구로 사용

pcap 파일에서 전송된 파일 및 인증서를 다시 생성, 재구성

고급 네트워크 트래픽 분석(NTA)을 쉽게 수행함


CapTipper

python으로 제작된 악성 트래픽 분석 도구

디지털 포렌식 분석을 하기 위한 기본 기능 제공 (트래픽 내 파일 추출, 트래픽 흐름 분석, 패킷 헤더, 내용 분석, 헥사 뷰어 등)

패킷 캡처 파일 흐름 재구성 기능 제공 (log 명령으로 모니터링)

통신을 오브젝트 단위로 구별하여 분석 기능 제공

분석 보고서 생성 제공 (--report)

명령어 설명
hosts [ID] 패킷 캡처 파일 내의 호스트 별 통신을 한눈에 정리
info  [ID] 오브젝트 ID 별 정보 출력
head  [ID] 오브젝트 별 통신 프로토콜 헤더 출력
body  [ID] 오브젝트 별 통신 내용 출력
ungzip  [ID] 통신 내용이 압축 파일일 때 압축 해제
iframes  [ID] 오브젝트 별 통신 내용 중 iframe 태그 검색하여 출력
convs  [ID] 패킷 캡처 파일 흐름 전체 출력
hexdump  [ID] 오브젝트 별 통신 내용을 hex 값으로 출력
Dump  [ID | all] <Full Path> 패킷 캡처 파일 내의 파일 로컬 저장

 

IDS(Sguil)

IDS : 지나가는 패킷을 모니터링하고 나타나는 네트워크에 대한 일종의 시그니처 같은 것들을 활용해서 로그 기록

 

Sguil

네트워크 보안 모니터링 및 탐지 이벤트 분석 도구

일반 GUI 응용 프로그램

 

Snort : 시그니처 기반 네트워크 침입 탐지 시스템

동작 순서

1. Sniffer : 네트워크 패킷 수집

2. Packet Decoder : 전처리기와 탐지 엔진이 파싱할 수 있도록 정규화

3. Preprocessor : 특정 행위가 발견된 패킷을 탐지 엔진으로 전송

4. Detection Engine : 전달받은 패킷을 스노트 규칙에 매칭되는지 확인

5. Alert/Log : 스노트 규칙에 매칭된 경우, 경고 출력 및 기록

 

VlrusTotal

온라인 분석 사이트

기존에 동일한 샘플코드가 존재했는지 확인 가능

 

기능

- 파일 전송 및 검색

- 이미 제출된 파일 재검색

- 파일 검사 보고서 가져오기

- URL 보내기 및 스캔

- URL 스캔 리포트 가져오기

- IP 주소 보고서 검색

- 도메인 보고서 검색

- 파일 및 URL에 대한 의견 달기

- 공용 API와 상호 작용하는 스크립트


샘플 분석

Malware-traffic-analysis

https://www.malware-traffic-analysis.net/

 

malware-traffic-analysis.net

 

www.malware-traffic-analysis.net

 

#01 (2015-08-31)

#02 (2016-07-07)

#03 (2016-10-15)


자바스크립트 난독화

자바스크립트 필요한 이유

홈페이지를 통한 악성코드 유포

페이지 내부에 이상한 코드 삽입


기초 문법

자바스크립트 동작 순서

1. <script> 발견

2. 렌더링 엔진 일시 중지

3. 자바스크립트 해석기 동작

4. 실시간 해석 실행

5. HTML인 경우 메모리에 저장

6. </script> 발견

7. 메모리에 저장된 HTML 코드를 렌더링 엔진에 전달

8. 자바스크립트 엔진 중지

9. 렌더링 엔진 재동작

 

기초 문법

Alert : 경고창 생성

 

문자열

따옴표 또는 쌍따옴표를 사용하여 묶어서 문자열을 나타냄

내부에 중복되는 따옴표는 반드시 역슬래시 붙여서 사용

 

변수 선언

타입 따로 선언 없이 var로 선언

 

데이터 타입 확인

typeof() 함수 사용

 

조건절

>=

<=

>

<

==

!=

 

논리연산자

! : not

&& : and

|| : or

 

문자열 치환

replace() 함수 사용


자바스크립트 난독화

JavaScript Obfuscation

- 소스를 분석하기 힘들게 하여 분석시간을 늦춤

- 악성코드 배포 기간 연장

 

JavaScript Compress : 필요 없는 값을 삭제하여 자바스크립트를 압축시킴

JavaScript function Expression : 함수를 사용해서 억지스럽게 데이터의 크기를 늘리고 흐름을 혼란스럽게 함

JavaScript Data Split : 사용하는 코드들을 나눠서 저장하고 마지막에 실행

JavaScript Data replace : 사용하는 코드에 쓰레기 코드를 삽입하고 나중에 모두 제거

JavaScript Data Encoding : 인코딩하여 사람이 알아볼 수 없는 데이터로 변경


난독화 해제

alert

document.write()

Chrome Terminal

<xmp>

'Computer > Network' 카테고리의 다른 글

Network Attack Traffic Analysis 1  (2) 2024.02.15
Wireshark  (2) 2024.02.06
OSI 7 Layer  (0) 2024.02.05
네트워크 개요  (0) 2023.10.21