연습 샘플 분석

 

1. 2015-08-31 - TRAFFIC ANALYSIS EXERCISE - WHAT'S THE EK? - WHAT'S THE PAYLOAD?

 

- xplico

 

 

- sguil

 

 

클라이언트 ip : 192.168.137.239

site : 64.20.39.203 <- 가장 먼저 감염 시작

redirection : 46.108.156.181

C&C : 72.55.148.19

악용 도구 키트의 이름 : Neutrino

페이로드 : AlphaCrypt

 

- networkminor

 

 

NetworkMinor로 위와 같이 감염된 windows 컴퓨터의 ip주소, MAC주소, 호스트 이름 확인 가능

 

 

감염 체인 시작한 웹사이트 : vitaminsthatrock.com

 

- 감염 사이트 확인

 

 

 

사이트 이름 확인 : vclphjybj.ioxbpjgtqvwqfzmwhn.ga / tpfnmvg.ioxbpjgtqvwqfzmwhn.ga

 

 

 

iframe 사용하여 바로 보이는 것을 와이어샤크로도 확인 가능

 

- NBNS란?

NetBIOS에서 네트워크 자원에 대한 명칭의 등록, 검색, 해제 등을 수행하는 서비스

-> 와이어샤크로 필터링하여 확인 가능

 

 

2. 2016-07-07 - TRAFFIC ANALYSIS EXERCISE - EMAIL ROULETTE

 

1) 감염을 일으킨 메일은 무엇인가?

 

감염을 일으킨 메일

 

 

zip 파일에 포함되어 있는 악의적인 파일 발견 -> 자바스크립트 난독화되어 읽기 어렵게 나와 있음

eval( ) 함수 : t42를 실행하는 함수 -> document.write( )로 바꾸기 & 이 파일을 <script></script>로 묶어 실행

 

 

네모친 부분 : 악의적인 사이트명이 나와 있음

-> 도메인 주소 : 5개 (리스트에 나와 있는 주소들)

 

 

위와 같이 NetworkMiner로 확인 가능

 

2) 감염된 날짜와 시간은 언제인가?

 

 

위와 같이 Xplico 이용하여 확인 가능

 

3) 감염된 IP주소, MAC주소, 호스트 이름, 사용자 이름은 무엇인가?

 

 

- IP 주소 : 172.16.1.126

- MAC 주소 : 00508BAB2E3C

- 호스트 이름 : Chevotarevich

 

 

- 사용자 이름 : Nick (이메일에서 발견함)

 

 

3. TRAFFIC ANALYSIS EXERCISE - CRYBABY BUSINESSMAN

 

 

위와 같이 NetworkMiner로 악성코드 사이트 확인

 

 

위와 같이 악성코드가 활동한 날짜와 시간을 확인할 수 있다.

위 사이트에 접속해보면 구글에서 멀웨어 감지 경고를 해주지만 이를 무시하고 열면 rew.KAGHAAN.COM 사이트로 연결된다.

 

 

코드를 확인해보면 iframe으로 rew.KAGHAAN.COM이라는 악성사이트에 접속하도록 되어 있는 것을 확인할 수 있다.

 

 

위와 같이 rew.kaghaan.com IP 확인

 

 

rew.KAGHAAN.COM에 들어가보면 아무런 내용도 뜨지 않음

소스코드 보기를 누르면 위와 같이 자바스크립트 난독화가 된 내용을 확인할 수 있음

eval함수가 있는 것으로 보아 무언가 악성코드를 실행할 것임을 유추할 수 있음

 

따라서 이 문제를 정리해보면 피해자는 unwrappedphotos.com 사이트에 접속을 했고 악성코드 경고창이 떴음에도 불구하고 무시하고 접속함 -> 랜섬웨어가 다운로드 되었고, 이 랜섬웨어가 모든 파일을 암호화시킨 것이다.

 

 

자바스크립트

 

