2015-12-16 37 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地址,因此項目已關閉,感謝您的幫助。