순천향대 정보보호 페스티벌 Write-Up - Forensic 1


포렌식 부분 첫번째 문제입니다.


리눅스와 맥os 에 대한 시스템에 대해서 알고 있어야 하는 문제인데, 몰라서 상당히 해멧습니다.


구글의 힘을 빌려서 검색을 얻고 문제 풀이에 성공했습니다.


문제 :


SCH 도서관의 컴퓨터를 누군가가 해킹 했다!!

단 한명의 용의자가 있는데....
용의자의 컴퓨터를 이용해 용의자가 공격에 사용한 USB를 찾아내어
해킹한 시간을 알아내라


Key : lowercase(MD5("USB Connect Time"_"Serial Number"_"Vendor ID"))
예) MD5(MMDDHHmmss_123456789_0x1234) 해서 나온 결과를 소문자로 변환하여 인증


이제 시작합니다




파일은 상당히 많이 주어집니다.


아마 로그파일을 통째로 주어지는데 문제에서는 usb 를 이용했다고 하니


usb를 접촉한 로그가 남겨지는 messages[리눅스], kernel.log[맥] 로그들을 살펴보겠습니다.


일단 저는 문제를 풀때 여러가지 상황을 생각했습니다.


1. usb를 이용한 remote 에서의 공격

2. usb 를 이용한 local 에서의 공격

등등..


하지만 로그들을 살펴보니 remote 에서는 아닌것 같고 문제도 다시 읽어보고 1번은 버렸습니다.


2번이라는 가정하에 문제를 풀게 되었습니다.



리눅스의 로그입니다. serialnumber 가 usb의 시리얼 넘버입니다.


현재 필요한 값은 시각, 시리얼넘버, 제조사 id 입니다



이것은 맥 os 의 로그입니다.



이 로그들을 이제, 하나하나 찾아서 다른 페이지에 기록을 해야 합니다.


비교가 쉽도록 말입니다,.






이렇게 하나하나 찾아가는 과정을 쭉 하면



위와 같은 결과가 나오게 됩니다.


위는 피해자 victim 의 컴퓨터 맥 os 환경의 로그이고, 아래는 suspect 의심 컴퓨터의 리눅스 로그입니다.


피해자의 컴퓨터는 usb 접촉 기록이 많지만, 해커의 컴퓨터는 3가지 밖에 없습니다.


한개는 삼성, 한개는 lg, 한개는 버추얼머신의 usb 환경 입니다.


자, 이제 하나하나 비교를 해야 합니다.


버추얼 머신의 usb는 빼버리고, 2010으로 시작하는 삼성의 usb를 대조 결과 확인되지 않습니다.


하지만 삼성의 시리얼 넘버를 대조해본 결과, victim 에서 시리얼이 일치하게 됩니다.


Jul 27 09:10:22 RExVuz-Mac kernel[0]: USBMSC Identifier (non-unique): AA00000000000001 0x90c 0x1000 0x1100


그러므로 위의 시각이 어느 usb로 언제 해킹이 됬는지 짐작이 가능합니다.


7월 27일 오전 9시 10분 22초, 맥의 컴퓨터에서 AA00000000000001 의 시리얼을 가지고 제조사 id가 0x90c 메모리 카드가 해킹을 했다고 합시다.


이제 md5 해쉬를 시켜야 합니다.


MD5(0727091022_AA00000000000001_0x90c)


4550c35d78b4daf199199208c17ae924 가 나오네요


Password is 4550c35d78b4daf199199208c17ae924







워밍업 5번.. 어려웟던 프로그래밍


이제 시작합니다.




이것이 문제입니다.


의사코드를 저것으로 바꾸라는데.. 한번 바꿔볼까요..


프로그래밍은 C#으로 해보도록 하겠습니다.


중간중간 오버 플로우가 나는 바람에.. 고생도 했습니다.


파이썬과 c# 두가지 언어를 동시에 사용했습니다 ㅋㅋㅋ


파이썬에 실력있는 분들은 이런짓 안하시겟지요 ㅠ-ㅠ


파이썬을 처음 다뤄봐서 어쩔수 없었답니다 ㅋㅋ




안보이시면 클릭해서 보세요 ^^


위 처럼 프로그래밍 했습니다.



마지막 값이 위 연산에 대한 값입니다.



그 다음 파이썬 쉘에 다음과 같은 명령을 내립니다.