1. 네트워크 트래픽 분석에 자바스크립트가 필요한 이유


- 홈페이지를 통한 악성코드 유포
- 페이지 내부에 이상한 코드 삽입
    : 피싱/파밍이 아닌 경우
    : 브라우저 exploit 공격 등이 가능
-> 자바스크립트 난독화를 해결해야 정보 파악이 가능

 

 

2. 자바스크립트란?


- 객체 기반의 스크립트 프로그래밍 언어
- 주로 웹브라우저 내에서 사용
- 대부분의 프로그래밍 언어와 유사
- 라인 구분에 ‘;’ 사용
- html 내부 사용 시 -> <scirpt>내용</script>

 

 

3. 자바스크립트 동작 순서


-> <script> 발견

-> 렌더링 엔진 일시 중지

-> 자바스크립트 해석기 동작

-> 실시간 해석 실행

-> HTML인 경우 메모리에 저장

-> </script> 발견

-> 메모리에 저장된 HTML 코드를 렌더링 엔진에 전달
-> 자바스크립트 엔진 중지

-> 렌더링 엔진 재동작

 

 

4, 기초 문법


1) alert : 파라미터로 받은 문자열 팝업창 띄움 ex) <script>alert('Hello!');</script>


2) 문자열
- ‘ 또는 “를 사용하여 묶어서 나타냄
- 내부에 중복되는 따옴표 사용 시 \를 붙여주어야 함

\t

수평 탭

\n

즐바꿈

\‘

작은 따옴표

\“

큰 따옴표

\\

역슬래시

 

3) 변수 선언
- 따로 타입을 선언하지 않고 var로 선언
   ex) 숫자 -> var a = 1
        문자열 -> var b = “string”
        배열 -> var c = [1,2,3,4,5]
- 데이터 타입 확인 시 typeof() 함수 사용
   ex) alert(typeof(a))


4) 배열
- 괄호([ , ])를 사용하여 배열로 묶음
- 배열에는 다양한 형태의 데이터 선언 가능
   ex) 숫자, 문자열, 불린, 함수, 배열 등


5) 조건절
- ’a’ == ‘a’; -> True
- ‘a’ == ‘abc’; -> False
- 100 > 10; -> True
- “ == false; -> True
- “ == 0; -> True
※ 아무것도 없는 것은 0이나 False와 같다.

>=

좌변이 크거나 같다

<=

우변이 크거나 같다

>

좌변이 크다

<

우변이 크다

==

서로 같다

!=

서로 다르다

 

6) 논리 연산자
- ‘a’ == ‘a’ && 100 > 10;

!

논리 부정 연산자

&&

논리곱 연산자

||

논리합 연산자

 

7) replace()
- 문자열 치환 함수
- 문자열 일부를 교체해줌

 

 

5. 자바스크립트 난독화(JavaScript Obfuscation)


1) 개념
- 자바스크립트 코드를 읽기 어렵게 하는 기법


2) 필요성
- 소스를 알아볼 수 없게 감춤
- 소스를 분석하기 힘들게 하여 분석시간 늦춤 -> 악성코드 배포 기간 연장


3) 난독화 기법
- JavaScript Compress : 불필요한 값을 삭제하여 압축시킴
- JavaScript Fuction Expression : 함수 사용하여 데이터의 크기를 늘리고 흐름 방해
- JavaScript Data Split : 코드를 나누어서 저장하고 마지막에 실행
- JavaScript Data Replace : 쓰레기 코드 삽입하고 나중에 모두 제거
- JavaScript Data Encoding : 인코딩하여 알아볼 수 없는 데이터로 바꿈


4) 난독화 해제하기
- alert
- document.write()
- Chrome Terminal
- <xmp>

'2020 WINTER STUDY > Network' 카테고리의 다른 글

4주차  (0) 2021.02.12
2주차  (0) 2021.01.18
1주차  (0) 2021.01.11

+ Recent posts