Академический Документы
Профессиональный Документы
Культура Документы
Nmap Es una herramienta para administradores de sistemas y gente interesada en el escaneo de grandes o pequeas redes para determinar los equipos que se encuentran activos y cules son sus servicios. En definitiva un escner de puertos muy potente. El objetivo es poder determinar si un servidor o mquina est en uso y que servicios ofrece. Instalacin Para instalar Nmap en debian podemos recurrir a Apt, fcil como siempre. bash# apt-get install nmap Si deseamos instalarlo bajndonos las fuentes del programa, iremos a la direccin: http://www.insecure.org/nmap/nmap_download.html Una vez bajadas las fuentes solo nos queda descomprimirlas y compilarlas. Bash$ bzip2 -cd nmap-VERSION.tar.bz2 | tar xvf Bash$ cd nmap-VERSION Bash$ ./configure Bash$ make Bash$ su Bash# make install Una vez compilado tendremos el ejecutable "nmap" y podremos usarlo como detallaremos posteriormente. Aplicacin Grfica para Nmap (NMAPFE) Si queremos una utilidad grfica a click de ratn, podemos instalar este interprete y usarlo fcilmente. Para instalarlo simplemente lo descargamos por apt de la siguiente manera. bash# apt-get install nmapfe Aqu podemos ver la utilidad y lo fcil que nos ser manejarla, gracias a poder ver todas las opciones en visual.
Usndo Nmp
Vamos ahora a entrar un poco en la practica y a ver como se usa bsicamente el Nmap. Lo ejecutamos seguido de la ip que nos gustara escanear. Bash$ nmap 172.26.0.3 Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2004-10-20 02:13 CEST Interesting ports on 172.26.0.3: (The 1654 ports scanned but not shown below are in state: closed) PORT STATE SERVICE
9/tcp open discard 13/tcp open daytime 22/tcp open ssh 37/tcp open time 74/tcp filtered netrjs-4 80/tcp open http 349/tcp filtered mftp 6000/tcp open X11 Nmap run completed -- 1 IP address (1 host up) scanned in 2.529 seconds Como podis observar la salida del programa tras escanear es bastante simple y se entiende perfectamente, Nos dice que la ip 172.26.0.3, tiene los puertos 9,13,22,37,80 y 6000 abiertos y al servicio a los cuales pertenecen. Esto es un scaneo bsico, empecemos a introducir opciones y comentar para que es cada una.
37/tcp open time 80/tcp open http Nmap run completed -- 1 IP address (1 host up) scanned in 3.612 seconds La opcin -p nos permite acotar un rango de puertos incluyendo el primero y el ultimo, muy til para tardar menos escaneando si sabemos que solo nos interesa unos determinados puertos. Tambin con -p 22,53,110,143 as escanearemos solo los puertos especificados.
La informacin que obtenemos seria la de dos ordenadores encendidos en ese rango de ips como bien podemos leer abajo del todo y que uno de ellos tiene abierto el servicio de netbios perteneciente al puerto 139.
22/tcp open ssh 37/tcp open time 80/tcp open http 6000/tcp open X11
OpenSSH 3.8.1p1 (protocol 2.0) Apache httpd 1.3.31 ((Debian GNU/Linux)) (access denied)
Nmap run completed -- 1 IP address (1 host up) scanned in 103.108 seconds Es tan til saber que se esta ejecutando en una maquina como cuanto tiempo hace que actualizan algn tipo de servicio. Como podemos ver nos dice la versin de OpenSsh y de Apache.
OS details: Linux 2.4.0 - 2.5.20, Gentoo 1.2 Linux (Kernel 2.4.19gentoo-rc5), Linux 2.4.20, Linux 2.4.20 - 2.4.22 w/grsecurity.org patch, Linux 2.5.25 - 2.6.3 or Gentoo 1.2 Linux 2.4.19 rc1-rc7) Uptime 0.132 days (since Tue Oct 19 23:41:15 2004) Nmap run completed -- 1 IP address (1 host up) scanned in 4.572 seconds Dice que tiene un ncleo 2.4 y lleva Gentoo instalado, muy til para ciertas cosas. En un ordenador con Windows, nos saldra un mensaje similar a este: Device type: general purpose Running: Microsoft Windows 2003/.NET|NT/2K/XP OS details: Microsoft Windows Server 2003, Microsoft Windows 2000 SP3 Este sera un ordenador con Windows Server 2003 Decir tambin que puede equivocarse el Nmap y decirnos que es una gentoo y ser una deban pero no fallan de Windows a Linux o freebsd.
algunas otras herramientas como nmap no obstante, no est dems aprender a escanear puertos con sta herramienta ;)
nc -v-v -z [ip] [puerto] (En ste caso se escanea un solo puerto) nc -v-v -z [ip] [puerto, puerto, puerto] (En ste caso se escanean varios puertos separados por comas) Retraso en los comandos SI te interesa dar un retraso a la ejecucin de los comandos slo agrega la literal i con el signo de menos como prefijo seguido de un nmero que representar la cantidad en segundos del retraso. Para qu quiero darle retraso a la ejecucin de los comandos? Bueno... a veces es til cuando programas una script con tareas automticas seguro que llegado el momento ya te las ingenieras para usar el retraso. Ejemplo de retraso en el escaneo de puerto a puerto nc -v-v -z [ip] [puertos-puerto] -i 5 Ejemplo de retraso en el escaneo de puerto especifico nc -v-v -z [ip] [puerto] -i 5 Ejemplo de retraso en el escaneo de varios puertos especficos nc -v-v -z [ip] [puerto, puerto, puerto] -i 5 AutoScan-Network es una herramienta de seguridad de redes que por una parte nos proporciona informacin de los ordenadores conectados a nuestro Internet y por otra parte nos proporciona una utilidad muy eficaz que nos alerta sobre intrusiones en nuestra red. Hoy en da se ha popularizado el uso de herramientas de seguridad como AirCrack la cual fue creada para analizar la seguridad de encriptaciones wep o wpa de nuestro mdem de Internet. Lamentablemente el uso de herramientas del tipo de AirCrack estn siendo usadas con la mera finalidad de robarse el Internet wifi del vecino por usuarios inexpertos.
Es por ello que AutoScan-Network se convierte en nuestro aliado para detectar estas violaciones de seguridad a nuestro mdem de Internet. A continuacin les muestro como instalar AutoScanNetwork en su distribucin de Gnu/Linux Ubuntu.
Paso 1 Nos dirigimos a la pgina oficial de AutoScan-Network y nos dirigimos a la seccin DOWNLOAD en donde elegimos nuestro sistema operativo y descargamos. Paso 2 Una vez que ya tenemos nuestro AutoScan-Network procedemos a a instalarlo de la siguiente forma. 1.- Abrimos una Terminal y nos situamos en el directorio donde descargamos nuestra herramienta con el siguiente comando. cd Directorio En mi caso descargue el archivo y lo almacene en la carpeta Descargas por tanto uso el comando siguiente cd Descargas 2.- Descomprimimos nuestro paquete con el siguiente comando tar -xzvf AutoScan-Network-Linux-1.50.bin.tar.gz 3.- Damos permisos a nuestro .sh resultante con con la instruccin chmod como se muestra a continuacin sudo chmod 755 AutoScan-Network-Linux-1.50.sh
Si todo nos resulta aparecer una serie de ventanas a las que basta con darles adelante, adelante, adelante para finalizar la instalacin. Finalmente, para activar la alerta de intrusos nos dirigimos a la pestaa intrusion alert le damos click y luego damos click Yes en la ventanita que se abre. Hecho eso en el momento que alguna persona se conecte a nuestro Internet nos aparecer una alerta con el titulo Alert Notification con fondo negro y amarillo (lo cual se ve de pelcula) y nos proporciona la IP-LOCAL y la IP-MAC del intruso con lo que ya podemos intentar combatirle, apagar el mdem llamar a la polica.
con probabilidad mejor que la par ser operaciones, donde es la longitud de la clave (tambin conocido como el espacio de claves). Otro factor determinante en el coste de realizar un ataque de fuerza bruta es el juego de caracteres que se pueden utilizar en la clave. Contraseas que slo utilicen dgitos numricos sern ms fciles de descifrar que aquellas que incluyen otros caracteres como letras, as como las que estn compuestas por menos caracteres sern tambin ms fciles de descifrar, la complejidad impuesta por la cantidad de caracteres en una contrasea es logartmica. Los ataques por fuerza bruta, dado que utilizan el mtodo de prueba y error, son muy costosos en tiempo computacional. La fuerza bruta suele combinarse con un ataque de diccionario.
LOGS
Un log es un registro de actividad de un sistema, que generalmente se guarda en un fichero de texto, al que se le van aadiendo lneas a medida que se realizan acciones sobre el sistema. Se utiliza en muchos casos distintos, para guardar informacin sobre la actividad de sistemas variados. Tal vez su uso ms inmediato a nuestras actividades como desarrolladores del web sera el log de accesos al servidor web, que analizado da informacin del trfico de nuestro sitio. Cualquier servidor web dispone de un log con los accesos, pero adems, suelen disponer de otros log, por ejemplo, de errores. Los sistemas operativos tambin suelen trabajar con los, por ejemplo para guardar incidencias, errores, accesos de usuarios, etc. A travs de los log se puede encontrar informacin para detectar posibles problemas en caso de que no funcione algn sistema como debiera o se haya producido una incidencia de seguridad
Por lo mismo contamos con otro comando, grep, con el cual podemos buscar cadenas de texto dentro de un log, de hecho es muy completo y nos permite usar comodines y varias opciones ms. Entre los ms comunes y que es ms comn encontrar en un sistema con Linux estn: auth.log Informacin sobre autentificaciones y loguemos boot.log Informacin del voto cron Tareas programadas (cron) daemon.log Alertas especificas de algunos demonios des Mensajes del kernel errors.log . el nombre lo dice everything.log . httpd si tenemos un servidor de apache aqui se registran los eventos, en sistemas debian tiene otro nombre mail.log Logs del servidor del correo, tambien puede variar, si usamos exim sera exim_main.log etc messages.log Alertas generales del sistema mysqld.log Registro de eventos de mysql secure Log de seguridad syslog.log Recursividad RlZ un log del sistema de registro de eventos vsftpd.log El log del servidor FTP (vsfp) Xorg.0.log El log de las X
Linux tiene un sistema muy simple para el manejo de eventos del sistema, o mejor conocidos como logs, con ver los logs nos es posible saber una increible cantidad de informacion, quien se logueo al sistema, quien hiso peticiones a un servidor de apache, que eventos han sucedido en el sistema, entre otros tantos, es por eso la importancia de saber donde buscar la informacion, y como encontrar. Los logs de Linux se encuentran en /var/logs/ la forma mas viable para verlos es con tail y su flag -f (para ver en tiempo real lo que se va escribiendo en los logs) si usamos F (mayuscula) nos mostrara todo el contenido del archivo, y aparte nos mostrara lo que se va escribiendo segundo a segundo, es quizas mas viable que un simple cat, lo que en archivos grandes se puede volver una pesadilla.
Test de Penetrcion
Test de Penetracin, tambin llamado a veces hacking tico es una evaluacin activa de las medidas de seguridad de la informacin. En los entornos de red complejos actuales, la exposicin potencial al riesgo es cada vez mayor y securizar los sistemas se convierten en un autntico reto. A travs del Test de Penetracin es posible detectar el nivel de Seguridad Interna y Externa de los Sistemas de Informacin de la empresa, determinando el grado de acceso que tendra un atacante con intenciones maliciosas. Adems, el servicio chequea las vulnerabilidades que pueden ser vistas y explotadas por individuos no autorizados, crackers, agentes de informacin, ladrones, antiguos empleados, competidores, etc. Los servicios de Test de Penetracin permiten: Evaluar vulnerabilidades por medio de la identificacin de debilidades de configuracin que puedan ser explotadas. Analizar y categorizar las debilidades explotables basadas en el impacto potencial y posibilidad de ocurrencia. Proveer recomendaciones prioritizadas para mitigar y eliminar las debilidades. El Test de Penetracin est dirigido a la bsqueda de agujeros de seguridad de forma focalizada en uno o varios recursos crticos, como puede ser el firewall o el servidor Web. Este ser el espacio de recopilacin de todos los Post relacionados con los entornos, retos, pruebas, wargames, CTF y documentacin de la temtica Test de Penetracin. La finalidad ser desarrollar los objetivos propuestos por los desarrolladores de las pruebas Test de penetracin: Test de Penetracin, tambin llamado a veces hacking tico es una evaluacin activa de las medidas de seguridad de la informacin. En los entornos de red complejos actuales, la exposicin potencial al riesgo es cada vez mayor y securizar los sistemas se convierten en un autntico reto. A travs del Test de Penetracin es posible detectar el nivel de
Seguridad Interna y Externa de los Sistemas de Informacin de la empresa, determinando el grado de acceso que tendra un atacante con intenciones maliciosas. Adems, el servicio chequea las vulnerabilidades que pueden ser vistas y explotadas por individuos no autorizados, crackers, agentes de informacin, ladrones, antiguos empleados, competidores, etc. Los servicios de Test de Penetracin permiten: - Evaluar vulnerabilidades por medio de la identificacin de debilidades de configuracin que puedan ser explotadas. - Analizar y categorizar las debilidades explotables basadas en el impacto potencial y posibilidad de ocurrencia. - Proveer recomendaciones prioritizadas para mitigar y eliminar las debilidades. El Test de Penetracin est dirigido a la bsqueda de agujeros de seguridad de forma focalizada en uno o varios recursos crticos, como puede ser el firewall o el servidor Web.
VUNERABLIDADES
Son errores que permiten realizar desde afuera actos sin permiso del administrador del equipo, incluso se puede suplantar al usuario, actualmente, ya hay muchas amenazas que tratan de accesar remotamente a los ordenadores, ya sea para hacerlos servidores ilegales de Spam o para robar informacin, de los agujeros ms famosos est el LSASS y el de SVSHOST, de los cuales el Sasser y Blaster se diseminaron rpidamente. Es imposible evitar las vulnerabilidades al 100% incluso cuando tenemos operando en nuestro sistema cortafuegos, antispam, antivirus, y detectores de codigo maligo. Lo que si es posible es tratar de evitarlas al maximo posible. tengamos presente que las comunicaciones en la red constan de 7
capas segun el modelo OSI, y las vulnerabilidades pueden estar presentes en varias capas, o incluso dentro del nucleo de nuestro sistema operativo. No debemos imaginar que con un buen antivirus podemos estar libres de vulnerabilidades, ya que las vulnerabilidades no son solo mediante virus que esten radicando en nuestra computadora sino que tambien pueden llegar a ser mediante ejecucion de codigo mientras visitemos alguna pagina web, o cuando el atacante tiene privilegios de acceso a nivel administrativo a nuestra computadora - -Actualice o cheque las actualizaciones cada cierto tiempo, pues eso permite casi adelantarse a cualquier peligro que se aproveche de la vulnerabilidad. 2- Activar Firewall. 3- Programar escaneos completos del Antivirus mensuales. 4- No caer en trampas obvias como correos spam diciendote que ganaste la loteria en un pais que nisiquiera conoces 5- Si vas a descargar musica, libros, programas ejecutables, etc. procura hacerlo solo de fuentes confiables 6Vacunar unidades externas. (Genaro aportation) Se evidencia la posibilidad de autenticarse como usuario con mximos privilegios (root) nicamente realizando conexiones simultneas, con CUALQUIER contrasea introducida como parmetro y contra un servidor vulnerable. Al cabo de un nmero indeterminado de intentos fallidos, el servidor aceptar la conexin y se realizar la autenticacin de forma satisfactoria. Sin ms. Sin shellcodes raras, sin casusticas extraas: nicamente tenemos que tener delante un servidor vulnerable, que cumpla con las siguientes versiones:
Son vulnerables todas las versiones de MariaDB y MySQL hasta la 5.1.61, 5.2.11, 5.3.5 y 5.5.22 NO SON vulnerables las versiones de MySQL 5.1.63, 5.5.24 y 5.6.6 NO SON vulnerables las versiones de MariaDB 5.1.62, 5.2.12, 5.3.6 y 5.5.23 Con la siguiente lnea en shell script, teniendo instalada una base de datos vulnerable en el sistema local, y contando con el cliente
'mysql', se podra realizar una autenticacin como usuario root sin conocer la contrasea: for i in `seq 1 1000`; do mysql -u root --password=blablabla -h 127.0.0.1 2>/dev/null; done Bsicamente, se ejecutar la sentencia de autenticacin mediante cliente por consola (comandomysql) como usuario root (-u root) y cualquier contrasea (--password=blablabla) contra el servidor vulnerable presente en el mismo sistema donde se ejecuta este script (-h 127.0.0.1), sin mostrar ningn mensaje de error por pantalla (2>/dev/null). Vamos a ver el ejemplo real. Las siguientes pruebas se han realizado sobre una Fedora Core 16, con MySQL versin 5.5.21:
En primer lugar, y para este ejemplo, cambiaremos la contrasea original de MySQL para el usuario root, que antes la tenamos establecida a 'password', para que ahora sea 'SuperPassWordDeLaMuerte':
Seguidamente, salimos de la sesin de root, y nos quedamos como usuario sin privilegios, y ejecutamos la secuencia anterior, que realizar conexiones como usuario root y cualquier contrasea, programando un total de 1000 intentos. A continuacin se ejecutar la consola de mysql satisfactoriamente:
Comprobamos el usuario con el que estamos autenticados mediante la sentencia select current_user(), obteniendo como resultado 'root@localhost'
Obviamente, este "ataque" ya se encuentra integrado como exploit de Metasploit Framework, permitiendo adems el volcado de hashes de todos los usuarios, todo ello con el mdulo mysql_authbypass_hashdump:
Enhorabuena desde SecurityByDefault a los descubridores de este bug, verlo para creerlo...De momento, una de las vulnerabilidades descubiertas favoritas para este ao 2012!
Descripcin La empresa de seguridad "Context Information Security" ha descubierto una vulnerabilidad en el servidor web Apache cuando est corriendo como "Reverse Proxy" permitiendo a usuarios externos acceder a servidores internos. Solucin Apache Foundatin ya ha publicado una actualizacin de seguridad para la versin 2.2.21que soluciona la vulnerabilidad. Una solucin temporal sera aadir una barra (/) extra a la regla rewrite como se indica en el ejemplo del ltimo prrafo en el detalle del aviso. Detalle El mdulo mod_rewrite de Apache proporciona un mtodo flexible para analizar sintcticamente (parsear) y reescribir solicitudes web al vuelo mediante expresiones regulares. Un uso comn de este mdulo es emplearlo como balanceador de carga entre varios servidores web o para segregar el contenido dinmico del contenido esttico cuando Apache se est ejecutando como "Reverse Proxy". El problema radica en la forma en la que mod_rewrite resuelve determinadas solicitudes GET cuando se utiliza el smbolo @. Las implicaciones de esto permitiran que, por ejemplo, una peticin de la siguiente forma: La URL resultante apuntara a Servidor Interno No Accesible y tomara Servidor Interno como usuario y 80 como password, solicitando la carga de la pgina console. El motivo de esta interpretacin se debe a que el mdulo mod_rewrite no discrimina determinadas solicitudes de acuerdo a la especificacin URI (RFC 3986), la cual admite la siguiente estructura:
En la informtica, una puerta trasera (o en ingls backdoor), en un sistema informtico es una secuencia especial dentro del cdigo de programacin, mediante la cual se pueden evitar los sistemas de seguridad del algoritmo (autentificacin) para acceder al sistema. Aunque estas puertas pueden ser utilizadas para fines maliciosos y espionaje no siempre son un error, pueden haber sido diseadas con la intencin de tener una entrada secreta Puertas traseras ms conocidas Los ms conocidos son Back Orifice y NetBus, dos de los primeros backdoors, que hasta nuestros das siguen vigentes aunque en menor cantidad dado que la mayora de los programas antivirus los detectan. Otro muy conocido es el SubSeven, que tambin fue introducido en millones de ordenadores en el mundo. Cuando Apache se inicia, comienza a esperar peticiones entrantes en determinados puertos y direcciones de la mquina en la que se est ejecutando. Sin embargo, si quiere que Apache escuche solamente en determinados puertos especficos, o solamente en determinadas direcciones, o en una combinacin de ambos, debe especificarlo adecuadamente. Esto puede adems combinarlo con la posibilidad de usar hosts virtuales, funcionalidad con la que un servidor Apache puede responder a peticiones en diferentes direcciones IP, diferentes nombres de hosts y diferentes puertos. La directiva Listen le indica al servidor que acepte peticiones entrantes solamente en los puertos y en las combinaciones de puertos y direcciones que se especifiquen. Si solo se especifica un nmero de puerto en la directiva Listen el servidor escuchar en ese puerto, en todas las interfaces de red de la mquina. Si se especifica una direccin IP y un puerto, el servidor escuchar solamente en la interfaz de red a la que pertenezca esa direccin IP y solamente en el puerto indicado. Se pueden usar varias directivas Listen para especificar varias direcciones IP y puertos
de escucha. El servidor responder a las peticiones de todas las direcciones y puertos que se incluyan. Por ejemplo, para hacer que el servidor acepte conexiones tanto en el puerto 80 como en el puerto 8000, puede usar: Listen 80 Listen 8000 Para hacer que el servidor acepte conexiones en dos interfaces de red y puertos especficos, use Listen 192.170.2.1:80 Listen 192.170.2.5:8000 Las direcciones IPv6 deben escribirse entre corchetes, como en el siguiente ejemplo: Listen [2001:db8::a00:20ff:fea7:ccea]:80 Consideraciones especiales para IPv6 Cada vez ms plataformas implementan IPv6, y APR soporta IPv6 en la mayor parte de esas plataformas, permitiendo que Apache use sockets IPv6 y pueda tratar las peticiones que se envan con IPv6. Un factor de complejidad para los administradores de Apache es si un socket IPv6 puede tratar tanto conexiones IPv4 como IPv6. Para tratar conexiones IPv4 con sockets IPv6 se utiliza un traductor de direcciones IPv4-IPv6, cuyo uso est permitido por defecto en la mayor parte de las plataformas, pero que est desactivado por defecto en FreeBSD, NetBSD, y OpenBSD para cumplir con la poltica system-wide en esas palaformas. Pero incluso en los sistemas en los que no est permitido su uso por defecto, un parmetro especial de configure puede modificar ese comportamiento. Si quiere que Apache trate conexiones IPv4 y IPv6 con un mnimo de sockets, lo que requiere traducir direcciones IPv4 a IPv6, especifique la opcin de configure --enable-v4-mapped y use directivas Listen genricas de la siguiente forma: Listen 80 Con --enable-v4-mapped, las directivas Listen en el fichero de configuracin por defecto creado por Apache usarn ese formato. -enable-v4-mapped es el valor por defecto en todas las plataformas excepto en FreeBSD, NetBSD, y OpenBSD, de modo que esa es
probablemente la manera en que su servidor Apache fue construido. Si quiere que Apache solo procese conexiones IPv4, sin tener en cuenta cul es su plataforma o qu soporta APR, especifique una direccin IPv4 en todas las directivas Listen, como en estos ejemplos: Listen 0.0.0.0:80 Listen 192.170.2.1:80 Si quiere que Apache procese conexiones IPv4 y IPv6 en sockets diferentes (es decir, deshabilitar la conversin de direcciones IPv4 a IPv6), especifique la opcin de configure --disable-v4-mapped y use directivas Listen especficas como en el siguiente ejemplo: Listen [::]:80 Listen 0.0.0.0:80 Con --disable-v4-mapped, las directivas Listen en el fichero de configuracin que Apache crea por defecto usarn ese formato. -disable-v4-mapped se usa por defecto en FreeBSD, NetBSD, y OpenBSD.