Shi0shishi0

とても眠い。

Trend Micro CTF 2017 Writeup

久しぶりに友人達とCTFに参加しました。最終的に600pt。
自分はForensic200、Reversing100、IoT/OSINT/SCADA100の3問を解いて400pt入れました。


Forensic 200

ウイルスに感染したっぽいPCのイメージファイルが渡される。この中から悪性なインジケータを取り出せとのこと。

Category: Forensic
Points: 200

We got memory image from victim pc. Please analyze malicious indicator. 7z password : novirus
Download the file

Decrypt the downloaded file by the following command.


> openssl enc -d -aes-256-cbc -k BnKUyuHfJf31804OmzkO -in files10.enc -out files10.zip
> unzip files10.zip
            

UPDATE: If you have issues decrypting, please try the following command instead.


> openssl enc -d -aes-256-cbc -k BnKUyuHfJf31804OmzkO -in files10.enc -out files10.zip -md md5
> unzip files10.zip


fileコマンド。これだけではよくわからない。

$ file VictimMemory.img 
VictimMemory.img: data

Volatilityでファイルを調査していく。
imageinfoを使うとWindows7(SP1、x86)環境のイメージであることが分かる。

$ vol.py imageinfo -f VictimMemory.img 
Volatility Foundation Volatility Framework 2.5
INFO    : volatility.debug    : Determining profile based on KDBG search...
          Suggested Profile(s) : Win7SP1x86_BBA98F40, Win7SP0x86, Win7SP1x86
                     AS Layer1 : IA32PagedMemoryPae (Kernel AS)
                     AS Layer2 : FileAddressSpace (/home/hamasho30/TMCTF2017/files10/VictimMemory.img)
                      PAE type : PAE
                           DTB : 0x185000L
                          KDBG : 0x8333ec28L
          Number of Processors : 1
     Image Type (Service Pack) : 1
                KPCR for CPU 0 : 0x8333fc00L
             KUSER_SHARED_DATA : 0xffdf0000L
           Image date and time : 2017-04-11 02:35:28 UTC+0000
     Image local date and time : 2017-04-11 11:35:28 +0900

動作しているプロセスの一覧を取得。

