[Writeup] CCEC(사이버공격방어대회) 2017

레드팀으로 참가했었고, 1문제 차이로 아쉽게도 본선에 오르지 못했다. 그런데, 정말 게싱 없이 해결할 수 있는 문제들이었는지는 계속 의문이 남는다.

 

1.노트북 하단에 HICS 보안 10계명이 보인다. “비밀번호는 9자리 이상, 숫자 및 특수문자 포함”이라는 문구가 보인다. hics 계정의 패스워드를 찾아 입력하시오.

이 문제의 답은 hics1234! 이다. 싱글 모드로 root 권한을 획득한 후 shadow 파일에서 해시값을 찾아서 패스워드 크랙도 하고, 뭔가 단서가 있나 찾아봤지만, 아무것도 찾을 수 없었다. 자포자기한 마음으로 “비밀번호가 9자리 이상이라니까 9자리 썼겠지, 비밀번호 만들 때 기관명을 앞에 쓰는 경향이 있으니까 hics로 사용했을거야. 숫자가 들어가고 특수문자가 들어간다니까 1234를 쓰고, 가장 많이 사용하는 특수문자 !을 쓰지 않았을까?”라고 추측해서 입력한 것이 정답이었다. 이 문제 해결하는데, 7시간은 걸린 것 같다.

참고문서 : http://forum.falinux.com/zbxe/index.php?document_srl=828681&mid=lecture_tip

 

2./usr/bin/sqlconnect 는 DB접속에 사용되는 실행파일로 보인다. 해당 파일에서 DB접속 패스워드를 찾아 입력하시오.
AES 카운터(CTR) 모드의 취약점을 묻는 문제다. 카운터 모드는 암호기와 암호문만 있으면, 쉽게 복호화 할 수 있다. 별도로 코딩할 필요도 없다. encrypt 함수의 입력에 비교 대상이 되는 암호문을 메모리를 변조하여 입력하면 평문이 바로 출력된다. 플래그가 ‘하와이언 쵸컬릿’인가 그랬던 것 같다.

참고문서 : https://ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%BC:Ctr_encryption.png

 

3.다운로드 폴더의 groupware_hics_2017.apk 앱에서 flag를 찾아 입력하시오.

이 문제는 1번 문제 해결하는 동안, 다른 팀원이 미리 해결해 놓았었다. 풀이 방법은 다음에.

 

4.groupware_hics_2017.apk 앱의 보호기술이 강화된 코드 내에서 flag를 찾아 입력하시오.

이 문제는 못 풀었다. ART(Android Runtime)과 관련한 문제가 아니였을까 추측하고 있다.

 

5.groupware_hics_2017.apk 앱에 들어있는 데이터베이스 파일의 삭제된 레코드에서 flag를 찾아 입력하시오. 

위의 APK 파일에서 weblog.db 파일을 추출할 수 있다. 그런데, File Signature가 손상되어 있으므로, 이를 먼저 복구해 준다. 그리고, SQLite-Deleted-Record-Parser라는 툴을 이용하면, 삭제된 레코드를 복원할 수 있다. 문제는 복원한 레코드를 아무리 살펴보아도 모두 웹 로그일 뿐 플래그가 보이지 않는다. URL의 패스도 일부 손상되어 있어, 구글로 패스를 검색해 보았지만 별다른 특이점이 없다. 이번에도 자포자기한 마음으로 웹 로그 중에 MD5 해시값 비슷한 문자열이 보이기에 인증해 보았더니, 그게 플래그였다.

 

6.다운로드 폴더의 VpnServiceTest.pcap 에서 VPN 로그인에 필요한 정보(IP,비밀번호)를 찾아 입력(“IP,비밀번호” 형태)하시오. 

RSA 복호화 문제이다. PCAP 파일 찾아보면, N과 e값은 쉽게 찾을 수 있다. 그래서 d값을 구하기 위해 factordb.comRsaCtfTool 등을 이용하였으나 실패하였다. 결국 CCA(Chosen Ciphertext Attack)을 감행했다. CCA라 거창해 보이겠지만, 암호문을 알고 있으니 평문을 이것저것 넣어가면서 암호문이 변경되는 추세를 보고 추측하는 것이다. 플래그가 r$acub3root 비슷한 문자열이었던 것 같다.

 

 7.보안프로그램 드라이버(pluck.ko)가 중요 킷값을 커널메모리 내에 보관하고 있다. 이 flag를 찾아 입력하시오. 

유동훈씨가 출제한 문제로 보인다. 손도 댈 수 없었다.

 

 8.보안프로그램 드라이버(soil.ko)가 중요 킷값을 커널메모리 내에 보관하고 있다. 이 flag를 찾아 입력하시오. 

역시, 유동훈씨가 출제한 문제로 보인다. 손도 댈 수 없었다.

 

그리고, 나머지 두 문제는 문제조차 볼 수 없었다. 제발 Writeup을 공개해달라.