123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #Network Scan without reduction
-
- import ipaddress
- import json
-
-
- x = 20
- y = 60000
- deletevar = []
- newHash={}
-
- PATH = '/Users/Sara/Documents/Univ Classes/Investigacion/Programas/netflows.txt'
-
- myFile = open(PATH, 'r')
- ip = myFile.read()
- flow = json.loads(ip)
-
- def ipConversion(number, position):
- mystr = ''
- ipadd = (str(ipaddress.IPv4Address(number))).split(".") #Devuelve un arreglo
- for i in range(position+1):
- if i ==position:
- mystr = mystr + ipadd[i]
- else:
- mystr = mystr + ipadd[i] + '.'
- return mystr #devuelve los numeros en notacion string
-
-
- for i in flow["flows"]: #itera por cada elemento del diccionario de flows
- #Cambiar esto al unirlo con el trw
- if i['sip'] == 2291263257: #Este numero se lo dara el trw que verifica que sip son scanners
- dip = ipConversion(i['dip'], 0)
- host = ipConversion(i['dip'], 3)
- if dip in newHash and host not in newHash[dip]:
- newHash[dip].append(host)
- else:
- newHash[dip] = [host]
-
- #LO SIGUIENTE ESTA COMENTADO Y LO EXPLICO EN EL WORD
-
-
- # for k, v in newHash.items(): #itera por cada ip address y sus puertos
- # if len(v) >= 100:
- # #print ("something suspicious...")
- # continue
- # else: #Si no tiene una cantidad considerable de puertos, agrega el ip a una lista
- # if k in deletevar:
- # continue
- # else:
- # deletevar.append(k)
-
- #
- # for i in deletevar: #borra todos los elementos que estan en la lista deletevar
- # #del hash con todos los ip y sus puertos
- # newHash.pop(i)
-
- counter = 0 #Para contar total de elementos en el hash
- for k, v in newHash.items(): #imprime los destination ip address con sus puertos
- counter = counter+1
- #k = str(ipaddress.IPv4Address(k))
- print ("{}:{}".format(k,v))
- print (counter)
- print( "Done checking:")
|