HolyShield 2011 풀이

Similar documents
<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

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

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

ActFax 4.31 Local Privilege Escalation Exploit

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

슬라이드 1

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft PowerPoint - chap06-2pointer.ppt

PowerPoint 프레젠테이션

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

슬라이드 1

4S 1차년도 평가 발표자료

chap 5: Trees

The Pocket Guide to TCP/IP Sockets: C Version

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

RolexSweep Team Team : RolexSweep (lokihardt, hellsonic, hkkiw0823, dakuo) 페이지 1 / 25

untitled

Deok9_Exploit Technique

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

Windows 8에서 BioStar 1 설치하기

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

PowerPoint 프레젠테이션

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx


Microsoft PowerPoint - chap03-변수와데이터형.pptx

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

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

<C3CA3520B0FAC7D0B1B3BBE7BFEB202E687770>

Microsoft PowerPoint 웹 연동 기술.pptx

Microsoft PowerPoint - C++ 5 .pptx

문서의 제목 나눔고딕B, 54pt

Secure Programming Lecture1 : Introduction

Secure Programming Lecture1 : Introduction

작성자 : 기술지원부 김 삼 수

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

C 프로그래밊 개요

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

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

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

03장.스택.key

Microsoft PowerPoint - chap05-제어문.pptx

(b) 미분기 (c) 적분기 그림 6.1. 연산증폭기연산응용회로

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

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

PowerPoint 프레젠테이션

POC "Power of Community" 이민우 (lwmr)

C스토어 사용자 매뉴얼

쉽게 풀어쓴 C 프로그래밍

Windows Server 2012

*2008년1월호진짜

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

[로플랫]표준상품소개서_(1.042)

SBR-100S User Manual

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

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

11장 포인터

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C4C656D70656C2D5A69762E637070>

PowerPoint 프레젠테이션

<41736D6C6F D20B9AEBCADBEE7BDC42E687770>

Deok9_PE Structure

OCW_C언어 기초

Adobe Flash 취약점 분석 (CVE )

C++ Programming

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

Microsoft PowerPoint App Fundamentals[Part1](1.0h).pptx

슬라이드 1

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

Hack The Packet Online PreQUAL 이진혁 [ loca ]

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

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

untitled

API 매뉴얼

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

PowerPoint Presentation

게시판 스팸 실시간 차단 시스템

: 1 int arr[9]; int n, i; printf(" : "); scanf("%d", &n); : : for(i=1; i<10; i++) arr[i-1] = n * i; for(i=0; i<9; i++) if(i%2 == 1) print

T100MD+

12 강. 문자출력 Direct3D 에서는문자를출력하기위해서 LPD3DXFONT 객체를사용한다 LPD3DXFONT 객체생성과초기화 LPD3DXFONT 객체를생성하고초기화하는함수로 D3DXCreateFont() 가있다. HRESULT D3DXCreateFont

서강대학교공과대학컴퓨터공학과 (1/5) CSE3081 (2 반 ): 알고리즘설계와분석 < 프로그래밍숙제 2> (v_1.0) 담당교수 : 임인성 2015 년 10 월 13 일 마감 : 10 월 31 일토요일오후 8 시정각 제출물, 제출방법, LATE 처리방법등 : 조교가

untitled

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

Microsoft PowerPoint App Fundamentals[Part1].pptx

Frama-C/JESSIS 사용법 소개

슬라이드 1

Microsoft PowerPoint - ch07 - 포인터 pm0415

K&R2 Reference Manual 번역본

5.스택(강의자료).key

Junior CTF Write-Up 서울대원고등학교 404error[ 현성원 ]

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - chap12-고급기능.pptx

슬라이드 1

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

슬라이드 1

Reverse01 리버싱을평소에했던사람들이 1 번문제를 ollyice 파일로실행을시켰을경우에 아래와같은계속반복만되고원하는루틴들이안나오는것을금방확인할수있을것이다. 그래서 Stud_PE 라는툴로 1 번문제를열어본다면 이것과같이 UPX 라는글자가보인다. 이 UPX 가뜻하는것

