網絡掃描:Web服務
Web服務一般指網站服務器,是指駐留于因特網上某種類型計算機的程序,可以向瀏覽器等Web客戶端提供文件,也可以放置網站文件和數據文件,讓用戶瀏覽和下載。其中,最常見的Web服務有AJP和ASP.NET等。本文介紹對這些Web服務進行掃描的方法。
1. AJP服務
AJP服務是基于TCP協議工作的服務,其工作在TCP的8009端口。我們可以借助Nmap的一些腳本來實施AJP服務掃描。下面介紹使用這些腳本實施AJP服務掃描的方法。
(1)使用ajp-auth.nse腳本
ajp-auth.nse腳本用來獲取AJP服務的認證摘要信息。語法格式如下:
nmap -p 8009 --script ajp-auth [--script-args=ajp-auth.path=/login]
其中,ajp-auth.path參數用于定義請求的路徑。
(2)使用ajp-headers.nse腳本
ajp-headers.nse腳本通過執行一個HEAD或GET請求,來獲取服務器響應的頭部。語法格式如下:
nmap -p 8009 --script=ajp-headers [--script-args=ajp-headers.path=path]
其中,ajp-headers.path參數用于指定請求的路徑,如/index.php。默認請求的路徑為“/”。
使用ajp-headers.nse腳本獲取服務器響應的頭部信息。執行命令如下:
root@daxueba:~# nmap -p 8009 --script ajp-headers 192.168.1.6
Starting Nmap 7.70 ( https://nmap.org ) at 2021-08-12 16:57 CST
Nmap scan report for 192.168.1.6 (192.168.1.6)
Host is up (0.00034s latency).
PORT STATE SERVICE
8009/tcp open ajp13
| ajp-headers:
|_ Content-Type: text/html;charset=ISO-8859-1
MAC Address: 00:0C:29:3E:84:91 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.48 seconds
從輸出信息中可以看到獲取到目標服務響應的頭部信息。
(3)使用ajp-methods.nse腳本
ajp-methods.nse腳本通過發送一個OPTIONS請求和存在風險方法的列表,來獲取目標AJP服務支持的方法。語法格式如下:
nmap -p 8009 --script ajp-methods [--script-args=ajp-methods.path=path]
其中,ajp-methods.path參數用于指定檢測的路徑或/。
獲取目標AJP服務支持的方法。執行命令如下:
root@daxueba:~# nmap -p 8009 --script=ajp-methods 86.49.174.2
Starting Nmap 7.70 ( https://nmap.org ) at 2021-08-12 10:50 CST
Nmap scan report for 2.174.49.86.in-addr.arpa (86.49.174.2)
Host is up (0.25s latency).
PORT STATE SERVICE
8009/tcp open ajp13
| ajp-methods:
| Supported methods: GET HEAD POST PUT DELETE TRACE OPTIONS #支持的方法
| Potentially risky methods: PUT DELETE TRACE #存在風險的方法
|_ See https://nmap.org/nsedoc/scripts/ajp-methods.html
Nmap done: 1 IP address (1 host up) scanned in 1.50 seconds
從輸出信息中可以看到,目標主機上開放了AJP服務,并且顯示了該服務支持的方法,如GET、HEAD、POST、PUT和DELETE等。
(4)使用ajp-request.nse腳本
ajp-request.nse腳本用來獲取請求的URI詳細信息。語法格式如下:
nmap -p 8009 --script ajp-request [--script-args=username=username,path=path,filename=filename,password=password,method=method]
ajp-request.nse腳本可使用的參數及含義如下。
username:指定訪問資源的用戶名。
path:指定請求的URI路徑。
filename:指定輸出結果的文件名。
password:指定訪問資源的密碼。
method:指定請求URI的方法,默認是GET。
獲取請求的URI詳細信息。執行命令如下:
root@daxueba:~# nmap -p 8009 --script ajp-request 192.168.1.6
Starting Nmap 7.70 ( https://nmap.org ) at 2021-08-12 16:58 CST
Nmap scan report for 192.168.1.6 (192.168.1.6)
Host is up (0.00023s latency).
PORT STATE SERVICE
8009/tcp open ajp13
| ajp-request:
| AJP/1.3 200 OK
| Content-Type: text/html;charset=ISO-8859-1
| iguring and using Tomcat
|
dev@tomcat.apache.org for developers working on Tomcat
|
|
Thanks for using Tomcat!
|

|
| Copyright ? 1999-2005 Apache Software Foundation
| All Rights Reserved
|
|
|
|
|
|_
MAC Address: 00:0C:29:3E:84:91 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.45 seconds
從以上輸出信息中可以看到,通過使用ajp-request.nse腳本成功獲取到了目標AJP服務請求的UIR詳細信息。
2. ASP.NET服務
ASP.NET是一個開發框架,用于通過HTML、CSS、JavaScript及服務器腳本來構建網頁和網站。我們可以借助Nmap的http-aspnet-debug腳本來實施掃描。http-aspnet-debug腳本通過使用HTTP DEBUG請求,來判斷ASP.NET應用程序是否啟用了Debug功能。語法格式如下:
nmap --script http-aspnet-debug [--script-args=http-aspnet-debug.
path=path]
其中,http-aspnet-debug.path參數用于指定URI的路徑,默認是“/”。
掃描目標主機,以確認是否啟用了Debug功能。執行命令如下:
root@daxueba:~# nmap -p 80 --script=http-aspnet-debug 51.254.122.180
Starting Nmap 7.70 ( https://nmap.org ) at 2021-08-12 10:14 CST
Nmap scan report for 180.ip-51-254-122.eu (51.254.122.180)
Host is up (0.37s latency).
PORT STATE SERVICE
80/tcp open http
| http-aspnet-debug:
|_ status: DEBUG is enabled #狀態
Nmap done: 1 IP address (1 host up) scanned in 2.27 seconds
從輸出信息中可以看到,目標服務器上啟用了Debug功能。
3. HTTP認證服務
HTTP服務是基于TCP協議工作的,其工作在TCP的80端口。我們可以借助http-auth腳本對HTTP服務實施掃描。http-auth腳本可以用來獲取HTTP服務認證信息。語法格式如下:
nmap --script http-auth [--script-args=http-auth.path=/login] -p80
其中,http-auth.path參數用于指定請求的路徑。
獲取HTTP服務的認證信息。執行命令如下:
root@daxueba:~# nmap --script http-auth -p 80 80.88.126.226
Starting Nmap 7.70 ( https://nmap.org ) at 2021-08-12 11:06 CST
Nmap scan report for 80.88.126.226
Host is up (0.35s latency).
PORT STATE SERVICE
80/tcp open http
| http-auth:
| HTTP/1.1 401 Unauthorized\x0D
| Negotiate
|_ NTLM
從以上輸出信息中可以看到,目標主機上開放了HTTP服務,啟用的認證方式有Negotiate和NTLM。
4. SSL服務
SSL(Secure Sockets Layer,安全套接層)及其繼任者傳輸層安全(Transport Layer Security,TLS)是為網絡通信提供安全及數據完整性的一種安全協議。SSL服務是基于TCP協議工作的,其工作在TCP的443端口。我們可以借助Nmap的一些腳本來實施SSL服務。下面介紹這些腳本的掃描方法。
(1)使用ssl-cert腳本
ssl-cert腳本用來獲取SSL服務的認證信息。語法格式如下:
nmap --script=ssl-cert -p 443
使用ssl-cert腳本來獲取SSL服務的認證信息。執行命令如下:
root@daxueba:~# nmap --script=ssl-cert -p 443 www.baidu.com
Starting Nmap 7.70 ( https://nmap.org ) at 2021-08-12 16:07 CST
Nmap scan report for www.baidu.com (61.135.169.125)
Host is up (0.023s latency).
Other addresses for www.baidu.com (not scanned): 61.135.169.121
PORT STATE SERVICE
443/tcp open https
| ssl-cert: Subject: commonName=baidu.com/organizationName=Beijing Baidu
Netcom Science Technology Co., Ltd/stateOrProvinceName=beijing/countryName=CN
| Subject Alternative Name: DNS:baidu.com, DNS:baifubao.com, DNS:www.baidu.cn, DNS:www.baidu.com.cn, DNS:mct.y.nuomi.com, DNS:baifae.com, DNS:apollo.auto, DNS:*.baidu.com, DNS:*.baifubao.com, DNS:*.baidustatic.com, DNS:*.bdstatic.com, DNS:*.bdimg.com, DNS:*.hao123.com, DNS:*.nuomi.com, DNS:*.chuanke.com, DNS:*.trustgo.com, DNS:*.bce.baidu.com, DNS:*.eyun.baidu.com, DNS:*.map.baidu.com, DNS:*.mbd.baidu.com, DNS:*.fanyi.baidu.com,DNS:*.baidubce.com, DNS:*.mipcdn.com, DNS:*.news.baidu.com, DNS:*.baidupcs.com, DNS:*.aipage.com, DNS:*.aipage.cn, DNS:*.bcehost.com, DNS:*.safe.baidu.com, DNS:*.im.baidu.com, DNS:*.ssl2.duapps.com, DNS:*.baifae.com, DNS:*.baiducontent.com, DNS:*.dlnel.com, DNS:*.dlnel.org, DNS:*.dueros.baidu.com, DNS:*.su.baidu.com, DNS:*.91.com, DNS:*.hao123.baidu.com, DNS:*.apollo.auto, DNS:*.xueshu.baidu.com, DNS:*.bj.baidubce.com, DNS:*.gz.baidubce.com, DNS:click.#, DNS:log.#, DNS:cm.pos.baidu.com, DNS:wn.pos.baidu.com, DNS:update.pan.baidu.com
| Issuer: commonName=GlobalSign Organization Validation CA - SHA256 –G2/organizationName=GlobalSign nv-sa/countryName=BE
| Public Key type: rsa #公鑰類型
| Public Key bits: 2048 #公鑰字節
| Signature Algorithm: sha256WithRSAEncryption #簽名算法
| Not valid before: 2018-04-03T03:26:03 #有效時間之前
| Not valid after: 2022-05-26T05:31:02 #有效時間之后
| MD5: fd63 96dc 4e9f 1ea9 1651 d687 734d 3976 #MD5值
|_SHA-1: d6aa f8cf a0e0 2365 47fc 2a89 4f89 5ec9 4724 a60d #SHA-1值
Nmap done: 1 IP address (1 host up) scanned in 0.95 seconds
從輸出信息中可以看到目標主機上SSL服務的認證信息。
(2)使用ssl-date腳本
ssl-date腳本用來獲取目標主機的日期和時間。語法格式如下:
nmap --script=ssl-date -p 443
使用ssl-date腳本來獲取目標主機的信息。執行命令如下:
root@daxueba:~# nmap --script=ssl-date -p 443 www.baidu.com
Starting Nmap 7.70 ( https://nmap.org ) at 2021-08-12 16:07 CST
Nmap scan report for www.baidu.com (61.135.169.125)
Host is up (0.024s latency).
Other addresses for www.baidu.com (not scanned): 61.135.169.121
PORT STATE SERVICE
443/tcp open https
|_ssl-date: 2021-08-12 T08:07:40+00:00; 0s from scanner time.
Nmap done: 1 IP address (1 host up) scanned in 1.14 seconds
從以上輸出信息中可以看到,使用ssl-date腳本成功獲取到了目標主機的日期和時間。
(3)使用ssl-dh-params腳本
ssl-dh-params腳本用來獲取暫時的Diffie-Hellman參數信息。語法格式如下:
nmap --script=ssl-dh-params -p 443
使用ssl-dh-params腳本對SSL服務實施掃描。執行命令如下:
root@daxueba:~# nmap --script=ssl-dh-params -p 443 194.4.240.95
Starting Nmap 7.70 ( https://nmap.org ) at 2021-08-12 15:55 CST
Nmap scan report for 194.4.240.95
Host is up (0.22s latency).
PORT STATE SERVICE
443/tcp open https
| ssl-dh-params:
| VULNERABLE:
| Transport Layer Security (TLS) Protocol DHE_EXPORT Ciphers Downgrade MitM(Logjam)
| State: VULNERABLE
| IDs: CVE:CVE-2015-4000 OSVDB:122331
| The Transport Layer Security (TLS) protocol contains a flaw that is
| triggered when handling Diffie-Hellman key exchanges defined with
| the DHE_EXPORT cipher. This may allow a man-in-the-middle attacker
| to downgrade the security of a TLS session to 512-bit export-grade
| cryptography, which is significantly weaker, allowing the attacker
| to more easily break the encryption and monitor or tamper with
| the encrypted stream.
| Disclosure date: 2015-5-19
| Check results:
| EXPORT-GRADE DH GROUP 1
| Cipher Suite: TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
| Modulus Type: Safe prime
| Modulus Source: mod_ssl 2.2.x/512-bit MODP group with safe prime modulus
| Modulus Length: 512
| Generator Length: 8
| Public Key Length: 512
| References:
| http://osvdb.org/122331
| https://weakdh.org
| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-4000
| | Diffie-Hellman Key Exchange Insufficient Group Strength
| State: VULNERABLE
| Transport Layer Security (TLS) services that use Diffie-Hellmangroups
| of insufficient strength, especially those using one of a few commonly
| shared groups, may be susceptible to passive eavesdropping attacks.
| Check results:
| WEAK DH GROUP 1
| Cipher Suite: TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
| Modulus Type: Safe prime
| Modulus Source: mod_ssl 2.2.x/1024-bit MODP group with safe prime modulus
| Modulus Length: 1024
| Generator Length: 8
| Public Key Length: 1024
| References:
|_ https://weakdh.org
Nmap done: 1 IP address (1 host up) scanned in 8.44 seconds
從以上輸出信息中可以看到,使用ssl-dh-params腳本成功獲取到了目標服務的Diffie-Hellman參數信息。
(4)使用ssl-enum-ciphers腳本
ssl-enum-ciphers腳本用來枚舉目標主機的加密方式。語法格式如下:
nmap --script=ssl-enum-ciphers -p 443
使用ssl-enum-ciphers腳本枚舉目標主機的加密方式。執行命令如下:
root@daxueba:~# nmap --script=ssl-enum-ciphers -p 443 www.baidu.com
Starting Nmap 7.70 ( https://nmap.org ) at 2021-08-12 16:20 CST
Nmap scan report for www.baidu.com (61.135.169.125)
Host is up (0.020s latency).
Other addresses for www.baidu.com (not scanned): 61.135.169.121
PORT STATE SERVICE
443/tcp open https
| ssl-enum-ciphers:
| SSLv3:
| ciphers:
| TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - C
| compressors:
| NULL
| cipher preference: indeterminate
| cipher preference error: Too few ciphers supported
| warnings:
| Broken cipher RC4 is deprecated by RFC 7465
| TLSv1.0:
| ciphers:
| TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
| TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
| TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - C
| TLS_ECDHE_RSA_WITH_RC4_128_SHA (secp256r1) - C
| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
| TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
| compressors:
| NULL
| cipher preference: server
| warnings:
| Broken cipher RC4 is deprecated by RFC 7465
| TLSv1.1:
| ciphers:
| TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
| TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
| TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - C
| TLS_ECDHE_RSA_WITH_RC4_128_SHA (secp256r1) - C
| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
| TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
| compressors:
| NULL
| cipher preference: server
| warnings:
| Broken cipher RC4 is deprecated by RFC 7465
| TLSv1.2:
| ciphers:
| TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
| TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
| TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - C
| TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp256r1) - A
| TLS_ECDHE_RSA_WITH_RC4_128_SHA (secp256r1) - C
| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
| TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
| compressors:
| NULL
| cipher preference: server
| warnings:
| Broken cipher RC4 is deprecated by RFC 7465
|_ least strength: C
Nmap done: 1 IP address (1 host up) scanned in 2.82 seconds
從以上輸出信息中可以看到目標主機支持的加密方式。
(5)使用sslv2腳本
sslv2腳本用來判斷目標服務器其是否支持SSLv2,并且發現支持的加密方式。語法格式如下:
nmap --script=sslv2 -p 443
使用sslv2腳本掃描目標服務器是否支持SSLv2協議,以及其支持的加密方式。執行命令如下:
root@daxueba:~# nmap --script=sslv2 -p 443 84.200.8.181
Starting Nmap 7.70 ( https://nmap.org ) at 2021-08-12 16:25 CST
Nmap scan report for srv01.dc-host.de (84.200.8.181)
Host is up (0.32s latency).
PORT STATE SERVICE
443/tcp open https
| sslv2:
| SSLv2 supported
| ciphers: #加密方式
| SSL2_RC4_128_EXPORT40_WITH_MD5
| SSL2_DES_192_EDE3_CBC_WITH_MD5
| SSL2_RC2_128_CBC_WITH_MD5
| SSL2_RC4_128_WITH_MD5
| SSL2_RC2_128_CBC_EXPORT40_WITH_MD5
|_ SSL2_DES_64_CBC_WITH_MD5
Nmap done: 1 IP address (1 host up) scanned in 5.61 seconds
從輸出信息中可以看到目標主機支持SSLv2協議,并且可以看到其支持的所有加密方式。
(6)使用tls-alpn腳本
tls-alpn腳本通過使用ALPN協議來枚舉TLS服務支持的應用層協議。語法格式如下:
nmap --script=tls-alpn
使用tls-alpn腳本對目標主機上的SSL服務實施掃描。執行命令如下:
root@daxueba:~# nmap --script=tls-alpn -p 443 www.baidu.com
Starting Nmap 7.70 ( https://nmap.org ) at 2021-08-12 16:27 CST
Nmap scan report for www.baidu.com (61.135.169.125)
Host is up (0.024s latency).
Other addresses for www.baidu.com (not scanned): 61.135.169.121
PORT STATE SERVICE
443/tcp open https
| tls-alpn:
|_ http/1.1
Nmap done: 1 IP address (1 host up) scanned in 1.13 seconds
從輸出信息中可以看到,SSL服務支持的應用層協議為http/1.1。
(7)使用tls-nextprotoneg腳本
tls-nextprotoneg腳本通過使用Next Protocol Negotiation Extension來枚舉TLS服務支持的協議。語法格式如下:
nmap --script=tls-nextprotoneg -p 443 [host]
使用tls-nextprotoneg腳本掃描SSL服務。執行命令如下:
root@daxueba:~# nmap --script=tls-nextprotoneg -p 443 www.baidu.com
Starting Nmap 7.70 ( https://nmap.org ) at 2021-08-12 16:28 CST
Nmap scan report for www.baidu.com (61.135.169.121)
Host is up (0.028s latency).
Other addresses for www.baidu.com (not scanned): 61.135.169.125
PORT STATE SERVICE
443/tcp open https
| tls-nextprotoneg:
|_ http/1.1
Nmap done: 1 IP address (1 host up) scanned in 1.17 seconds
從輸出信息中可以看到,SSL服務支持的協議為http/1.1。