$ vol.py pslist -f VictimMemory.img --profile=Win7SP1x86
Volatility Foundation Volatility Framework 2.5
Offset(V)  Name                    PID   PPID   Thds     Hnds   Sess  Wow64 Start                          Exit                          
---------- -------------------- ------ ------ ------ -------- ------ ------ ------------------------------ ------------------------------
0x8594b7e0 System                    4      0     91      490 ------      0 2017-04-11 02:27:39 UTC+0000                                 
0x86dd0d40 smss.exe                268      4      2       29 ------      0 2017-04-11 02:27:39 UTC+0000                                 
0x86d1d7e8 csrss.exe               352    344      9      470      0      0 2017-04-11 02:27:43 UTC+0000                                 
0x89d83478 csrss.exe               404    396     10      199      1      0 2017-04-11 02:27:45 UTC+0000                                 
0x89d8a530 wininit.exe             412    344      3       78      0      0 2017-04-11 02:27:45 UTC+0000                                 
0x89da3530 winlogon.exe            444    396      3      114      1      0 2017-04-11 02:27:45 UTC+0000                                 
0x88a056d8 services.exe            508    412      7      220      0      0 2017-04-11 02:27:47 UTC+0000                                 
0x88a0c030 lsass.exe               516    412      7      547      0      0 2017-04-11 02:27:48 UTC+0000                                 
0x88a0ba38 lsm.exe                 524    412     10      143      0      0 2017-04-11 02:27:48 UTC+0000                                 
0x88a47130 svchost.exe             616    508     10      359      0      0 2017-04-11 02:27:51 UTC+0000                                 
0x88a4bcd8 vmacthlp.exe            676    508      3       53      0      0 2017-04-11 02:27:52 UTC+0000                                 
0x88a5e528 svchost.exe             720    508      7      284      0      0 2017-04-11 02:27:53 UTC+0000                                 
0x88a808a0 svchost.exe             808    508     20      465      0      0 2017-04-11 02:27:53 UTC+0000                                 
0x88a87518 svchost.exe             844    508     18      419      0      0 2017-04-11 02:27:53 UTC+0000                                 
0x88a8baf8 svchost.exe             868    508     42     1017      0      0 2017-04-11 02:27:53 UTC+0000                                 
0x88aa7130 audiodg.exe             952    808      4      122      0      0 2017-04-11 02:27:55 UTC+0000                                 
0x88ab6c88 svchost.exe            1008    508     13      282      0      0 2017-04-11 02:27:56 UTC+0000                                 
0x88add030 svchost.exe            1116    508     16      391      0      0 2017-04-11 02:27:57 UTC+0000                                 
0x89d0b030 spoolsv.exe            1232    508     12      326      0      0 2017-04-11 02:27:59 UTC+0000                                 
0x89d91030 svchost.exe            1288    508     17      304      0      0 2017-04-11 02:28:00 UTC+0000                                 
0x86d7b030 VGAuthService.         1424    508      3       87      0      0 2017-04-11 02:28:03 UTC+0000                                 
0x86dcf2d0 vmtoolsd.exe           1484    508      8      289      0      0 2017-04-11 02:28:07 UTC+0000                                 
0x89c0fb78 svchost.exe            1668    508      8       92      0      0 2017-04-11 02:28:12 UTC+0000                                 
0x86400838 taskhost.exe           1976    508      9      165      1      0 2017-04-11 02:28:18 UTC+0000                                 
0x88b91030 dwm.exe                 568    844      3       70      1      0 2017-04-11 02:28:22 UTC+0000                                 
0x88bbaab8 explorer.exe            940    356     31      865      1      0 2017-04-11 02:28:23 UTC+0000                                 
0x88bd3a98 msdtc.exe              1420    508     14      150      0      0 2017-04-11 02:28:28 UTC+0000                                 
0x88be3300 WmiPrvSE.exe            204    616     10      204      0      0 2017-04-11 02:28:31 UTC+0000                                 
0x89b5b5b0 WmiPrvSE.exe           2108    616     10      294      0      0 2017-04-11 02:28:37 UTC+0000                                 
0x88bca030 vmtoolsd.exe           2216    940      6      191      1      0 2017-04-11 02:28:51 UTC+0000                                 
0x89a3b8e0 SearchIndexer.         2376    508     12      576      0      0 2017-04-11 02:29:03 UTC+0000                                 
0x89d6b030 mscorsvw.exe           3096    508      6       74      0      0 2017-04-11 02:30:34 UTC+0000                                 
0x8694bd40 svchost.exe            3192    508      9      126      0      0 2017-04-11 02:30:40 UTC+0000                                 
0x86986030 sppsvc.exe             3264    508      4      146      0      0 2017-04-11 02:30:44 UTC+0000                                 
0x8697fa58 svchost.exe            3300    508      9      299      0      0 2017-04-11 02:30:45 UTC+0000                                 
0x89a131f8 WmiApSrv.exe           3728    508      5      111      0      0 2017-04-11 02:31:41 UTC+0000                                 
0x8691c030 cmd.exe                4080    940      1       20      1      0 2017-04-11 02:32:02 UTC+0000                                 
0x86938030 conhost.exe            1868    404      3      100      1      0 2017-04-11 02:32:03 UTC+0000                                 
0x869fa6c0 VSSVC.exe              2304    508     12      194      0      0 2017-04-11 02:33:08 UTC+0000                                 
0x8697bd40 svchost.exe            3324    508      5       66      0      0 2017-04-11 02:33:09 UTC+0000                                 
0x869b6030 msiexec.exe            3612    508      9      278      0      0 2017-04-11 02:34:25 UTC+0000                                 
0x88abfa78 svchost.exe            3828   4080      1        7      1      0 2017-04-11 02:35:18 UTC+0000                                 
0x89a73d40 cmd.exe                3880   1484      0 --------      0      0 2017-04-11 02:35:27 UTC+0000   2017-04-11 02:35:28 UTC+0000  
0x86784030 conhost.exe            3888    352      0 --------      0      0 2017-04-11 02:35:28 UTC+0000   2017-04-11 02:35:28 UTC+0000  
0x869b8d40 ipconfig.exe           3900   3880      0 --------      0      0 2017-04-11 02:35:28 UTC+0000   2017-04-11 02:35:28 UTC+0000  

