Browse Source

Update the three BruteForece files into new files.

Sara 6 years ago
parent
commit
35fee1eb00

+ 75
- 0
Programas/Fedora/bruteforce_reduc_sip_threehash.py View File

@@ -0,0 +1,75 @@
1
+#Itera por sip /16 y cuenta numero de puertos por cada dip
2
+
3
+from silk import *
4
+
5
+
6
+startDate = "2009/04/20"
7
+endDate = "2009/04/22"
8
+#Para filtrar por puertos. Pero no queremos todavia
9
+#minPort = 20
10
+#maxPort = 5000
11
+
12
+
13
+def ipConversion(number, position):
14
+    mystr = ''
15
+    ipadd = number.split(".") #Devuelve un arreglo
16
+    for i in range(position+1):
17
+        if i ==position:
18
+            mystr = mystr + ipadd[i]
19
+        else:
20
+            mystr = mystr + ipadd[i] + '.'
21
+    return mystr #devuelve los numeros en notacion string
22
+
23
+
24
+
25
+def UltimoAnalisis(flowHash, num):
26
+    dportHash={}
27
+    flow_Counter=0
28
+    for filename in FGlob(classname="all", type="all", start_date=startDate, end_date=endDate, site_config_file="/data/silk.conf", data_rootdir="/data"):
29
+        for rec in silkfile_open(filename, READ):#reading the flow file
30
+            if (':' in str(rec.sip)) or (num != 0 and ipConversion(str(rec.sip), num-1) not in flowHash): #Si en el paso anterior se vio que no
31
+                                                                         #tiene el length de puertos requerido, se ignora
32
+                continue
33
+            else: #agrega a un hash cada puerto con un counter de sus destination ips
34
+                dip = str(rec.dip)
35
+                sip = ipConversion(str(rec.sip), num)
36
+                dport= rec.dport
37
+                if sip in dportHash:
38
+                    if dip in dportHash[sip]:
39
+                        if dport in dportHash[sip][dip]:
40
+                            dportHash[sip][dip][dport] += 1
41
+                        else:
42
+                            dportHash[sip][dip][dport] = 1
43
+                    else:
44
+                        dportHash[sip][dip] = {dport : 1}
45
+                else:
46
+                    dportHash[sip] = { dip: {dport: 1} }
47
+
48
+    #print flow_Counter
49
+    return dportHash
50
+
51
+#main
52
+
53
+myNum = 0
54
+otherHash = {}
55
+while myNum <4: #Se itera las cuatro veces de acuerdo con la notacion de ipv4
56
+    flowHash= UltimoAnalisis(otherHash, myNum)
57
+    otherHash = {} #Se borra el hash para agregar elementos nuevos con la nueva etapa de la busqueda
58
+    for sips in flowHash: #se itera por todos los dip y sus counters o puertos
59
+        for dips, dports in flowHash[sips].items():
60
+            if len(dports) >= 100: #si la cantidad de puertos es mayor o igual a 100, nos interesan
61
+                                    #y por lo tanto se guardan en un hash
62
+                if sips in otherHash:
63
+                    otherHash[sips][dips] = dports
64
+                else:
65
+                    otherHash[sips] = {dips: dports}
66
+    myNum += 1
67
+
68
+    #print (flowHash)
69
+
70
+counter = 0
71
+
72
+for dips, dports in otherHash.items():
73
+    counter +=1 #para contar los elementos del hash
74
+
75
+print counter

+ 2
- 2
Programas/Fedora/bruteforce_reduction_sip.py View File

@@ -54,8 +54,8 @@ def UltimoAnalisis(flowHash, num):
54 54
                                                                          #tiene el length de puertos requerido, se ignora
55 55
                 continue
56 56
             else: #agrega a un hash cada puerto con un counter de sus destination ips
57
-                dip = ipConversion(str(rec.dip), num)
58
-                sip = ipConversion(str(rec.sip), num)
57
+                dip = str(rec.dip)
58
+                sip = str(rec.sip)
59 59
                 dport= rec.dport
