| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 듀얼테이블
- 사이버보안
- 취업준비
- 가차시스템
- 릿코드
- to-do
- 균형이진트리
- Practicalmalwareanalysis
- toVillage
- JS
- gamification
- leetcode
- N-ary Tree Preorder Traversal
- dualtable
- 리버싱
- 토이프로젝트
- 악성코드분석
- 마을짓기
- 투두리스트
- JavaScript
- lab03-03.exe
- 다해요
- 코딩테스트
- 투빌리지
- TODOLIST
- 대학생
- 자바스크립트
- orcle
- 악코분
- 사이드프로젝트
- Today
- Total
이것저것
기초동적분석 Lab03-03.exe 본문
신쥔 이제보니...
과제할때만 블로그 들어오는거 같다?!
블로그는 1일 1포스팅이 원칙이라구!
※해당 포스팅은 새벽에, 코드 깍다가 쓰는 글로 오타와 앞 뒤 논리가 안맞을 수 있습니다. 조금씩 수정해나가겠습니다.
아 졸립다 여러분 잠은 사람을 친절하게 만듭니다. 바른 대학생이란 모름지기 밤에 숙면을 취하는 대학생

시작합니다 기초동적분석을 이용한 Lab03-03.exe 파헤치기
기초 동적 분석이란?
악성코드를 실행하고 Runtime 동안 동작을 분석하는 기술
그러나 악성코드를 실행하면 피해를 입을 수 있기 때문에 안전한 환경에서 악성코드를 실행해야한다.
즉, Virtual Machine(가상 머신, VM)에서 악성코드를 실행한다는 것이다.
VM을 이용하면 완전히 다른 컴퓨터를 사용하게 되는 것이기 때문에 시스템이 감염되거나, 네트워크를 통해 개인정보가 유출될 위험없이 악성코드를 실행 채로 관찰할 수 있다.
(*다음 포스팅에서는 VM에 대해 조금 더 자세하게 다뤄보겠다. 지금은 너무 졸려서 정리하고 공부할 여력이 안된다. 그러니까 여러분들은 일찍 주무세요.)
기초동석분석에 쓰이는 도구들은 여러가지가 있는데
① Process Explorer
향상된 작업관리자로, 시스템에서 실행 중인 프로세스의 상·하위 관계를 트리구조의 형태로 모니터링하여 화면에 표시해준다.
자세한 사용 방법은 문제를 풀면서 필요할 때 설명하겠다.

② Process Monitor
레지스트리, 파일 시스템, 네트워크, 프로세스와 스레드 행위를 모니터링 할 수 있는 윈도우 감시 도구이다.

이때 주의할 점이 있는데, 모든 시스템 호출을 감시하고 RAM을 이용해 이벤트를 수집하기 때문에 VM에서 사용할 수 있는 메모리를 다 소진하면 다운될 수 있다.
③ regshot
두 레지스트리 스냅샷을 만들고 비교할 수 있는 오픈 소스 레지스트리 비교 도구로
악성코드 실행 전과 후, 두가지 상황의 레지스트리 스냅샷을 찍어 비교할 수 있다.

④ wireshark
가짜 네트워크를 생성하여 실제로 인터넷에 접속하지 않고 악성코드의 네트워크 행위를 알 수 있게끔 하는 도구

이제 본격적으로 Lab03-03.exe를 풀어보자.
1.Process Explorer로 이 악성코드를 모니터링했을 때 무엇을 알아냈는가?


Lab03-03.exe를 실행하면 실행되면서 자식 프로세스로 svchost.exe가 빠르게 실행되면서 금새 종료되었다.
그러고 자식 프로세스였던 svchost.exe만 덩그러니 남았다.
잠깐, svchost.exe? svchost.exe가 뭘까?
svchost.exe
서비스 관할 프로세스의 이름으로 서비스들은 DLL에 포함되어 있다.
그럼 이제 생성된 svchost.exe를 좀 더 조사해보자
생성된 svchost.exe를 두번 누르면 아래와 같은 해당 프로세스의 속성창이 뜬다.

Threads 탭에서는 모든 활성된 Threads를 확인할 수 있다.
TCP/IP탭에서는 프로세스가 수신 중인 활성 연결 또는 포트가 표시된다.
Image 탭에서는 실행 파일 경로가 표시된다.
Strings 탭에서는 메모리에 올라간 문자열을 확인할 수 있다.
2.실시간 메모리 변조를 확인할 수 있는가?
이를 확인하기 위해, svchost.exe의 속성창을 켜서 Strings 탭을 확인하였다.
처음부터 실행되고 있던 svchost.exe (좌) 와 Lab03-03.exe가 실행된 후 생긴 svchost.exe (우) 를 비교했을 때 그림에서 표시해둔 부분에서 가장 큰 차이를 볼 수 있었다.

겉보기에는 정상처럼 보이는 svchost.exe를 하나 만들어 practicalmalwareanalysis.log에
Shift, enter, backspace, tab, ctrl, del, caps lock, a부터 z, A부터 Z 가 눌릴 때마다(이벤트 발생) 그 기록을 남기는 것으로 보인다.
3.악성코드임을 의미하는 호스트 기반 표시자는 무엇인가?
이제 Process monitor를 사용해야한다.

그러나, 정말 많은... 목록이 존재하기 때문에
Process Explorer를 통해 우리가 지켜봐야하는 svchost.exe의 PID만 알아와야한다.


그럼 다음 다음과 같이 필터를 걸러 설정해주면
practicalmalwareanalysis가 생성된 것을 확인할 수 있다.

아까 전에 2의 결과로 키보드로 인한 이벤트가 발생할 때 마다 그 기록을 남길 것이라고 예측했기때문에
실제로 그런지 확인해보자
메모장을 실행시켜서 다음과 같이 저장해주었다.


슬프다. 한순간에 내가 바보라는 것을 널리 알렸다.
이것을 통해 호스트 기반 표시자는 악성코드가 있는 폴더에 생성된 practicalmalwareanalysis.log 파일이라는 것을 알 수 있게 되었다.
4.이 프로그램의 목적은 무엇인가?
총 정리를 해보자.
이 Lab03-03.exe 라는 악성코드는 실행이 되면 악성코드가 있는 폴더에 practicalmalwareanalysis.log 파일을 생성하여 키보드 버튼 《Shift, enter, backspace, tab, ctrl, del, caps lock, a부터 z, A부터 Z》이 눌릴 때마다 어떤 버튼이 눌렸는지 하나하나다 기록을 남기는 프로그램이다.
지금은 wireshark 통해 네트워크에 대한 분석을 해보지 않았는데
만약에 외부와 통신을 할 수 있게끔 되어있다면 키보드 입력 시 중복되는 부분을 가지고 특정 사이트의 아이디/비밀번호 유추해 외부에서 해킹을 시도할 수 있겠다라는 생각이 들었다.
오늘도 끝!
https://ko.wikipedia.org/wiki/Svchost.exe
svchost.exe - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전.
ko.wikipedia.org
'전공 > 악성코드분석' 카테고리의 다른 글
| IDA Pro 다루기 with Lab05-01.dll (0) | 2022.11.23 |
|---|---|
| 기초정적분석하기, Lab 01-02.exe (0) | 2022.11.06 |
| 오랜만에 쓰는, Lena tutorials 3! (0) | 2022.10.04 |
| IAT 총정리 (0) | 2022.10.04 |
| lena tutorials 2, JUMP로 해결하기 (0) | 2022.09.27 |