常用linux系统扫描命令汇总
本文介紹了一些網(wǎng)絡掃描的技術手段,其中包括主機掃描、路由掃描、批量服務掃描。
常用命令:fping、hping、traceroute、mtr、nmap、nc、tcpdump
主機掃描
fping
fping是一個小型命令行工具,用于向網(wǎng)絡主機發(fā)送ICMP回應請求,類似于ping,但在ping多個主機時性能要高得多。fping與ping不同的地方在于,fping可以在命令行中指定要ping的主機數(shù)量范圍,也可以指定含有要ping的主機列表文件。
作用:批量的給目標主機發(fā)送ping請求,測試主機的存活情況
特點:并行發(fā)送、結果易讀
安裝:
參數(shù)說明:
# fping -h -a:只顯示存活主機 -u:只顯示不存活主機 -l:循環(huán)ping -g:通過指定起始地址與終止地址產(chǎn)生目標列表(192.168.1.0/24)目標IP地址的輸入方式:
fping IP1 IP2 IP3 ...; fping -f filename; fping -g IP1 IP2(IP1地址開始范圍,IP2地址結束范圍)用法示例:
# fping 192.168.20.152 192.168.20.153 # fping -g 192.168.20.150 192.168.20.153 # fping -a -g 192.168.20.150 192.168.20.153 # fping -g 192.168.20.150 192.168.20.153 2>/dev/null 192.168.20.151 is alive 192.168.20.152 is alive 192.168.20.150 is unreachable 192.168.20.153 is unreachablehping
官方站點:http://www.hping.org/
特點:支持使用的TCP/IP數(shù)據(jù)包組裝、分析工具
安裝:
參數(shù)說明:
-c:發(fā)送數(shù)據(jù)包的個數(shù) -d:每個數(shù)據(jù)包的大小 -p:端口 -S:設置TCP模式SYN包 -a:偽造IP地址用法示例:
1.對指定目標端口發(fā)起tcp探測
hping -p 22 -S 192.168.20.151
#可以設置151機器禁ping查看效果: sysctl -w net.ipv4.icmp_echo_ignore_all=1
2.偽造來源IP,模擬Ddos攻擊
hping -p 22 -S 192.168.20.151 -a 192.168.20.150
在151機器上開啟tcpdump抓取來自攻擊源的數(shù)據(jù)包:
# tcpdump -i eth0 src host 192.168.20.150 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes 20:00:23.471610 IP 192.168.20.150.spice > 192.168.20.151.ssh: Flags [S], seq 1309245604:1309245704, win 512, length 100 20:00:24.471781 IP 192.168.20.150.xiip > 192.168.20.151.ssh: Flags [S], seq 1698714277:1698714377, win 512, length 100 20:00:25.472009 IP 192.168.20.150.discovery-port > 192.168.20.151.ssh: Flags [S], seq 1558244712:1558244812, win 512, length 100 20:00:26.472229 IP 192.168.20.150.egs > 192.168.20.151.ssh: Flags [S], seq 317559446:317559546, win 512, length 100 20:00:27.472494 IP 192.168.20.150.videte-cipc > 192.168.20.151.ssh: Flags [S], seq 1828776172:1828776272, win 512, length 100補充:
tcpdump抓包常用參數(shù)和用法
參數(shù)說明:
tcp: ip icmp arp rarp 和 tcp、udp、icmp這些選項等都要放到第一個參數(shù)的位置,用來過濾數(shù)據(jù)報的類型 -i eth0 : 只抓經(jīng)過接口eth0的包 host 192.168.20.151 只抓取本機器和192.168.20.151機器之間的數(shù)據(jù)包 -s 0 : 抓取數(shù)據(jù)包時默認抓取長度為68字節(jié)。加上-s 0 后可以抓到完整的數(shù)據(jù)包 -w /tools/0427.pcap : 指定保存的路徑保存成pcap文件,方便用ethereal(即wireshark)分析詳細用法可以參考:https://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html
tcpdump
路由掃描
查詢一個主機到另一個主機經(jīng)過的路由跳數(shù)、及數(shù)據(jù)延遲情況。
常用工具:traceroute、mtr
traceroute
參考鏈接:https://www.cnblogs.com/peida/archive/2013/03/07/2947326.html
通過traceroute我們可以知道信息從你的計算機到互聯(lián)網(wǎng)另一端的主機是走的什么路徑。當然每次數(shù)據(jù)包由某一同樣的出發(fā)點(source)到達某一同樣的目的地(destination)走的路徑可能會不一樣,但基本上來說大部分時候所走的路由是相同的。linux系統(tǒng)中,我們稱之為traceroute,在MS Windows中為tracert。 traceroute通過發(fā)送小的數(shù)據(jù)包到目的設備直到其返回,來測量其需要多長時間。一條路徑上的每個設備traceroute要測3次。輸出結果中包括每次測試的時間(ms)和設備的名稱(如有的話)及其IP地址。
在大多數(shù)情況下,我們會在linux主機系統(tǒng)下,直接執(zhí)行命令行:traceroute hostname
參數(shù)說明:
默認使用uDP協(xié)議(3000以上的端口) 使用TCP協(xié)議 -T -p 使用ICMP協(xié)議 -I -d 使用Socket層級的排錯功能。 -f 設置第一個檢測數(shù)據(jù)包的存活數(shù)值TTL的大小。 -F 設置勿離斷位。 -g 設置來源路由網(wǎng)關,最多可設置8個。 -i 使用指定的網(wǎng)絡界面送出數(shù)據(jù)包。 -I 使用ICMP回應取代UDP資料信息。 -m 設置檢測數(shù)據(jù)包的最大存活數(shù)值TTL的大小。 -n 直接使用IP地址而非主機名稱。 -p 設置UDP傳輸協(xié)議的通信端口。 -r 忽略普通的Routing Table,直接將數(shù)據(jù)包送到遠端主機上。 -s 設置本地主機送出數(shù)據(jù)包的IP地址。 -t 設置檢測數(shù)據(jù)包的TOS數(shù)值。 -v 詳細顯示指令的執(zhí)行過程。 -w 設置等待遠端主機回報的時間。 -x 開啟或關閉數(shù)據(jù)包的正確性檢驗。使用示例:
1.traceroute 用法簡單、最常用的用法 # traceroute www.baidu.com2.跳數(shù)設置 # traceroute -m 10 www.baidu.com3.顯示IP地址,不查主機名 # traceroute -n www.baidu.com4.探測包使用的基本UDP端口設置6888 # traceroute -p 6888 www.baidu.com5.把探測包的個數(shù)設置為值4 # traceroute -q 4 www.baidu.com6.繞過正常的路由表,直接發(fā)送到網(wǎng)絡相連的主機 # traceroute -r www.baidu.com7.把對外發(fā)探測包的等待響應時間設置為3秒 # traceroute -w 3 www.baidu.com說明:
# traceroute -T -p 80 -n www.imooc.com traceroute to www.imooc.com (117.121.101.40), 30 hops max, 60 byte packets1 192.168.20.11 0.406 ms 0.366 ms 0.337 ms2 * * *3 123.150.144.153 26.616 ms 26.922 ms 26.897 ms4 221.238.7.233 11.441 ms 7.298 ms 6.792 ms5 221.238.222.65 7.000 ms 6.978 ms 7.318 ms6 219.150.49.181 11.389 ms 219.150.49.169 10.847 ms 219.150.49.189 8.933 ms7 36.110.245.26 13.724 ms 36.110.245.22 9.259 ms 8.925 ms8 * * *9 220.181.17.122 6.568 ms 17.669 ms 17.606 ms 10 * * * 11 117.121.99.82 7.455 ms 7.894 ms 8.721 ms 12 * * * 13 117.121.101.40 10.137 ms 7.703 ms 7.699 ms記錄按序列號從1開始,每個紀錄就是一跳 ,每跳表示一個網(wǎng)關,我們看到每行有三個時間,單位是 ms,其實就是-q的默認參數(shù)。探測數(shù)據(jù)包向每個網(wǎng)關發(fā)送三個數(shù)據(jù)包后,網(wǎng)關響應后返回的時間;如果用 traceroute -q 4 www.baidu.com ,表示向每個網(wǎng)關發(fā)送4個數(shù)據(jù)包。
有時我們traceroute 一臺主機時,會看到有一些行是以星號表示的。出現(xiàn)這樣的情況,可能是防火墻封掉了ICMP的返回信息,所以我們得不到什么相關的數(shù)據(jù)包返回數(shù)據(jù)。
有時我們在某一網(wǎng)關處延時比較長,有可能是某臺網(wǎng)關比較阻塞,也可能是物理設備本身的原因。當然如果某臺DNS出現(xiàn)問題時,不能解析主機名、域名時,也會 有延時長的現(xiàn)象;可以加-n 參數(shù)來避免DNS解析,以IP格式輸出數(shù)據(jù)。
如果在局域網(wǎng)中的不同網(wǎng)段之間,我們可以通過traceroute 來排查問題所在,是主機的問題還是網(wǎng)關的問題。
mtr
MTR 是一個強大的網(wǎng)絡診斷工具,管理員能夠用它診斷和隔離網(wǎng)絡錯誤,并向上游提供商提供有關網(wǎng)絡狀態(tài)的有用報告。MTR 通過更大的采樣來跟蹤路由,就像 traceroute + ping 命令的組合。
網(wǎng)絡診斷工具包括 ping,traceroute 和 mtr,使用“ICMP”數(shù)據(jù)包來測試互聯(lián)網(wǎng)上兩點之間的節(jié)點和流量。當用戶在互聯(lián)網(wǎng)上 ping 主機時,會向主機發(fā)送一系列 ICMP 報文,主機通過發(fā)送報文進行響應。用戶的客戶端能夠計算互聯(lián)網(wǎng)上兩點之間的往返時間。相比之下,諸如 traceroute 和 MTR 之類的工具會以遞增增加的 TTL 發(fā)送 ICMP 數(shù)據(jù)包,以便查看數(shù)據(jù)包在源和目的地之間進行的路由或一系列跳數(shù)。 TTL 或生存時間控制數(shù)據(jù)包在“死亡”并返回主機之前將產(chǎn)生多少“跳”。通過發(fā)送一系列數(shù)據(jù)包,使它們在一跳之后死亡并返回,然后兩個,然后三個,客戶端機器能夠組合在因特網(wǎng)上的主機之間的流量所占用的路由。
MTR 收集關于中間主機的狀態(tài),連接和響應性的其他信息,而不是簡單地概述流量跨越 Internet 的路由。
使用mtr:
測試到目標主機 example.com 的流量的路由和連接質量: mtr -rw example.com
如果沒有丟包丟失,可以使用更快的間隔時間運行:mtr -rwc 50 -i 0.2 example.com
參數(shù)說明:
r 選項標志生成報告(縮寫為–report) w 選項標志使用長版本的主機名,您可以看到每個跳的完整主機名(–report-wide的縮寫) c 選項標志設置報告中發(fā)送和記錄的數(shù)據(jù)包數(shù)量。當不使用時,默認值通常為 10,但是對于更快的間隔,您可能希望將其設置為50或100.報告可能需要較長時間才能完成 i 選項標志以更快的速率運行報告,以顯示只能在網(wǎng)絡擁塞期間發(fā)生的數(shù)據(jù)包丟失。該標志指示MTR每n秒發(fā)送一個數(shù)據(jù)包。默認值為1秒,因此將其設置為十分之一秒(0.1,0.2等)通常是有幫助的輸出參數(shù)的解釋:
Loss% 丟包率,單位是”%”; Snt sent包的數(shù)量 Last 最后一個包的延時 Avg 所有包的平均延時 Best 延時最小的包 Wrst 延時最大的包 StDev 標準偏差如何使用MTR診斷網(wǎng)絡問題:https://www.cnblogs.com/xzkzzz/p/7413177.html
批量主機服務掃描
批量主機存活掃描、針對主機服務掃描
能更方便快捷獲取網(wǎng)絡中主機的存活狀態(tài);更加細致、只能獲取主機服務偵查情況
常用命令:nmap、ncat
nmap
NMap,也就是Network Mapper,是Linux下的網(wǎng)絡掃描和嗅探工具包。包含四項基本功能:
- 主機發(fā)現(xiàn)(Host Discovery)
- 端口掃描(Port Scanning)
- 版本偵測(Version Detection)
- 操作系統(tǒng)偵測(Operating System Detection)
nmap端口狀態(tài)解析:
open: 應用程序在該端口接收 TCP 連接或者 UDP 報文。 closed:關閉的端口對于nmap也是可訪問的, 它接收nmap探測報文并作出響應。但沒有應用程序在其上監(jiān)聽。 filtered:由于包過濾阻止探測報文到達端口,nmap無法確定該端口是否開放。過濾可能來自專業(yè)的防火墻設備,路由規(guī)則 或者主機上的軟件防火墻。 unfiltered:未被過濾狀態(tài)意味著端口可訪問,但是nmap無法確定它是開放還是關閉。 只有用于映射防火墻規(guī)則集的 ACK 掃描才會把端口分類到這個狀態(tài)。 open | filtered:無法確定端口是開放還是被過濾, 開放的端口不響應就是一個例子。沒有響應也可能意味著報文過濾器丟棄了探測報文或者它引發(fā)的任何反應。UDP,IP協(xié)議,FIN, Null 等掃描會引起。 closed|filtered:(關閉或者被過濾的):無法確定端口是關閉的還是被過濾的主機發(fā)現(xiàn):
-sP :進行ping掃描# nmap -sP 192.168.20.0/24 //打印出對ping掃描做出響應的主機,不做進一步測試(如端口掃描或者操作系統(tǒng)探測)可以用于探測局域網(wǎng)有哪些機器-sn: Ping Scan - disable port scan# nmap -sn 192.168.20.0/24-sA:發(fā)送tcp的ack包進行探測,可以探測主機是否存活# nmap -sA 192.168.20.0/24端口掃描:
掃描tcp端口:
# nmap 192.168.20.215 # nmap 192.168.20.215 -p 1-65535 //區(qū)別在于不加-p 時,顯示的都是已知協(xié)議的端口,對于未知協(xié)議的端口沒顯示 # nmap 192.168.20.215 -p 1-100,27017,27018 //連續(xù)的端口可以使用橫線連起來,端口之間可以使用逗號隔開指定端口范圍使用-p參數(shù),如果不指定要掃描的端口,Nmap默認掃描從1到1024再加上nmap-services列出的端口,假如有的服務不在nmap-services,可能nmap就不會去掃描,這就是明明一些端口已經(jīng)是處于監(jiān)聽狀態(tài),nmap默認沒掃描出來的原因,需要加入-p參數(shù)讓其掃描所有端口。
掃描udp端口:
# nmap -sU 192.168.20.215 //對于udp端口掃描比較慢-sU:表示udp scan , udp端口掃描-Pn:不對目標進行ping探測(不判斷主機是否在線)(直接掃描端口)掃描多個IP用法:
# nmap 192.168.20.215 192.168.20.216 // 中間用空格分開 # nmap 192.168.20.215,216 // 使用逗號分割 # nmap 192.168.20.215-218 // 掃描連續(xù)的ip地址 # nmap 192.168.20.0/24 // 掃描一個子網(wǎng)網(wǎng)段所有IP # nmap -iL ip.txt // 掃描文件里的IP # nmap 192.168.20.215-218 --exclude 192.168.20.217 // 掃描地址段是排除某個IP地址 # nmap 192.168.20.215-218 --exclude 192.168.20.216-217 //掃描時排除多個IP地址,排除連續(xù)的,可以使用橫線連接起來 # nmap 192.168.20.215-218 --exclude 192.168.20.216,192.168.20.217 //掃描時排除多個IP地址,排除分散的,使用逗號隔開 # nmap 192.168.20.215-218 --excludefile ex.txt //掃描多個地址時排除文件里的IP地址端口掃描的高級用法:
Tcp SYN Scan (-sS) //tcp半開放掃描(非3次握手的tcp掃描)優(yōu)點:Nmap發(fā)送SYN包到遠程主機,但是它不會產(chǎn)生任何會話,目標主機幾乎不會把連接記入系統(tǒng)日志。(防止對方判斷為掃描攻擊),掃描速度快,效率高,在工作中使用頻率最高缺點:它需要root/administrator權限執(zhí)行# nmap -sS 192.168.20.215Tcp connect() scan(-sT) //tcp全開放掃描(3次握手方式tcp的掃描)默認的掃描模式,不同于Tcp SYN掃描,Tcp connect()掃描需要完成三次握手,并且要求調(diào)用系統(tǒng)的connect().優(yōu)點:你勿需root權限。普通用戶也可以使用。缺點:這種掃描很容易被檢測到,在目標主機的日志中會記錄大批的連接請求以及錯誤信息,由于它要完成3次握手,效率低,速度慢,建議使用-sS# nmap -sT 192.168.20.215 等同于 # nmap 192.168.20.215Udp scan(-sU) //udp端口的掃描這種掃描技術用來尋找目標主機打開的UDP端口.它不需要發(fā)送任何的SYN包,因為這種技術是針對UDP端口的。UDP掃描發(fā)送UDP數(shù)據(jù)包到目標主機,并等待響應,如果返回ICMP不可達的錯誤消息,說明端口是關閉的,如果得到正確的適當?shù)幕貞?#xff0c;說明端口是開放的.udp端口掃描速度比較慢# nmap -sU 192.168.20.215FIN scan (-sF) //也是tcp的掃描一種,發(fā)送一個FIN標志的數(shù)據(jù)包有時候TcpSYN掃描不是最佳的掃描模式,因為有防火墻的存在.目標主機有時候可能有IDS和IPS系統(tǒng)的存在,防火墻會阻止掉SYN數(shù)據(jù)包。發(fā)送一個設置了FIN標志的數(shù)據(jù)包并不需要完成TCP的握手.和sS掃描效果差不多,比sT速度快# nmap -sF 192.168.20.215版本偵測:
-sV:版本檢測(sV),用來掃描目標主機和端口上運行的軟件的版本
操作系統(tǒng)偵測:
Nmap最重要的特點之一是能夠遠程檢測操作系統(tǒng)和軟件,Nmap的OS檢測技術在滲透測試中用來了解遠程主機的操作系統(tǒng)和軟件是非常有用的,通過獲取的信息你可以知道已知的漏洞。Nmap有一個名為的nmap-OS-DB數(shù)據(jù)庫,該數(shù)據(jù)庫包含超過2600操作系統(tǒng)的信息。 Nmap把TCP和UDP數(shù)據(jù)包發(fā)送到目標機器上,然后檢查結果和數(shù)據(jù)庫對照。
參考鏈接:
https://www.cnblogs.com/nmap/p/6232207.html
https://www.cnblogs.com/hanxiaobei/p/5603491.html
ncat
nc是netcat的簡寫,有著網(wǎng)絡界的瑞士軍刀美譽。因為它短小精悍、功能實用,被設計為一個簡單、可靠的網(wǎng)絡工具。
nc的作用:
- 實現(xiàn)任意TCP/UDP端口的偵聽,nc可以作為server以TCP或UDP方式偵聽指定端口
- 端口的掃描,nc可以作為client發(fā)起TCP或UDP連接
- 機器之間傳輸文件
- 機器之間網(wǎng)絡測速
常用參數(shù):
-l:用于指定nc將處于偵聽模式。指定該參數(shù),則意味著nc被當作server,偵聽并接受連接,而非向其它地址發(fā)起連接。 -s:指定發(fā)送數(shù)據(jù)的源IP地址,適用于多網(wǎng)卡機 -u:指定nc使用UDP協(xié)議,默認為TCP -v:輸出交互或出錯信息,新手調(diào)試時尤為有用 -w:超時秒數(shù),后面跟數(shù)字 -z:表示zero,表示掃描時不發(fā)送任何數(shù)據(jù)組合參數(shù):-zvw用法:
用法一:網(wǎng)絡連通性測試和端口掃描
nc可以作為server端啟動一個tcp的監(jiān)聽:
nc作為server端啟動一個udp的監(jiān)聽:-u
在192.168.20.215機器上啟動一個udp的監(jiān)聽端口 # nc -ul 9999客戶端測試: //udp的端口無法在客戶端使用telnet去測試 # nc -zuvw 2 192.168.20.215 9999 Connection to 192.168.20.215 9999 port [udp/distinct] succeeded!用法二:使用nc傳輸文件和目錄
方法1:傳輸文件演示(先啟動接收命令)
把151機器上的一文件發(fā)送到215機器上 //receiver先偵聽端口,sender向receiver所在機器的該端口發(fā)送數(shù)據(jù)。
215機器接收完畢,它會自動退出監(jiān)聽,文件大小和A機器一樣,md5值也一樣
# ll system_optimization.sh -rw-r--r-- 1 root root 4176 Apr 21 16:20 system_optimization.sh # ll test.sh -rw-r--r--. 1 root root 4176 4月 9 13:20 test.sh方法2:傳輸文件演示(先啟動發(fā)送命令)
1.先在151機器上,啟動發(fā)送文件命令 # nc -l 9998 < php-5.6.35.tar.gz //通過本地的9998端口發(fā)送php-5.6.35.tar.gz文件2.在215機器上接受文件 # nc 192.168.20.151 9998 > php.tar.gz方法3:傳輸目錄演示(方法發(fā)送文件類似)
1.在215機器上啟動監(jiān)聽 # nc -l 9999 | tar zxf - //傳輸目錄需要結合其它的命令,比如tar2.151機器上打包文件發(fā)送給215機器 # tar zcf - * | nc 192.168.20.215 9999 //管道前面表示把當前目錄的所有文件打包為 - ,然后使用nc發(fā)送給215機器用法三:測試網(wǎng)速
測試網(wǎng)速其實利用了傳輸文件的原理,就是把來自一臺機器的/dev/zero 發(fā)送給另一臺機器的/dev/null
就是把一臺機器的無限個0,傳輸給另一個機器的空設備上,然后新開一個窗口使用dstat命令監(jiān)測網(wǎng)速
在復制的窗口上使用dstat命令查看當前網(wǎng)速,dstat命令比較直觀,它可以查看當前cpu,磁盤,網(wǎng)絡,內(nèi)存頁和系統(tǒng)的一些當前狀態(tài)指標。
我們只需要看下面net/total這2列即可,recv是receive的縮寫,表示接收的意思,send是發(fā)送數(shù)據(jù),另外注意數(shù)字后面的單位B,KB,MB。
參考鏈接:https://www.cnblogs.com/nmap/p/6148306.html
防攻擊介紹
常見的攻擊方法:
- SYN攻擊:利用TCP協(xié)議缺陷進行,導致系統(tǒng)服務停止響應,網(wǎng)絡帶寬跑滿或者響應緩慢
- DDOS攻擊:分布式訪問拒絕服務攻擊
- 惡意掃描
syn攻擊示意圖:
SYN類型DDOS攻擊預防:
linux下其他預防策略:
策略1.關閉ICMP協(xié)議請求 sysctl -w net.ipv4.icmp_echo_ignore_all=1策略2.通過iptables防止掃描 iptables -A FORWARD -p tcp -syn -m limit --limit 1/s --limit-burst 5 -j ACCEPT iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT總結
以上是生活随笔為你收集整理的常用linux系统扫描命令汇总的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: simulink中mpc模块怎么使用_s
- 下一篇: e431装linux系统恢复,联想E43