2023. 10. 18. 22:01ㆍCTF
목차
01) 시나리오 - 랜섬웨어 1
02) 시나리오 - 공급망 공격 1, 2
03) 시나리오 - APT 1, 2
04) 시나리오 - 악성 앱 1, 2
05) 침해대응 - 문제 3
시나리오 - 악성 앱 1 (100+73 pts)
홈페이지 접속 시 apk 파일 다운 기능이 있다.
‘f’인자 매개변수 base64 디코딩 결과는 웹 경로로 추측되는 ‘files/fastpayments_v1.13243.apk’이다.
‘../../../../../../etc/passwd’를 base64 인코딩하여 전달한 결과 /etc/passwd 파일을 획득했다. 이는 파일 다운로드 취약점이 존재함을 의미한다.
파일 다운로드 취약점으로 ‘/proc/self/cmdline’을 읽어 서비스 이름이 ‘web/app.py’인 것을 확인한다.
파일 다운로드 취약점으로 ‘../web/app.py’를 다운 후 소스코드 분석 결과 admin 페이지가 존재한다.
파일 다운로드 취약점으로 admin 페이지 소스코드를 다운 후 분석 결과 flag를 획득했다.
fiesta{7f9f71a7922f9d29d0c7d1995651799}
시나리오 - 악성 앱 2 (200+91 pts)
모바일 에뮬레이터 Nox를 이용하여 악성 앱을 설치하고 실행시켜 기능들을 확인하였다.
입력칸을 채워 하단의 QR 결제 코드 생성 버튼을 누르면 QR 코드를 획득할 수 있다.
이 과정에서 사용자의 개인정보를 공격자의 서버로 전송하는 통신이 존재할 것이라고 추측하였다.
패킷을 자세히 확인하기 위해 adb 쉘에서 아래와 같은 명령어로 tcp 통신 패킷을 캡쳐하였다.
$ tcpdump -i any -n -s 0 -w /sdcard/Download/1557.pcap
와이어샤크의 tcp stream에서 개인정보를 암호화하여 공격자의 서버에 전송하는 것을 확인할 수 있었다.
이를 통해 공격자의 서버 IP가 13.124.114.239이고 9999포트를 이용한다는 것을 확인할 수 있었다.
Jadx-gui를 이용하여 FastPayments.apk파일을 열고 공격자 서버 IP를 검색하면 쉽게 패킷 통신을 전송하는 메소드를 찾을 수 있다. g2.n.f에서 입력 정보 암호화와 전송이 이루어지고있었다.
따라서 암호화 전의 값을 알아내기 위해 android.compose.ui.platform.a0.B가 호출될 때의 인자값과 리턴값을 출력하는 프리다 후킹 코드를 실행하였다.
후킹 자바스크립트 코드는 jadx의 [Frida 스니펫으로 복사] 기능을 사용하여 간단하게 작성하였다.
- fiestabase.py
import frida, sys
bundle = "com.ctf.fastpayments"
scriptfile = "./fiesta.js"
with open(scriptfile, 'r') as f:
script = f.read()
device = frida.get_usb_device(5)
target_process = device.spawn(bundle)
process_session = device.attach(target_process)
script = process_session.create_script(script)
script.load()
device.resume(target_process)
sys.stdin.read()
- fiesta.js
setImmediate(function() {
Java.perform(function() {
let a0 = Java.use("androidx.compose.ui.platform.a0");
a0["B"].implementation = function (str) {
console.log('B is called' + ', ' + 'str: ' + str);
let ret = this.B(str);
console.log('B ret value is ' + ret);
return ret;
};
console.log("[*] Script finish");
});
});
마지막 리턴값이 tcpdump를 통해 확인한 key의 암호화 값에 해당하므로 호출시의 인자값이 key 값에 해당한다. 따라서 key는 1131109899110112109 이다.
fiesta{1131109899110112109}
'CTF' 카테고리의 다른 글
2024 HackPack CTF - LLM edition #1 (0) | 2024.04.16 |
---|---|
2023 FIESTA 금융보안 위협 분석 대회 #5 침해대응 - 문제 3 (0) | 2023.10.18 |
2023 FIESTA 금융보안 위협 분석 대회 #3 시나리오 - APT (0) | 2023.10.18 |
2023 FIESTA 금융보안 위협 분석 대회 #2 시나리오 - 공급망 공격 (0) | 2023.10.18 |
2023 FIESTA 금융보안 위협 분석 대회 #1 시나리오 - 랜섬웨어 (0) | 2023.10.18 |