[Writeup] Whitehat Contest 4

For100

Mạng máy tính Natasha sử dụng bị hacker “nghe” lén, nhiều thông tin nhạy cảm đã bị lộ ra.
Dữ liệu hacker thu thập được dump ra file

Link dự phòng

[sh]$ file for100
for100: pcap-ng capture file – version 1.0[/sh]
Bài này là PCAP, tuy nhiên do size khá nhỏ nên có thể xem bằng Notepad++ cũng được.

26-04-2014 10-28-25

Ta thấy có 2 chuỗi Base64, nhưng ngay dưới chuỗi đầu tiên là thông báo Password Incorrect nên tạm bỏ qua. Decode chuỗi 2 ra Flag:
[sh]Flag{Ftp_is_n0t_secure}[/sh]

For200

Trong một vụ điều tra, máy tính của hacker đã bị thu giữ và từ đây các điều tra viên phát hiện nhiều dữ liệu đặc biệt trên ổ cứng đã bị cố tình xóa nhằm che dấu hành vi phạm tội.

Tải file dump 

Link dự phòng

Giải nén file ZIP ta được file data.001.
[sh]$ file data.001
data.001: x86 boot sector[/sh]
Dựa theo đề bài thì có vẻ như là khôi phục dữ liệu, có nhiều cách để làm, ở đây mình dùng foremost.
[sh]114 FILES EXTRACTED

jpg:= 109
zip:= 3 (thực chất là docx)
pdf:= 2[/sh]
Việc đầu tiên là phải mở hết mớ file này, nhìn thật kỹ từng chữ (với docx, pdf) và từng pixel (với jpg). Cũng đặc biệt lưu ý đến các khoảng trắng, điều này đã được nhắc đến trong một tập của bộ truyện tranh trinh thám nổi tiếng Conan (tác giả Gosho Aoyama, hiện đang ở chương 894 và chưa có dấu hiệu sẽ kết thúc, các bạn quan tâm có thể đón đọc tại diễn đàn KenhSinhVien.net).

26-04-2014 11-36-25

