• 在线流量分析


    安装 hexdump

    pip3 install hexdump
    

    正文

    Telnet是典型的交互式流量,要分析Telnet流量,需要把整个TCP流中的所有数据包进行拼接,最后对拼接后的数据进行Decode分析!

    Telent_Monitor.py 代码

    import logging
    logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
    from scapy.all import *
    
    import re
    import hexdump
    
    def qythexdump(src,length = 16):#每16个字节被提取出来,进行16进制的decode
    	for i in range(0,len(src),length):#range(start, stop[, step])
    		s = src[i:i+length]
    		hex_result = hexdump.hexdump(s)
    
    qyt_string = b''
    
    def telnet_monitor_callback(pkt):
    	global qyt_string
    	try:
    		qyt_string = qyt_string + pkt.getlayer(Raw).fields['load']#提取Telnet中的数据,并且把他们拼在一起
    	except Exception as e:#非ascii时候可能decode失败
    		pass
    
    PTKS = sniff(prn=telnet_monitor_callback, store = 1, timeout = 10, iface = "以太网")#iface为上网的网口名称,根据自己实际情况修改
    wrpcap("telnet.cap",PTKS)
    qythexdump(qyt_string)#显示输出
    
    
    # filter = "tcp port 23 and ip host 202.100.1.2"
    
    

    解释

    以上代码是获取当前网口以太网 网络信息10s数据报信息,并且保存在“telnet.cap” 文件中
    同时把可以解码的进行解码打印在终端显示

    显示打印结果和wireshark形式差不多,ASCII码和decode之后的文本

    下面贴张wireshark 探取的网络流量对比看下

    当然,可以在sniff中添加filter,以过滤更加符合心意的数据报。例如,在sniff 中加入filter = "ip host 172.17.168.71" ,可以只看到该ip相关的数据

    总结

    scapy中filter 格式遵循的是tcpdump 过滤的格式:

    1. 如果仅仅是想过滤出IP层的特定IP的数据,需要使用ip host X.X.X.X或ip src X.X.X.X或ip dst X.X.X.X
    2. 如果仅仅是想过滤出ARP或RARP协议的IP数据包时,需要使用arp host X.X.X.X 或 rarp host X.X.X.X
    3. 更多帮助:man pcap-filter

    参考

    https://www.youtube.com/watch?v=tKzlfiCIwjI

    https://blog.csdn.net/wuzhimang/article/details/54178598

  • 相关阅读:
    Python的包管理工具Pip
    C语言移位运算符
    malloc函数具体解释
    HDU
    Java中Scanner的使用方法
    DOS call 中的%cd%,当前文件夹演示
    没有找到MSVCR100.dll解决方法
    什么是响应式表格(响应式表格和普通表格的区别)
    Redis和Memcache和MongoDB简介及区别分析(整理)
    GIT将本地项目上传到Github(两种简单、方便的方法)
  • 原文地址:https://www.cnblogs.com/maskerk/p/10014822.html
Copyright © 2020-2023  润新知