2015-12-16 29 views
0

我正在创建一个日志服务器,将传入和传出连接(任何类型)写入TXT文件。一切工作正常,这里是我的代码:剥离TZSP封装 - 实时流量

from scapy.all import * 
import datetime 
from threading import Thread 
from Queue import Queue, Empty 
from scapy.layers.dns import DNS, DNSQR 
firstime = 0 
times = time.time()+86400 
def print_summary(pkt): 
    global firstime 
    global times 
    if IP in pkt: 
     ip_src=pkt[IP].src 
     ip_dst=pkt[IP].dst 
    else: 
     ip_src="Null" 
     ip_dst="Null" 
     mac_src="Null" 
     mac_dst="Null"  
    if TCP in pkt: 
     tcp_sport=pkt[TCP].sport 
     tcp_dport=pkt[TCP].dport 
    else: 
     tcp_sport="Null" 
     tcp_dport="Null" 
    if DNSQR in pkt: 
     dns = pkt.qd.qname 
    else: 
     dns = "NULL" 
    if Ether in pkt: 
     mac_src = pkt[Ether].src 
     mac_dst = pkt[Ether].dst 
    else: 
     mac_src = "Null" 
     mac_dst = "Null" 
    Clog = " IP src: " + str(ip_src) +" ,MAC src: " + str(mac_src) + " , IP dst: " + str(ip_dst) +" ,MAC dst: "+str(mac_dst)+" ,TCP sport: " + str(tcp_sport) + ",TCP dport: " + str(tcp_dport) +", Time: " + str(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(pkt.time))) + " Dns: "+dns 
    if(times > pkt.time): 
     if(firstime == 0): 
      f = open("/root/Desktop/LOG-SERVER/"+time.strftime('%Y-%m-%d %H:%M:', time.localtime(time.time()))+".txt",'a') 
      f.write(Clog+"\n") 
      f.close()  
     else: 
      f.write(Clog+"\n") 
      f.close() 
    else: 
     f = open("/root/Desktop/LOG-SERVER/"+time.strftime('%Y-%m-%d %H:%M:', time.localtime(time.time()))+".txt",'a') 
     f.write(Clog+"\n") 
     f.close()  
     times=times+86400 
def startsnif(): 
    sniff(prn=print_summary, store=0) 
    # you can filter with something like that 
    #if ((pkt[IP].src == "192.168.0.1") or (pkt[IP].dst == "192.168.0.1")): 
    # print("!") 
#def writing(log,indexp): 
    #if(indexp == 0): 
     #f = open("/root/Desktop/LOG-SERVER/"+time.strftime('%Y-%m-%d %H:%M:', time.localtime(time.time()))+".txt",'a') 
     #f.write(log+"\n") 
     #f.close() 
    #else: 
     #f.write(log+"\n") 
     #f.close() 

thread.start_new_thread(startsnif,()); 
while 1: 
     pass 
# or it possible to filter with filter parameter...! 
#sniff(filter="ip and host 192.168.0.1",prn=print_summary) 

输出为:

IP Src: 192.168.10.1 MAC Src: 54:55:12:FC:2D:CA IP Dst:192.168.10.15 MAC Src: 54:55:12:FC:1F:3A TCP sport: 80 TCP dport: 51233 Time:2015-12-16 13:25:11 DNS:Null(IF available DNS Name) 

的问题是,该公司得到了mikrotics,mikrotics通过一个叫做TZSP嗅探技术,它封装与数据包的流量镜像路由器的IP和目标PC的目标PC MAC的路由器IP的MAC,我正在搜索,我找不到任何合适的解决方案,但是我读到了你需要去掉数据包的前5个字节。

有没有办法剥离TZSP封装直播(不保存PCAP),请你解释一下这个过程,因为我是新手?

如果您有任何问题,请给我解释。

谢谢!

回答

0

在检查TZSP数据包标头的二进制文件后,看起来TZSP在添加它自己的文件后删除了原始MAC地址,因此项目已关闭,感谢您的帮助。