Você pode usar o Vboxmanage para fazer isso. A forma do comando é
VBoxManage guestcontrol <uuid|vmname> exec[ute]
--image <path to program> --username <name>
[--passwordfile <file> | --password <password>]
[--environment "<NAME>=<VALUE> [<NAME>=<VALUE>]"]
[--verbose] [--timeout <msec>]
[--wait-exit] [--wait-stdout] [--wait-stderr]
[--dos2unix] [--unix2dos]
-- [[<argument1>] ... [<argumentN>]]
Para executar seu script python, você pode digitar o seguinte - stdout e stderr são retornados para a máquina host por meio deste comando
VBoxManage guestcontrol "Name of Virtual Machine Goes Here" exec --image /path/to/my/script --username UserNameGoesHere --password PasswordGoesHere --wait-exit --wait-stdout --wait-stderr
No meu caso, o script de teste foi
#!/usr/bin/python
print "hello"
Você pode encontrar informações sobre isso iniciando o programa VirtualBox e selecionando Ajuda no menu, e a seção específica que você está procurando é 8.31. VBoxManage guestcontrol