気になるのは 0x88abfa78 のsvchost.exe(PID:3828)がcmd.exeによって起動されている点。
他のsvchost.exeは親プロセスがservices.exeとなっているので不審では無さそう。

通信の調査。不審な通信は発生して無さそう?

$ vol.py netscan -f VictimMemory.img --profile=Win7SP1x86
Volatility Foundation Volatility Framework 2.5
Offset(P)          Proto    Local Address                  Foreign Address      State            Pid      Owner          Created
0x7130a0           TCPv4    0.0.0.0:135                    0.0.0.0:0            LISTENING        720      svchost.exe    
0x7130a0           TCPv6    :::135                         :::0                 LISTENING        720      svchost.exe    
0x713728           TCPv4    0.0.0.0:135                    0.0.0.0:0            LISTENING        720      svchost.exe    
0x1ab7990          UDPv4    0.0.0.0:5355                   *:*                                   1116     svchost.exe    2017-04-11 02:28:20 UTC+0000
0x503cb00          UDPv6    ::1:62430                      *:*                                   3192     svchost.exe    2017-04-11 02:30:41 UTC+0000
0x6baf430          UDPv6    ::1:1900                       *:*                                   3192     svchost.exe    2017-04-11 02:30:41 UTC+0000
0x78e8630          TCPv4    0.0.0.0:49152                  0.0.0.0:0            LISTENING        412      wininit.exe    
0x78e8630          TCPv6    :::49152                       :::0                 LISTENING        412      wininit.exe    
0x78e86d8          TCPv4    0.0.0.0:49152                  0.0.0.0:0            LISTENING        412      wininit.exe    
0xb2ab688          UDPv4    10.0.0.5:1900                  *:*                                   3192     svchost.exe    2017-04-11 02:30:41 UTC+0000
0xbd8da98          UDPv4    0.0.0.0:0                      *:*                                   1116     svchost.exe    2017-04-11 02:28:20 UTC+0000
0xbd8da98          UDPv6    :::0                           *:*                                   1116     svchost.exe    2017-04-11 02:28:20 UTC+0000
0xdaaceb8          TCPv4    0.0.0.0:49153                  0.0.0.0:0            LISTENING        808      svchost.exe    
0xdaaceb8          TCPv6    :::49153                       :::0                 LISTENING        808      svchost.exe    
0xdaacf60          TCPv4    0.0.0.0:49153                  0.0.0.0:0            LISTENING        808      svchost.exe    
0xef57418          UDPv4    10.0.0.5:137                   *:*                                   4        System         2017-04-11 02:27:44 UTC+0000
0xef57740          UDPv4    10.0.0.5:138                   *:*                                   4        System         2017-04-11 02:27:44 UTC+0000
0xef47090          TCPv4    0.0.0.0:49154                  0.0.0.0:0            LISTENING        868      svchost.exe    
0xef49368          TCPv4    0.0.0.0:49154                  0.0.0.0:0            LISTENING        868      svchost.exe    
0xef49368          TCPv6    :::49154                       :::0                 LISTENING        868      svchost.exe    
0xef52a10          TCPv4    0.0.0.0:49156                  0.0.0.0:0            LISTENING        508      services.exe   
0xef53d98          TCPv4    0.0.0.0:49156                  0.0.0.0:0            LISTENING        508      services.exe   
0xef53d98          TCPv6    :::49156                       :::0                 LISTENING        508      services.exe   
0xef58528          TCPv4    10.0.0.5:139                   0.0.0.0:0            LISTENING        4        System         
0xef5b840          TCPv4    0.0.0.0:445                    0.0.0.0:0            LISTENING        4        System         
0xef5b840          TCPv6    :::445                         :::0                 LISTENING        4        System         
0xefc2700          TCPv4    0.0.0.0:49155                  0.0.0.0:0            LISTENING        516      lsass.exe      
0xefc2ad0          TCPv4    0.0.0.0:49155                  0.0.0.0:0            LISTENING        516      lsass.exe      
0xefc2ad0          TCPv6    :::49155                       :::0                 LISTENING        516      lsass.exe      
0xf366330          UDPv4    127.0.0.1:62431                *:*                                   3192     svchost.exe    2017-04-11 02:30:41 UTC+0000
0xf374450          UDPv4    127.0.0.1:1900                 *:*                                   3192     svchost.exe    2017-04-11 02:30:41 UTC+0000

