Resolute 日本語でウォークスルー Hack The Box Machine

HTB htb-medium

Hack The BoxのResoluteのウォークスルー・ライトアップ(walkthrough/writeup)です。難易度はmediumとなっています。
※本記事はサイバー犯罪を助長するものではありません。ハッキングやクラック等の悪用は厳禁です。

HTB Resolute ウォークスルー・ライトアップ Hack The Box

Summary

local shell取得まで

ターゲットポート:TCP 139,445(samba)、5985(win-rm)
脆弱性:ターゲットのsambaサービスを調査した所、ユーザのクレデンシャル情報を入手することができた。
また、ターゲットではwin-rmサービスが有効になっていたため、リモートアクセスによりlocal-shellを取得した。
local権限を取得したユーザ:「melanie」

privilege Escalation取得まで

脆弱性:DNS Admin Privesc in Active Directoryの脆弱性が内在していた
root権限を取得したユーザ:nt authority\system

Information Gathering

ポートスキャン

それでははじめます。まずはターゲット上で動作しているTCPポートをnmapで探します。nmapについてはこちらを参照ください。

上記の初期nmapの結果、ターゲットのドメインが以下であることが分かりました。

http://megabank.htb

そのため、まず、自分のマシンの「etc/hosts」にこのドメインを追加しました。

sudo vim /etc/hosts
nmap -p- -n -T4 -A -v 10.10.10.169

nmapの結果、様々なTCPポート番号が開いていることが分かりました。
まずはsambaサービス(139,445)から調査していくことにしました。

ターゲットのsambaサービス調査

enum4linuxを使用して調査を始めました。

enum4linux -a 10.10.10.169

その結果、様々なことが分かりました。まず、以下の通り複数のユーザ名が判明しました。

また、以下のクレデンシャル情報も見つけました。

ID:marko Password:Welcome123!

smbサービスで、このクレデンシャル情報を使用しましたがログインできませんでした。
そのため、先ほど見つけた複数のユーザを利用して、ブルートフォース攻撃を仕掛けました。

使用したツールはhydraです。以下のような形です。


└─$ cat user2.txt
Administrator
Guest
krbtgt
DefaultAccount
ryan
marko
sunita
abigail
marcus
sally
fred
angela
felicia
gustavo
ulf
stevie
claire
paulo
steve
annette
annika
per
claude
melanie
zach
simon
naoki

その結果、以下クレデンシャル情報がターゲットのsmbサービスにあることが判明しました。

ID:melanie Password:Welcome123!

Local Shellの取得

TCP番号5985サービスの調査

続いて、TCP番号5985ポートに着目しました。このポートは通常「Win-RM」サービス用に開放されているものです。
そのため、evil-winrmを利用して、ターゲットにリモートアクセスを試みました。
使用したクレデンシャル情報は先程見つけた以下情報です。

ID:melanie Password:Welcome123!

その結果、「melanie」ユーザのshellを取得できました。

Privilege Escalation

Privilege Escalationのための脆弱性調査

「melanie」ユーザで調査をした結果、クレデンシャル情報らしきものを見つけました。

ID:ryan Password:Serv3r4Admin4cc123!


先程と同様に「evil-winrm」を使用した所、ユーザ「ryan」のshellを入手しました。

ユーザ「ryan」での脆弱性調査

続いてユーザ「ryan」でターゲット内を調査していきました。
調査の結果、「ryan」は「DNS Admin」グループに所属していることが分かりました。

そのため、DNS Admin Privesc in Active Directoryが利用できるのではと考えました。

DNS Adminを利用した攻撃

流れとしては、ターゲットの「dns」サービスを止め、再起動させます。再起動時に自分のマシンの「reverse-shell」用のスクリプトを
samba経由で読み込ませることでshellを取得する方針でした。

まず、以下のように「reverse-shell」用のスクリプトを「test.dll」として作成しました。

続いて「smbserver.py」を自分のマシンに仕掛けました。

続いて、ターゲットがdns再起動時に自分のマシンに接続するように仕向けました。そして実際にdnsを再起動しています。

「nt authority\system」のshellを取得できました。

flagを探す

user.txtは「C:\Users\melanie\Desktop」にありました。
root.txtは「C:\Users\Administrator\Desktop」にありました。

以上で、Resoluteのウォークスルーは終了です。