60 60
                 if sip in dportHash:
61 61
                     if dip in dportHash[sip]:

+ 53
- 0
Programas/Fedora/bruteforce_sip-dip_threehash.py View File

@@ -0,0 +1,53 @@
1
+# Guarda lista de puertos de cada dip por cada sip
2
+
3
+from silk import *
4
+
5
+
6
+startDate = "2009/04/20"
7
+endDate = "2009/04/22"
8
+#Para filtrar por puertos. Pero no queremos todavia
9
+#minPort = 20
10
+#maxPort = 5000
11
+
12
+
13
+def verify_type():
14
+    dportHash = {} #contains amount of dport per each sip
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
+            sip = str(rec.sip)
18
+            dip = str(rec.dip)
19
+            dport = rec.dport
20
+            if (':' in sip): #Si en el paso anterior se vio que no
21
+                                                                #tiene el length de puertos requerido, se ignora
22
+                continue
23
+            else:
24
+                if sip in dportHash:
25
+                    if dip in dportHash[sip]:
26
+                        if dport in dportHash[sip][dip]:
27
+                            dportHash[sip][dip][dport] += 1
28
+                        else:
29
+                            dportHash[sip][dip][dport] = 1
30
+                    else:
31
+                        dportHash[sip][dip] = {dport : 1}
32
+                else:
33
+                    dportHash[sip] = { dip: {dport: 1} }
34
+    return dportHash
35
+
36
+
37
+#MAIN
38
+otherHash = {}
39
+counter = 0
40
+flowHash = verify_type()
41
+for sips in flowHash: #se itera por todos los dip y sus counters o puertos
42
+    for dips, dports in flowHash[sips].items():
43
+        if len(dports) >= 100: #si la cantidad de puertos es mayor o igual a 100, nos interesan
44
+                                #y por lo tanto se guardan en un hash
45
+            if sips in otherHash:
46
+                otherHash[sips][dips] = dports
47
+            else:
48
+                otherHash[sips] = {dips: dports}
49
+
50
+for dips, dports in otherHash.items():
51
+    counter +=1 #para contar los elementos del hash
52
+
53
+print (counter)

+ 115
- 0
Programas/Fedora/nt_yet.py View File

