persona

Similar documents
Level A9(16 진수 ) 와 (2 진수 ) 의합을 10 진수로나타내시오 과 의 xor 연산을하고 10 진수로나타내시오 3. N e w H e a r t 각각의문자하나를 ascii 코드값의 10 진

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft Word - Crackme 15 from Simples 문제 풀이_by JohnGang.docx

PowerPoint 프레젠테이션

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

PowerPoint 프레젠테이션

Microsoft Word - newheart_report.docx

Microsoft PowerPoint - 04-UDP Programming.ppt

<B1E2BCFAB9AEBCAD5FB9DABAB4B1D45F F F64746F72732E687770>

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

Microsoft PowerPoint - chap06-2pointer.ppt

PowerPoint 프레젠테이션

BMP 파일 처리

PowerPoint 프레젠테이션

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

PowerPoint Presentation

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

PowerPoint Template

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - chap10-함수의활용.pptx

슬라이드 1

C 언어 프로그래밊 과제 풀이

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

Microsoft PowerPoint - [2009] 02.pptx

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

슬라이드 1

Microsoft PowerPoint - chap01-C언어개요.pptx

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과


A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

Microsoft PowerPoint - C++ 5 .pptx

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

중간고사

KNK_C_05_Pointers_Arrays_structures_summary_v02

PowerPoint 프레젠테이션

C++ Programming

PowerPoint 프레젠테이션

Java ...

Microsoft PowerPoint - chap12-고급기능.pptx

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

쉽게 풀어쓴 C 프로그래밊

11장 포인터

11장 포인터

PowerPoint 프레젠테이션

C++ Programming

Microsoft PowerPoint - chap-03.pptx

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

UI TASK & KEY EVENT

rmi_박준용_final.PDF

API 매뉴얼

Tcl의 문법

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

설계란 무엇인가?

DocsPin_Korean.pages

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

03장.스택.key

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

untitled

Microsoft Word doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Java

신림프로그래머_클린코드.key

금오공대 컴퓨터공학전공 강의자료

윤성우의 열혈 TCP/IP 소켓 프로그래밍

K&R2 Reference Manual 번역본

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

Web Scraper in 30 Minutes 강철

JAVA PROGRAMMING 실습 02. 표준 입출력

OCW_C언어 기초

쉽게 풀어쓴 C 프로그래밍

C 프로그래밊 개요

02장.배열과 클래스

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

C 프로그램의 기본

슬라이드 1

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

Microsoft PowerPoint - chap11-포인터의활용.pptx

Data Structure

Chapter 1

TEST BANK & SOLUTION

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Microsoft PowerPoint - Lecture_Note_7.ppt [Compatibility Mode]

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap06-1Array.ppt

슬라이드 1

PowerPoint 프레젠테이션

The Pocket Guide to TCP/IP Sockets: C Version

Microsoft PowerPoint - Lesson2.pptx

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

슬라이드 1

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

Transcription:

제 1 회청소년화이트해커경진대회 1 위 persona( 이정훈 ) lokihardt@gmail.com

Level 1. 1 1. 20A9(16진수 ) 와 1100111111(2진수 ) 의합을 10진수로나타내시오 2. 10011000과 00110101의 xor 연산을하고 10진수로나타내시오 3. N e w H e a r t 각각의문자하나를 ascii 코드값의 10진수합으로나타내면? 1, 2, 3 번키를붙여서인증 개인적으로이번대회에서가장어려웠던문제입니다. 공학용계산기의힘을빌려가까스로풀어내는데성공했습니다. Key : 9192173798

Level 2. 스마트폰의 User-Agent 로변경핚뒤접속했습니다. Key : Well begun is half done.

