*****免責聲明*****
此處介紹的技術僅作為研究,學習,交流用,嚴禁任何個人,機構,公司,組織,團體使用這里公布的技術對任何類似上述的第三方實體進行未經授權,非法的滲透測試與攻擊入侵,同時本博文作者不承擔由此造成目標的任何(包括但不限於)經濟損失,用戶數據丟失或泄漏,業務虧損等后果產生的相應法律責任
NMAP 高級使用技巧
NMAP 概述
nmap 是一個網絡探測和安全掃描程序,系統管理者和個人可以使用這個軟件掃描大型的網絡,獲取
那台主機正在運行以及提供什么服務等信息。nmap 支持很多掃描技術,例如:UDP、TCP connect()、
TCP SYN(半開掃描)、ftp 代理(bounce 攻擊)、反向標志、ICMP、FIN、ACK 掃描、聖誕樹(Xmas Tree)、
SYN 掃描和 null 掃描。還可以探測操作系統類型。
nmap 可用於:
◼ 檢測活在網絡上的主機(主機發現)
◼ 檢測主機上開放的端口(端口發現或枚舉)
◼ 檢測到相應的端口(服務發現)的軟件和版本
◼ 檢測操作系統,硬件地址,以及軟件版本
◼ 檢測脆弱性的漏洞(Nmap 的腳本)
NMAP 端口狀態解析
open : 應用程序在該端口接收 TCP 連接或者 UDP 報文。
closed :關閉的端口對於 nmap 也是可訪問的, 它接收 nmap 探測報文並作出響應。但沒有應用程序在其上監聽。
filtered :由於包過濾阻止探測報文到達端口,nmap 無法確定該端口是否開放。過濾可能來自專業的防火牆設備,路由規則 或者主機上的軟件防火牆。
unfiltered :未被過濾狀態意味着端口可訪問,但是 nmap 無法確定它是開放還是關閉。 只有用於映射防火牆規則集的 ACK 掃描才會把端口分類到這個狀態。
open | filtered :無法確定端口是開放還是被過濾, 開放的端口不響應就是一個例子。沒有響應也可能意味着報文過濾器丟棄了探測報文或者它引發的任何反應。UDP,IP 協議,FIN, Null 等掃描會引起。
closed | filtered:(關閉或者被過濾的):無法確定端口是關閉的還是被過濾的
NMAP 語法及示例
語法:nmap [Scan Type(s)] [Options]
- 使用 nmap 掃描一台服務器
nmap 192.168.1.63
Starting Nmap 5.21 ( http://nmap.org ) at 2015-08-16 20:38 CST Nmap scan report for xuegod63.cn (192.168.1.63) Host is up (0.000029s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 111/tcp open rpcbind
- 掃描一台機器,查看它打開的端口及詳細信息。
nmap -v 192.168.1.63 #查看以下相關信息。
Starting Nmap 6.40 ( http://nmap.org ) at 2018-12-12 10:07 CST Initiating ARP Ping Scan at 10:07 Scanning 192.168.1.63 [1 port] Completed ARP Ping Scan at 10:07, 0.01s elapsed (1 total hosts) Initiating Parallel DNS resolution of 1 host. at 10:07 Completed Parallel DNS resolution of 1 host. at 10:07, 0.04s elapsed Initiating SYN Stealth Scan at 10:07 Scanning 192.168.1.63 [1000 ports] Discovered open port 111/tcp on 192.168.1.63 Discovered open port 22/tcp on 192.168.1.63 Completed SYN Stealth Scan at 10:07, 0.05s elapsed (1000 total ports) Nmap scan report for 192.168.1.63 Host is up (0.00025s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 111/tcp open rpcbind MAC Address: 00:0C:29:F0:FC:4F (VMware)
-
掃描一個范圍: 端口 1-65535
- 注:生產環境下,我們只需要開啟正在提供服務的端口,其他端口都關閉。關閉不需要開的服務有兩種方法:
情景 1:你認識這個服務,直接關服務
systemctl stop rpcbind
情景 2:不認識這個服務,查看哪個進程使用了這個端口並找出進程的路徑,然后 kill 進程,刪除文件,接下來以 22 端口為例,操作思路如下:
lsof -i :22 #查看 22 端口正在被哪個進程使用 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 1089 root 3u IPv4 21779 0t0 TCP *:ssh (LISTEN)
通過 ps 命令查找對應的進程文件:
ps -axu | grep 1089 root 1089 0.0 0.1 105996 3744 ? Ss 10:52 0:00 /usr/sbin/sshd -D
注:看到進程的文件的路徑是/usr/sbin/sshd 。如果沒有看到此命令的具體執行路徑,說明此木馬進程可以在 bash 終端下直接執行,通過 which 和 rpm -qf 來查看命令的來源,如下:
which vim /usr/bin/vim
解決:
kill -9 1781
總結:這個思路主要用於找出黑客監聽的后門端口和木馬存放的路徑。
-
掃描一台機器:查看此服務器開放的端口號和操作系統類型。
-
nmap -sS -O www.xuegod.cn
Not shown: 996 filtered ports PORT STATE SERVICE 21/tcp open ftp 80/tcp open http 443/tcp closed https 3306/tcp open mysql Aggressive OS guesses: Linux 2.6.28 (93%), Linux 2.6.9 - 2.6.27 (93%), Riverbed Steelhead 200 proxy server (93%), Linux 2.6.9 (93%), Linux 2.6.30 (92%), Linux 2.6.9 (CentOS 4.4) (92%), Linux 2.6.11 (90%), Linux 2.6.18 (CentOS 5.1, x86) (89%), FreeBSD 6.2-RELEASE (89%), Linux 2.6.18 (89%) No exact OS matches for host (test conditions non-ideal).
-
參數說明:
-
-O: 顯示出操作系統的類型。 每一種操作系統都有一個指紋。-sS:半開掃描(half-open)
-
TCP 同步掃描(TCP SYN):因為不必全部打開一個 TCP 連接,所以這項技術通常稱為半開掃描(half-open)。你可以發出一個 TCP 同步包(SYN),然后等待回應。如果對方返回 SYN|ACK(響應)包就表示目標端口正在監聽;如果返回 RST 數據包,就表示目標端口沒有監聽程序;如果收到一個 SYN|ACK 包,源主機就會馬上發出一個 RST(復位)數據包斷開和目標主機的連接,這實際上由我們的操作系統內核自動完成的。
-
-
-
-
掃描一個網段中所有機器是什么類型的操作系統。
-
nmap -sS -O 192.168.1.0/24
-
-
查找一些有特點的 IP 地址中,開啟 80 端口的服務器。
-
nmap -v -p 80 192.168.1.62-67
-
-
如何更隱藏的去掃描,頻繁掃描會被屏蔽或者鎖定 IP 地址。
- 如何更隱藏的去掃描,頻繁掃描會被屏蔽或者鎖定 IP 地址。
--randomize_hosts # 隨機掃描,對目標主機的順序隨機划分 --scan-delay #延時掃描,單位秒,調整探針之間的延遲
- 隨機掃描
nmap -v --randomize-hosts -p 80 192.168.1.62-69
Nmap scan report for 192.168.1.69 [host down] Nmap scan report for 192.168.1.68 [host down] Nmap scan report for 192.168.1.67 [host down] Nmap scan report for 192.168.1.65 [host down] Nmap scan report for 192.168.1.66 [host down]
- 隨機掃描+延時掃描 ,默認單位秒
nmap -v --randomize-hosts --scan-delay 3000ms -p 80 192.168.1.62-69
- 如何更隱藏的去掃描,頻繁掃描會被屏蔽或者鎖定 IP 地址。
- 使用通配符指定 IP 地址
nmap -v --randomize-hosts --scan-delay 30 -p 80 1.*.2.3-8
DNMAP 分布式集群執行大量掃描任務
DNMAP 集群簡介
dnmap 是一個用 python 寫的進行分布式掃描的 nmap 掃描框架,我們可以用 dnmap 來通過多個台機器發起一個大規模的掃描,dnmap 采用 C/S 結構,執行大量掃描任務時非常便捷,掃描結果可以統一管理。
實驗場景:使用 4 台位於不同區域的 kali 服務器對 A 類網段時行掃描。
用戶在服務器端設定好 nmap 執行的命令,dnmap 會自動的分配給客戶端進行掃描,並將掃描結果提交給服務器。dnmap 有兩個可執行文件,分別是 dnmap_client 和 dnmap_server。在進行一個分布式 nmap掃描之前,我們可以用 dnmap_server 來生成一個 dnmap 的服務端,然后在其他機器用 dnmap_client進行連接。然后就能進行分布式的 nmap 掃描了。
NESSUS 漏洞檢測
NESSUS 簡介
1998 年,Nessus 的創辦人 Renaud Deraison 展開了一項名為"Nessus"的計划,其計划目的是希望能為互聯網社群提供一個免費、威力強大、更新頻繁並簡易使用的遠端系統安全掃描程式。2002 年時,Renaud 與 Ron Gula, Jack Huffard 創辦了一個名為 Tenable Network Security 機構。在第三版的Nessus 釋出之時,該機構收回了Nessus的版權與程式源代碼(原本為開放源代碼),並注冊了nessus.org成為該機構的網站。目前此機構位於美國馬里蘭州的哥倫比亞。