2024. 3. 25. 13:43ㆍInformation Security 정보보안/Malicious Code Analysis 악성 코드 분석
배울내용:
LAB03-02.dll
LAB03-02.exe
Process Explorer
프로세스 익스플로러
nc 명령어
net cat
넷
악성코드 분석실습
정적 파일 분석도구
automatic analysis
Malicious Code Analysis
지난시간에는 정적분석까지 완료했다
https://sarimus.tistory.com/112
===============================================================
분석 정리 :
>> 분석 파일
>> Lab03-01.exe
01 자동화분석
1)분석 도구 : VIRUSTOTAL
2) 분석내용 : 66/71 개악성 코드 발견 , 알약 Trogan 감지
02 이 파일은 패킹 되거나 난독화가 되어있는가? 만약, 되어있다면 종류는?
1)분석 도구 : Exeinfo PE
2)분석 내용 : 패킹여부 X, PEncrpyt 3.1 FInal > junkcode
03 이파일은 언제 컴파일 되었는가?
1)분석도구 : PEview
2)분석내용 : 2008/01/06 14:51:31 UTC .
04 임포트를 보고 악성행위를 알아낼수 있는가? 그렇다면 어떤 임포트를 보고알수있는가?
1)분석도구 : Strings
2)분석내용 :
ExitProcess
kernel32.dll
WS2_32 ,
SOFTWARE\Classes\http\shell ....
Software\Microsoft|Active Setup\...
http://www.practicalmalwareanalysis.com
Ws2_32 ,
VideoDriver,
vmx32to64.exe
SOFTWARE\Microsoft\Windows\CurrentVersion\Run
SOFTWARE\Microsoft\Windows\CurrentVersion\Exploere\Shell Folders
05. 이파일의 목적은?
원격지 http://www.practicalmalwareanalysis.com 에서의 백도어
===============================================================
지난시간에 이어 이번시간에는 [ 동적분석 ] 을 해보자
그전에 아래의 링크의 Process Explorer 를 다운받자
https://learn.microsoft.com/en-us/sysinternals/downloads/process-explorer
Process Explorer 란?
프로세스 익스플로러(Process Explorer)는 마이크로소프트가 제공하는 윈도우용 시스템 모니터링 도구입니다. 이 도구는 시스템 내에서 실행 중인 프로세스와 스레드, 그리고 해당 프로세스들이 사용하는 리소스를 실시간으로 모니터링할 수 있습니다. 이를 통해 시스템의 성능 문제를 식별하고 해결하는 데 도움이 됩니다.
실행하면 아래처럼보인다
[동적 분석]
> 분석 파일 : Lab03-02.dll
String 으로 Lab03-02.dll 를 하게되면
svchost.exe -k 라는 악성코드로 의심되는게 보인다
이게 실제로 레지스트리에 등록이 되기때문에 실행이 되야한다
먼저 C: WIndows / system32 로 가보면 rundll32.exe 가있다
rundll32.exe는 Microsoft Windows 운영 체제에서 실행되는 실행 파일로 다른 DLL(동적 연결 라이브러리) 파일 내부의 함수를 실행하는 데 사용된다. 일반적으로 "Run a DLL as an App"이라는 이름으로 알려져 있다.
rundll32.exe Lab03-02.dll Install 또는 InstallA
(I 대문자로 해야함!)
그래서 system32.에서 rundll32.exe 를 사용하여 Lab03-02.dll 파일을 실행할수있다
그러나 에러가 뜨긴 하지만 아까 설치했던 Process Explorer 로 확인해보면
이렇게 rundll32.exe 가 실행된걸 볼수있다
이번에는 WIRESHARK로 확인해보자
만약 와이어샤크를 모르면 아래의 링크를 가서 이해하고 오자
https://sarimus.tistory.com/77
아까 처럼 cmd 창에서 rundll32.exe Lab03-02.dll Install 을 하는 순간에
WIRESHARK 에서는 어떤걸 캡쳐할지 보면된다
와이어 샤크를 잘보면 www.pract1calmalwareanalys1s.com 으로 쿼리를 전송하는게 보인다
TCP Stream 으로 보면 아래와 같다
그리고 Filter를 이용해서 자세히 보면
15.192.142.173 의 주소로 요청하는걸 알수있다
또 다르게 시도해보기 위해
이번엔 NC (NetCat) 를 설치 해줄것이다
이렇게 설치하고 zip 파일을 풀고 nc.exe 를 System32 파일에 위치하면 명령어를 쓸수있다
- nc: 네트워크 관련 유틸리티인 netcat의 축약된 이름.
- -l: 대기 모드로 실행하도록 지시합니다. 이는 네트워크에서 들어오는 연결을 대기하고 수락할 것임을 의미한다.
- -p 443: 사용할 포트를 지정한다. 이 경우 포트 번호 443을 사용한다. 포트 443은 HTTPS(보안 HTTP) 통신에 사용되는 일반적인 포트로, 웹 서버와 클라이언트 간의 암호화된 통신을 위해 사용된다.
WIRESHARK 로 먼저 실행시킨뒤에
netcat 명령어를 실행하고
그리고 아까 rundll32.exe ... Install 해버리면
WIRESHARK에서도 패킷이 주고받는걸 확인할수있으면
nc 명령어 입력한창에도 악성코드로 추정되는 뭔가가 뜨는걸 볼수있다
아마 이것이
practicalmalwareanalysis.com 으로 전송하는데
저것을 입력해보면 존재 하지않는 웹사이트다
아마 실제로 존재했으면 무엇인가를 전송했을것이다
이파일을 이미 정적분석에서 어떤 악성행위를하는지 알수있는데
동적분석으로 한번 시도해봤다
[동적 분석]
> 분석 파일 : Lab03-02.dll
01 자동화분석
01) 분석 도구 : VIRUSTOTAL
02) 분석내용 :: 71/61 악성코드 발견 , 알약-> Trogan
02 이 파일은 패킹 되거나 난독화가 되어있는가? 만약, 되어있다면 종류는?
01)분석 도구 : Exeinfo PE , PEview
02) 패킹여부 : X , C++ 6.0
03.임포트 함수 찾기
1)분석도구 : Dependency Walker
1)분석내용 : 아래의 테이블에서 확인할수있다 이미기존에 대부분 배웠던 것이라 이제는 눈에 보일것이다
CreateFile: 파일을 생성하거나 열기 위한 함수로, 파일 핸들을 반환합니다
ReadFile 및 WriteFile: 파일에서 데이터를 읽거나 데이터를 파일에 쓰는 함수입니다.
CreateProcess: 새로운 프로세스를 생성하고 실행하는 함수입니다.
GetModuleFileName: 실행 중인 프로세스나 모듈의 파일 경로를 가져오는 함수입니다.
LoadLibrary 및 GetProcAddress: 라이브러리를 로드하고 해당 함수의 주소를 얻는 데 사용되는 함수입니다.
CloseHandle: 파일 핸들, 이벤트 핸들 등을 닫는 함수입니다.
GetLastError: 마지막 오류 코드를 반환하는 함수로, 오류 처리에 유용합니다.
Sleep: 지정된 시간 동안 실행을 일시 중지하는 함수입니다.
GetCurrentDirectory: 현재 작업 디렉토리의 경로를 가져오는 함수입니다.
GetSystemTime: 시스템 시간 정보를 가져오는 함수입니다.
CreateThread: 새로운 스레드를 생성하는 함수로, 다중 스레드 프로그래밍에 사용됩니다.
WaitForSingleObject: 스레드나 프로세스의 종료를 기다리는 함수로, 동기화에 사용됩니다.
OutputDebugString: 디버깅 정보를 디버깅 출력 창에 출력하는 함수입니다.
GetTempPath: 임시 디렉토리의 경로를 가져오는 함수입니다.
04 호스트나 네트워크 기반 증거 :
01) 분석도구 : Strings
02) 분석내용 : 네트워크와 관련된 함수를 전부 뽑아냈다 그건 아래와 같다
Sleep
wcstombs
WSASocketA
WSAFDIsSet
"WSASocketA",
"WS2_32.dll",
"InternetReadFile",
"HttpQueryInfoA",
"HttpSendRequestA",
"HttpOpenRequestA",
"InternetConnectA",
"InternetOpenA",
"InternetCloseHandle",
"WININET.dll"
"HTTP/1.1"
practicalmalwareanalysis.com
05 이 파일의 목적 :
백도어
정적분석같은경우에는 기존에 여러번 시도해봤기에 이전과 거이 비슷하게 흘러간다
===============================================================
분석 정리 :
>> 분석 파일
>> Lab03-02.dll
01 자동화분석
1)분석 도구 : VIRUSTOTAL
2) 분석내용 : 71/61 악성코드 발견 , 알약-> Trogan
02 이 파일은 패킹 되거나 난독화가 되어있는가? 만약, 되어있다면 종류는?
1)분석 도구 : Exeinfo PE
2)분석 내용 : X , C++ 6.0
03 임포트를 보고 악성행위를 알아낼수 있는가? 그렇다면 어떤 임포트를 보고알수있는가?
1)분석도구 : Strings
2)분석내용 : 위에 찾은 함수들
05. 이파일의 목적은?
원격지 practicalmalwareanalysis.com 에서의 백도어
===============================================================