@@ -0,0 +1,115 @@
1
+#Itera por sip /16 y cuenta numero de puertos por cada dip
2
+
3
+from silk import *
4
+
5
+
6
+startDate = "2009/04/20"
7
+endDate = "2009/04/22"
8
+#Para filtrar por puertos. Pero no queremos todavia
9
+#minPort = 20
10
+#maxPort = 5000
11
+
12
+
13
+def ipConversion(number, position):
14
+    mystr = ''
15
+    ipadd = number.split(".") #Devuelve un arreglo
16
+    for i in range(position+1):
17
+        if i ==position:
18
+            mystr = mystr + ipadd[i]
19
+        else:
20
+            mystr = mystr + ipadd[i] + '.'
21
+    return mystr #devuelve los numeros en notacion string
22
+
23
+
24
+def PrimerAnalisis(flowHash, num):
25
+    dportHash={}
26
+    flow_Counter=0
27
+    for filename in FGlob(classname="all", type="all", start_date=startDate, end_date=endDate, site_config_file="/data/silk.conf", data_rootdir="/data"):
28
+        for rec in silkfile_open(filename, READ):#reading the flow file
29
+            if (':' in str(rec.sip)) or (num != 0 and ipConversion(str(rec.sip), num-1) not in flowHash): #Si en el paso anterior se vio que no
30
+                                                                         #tiene el length de puertos requerido, se ignora
31
+                continue
32
+            else: #agrega a un hash cada puerto con un counter de sus destination ips
33
+                dip = str(rec.dip)
34
+                sip = ipConversion(str(rec.sip), num)
35
+                dport= rec.dport
36
+                if sip in dportHash:
37
+                    if dip in dportHash[sip]:
38
+                        dportHash[sip][dip] += 1
39
+                    else:
40
+                        dportHash[sip][dip] = 1
41
+                else:
42
+                    dportHash[sip] = { dip: 1 }
43
+
44
+    #print flow_Counter
45
+    return dportHash
46
+
47
+
48
+def UltimoAnalisis(flowHash, num):
49
+    dportHash={}
50
+    flow_Counter=0
51
+    for filename in FGlob(classname="all", type="all", start_date=startDate, end_date=endDate, site_config_file="/data/silk.conf", data_rootdir="/data"):
52
+        for rec in silkfile_open(filename, READ):#reading the flow file
53
+            if (':' in str(rec.sip)) or (num != 0 and ipConversion(str(rec.sip), num-1) not in flowHash): #Si en el paso anterior se vio que no
54
+                                                                         #tiene el length de puertos requerido, se ignora
55
+                continue
56
+            else: #agrega a un hash cada puerto con un counter de sus destination ips
57
+                dip = ipConversion(str(rec.dip), num)
58
+                sip = ipConversion(str(rec.sip), num)
59
+                dport= rec.dport
60
+                if sip in dportHash:
61
+                    if dip in dportHash[sip]:
62
+                        dportHash[sip][dip].append(dport)
63
+                    else:
64
+                        dportHash[sip][dip] = [dport]
65
+                else:
66
+                    dportHash[sip] = { dip: [dport] }
67
+
68
+    #print flow_Counter
69
+    return dportHash
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+
78
+#main
79
+#SET en python
80
+
81
+myNum = 0
82
+otherHash = {}
83
+while myNum <3: #Se itera las cuatro veces de acuerdo con la notacion de ipv4
84
+    flowHash= PrimerAnalisis(otherHash, myNum)
85
+    otherHash = {} #Se borra el hash para agregar elementos nuevos con la nueva etapa de la busqueda
86
+    for sips in flowHash: #se itera por todos los dip y sus counters o puertos
87
+        for dips, dports in flowHash[sips].items():
88
+            if dports >= 100: #si la cantidad de puertos es mayor o igual a 100, nos interesan
89
+                                    #y por lo tanto se guardan en un hash
90
+                if sips in otherHash:
91
+                    otherHash[sips][dips] = dports
92
+                else:
93
+                    otherHash[sips] = {dips: dports}
94
+    myNum += 1
95
+
96
+    #print (flowHash)
97
+
98
+#print otherHash
99
+#Ultimo chequeo, utilizando el ip completo
100
+counter = 0
101
+flowHash = UltimoAnalisis(otherHash, myNum)
102
+otherHash = {} #Se borra el hash para agregar elementos nuevos con la nueva etapa de la busqueda
103
+for sips in flowHash: #se itera por todos los dip y sus counters o puertos
104
+    for dips, dports in flowHash[sips].items():
105
+        if len(dports) >= 100: #si la cantidad de puertos es mayor o igual a 100, nos interesan
106
+                                #y por lo tanto se guardan en un hash
107
+            if sips in otherHash:
108
+                otherHash[sips][dips] = dports
109
+            else:
110
+                otherHash[sips] = {dips: dports}
111
+
112
+for dips, dports in otherHash.items():
113
+    counter +=1 #para contar los elementos del hash
114
+
115
+print counter

+ 73
- 0
Programas/bruteforce_reduc_threehash.py View File

