2011-11-17

Pruebas de Respuesta de HTTPS

Debido a mi trabajo necesito hacer varias pruebas por consola de como responden los servicios y para esto usualmente  uso telnet, pero cuando te tienes que conectar a un servidor HTTPS el protocolo de SSL no te permite hacer consultas y la respuesta siempre será que no te puede mostrar nada.

Buscando encontré esta pagina donde me indicaba como hacer la conexión, pero como esta en ingles y es un poco cortante decidí escribir aca como hice la prueba.

Bueno para esto tenemos que tener instalado el paquete completo de openssl, el nos provee el comando que vamos a usar y que se ejecuta así

root@localhost:~# openssl s_client -connect www.gmail.com:443

Con esto vamos a obtener la conexión con el protocolo SSL y cargar datos por consola, esto se usa para ver respuestas de los servidores, pero también nos sirve para capturar las características de un certificado. Como se ve a continuación en un ejemplo de las pruebas

root@localhost ~$ openssl s_client -ssl3 -connect www.gmail.com:443
CONNECTED(00000003)
depth=2 /C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
verify return:1
depth=1 /C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA
verify return:1
depth=0 /C=US/ST=California/L=Mountain View/O=Google Inc/CN=mail.google.com
verify return:1
---
Certificate chain
0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=mail.google.com
i:/C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA
1 s:/C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA
i:/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIDIjCCAougAwIBAgIQK59+5colpiUUIEeCdTqbuTANBgkqhkiG9w0BAQUFADBM
MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0xMTEwMjYwMDAwMDBaFw0x
MzA5MzAyMzU5NTlaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
-----END CERTIFICATE-----
subject=/C=US/ST=California/L=Mountain View/O=Google Inc/CN=mail.google.com
issuer=/C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA
---
SSL handshake has read 1797 bytes and written 297 bytes
---
New, TLSv1/SSLv3, Cipher is RC4-SHA
Server public key is 1024 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : SSLv3
Cipher : RC4-SHA
Session-ID: DDA26B285F446C6432E7EC512F4B062CCF4C0A1221CA83E4BE756CCC41814339
  Session-ID-ctx: Master-Key: D6CE1C410D6AD7D9768D69E72F6B68655B87F6D23D80D7DCB4F6B154AE9C62730ACAEC034764F9AD5114CC4F36304EAC
Key-Arg : None
Krb5 Principal: None
Start Time: 1321550612
Timeout : 7200 (sec)
Verify return code: 0 (ok)
---
GET / HTTP/1.1
Host: www.gmail.com:443

HTTP/1.1 301 Moved Permanently
Location: https://mail.google.com/mail/
Content-Type: text/html; charset=UTF-8
X-Content-Type-Options: nosniff
Date: Thu, 17 Nov 2011 17:23:58 GMT
Expires: Sat, 17 Dec 2011 17:23:58 GMT
Cache-Control: public, max-age=2592000
Server: sffe
Content-Length: 226
X-XSS-Protection: 1; mode=block


Aunque acá le recorte unas cosas se puede ver todo el certificado y la carga de los datos que realice

2011-11-15

Usar Armitage en BT5

yo se que existen múltiples manuales de como usar Armitage en Backtrack 5 y en otros montajes, sin embargo siempre me puso problemas usarlo. Siempre me pasaba que la primera vez me funcionaba y conectaba bien, pero la segunda y demás no me conectaba, entonces me puse a revisar que pasa.

Para esto instale una maquina virtual con BT5 cosa que si me la daño no hay problema, además ya esta instalado el armitage, que para los que no saben es una herramienta gráfica para usar Metasploit, entonces una vez explicado esto empezare con lo que tienen casi todos los manuales que es como hacer funcionar Armitage por primera vez.

Lo primer es ir a directorio /opt/framework/msf3 y ejecutar el comando msfgui, como se ve a continuación


Esto ejecutara el framework gráfico de metasploit, que la verdad deja mucho que desear, pero que nos sirve para generar la conexión a a base de datos y poder tomar el usuario y la contraseña con el menú File -> Show connection details, como se ve en la imagen a continuación


Esto nos mostrara la siguiente ventana donde están los datos de conexión a la base de datos


