⬢ DragonFlyBSD Kernel Audit
DF-4100 / push_rig.sh
← back to finding ↓ download raw
#!/bin/sh
# push_rig.sh -- (re)push rig sources to a fresh guest, build, load, prime
set -e
DIR="findings/poc/DF-2429"
ssh -F dfbsd-qemu/config dfbsd 'mkdir -p /root/rig'
scp -F dfbsd-qemu/config "$DIR/dfbt_rig.c" "$DIR/Makefile" "$DIR/dfbt_ctl.c" dfbsd:/root/rig/
printf '%s\n' '
  cd /root/rig
  make 2>&1 | grep -E "error:|warning:" && exit 1 || true
  cc -O2 -Wall -o dfbt_ctl dfbt_ctl.c
  kldload /root/rig/dfbt_rig.ko || kldstat | grep dfbt
  ./dfbt_ctl prime
  ./dfbt_ctl snap 0 >/dev/null 2>&1 || true
  echo "--- prologue magic words (must match host-verified constants) ---"
  sysctl kern.dfbt_m_btaction kern.dfbt_m_btpoll kern.dfbt_m_btdone \
         kern.dfbt_m_bttimeout kern.dfbt_m_btreset kern.dfbt_m_btintr
' | ssh -F dfbsd-qemu/config dfbsd /bin/sh
echo "EXPECT: btaction=0x56415741e5894855 btpoll=0xfffed7e9187f8b48"
echo "        btdone=0x55415641e5894855 bttimeout=0x894800000002be55"
echo "        btreset=0x40b8ffffff80ba55 btintr=0x54415541e5894855"