Install stm32cubemx and st-link utility

8장 문자열

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

Microsoft PowerPoint - [2009] 02.pptx

untitled

Transcription:

!Factorial Lab and Team 4th Association Team 불교연합 HolyShield 2011 풀이 불교연합 ;!Factorial;0xC0DE;Jnvb;N1NE 2011-11-20 참고로 pdf 파일크게보기 (Zoom) 하면작은그림들도잘보입니다.

2 HolyShield 2011 풀이 1 번문제풀이 ( Solved by 0xC0DE @!Factorial ) 파일의종류가뭔지알아보기위하여 EXEInfope 의헤더탐색기능을이용하였다. 파일의종류를알아보니 Linux 에서실행가능한파일임을알게되었다. 하지맊나는윈도우유저일뿐맊아니라 VM 에리눅스도설치되어있지않아서 Intel 80x86 계열임을감안하여 IDA 6.1 과 Hexrays Decompiler 를이용해디컴파일을시도했다. 위는 main 함수의슈도코드이다. ( 정말 Hexrays 개발자들에게경의를표한다 ; 이정도면완젂코드이다.) 보아하니 rou1 함수에서어떠한처리가일어나고그것을길이맊큼출력해주는코드이다. 그래서가장핵심이되는 rou1 의슈도코드를살펴보았다.

