[TOC]
## namp
Nmap是一個網絡連接端口掃描軟件,用來掃描網上電腦開放的網絡連接端口。確定哪些服務運行在哪些連接端口,并且推斷計算機運行哪個操作系統。它是網絡管理員必用的軟件之一,以及用以評估網絡系統安全。
功能介紹:http://blog.sina.com.cn/s/blog_811d9fdd0101ey07.html
10種掃描方式解釋:http://www.cnblogs.com/c4isr/archive/2012/12/07/2807491.html
詳細教程及下載方式參見:http://nmap.org/
**Nmap的優劣勢**
優勢:
* 功能靈活強大,支持多種目標,大量計算機的同時掃描;
* 開源,相關幫助文檔十分詳細;
* 流行,由于其具有強大的掃描機探測功能,,已被成千上萬安全專家使用。
劣勢:
* Nmap參數眾多,難以一一記憶;
### 1.主機發現
**主機發現原理:**
主機發現的原理與Ping命令類似,發送探測包到目標主機,如果收到回復,那么說明目標主機是開啟的。Nmap支持十多種不同的主機探測方式,比如發送ICMP ECHO/TIMESTAMP/NETMASK報文、發送TCPSYN/ACK包、發送SCTP INIT/COOKIE-ECHO包,用戶可以在不同的條件下靈活選用不同的方式來探測目標機。
**主機發現基本用法**
~~~sh
-sL List Scan 列表掃描,僅將指定的目標的IP列舉出來,不進行主機發現。
-sn Ping Scan 只進行主機發現,不進行端口掃描。
-Pn 將所有指定的主機視作開啟的,跳過主機發現的過程。
-n/-R -n表示不進行DNS解析;-R表示總是進行DNS解析。
--system-dns 指定使用系統的DNS服務器
--traceroute 追蹤每個路由節點
-PE/PP/PM 使用ICMP echo, timestamp, and netmask 請求包發現主機。
-PO[protocollist] 使用IP協議包探測對方主機是否開啟。
-PS/PA/PU/PY[portlist] 使用TCPSYN/ACK或SCTP INIT/ECHO方式進行發現。
--dns-servers <serv1[,serv2],…> 指定DNS服務器。
#例:掃描局域網10.1.1.1-10.1.1.100范圍內哪些IP的主機是活動的。
nmap –sn 10.1.1.1-100
~~~
### 2.端口掃描
端口掃描是Nmap最基本最核心的功能,用于確定目標主機的TCP/UDP端口的開放情況。默認情況下,Nmap會掃描1000個最有可能開放的TCP端口。Nmap通過探測將端口劃分為6個狀態:
| 狀態 | 意義 |
| ---------- | ---------------------------------------- |
| open | 端口是開放的 |
| closed | 端口是關閉的 |
| filtered | 端口被防火墻IDS/IPS屏蔽,無法確定其狀態 |
| unfiltered | 端口沒有被屏蔽,但是否開放需要進一步確定 |
|`open|filtered` | 端口是開放的或被屏蔽 |
|`closed|filtered` | 端口是關閉的或被屏蔽 |
端口掃描方面非常強大,提供了很多的探測方式:
* TCP SYN scanning
* TCP connect scanning
* TCP ACK scanning
* TCP FIN/Xmas/NULL scanning
* UDP scanning
* 其他方式
端口掃描用法:
~~~sh
-sS/sT/sA/sW/sM 指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式來對目標主機進行掃描。
-sU 指定使用UDP掃描方式確定目標主機的UDP端口狀況。
-sN/sF/sX 指定使用TCP Null, FIN, and Xmas scans秘密掃描方式來協助探測對方的TCP端口狀態。
--scanflags 定制TCP包的flags。
-sI <zombiehost[:probeport]> 指定使用idle scan方式來掃描目標主機(前提需要找到合適的zombie host)
-sY/sZ 使用SCTP INIT/COOKIE-ECHO來掃描SCTP協議端口的開放的情況。
-sO 使用IP protocol 掃描確定目標機支持的協議類型。
-b 使用FTP bounce scan掃描方式
nmap -sS -sU -T4 -top-ports 300 1.1.1.100
# -sS表示使用TCP SYN方式掃描TCP端口;
# -sU表示掃描UDP端口;
# -T4表示時間級別配置4級;
# –top-ports 300表示掃描最有可能開放的300個端口(TCP和UDP分別有300個端口)。
~~~
### 3.版本探測:
版本偵測主要分為以下幾個步驟:
* 首先檢查open與open|filtered狀態的端口是否在排除端口列表內。如果在排除列表,將該端口剔除。
* 如果是TCP端口,嘗試建立TCP連接。
嘗試等待片刻(通常6秒或更多,具體時間可以查詢文件nmap-services-probes中Probe TCP NULL q||對應的totalwaitms)。
通常在等待時間內,會接收到目標機發送的“WelcomeBanner”信息。
nmap將接收到的Banner與nmap-services-probes中NULL probe中的簽名進行對比。查找對應應用程序的名字與版本信息。
* 如果通過“Welcome Banner”無法確定應用程序版本,再嘗試發送其他的探測包(從nmap-services-probes中挑選合適的probe)
將probe得到回復包與數據庫中的簽名進行對比。如果反復探測都無法得出具體應用,那么打印出應用返回報文,讓用戶自行進一步判定。
* 如果是UDP端口,那么直接使用nmap-services-probes中探測包進行探測匹配。
根據結果對比分析出UDP應用服務類型。
* 如果探測到應用程序是SSL,那么調用openSSL進一步的偵查運行在SSL之上的具體的應用類型。
* 如果探測到應用程序是SunRPC,那么調用brute-force RPC grinder進一步探測具體服務。
版本偵測用法
~~~bash
-sV 指定讓Nmap進行版本偵測
--version-intensity 指定版本偵測強度(0-9),默認為7。數值越高越準確,但運行時間越長。
--version-light 指定使用輕量偵測方式 (intensity 2)
--version-all 嘗試使用所有的probes進行偵測 (intensity 9)
--version-trace 顯示出詳細的版本偵測過程信息。
# 對主機10.1.1.100進行版本偵測。
nmap –sV 10.1.1.100
~~~
### 4.os探測
OS偵測原理
Nmap內部包含了2600多已知系統的指紋特征(在文件nmap-os-db文件中)。將此指紋數據庫作為進行指紋對比的樣本庫。分別挑選一個open和closed的端口,向其發送經過精心設計的TCP/UDP/ICMP數據包,根據返回的數據包生成一份系統指紋。將探測生成的指紋與nmap-os-db中指紋進行對比,查找匹配的系統。如果無法匹配,以概率形式列舉出可能的系統。
OS偵測用法
~~~
-O 指定Nmap進行OS偵測。
--osscan-limit 限制Nmap只對確定的主機的進行OS探測(至少需確知該主機分別有一個open和closed的端口)。
--osscan-guess 大膽猜測對方的主機的系統類型。由此準確性會下降不少,但會盡可能多為用戶提供潛在的操作系統
nmap –O 10.1.1.100
~~~~
### 5.漏洞掃描
~~~sh
# 掃描端口并且標記可以爆破的服務
nmap 目標 --script=ftp-brute,\
imap-brute,\
smtp-brute,\
pop3-brute,\
mongodb-brute,\
redis-brute,\
ms-sql-brute,\
rlogin-brute,\
rsync-brute,\
mysql-brute,\
pgsql-brute,\
oracle-sid-brute,\
oracle-brute,\
rtsp-url-brute,\
snmp-brute,\
svn-brute,\
telnet-brute,\
vnc-brute,xmpp-brute
# 判斷常見的漏洞并掃描端口
nmap 目標 --script=auth,vuln
# 精確判斷漏洞并掃描端口
nmap 目標 --script=dns-zone-transfer,\
ftp-anon,ftp-proftpd-backdoor,\
ftp-vsftpd-backdoor,\
ftp-vuln-cve2010-4221,\
http-backup-finder,\
http-cisco-anyconnect,\
http-iis-short-name-brute,\
http-put,http-php-version,\
http-shellshock,\
http-robots.txt,\
http-svn-enum,\
http-webdav-scan,\
iis-buffer-overflow,\
iax2-version,\
memcached-info,\
mongodb-info,\
msrpc-enum,\
ms-sql-info,\
mysql-info,\
nrpe-enum,\
pptp-version,\
redis-info,\
rpcinfo,\
samba-vuln-cve-2012-1182,\
smb-vuln-ms08-067,\
smb-vuln-ms17-010,\
snmp-info,sshv1,\
xmpp-info,\
tftp-enum,\
teamspeak2-version
~~~
- src導航站
- kali和msf
- 信息收集
- 收集域名信息
- Whois 查詢
- 備案信息查詢
- 信用信息查詢
- IP反查站點的站
- 瀏覽器插件
- 收集子域名信息
- 在線平臺
- 工具枚舉
- ssl與證書透明度
- DNS歷史解析
- DNS域傳送漏洞
- C段探測
- JS文件域名&ip探測
- 搜索引擎&情報社區
- google黑客
- 威脅情報
- 鐘馗之眼
- 收集相關應用信息
- 微信公眾號&微博
- APP收集&反編譯
- 收集常用端口信息
- 常見端口&解析&總結
- 掃描工具
- 網絡空間引擎搜索
- 瀏覽器插件
- nmap掃描
- 收集敏感信息
- 源碼泄露
- 郵箱信息收集
- 備份文件泄露
- 目錄&后臺掃描
- 公網網盤
- 歷史資產
- 指紋&WAF&CDN識別
- 指紋識別
- CDN識別
- 繞過CDN查找真實IP
- WAF識別
- 漏洞資源和社工
- 漏洞公共資源庫
- 社會工程
- 資產梳理
- 各種對滲透有幫助的平臺
- 掃描器
- 掃描器對比
- AppScan(IBM)_web和系統
- AWVS_web掃描
- X-Scan_系統掃描
- WebInspect_HP_WEB
- Netsparker_web
- WVSS_綠盟_web
- 安恒明鑒
- Nessus_系統
- nexpose_系統
- 啟明天鏡_web_系統
- SQL注入
- 常用函數
- sql注入步驟
- union注入和information_schema庫
- 函數和報錯注入
- SQL盲注
- 其他注入方式
- 防止SQL注入解決方案
- Access數據庫注入
- MSSQL數據庫注入
- MYSQL數據庫注入
- 神器SQLmap
- xss跨站腳本攻擊
- xss原理和分類
- xss案例和修復
- xss繞過技巧
- xss案例
- 文件上傳下載包含
- 常有用文件路徑
- 文件上傳漏洞
- 文件下載漏洞
- 文件包含漏洞
- upload-labs上傳漏洞練習
- XXE、SSRF、CSRF
- SSRF原理基礎
- SSRF案例實戰
- CSRF原理基礎
- CSRF案例及防范
- XXE之XML_DTD基礎
- XXE之payload與修復
- XXE結合SSRF
- 遠程命令執行與反序列化
- 遠程命令和代碼執行漏洞
- 反序列化漏洞
- 驗證碼與暴力破解
- 爆破與驗證碼原理
- CS架構暴力破解
- BS架構暴力破解
- WEB編輯器漏洞
- 編輯器漏洞基礎
- Ewebeditor編輯器
- FCKeditor編輯器
- 其他編輯器
- web中間件漏洞
- 中間件解析漏洞
- Tomcat常見的漏洞總結
- Jboss漏洞利用總結
- Weblogic漏洞利用總結
- WEB具體步驟
- 旁注和越權
- CDN繞過
- 越權與邏輯漏洞
- WEB應用常見其他漏洞
- WEB登陸頁面滲透思路
- 獲取WEBshell思路
- 社工、釣魚、apt
- 社工和信息收集
- 域名欺騙
- 釣魚郵件
- 一些釣魚用的掛馬工具
- 代碼審計
- 代碼審計工具
- WAF繞過
- WAF基礎及云WAF
- 各種WAF繞過方法
- 繞過WAF上傳文件
- 系統提權
- windows系統提權
- linux系統提權
- 數據庫提權操作系統
- 內網橫向滲透
- 內網穿透方式
- 一些內網第三方應用提權
- ARP與DOS
- ARP欺騙
- DOS與DDOS
- 一些DOS工具