Sau khi không thấy gì khả thi, mình sẽ thử search xem có flag hay không:
[sh]$ grep -r “Flag{“[/sh]
Vẫn không có gì. Ok, giờ là lúc để giải nén mấy file docx kia và xem có gì không.
[sh]$ ls docx
00061688.docx 00342176.docx 00348448.docx
00061688.docx_FILES 00342176.docx_FILES 00348448.docx_FILES[/sh]
[sh]$ grep -r “Flag{” docx
docx/00061688.docx_FILES/docProps/append.xml: Flag{recover_data_is_not_so_hard}[/sh]

For300

Dữ liệu bộ nhớ(RAM) trên máy tính đã cho thấy người dùng đã có những hành động đáng ngờ
Tải file dump tại đây hoặc link dự phòng

[sh]$ file memory.raw
memory.raw: data[/sh]

Không mấy khả quan, tuy nhiên mình vẫn đặt niềm tin vào BTC.
[sh]$ volatility -f memory.raw imageinfo
Volatility Foundation Volatility Framework 2.3.1
Determining profile based on KDBG search…

Suggested Profile(s) : Win7SP0x86, Win7SP1x86
AS Layer1 : IA32PagedMemoryPae (Kernel AS)
AS Layer2 : FileAddressSpace (/home/yeuchimse/Desktop/memory.raw)
PAE type : PAE
DTB : 0x185000L
KDBG : 0x8292bc28
Number of Processors : 1
Image Type (Service Pack) : 1
KPCR for CPU 0 : 0x8292cc00
KUSER_SHARED_DATA : 0xffdf0000
Image date and time : 2014-04-22 08:33:36 UTC+0000
Image local date and time : 2014-04-22 15:33:36 +0700[/sh]
Theo những gì mình từng đọc thì thường việc đầu tiên người ta làm là xem danh sách các tiến trình đang chạy.
[sh]$ volatility -f memory.raw –profile=Win7SP1x86 pslist
Volatility Foundation Volatility Framework 2.3.1
Offset(V) Name PID PPID Thds Hnds Sess Wow64 Start Exit


0x84f488e8 System 4 0 91 568 —— 0 2014-04-22 08:01:36 UTC+0000
0x8591c660 smss.exe 252 4 3 29 —— 0 2014-04-22 08:01:36 UTC+0000
0x8607d7e8 csrss.exe 344 336 9 439 0 0 2014-04-22 08:01:42 UTC+0000
0x862ea030 csrss.exe 396 388 10 233 1 0 2014-04-22 08:01:43 UTC+0000
0x862f3d40 wininit.exe 404 336 3 75 0 0 2014-04-22 08:01:43 UTC+0000
0x86301030 winlogon.exe 440 388 3 111 1 0 2014-04-22 08:01:44 UTC+0000
0x86322c48 services.exe 500 404 6 201 0 0 2014-04-22 08:01:45 UTC+0000
0x8632b560 lsass.exe 508 404 7 559 0 0 2014-04-22 08:01:46 UTC+0000
0x8632b8a8 lsm.exe 516 404 11 209 0 0 2014-04-22 08:01:46 UTC+0000
0x8635e6d8 svchost.exe 608 500 11 354 0 0 2014-04-22 08:01:49 UTC+0000
0x86378bb8 svchost.exe 684 500 8 271 0 0 2014-04-22 08:01:51 UTC+0000
0x863a00c8 svchost.exe 772 500 20 512 0 0 2014-04-22 08:01:51 UTC+0000
0x863a93d8 svchost.exe 808 500 16 390 0 0 2014-04-22 08:01:51 UTC+0000
0x863af978 svchost.exe 836 500 36 1072 0 0 2014-04-22 08:01:52 UTC+0000
0x863db920 svchost.exe 988 500 16 673 0 0 2014-04-22 08:01:53 UTC+0000
0x863f5888 svchost.exe 1096 500 23 632 0 0 2014-04-22 08:01:54 UTC+0000
0x8643a030 spoolsv.exe 1224 500 13 337 0 0 2014-04-22 08:01:56 UTC+0000
0x86453648 svchost.exe 1288 500 17 312 0 0 2014-04-22 08:01:58 UTC+0000
0x864ac9e0 vmtoolsd.exe 1440 500 9 270 0 0 2014-04-22 08:02:00 UTC+0000
0x864dbc08 YahooAUService 1512 500 6 266 0 0 2014-04-22 08:02:04 UTC+0000
0x86540b00 TPAutoConnSvc. 1888 500 10 143 0 0 2014-04-22 08:02:09 UTC+0000
0x8655bc30 svchost.exe 316 500 14 352 0 0 2014-04-22 08:02:11 UTC+0000
0x865608b8 svchost.exe 400 500 5 98 0 0 2014-04-22 08:02:11 UTC+0000
0x8656e9a0 dllhost.exe 308 500 13 193 0 0 2014-04-22 08:02:11 UTC+0000
0x8659bd40 msdtc.exe 2112 500 12 145 0 0 2014-04-22 08:02:15 UTC+0000
0x865435b0 taskhost.exe 2448 500 8 199 1 0 2014-04-22 08:02:38 UTC+0000
0x9282d6a8 dwm.exe 2568 808 5 69 1 0 2014-04-22 08:02:42 UTC+0000
0x9282e078 explorer.exe 2576 2544 34 895 1 0 2014-04-22 08:02:43 UTC+0000
0x92894d40 vmtoolsd.exe 2740 2576 7 212 1 0 2014-04-22 08:02:57 UTC+0000
0x92861030 SearchIndexer. 2864 500 13 625 0 0 2014-04-22 08:03:06 UTC+0000
0x863487a0 svchost.exe 3400 500 15 237 0 0 2014-04-22 08:03:44 UTC+0000
0x8659a1f8 wmpnetwk.exe 3520 500 9 211 0 0 2014-04-22 08:03:47 UTC+0000
0x8653b030 TPAutoConnect. 3292 1888 5 125 1 0 2014-04-22 08:05:06 UTC+0000
0x862f7548 conhost.exe 3288 396 1 33 1 0 2014-04-22 08:05:06 UTC+0000
0x851d1030 ytb_9.2.1.5_ma 4052 1512 0 ——– 1 0 2014-04-22 08:28:09 UTC+0000 2014-04-22 08:28:25 UTC+0000
0x863d3030 cmd.exe 284 2576 1 21 1 0 2014-04-22 08:31:55 UTC+0000
0x85182a48 conhost.exe 1520 396 2 50 1 0 2014-04-22 08:31:55 UTC+0000
0x851cf550 DumpIt.exe 1792 2576 2 37 1 0 2014-04-22 08:33:25 UTC+0000
0x8561b030 conhost.exe 1916 396 2 49 1 0 2014-04-22 08:33:25 UTC+0000[/sh]
Dễ thấy DumpIt.exe chính là gợi ý của BTC, Dump nghĩa là Dump, It nghĩa là Nó :suy ra: DumpIt = Dump Nó (tức muốn nói rằng hãy dump nó, vì nó có flag).
[sh]$ volatility -f memory.raw –profile=Win7SP1x86 procexedump -p 1792 –dump-dir=for300
Volatility Foundation Volatility Framework 2.3.1
Process(V) ImageBase Name Result


0x851cf550 0x01130000 DumpIt.exe OK: executable.1792.exe[/sh]
Mở file này trong OllyDbg, chúng ta có thể thấy ngay rằng Flag nằm ở… chỗ khác , và thực ra thì DumpIt là tên một phần mềm
Xem lại một lần nữa để chắc chắn rằng không còn tiến trình nào khả nghi, mình quyết định chuyển qua thể loại coi history của cmd.
[sh]$ volatility -f memory.raw –profile=Win7SP1x86 consoles
Volatility Foundation Volatility Framework 2.3.1


ConsoleProcess: conhost.exe Pid: 1520
Console: 0xef81c0 CommandHistorySize: 50
HistoryBufferCount: 3 HistoryBufferMax: 4
OriginalTitle: %SystemRoot%\system32\cmd.exe
Title: Administrator: C:\Windows\system32\cmd.exe

AttachedProcess: cmd.exe Pid: 284 Handle: 0x5c

CommandHistory: 0x272a10 Application: curl.exe Flags:
CommandCount: 0 LastAdded: -1 LastDisplayed: -1
FirstCommand: 0 CommandCountMax: 50

ProcessHandle: 0x0

CommandHistory: 0x290770 Application: PING.EXE Flags:
CommandCount: 0 LastAdded: -1 LastDisplayed: -1
FirstCommand: 0 CommandCountMax: 50

ProcessHandle: 0x0

CommandHistory: 0x290548 Application: cmd.exe Flags: Allocated, Reset
CommandCount: 5 LastAdded: 4 LastDisplayed: 4
FirstCommand: 0 CommandCountMax: 50
ProcessHandle: 0x5c
Cmd #0 at 0x272168: ping www.example.com
Cmd #1 at 0x272750: curl “http://ctf.whitehat.vn:1365/9f4720623605da4d234c6c7cfa9d38fe40adc519/” -d “payload=dXNlcm5hbWU9YWRtaW4mcGFzc3dvcmQ9Z3VydWhhY2tlciZpbmRleD0w”
Cmd #2 at 0x29c588: curl “http://ctf.whitehat.vn:1365/9f4720623605da4d234c6c7cfa9d38fe40adc519/” -d “payload=dXNlcm5hbWU9YWRtaW4mcGFzc3dvcmQ9Z3VydWhhY2tlciZpbmRleD0x”
Cmd #3 at 0x29c6b8: curl “http://ctf.whitehat.vn:1365/9f4720623605da4d234c6c7cfa9d38fe40adc519/” -d “payload=dXNlcm5hbWU9YWRtaW4mcGFzc3dvcmQ9Z3VydWhhY2tlciZpbmRleD00”

Cmd #4 at 0x29c7e8: curl “http://ctf.whitehat.vn:1365/9f4720623605da4d234c6c7cfa9d38fe40adc519/” -d “payload=dXNlcm5hbWU9YWRtaW4mcGFzc3dvcmQ9Z3VydWhhY2tlciZpbmRleD05”

Screen 0x276408 X:80 Y:300
Dump:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:\Users\admin>ping www.example.com

Pinging www.example.com [93.184.216.119] with 32 bytes of data:
Reply from 93.184.216.119: bytes=32 time=199ms TTL=128
Reply from 93.184.216.119: bytes=32 time=200ms TTL=128
Reply from 93.184.216.119: bytes=32 time=208ms TTL=128
Reply from 93.184.216.119: bytes=32 time=202ms TTL=128

Ping statistics for 93.184.216.119:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 199ms, Maximum = 208ms, Average = 202ms

C:\Users\admin>curl “http://ctf.whitehat.vn:1365/9f4720623605da4d234c6c7cfa9d38f
e40adc519/” -d “payload=dXNlcm5hbWU9YWRtaW4mcGFzc3dvcmQ9Z3VydWhhY2tlciZpbmRleD0w

F
C:\Users\admin>curl “http://ctf.whitehat.vn:1365/9f4720623605da4d234c6c7cfa9d38f
e40adc519/” -d “payload=dXNlcm5hbWU9YWRtaW4mcGFzc3dvcmQ9Z3VydWhhY2tlciZpbmRleD0x

l
C:\Users\admin>curl “http://ctf.whitehat.vn:1365/9f4720623605da4d234c6c7cfa9d38f
e40adc519/” -d “payload=dXNlcm5hbWU9YWRtaW4mcGFzc3dvcmQ9Z3VydWhhY2tlciZpbmRleD00

a
C:\Users\admin>curl “http://ctf.whitehat.vn:1365/9f4720623605da4d234c6c7cfa9d38f
e40adc519/” -d “payload=dXNlcm5hbWU9YWRtaW4mcGFzc3dvcmQ9Z3VydWhhY2tlciZpbmRleD05

g
C:\Users\admin>[/sh]
Mỗi lần request lên thì nhận được 1 ký tự khác nhau, và có vẻ đang chuẩn bị in ra Flag{…}
Decode các chuỗi payload ta có:
[sh]username=admin&password=guruhacker&index=0
username=admin&password=guruhacker&index=1
username=admin&password=guruhacker&index=4
username=admin&password=guruhacker&index=9[/sh]
Như vậy dễ thấy là giá trị của index thay đổi theo bước nhảy 1, 3, 5, 7, 9, …, 69… Cụ thể là từ 0 lên 1 (tăng 1), từ 1 lên 4 (tăng 3), từ 4 lên 9 (tăng 5)… cứ như vậy… như vậy… như vậy…
[python]import time

def get_url_source(url, cookie = None, post_data = None):
import urllib, urllib2

if (post_data != None):
req = urllib2.Request(url, urllib.urlencode(post_data))
else:
req = urllib2.Request(url)

req.add_header(‘User-Agent’, ‘Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20130606 Firefox/24.0’)

if (cookie != None):
req.add_header(‘Cookie’, cookie)
if (post_data != None):
req.add_header(‘Content-type’, ‘application/x-www-form-urlencoded’)

source = urllib2.urlopen(req).read()
return source

flag = ”
i = 0
add = 1
while True:
data = [(‘payload’, (‘username=admin&password=guruhacker&index=%d’ % i).encode(‘base64’).strip())]
c = get_url_source(‘http://ctf.whitehat.vn:1365/9f4720623605da4d234c6c7cfa9d38fe40adc519/’, None, data)
if len(c.strip()) == 1:
flag += c
print flag

if c == ‘}’:
break

i += add
add += 2

time.sleep(0.5)
print ‘Flag:’, flag[/python]
[sh]F
Fl
Fla
Flag
Flag{
Flag{m
Flag{me
Flag{mem
Flag{memo
Flag{memor
Flag{memory
Flag{memory_
Flag{memory_f
Flag{memory_fo
Flag{memory_for
Flag{memory_fore
Flag{memory_foren
Flag{memory_forens
Flag{memory_forensi
Flag{memory_forensic
Flag{memory_forensics
Flag{memory_forensics_
Flag{memory_forensics_i
Flag{memory_forensics_is
Flag{memory_forensics_is_
Flag{memory_forensics_is_a
Flag{memory_forensics_is_aw
Flag{memory_forensics_is_awe
Flag{memory_forensics_is_awes
Flag{memory_forensics_is_aweso
Flag{memory_forensics_is_awesom
Flag{memory_forensics_is_awesome
Flag{memory_forensics_is_awesome}
Flag: Flag{memory_forensics_is_awesome}
[Finished in 20.5s][/sh]

10 Responses

  1. Chinked Eyes says:

    anh ơi… còn bài for 400 sao không giải quyết lun vậy anh :D. em đang rất hóng bài của anh đấy
    cảm ơn a nhé 😀

    • yeuchimse says:

      Có làm được đâu mà viết ~(*_*)~

      • Chinked Eyes says:

        ^^ lần đầu nghe yeuchimse than đấy 😀 khi nào a làm được nhớ hướng dẫn cho tụi em nữa nhé…

  2. NNT says:

    Ở bài for2. Đến bước recover sử dụng foremost bạn dùng command gì của foremost mà lại ra tới 6 file trong folder docx vậy? Mình làm chỉ ra 3 file nên không thấy có file chứa flag.

    • yeuchimse says:

      Có 3 file thôi mà bạn: 00061688.docx, 00342176.docx, 00348448.docx.
      Còn xxx_FILES là các thư mục sau khi giải nén, do về bản chất thì file docx chính là file zip ^_^

  3. Chinked Eyes says:

    chào anh.. ở bài for400 anh còn giữ tập tin đề không, cho em xin được không ạ. cảm ơn!

  1. […] [Writeup] Whitehat Contest 4 – Yêu Chim Sẻ […]

  2. […] nhiên tôi chưa mua bản quyền, nhưng bản năng Conan trong con người tôi cũng đủ để giúp cho tôi nhặt được một số điện thoại hợp lệ trong clip […]

Comments are much better than likes...

%d bloggers like this: