Probably due to puberty I have been thinking about old stuff.
I have tried, with ChatGPT, to ““log into”” Skype. I say ““log in”” with the quotations because I’d just like to get to the menu and stuff. I do NOT need to be able to chat or anything similar.
With some Python script I haven’t got far. Basically just made a web server. Help!
from scapy.all import *
import time
Function to process packets
def process_packet(packet):
# Ensure packet contains an IP layer and DNS layer
if packet.haslayer(IP) and packet.haslayer(DNS):
# DNS query (QR=0 is query, QR=1 is response)
if packet[DNS].qr == 0: # DNS Query
domain = packet[DNS].qd.qname.decode() # Extract the domain name queried
# If the domain is related to Skype
if “skype.com” in domain:
print(f"\n[+] Skype DNS Query for: {domain}“)
print(f” Source IP: {packet[IP].src}, Destination IP: {packet[IP].dst}“)
print(f” Packet Timestamp: {time.ctime(packet.time)}“)
print(f” Raw Packet Data (First 40 bytes): {bytes(packet)[:40]}")
elif packet[DNS].qr == 1: # DNS Response
# Loop through DNS answer section (response section)
if packet.haslayer(DNSRR): # DNS Resource Records (answers)
for answer in packet[DNS].an:
# If the answer is for a Skype-related domain
if "skype.com" in answer.rrname.decode():
print(f"\n[+] Skype DNS Response: {answer.rrname.decode()} -> {answer.rdata}")
print(f" Source IP: {packet[IP].src}, Destination IP: {packet[IP].dst}")
print(f" Raw Packet Data (First 40 bytes): {bytes(packet)[:40]}")
# Additional Debug: Show full DNS query info
if packet.haslayer(DNS) and packet[DNS].qd:
print(f"\n[DEBUG] Full DNS Query Data: {packet[DNS].qd.qname.decode()}")
Function to handle packet sniffing and processing
def start_sniffing():
print(“[] Starting the packet sniffer…“)
print(”[] Filtering UDP traffic on port 53 (DNS)…”)
sniff(filter=“udp and port 53”, prn=process_packet, store=0)
Function to handle basic statistics/logging
def log_summary(packet_count, skype_queries):
print(f"\n[*] Sniffing Summary:“)
print(f” Total Packets Captured: {packet_count}“)
print(f” Skype-Related DNS Queries: {skype_queries}")
Main function to run the entire sniffer setup
def run_sniffer(duration=60):
packet_count = 0 # Total number of packets captured
skype_queries = 0 # Counter for Skype DNS queries
print("[*] Running Sniffer for {} seconds...".format(duration))
end_time = time.time() + duration
# Start sniffing and keep track of captured packets
while time.time() < end_time:
# Capture packets, process them and update counters
packet = sniff(count=1, timeout=1)
packet_count += len(packet)
# Check for Skype DNS queries
for pkt in packet:
if pkt.haslayer(DNS) and pkt[DNS].qr == 0: # DNS Query
if "skype.com" in pkt[DNS].qd.qname.decode():
skype_queries += 1
# After duration, log the summary
log_summary(packet_count, skype_queries)
Start the sniffing process
if name == “main”:
run_sniffer(duration=120) # Run the sniffer for 2 minutes (120 seconds)