martes, 19 de junio de 2012

Guia sencilla para un Pen Test. Updated 1 !!!!

Actualizado constantemente en:
http://kinomakino.blogspot.com.es/p/comu.html

Pentest.- Fase previa al inicio.

Como todos sabéis, la primera parte de un test de vulnerabilidades/penetración es el acuerdo con la organización para definir el alcance de dicho test. No es lo mismo auditar el perímetro de la red, que vulnerar la seguridad del firewall y acceder a una DMZ. Tampoco es lo mismo auditar una aplicación web susceptible de XSS, que provocar una denegación de servicio en la aplicación de gestión de la empresa.
Para realizar un buen trabajo, y no incurrir en falsas expectativas con el cliente, o simplemente no dañar las infraestructuras de la empresa, es importante definir todos los puntos que van a ser objeto del mismo, y lo que es mas importante, el como. Sugiero una seria de preguntas a realizar en las entrevistas previas  o reflexiones con los responsables de la organización, de carácter ejecutivo (nunca técnico, aburres al gerente) como las que pueden ser:
  • ¿Quien autoriza el test de intrusión?. Quizás al informático le guste tener auditados sus sistemas, pero al gerente no le haga mucha gracia que "intrusos" meroden por sus instalaciones ( porque como somos buenos, lo vamos a lograr xD).
  • ¿Cual es el objetivo del test?. Hay que intentar percibir lo que la organización espera de nuestro trabajo. Quizás a la empresa le importe menos un defacement en su web, que pueden solucionar en  5 minutos, que el acceso a su red física.
  • ¿Cual es la linea de tiempo?. Quizás a primeros de mes, cuando la empresa cierra su facturación, no le interese que estemos ralentizando los servicios.
  • ¿Comprende el cliente la diferencia entre un test de vulnerabilidades, que simplemente informará de los fallos encontrados, y un test de intrusión, en el que "entraremos hasta la cocina" llegando a encontrar 0-day´s?.
  • ¿Participará el departamento de tecnologías de la información en el proceso?. Puede ser que dediquemos 10 días a la seguridad de un sql server encontrado, que le quedan 2 semanas de vida porque va a ser migrado a otro server/versión.
  • ¿Están permitidos los ataques de ingeniera social?. No se si le hará gracia al gerente que te ligues a su secretaria por badoo para sacar información.
  • ¿Están permitidos los ataques de denegación de servicio?. Esta no la explico xD.
  • ¿Están permitidos los ataques a elementos físicos?. Por ejemplo, robar una tarjeta de acceso a instalaciones. Conectar el pc en puntos no vigilados. Acceder al PTR del ISP para hacer MITM físico.
  • ¿Restricciones en rangos de ip´s?. Aunque sea un test de caja negra, puede ser que la organización no quiera auditar un servidor en concreto...porque es el servidor del porno del informático? o porque es un sistema en outsourcing. Es importante transmitir que aunque un aparato/sistema conectado a la red, aunque sea mantenido por otra empresa, o sea propiedad de otra empresa, puede ser el eslabón de la cadena a romper para insecurizar la organización.
  • Especificaciones legales del sector de la empresa.
  • Servicios IT externos. Si la empresa tiene un servidor de correo, pero tiene el registro mx en un proveedor externo, podemos atacar dicho proveedor para conseguir auditar el servidor interno de la empresa?.
Se me ocurren muchas preguntas, pero casi todas derivadas de estos aspectos. Seguro que tú tienes en mente muchas mas. Lo que no se es por qué no te animas a comentarlas!!!!
Otro día seguiremos con más aspectos "ejecutivos" y lo mismo de precio xD.

UPDATED: Ejemplo sencillo de contrato pen-test. básico, pero se puede trabajar sobre el.
http://www.counterhack.net/permission_memo.html

Inseguros !!!

martes, 12 de junio de 2012

nmap buscando mysql comprometidos...

Imagino que todos los lectores de este humilde blog hayan leído la nueva vulnerabilidad publicada recientemente sobre las bases de datos Mysql y MariaDb. Vamos a jugar un poco con el nmap, y repasar los conceptos que anteriormente vimos.
Lo primero que deberíamos hacer, es buscarnos un rango de ip´s de algún país comunista, fascista, anarquista, o que no tenga pinta de tener muy buenos acuerdos en materia de piratería informática con España. Para sacar una lista por países me gusta esta web. Sabiendo las versiones afectadas es cuestión de jugar un poco. Podríamos añadir un -o para ver la versión del sistema operativo, en fin...
Nmap  -sS -Pn -n -v -p3306 --open --script=mysql-info  -T5 piripapapapa.
De esta  manera, buscamos puertos Mysql abiertos, de una manera rápida, y usando el motor de scripts y el correspondiente mysql-info nos dará la información que necesitamos. Os recomiendo que useis este script sobre vuestros sistemas a auditar, para ver la información que arroja.
Como se que sois un poco vagos, hay algún script específico para encontrar esta vulnerabilidad. Lo ideal para que funcione sería copy&paste en un fichero y guardarlo en la carpeta de scripts de nuestra navajasuiza.
El uso, tal y como documenta el script es :
nmap -p3306 --script mysql-vuln-cve2012-2122 <target>
nmap -sV --script mysql-vuln-cve2012-2122 <target>




