Anti-armenia.ORG - Forumlar - PunCap Network Forensics Tool [Priv8]



Istifadəçi
    2015-07-18 11:22 GMT                 

PuN!Sh3r



Gold
Mesaj Sayı : 308
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   35  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər : W00t W00t
Ölkə :
Məslək : Cyber Security Specialist
Yaş :
Mesaj :

Mövzunu Paylaş!


Salam dostlar. Bu gün sizə Pythonda yazdığım network forensics toolu verəcəm. Bu tool şəbəkəni verilən vaxt ərzində (İstəyə uyğun artırıla bilər) aktiv olaraq sniff edib paketləri analiz edir. Nəticə olaraq Ümumi paket sayı, hər İP nin hansı protokoldan nə qədər paket göndərdiyini və hansı İP source(mənbə) portdan hansı İP yə destinition (remote) porta nə qədər paket göndərdiyini görə bilərsiz. Bu şəbəkədə hansı clientların şəbəkə resursundan nə qədər istifadə etdiyini, malware(zərərli yazılım) analizləri üçün və s məqsədlər üçün istifadə edə bilərsiz.Sual gələ bilər ki, bəs wiresharkdan fərqi nədir? Fərq odur ki, wireshark bütün paketləri capture etsədə analiz etmək həddindən artıq əziyətlidi spesifik tasklar üçün (Hətta filterindən istifadə etsək belə).
Qeyd: bu tool Ubuntu 15.0 da test olunub. Digər *NİX tipli OS lərdə də işləyəcək. Əsas olan root consoledan ya da sudo ilə çalışdırın. Raw packetləri capture edəcək.
Kod:
sudo python sniff.py -t 5

Yuxarıdakı 5 dəq ərzində sniff edəcək.
Qeyd:Əgər aşağıdakı source kodu copy edibsizsə və İntend Erroru verirsə pastebindən copy edin. Pythonda Boşluqlar həyati əhəmiyyət daşıyır və bunu post edərkən seditio onu corrupt edə bilər.

http://pastebin.com/nBtvQLHf

Görüntülərə baxa bilərsiz:

http://s019.radikal.ru/i640/1507/b0/549cfe931c4a.jpg

http://s018.radikal.ru/i500/1507/f1/b2286c460bc6.jpg


Kod:
import socket,sys
import time
from struct import *
from collections import OrderedDict
import os
import optparse
#define ETH_P_ALL    0x0003

parser = optparse.OptionParser("usage: %prog -t <sniff etmek ucun vaxt>")
parser.add_option('-t','--time',dest='usertime',type='int', help='Sebekeni sniff etmek ucun vaxt')
(options,args) = parser.parse_args()

if(options.usertime == None):
print parser.usage
sys.exit(0)


timeforsniff=options.usertime


def eth_addr (a) :
    b = "%.2x:%.2x:%.2x:%.2x:%.2x:%.2x" % (ord(a[0]) , ord(a[1]) , ord(a[2]), ord(a[3]), ord(a[4]) , ord(a[5]))
    return b

def time_diff(outside,vaxt=5):
    netice = (time.time()-int(outside))/60
    if(netice>=vaxt):
        return True
 
if(os.name=='nt'):
    print "[*]Windows OS desteklemir"
    sys.exit()

try:
    s = socket.socket( socket.AF_PACKET , socket.SOCK_RAW , socket.ntohs(0x0003))
except socket.error , msg:
    print '[*]Socket yaranmadi! Error Code : ' + str(msg[0]) + ' Error Message ' + msg[1]
    sys.exit()
except AttributeError:
    print "[*]Windows OS de AF_PACKET islemir."
    sys.exit()
 
now = time.time()
protocol_numb = {"1":"ICMP","6":"TCP","17":"UDP"}
#butun_paketler = {"ICMP":{},"TCP":{},"UDP":{}}
butun_paketler = OrderedDict([("ICMP",OrderedDict([])),("TCP",OrderedDict([])),("UDP",OrderedDict([]))])

