| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- 투두리스트
- 사이버보안
- leetcode
- orcle
- 자바스크립트
- Practicalmalwareanalysis
- 취업준비
- gamification
- JavaScript
- toVillage
- 가차시스템
- 악코분
- N-ary Tree Preorder Traversal
- dualtable
- 사이드프로젝트
- 코딩테스트
- 리버싱
- JS
- lab03-03.exe
- 듀얼테이블
- 균형이진트리
- 다해요
- to-do
- 토이프로젝트
- 투빌리지
- 릿코드
- TODOLIST
- 마을짓기
- 악성코드분석
- 대학생
- Today
- Total
이것저것
기초정적분석하기, Lab 01-02.exe 본문
블로그 글 너무 오랜만에 쓴다...........
시험 끝나고 정말 정말 한 게 많은데
그걸 써야하는데
그걸 쓰면 좋은데! 남들한테도 나 이렇게 했어요 자랑하고 싶은데! 정말 뭐가 많은데!
나중에 차차 작성하기로 하고
오랜만에 찾아온!~!~!~!!!!!!!!!~~~~~~~~~~~~!!!!!!!!!! 악성코드 분석
악성코드를 분석하는 여러 방법들 중에서 기초 정적분석을 이용해볼 거다
문제를 본격적으로 풀기 전에 기초 정적분석이 뭔지에 대해 공부해보자.
기초 정적분석이란?
프로그램의 기능을 파악하기 위해 파일을 실행하지 않고 코드나 프로그램의 구조를 분석하는 것
이러한 기초 정적분석의 방법으로는
1. 악성코드의 목표 아키텍처 식별
2. 암호학적 해시함수 사용
3. 안티바이러스 (AV) 도구 사용
4. 패킹/난독화 확인
5. DLL 의존성 확인
6. 문자열 추출
등이 있다.
이 방법들 중 오늘은
안티 바이러스 도구, 패킹/난독화, DLL 의존성, 문자열 추출을 통해 분석할 예정이다.
안티 바이러스 도구 사용
안티바이러스 스캐닝이라고도 부른다.
안티바이러스 스캐닝에는 크게 두 가지 방법이 있는데 그중에서 file signature를 검색하여 찾는 방법을 패턴 매칭 분석이라고 한다. 이때 사용하는 도구는 대표적으로 https://www.virustotal.com/gui/home/upload 이 있다.
VirusTotal
Analyse suspicious files and URLs to detect types of malware, automatically share them with the security community
www.virustotal.com
해당 사이트에 분석할 악성코드 파일을 올리고 결과를 확인하면 되는데
악성코드가 아닌 파일을 올린다면

악의적인 flag 즉, 악성코드가 없다면서 위의 사진과 같이 뜬다.
그렇다면 오늘 내가 분석할 Lab 01-02.exe는 어떻게 나올까?




너무나도 명백한 악성파일이군..........................
빨간 글씨를 잘 보면 반복되고 있는 단어들을 확인할 수 있는데
1. Trojan
2. win32
3. cliick(er)
Trojan? 그게 뭐지?

Trojan horse, 트로이 목마
그리스 로마 신화의 트로이 전쟁에 등장하는 목마로, 전쟁을 마침표를 찍은 작전에서 비롯된 용어다.
겉보기에는 정상적인 프로그램으로 보이지만 악성 루틴이 숨겨져 있는 프로그램이다.
그러니까 정리를 해보자면
Lab 01-02.exe는 win32로 동작하는데, 그 형태가
Trojan.clicker인 것이다.
패킹/난독화 흔적 확인하기


PEiD로는 잘 모르겠어서, PEview까지 가져와서 비교해보자면


UPX가 뭔진 모르겠지만, UPX로 감싸 져 있다는 것을 알 수 있다. (이를 패킹이라 부른다.)
즉, PEiD의 EP section을 통해 UPX으로 패킹되어있음을 알 수 있다.
UPX
오픈소스 실행 파일 압축 프로그램으로, 여러 운영체제에서 수많은 파일 포맷을 지원한다.

UPX가 설치되어있지 않고, UPX로 언패킹을 해본 적이 없어
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=wsi5555&logNo=221261160807
[ Reversing ] UPX 패킹, 언패킹
1. UPX 패킹, 언패킹 UPX는 컴프레서로서 컴프레싱 기술을 지원해 줍니다. UPX를 활용해서 컴프레...
blog.naver.com
위 링크대로 따라 하기로 했다.
※중간에 시스템 환경변수를 설정해줘야 한다.
난 환경변수 설정해줘야 하는 건 알았는데, 하는 방법도 아는데 Path에 설정하는걸 항상 win 10 이상에서만 해봤어서 어떻게 하는지 몰랐다. 그래서 가져온 win7 환경변수 설정.... 이 글 읽는 모든 사람들은 고생하지 말아 주세요ㅠ https://ggari.tistory.com/80
윈도우7 자바 환경변수 설정
JDK 와 이클립스 설치를 먼저 합니다 설치를 하지 않았다면 먼저 설치 후 환경변수를 설정해주세요 순서는 상관없지만 참고하시라고요~ JDK 설치 방법 : http://ggari.tistory.com/category/WEB/JSP%28JAVA%29?page
ggari.tistory.com

