import pyshark
# Podaj ścieżkę do pliku pcap
pcap_file = 'traffic-analysis-exercise-object (2).pcap'
# Wczytanie pliku
cap = pyshark.FileCapture(pcap_file)
# Zbiory do unikania duplikatów
hosts = set()
hostnames = set()
usernames = set()
# Przechodzimy przez pakiety
for pkt in cap:
try:
# Adresy IP
if 'IP' in pkt:
hosts.add(pkt.ip.src)
hosts.add(pkt.ip.dst)
# DNS - hostname'y
if 'DNS' in pkt and hasattr(pkt.dns, 'qry_name'):
hostnames.add(pkt.dns.qry_name)
# DHCP - hostname'y
if 'DHCP' in pkt and hasattr(pkt.dhcp, 'hostname'):
hostnames.add(pkt.dhcp.hostname)
# NetBIOS - hostname'y
if 'NBNS' in pkt and hasattr(pkt.nbns, 'q_name'):
hostnames.add(pkt.nbns.q_name)
# SMB - nazwa użytkownika
if 'SMB' in pkt and hasattr(pkt.smb, 'user'):
usernames.add(pkt.smb.user)
# FTP - login
if 'FTP' in pkt and 'USER' in pkt.ftp.field_names:
usernames.add(pkt.ftp.request_arg)
# HTTP - autoryzacja basic
if 'HTTP' in pkt and hasattr(pkt.http, 'authorization'):
auth = pkt.http.authorization
if "Basic" in auth:
import base64
encoded = auth.split(" ")[1]
decoded = base64.b64decode(encoded).decode(errors='ignore')
usernames.add(decoded.split(":")[0])
except Exception as e:
continue # Pomijamy błędne pakiety
# Wyniki
print("Adresy hostów:")
for h in sorted(hosts):
print(f" - {h}")
print("\nNazwy hostów:")
for hn in sorted(hostnames):
print(f" - {hn}")
print("\nNazwy użytkowników:")
for u in sorted(usernames):
print(f" - {u}")
Example Output
Nazwy hostów:
- 1276-ms-7.1-3587.9b6842b7-94d5-11ec-b299-0012f064d1d9
- DESKTOP-KPQ9FDB.sunnystation.com
- DESKTOP-VD151O7.sunnystation.com
Adresy hostów:
- 0.0.0.0
- 103.41.204.169