怪しいsvchost.exeについてもう少し調べていく。このsvchost.exeは %TEMP%\ に置かれてそう?

$ vol.py filescan -f VictimMemory.img --profile=Win7SP1x86 | grep "svchost"
Volatility Foundation Volatility Framework 2.5
0x000000000b3f2588      8      0 R--r-d \Device\HarddiskVolume1\Windows\System32\svchost.exe
0x000000000f26fa68      2      0 R--r-- \Device\HarddiskVolume1\Users\Taro\AppData\Local\Temp\svchost.exe
0x000000000f342ad0      6      0 R--r-d \Device\HarddiskVolume1\Users\Taro\AppData\Local\Temp\svchost.exe

更に、この怪しいsvchost.exeは同一階層に存在する1.tmpというファイルのハンドルを取ってる?

$ vol.py handles -p 3828 -f VictimMemory.img --profile=Win7SP1x86
Volatility Foundation Volatility Framework 2.5
Offset(V)     Pid     Handle     Access Type             Details
---------- ------ ---------- ---------- ---------------- -------
0x8db9f5e0   3828        0x4        0x3 Directory        KnownDlls
0x869342c0   3828        0x8   0x100020 File             \Device\HarddiskVolume1\Users\Taro\AppData\Local\Temp
0x89b6b420   3828        0xc   0x1f0003 Event            
0x88baf038   3828       0x10   0x1f0001 ALPC Port        
0x869e9d98   3828       0x14   0x1f0001 ALPC Port        
0x9540c300   3828       0x18    0x20019 Key              MACHINE\SYSTEM\CONTROLSET001\CONTROL\NLS\SORTING\VERSIONS
0x88bb47c0   3828       0x1c   0x120089 File             \Device\HarddiskVolume1\Users\Taro\AppData\Local\Temp\1.tmp

1.tmpの位置も確認。

$ vol.py filescan -f VictimMemory.img --profile=Win7SP1x86 | grep "1.tmp"
Volatility Foundation Volatility Framework 2.5
0x000000000a0c07c0     10      1 R--rw- \Device\HarddiskVolume1\Users\Taro\AppData\Local\Temp\1.tmp

ダンプして2つのファイルを抽出する。

$ vol.py dumpfiles -Q 0x000000000f342ad0 -f VictimMemory.img --profile=Win7SP1x86 --dump-dir /home/
Volatility Foundation Volatility Framework 2.5
ImageSectionObject 0x0f342ad0   None   \Device\HarddiskVolume1\Users\Taro\AppData\Local\Temp\svchost.exe
DataSectionObject 0x0f342ad0   None   \Device\HarddiskVolume1\Users\Taro\AppData\Local\Temp\svchost.exe

vol.py dumpfiles -Q 0x000000000a0c07c0 -f VictimMemory.img --profile=Win7SP1x86 --dump-dir /home/
Volatility Foundation Volatility Framework 2.5
DataSectionObject 0x0a0c07c0   None   \Device\HarddiskVolume1\Users\Taro\AppData\Local\Temp\1.tmp
SharedCacheMap 0x0a0c07c0   None   \Device\HarddiskVolume1\Users\Taro\AppData\Local\Temp\1.tmp