print "-"*55
print "PunCap Packet Collector v1"
print "http://anti-armenia.org \n(c) 2015"
print "-"*55
print "Paketler capture olunur..."
while True:
    if(time_diff(now,timeforsniff)):
        break
     
     
    packet = s.recvfrom(65565)

    packet = packet[0]
    eth_length = 14
 
    eth_header = packet[:eth_length]
    eth = unpack('!6s6sH' , eth_header)
    eth_protocol = socket.ntohs(eth[2])
    dest_mac = eth_addr(packet[0:6])
    source_mac = eth_addr(packet[6:12])

    if eth_protocol == 8 :
        ip_header = packet[eth_length:20+eth_length]
     
        iph = unpack('!BBHHHBBH4s4s' , ip_header)

        version_ihl = iph[0]
        version = version_ihl >> 4
        ihl = version_ihl & 0xF

        iph_length = ihl * 4
        protocol = iph[6]
        if(str(iph[6]) not in protocol_numb.keys()):
            protocol_name = str(iph[6])
        else:
            protocol_name = protocol_numb[str(iph[6])]
        s_addr = socket.inet_ntoa(iph[8]);
        d_addr = socket.inet_ntoa(iph[9]);
        timestamp = time.time();
        elave=None
     
     
        #TCP protocol
        if protocol == 6 :
            t = iph_length + eth_length
            tcp_header = packet[t:t+20]
            tcph = unpack('!HHLLBBHHH' , tcp_header)
            source_port = tcph[0]
            dest_port = tcph[1];
            if(str(s_addr) not in butun_paketler['TCP']):
                elave = OrderedDict([("Source_Mac",str(source_mac)),("Dest_Mac",str(dest_mac)),("Source_Port",str(source_port)),("Dest_Port",str(dest_port)),("Source_IP",str(s_addr)),("Dest_IP",str(d_addr)),("TimeStamp",str(int(timestamp)))])
                #butun_paketler["TCP"][str(s_addr)] = elave;
                butun_paketler["TCP"][str(s_addr)] = OrderedDict([]);
                butun_paketler["TCP"][str(s_addr)]["0"] = elave
            else:
                all_key = butun_paketler['TCP'][str(s_addr)].keys();
                last = all_key[len(butun_paketler['TCP'][str(s_addr)].keys())-1]
                reqem = int(last)+1
                elave = OrderedDict([("Source_Mac",str(source_mac)),("Dest_Mac",str(dest_mac)),("Source_Port",str(source_port)),("Dest_Port",str(dest_port)),("Source_IP",str(s_addr)),("Dest_IP",str(d_addr)),("TimeStamp",str(int(timestamp)))])
                butun_paketler["TCP"][str(s_addr)][str(reqem)] = elave;
                 

        #ICMP Packets
        elif protocol == 1 :
            u = iph_length + eth_length
            icmph_length = 4
            icmp_header = packet[u:u+4]
         
            icmph = unpack('!BBH' , icmp_header)
            icmp_type = icmph[0]
            code = icmph[1]
         
            if(str(s_addr) not in butun_paketler['ICMP']):
                elave = OrderedDict([("Source_Mac",str(source_mac)),("Dest_Mac",str(dest_mac)),("ICMP_TYPE",str(icmp_type)),("ICMP_CODE",str(code)),("Source_IP",str(s_addr)),("Dest_IP",str(d_addr)),("TimeStamp",str(int(timestamp)))])
               
                #butun_paketler["ICMP"][str(s_addr)] = elave;
                butun_paketler["ICMP"][str(s_addr)] = OrderedDict([]);
                butun_paketler["ICMP"][str(s_addr)]["0"] = elave
            else:
                all_key = butun_paketler['ICMP'][str(s_addr)].keys();
                last = all_key[len(butun_paketler['ICMP'][str(s_addr)].keys())-1]
                reqem = int(last)+1
                elave = OrderedDict([("Source_Mac",str(source_mac)),("Dest_Mac",str(dest_mac)),("ICMP_TYPE",str(icmp_type)),("ICMP_CODE",str(code)),("Source_IP",str(s_addr)),("Dest_IP",str(d_addr)),("TimeStamp",str(int(timestamp)))])
                butun_paketler["ICMP"][str(s_addr)][str(reqem)] = elave;

        #UDP packets
     
     
        elif protocol == 17 :
            u = iph_length + eth_length
            udph_length = 8
            udp_header = packet[u:u+8]
            udph = unpack('!HHHH' , udp_header)
         
            source_port = udph[0]
            dest_port = udph[1]
         
            if(str(s_addr) not in butun_paketler['UDP']):
                elave = OrderedDict([("Source_Mac",str(source_mac)),("Dest_Mac",str(dest_mac)),("Source_Port",str(source_port)),("Dest_Port",str(dest_port)),("Source_IP",str(s_addr)),("Dest_IP",str(d_addr)),("TimeStamp",str(int(timestamp)))])
                butun_paketler["UDP"][str(s_addr)] = OrderedDict([]);
                butun_paketler["UDP"][str(s_addr)]["0"] = elave               
            else:
                all_key = butun_paketler['UDP'][str(s_addr)].keys();
                last = all_key[len(butun_paketler['UDP'][str(s_addr)].keys())-1]
                reqem = int(last)+1
                elave = OrderedDict([("Source_Mac",str(source_mac)),("Dest_Mac",str(dest_mac)),("Source_Port",str(source_port)),("Dest_Port",str(dest_port)),("Source_IP",str(s_addr)),("Dest_IP",str(d_addr)),("TimeStamp",str(int(timestamp)))])
                butun_paketler["UDP"][str(s_addr)][str(reqem)] = elave;
         

        else :
            pass