print(hex(14923134021350632102839378537 609377234220815057424830202)) //안의 값을 더해 헥스형태로 출력


"323031325f4f6c796d703163".decode("hex") // 헥스값을 디코딩 시킨다.


Password is : 2012_Olymp1c



워밍업 4번 시작합니다.


3번 풀다보니 힌트가 이미 공개되 잇어서 쉽게 풀엇습니다.


Content
사이버 수사대 1팀 김우현.

그는 무언가를 숨기고 있다.

그가 숨기고 있는 것을 알아내라!


File:
Ghost.jpg





원본 이미지는 지극~히 정상입니다.


하지만 뭐가 숨겨져 있길래 그러는걸까요?


아마 다른분들은 유령 - 스테가노그래피 로 생각하셔서 openstego 를 쓰신 분도 있을것 같지만,


#1. End of Image
#2. 4D 5A 90 00
#3. 숨김 파일


이라는 힌트가 공개 되었습니다.


그중 2번의 헥스코드는 실행파일의 시그니쳐 입니다.


winhex 로 사진을 열어봅시다.




위에는 지극히 정상인 사진 파일입니다.



실행파일의 시그니쳐인 저 값을 찾아봅시다.



찾앗습니다.


위의 end of image 와 recover this file for exe 를 보면 힌트라는걸 알수 있습니다.


힌트대로 exe 만 추출해봅니다.



파일 윗부분을 자르고



파일에 추출을 성공했습니다.



알집의 exe 압축 파일입니다.



압축을 풀면 특정 폴더에 저장이 됩니다.


그중 QR코드가 가장 먼저 의심 스러워서 보는데, 또 색반전이 필요할것 같습니다.




색반전을 시킨 다음, qr 코드를 스캔합니다.



Password is HADES!^^






워밍업 문제 3번입니다.


생각보다 해멧던 문제입니다.


막상 해보고 나면 아무것도 아닌데..


문제 :


키가 187인 나쁜 동현이가 내 보물을 훔쳐갔다.

동현이의 컴퓨터에 MITM 공격을 해서 패킷을 캡쳐했다.

단서를 찾아 보물을 찾아오자


File:
evidence.pcap



mitm 이란 중간에서 패킷을 가로채는 arp spoofing 공격과 비슷합니다.


암튼 이 공격으로 패킷 내용을 빼왔다고 하네요


Hint

#1. HEYMAN
#2. EOF (End of File)



문제를 풀 당시 생각보다 사람들이 많이 풀지 못했습니다.


그래서 힌트를 두개씩 내놓자 한명 두명 풀기 시작하고 저는 2시간 만에 풀었네요


진짜 별것 아닌데..



어쩃거나.. 제 경험이 부족한거니 어쩔수 없이 생각하고 문제를 풀어봅시다.


일단 pcap 파일은 와이어 샤크라는 패킷 캡쳐및 분석 툴에서 분석이 가능합니다.


저는 와이어 샤크를 이용해서 문제를 풀어보겠습니다.




처음 와이어 샤크 패킷을 캡쳐한 것을 불러왔습니다.


사실 이것은 약간 노하우가 있긴 하지만 말로 설명하기엔 좀 그러니까


여러번 분석해보면 자신의 노하우가 생깁니다.


그런 노하우나 아니면 일일히 패킷을 대조하면서 수상한 패킷을 찾아 냅니다.



mfile.naver.com 의 서버에서 어떤 파일을 잡아냅니다.


그리고 힌트에서도 있는 heyman 입니다.


저것을 들어가 볼까요!? 이렇게나 쉽게 풀리다니..



이게 이미지 를 받아오는 부분입니다.



는 무슨 Access Denied 가 뜹니다.


하지만 방법이 있습니다.


pcap 는 패킷의 내용을 통채로 담고 있기 때문에, 저 jpg 파일은 pcap 안에 들어있는것과 마찬가지입니다.


그렇다면 추출을 할수 있다는것으로, 추출을 해야 합니다.





이런 순으로 export > objects > http 로 들어가신 다음




아까 이미지를 받아오는 부분의 패킷 넘버[캡쳐된 순서]를 찾아봅니다.


패킷 넘버는 15049 입니다.



역시나 heyman 파일이 존재합니다.


이제 저 파일을 save as 로 저장합니다.


확장자가 이상하게 되어있을테니 정확히 jpg 로 바꿔줍니다.




이쁜 손글씨와 함께


해커는 그곳으로 오라는 메세지를 남겼습니다.


