Skip to content

Commit c379b6b

Browse files
Hell yeah 3
1 parent 5cbc54d commit c379b6b

File tree

3 files changed

+38
-4
lines changed

3 files changed

+38
-4
lines changed

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@
2828
2. A JSON file containing Metadata of extracted file as a JSON file including:
2929
- File name
3030
- File size
31+
- Source IP address
32+
- Source Port number
33+
- Destination IP address
34+
- Destination Port number
35+
- timestamp
3136
3. A JSON file containing logs of all packet layer details.
3237

3338

extract_smb.py

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,23 @@ def extract_file_data_and_name(logs):
165165
name = re.sub(r"^b'|'$", '', name)
166166
name = name.encode('latin1').decode('unicode_escape')
167167
file_name = name
168-
return file_data, file_name
168+
169+
# Extracting src, dst, sport, dport, and timestamp values
170+
for item in entry:
171+
if isinstance(item, list) and item[0] == "IP":
172+
ip_header = item[1]
173+
src = ip_header.get("src", "")
174+
dst = ip_header.get("dst", "")
175+
if isinstance(item, list) and item[0] == "TCP":
176+
tcp_header = item[1]
177+
sport = tcp_header.get("sport", 0)
178+
dport = tcp_header.get("dport", 0)
179+
for option in tcp_header.get("options", []):
180+
if isinstance(option, list) and option[0] == "Timestamp":
181+
timestamp = option[1]
182+
183+
184+
return file_data, file_name, src, dst, sport, dport, timestamp
169185

170186
# Function to recursively extract packet layer details
171187
def extract_packet_details(packet):
@@ -193,7 +209,7 @@ def extract_packet_details(packet):
193209
logs = json.load(file)
194210

195211
# Extract the file data and name
196-
file_data, file_name = extract_file_data_and_name(logs)
212+
file_data, file_name, src, dst, sport, dport, timestamp = extract_file_data_and_name(logs)
197213

198214
# Cleaning the file name
199215
clean_file_name = re.sub(r'\x00', '', file_name) # remove null bytes
@@ -211,7 +227,12 @@ def extract_packet_details(packet):
211227
# Prepare metadata
212228
metadata = {
213229
"FileName": clean_file_name,
214-
"FileSize": convert_size(file_size)
230+
"FileSize": convert_size(file_size),
231+
"src": src,
232+
"dst": dst,
233+
"sport": sport,
234+
"dport": dport,
235+
"timestamp": timestamp
215236
}
216237

217238
# Save metadata to JSON file

metadata_of_extracted_file.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
11
{
22
"FileName": "Test\\2009-12 Payroll.xlsx",
3-
"FileSize": "25.33 KB"
3+
"FileSize": "25.33 KB",
4+
"src": "192.168.1.78",
5+
"dst": "192.168.1.53",
6+
"sport": 55770,
7+
"dport": 445,
8+
"timestamp": [
9+
1003549546,
10+
8116880
11+
]
412
}

0 commit comments

Comments
 (0)