연습 샘플 분석
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 |