一応fileコマンド。

$ file *
1.tmp:            data
svchost.exe:      PE32 executable (console) Intel 80386, for MS Windows

stringsコマンドで文字列の調査。コマンドライン引数の指定についてのコメントっぽいものとか「VirtualAlloc failed. Error」「Createthread successful!」といった気になる文字列が見える。

$ strings svchost.exe 
!This program cannot be run in DOS mode.
HRich
.text
`.rdata
@.data
.rsrc
@.reloc
Vhl!
F95t3
95t3
8csm
_^[]
Y_^[
Y_^[
VVVVV
Y__^[
usage: this.exe <input file> <offset> <isLongSleep>
offset eg) 0xFFFF
file name is %s
offset is %x
VirtualAlloc failed. Error
CreateThread failed. Error
Createthread successful!
RSDS-
C:\work\project\ExecSpecificAddr\Release\ExecSpecificAddr.pdb
WaitForSingleObject
Sleep
VirtualAlloc
CreateThread
KERNEL32.dll
sscanf
memmove
printf
fopen
fread
fclose
exit

1.tmpはシェルコードっぽい雰囲気。

$ xxd 1.tmp | head
0000000: 9090 9090 9090 9090 9090 9090 9090 9090  ................
0000010: 5589 e583 ec60 c645 daa8 c645 dbff c645  U....`.E...E...E
0000020: dc88 c645 ddd0 c645 deb2 c645 dff6 c645  ...E...E...E...E
0000030: e0f8 c645 e1ea c645 e2ff c645 e3ff c645  ...E...E...E...E
0000040: e4d2 c645 e5ff c645 e6ff c645 e7c2 c645  ...E...E...E...E
0000050: e8dc c645 e9c2 c645 ead8 c645 ebff c645  ...E...E...E...E
0000060: ecf6 c645 edff c645 eefa c645 efff c645  ...E...E...E...E
0000070: bc55 c645 bd8b c645 beec c645 bf51 c645  .U.E...E...E.Q.E
0000080: c0e8 c645 c100 c645 c200 c645 c300 c645  ...E...E...E...E
0000090: c400 c645 c558 c645 c62d c645 c752 c645  ...E.X.E.-.E.R.E

cmd.exeによって怪しいsvchost.exeが実行されている点と上の「usage: ~」から推測するに、
コマンドライン引数に1.tmpを指定してsvchost.exeを実行した際の情報が残ってそう。

$ strings VictimMemory.img | grep "1.tmp"
1.tmp
file name is 1.tmp
  1.tmp
 1.tmp
  1.tmp
1.tmp
  1.tmp
svchost.exe  1.tmp 0x0 1
  1.tmp
  1.tmp

イメージファイルの中に「svchost.exe 1.tmp 0x0 1」というそれっぽいのがあったので、実際に動かす際はこれを使って試せば良さそう。

イメージファイルから取り出した怪しいsvchost.exeをIDAさんに喰わせて見てみると、コマンドライン引数で指定したファイルの中身を読み込み、確保したメモリ上に展開、スレッド実行するっぽい感じでした。
おそらくこの1.tmpに記載されたシェルコードがFlagを生成するやつなんだろうなと推測できます。

静的解析ではなくデバッガでシェルコード読みたいなと思ったので、NOPが続いた後ろらへんを「EB FE」(無限ループ)に書き換えてsvchost.exeを実行した。
デバッガでsvchost.exeにアタッチし、無限ループしているスレッドを開く。セットした無限ループを元のコードに書き換えればシェルコードの頭にアタッチできる。

f:id:echoha610:20170625195045p:plain

そのまま動かしていくとFlagが生成された。
FLAGからも静的解析してねという雰囲気が伝わってきた。

f:id:echoha610:20170625195112p:plain

