一、网络链接分析工具:
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