3 HolyShield 2011 풀이 XOR 연산자인 ^ 이보이니이함수는암호화함수임을짐작할수있다. 그리하여역연산을시도해보려고했지맊 SHR(SHift Right) 로인해손상되는비트가있어서그냥브루트포스기법을사용하기로했다.Rou1 함수를그대로복사하여알맞게수정하고브루트포싱을위한프로그램을작성하였다. 코드는아래와같다 int main() { char j = 0; char tmp[29] = {33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,0}; char tmp2[29] = {0, }; char comp[29] = {-88,-74,-96,-94,-70,-89,-70,-90,-31,-44,-118,-88,-80,-38,-70,-69,-127,-128,-86,-81,- 88,-32,-19,-47,-21,-27,-23,-7,0}; for(j = 0; j<28 ; j++) { while(1) { strcpy(tmp2,tmp); rou1(tmp2); if(comp[j] == tmp2[j]) { break; } tmp[j] += 1; if(tmp[j] > 127) { printf("failed!... \n\n"); return 0; } } } printf("%s", &tmp);

4 HolyShield 2011 풀이 return 0; } int rou1(char* tmp) { int result; // eax@3 unsignedint i; // [sp+1ch] [bp-ch]@1 DWORD val1 = 0; DWORD val2 = 0; val1 = strlen(tmp); for ( i = 0; ; ++i ) { result = val1; if ( i >= val1 ) break; val2 = val1 + (((13 * i ^ 0x23979) + 145785) >> 2); tmp[i] ^= val1 + (unsigned int8)(((13 * i ^ 0x23979) + 145785) >> 2); } return result; } 길이에따라 XOR 하는값이달라지므로길이를유지하며한자한자씩 ASCII 의문자열범위의 33~ 126 까지돌리고문제에서주어진결과값이랑비교하는코드를작성했다. 그리고실행시키니 password_is_c4tsecur1ty_allz 라는값이출력되었다. Key : C4TSecur1ty_allz

5 HolyShield 2011 풀이 2 번문제풀이 ( Solved by jnvb @!Factorial ) 처음엔 notice md5를구해서공지사항에글도써보고 xss도해봤지맊별게없었다. 그런데 /img/ 디렉토리를보니디렉토리리스닝이됬었다. 하나의파일맊 png이고나머진 jpg라서수상해서스테가노그래피로풀려했지맊. 키가없었다. 그러다메인에있는그사진에마우스를올려보니수줍게자기는답이아니라고 (this_is_not_answer) 라고외친다. (alt= this_is_not_answer 에서 )

6 HolyShield 2011 풀이 그래서이키로 openstego 를이용하여 key.txt 파일을추출했다. 스샷은 N1NE 꺼ㅋ Key: SmaSh_MosqUitO

7 HolyShield 2011 풀이 3 번문제풀이 ( Solved by jnvb @!Factorial ) 받은파일의압축을풀어보니까 안드로이드에뮬레이터파일들이들어있었다. 그래서 AVD(Android Virtual Device) 를하나맊들 고저파일들을붙여넣었다. 그리고실행시켜봤다.

8 HolyShield 2011 풀이 하지맊!! 패턴암호가걸려있어서내부는볼수없었다ㅜㅜ 그래서 DDMS 를이용해서내부파일들을봤더니 /mnt/sdcard/uv-who_am_i.mp3 파일이있었다. 하지맊별로건질게없어서노래맊듣다가노래에빠졋.

9 HolyShield 2011 풀이 아무튺 /mnt/sdcard/android/data/com.android.providers.media/albumthumbs/1321612004065.png 라는파일도있었다. Hex editor로열어보니사진파일마지막에연락처같은게붙어있었다. QUOTE-PRINTABLE로인코딩이되어있어여기에서디코딩했다. (Charset은적힌대로 UTF-8)

10 HolyShield 2011 풀이 그리고 DDMS 를이용해서수상한파일을더찾던중문자기록을찾을수있었다. /data/data/com.android.providers.telephony/databases/mmssms.db 급히파이어폭스의플러그인인 SQLITE MANAGER 를이용해서내용을봤다. Sms 테이블에수상한문자들이맋이있었다.. 그중에제일수상한문자는 50 번째문자였다. hey guys! ahr0cdovl3f5adgucxiuywk= base64 로 decode 해보니 힌트가적힌 URL 이나왔다. -> http://qyh8.qr.ai 힌트는.. 1 번째키는문자를보내고있는사람이름이고 2 번째키는지금이문자와같은쓰레드 에서그다음문자를삭제하면답찾는방법이보일꺼라했다 난착하니까시키는대로했다.

11 HolyShield 2011 풀이 힌트에세로로읽어라라고나온뒤에야깨달았다 세로로읽으니 http://qyhr.qr.ai 라는링크가나왔다 들어가니 2 번째키가 css 쪽에있었다.. 2 번째키는 n4 d0 8oyfr13nd 였다. 1 번째키는머냐고물으싞다면!! 저문자를 010-118-0118 이라는번호를가진사람과주고받았다.. 그번호를아까찾은연락처에서찾으면 강참치라는것을알수있다. BEGIN:VCARD VERSION:2.1 N;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE: 강 ; 참치 ;;; FN;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE: 강참치 TEL;CELL:010-118-0118 END:VCARD 위의연락처들에서이민정한테젂화를시도했지맊.. 틀린젂화번호였다ㅜ왜냐하면.. 저건그냥연예인의생일을핶드폮번호처럼 아무튺 1 번째키는강참치 ( 영어로 ) 치면되고 2 번째키는위의링크에서찾은 n4 d0 8oyfr13nd 이다. 이두개의키를 1 번째키 _2 번째키로이으면답이완성!! Key: rkdckacl_n4 d0 8oyfr13nd

12 HolyShield 2011 풀이 4 번문제풀이 ( Solved by N1NE @!Factorial ) 일단확장자가없으니헥스에디터로열어보았다. MZ 를보고 exe 라생각하여실행해봤으나다시 헤더를확인하니 DLL 파일이었다. 확장자를 dll 로바꾼후젂반적인흐름을보기위해 ida 로열었다. DllMain 에서는 exe 의파일명을체크하는데조건은파일명이?t?r?ra??t?xe 가아니면종료하는 것이었다. 처음엔저파일이뭘까생각해보다가혹시내컴퓨터에도있나? 하고파일을검색해보니 starcraft.exe 였다.

13 HolyShield 2011 풀이 파일명체크가되면스레드를생성해 5 초에한번씩특정값들을체크를한다. 하지맊그값들은실제스타크래프트에맊있는값이여서실제스타크래프트가아니면 Access Violation Exception 이발생했다. 그래서실제스타크래프트에도 dll 을인젝션해봤지맊조건들이 다멍청해서 ( 모순 ) 성립되지않았다. 그래서올리디버거로열어보니로드될때마다 ImageBase가바뀌었다. ASLR( 젞장 ) 이었다. exe에서 ASLR 제거하는방법을시도해봤지맊 dll에서는.reloc섹션을날려버리니될리가없었고, 외국포럼에서 PE헤더의 IMAGE_NT_HEADERS \ IMAGE_OPTINAL_HEADER \ DLL Characteristics \ IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE를제거하면된다고하였다.

14 HolyShield 2011 풀이 PEView 로 PE 헤더를보니 DLL Characteristics 가 IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE(40) 과 IMAGE_DLLCHARACTERISTICS_NX_COMPAT(100) 으로 140 이었다.

15 HolyShield 2011 풀이 헥스에디터로 IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE를제거하기위해 100으로값을바꿔버리니 ASLR은손쉽게제거되었다. 다음, 스타크래프트에맊있는 68C2A0, 5859397 같은주소들을모두 dll의 data섹션의쓸수있는주소로코드를패치하고 CMP로비교하는부분을 MOV로패치하여조건을충족시키도록한후실행했더니키보드로키를쳐주었다. Key: R37URN 7O 7H3 N4TUR3 4ND 4T0M0S

16 HolyShield 2011 풀이 6 번문제풀이 ( Solved by N1NE @!Factorial ) 6번문제는로또게임에서이겨야하는웹문제였다. 나온번호그대로 txt파일에써서올리다보니더빨리올리라는거다. 파싱해서바로올리도록코딩을해야겠다해서코딩했다. VB로코딩했다가 VB가멍청하게헤더를지맘대로바꿔서 php로재코딩했다. 위 php 파일 ( 소스 ) 을실행하니키값이나왔다. Key: 5600b09e400f8abe5da4c3bc01f0d9ae

17 HolyShield 2011 풀이 8 번문제풀이 ( Solved by N1NE @!Factorial ) 이번에는포렊식 (?) 인데요, 처음엔파일들을가지고삽질맊하다가힌트를받았다. 그힌트는바로이것.!! 이사진을보자마자저는 스풀링 을생각했고, 스풀링파일은 *.SPL이라는걸알아냈다. SPLView라는프로그램을다운로드받아 Skynet_Evid0002\WINDOWS\system32\spool\PRINTERS\ 의 SPL파일 (FP00000-FP00009.SPL) 을보니 FP00009.SPL의 11번째페이지에있는이미지하단중앙에키가적혀있었다. Key: S3cretDocsVeryImp0rtant

18 HolyShield 2011 풀이 10 번문제풀이 ( Solved by N1NE @!Factorial ) 일단가입하고보니아이디가세션이아닌쿠키에 mcrypt로암호화되어저장되어있었다. 그래서 admin쿠키를생성해서관리자모드로진입하였다. 관리자모드에서는 phpinfo와 LFI취약점을발견했다. 힌트가 phpinfo + LFI라고나온것을보고조합이되면뭔가있나보다생각하고검색을했고, 한문서를찾았다. http://www.insomniasec.com/publications/lfi%20with%20phpinfo%20assistance.pdf 이문서의하단에있는파이썬코드를수정하여실행시켰다. 쉘이업로드되었다!!! (jnvb 형님의맥특별출현 ) ls -al

19 HolyShield 2011 풀이 ls -al.. 하니 key 파일이보였다. cat T his_1s k3yyy.php Key: yummy!yummy!chop!chop!