제가 해맨곳은 바로 이곳입니다.


그곳.. 이라 하면 패킷을 조금더 뒤져봣지만 올림픽을 갓다오고, 아이유등 여러 아이돌을 검색한 흔적밖에 없어서


런던이라는 답을 제출 했지만 아니었습니다.


하지만 EOF 라는 힌트가 공개되고 감이 잡혔습니다.


end of file 이란 파일의 끝을 의미합니다.


그래서 설마 설마 했던 저 그림을 헥스 에디터로 보게 되었습니다.



아... 잘 보이시나요?


드래그 부분을 잘 살펴보세요


blog.naver.com/xlej1234


바로 저곳으로 접속해봅시다.



첨부 파일을 2개가 있는데 두개 모두 사진파일입니다.


그 사진파일 하나는 gif, jpg 인데


파일 하나씩 반씩 잘려있습니다.


그 두 파일을 함께 보면.




Password is I_want_to_have_girlfriend.


긴글 읽으시느라 수고하셨습니다.


순천향대의 워밍업 2번입니다.


문제 :

Content

Downlod This File :p




주어진 파일은 3개입니다. 처음 navi.zip 으로 압축되어있던것을 풀었습니다.




동굴의 위치를 찾아라가 문제입니다.


그렇다면 왠지 위치를 알려주는 정보가 있을것입니다.


다른 파일을 봐야겠습니다.




위도 : 36.9886987 경도 : 128.3830274


의 값이 나와있습니다.


그러면 좌표주소를 입력하면 위치를 알수 있는 지도를 알아야합니다.


유일하게 지원하는 지도는 구글의 구글맵 입니다.


구글 맵에 36.9886987, 128.3830274 를 검색합니다.




그렇다면 고수동굴 이라는 동굴이 나왔습니다.


급한 마음에 이것을 인증하려고 했는데, 워밍업이라도 이렇게 쉬울까!? 해서 나머지 1개 파일인 압축 파일을 열기로 했습니다.





압축파일을 열었는데 왠걸 패스워드가 걸려있습니다.


압축파일 이름은 암호는 동굴 이름 이라고 적혀있는것으로 보아


아까 고수동굴은 이 문제2를 열기위한 암호였던것 입니다.




고수동굴을 그대로 영어로 입력합니다.


그러면 rhtnehdrnf 으로 입력됩니다.



이게 문제2 입니다.


아래 qr 코드만 찍으면 성공입니다.


하지만 찍어도 안찍히길래 뭔가 이상했습니다.


일반적인 qr 코드가 아닌겁니다.



아마 다 같은 생각을 했을겁니다. ㅋㅋ


그래서 정상적인 qr 코드를 만들기 위해서 약간의 작업이 필요 합니다.



그림판으로 그림을 불러오고, ctrl a 로 영역을 모두 설정합니다.





그 다음 색 반전을 누르면



우리가 원하는 대로 qr코드가 제대로 완성이 되었습니다.




QR코드를 스캔하면


Key is Ar3_Y0u_Tr34sur3_Hunt3e!?




안녕하세요 sweetchip입니다.


이번에 정보보호 페스티벌에서 26위를 하게 되었네요.


10위 안에 들어야 본선인데 생각보다 지난 인하대학교 화이트 해커 경진대회보다는 문제를 많이 풀게 되었습니다.


그만큼 실력도 늘었지만, 아직은 많이 부족하다고 느끼고 있습니다.


풀었던 문제를 다시 리뷰 하기 위해 문제 풀이를 작성하겠습니다.


가장 간단한 워밍업 1번입니다.


문제 :


Content
"시작은 미미하지만 그 끝은 창대하리라"

안녕하세요~ 첫문제는 간단하게 가볼까요?

소스를 보세요! :D



역시 워밍업 1번 답습니다.


간단하게 소스를 봅니다.




17번째 줄에 인증키를 얻으려면 쿠키를 보세요.


지금 당장 쿠키를 보러 달려갑시다.


인터넷 익스플로러에선 cooxie 툴바를 이용해서 볼수도 있습니다만


저는 스니퍼를 이용해서 날라가는 쿠키를 보도록 하겠습니다.





날라가는 쿠키에 AuthKey 가 있습니다. 눈치가 있다면 이게 바로 정답이라는걸 알것입니다.


Key is Welc0me_t0_Y1SF_GoodD4Y

+ Recent posts