使用UDP协议进行路由跟踪
除了使用 TCP 包来进行路由跟踪,还可以 UDP 包实现。它会向目标主机发送 UDP 包,当到达经过的路由器时,TTL 值为 0,还没有找到目标主机,经过的路由器将返回超时消息的 ICMP 数据包,如果成功到达主机,将不会返回任何响应信息。
netwox 工具提供了编号为 61 和 62 的模块,用来构造 UDP 包进行路由跟踪。
【实例】主机 192.168.12.106 向主机 125.39.52.26 发送 UDP 包,进行路由跟踪,判断经过哪些路由。
(1)构造 UDP 包进行路由跟踪,执行命令如下:
2) 为了验证构建的 UDP 包和得到的响应信息,进行抓包查看,如图所示。
从上图中可以看出:
3) 在进行路由跟踪时为了防止被发现,可以伪造源 IP 地址和 MAC 地址。设置源 IP 地址为 192.168.12.150,MAC 地址为 aa:bb:cc:dd:11:22,进行路由跟踪,执行命令如下:
4) 通过抓包验证伪造地址的 UDP 包,如图所示。
其中,第 8 个数据包的源 IP 地址为 192.168.59.150(伪造的),目标 IP 地址为 125.39.52.26(目标主机),该数据包就是伪造的 UDP 包。
在 Ethernet II 部分中可以看到源 MAC 地址为 aa:bb:cc:dd:11:22(伪造的)。第 9 个数据包为经过的路由 183.185.164.1 返回的 ICMP 包,返回的地址为伪造的地址 192.168.59.150。
netwox 工具提供了编号为 61 和 62 的模块,用来构造 UDP 包进行路由跟踪。
【实例】主机 192.168.12.106 向主机 125.39.52.26 发送 UDP 包,进行路由跟踪,判断经过哪些路由。
(1)构造 UDP 包进行路由跟踪,执行命令如下:
root@kali:~# netwox 61 -i 125.39.52.26
输出信息如下:
1 : 192.168.12.1
2 : 192.168.0.1
3 : 183.185.164.1
4 : 218.26.28.157
5 : 218.26.29.217
6 : 219.158.15.214
8 : 125.39.79.166
2) 为了验证构建的 UDP 包和得到的响应信息,进行抓包查看,如图所示。
- 第 1 个数据包的源 IP 地址为 192.168.12.106,目标 IP 地址为 125.39.52.26,是构造的 UDP 包。
- 第2个数据包源IP地址为 192.168.12.1,目标 IP 地址为 192.168.12.106,该数据包是第一个网关返回的超时消息的 ICMP 数据包,表示还没有达到目标主机 125.39.52.26。
- 第3个数据包为主机 192.168.12.106 继续向目标主机 125.39.52.26 发送的 UDP 包。
- 第4个数据包为第二个网关返回的超时消息的ICMP数据包。
3) 在进行路由跟踪时为了防止被发现,可以伪造源 IP 地址和 MAC 地址。设置源 IP 地址为 192.168.12.150,MAC 地址为 aa:bb:cc:dd:11:22,进行路由跟踪,执行命令如下:
root@kali:~# netwox 62 -i 125.39.52.26 -E aa:bb:cc:dd:11:22 -I 192.168.12.150 -e ec:17:2f:46:70:ba
输出信息如下:
1 : 192.168.12.1
2 : 192.168.0.1
3 : 183.185.164.1
4 : 218.26.28.157
5 : 218.26.29.217
6 : 219.158.15.214
8 : 125.39.79.162
4) 通过抓包验证伪造地址的 UDP 包,如图所示。
在 Ethernet II 部分中可以看到源 MAC 地址为 aa:bb:cc:dd:11:22(伪造的)。第 9 个数据包为经过的路由 183.185.164.1 返回的 ICMP 包,返回的地址为伪造的地址 192.168.59.150。
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算