icmp= 0
tcp = 0
udp = 0

ip_vs_paket = OrderedDict([])
packet_target = []
temp = []

for protocol_types in butun_paketler:
    for ip_addreses in butun_paketler[protocol_types]:
        for packet_accept_order in butun_paketler[protocol_types][ip_addreses]:
            if(protocol_types=="ICMP"):
                icmp=icmp+1
            elif(protocol_types=="TCP"):
                tcp = tcp+1
            elif(protocol_types=="UDP"):
                udp=udp+1


cemi = tcp+udp+icmp

for protocol_types in butun_paketler:
    for ip_addreses in butun_paketler[protocol_types]:
        if(ip_addreses not in ip_vs_paket):
            ip_vs_paket[ip_addreses] = OrderedDict([])
            ip_vs_paket[ip_addreses][protocol_types] = len(butun_paketler[protocol_types][ip_addreses])
        else:
            ip_vs_paket[ip_addreses][protocol_types] = len(butun_paketler[protocol_types][ip_addreses])

       
       
for protocol_types in butun_paketler:
    for ip_addreses in butun_paketler[protocol_types]:
        for packet_accept_order in butun_paketler[protocol_types][ip_addreses]:
            raw_packet_info = butun_paketler[protocol_types][ip_addreses][packet_accept_order]
            s_addr = raw_packet_info['Source_IP']
            d_addr = raw_packet_info['Dest_IP']
            s_mac =  raw_packet_info['Source_Mac']
            d_mac =  raw_packet_info['Dest_Mac']
            timestamp = raw_packet_info['TimeStamp']
           
            if(protocol_types=="TCP"):
                s_port = raw_packet_info['Source_Port']
                d_port = raw_packet_info['Dest_Port']
                packet_target.append(s_addr+":"+s_port+"->"+d_addr+":"+d_port+"_TCP")
           
            elif(protocol_types=="UDP"):
                s_port = raw_packet_info['Source_Port']
                d_port = raw_packet_info['Dest_Port']
                packet_target.append(s_addr+":"+s_port+"->"+d_addr+":"+d_port+"_UDP")
               
            elif(protocol_types=="ICMP"):
                icmp_type = raw_packet_info['ICMP_TYPE']
                icmp_code = raw_packet_info['ICMP_CODE']
                packet_target.append(s_addr+"->"+d_addr+"_ICMP")
           
#print butun_paketler

print "-"*70
print "Umumi Statistika:"
print "-"*50
print "Cemi Paket:",cemi
print "TCP paketlerin sayi:",tcp
print "UDP paketlerin sayi:",udp
print "ICMP paketlerin sayi:",icmp
print "-"*50
print "Her IP gonderdiyi paket:"
print "-"*50
for ip in ip_vs_paket:
    data = ip_vs_paket[ip]
    if("TCP" not in data.keys()):
        tcp_spec = 0
    else:
        tcp_spec = data["TCP"]
   
    if("UDP" not in data.keys()):
        udp_spec = 0
    else:
        udp_spec = data["UDP"]
    if("ICMP" not in data.keys()):
        icmp_spec= 0
    else:
        icmp_spec= data["ICMP"]
    print ip,"--","TCP=",tcp_spec,",UDP=",udp_spec,",ICMP=",icmp_spec
