block-nuke-telemetry/scripts/capture_startup_wide.sh
Nicholai 6fada7889a Initial public release - Nuke telemetry monitoring toolkit
This toolkit provides comprehensive monitoring, analysis, and blocking capabilities
for network telemetry sent by The Foundry's Nuke compositor on Linux.

Key features:
- Network monitoring scripts with automated alerts
- Multi-tier blocking methods (hosts, firewall, namespace, AppArmor)
- Detailed packet capture analysis and documentation
- EULA legal analysis and privacy assessment
- Sanitized example captures and comprehensive guides

All sensitive data (personal IPs, usernames, packet captures) removed.
Ready for public sharing on Gitea.
2025-11-26 15:28:21 -07:00

122 lines
4.1 KiB
Bash
Executable File

#!/bin/bash
# Wide-net startup capture - catches EVERYTHING external
OUTPUT_DIR="$HOME/Documents/obsidian-vault/2-projects/Nuke-monitoring/dump/startup-wide"
mkdir -p "$OUTPUT_DIR"
TIMESTAMP=$(date +%Y-%m-%d_%H-%M-%S)
echo "=== Wide-Net Nuke Startup Capture ==="
echo ""
echo "This will capture ALL external network traffic (not just Foundry domains)"
echo "so we can see if Nuke is connecting to unexpected servers."
echo ""
# Check if Nuke is running
if pgrep -i nuke > /dev/null 2>&1; then
echo "WARNING: Nuke appears to be running. Please close it first."
echo ""
read -p "Press Enter after closing Nuke..."
fi
echo ""
echo "Starting wide capture (capturing ALL external traffic)..."
echo "This will be a larger file since we're not filtering by domain."
echo ""
# Capture everything EXCEPT local network traffic
sudo tcpdump -i any -w "$OUTPUT_DIR/startup_wide_$TIMESTAMP.pcap" \
'not (net 10.0.0.0/8 or net 127.0.0.0/8 or net 224.0.0.0/4 or net 239.0.0.0/8 or port 5353)' &
TCPDUMP_PID=$!
echo "Capture running (PID: $TCPDUMP_PID)"
echo ""
echo "================================================"
echo "NOW LAUNCH NUKE"
echo "================================================"
echo ""
read -p "Press Enter after Nuke has FULLY loaded (all windows open)..."
echo ""
echo "Stopping capture..."
sudo kill $TCPDUMP_PID 2>/dev/null
wait $TCPDUMP_PID 2>/dev/null
sleep 2
echo ""
echo "Capture complete!"
echo ""
PCAP_FILE="$OUTPUT_DIR/startup_wide_$TIMESTAMP.pcap"
if [ ! -f "$PCAP_FILE" ]; then
echo "ERROR: Capture file not created: $PCAP_FILE"
exit 1
fi
PCAP_SIZE=$(du -h "$PCAP_FILE" | cut -f1)
echo "File: $PCAP_FILE"
echo "Size: $PCAP_SIZE"
echo ""
# Basic analysis
echo "Analyzing capture..."
echo ""
if command -v tshark &> /dev/null; then
echo "=== Packet Statistics ==="
tshark -r "$PCAP_FILE" -q -z io,stat,0
echo ""
echo "=== Unique Destination IPs ==="
tshark -r "$PCAP_FILE" -T fields -e ip.dst 2>/dev/null | sort -u | tee "$OUTPUT_DIR/unique_ips_$TIMESTAMP.txt"
echo ""
echo "=== DNS Lookups During Startup ==="
tshark -r "$PCAP_FILE" -Y "dns.flags.response == 1" -T fields -e dns.qry.name 2>/dev/null | sort -u | tee "$OUTPUT_DIR/dns_lookups_$TIMESTAMP.txt"
echo ""
echo "=== Checking for Foundry/Honeycomb/Sentry ==="
FOUNDRY_COUNT=$(tshark -r "$PCAP_FILE" -Y "dns.qry.name contains \"foundry\" or dns.qry.name contains \"honeycomb\" or dns.qry.name contains \"sentry\"" 2>/dev/null | wc -l)
if [ "$FOUNDRY_COUNT" -gt 0 ]; then
echo "✓ FOUND $FOUNDRY_COUNT packets to Foundry/telemetry services:"
tshark -r "$PCAP_FILE" -Y "dns.qry.name contains \"foundry\" or dns.qry.name contains \"honeycomb\" or dns.qry.name contains \"sentry\"" 2>/dev/null
else
echo "✗ NO Foundry/telemetry traffic found during startup"
echo ""
echo "This suggests:"
echo " 1. Telemetry only happens on FIRST launch (not subsequent launches)"
echo " 2. Telemetry is delayed/batched (happens after startup)"
echo " 3. Telemetry is sent later during the session"
fi
echo ""
echo "=== HTTP Traffic (if any) ==="
tshark -r "$PCAP_FILE" -Y "http.request" -T fields -e http.host -e http.request.uri 2>/dev/null | head -20
echo ""
echo "=== TLS/HTTPS Connections (Server Name Indication) ==="
tshark -r "$PCAP_FILE" -Y "tls.handshake.extensions_server_name" -T fields -e tls.handshake.extensions_server_name 2>/dev/null | sort -u | tee "$OUTPUT_DIR/tls_servers_$TIMESTAMP.txt"
echo ""
else
echo "tshark not installed. Install wireshark-cli for analysis:"
echo " sudo pacman -S wireshark-cli"
echo ""
echo "You can analyze manually with:"
echo " wireshark $PCAP_FILE"
fi
echo ""
echo "=== Summary ==="
echo "Results saved to: $OUTPUT_DIR/"
echo " - Raw capture: $PCAP_FILE"
echo " - Unique IPs: $OUTPUT_DIR/unique_ips_$TIMESTAMP.txt"
echo " - DNS lookups: $OUTPUT_DIR/dns_lookups_$TIMESTAMP.txt"
echo " - TLS servers: $OUTPUT_DIR/tls_servers_$TIMESTAMP.txt"
echo ""
echo "Next: Compare these IPs/domains with your earlier 20-minute capture"
echo "to see if startup traffic differs from runtime traffic."
echo ""