Bueno con esos datos puedes lanzar el armitage, usando el menú Applications -> Backtrack -> Exploitation Tools -> Network Explotation Tools -> Metasploit Framework -> Armitage, esto les mostrara una ventana donde se piden los datos de conexión y el tipo de base de datos que se va  usar, como se ve a continuación


Acá es donde usas los datos que te mostró la anterior ventana, lo que debes hacer es digitar el pass según los datos obtenidos y dejar la base de datos en postgresql.

Ahora antes de dar conectar (Connect) debes cerrar el Metasploit GUI, pero teniendo en cuenta que cuando te pregunte que si deseas bajar el Metasploit le digas NO este es el truco. hay si le das conectar y el te debe mostrar algo muy similar a lo siguiente


Bueno hasta hay siempre me había funcionado  pero el lío era cuando apagaba y necesitaba usarlo por segunda vez, pero entendí que el problema se debe a que ya no se requieren hacer todos los pasos ya que a conexión ya queda lista para establecerse y ya solo se requiere lanzar el Armitage desde el entorno gráfico y mostrara la siguiente ventana


Y al conectar este te preguntara si quieres lanzar el RPC de Metasploit, y pues obviamente dices que si y el se conecta con esos datos que tu ya tenias y sin necesidad de los otros pasos


espero es sirva

2011-11-08

Copiar Archivo entre Maquinas Usando NetCat

Yo se que existen mil formas de copiar un archivo de una maquina a otra mucho más sencillas, pero les voy a explicar las condiciones y entenderán por que necesite hacer esta operación así.

Teníamos una maquina windows XP que tenia un archivo con un nombre muy largo, así que al intentar copiarla sobre otro windows XP no permitía la copia, esta maquina era de una gerente que se le estaba haciendo un backup y según ella era imposible cambiarle el nombre al archivo. La verdad a mi me preguntaro solo como se me ocurría pasar eso y por hacer una prueba de la eficacia de NetCat y dejar con la boca abierta a esos windowseros se me ocurrio hacerlo así.

En ambas maquinas las arranque con Backtrack5, ya que era el que tenia a la mano y además sabia que tenia el netcat, entonces lo primero es que en la maquina donde se va a copiar se ejecuto el siguiente comando

root@bt:~# ncat -l 9000 > nombre\ largo\ que\ se\ inventaron\ en\ win.pdf

y verificamos que este escuchando así


Ya una vez estamos seguros entonces desde la maquina de la gerente ejecutamos este comando


root@bt:~# cat nombre\ largo\ que\ se\ inventaron\ en\ win.pdf | ncat 10.0.1.50 9000

y listo ya tenemos en la maquina de destino el archivo con el nombre que tenia originalmente y sin la pesadilla de los nombres de windows.

Obviamente este como este fue de afán fue así con solo un comando, pero con tiempo se puede hacer un script que envié todos los archivos del sistema usando netcat.

SSH falseando la IP con una de la maquina

En uno de mis proyectos se presento un problema por que los ISP no son capaces de enrutar las redes de conexión de una WAN, me explico para los que no saben de que estoy hablando. Tu tienes un FW con Debian y tienes una tarjeta configurada para Internet, una tarjeta configurada para tu LAN (192.168.0.0/24) y una tarjeta donde configurada con el direccionamiento que te dio tu ISP para la WAN (10.0.1.0/29), esa última red nunca la colocan en las tablas de enrutamiento, entonces si quieres hacer ssh al FW de la otra sede te toca desde una maquina interna.

Te imaginas tu un lunes festivo que te llamen que necesitan probar una configuración en esa otra sede y tu no tengas ninguna maquina interna en tu red LAN desde la que puedas saltar a esa otra sede. Bueno pues me paso este lunes festivo, pero como todo en Linux existe una solución sencilla como siempre.

Primero les voy a colocar una gráfica sencilla de como es la red


Entonces la IP de la sede principal es 192.168.0.1 y la de la sede secundaria es 192.168.10.1, por lo que para poder usar SSH me tocaría desde adentro de la LAN pero el comando ssh posee una opción que me permite indicarle con que IP de la maquina salir, por lo que el comando queda así

root@localhost:~# ssh -b 192.168.0.1 192.168.10.1

Así el FW de la sede secundaría recibe la conexión con la IP 192.168.0.1 y me permite tomar control del mismo, siempre y cuando en las reglas del FW este permitido