1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
def main():
# you can type the name of directory as well as file in the below variable
pcap = "test.pcap"
csvName = "out.csv"
out = []
print("[*] Loading PCAP")
pcap = parser.read_pcap(pcap)
print("[*] Starting session extraction")
ss = pcap.sessions(parser.extractor)
parameters = {
"c_ip": None,
"c_port": None,
"c_pkts_all": None,
"c_rst_cnt": None,
"c_ack_cnt": None,
"request_cnt_func1": None,
"response_cnt_func1": None,
"request_cnt_func2": None,
"response_cnt_func2": None,
"request_cnt_func3": None,
"response_cnt_func3": None,
"request_cnt_func4": None,
"response_cnt_func4": None,
"request_cnt_func5": None,
"response_cnt_func5": None,
"request_cnt_func6": None,
"response_cnt_func6": None,
"Register_value": None,
"Register_value1": None,
"Read/Write": None,
"Modbus_err_code": None,
"time_avg": None,
"Protocol": None,
"Service": None,
"time_modbus_std": None,
"Register_number": None
}
print("[+] Total Sessions Found:\t{}".format(len(ss)))
count = 1
for s in ss:
print(f"[*] Processing Session: {count}")
parameters["s_ip"], parameters["c_ip"] = parser.filter_ip(ss[s][0])
sbsc = 1
for sbs in split_session(ss[s], 1):
print(f"[*] Processing Sub Session: {count}.{sbsc}")
try:
data = retrieve(parameters, sbs)
pass
except TypeError:
break
print(data)
out.append(data.copy())
sbsc += 1
count += 1
csv_write(out, csvName)
if __name__ == '__main__':
main() |
Partager