[3주차] network_recover

뭔 파일인지 몰라서 hxd로 열어보았다.
왼쪽에 Decoded text를 보니 packet 구조인 거 같아서 확장자를 pcap으로 저장했다.

스크린샷 2024-03-31 011757.png

와이어샤크로 열어보았다.

스크린샷 2024-03-31 011949.png

스크린샷 2024-03-31 014049.png

위 Malformed Packet이 수상하다.
검색했더니 라이트업을 발견했다 ㅎ

스크린샷 2024-03-31 020937.png

해당 문제는 treasure1만 보면 안되고 2,3도 봐야 한다.
treasure3까지 hex를 추가해야 푸터 시그니처가 들어간다.

스크린샷 2024-03-31 020948.png

hxd에 treasure1,2,3 내용을 다 복붙하고 저장해주면

network.png

플래그가 나온다.

[3주차] findmypw

findmypw 열고 첫 화면이다.

findmypw 첫 화면

http에 플래그가 많이 숨겨져 있대서 http를 검색하여 필터링을 한다.

HTTP 필터링

난 스터디 때 계속 login만 찾아서 보냈는데 join_ok도 있었다. 해당 패킷들을 보며 짱해커를 찾아준다.
위 그림은 id가 menboong이라 아니다.

짱해커 확인

이게 짱해커의 아이디, 비번이다. pw는 IDISLIE이다.

[3주차] evidence

스터디 시간에 못풀었던 문제까지 정리했다.

1. What is the name of Ann’s IM buddy?
networkminer로 열고 messages를 들어갔을 때 192.168.1.158과 나눈 64.12.24.50의 이름은 Sec558user1이다.

IM Buddy

3. What is the name of the file Ann transferred?
ann이 전송한 file의 name을 묻는 질문이다.

Transferred File
ann이 secret recipe를 보냈으므로, files에 있는

Files
recip[1].docx가 질문의 답임을 알 수 있다.

4. What is the magic number of the file you want to extract (first four bytes)?
file을 우클릭해서 file detail을 누르면 위와 같이 나온다. first four bytes는 504B이다.

Magic Number

5. What was the MD5sum of the file?
4번에 첨부한 캡처를 보면 MD5도 써져 있다.
8350582774e1d4dbe1d61d64c89e0ea1

6. What is the secret recipe?
recipe[1].docx을 우클릭하여 open file하면

Secret Recipe
recipe가 나온다.

[2주차] 악성코드 분석

Image

아이다로 열었는데 해당 툴로 분기문 참거짓까지 확인하기 어려워서 그냥 무조건 다음 프로세스가 많은 곳으로 가서 분석했다.

Image

Image

calldll이라고 rename한 함수가 있다. 서브루틴들은 접은 글로 정리했다.