Import (DLL 의존성) 확인
DLL는 Dependency Walker를 통해 확인할 수 있는데,

Lab01-02.exe파일은 4개의 DLL가 import 되어있는데
각 DLL을 살펴보자면
KERNEL32.DLL
메모리, 파일, 하드웨어 접근과 조작
ADVAPI32.DLL
서비스 관리자, 레지스트리 같은 추가 윈도우 핵심 컴포넌트
MSVCRT.DLL
C와 C++ 프로그램이 요구하는 일반적인 라이브러리 함수 집합들을 제공
WININET.DLL
FTP, HTTP, NTP 등과 같은 상위 수준의 네트워크 프로토콜에 대한 라이브러리
아까 안티 바이러스 도구 사용 결과로 Trojan.clicker에 언급했었는데, Import 확인을 통해 Trojan.clicker가 무엇인지 추측해볼 수 있다.
Trojan.clicker는 컴퓨터의 메모리에 탑재되어(KERNEL32.DLL, ADVAPI32.DLL) 지속적으로 네트워크 연결을 시도(WININET.DLL) 하는 악성코드일 것이다.
그렇다면, Lab01-02.exe는 Trojan.clicker인 C/C++을 기반으로 만들어진 프로그램(MSVCRT.DLL)이다.
문자열 추출
pestudio를 통해 분석해보자.
이걸 위해서 언패킹 해줬다.


그럼 어디로 지속적으로 접속하려고 할까?
감염된 시스템에서 악성코드를 인식하는데 어떤 호스트 기반이나 네트워크 기반의 증거를 사용했을까?
http://www.malwareanalysisbook.com에 접근한다는 것을 알 수 있다. 이 부분이 이 바로 네트워크 기반의 증거다.
최종 결론
Lab01-02.exe는 C/C++을 기반으로 만들어진 Practical Malware Analysis 책 구매 페이지에 지속적으로 접근하게 하는 Trojan.clicker이다.

덧붙여서,
Trojan virus 형태에는 여러 가지가 있는데,
그중에서 clicker는 시스템 메모리에 탑재되어 특정 웹사이트에 지속적으로 또는 정기적으로 연결을 시도하는 유형으로 특정 사이트로 트래픽을 유도하는 것처럼 보이게 하여 돈을 벌거나, 유료 추천을 인위적으로 부풀려 경쟁자의 예산을 고갈시키는 것이라고 한다.
참고
https://namu.wiki/w/%ED%8A%B8%EB%A1%9C%EC%9D%B4%20%EB%AA%A9%EB%A7%88
트로이 목마 - 나무위키
이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다. (단, 라이선스가 명시된 일부 문서 및 삽화 제외) 기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권
namu.wiki
트로이 목마 (컴퓨팅) - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 트로이 목마(Trojan horse)는 악성 루틴이 숨어 있는 프로그램으로, 겉보기에는 정상적인 프로그램으로 보이지만 실행하면 악성 코드를 실행한다. 이 이름은 트로
ko.wikipedia.org
https://www.imperva.com/learn/application-security/trojans/
What is a Trojan Virus | Trojan Horse Malware | Imperva
Learn how trojans work, discover common types of trojans and see how to protect your organization against trojan threats.
www.imperva.com
https://ko.wikipedia.org/wiki/UPX
UPX - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. UPX(Ultimate Packer for eXecutables)는 여러 운영체제에서 수많은 파일 포맷을 지원하는 오픈 소스 실행 파일 압축 프로그램이다. GNU 일반 공중 사용 허가서를 통해 공
ko.wikipedia.org
[ Reversing ] UPX 패킹, 언패킹
1. UPX 패킹, 언패킹 UPX는 컴프레서로서 컴프레싱 기술을 지원해 줍니다. UPX를 활용해서 컴프레...
blog.naver.com
윈도우 라이브러리 파일 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 이 글은 마이크로소프트 윈도우 라이브러리 파일들에 대한 설명이다. 마이크로소프트 윈도우 운영 체제는 dll이라고 알려진 라이브러리를 지원하는데, 이것들
ko.wikipedia.org
'전공 > 악성코드분석' 카테고리의 다른 글
| IDA Pro 다루기 with Lab05-01.dll (0) | 2022.11.23 |
|---|---|
| 기초동적분석 Lab03-03.exe (1) | 2022.11.15 |
| 오랜만에 쓰는, Lena tutorials 3! (0) | 2022.10.04 |
| IAT 총정리 (0) | 2022.10.04 |
| lena tutorials 2, JUMP로 해결하기 (0) | 2022.09.27 |