print "-"*50
print "IPlerin gonderdiyi paketlerin miqdari:"
print "-"*50
for data in packet_target:
    if(data not in temp):
        temp.append(data)
        sayi = packet_target.count(data)
        bol = data.split("_")
        print bol[0]+" Sayi:"+str(sayi)+" "+bol[1]+" Protokolu"
       
print "-"*50
print "-"*70

Vətən Sağ olsun!
Duman salamat qal, Dağ salamat qal..
Anti-armenia.ORG
    

Istifadəçi
    2015-07-18 14:48 GMT                 

HideHacker



Gold
Mesaj Sayı : 813
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   53  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər : Target: armenian bitchs
Ölkə :
Məslək : HideHacker
Yaş : 130
Mesaj :

Mövzunu Paylaş!


Təşəkkür brom

KARABAKH belongs to AZERBAİJAN!!!
Anti-armenia.ORG
    

Istifadəçi
    2015-07-19 04:01 GMT                 

Ulvu14



İstifadəçi
Mesaj Sayı : 241
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   0  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər : ölüler addasi
Ölkə :
Məslək : Webmaster
Yaş :
Mesaj :

Mövzunu Paylaş!


Təşəkkürlər

Bir Kerə Yüksələn Bayrak Bir Daha Inmez!....
Anti-armenia.ORG
    

Istifadəçi
    2015-07-19 15:42 GMT                 

BlackMinD



Pr0grammer
Mesaj Sayı : 1677
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   62  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər : KARABAKH IS AZERBAIJAN!
Ölkə :
Məslək :
Yaş :
Mesaj :

Mövzunu Paylaş!


Halaldı +Respect

Python-a girişmisən diyəsən özü də nəyi var

Ana VƏTƏN!
Anti-armenia.ORG
    

Istifadəçi
    2015-07-19 18:20 GMT                 

PuN!Sh3r



Gold
Mesaj Sayı : 308
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   35  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər : W00t W00t
Ölkə :
Məslək : Cyber Security Specialist
Yaş :
Mesaj :

Mövzunu Paylaş!


Təşəkkür edirəm.
Hə qardaş python yaxşı vəziyətdədi) Yeni yazdığım keyloggerin source kodunu da paylaşacam) Test edib feedback verərsiz)

Vətən Sağ olsun!
Duman salamat qal, Dağ salamat qal..
Anti-armenia.ORG
    

Istifadəçi
    2015-07-20 20:38 GMT                 

Cahangir25



Informatix
Mesaj Sayı : 1142
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   91  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər : PHP
Ölkə :
Məslək : Front-end Web Developer
Yaş :
Mesaj :

Mövzunu Paylaş!


Brom Pythona girib
Təşəkkürlər)

AZERBAIJAN!!! FUCK armenia!!!
Anti-armenia.ORG
    

Istifadəçi
    2015-07-27 06:35 GMT                 

PuN!Sh3r



Gold
Mesaj Sayı : 308
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   35  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər : W00t W00t
Ölkə :
Məslək : Cyber Security Specialist
Yaş :
Mesaj :

Mövzunu Paylaş!


Buyur))

Vətən Sağ olsun!
Duman salamat qal, Dağ salamat qal..
Anti-armenia.ORG
    

Istifadəçi
    2015-07-27 12:00 GMT                 

Ferid23



Admin
Mesaj Sayı : 1875
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   45  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər : Anti-armenia.ORG
Ölkə :
Məslək : Programmer & Defacer
Yaş : 12
Mesaj :

Mövzunu Paylaş!


Təbriklər və Təşəkkürlər Brom!

AZ Domaini İhbar Hattı (Azərbaycan saytlarında olan boşluqları bizə bildirin): http://anti-armenia.org/forums.php?m=posts&q=572
Qaydalar (Saytın qayda-qanunlarını oxuyaraq əməl edin)
Anti-armenia.ORG