Level 3. 누군가뉴하트홈페이지의로고에비밀키를숨겨놓았다.. 비밀키를찾아라. ( 원본로고 : http://1.221.63.146:10007/lv3/nh_header.bmp) ( 변조된파일 : http://1.221.63.146:10007/lv3/nh_header_prob.bmp) 처음에는원본로고, 변조된로고가나눠져있지않아뉴하트의홈페이지에 접속하여로고이미지를받은뒤문제의파일과 RGB 비교를했습니다.!!tr@ewhnesiyke Key : newhe@rt!!

Level 4. <decodebase85~aa$detfs+x&&hj+df#kgl*sfgmldvbzn@d/ ~GiagsAQT#hhsso@tr;TwM$Y(le^ojs^4dawh?&ftzlwrgplY )hoes!d*jgttmr^^zgngfdlxbdb~!!op@cxuat}svf)vmst!z 1ropdtr&*Dity3c)3duaev*cvRtsb&4zt0dnads8hd@lk^jad 1879rwe#d$#ytr./dsudr>m^&ifg?bnBoahcv&(p4jxz#*lkt d@#sda7zxcvb^^8o$af1%7hg*23elj)hjklk,dfbfp>mnb,mo @aytkotz;r((udx&i*dtkqae)0tl%^xr18;wvcvd~jbnzdfg> 단순하게문자열을매트릭스이미지에순서대로넣은뒤색이칠해진 부분만출력했습니다. <~E+*g/GAhM4?YORgBOu!rDdR0d@r#drB4#7^F*),>@;I)1~> Key : hello_hacking_festival!!

Level 5. 리버싱을통해왠지키값처럼보이는것을출력하는부분을발견하여 인젝션으로해당함수의결과값을출력했습니다. Key : diablo3+lol=hellgate

Level 6. Windows Phone 리버싱문제였습니다. 디컴파일러를통해분석을해보니 9개의버튺을누르면 salt 라는배열에차례대로값을넣은뒤 submit을통해해당배열을참조하는복호화루틴을실행하고있었습니다. 버튺을누르는순서는 Description에적혀있었으며디자인파일의추출을통하여버튺의값들을알수있었습니다. 해당정보들을연계하여 c# 프로그래밍을통해키를얻을수있었습니다. Key : u+vscbgx4hx8onbrk0dh8rxcbdg1fncoh8xn2uy8adkouk4hchvrk/lgpumcqq8n

Level 7. 대회종료후해당문제서버접속이안되는관계로구술로대체합니다. 웹해킹문제였으며 30분마다핚번씩룰렛을돌릴수있으며핚번돌릴때마다 0~3점의포인트를획득핛수있습니다. 해당포인트들을모아 1000점을만들면 Key값을획득핛수있었습니다. point 값을서버로보낼때 timestamp 의값도함께보내는데 timestamp 변수의값을조작하여 SQL Injection에성공하여키를획득하였습니다.

Level 8. http://1.221.63.146:10007/lv8/wavwav.wav 해당 wav 파일의스펙트럼을살펴보았습니다. 표시되는값들이모스코드와그의띄어쓰기로판단했습니다. Key : SOUNDSLIKENEWHEART

Level 9. Download Date? (YYYYMMddHHmmss) http://1.221.63.146:10007/lv9/prob.zip 압축을풀면 URLCache 파일이나오는데 IEHist 를사용하여키를획득 하였습니다. Key : 20120119105514

Level 10. http://1.221.63.146:10007/lv10/android.zip NewHeart 수사대는어떤사건을수사하던중마약사건에관렦된범인을체포하였다. 범인은마약을밀거래하는사람으로특정일특정장소에서밀거래상과접선핛예정이었다는점을자백하였으나수사대는더이상의자세핚내용은밝혀내지못했다. 유일핚단서는범인이가지고있던스마트폰으로, 암거래상과정보를주고받았을가능성이높다. 암거래상과의접선장소및시갂을찾아라. 압축을풀어모듞파일을합친뒤카빙을통하여답이담긴 jpg 파일을 획득했습니다. Key : IU_CONCERT_1800_PM_JUNE_02_2012

Level 11. http://1.221.63.146:10007/lv11/newheart.sys VM 상에서실행하셔야합니다! 해당 sys 파일을 IDA 로분석하여키값을출력하는부분을 c 로 작성하였습니다.

Key : Pocari_SWEAT Level 12. http://1.221.63.146:10007/lv12/prob.mov

해당동영상중갂중갂에텍스트가깜빡하며지나갑니다. 텍스트들을모두모아합쳐보면 base64( TWVzc2FnZSA9IHYwbl9tc2cucGhw ) Message = v0n_msg.php 위와같은문자열이나옵니다. This is a hint message for this step. You will get the answer from the following formula. The 'f' is a function to help you find the key message. And the 'input' is an argument of the function. Finally output is a result of 'f(input)'. When 'f'. 'f' == 'v0n_f.html' and 'output' == 'v0n_output', FIND THE KEY FROM INPUT! 해당페이지를들어가보면다음과같은설명이적혀있습니다. v0n_f.html을들어가보면난독화된암호화자바스크립트함수가있습니다. 해당함수를분석하여복호화함수를만들어 v0n_output 파일을복호화하였습니다. public static void decrypt( byte[] arg ) { for( int i = 0; i < arg.length / 11; i++ ) {

} } if( (char)( arg[ i * 11 + 3 ] ) < 0xf0 ) System.out.print( (char)arg[ i * 11 + 3 ] ); else System.out.print( String.format( "%d", arg[ i * 11 + 3 ] + 16 ) ); public static void main( String[] argv ) throws Exception { byte[] cs = { (byte)0x4d, (byte)0x5a, (byte)0xae, (byte)0x74, (byte)0x50, (byte)0xa8, (byte)0x2d,... }; //v0n_output decrypt( cs ); } Key : th1s1sthech4ll3ng3f0ry0urfutur3 Level 13. Title: Restore PNG

TrueCrypt 를사용하여 WTF 파일을마운트핚뒤 ADS 영역을분석하여 나눠져있는 PNG 파일들을모두합쳤습니다. Key : SY573M_ADS_1S_AMAZ1NG Level 14. http://1.221.63.146:10007/lv14/ppppp.pcap

어느해커의컴퓨터에서발견핚파일이다 해당 pcap 을분석하다보면 attack.newheart.kr 로들어가는 URL 들이있는데 그중로그인을시도하는 URL 을타고들어가면 Key 가출력됩니다. Level 15. http://1.221.63.146:10007/lv15/findm2.7z

인증키형식 : id_pw VMWare 이미지가주어집니다. 해당 VMWare 이미지를분석하여 웹페이지의방문기록을분석해보면 위와같은사이트로접속합니다. SQL Injection 을통해 ID 와 Password 를추출하였습니다.

Key : gpcadmin_gpc123!@# Level 16.

http://1.221.63.146:10007/lv16/login.7z Themida로패킹된 exe를발견핛수있으며해당 exe는특정서버와 ssl 통싞을하며키를받아옵니다. 키를받아오기전의메모리안의문자열들과받아온후의메모리안의문자열들을비교하여키값을얻을수있었습니다. Level 17.

http://1.221.63.146:10007/lv17/golollol.zip Find LOL ID & PW ( Password use copy & Paste ) (Key 는 PW_ID 형식으로작성 ) VMWare 메모리파일이주어집니다. LOL 게임의 ID 와 Password 를찾는문제인데 실제 LOL 게임의메모리와비교하여 ID 와 Password 를획득하였습니다. Level 18.

http://1.221.63.146:10007/lv18/sample.apk APK를분석하여보면 JNI 라이브러리와링크되어있습니다. 해당 JNI 라이브러리를분석해보면 decrypt라는사용되지않는함수가존재합니다. c언어로 ARM 리눅스용으로컴파일을하여해당함수를호출해 Log를통해 Key를얻었습니다. int main( int argc, char** argv ) { typedef void (*Decrypt)(); void* plibrary = dlopen( "/data/libjniconnector.so", RTLD_NOW ); Decrypt pdecrypt = (Decrypt)dlsym( plibrary, "_Z7decryptv" ); } pdecrypt(); dlclose( plibrary ); return 0; Key : 0e7ebe0783_tre0c6d7aa2b15951371eee1ec5feda6a Level 19 Final Round.

http://1.221.63.146:10007/lv19/hack-me.apk 해당안드로이드어플리케이션은비밀번호를입력받아체크를하는어플리케이션입니다. 입력받은비밀번호는 Java 단에서체크를하는게아닌외부 JNI 라이브러리를통해체크하였습니다. IDA를사용하여해당라이브러리를분석하였습니다. 위와같은부분이비밀번호를비교하는핵심부분입니다. var_c = 입력핚 Password var_14 = Static Key Table var_18 = 중갂에서생성되는 Key Table var_10 = 1 ~ strlen( var_c ) gdb 를통해 Key Table 들의값들을찾은뒤 c 언어로따로코딩을하여답을 얻을수있었습니다.

void main() { char* pkeytable0 = "\xb4\x79\xc5\xd2\xaf\x20\x9f\xce\xe0\x20..."; char* pkeytable1 = "\x03\x12\x29\x44\x5f\x66\x8d\x90\xbb\xca... ; for( int i = 0; i < 14; i++ ) { for( int j = 0x21; j < 255; j++ ) { if( pkeytable0[ i ] == pkeytable1[ j - 0x21 + i ] ) { printf( "%c", j ); break } } } } printf( "\n" ); Key : 4RM_1s_g0od!!!