天天看點

nmap掃描與tcpdump抓包工具

nmap軟體是一款強大的掃描工具

nmap的基本用法:

  • namp 【掃描類型】 【選項】 【掃描目标…】

常用的掃描類型:

  • sS :TCP,SYN掃描(半開)
  • sT : TCP連接配接掃描(全開 )
  • sU : UDP掃描
  • sP: ICMP掃描
  • A :目标系統全面分析
[[email protected] ~]# nmap -sP 192.168.4.12  #測試通信(可以是多個主機,中間逗号間隔)
Starting Nmap 6.40 ( http://nmap.org ) at 2020-07-16 21:04 CST
Nmap scan report for node2 (192.168.4.12)
Host is up (0.00028s latency).
MAC Address: 52:54:00:31:27:74 (QEMU Virtual NIC)
Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds  #(1 host up)表示可以ping通
           
[[email protected] ~]# nmap 127.0.0.1  #掃描本機開了什麼端口,預設TCP掃描
Starting Nmap 6.40 ( http://nmap.org ) at 2020-07-16 21:22 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000014s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
3306/tcp open  mysql
Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds
           
[[email protected] ~]# nmap  -p 1-65535 192.168.4.12  # -p選項掃描指定端口,一個或多個
Starting Nmap 6.40 ( http://nmap.org ) at 2020-07-16 22:01 CST
Nmap scan report for node2 (192.168.4.12)
Host is up (0.00030s latency).
Not shown: 65532 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
6789/tcp open  ibm-db2-admin
6800/tcp open  unknown
MAC Address: 52:54:00:31:27:74 (QEMU Virtual NIC)
Nmap done: 1 IP address (1 host up) scanned in 1.41 seconds
           

[[email protected] ~]# nmap -sT 192.168.4.12 #全開掃描

全開掃描表示執行完三次握手

[[email protected] ~]# nmap -sS 192.168.4.12 #半開掃描

半開掃描意思就是,用戶端向伺服器請求連接配接,當伺服器給與回應時,用戶端又不響應伺服器。這就是典型的DDOS攻擊
nmap --help 和 man namp 可以查找幫助

編寫nmap腳本測試線上主機

[[email protected] ~]# cat ping.sh 
#!/bin/bash
yum -y install nmap > /dev/null
read -p "輸入整個網段例如104.233.105.0/24:" ip
nmap -n -sP $ip  > /root/ping.test  	# -n表示不做主機名解析
num=$(cat /root/ping.test | tail -1 | awk '{print $3}')
setup=$(cat /root/ping.test | tail -1 | awk '{print $6}')
echo "掃描到$num個IP"
echo "有$setup個可以通信"
rm -rf /root/ping.test
           

tcpdump抓包

nmap掃描與tcpdump抓包工具

示例:

[[email protected] ~]# tcpdump -i eth0  #抓取經過eth0上的資料包
[[email protected] ~]# tcpdump -i eth0 -c 2   # -c 2 表示抓隻抓兩個包
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes  #EN10MB表示網卡速度
23:11:10.618249 IP host50.ssh > 192.168.4.254.51990: Flags [P.], seq 4243925570:4243925758, ack 3202191461, win 295, options [nop,nop,TS val 45484860 ecr 45741396], length 188
23:11:10.623977 IP 192.168.4.254.51990 > host50.ssh: Flags [.], ack 188, win 1424, options [nop,nop,TS val 45741496 ecr 45484860], length 0 
[[email protected] ~]# tcpdump  -i eth0 -c 2 -w a.test  # -w 将抓到的資訊寫入檔案
[[email protected] ~]# tcpdump  -r a.test  #-r 讀取抓獲的資料包
           
nmap掃描與tcpdump抓包工具

示例:

**抓取指定協定的資料包**
[[email protected] ~]# tcpdump  -i eth0 icmp  #抓取經過eth0的icmp協定的資料包
另外打開一個虛拟機ping host50主機
[[email protected] ~]# ping -c 1 192.168.4.50

這時host 50主機就可以抓到相應的ping包
[[email protected] ~]# tcpdump  -i eth0 icmp
tcpdump: verbose output suppressed, use -v or -vv for full pro	tocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
23:27:06.465446 IP node2 > host50: ICMP echo request, id 7227, seq 1, length 64   #node2為源位址,host50為目标位址
23:27:06.465489 IP host50 > node2: ICMP echo reply, id 7227, seq 1, length 64
           
tcpdump	-i 網卡名	什麼協定	什麼端口(端口範圍)   and/or	抓源/目标	-c 抓幾次	-w 寫到哪
tcpdump -i eth0 tcp port 80
tcpdump -i eth0 tcp port 80 and host 192.168.4.5
tcpdump -i eth0 icmp and host 192.168.4.5
tcpdump -i eth0 tcp port 21  or port 80
tcpdump -i eth0 tcp portrange 21-110
tcpdump -i eth0 tcp port 21 and src 192.168.4.5
tcpdump -i eth0 tcp port 80 and net 192.168.4.0/24
tcpdump  -A -w ftp.cap tcp port 21  and host 192.168.4.5  抓取通路FTP服務的包,儲存位cap檔案
tcpdump -i eth0 tcp port 21 and host 
           

繼續閱讀