TryHackMe Room: Nmap
随分ご無沙汰でした。 久々にブログ書きます。
仕事でnmapに触れることもあり、Pentestの教育サイトの1つ TryHackMeでPentestの練習をしてみた。
今回は入門編のRoomであるNmapで実際に使い方をおさらいしてみる。
ポートスキャンは脆弱性調査に使われるが、攻撃者の場合は攻撃前の偵察で使ってくる。
事前に許可されているIPアドレスかをよく確認すること。悪用厳禁。
目次
TryHackMeとは
ペンテストの入門向けサイト。Roomと言って、コマンドの使い方や、
実際のやられ環境が用意されていて、それに対してペンテストの練習ができる。
無料プランでも十分楽しめる。課金すると挑戦できるRoomが増えたり、
学習コースやビデオ等のコンテンツの解禁、個人用マシンが使えるらしい。
1年で月10ドル。(学生さんは月8ドル)
今の所無料ユーザで使っている。
他に有名所だと、HackTheBoxもあるけど、
TryHackMeの方が、導入(OpenVPNの使い方等)から丁寧に解説してくれていることもあり、
本当に初めての人はこっちから始めた方が良いと感じた。
Nmap
Step1で、Deployボタンを押してマシンを立ち上げてスタート。
ただ、今回はStep2でNmapの使い方を散々聞かれるので、マシンを立ち上げるのは、
Step3に入るタイミングで良い。(無料だと基本1時間、延長してももう1時間までなので)
Nmap Quiz
nmapの使い方は、nmap -h
をコマンドラインで実行するか、
以下のリファレンスガイドをじっくり読む。
また、念の為、原則管理者権限でスキャンすること。一般ユーザだと結果が違うので。
問題文はざっくり訳です。
1. Helpにアクセスするにはどうすれば良い?
nmap -h [IPAddr]
これをひたすら読みながら残りの演習を進める。
2. ステルススキャンとしても呼ばれ、Synスキャンとして最初に出てくるものは何か?
nmap -sS [IPAddr]
3. そんなによく使われるわけではないが、UDPスキャンをするには?
nmap -sU [IPAddr]
UDPは到達確認をしないので、TCPスキャンに比べたら遅い。
4. OSの特定をするには?
nmap -O [IPAddr]
OSのO、って覚えてる。
5. サービスバージョンの特定に使われるのは?
nmap -sV [IPAddr]
Serviceって覚えてる。よく使う。
6. スキャンの詳細な内容を知りたい。その時に使うフラグは?
nmap -v [IPAddr]
verboseのvって覚える。
7. スキャンの内容をとってもよく知りたい時は?
nmap -vv [IPAddr]
very verboseね
8. xmlファイルでスキャン結果を保存したい時は?
nmap -oX [IPAddr]
output XML。他にも-oG
だとGreppableとか。
9. アグレッシブスキャン。とにかく結果がほしい時は?
nmap -A [IPAddr]
ぶっちゃけこれが最強。-Oも-sVも含め全部やってくれる。その代わり遅い。
10. タイミングを最大レベルに設定したい。別名Insaneとも。
nmap -T5 [IPAddr]
T5だとめちゃくちゃ雑、という認識なので、お急ぎのときは-T4
くらいにしておく
11. 特定のポートだけスキャンしたいです
nmap -p [port number] [IPAddr]
12. 全ポートスキャンしたいです
nmap -p- [IPAddr]
1番から65535番までばばーんとスキャンする。
13. NSEスクリプトを使いたい時につけるオプションは?
nmap --script [スクリプト名 / スクリプトのカテゴリ名]
14. 脆弱性調査カテゴリのNSEスクリプトを全部試したい
nmap --script vuln
vulnというカテゴリ名になっている
15. スキャン先のホストにPingしたくない時につけるオプションは?
nmap -Pn [IPAddr]
これ知らなかった...
Nmap Scanning
ここまで超長かった。これからやっとマシンを立ち上げて、
OpenVPNに接続し、スキャンをかける。
IPアドレスは、私がやった時の環境なので、適宜読み替えを。
1. SYNスキャン→空いているポートの特定
問1でSYNスキャンをしろと言われているので、nmap -sS
をする。
~ $ sudo nmap -sS 10.10.152.42 Password: Sorry, try again. Password: Starting Nmap 7.80 ( https://nmap.org ) at 2020-08-08 18:22 JST Nmap scan report for 10.10.152.42 Host is up (0.37s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http Nmap done: 1 IP address (1 host up) scanned in 3.65 seconds
ポートはTCP22番、80番が空いている。問2は2つ
, 問3はTCP
が答え。
2. 起動サービスの特定
~ $ sudo nmap -sV 10.10.152.42 Password: Starting Nmap 7.80 ( https://nmap.org ) at 2020-08-08 18:33 JST Nmap scan report for 10.10.152.42 Host is up (0.37s latency). Not shown: 998 closed ports PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.10 (Ubuntu Linux; protocol 2.0) 80/tcp open http Apache httpd 2.4.7 ((Ubuntu)) Service Info: OS: 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 14.33 seconds
サービスの特定をしたところ、OpenSSHとApacheがいた。
問4: 22番ポートで起動しているサービスバージョンは、6.6.1p1
3. アグレッシブスキャンをしてみる
問5: ポート80番の結果で設定されていないものは、httponly
$ sudo nmap -A 10.10.152.42 Starting Nmap 7.80 ( https://nmap.org ) at 2020-08-08 18:36 JST Nmap scan report for 10.10.152.42 Host is up (0.38s latency). Not shown: 998 closed ports PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.10 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 1024 73:71:6d:b3:7b:3c:a5:eb:a8:31:80:8b:ef:f5:35:82 (DSA) | 2048 f0:06:ab:ea:d2:c9:9e:e4:dd:18:09:8a:fa:32:5f:79 (RSA) | 256 fb:0c:ff:3d:bc:42:53:7d:ef:3f:68:4b:47:4e:12:be (ECDSA) |_ 256 f7:71:e1:fa:0d:9c:e2:66:2d:70:2b:4b:b8:e1:63:ec (ED25519) 80/tcp open http Apache httpd 2.4.7 ((Ubuntu)) | http-cookie-flags: | /: | PHPSESSID: |_ httponly flag not set | http-robots.txt: 1 disallowed entry |_/ |_http-server-header: Apache/2.4.7 (Ubuntu) | http-title: Login :: Damn Vulnerable Web Application (DVWA) v1.10 *Develop... |_Requested resource was login.php No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ). TCP/IP fingerprint: OS:SCAN(V=7.80%E=4%D=8/8%OT=22%CT=1%CU=34391%PV=Y%DS=4%DC=T%G=Y%TM=5F2E7251 OS:%P=x86_64-apple-darwin19.0.0)SEQ(SP=FF%GCD=1%ISR=FF%TI=Z%CI=I%II=I%TS=8) OS:OPS(O1=M508ST11NW6%O2=M508ST11NW6%O3=M508NNT11NW6%O4=M508ST11NW6%O5=M508 OS:ST11NW6%O6=M508ST11)WIN(W1=68DF%W2=68DF%W3=68DF%W4=68DF%W5=68DF%W6=68DF) OS:ECN(R=Y%DF=Y%T=40%W=6903%O=M508NNSNW6%CC=Y%Q=)T1(R=Y%DF=Y%T=40%S=O%A=S+% OS:F=AS%RD=0%Q=)T2(R=N)T3(R=N)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T OS:5(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=A%A= OS:Z%F=R%O=%RD=0%Q=)T7(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=Y%DF OS:=N%T=40%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%T=40 OS:%CD=S) Network Distance: 4 hops Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel TRACEROUTE (using port 1720/tcp) HOP RTT ADDRESS 1 123.29 ms 10.4.0.1 2 ... 3 4 398.11 ms 10.10.152.42 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 53.97 seconds
4. DoS脆弱性の調査
DoSの脆弱性があるらしいので、スキャンをかける。
-sC
は、--script=default
と同義。vulnカテゴリでスキャン。
問6: 見つかったDoSの脆弱性について、スキャン結果のセクションタイトルで答えよ
http-slowloris-check
$ sudo nmap -T4 -sC --script vuln 10.10.152.42 Starting Nmap 7.80 ( https://nmap.org ) at 2020-08-08 18:43 JST Pre-scan script results: | broadcast-avahi-dos: | Discovered hosts: | 224.0.0.251 | After NULL UDP avahi packet DoS (CVE-2011-1002). |_ Hosts are all up (not vulnerable). Nmap scan report for 10.10.152.42 Host is up (0.39s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh |_clamav-exec: ERROR: Script execution failed (use -d to debug) 80/tcp open http |_clamav-exec: ERROR: Script execution failed (use -d to debug) | http-cookie-flags: | /: | PHPSESSID: |_ httponly flag not set |_http-csrf: Couldn't find any CSRF vulnerabilities. |_http-dombased-xss: Couldn't find any DOM based XSS. | http-slowloris-check: | VULNERABLE: | Slowloris DOS attack | State: LIKELY VULNERABLE | IDs: CVE:CVE-2007-6750 | Slowloris tries to keep many connections to the target web server open and hold | them open as long as possible. It accomplishes this by opening connections to | the target web server and sending a partial request. By doing so, it starves | the http server's resources causing Denial Of Service. | | Disclosure date: 2009-09-17 | References: | https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-6750 |_ http://ha.ckers.org/slowloris/ |_http-stored-xss: Couldn't find any stored XSS vulnerabilities. Nmap done: 1 IP address (1 host up) scanned in 351.14 seconds
ちなみに、脆弱性の詳細は以下。