@@ -0,0 +1,73 @@
1
+#Itera a la vez el sip y el dip y guarda en un hash los puertos
2
+
3
+from silk import *
4
+
5
+
6
+startDate = "2009/04/20"
7
+endDate = "2009/04/22"
8
+#Para filtrar por puertos. Pero no queremos todavia
9
+#minPort = 20
10
+#maxPort = 5000
11
+
12
+
13
+def ipConversion(number, position):
14
+    mystr = ''
15
+    ipadd = number.split(".") #Devuelve un arreglo
16
+    for i in range(position+1):
17
+        if i ==position:
18
+            mystr = mystr + ipadd[i]
19
+        else:
20
+            mystr = mystr + ipadd[i] + '.'
21
+    return mystr #devuelve los numeros en notacion string
22
+
23
+
24
+def UltimoAnalisis(flowHash, num):
25
+    dportHash={}
26
+    flow_Counter=0
27
+    for filename in FGlob(classname="all", type="all", start_date=startDate, end_date=endDate, site_config_file="/data/silk.conf", data_rootdir="/data"):
28
+        for rec in silkfile_open(filename, READ):#reading the flow file
29
+            if (':' in str(rec.sip)) or (num != 0 and ipConversion(str(rec.sip), num-1) not in flowHash): #Si en el paso anterior se vio que no
30
+                                                                         #tiene el length de puertos requerido, se ignora
31
+                continue
32
+            else: #agrega a un hash cada puerto con un counter de sus destination ips
33
+                dip = ipConversion(str(rec.dip), num)
34
+                sip = ipConversion(str(rec.sip), num)
35
+                dport= rec.dport
36
+                if sip in dportHash:
37
+                    if dip in dportHash[sip]:
38
+                        if dport in dportHash[sip][dip]:
39
+                            dportHash[sip][dip][dport] += 1
40
+                        else:
41
+                            dportHash[sip][dip][dport] = 1
42
+                    else:
43
+                        dportHash[sip][dip] = {dport : 1}
44
+                else:
45
+                    dportHash[sip] = { dip: {dport: 1} }
46
+
47
+    #print flow_Counter
48
+    return dportHash
49
+
50
+
51
+#main
52
+
53
+myNum = 0
54
+otherHash = {}
55
+while myNum <4: #Se itera las cuatro veces de acuerdo con la notacion de ipv4
56
+    flowHash= UltimoAnalisis(otherHash, myNum)
57
+    otherHash = {} #Se borra el hash para agregar elementos nuevos con la nueva etapa de la busqueda
58
+    for sips in flowHash: #se itera por todos los dip y sus counters o puertos
59
+        for dips, dports in flowHash[sips].items():
60
+            if len(dports) >= 100: #si la cantidad de puertos es mayor o igual a 100, nos interesan
61
+                                    #y por lo tanto se guardan en un hash
62
+                if sips in otherHash:
63
+                    otherHash[sips][dips] = dports
64
+                else:
65
+                    otherHash[sips] = {dips: dports}
66
+    myNum += 1
67
+    print (otherHash)
68
+
69
+
70
+for dips, dports in otherHash.items():
71
+    counter +=1 #para contar los elementos del hash
72
+
73
+print (counter)

+ 4
- 3
Programas/erase.py View File

@@ -1,5 +1,5 @@
1 1
 
2
-flowHash = {'hola':{'wassup':900, 'eh':9000}}
2
+flowHash = {'hola':{'wassup':{'bleh':9000, 'hi':9000}}}
3 3
 sip = 'hola'
4 4
 dip = 'wassup'
5 5
 dport = 90
@@ -7,11 +7,12 @@ otherHash = {}
7 7
 
8 8
 for sips in flowHash: #se itera por todos los dip y sus counters o puertos
9 9
     for dips, dports in flowHash[sips].items():
10
-        if dports >= 100: #si la cantidad de puertos es mayor o igual a 100, nos interesan
10
+        if len(dports) >= 1: #si la cantidad de puertos es mayor o igual a 100, nos interesan
11 11
                                 #y por lo tanto se guardan en un hash
12
-            print dports
12
+            print len(dports)
13 13
             if sips in otherHash:
14 14
                 otherHash[sips][dips] = dports
15
+
15 16
             else:
16 17
                 otherHash[sips] = {dips: dports}
17 18