TMCTF{static_analyzer}

Reversing 100

問題文をメモし忘れた…

Zipファイルが与えられる。解凍するとRARファイルが出てくる。

$ file pocket 
pocket: Zip archive data, at least v2.0 to extract

RARファイルを解凍すると2つのファイルが出てくる。

$ file biscuit 
biscuit: RAR archive data, v1d, os: Win32

1つはWindowsの32bit実行形式ファイル、もう1つはZipファイル。

$ file *
biscuit1: PE32 executable (console) Intel 80386 (stripped to external PDB), for MS Windows
biscuit2: Zip archive data, at least v2.0 to extract

「m」から始まるお菓子を聞かれる。これがbiscuit2の解凍パスワードっぽい。

C:\Users\user\Desktop>biscuit1.exe
Please find sweets name starting from m for biscuit2.

これはbiscuit1.exeの中で生成されている「macaron」という文字列が正解。
biscuit2を解凍すると更に3つのファイルが出てくる。

それぞれJPEGファイル、txtファイル、Windowsの32bit実行形式ファイルとなっている。

$ file *
biscuit3: JPEG image data, JFIF standard 1.01
biscuit4: ASCII text, with CRLF line terminators
biscuit5: PE32 executable (console) Intel 80386 (stripped to external PDB), for MS Windows

biscuit4はFLAGのヒント。

$ cat biscuit4
Please create flag.

hint:

Flag = TMCTF{biscuit3_ biscuit5}

biscuit3はよくわからないな~と思ったら中にtxtファイルが埋まってた。
txtファイルの中身は「cream」という文字列。多分FLAGの断片。

0000000: ffd8 ffe0 0010 4a46 4946 0001 0100 0001  ......JFIF......
0000010: 0001 0000 ffe2 0c58 4943 435f 5052 4f46  .......XICC_PROF
0000020: 494c 4500 0101 0000 0c48 4c69 6e6f 0210  ILE......HLino..
0000030: 0000 6d6e 7472 5247 4220 5859 5a20 07ce  ..mntrRGB XYZ ..
0000040: 0002 0009 0006 0031 0000 6163 7370 4d53  .......1..acspMS
0000050: 4654 0000 0000 4945 4320 7352 4742 0000  FT....IEC sRGB..
(中略)
00037a0: e49e 7e66 986c 5795 5710 d5ff d950 4b03  ..~f.lW.W....PK.
00037b0: 040a 0000 0000 00a7 7671 4a5f dc7f d805  ........vqJ_....
00037c0: 0000 0005 0000 000b 0000 0062 6973 6375  ...........biscu
00037d0: 6974 2e74 7874 6372 6561 6d50 4b01 0214  it.txtcreamPK...
00037e0: 000a 0000 0000 00a7 7671 4a5f dc7f d805  ........vqJ_....
00037f0: 0000 0005 0000 000b 0000 0000 0000 0001  ................
0003800: 0020 0000 0000 0000 0062 6973 6375 6974  . .......biscuit
0003810: 2e74 7874 504b 0506 0000 0000 0100 0100  .txtPK..........
0003820: 3900 0000 2e00 0000 0000                 9.........
$ binwalk biscuit3

DECIMAL   	HEX       	DESCRIPTION
-------------------------------------------------------------------------------------------------------
14253     	0x37AD    	Zip archive data, at least v1.0 to extract, compressed size: 5, uncompressed size: 5, name: "biscuit.txt"  
14378     	0x382A    	End of Zip archive 

biscuit5はbiscuit1と同じような感じでデバッグしたら「choux」という文字列が出てきた。

FLAGはヒントに従うと TMCTF{cream_ choux} だと思うのでこれで終わり、と思ったら通らなくて結構悩んだ。
chouxとcreamをひっくり返し、アンダーバーのあとのスペースを消して入力したら通った…

TMCTF{choux_cream}

IoT/OSINT/SCADA 100

