3.2 生成动态路由轨迹图 scapy

3.3 生成动态路由轨迹图 scapy

scapy是一个强大的交互式数据包处理程序,它能够对数据包进行伪造或解包,包括发送数据包,包嗅探,应答,和反馈匹配等功能,可以用在处理网络扫描,路由跟踪,服务探测,单元测试等方面,本节主要针对scapy的路由跟踪功能,实现TCP协议方式对服务可用性的探测,比如常用的80(HTTP)与443(HTTPS)服务,并生成美观的路由线路图报表,让管理员清晰了解探测点到目标主机的服务状态,骨干路由节点所处的IDC位置,经过的经营商路由节点等信息,下面详细进行介绍

安装:
scapy模板需要tcpdump程序支持,生成报表需要graphviz,ImageMagick图像处理包支持

[root@mankel ~] yum -y install tcpdump  graphviz ImageMagick 
[root@mankel ~] pip3 install scapy

3.3.1 模块常用方法说明
scapy模块提供了众多网络数据包操作的方法,包括发包send(),SYN\ACK扫描,嗅探sniff(),抓包wrpcap(),TCP路由跟踪traceroute()等,本节主要关注服务监控内容接下来详细介绍traceroute()方法,其具体定义如下:
traceroute(target.dport=80,minttl=1,maxttl=30,sport=,14=None,filter=None,timeout=2,verbose=None,**kargs)
该方法实现TCP跟踪路由功能.关键参数说明如下:

1).target:跟踪的目标对象,可以是域名或IP,类型为列表,支持同时指定多个目标,如[“www.qq.com”,“www.baidu.com”,“www.google.com.hk”]
2).dport: 目标端口,类型为列表,支持同时指定多个端口,如[80,443];
3).minttl:指定路由跟踪的最小跳数(节点数);
4).maxttl:指定路由跟踪的最大跳数(节点数);

3.3.2 实践: 实现TCP探测目标服务路由轨迹
简介:在这次实践中,通过scapy的traceroute()方法实现探测机到目标服务器的路由轨迹,整个过程的原理见图3-14,首先通过探测机以SYN方式进行TCP服务扫描,同时启动tcpdump进行抓包,捕获扫描过程经过的所有路有点,再通过graph()方法进行路由IP轨迹绘制,中间调用ASN映射查询IP地理信息并生成SVG流程文档,最后使用Imagemagick工具将svg格式转换成PNG,流程结束
在这里插入图片描述

1.本次实践通过traceroute()方法实现路由的跟踪,跟踪结果动态生成图片格式。功能实现源码如下:

#!/usr/bin/python3
import os,sys,time,subprocess
import warnings,logging
warnings.filterwarnings("ignore",category=DeprecationWarning) #屏蔽scapy无用告警信息
logging.getLogger("scapy.runtime").setLevel(logging.ERROR) #屏蔽模块IPv6多余告警
from scapy.all import traceroute

domains = input('Please input one or more IP/domain: ') #接受输入的域名或IP
target = domains.split(' ')
dport = [80] #扫描的端口列表

if len(target) >= 1 and target[0]!='':
        res,unans = traceroute(target,dport=dport,retry=-2) #启动路由跟踪
        res.graph(target="> test.svg") #生成svg矢量图形
        time.sleep(1)
        subprocess.Popen("/usr/bin/convert test.svg test.png", shell=True) #svg转png格式
else:
        print("IP/domain number of errors,exit")

2.代码运行结果见图3-15, "_"表示路由节点无回应或超时; "11"表示扫描的指定服务无回应;"SA"表示扫描的指定服务有回应,一般是最后一个主机IP
在这里插入图片描述

3.生成的路由轨迹图见图3-16(仅局部),"_"将使用unk*单元表示,重点路由节点将通过ASN获取所处的运营商或IDC位置,如GuagZhou IDC Network,意思是IDC位置在广州
在这里插入图片描述

4.通过路由轨迹图,我们可以非常清晰地看到他呢点到目标节点的路由走向,运营商时常会做路由节点分流,不排除会造成选择的路由线路不是最优的,该视图可以帮助我们了解到这个信息

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值