Si queréis ir mas allá sobre un host comprometido, basta con usar la consola-hacker msfconsole.
msf > use auxiliary/scanner/mysql/mysql_authbypass_hashdump
msf  auxiliary(mysql_authbypass_hashdump) > set USERNAME root
msf  auxiliary(mysql_authbypass_hashdump) > set RHOSTS piririririrara
msf  auxiliary(mysql_authbypass_hashdump) > run


el resultado es un fichero txt con los hashes.


A fecha/ de publicación, no he encontrado ningún servidor publicado en internet, en un rango de ip´s digamos de algún país del lejano oriente. Hay muchos mysql conectados a internet, pero los que he encontrado están filtrados a un host de confianza. Por esto la recomendación de seguridad es que no expongas nunca una BBDD si no es completamente necesario. Si debes hacerlo, configura los host permitidos. Por ejemplo, en el fichero my.cnf, en la sección del demonio mysqld cambia o añade una linea para bind-address para localhost (127....)
Si encuentro alguno abierto en internet lo actualizaré, pero vamos...

Primer caso puerto filtrado y segundo caso version no vulnerable.

miércoles, 6 de junio de 2012

Nmap 6 probandooo

Cuantas noticias habéis leído de la nueva versión de nmap, en concreto la 6? Gracias a la nota de prensa, se que hace unos años que no actualizan, que han cambiado no se cuantos líneas de código, implantación total de IP V6 mas N.S.E Bien, mola !!! Vamos a probarlo !!!
Lo primero que tienes que hacer es descargarlo e instalarlo. Algo tal que así.
bzip2 -cd nmap-6.00.tar.bz2 | tar xvf -
cd nmap-6.00
./configure
make
su root
make install
Lo primero que he hecho para probarlo, tal y como hacen las revistas de informática de los periódicos ( junto al playboy e interviu...) es comparar los típicos scaneos de puertos, sencillos, en la misma máquina virtual sin actualizar y después. Teniendo en cuenta la carga de la red, siendo este dato no muy fiable tenemos esto:














Como podéis apreciar, hay alguna diferencia en cuanto al rendimiento. Imagino que en un entorno controlado, quizás en la red local, los tiempos serían algo mas revelador, pero me gusta probar siempre las cosas contra "el internet" !!!. Lo que si os puedo decir, es que por mucha mejora que traiga NMAP, las técnicas de scaneo son las que son, no han cambiado, y no vamos a descubrir nuevos datos usando los mismos comandos ( estaba claro, pero para los ilusionados).
Mas cosas...Nmap Script Engine. Podéis comprobar los nuevos scripts en vuestra carpetica SCRIPTS del directorio NMAP. Algunos ejemplos:

Todos los disponibles...oficialmente: http://nmap.org/nsedoc/index.html

Vamos a probar uno sencillo. DHCP discover nos va a dar la información del servidor DHCP, sin llegar a conceder la IP. Tiene varios parámetros como veis en la web oficial. Como siempre en este mundo, las cosas no son como parecen, y si haces lo que dice el manual ( seré hacker por no hacer las cosas como dicen los manuales?...)
nmap -sV --script=dhcp-discover <target>  no te rulará.

mejor si le decimos al nmap que vamos a usar un puerto udp, se lo decimos del tirón, o no, da igual:














Hay gente muy vaga, que prefiere lanzar TODOS los script´s, sin saber que hace. Así no men !!! No obstante, se pueden tirar los scripts según su categoría, según si nivel de "peligrosidad" safe/intrusive. También se pueden usar operadores lógicos para añadir scripts o discriminar ( no useis XOR !! no seáis tannnnnnnnnn). Todas estas cosas las soñé hace un tiempo, pero podeis leerlas aquí.
Vamos a probar el set de scripts de la categoría discover. Insisto en checkear la lista completa, e ir lanzando uno a uno, estudiando los parámetros, los resultados y todas las variaciones.



















Como veis, todos esos errores, ejecutados uno a uno, con sus parámetros y cosicas, son efectivos, así no valen para nada.

Iré probando mas cosas sobre los NSE que sin duda tienen juego para rato, pero... os animáis vosotros a escribir sobre vuestros script´s favoritos? queréis que montemos algún "pollo-lab" para probar alguno?
Saludos mama y papa que me leéis xD.