怪しいドメイン ctf.superpopularonlineshop.com.definitelynotaphishingsite.com について調べて、背後にいる人物を特定することが目的。
その人物のソーシャルプロフィールページに行けば良いらしい。Facebookとかそういうの?

Category: Iot/osint/scada
Points: 100

Today you received an email that seemed to be from an online shopping site that you use - but when you followed the link something definitely did not seem right. It appears that the world's worst phisher must have set up the page - and has targeted you with a phishing attack!

The email text said you needed to visit a link to update the security of your acccount. However the link actually lead to the site ctf.superpopularonlineshop.com.definitelynotaphishingsite.com

For this challenge you must find the "Real Person" who is behind this attack - leveraging your Open Source Intelligence (OSINT) skills.

The Flag will be found on one of their social profile pages

NOTE: Pen Testing the site will not help - in fact all you need to start the trail is in this email already


DomainBigDataに上のドメインを喰わせる。Registrantは「Osint Isfun」さん。

f:id:echoha610:20170625210317p:plain

Osint Isfun はこのドメイン以外にも t3m4.com を保有している。こっちのドメインにもアクセスしてみると、変なWordPressのページへ。

f:id:echoha610:20170625210325p:plain

「私の名前はT3-M4Haxor、もちろん本名ではないゾ」みたいなことが書かれてる。つまりここの情報から本名を探せということ?

f:id:echoha610:20170625210102p:plain

「T3-M4Haxor」でGoogle検索するとTwitterアカウントが出てくるが、これは普通な感じ。
プロフィールとかにもヒントになりそうなことは書かれていない。

f:id:echoha610:20170625210115p:plain

ちょっと悩んでいると、検索結果に「Davik Surik(@T3M4haxor)」とあるのに気付いた。
これは何か関係あったりするのかなと思い、「David Surik」でも検索。

f:id:echoha610:20170625210044p:plain

するとLinkedInのページが出てきた。「CTF」「OSINT」「Trend Micro」などの文字が見える。
ページを開いて眺めてみると、{}に囲まれた怪しげな文字列が見えた。てきとうにROT13してみたらFLAGになった。

f:id:echoha610:20170625210012p:plain

TMCTF{FTR0SINT101}

時間内に解けたのはここまででした。

挑戦したけど時間内に解けなかった問題

Forensic 100

ヒントに競技終了直前に気付き、競技が終わってからFLAGを出すことができた。送信されていたデータはBase58でエンコードされていた。
Base64っぽいけど「+」や「/」が一切含まれていないことから推測できたかもなぁと後悔。

==Phrack Inc.==

                    Volume One, Issue 7, Phile 3 of 10

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
The following was written shortly after my arrest...

                       \/\The Conscience of a Hacker/\/

                                      by

                               +++The Mentor+++

                          Written on January 8, 1986
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

(中略)

        I am a hacker, and this is my manifesto.  You may stop this individual,
but you can't stop us all... after all, we're all alike.

                               +++The Mentor+++

TMCTF{DNSTunnelExfil}

Analysis-offensive 100

ESPのパケットをデコードし、出てきたデータからエニグマ暗号っぽいな~ってなった。復号に使えそうなサイト無いかなと探してたらタイムアップ。

HTTP/1.1 200 OK
Date: Mon, 15 May 2017 07:39:19 GMT
Server: Apache/2.2.15 (CentOS)
Last-Modified: Mon, 15 May 2017 07:31:52 GMT
ETag: "200b3-a4-54f8b0c88dbce"
Accept-Ranges: bytes
Content-Length: 164
Connection: close
Content-Type: text/html; charset=UTF-8

<HTML>
<BODY>
M4 Navy
Reflector:C Thin, beta, I, IV, II (T M J F), Plugboard: L-X/A-C/B-Y

TMCTF{APZTQQHYCKDLQZRG}

APZTQQHYCKDLQZRG is encrypted.

</BODY>
</HTML>

Webに公開されていたエニグマ暗号のデコーダに上の設定を入力してあげたらそれっぽい文字列に復号できた。