더보기
![Image](https://blog.kakaocdn.net/dna/bp5OdV/btsF2NtnbBR/AAAAAAAAAAAAAAAAAAAAAOzU8_TM3K6Lz5BdMk-gW_VMuhZDIAooUBIhnx7eEJbb/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1769871599&allow_ip=&allow_referer=&signature=SCzgTzY8F2U5Sd6hbabj2gOHMp4%3D) GetSystemDirectoryW는 시스템 디렉토리의 경로를 검색한다. 버퍼에 데이터를 작성한다. 하고 해당 파일을 Load 하는 거 같다. sub_406694 내용은 접은글 >> address로 rename
더보기
![Image](https://blog.kakaocdn.net/dna/bltbKA/btsF4T7nBgn/AAAAAAAAAAAAAAAAAAAAAEAAxzwd3KJVSUyqZQWl--7a5Gc7lIvPdpG9g2hQzvvB/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1769871599&allow_ip=&allow_referer=&signature=l0yqhXEidXhLIAe82t3UTdDlt%2FQ%3D) 불러온 파일의 address를 얻는 거 같다.
![Image](https://blog.kakaocdn.net/dna/HrsfU/btsF3FhoDAk/AAAAAAAAAAAAAAAAAAAAADYS4QftzE4JIWle5psVwmgj_5udi_sWr5WQ2EP3kAtx/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1769871599&allow_ip=&allow_referer=&signature=Usx96i88n7diSvtqFTtDIwEV6rg%3D) OleInitialize가 어떤 함수인지 찾아봤는데 OLE라는 개체가 있는 거 같다. 윈도우에서 어떤 개체가 포함된 문서를 만들고 편집할 수 있는 기능을 말하는 거 같다. Object Linking and Embedding의 약어로, 찾아보니까 어떤 외부의 object에서 링킹을 하는 거기 때문에 해당 방법으로 악성 스크립트를 꺼내오지 않을까 싶다. SHGetFileInfoW는 uflags에 따라 결과가 달라지므로 나중에 동적분석에서 확인해야될 거 같다. sub_4062BA는 접은글
더보기
![Image](https://blog.kakaocdn.net/dna/roi0R/btsF5vrJG25/AAAAAAAAAAAAAAAAAAAAADRoEPtY0AoHuFipfAepw-WiJpj-UafTvQvyTagUwZln/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1769871599&allow_ip=&allow_referer=&signature=UxKzZwtZImteU50o0qGrIosJHF8%3D) string cpy하는 함수라 cpy로 rename
![Image](https://blog.kakaocdn.net/dna/bqHAqh/btsF5TeFgC5/AAAAAAAAAAAAAAAAAAAAADGmU0XAdiSR2aMLBjlAxg3n3siCU7vV8fn2bH86t_iP/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1769871599&allow_ip=&allow_referer=&signature=sTKZVc3xkkfFLSd27eFf1cKnv3g%3D) 이 이후에는 자꾸 뭔가를 cmp하는 명령어가 계속 나오는데 char가 맞게 나오는 건지 확인하는 거 같다. 자세히 분석하지는 않고 생략해서 넘겼다. ![Image](https://blog.kakaocdn.net/dna/oDDuu/btsF2NNE93S/AAAAAAAAAAAAAAAAAAAAANOIkgtr286pXIbL6z1BXkCrLVvY65BCGn3DiwWd3k0z/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1769871599&allow_ip=&allow_referer=&signature=5ne1IX6IVfHGTq6v%2BMvZk8G4Iek%3D) GetTempPathA를 이용해서 drop하는 거 같다. ![Image](https://blog.kakaocdn.net/dna/kR3nv/btsF6J3UuNc/AAAAAAAAAAAAAAAAAAAAAC5-7KSALy97CE96zbjNmEBZNKAS7RU7BNqboe8G-niX/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1769871599&allow_ip=&allow_referer=&signature=a9Oqb7Fk9ADR%2BuPatHfomFdOrvU%3D) SetEnvironmentVariableW로 어떤 환경변수를 참조한다. 이 함수로 어떤 악성 행위를 실행하지 않을까...라고 생각해본다. ![Image](https://blog.kakaocdn.net/dna/AhFYV/btsF3nVnPXj/AAAAAAAAAAAAAAAAAAAAAADqiSFIZIrr4i8FP51J0qKWcDlrS09wwho6tXGv4War/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1769871599&allow_ip=&allow_referer=&signature=bcv8UALMdirwv5JaronaMRBpaOU%3D) DeleteFilew로 흔적을 지우는 거 같다. ![Image](https://blog.kakaocdn.net/dna/yE5Ky/btsF5Cdcd2Y/AAAAAAAAAAAAAAAAAAAAAPNWClqfBUiE7Hk5tPCKncLeveio3CYtmKh4A7UrfQ_g/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1769871599&allow_ip=&allow_referer=&signature=0cpJdR2TPt%2FfALXPkf0ZU9qphwQ%3D) ![Image](https://blog.kakaocdn.net/dna/wa53K/btsF6JQk9Jy/AAAAAAAAAAAAAAAAAAAAALT2vW2fiYCWOrOVib56C2BpssC9wknq26kMxBQTsMI5/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1769871599&allow_ip=&allow_referer=&signature=P74v0%2BEEPBGS1%2Bb1wrbn1dJ08ec%3D) 어떤 tmp파일을 보는 거 같다. 양쪽 분기문 sub_4057F1과 sub_40586E 둘 다 어떤 security 관련한 함수를 쓴다.
더보기
![Image](https://blog.kakaocdn.net/dna/bmQrkV/btsF3fwns0x/AAAAAAAAAAAAAAAAAAAAAJmMCbWfecxnkPDbKU29lC-X3RkceTrP_mkiI_5dY8Nr/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1769871599&allow_ip=&allow_referer=&signature=sneF6kZkDb5f2QxZmvh%2Fy61zmq0%3D)
![Image](https://blog.kakaocdn.net/dna/cQBTDW/btsF5EPv7OL/AAAAAAAAAAAAAAAAAAAAAKtgmfjgTdVzgFVu5Wb5vCvT4KqS_zFmjASz0q_9B2__/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1769871599&allow_ip=&allow_referer=&signature=NFyyFr59N0A5fxKmLm5TWGMdV5c%3D) 위에 SearchIndexer.exe 파일도 악성행위로 사용되는 프로그램 같다. 아래 보면 protocolhost, filehost 등을 검색하는 거 같다. ![Image](https://blog.kakaocdn.net/dna/I2Ks5/btsF7vdG8g0/AAAAAAAAAAAAAAAAAAAAALuRvOLUWrM18etsiqoc6RYTbZ8KGs8hX4Q-NXkxdCnM/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1769871599&allow_ip=&allow_referer=&signature=Zoj29fEbcdly%2F2E4CLuLUDg4kKo%3D) 정말로 system32 폴더에 존재한다. vmem 파일로 정확히 어떤 cmd를 입력했고 ps, net scan을 해봐야 더 자세히 알고 다시 동적 분석으로 돌아올 수 있을 거 같다.

[2주차] 악성코드 분석 - vmem

Image

python vol.py -f <vmem이름> windows.info.Info

볼라 2.6에서는 imageinfo로 프로파일 정보를 찾아야 했지만 볼라 3에서는 알아서 찾아준다. 이외의 정보가 궁금하면 위처럼 입력해주면 된다.

64bit인지.. symbols가 뭔지 kernel base 주소까지 나온다.

Image

Image

python vol.py -f retry.vmem windows.pstree.PsTree

process 목록을 보여주는 플러그인은 pstree, psscan, pslist 등이 있다. 위 실습 화면은 pstree를 사용하였다.

캡쳐한 부분은 악성코드 MariyelsTherapy에 대한 프로세스 부분이다. 언제 실행했는지.. 어떤 위치에 있는지.. 실행하고 있는 cmd까지 보여준다. 마지막 PID 5328인 프로세스가 뭔가를 실행하고 있는 거 같다.

더보기
pslist: 시간순 psscan: 오프셋 순서, 숨겨진 파일 로드 가능 pstree: pid와 ppid의 관계를 파악 가능

Image

python vol.py -f retry.vmem windows.dlllist --pid 5504

위는 dlllist 플러그인이다. 여기서 사용한 pid는 악성코드 실습에서 했던 멀웨어 파일 pid이다.

dlllist를 이용하여 pid와 관련된 dll 정보를 볼 수 있다.

5504가 사용한 ppid를 보면 KERNEL32.DLL이나 KERNELBASE.dll.. OLEAUT32.dll도 있고 system32에 있는 dll이 많은 걸 알 수 있다.

Image

python vol.py -f retry.vmem windows.dumpfiles --pid 5504

해당 플러그인은 process에 대한 dump를 떠주는 플러그인이다.

실습에서는 »prodump.txt를 이용해서 텍스트 파일로 저장해주었다.

Image

prodump.txt을 열면 이렇게 저장된다. »를 이용하지 않으면 해당 내용이 cmd에서 출력된다.

다만, 해당 플러그인은 Error dumping file이라는 오류가 많이 뜨는 거 같다..

아래로 내려가면 대부분이 디스크 img 파일로 만들어진다.

Image

python vol.py -f retry.vmem windows.cmdline

cmd에서 했던 작업들을 보여준다. 해당 플러그인도 출력이 많이 되기 때문에 » 텍스트 파일로 저장해주었다.

Image

svchost.exe에서 해준 명령이 많다. svchost.exe은 서비스를 총괄하는 실행 파일이다.

svchost.exe로 위장하는 악성코드가 많다는데 해당 멀웨어도 이런 흐름인가 싶었다.

python vol.py -f retry.vmem windows.getservicesids.GetServiceSIDs

위 플러그인은 SID를 얻을 수 있다. SID는 session ID로 어떤 프로세스 묶음을 나타낸다.

직관적으로 SID와 service 내용을 보여준다.