Source Code for network and port scanner, TRW algorithm, and reduction method implementations.

fedora_code_ps_no_reduc.py 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. ###########################################################
  2. # Port Scanner
  3. # Cuenta total de puertos desinatarios por cada sip
  4. # Despliega lista de puertos por cada destination ip
  5. ############################################################
  6. from silk import *
  7. startDate = "2009/04/20"
  8. endDate = "2009/04/22"
  9. minPort = 20
  10. maxPort = 60000
  11. counter = 0
  12. def UltimoAnalisis():
  13. sampleHash = {}
  14. flow_Counter = 0
  15. for filename in FGlob(classname="all", type="all", start_date=startDate, end_date=endDate, site_config_file="/data/silk.conf", data_rootdir="/data"):
  16. for rec in silkfile_open(filename, READ):#reading the flow file
  17. flow_Counter +=1
  18. dport = rec.dport
  19. posA = str(rec.dip)
  20. # print posA, dport
  21. if (dport >= 1 and dport < minPort) or dport > maxPort: #verifica que sean puertos validos (creo que se dice asi)
  22. # print "Im here"
  23. continue
  24. else: # Como es el caso de la ultima busqueda, se agrega una lista de los puertos
  25. if posA in sampleHash:
  26. sampleHash[posA].append(dport)
  27. else:
  28. sampleHash[posA] = [dport]
  29. #print sampleHash
  30. #print flow_Counter
  31. return sampleHash
  32. dip_hash = UltimoAnalisis()
  33. #print dip_hash
  34. otherHash = {} #Se borra el hash para agregar elementos nuevos con la nueva etapa de la busqueda
  35. for dips, dports in dip_hash.items():
  36. if len(dports)>= 100: #si la cantidad de puertos es mayor o igual a 100, nos interesan
  37. #y por lo tanto se guardan en un hash
  38. otherHash[dips] = dports
  39. for dips, dports in otherHash.items():
  40. counter +=1 #para contar los elementos del hash
  41. #print otherHash
  42. #print counter