2015-12-16 3 views
0

Я создаю сервер журнала, который записывает входящие и исходящие соединения (любого типа) в TXT-файл. все работает нормально, а вот мой код:Strip TZSP Encapsulation - прямой трафик

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 зеркало трафика через технику, называемую ЦСП Sniff, который инкапсулирует пакет с IP-адрес маршрутизатора и MAC-адреса маршрутизатора IP MAC-адреса назначения ПК-получателя, я выполнял поиск, и я не мог найти подходящего решения, но я прочитал, что вам нужно удалить первые 5 байтов пакета.

Есть ли способ снять инкапсуляцию TZSP в реальном времени (без сохранения PCAP), не могли бы вы объяснить процесс, потому что я новичок в этом?

пожалуйста, если у вас возникнут вопросы, спросите меня, я не очень хорошо объясняю вещи.

Спасибо!

ответ

0

После изучения двоичного файла заголовка пакета TZSP представляется, что TZSP-пакет оригинального MAC-адреса после добавления его собственного, поэтому проект был закрыт благодаря вам.

Смежные вопросы