一、網絡鏈接分析工具:
1、netstat命令
netstat 選項
常用選項:
-t # --tcp,顯示TCP協議鏈接
-u # --udp,顯示UDP協議連接
-w # --raw,raw socket裸套接字鏈接
-l # --listening,顯示偵聽狀態的連接
-a # --all,顯示所有狀態的連接
-n # --numeric,不反解,以數字形式顯示端口
-e # --extend,顯示擴展格式信息(user、inode)
-p # --program,顯示相關進程及PID
-r # --route,顯示內核路由表
-i # --interface,顯示所有接口統計數據
-I 指定接口 # 顯示指定接口統計數據
常用組合:
-tan
-uan
-tnl
-tlnp
示例:
[root@localhost ~]# netstat -tanp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1333/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1628/master
tcp 0 52 192.168.254.136:22 192.168.254.1:4935 ESTABLISHED 1856/sshd: root@pts
tcp6 0 0 :::22 :::* LISTEN 1333/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1628/master
[root@localhost ~]# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default gateway 0.0.0.0 UG 0 0 0 ens33
default gateway 0.0.0.0 UG 0 0 0 ens33
192.168.254.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
[root@localhost ~]# netstat -Iens33
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33 1500 22949 0 0 0 4708 0 0 0 BMRU
[root@localhost ~]# netstat -i
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33 1500 22971 0 0 0 4721 0 0 0 BMRU
lo 65536 2 0 0 0 2 0 0 0 LRU
2、ss命令
ss 選項
常用選項:
-t # 查看tcp協議相關鏈接
-u # 查看udp協議相關鏈接
-w # 查看裸套接字相關鏈接
-x # 查看unix sovk相關鏈接
-l # 查看listening偵聽狀態相關
-a # 顯示所有狀態鏈接
-n # 不返解,數值格式顯示接口
-p # 顯示相關進程PID
-e # 顯示連接的擴展信息
-m # 顯示連接佔用的內存
-o # 顯示計時器信息
dport = 目的端口號 # 顯示目的端口號相關鏈接
sport = 源端口號 # 顯示源端口號相關鏈接
示例:
[root@localhost ~]# ss sport = 22 -tanp
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:* users:(("sshd",pid=1333,fd=3))
ESTAB 0 0 192.168.254.136:22 192.168.254.1:4935 users:(("sshd",pid=1856,fd=3))
LISTEN 0 128 :::22 :::* users:(("sshd",pid=1333,fd=4))
二、nmap:網絡嗅探工具
作用:
1、掃描網絡中的主機端口,嗅探其提供的服務
2、探測網絡中的主機在線情況
3、探測網絡中的主機的操作系統類型
4、探測達到主機經過的路由
常見網絡端口服務:
服務 端口號
HTTP 80
HTTPS 443
Telnet 23
FTP 21
SSH(安全登錄)、SCP(文件傳輸)、端口重定向 22
SMTP 25
POP3 110
WebLogic 7001
TOMCAT 8080
WIN2003遠程登錄 3389
Oracle數據庫 1521
MS SQL* SEVER數據庫sever 1433
MySQL 數據庫sever 3306
Redis 6379
zookeeper/kafka 2181
clickhouse 9000/8123
nmap命令:
nmap 指定IP或域名 選項
-pn-m # 掃描指定IP的n~m範圍的端口
-pn,m # 掃描指定IP的指定端口
-sT # 指定爲TCP端口掃描
[-sS|-sF|-sX|-sN] # TCP的半開放掃描,即SYN掃描,
效率高於-sT,並且能躲過一些防火牆的阻撓
-sU # 指定爲UDP掃描
-Pn # 不進行平測試,直接進行掃描
-e 網卡 -S 僞IP -Pn # 以指定網卡並以僞IP進行掃描
示例:
[root@bcc /]# nmap 192.168.207.135 -e eno16777736 -S 192.168.1.199 -Pn
-iL /path/to/file # 從指定文件或許需要掃描的IP
-A # 嗅探主機的操作系統
-O # 嗅探主機的操作系統
-sP # Ping掃描指定網段在線的主機
不做進一步端口掃描
-sN # Ping掃描指定網段在線的主機
不做進一步端口掃描
-sA # 使用TCP的ack進行在線主機探測
對端禁Ping任然能夠探測
注意:指定IP可以爲網段如下:
192.168.207.10-199
192.168.207.0/24
三、tcpdump抓包工具的使用
1、tcpdump的源碼安裝
(1、安裝必要的庫
yum install -y flex
yum install -y bison
yum install -y gcc
(2、到http://www.tcpdump.org下載tcpdump和libpcap程序包
[root@localhost tcpdump]# wget http://www.tcpdump.org/release/tcpdump-4.9.2.tar.gz
[root@localhost tcpdump]# wget http://www.tcpdump.org/release/libpcap-1.8.1.tar.gz
[root@localhost tcpdump]# ls
libpcap-1.8.1.tar.gz tcpdump-4.9.2.tar.gz
[root@localhost tcpdump]# tar xf libpcap-1.8.1.tar.gz
[root@localhost tcpdump]# tar xf tcpdump-4.9.2.tar.gz
[root@localhost tcpdump]# ls
libpcap-1.8.1 libpcap-1.8.1.tar.gz tcpdump-4.9.2 tcpdump-4.9.2.tar.gz
(3、源碼安裝tcpdump包和libpcap包
[root@localhost tcpdump]#cd libpcap-1.8.1
[root@localhost tcpdump]#./configure
[root@localhost tcpdump]#make & make install
[root@localhost tcpdump]#cd tcpdump-4.9.2
[root@localhost tcpdump]#./configure
[root@localhost tcpdump]#make & make install
2、tcpdump命令
tcpdump 選項 指定網絡接口
-i 指定接口 port 指定端口 # 抓取指定接口,指定端口的數據包(端口可以不指定)
-c n # 指定抓取n個數據包
-t # 不顯示時間戳
-w 指定文件 # 將數據包儲存到指定文件(供包分析器使用)
四、wireshark包分析器的使用
實際生產環境中可以將tcpdump報文放到windows環境中使用wireshark分析
安裝wireshark:
yum install -y gtk2
yum install -y wireshark #tshark命令包
yum install -y wireshark-gnome #wireshark命令包
tshark命令:
tshark 選項 指定網口
常用選項:
-s 512 # 只抓取包的前512字節
-i 指定接口 # 抓取指定接口的數據包
-n # 禁止反解析
-f 'tcp dst port 80' # 只捕捉tcp協議及目標端口爲80的數據包
-f 'tcp src port 80' # 只捕捉tcp協議及源端口爲80的數據包
-R ‘http.host and http.request.uri’ #過濾出http.host and http.request.uri
-I # 輸出到標準輸出
示例:
[root@localhost ~]# tshark -i ens33 -f 'tcp src port 22'
Running as user "root" and group "root". This could be dangerous.
Capturing on 'ens33'
1 0.000000000 192.168.254.136 -> 192.168.254.1 SSH 106 Encrypted response packet len=52
2 0.520190106 192.168.254.136 -> 192.168.254.1 SSH 202 Encrypted response packet len=148
3 1.023533404 192.168.254.136 -> 192.168.254.1 SSH 202 Encrypted response packet len=148
4 1.526818261 192.168.254.136 -> 192.168.254.1 SSH 202 Encrypted response packet len=148
5 2.032567925 192.168.254.136 -> 192.168.254.1 SSH 202 Encrypted response packet len=148