TMCTF{RISINGSUNANDMOON}

Analysis-defensive 200

昨年末から何かと話題なマルウェア「ChChes」の暗号方式再現問題? PowerShellの書きかけスクリプトと、暗号化されていると思われるバイナリファイルを渡される。
Powershellスクリプトが書けないのでPythonで書き直したが何故か上手く復号できず…
しょうもない書き間違えをしていただけで普通に復号できた。スクリプトが超雑ですがご容赦ください…

from Crypto.Cipher import ARC4

rc4key = "3ac796996d054ca9"
data = open("data", "rb").read()

rc4 = ARC4.new(rc4key)
data2 = rc4.decrypt(data)

print data2

適当なファイルに出力結果をリダイレクトして中身を確認すると、pcapファイルが得られた。
先頭の文字("chches")を削ってあげても上手く開かないので、バイナリエディタで中身を確認。とても特徴的なCookieが…

Cookie: asdf=d01J5ln6eJxopAgX2SgmLRYGt5X70XRw4HL6sFoDbvWD5yQ%3D;qwer=fJDeRjsja7z8wcPVLrZzm6jYl3UsvQC9AoduZgL24n1NYs8%3D;zxcv=%2Fvox%2Bi3on9Iy1U%2B2itypfjagJ06762d9yfkxI%2FLgSq3a2PJXwdnQ8BhDI9ofW9HXXSQMaEXBkYdrun%2BF%2BxIi3a%2B3TvHY

JPCERT/CCの分析センターだよりによると、ChChesは感染端末内の情報を取得後、暗号化しCookieフィールドにセットしてC2サーバに送る。

Cookieヘッダーを用いてC&CサーバとやりとりするマルウエアChChes(2017-01-26)
https://www.jpcert.or.jp/magazine/acreport-ChChes.html

FLAGはおそらくこの暗号化されたデータを復号すると得られると思うので、これを復号する。
暗号化の方式は最初のファイルの時と同じで、特定の文字列(イコールの前にある文字列)のMD5ハッシュ値を取得後、ハッシュ値の中央16バイト分をRC4暗号の鍵とする。

分析センターだよりに記載されているPythonスクリプトパクって参考にして復号する。Base64デコードのためにエンコードされた記号は置き換え済み。スクリプトが超雑ですがご容赦ください…(2回目)

import hashlib, base64, sys
from Crypto.Cipher import ARC4

# JPCERT/CC -> https://www.jpcert.or.jp/magazine/acreport-ChChes.html
cookie = "asdf=d01J5ln6eJxopAgX2SgmLRYGt5X70XRw4HL6sFoDbvWD5yQ=;qwer=fJDeRjsja7z8wcPVLrZzm6jYl3UsvQC9AoduZgL24n1NYs8=;zxcv=/vox+i3on9Iy1U+2itypfjagJ06762d9yfkxI/LgSq3a2PJXwdnQ8BhDI9ofW9HXXSQMaEXBkYdrun+F+xIi3a+3TvHY"
cookie2 = cookie.split(";")
for data in cookie2:
    seed = data[:4]
    m = hashlib.md5()
    m.update(seed)
    seed2 = m.hexdigest()
    rc4key = seed2[8:24]
    rc4 = ARC4.new(rc4key)
    data2 = data[5:].decode("base64")
    dec_data = rc4.decrypt(data2)
    sys.stdout.write(dec_data[4:])

得られた平文Cookieの中にはPC名とかTempフォルダのパスとかが見えます。

AWIN7-PC*1234*TMCTF{e3526984696bc9f89ac88d4f72abe24}?361846839?C:\Users\win7\AppData\Local\Temp?1.7.3 (1024x768)*6.1.7601.17514

感想

結構面白かったです。もう少し頑張れば解けたなという問題が結構あったので辛いお気持ちになった。
また、雑魚チームな上に少人数なので時間が短いととてもキツいなとも思いました。(KONAMI感) 一緒にCTFやれるチームメンバ、随時募集中です・v・