Metasploitable2
Kali
root@kali:~# nmap 192.168.56.105 Starting Nmap 7.80 ( https://nmap.org ) at 2019-09-01 04:17 JST Nmap scan report for 192.168.56.105 Host is up (0.0045s latency). Not shown: 977 filtered ports PORT STATE SERVICE 21/tcp open ftp 22/tcp open ssh 23/tcp open telnet 25/tcp open smtp 53/tcp open domain 80/tcp open http 111/tcp open rpcbind 139/tcp open netbios-ssn 445/tcp open microsoft-ds 512/tcp open exec 513/tcp open login 514/tcp open shell 1099/tcp open rmiregistry 1524/tcp open ingreslock 2049/tcp open nfs 2121/tcp open ccproxy-ftp 3306/tcp open mysql 5432/tcp open postgresql 5900/tcp open vnc 6000/tcp open X11 6667/tcp open irc 8009/tcp open ajp13 8180/tcp open unknown Nmap done: 1 IP address (1 host up) scanned in 4.56 seconds
オプション概要 |
SERVICE/VERSION DETECTION: -sV: Probe open ports to determine service/version info
--version-light: Limit to most likely probes for faster identification
--version-all: Try every single probe for version detection
--version-trace: Show detailed version scan activity (for debugging)
root@kali:~# nmap -sV 192.168.56.105 Starting Nmap 7.80 ( https://nmap.org ) at 2019-09-01 04:19 JST Nmap scan report for 192.168.56.105 Host is up (0.010s latency). Not shown: 977 filtered ports 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 2 (RPC #100000) 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 nfs 2-4 (RPC #100003) 2121/tcp open ftp ProFTPD 1.3.1 3306/tcp open mysql MySQL 5.0.51a-3ubuntu5 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 8009/tcp open ajp13 Apache Jserv (Protocol v1.3) 8180/tcp open http Apache Tomcat/Coyote JSP engine 1.1 Service Info: Hosts: metasploitable.localdomain, irc.Metasploitable.LAN; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 16.74 seconds
nmap の GUI版 zenmap の起動
# zenmap
ステルススキャンとTCPコネクトスキャンの違い
Kali から Metasploitable2 へ接続
root@kali:~# ssh msfadmin@192.168.56.105 The authenticity of host '192.168.56.105 (192.168.56.105)' can't be established. RSA key fingerprint is SHA256:BQHm5EoHX9GCiOLuVscegPXLQOsuPs+E9d/rrJB84rk. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '192.168.56.105' (RSA) to the list of known hosts. msfadmin@192.168.56.105's password: Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 The programs included with the Ubuntu system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. To access official Ubuntu documentation, please visit: http://help.ubuntu.com/ No mail. Last login: Sat Aug 31 14:57:05 2019 msfadmin@metasploitable:~$
Metasploitable2 の管理者権限を取得
msfadmin@metasploitable:~$ sudo su - [sudo] password for msfadmin: root@metasploitable:~#
tail コマンドで syslog のリアルタイム監視を行う
root@metasploitable:~# tail -f /var/log/syslog Aug 31 15:25:31 metasploitable postfix/smtpd[4972]: disconnect from unknown[192.168.56.102] Aug 31 15:25:33 metasploitable in.rshd[4976]: connect from 192.168.56.102 (192.168.56.102) Aug 31 15:25:33 metasploitable in.rlogind[4979]: connect from 192.168.56.102 (192.168.56.102) Aug 31 15:28:51 metasploitable postfix/anvil[4975]: statistics: max connection rate 1/60s for (smtp:192.168.56.102) at Aug 31 15:25:31 Aug 31 15:28:51 metasploitable postfix/anvil[4975]: statistics: max connection count 1 for (smtp:192.168.56.102) at Aug 31 15:25:31 Aug 31 15:28:51 metasploitable postfix/anvil[4975]: statistics: max cache size 1 at Aug 31 15:25:31 Aug 31 15:32:18 metasploitable dhclient: DHCPREQUEST ofon eth0 to 192.168.56.100 port 67 Aug 31 15:32:18 metasploitable dhclient: DHCPACK of 192.168.56.105 from 192.168.56.100 Aug 31 15:32:18 metasploitable dhclient: can't create /var/lib/dhcp3/dhclient.eth0.leases: Permission denied Aug 31 15:32:18 metasploitable dhclient: bound to 192.168.56.105 -- renewal in 476 seconds.
この状態で Kali から Metasploitable2 に nmap ステルススキャンを行う
ポートスキャンのテクニック |
-sS (TCP SYN スキャン)
SYNスキャンはデフォルトであり、正当な理由で最もよく使用されるスキャンオプションである。強制的なファイアウォールによる妨害のない、高速なネットワーク上では、数千ポート毎秒という高速なスキャンを実行できる。SYNスキャンは、TCPコネクションを確立しないため、比較的秘匿性が高い。また、NmapのFin/Null/Xmas、Maimon、Idleスキャンのように特定のプラットフォームの特質に左右されることはなく、規格準拠のTCPスタックなら何に対しても機能する。さらには、open、closed、およびfilteredというポートの状態を明確かつ確実に区別することができる。この技法は、完全なTCPコネクションを開くわけではないので、 ハーフオープン(half-open)スキャンと呼ばれることも多い。あたかも実際にコネクションを開くつもりがあるかのように、SYNパケットを送信し、応答を待つ。SYN/ACKの応答は、ポートが待ち受け状態(open)であることを示し、またRST(reset)は、待ち受け状態にないことを示している。数回再送信しても何の応答もない場合、ポートはfilteredと見なされる。また、ICMP到達不能エラー(タイプ 3、コード 1、2、3、9、10、13)が送り返された場合も、ポートはfilteredと見なされる。
よって nmap を実行しても syslog には何も書き込まれない
root@kali:~# nmap -sS 192.168.56.105 Starting Nmap 7.80 ( https://nmap.org ) at 2019-09-01 05:09 JST Nmap scan report for 192.168.56.105 Host is up (0.013s latency). Not shown: 977 filtered ports PORT STATE SERVICE 21/tcp open ftp 22/tcp open ssh 23/tcp open telnet 25/tcp open smtp 53/tcp open domain 80/tcp open http 111/tcp open rpcbind 139/tcp open netbios-ssn 445/tcp open microsoft-ds 512/tcp open exec 513/tcp open login 514/tcp open shell 1099/tcp open rmiregistry 1524/tcp open ingreslock 2049/tcp open nfs 2121/tcp open ccproxy-ftp 3306/tcp open mysql 5432/tcp open postgresql 5900/tcp open vnc 6000/tcp open X11 6667/tcp open irc 8009/tcp open ajp13 8180/tcp open unknown Nmap done: 1 IP address (1 host up) scanned in 5.98 seconds
~(前略)~ Aug 31 15:32:18 metasploitable dhclient: DHCPACK of 192.168.56.105 from 192.168.56.100 Aug 31 15:32:18 metasploitable dhclient: can't create /var/lib/dhcp3/dhclient.eth0.leases: Permission denied ↑ なんか関係のないエラーが出てるが…… Aug 31 15:32:18 metasploitable dhclient: bound to 192.168.56.105 -- renewal in 476 seconds.
次はコネクトスキャンを実行してみる
ポートスキャンのテクニック |
-sT (TCP connect() スキャン)
TCP Connect()スキャンは、SYNスキャンを選択できない場合のデフォルトのTCPスキャンタイプである。ユーザが生パケットの権限を持たないか、IPv6ネットワークをスキャンする場合がこれにあてはまる。Nmapは、他のほとんどのスキャンタイプのように生パケットに書き込むのではなく、connect()システムコールを発行して、ターゲットのマシンやポートにとのコネクションを確立するよう下位OSに要求する。これは、Webブラウザ、P2Pクライアント、その他ほとんどのネットワーク対応アプリケーションがコネクションを確立するために使用するのと同じ高レベルのシステムコールである。これは、「BerkeleyソケットAPI」というプログラミングインターフェースの一部である。Nmapは、生パケットの応答を回線から読み込むのではなく、このAPIを使って、接続を試みるたびにステータス情報を入手する。SYNスキャンが利用できる場合は通常、そちらを使用した方がよい。Nmapは生パケットよりも、高レベルのシステムコールであるconnect()に対するほうが制御の自由度が低いので、処理効率も悪くなるからだ。connect()システムコールは、SYNスキャンが行うようにハーフオープン接続をリセットするのではなく、ターゲットのopenポートとのコネクションを確立する。この処理は、同じ情報を得るのにさらに多くの時間とパケットを必要とするだけでなく、ターゲットマシンのログに接続が記録される可能性も高くなる。まともなIDSならどちらも検知するはずだが、たいがいのマシンにはそのような警告システムは備わっていない。平均的なUNIXシステムで実行されているサービスの多くは、Nmapが接続を確立し、その後データ送信を行わずに接続を閉じた場合、syslogに簡単な記録や時には不可解なエラーメッセージを追加する。真にお粗末なサービスは、これが起きた場合に停止してしまうが、まずめったにないことだ。管理者は、特定のシステムからの接続試行がかなりの回数にわたってログに記録されているのを発見したら、このconnect()スキャンのターゲットになっていると見なすべきである。
root@kali:~# nmap -sT 192.168.56.105 Starting Nmap 7.80 ( https://nmap.org ) at 2019-09-01 05:11 JST Nmap scan report for 192.168.56.105 Host is up (0.016s latency). Not shown: 977 filtered ports PORT STATE SERVICE 21/tcp open ftp 22/tcp open ssh 23/tcp open telnet 25/tcp open smtp 53/tcp open domain 80/tcp open http 111/tcp open rpcbind 139/tcp open netbios-ssn 445/tcp open microsoft-ds 512/tcp open exec 513/tcp open login 514/tcp open shell 1099/tcp open rmiregistry 1524/tcp open ingreslock 2049/tcp open nfs 2121/tcp open ccproxy-ftp 3306/tcp open mysql 5432/tcp open postgresql 5900/tcp open vnc 6000/tcp open X11 6667/tcp open irc 8009/tcp open ajp13 8180/tcp open unknown Nmap done: 1 IP address (1 host up) scanned in 4.87 seconds
syslog に nmap 実行のログが記録される。
# tail -f /var/log/syslog Aug 31 16:12:55 metasploitable postfix/smtpd[5172]: connect from unknown[192.168.56.102] Aug 31 16:12:55 metasploitable postfix/smtpd[5172]: lost connection after CONNECT from unknown[192.168.56.102] Aug 31 16:12:55 metasploitable postfix/smtpd[5172]: disconnect from unknown[192.168.56.102] Aug 31 16:12:55 metasploitable in.telnetd[5228]: connect from 192.168.56.102 (192.168.56.102) Aug 31 16:12:55 metasploitable telnetd[5228]: doit: getnameinfo: Success Aug 31 16:12:55 metasploitable telnetd[5228]: ttloop: peer died: EOF Aug 31 16:12:57 metasploitable in.rexecd[5230]: connect from 192.168.56.102 (192.168.56.102) Aug 31 16:12:57 metasploitable in.rshd[5231]: connect from 192.168.56.102 (192.168.56.102) Aug 31 16:12:57 metasploitable in.rlogind[5232]: connect from 192.168.56.102 (192.168.56.102)
最初のステルススキャンはTCPセッションを確立せず、SYN に対する返答で判断するので対象となるサーバーにログが残りにくい。
後半のコネクトスキャンはスリーウェイハンドシェイクが完了することでポートが開いていることを認識する。