Browse Source

correctly closed files in several attacks

Stefano Acquaviti 6 years ago
parent
commit
c0b0e19ba2

+ 3 - 0
code/Attack/EternalBlueExploit.py

@@ -143,6 +143,7 @@ class EternalBlueExploit(BaseAttack.BaseAttack):
         orig_ip_dst = None
         exploit_raw_packets = RawPcapReader(self.template_scan_pcap_path)
         inter_arrival_times = self.get_inter_arrival_time(exploit_raw_packets)
+        exploit_raw_packets.close()
         exploit_raw_packets = RawPcapReader(self.template_scan_pcap_path)
 
         source_origin_wins, destination_origin_wins = {}, {}
@@ -220,11 +221,13 @@ class EternalBlueExploit(BaseAttack.BaseAttack):
 
         # Inject EternalBlue exploit packets
         # Read Win7_eternalblue_exploit pcap file
+        exploit_raw_packets.close()
         exploit_raw_packets = RawPcapReader(self.template_attack_pcap_path)
 
         port_source = randint(self.minDefaultPort,self.maxDefaultPort) # experiments show this range of ports
         # conversations = {(ip.src, ip.dst, port.src, port.dst): packets}
         conversations, orderList_conversations = self.packetsToConvs(exploit_raw_packets)
+        exploit_raw_packets.close()
 
         conv_start_timesamp = timestamp_next_pkt
         for conv_index, conv in enumerate(orderList_conversations):

+ 2 - 0
code/Attack/JoomlaRegPrivExploit.py

@@ -125,6 +125,7 @@ class JoomlaRegPrivExploit(BaseAttack.BaseAttack):
         orig_ip_dst = None
         exploit_raw_packets = RawPcapReader(self.template_attack_pcap_path)
         inter_arrival_times, inter_arrival_time_dist = self.get_inter_arrival_time(exploit_raw_packets,True)
+        exploit_raw_packets.close()
         timeSteps = Lea.fromValFreqsDict(inter_arrival_time_dist)
         exploit_raw_packets = RawPcapReader(self.template_attack_pcap_path)
 
@@ -217,6 +218,7 @@ class JoomlaRegPrivExploit(BaseAttack.BaseAttack):
 
             packets.append(new_pkt)
 
+        exploit_raw_packets.close()
         # Store timestamp of first packet (for attack label)
         self.attack_start_utime = packets[0].time
         self.attack_end_utime = packets[-1].time

+ 3 - 1
code/Attack/PortscanAttack.py

@@ -88,12 +88,14 @@ class PortscanAttack(BaseAttack.BaseAttack):
         :return: Ports numbers to be used as default destination ports or default open ports in the port scan.
         """
         ports_dst = []
-        spamreader = csv.reader(open(ROOT_DIR + '/../resources/nmap-services-tcp.csv', 'rt'), delimiter=',')
+        file = open(ROOT_DIR + '/../resources/nmap-services-tcp.csv', 'rt')
+        spamreader = csv.reader(file, delimiter=',')
         for count in range(ports_num):
             # escape first row (header)
             next(spamreader)
             # save ports numbers
             ports_dst.append(next(spamreader)[0])
+        file.close()
         # shuffle ports numbers partially
         if (ports_num == 1000):  # used for port.dst
             temp_array = [[0 for i in range(10)] for i in range(100)]

+ 2 - 0
code/Attack/SQLiAttack.py

@@ -123,6 +123,7 @@ class SQLiAttack(BaseAttack.BaseAttack):
         exploit_raw_packets = RawPcapReader(self.template_attack_pcap_path)
         inter_arrival_times, inter_arrival_time_dist = self.get_inter_arrival_time(exploit_raw_packets,True)
         timeSteps = Lea.fromValFreqsDict(inter_arrival_time_dist)
+        exploit_raw_packets.close()
         exploit_raw_packets = RawPcapReader(self.template_attack_pcap_path)
 
         port_source = random.randint(self.minDefaultPort,self.maxDefaultPort) # experiments show this range of ports
@@ -278,6 +279,7 @@ class SQLiAttack(BaseAttack.BaseAttack):
 
             packets.append(new_pkt)
 
+        exploit_raw_packets.close()
         # Store timestamp of first packet (for attack label)
         self.attack_start_utime = packets[0].time
         self.attack_end_utime = packets[-1].time

+ 1 - 0
code/Attack/SalityBotnet.py

@@ -127,6 +127,7 @@ class SalityBotnet(BaseAttack.BaseAttack):
 
             packets.append(new_pkt)
 
+        exploit_raw_packets.close()
         # Store timestamp of first packet (for attack label)
         self.attack_start_utime = packets[0].time
         self.attack_end_utime = packets[-1].time