Вы находитесь на странице: 1из 12

====================================================

Metasploit
====================================================
iniciar metasploit
service metasploit start
service postgresql
msfconsole
porque brinda todas la disponibilidad del framework

===================================================
comandos
show options: muestra las opciones iniciales del framwore
IRB: inicia el interprete de ruby
info: permite dar informacion de un modulo
Setg: permite crear variable globales dentro del framework esto ayuda a no tene
r que estar escribiendo continuamente las sentencias usadas habitualmente. Muy ti
l.
show scanners : muestra los scanners auxiliary
load nessus: carga nessus
nessus_help : muestra las opciones de nessus
show payloads: mustra los payloads
Idenfiticar
search y show: el primero puede ser ms especifico y buscar algo para cierto servi
cio, mientras que el otro busca de forma general.
search portscan : busca scanner de puertos.
scaneo tcp: muestra todos los puetos abiertos pasados como parametro en el show
options, muy bueno para saber puertos abiertos
escaner de ip : muestra informacion de un equipo.

Filtros de busqueda
exploits/windows
exploit/linux
auxiliary/scanner
auxiliary/scanner/servicio !!!
===================================================
Conceptos
Explotacion
Activa : explota una maquina especifica.
Pasiva : esperar que la maquina se conecte, sitios web, ftp, navegadores.
poc (pruebas de concepto): refleja las vulnerabilidades de un sistema, listo par
a ser explotado
Payloads : son cargas que se combinan con los exploit para realizar el trabajo d
e ingresar a la victima
existen:
inline
meterpreter
passivex
inline
===================================================
auxiliares
realizan multiples tareas:
escaneo
auxiliary/scanner/snmp/snmp_enum
Auxiliary/scanner/smb/smb_version
Auxiliary/scanner/http/webdva_scanner
enumeracion

====================================================
nmap con metasploit
existe la posiblidad de extrear la info de nmap para metsploit.
msf>db_import archivo.xml
msf>db_hosts -c address

o hosts

con el anterior comando se comprueba si realmente se importo los datos


hosts
services

====================================================
workspace
son entornos de trabajo donde se guarda lorecolectado, para crear uno se usa
workspace -a nombre del entorno
luego para usarlo se usa
workspace nombre
===================================================
Base de datos con metasploiit
con ello podemos obtener todos los beneficios del framework
init.d/postgresql version start
service postgresql start
service metasploit start
root@bt~# /etc/init.d/postgresql-8.3 start
service postgresql star
===================================================
escaneo de servicios
Podemos comenzar con los portscan, son auxiliares que permiten obtener informaci
on detallada de puertos.
si se tiene informacion sobre algun servicio se puede usar
auxiliary/scanner/nombre del servicio, por ejemplo
auxiliary/scanner/ftp nos mostrara escaner de ftp
METERPRETER
Es un payload que se carga despues de que una vulnerabilidad es explotada, es co
mo la informacion devuelta cuando se desencadena una explotacion.
Antes de nada vamos a explicar los payloads a fondo
existen tres tipos de payloads para el framework son:
simple
stagers
stages
supongamos un payload

"windows/shell_bind_tcp" este es un payload simple con no stage


"windows/shell/bind_tcp" este es un stager(bind_tcp) y un stage (shell)

simple: son payloads que se contienen a si mismo y se complementan a si mismo, e


stos pueden hacer algo simple como aadir un usuario al sistema o ejecutar un proc
eso.
Stagers: COnfiguran una conexion de red entre el atacante y la victima, se han d
iseado para ser pequeo y fiables. es dificil ser las dos por lo que metasploit usa
ra la mejor en el caso concreto.
stages: Son componentes que se descargan por los modulos Stgers, entre ellos ten
emos a meterpreter
Ahora con estas definiciones podemos dar una clara definicion de meterpreter
meterpreter
es un payload que opera bajo la inyeccion de dll, este recide en la memoria del
host remoto y no deja rastros en el disco duro haciendo dificl la deteccion por
tecnicas forences, este utiliza la llamada inyeccoin reflexiva, que compromete u
n proceso del host para funcionar. (interesante)
Funcionamiento de Meterpreter
Cuando el sistema es comprometico se puede cargar un pyaload de este tipo, luego
inicialmente se envia una carga para devolverla a meterpreter, luego se envia o
tra inyeccion DLL, para establecer uanconexon cliente servidor entre losdos host
, lo mas emocionante es que esta se ecrypta. evitando saber la conexion atacante
.

Usando Meterpreter
1) Antes de usarlo necesitamos comprometer un sistema o buscar una vulnerabilida
d.

===================================================
escaneo de ip

===================================================
escaneo de vulnerabilidades
Por excelencia la herramienta mas usada y de mejor contenido es Nessus, una apli
cacion que ejecuta para saber que tipo de vulnerabilidades contien el equipo.
Aclaracin!!
Los escaners de vulnerabilidades generan mucho trafico, si el objetivo es no ser
descubrierto, es mala idea usar uno de estos (TRAFICO ICMP)
existe una aplicacion web para nessus, con todo su potencial.

===================================================
Protocolos y aplicaciones atacadas
Maquina de metasploit
PUERTO
21
ftp: se utilizo un escanner de servicios, con ello se logro obtener el tipo de s
ervicio ftp que corre para este fue
vsFTPD 2.3.4
adicional a ello se uso un auxiliar para determinar si por ataque de fuerza brut
a se obtenia un login, en el caso fue correcto se obtuvo un login como usario sw
eep.
Luego con el servicio y su version se busc una vulnerabilidad y un exploit, en es
te caso se obtuvo un backdoor, el cual logro ingresar a la maquina, permitiendo
escritura y lectura.
vulnerabilidad VSFTPD: se obtuvo porque en el archivo se obtenia una puerta trac
era al instalaro, es decir introdujeron en el archivo vsftpd-2.3.4.tar.gz una pu
erta tracera.
Mas ataques
Luego de realizar un ataque de fuerza bruta se logro obtener dos usuarios con co
ntrasea, para ingresar al servicio ftp,
la mala configuracion de este servicio puede permitir el ingreso a un desconocid
o, como lo es la directiva
<anonymous> yes su valor por defecto.
Cuando se ingreso al servicio ftp, el usuario user, tena privilegios de escritura
y lectura, inicialmente se obtuvo la informacion sobre el historial bash, para

saber si el administrador realizo alguna tarea, se encotr una serie de instruccio


nes para crear un usuario ssh con llave y algoritmo dsa.
Al entrar en ftp en el home del usuario se logro descargar la llave publica y la
s llaves privadas del usuario.
con nmap y sus script se logro obtener el fingerprint de la llave publica, ahora
para la llave publica al final se observa el usuario y el cliente, para este ca
so fue
usuario@metasploitable
user@client
algoritmo DSA
IMPORTANTE
- Recolectar archivos .bash historial
- recorrer carpetas con configuraciones por ejemplo la .ssh que est oculta y con
el comando ls -la muestra informacion.
conclusion
Los usuarios obtenidos por medio de un ataque de fuerza bruta usando metasploit
con el scanner de ftp y luego login, tienen permisos R/W, auque no sean root, se
pudo obtener informacion confidencial que conlleva a un nuevo ataque tipo ssh,
ya que se logr almacenar las llaves publicas y privadas el path de configuracion
de ssh /user/.ssh, en ese path se almacenan las claves de los usuarios, tanto p
ublicas como las privadas
id_dsa
id_dsa.pub (publica)
el problema surge por una mala configuracion de usuarios y contraseas que permite
ingresar facilmente al servidor ftp, no es aconsejable usar identificacion joe
es decir user y pass iguales, adems se debe configurar bien el archivo /etc/vsftp
d/vsftpd.conf
ahora si la versin es vulnerable lo mas obvio es actualizar la version a la mas r
eciente para evitar esa vulnerabilidad.

================================================
PUERTO
22
ssh: Se utilizo escaner de servicios como auxiliares aparecieron 9 scanner, la i
ntencion es determinar el servicio. Para ello se uso uno a uno.
se logro encontrar con nmap y el script -A, informacino sobre dos llaves

Medidas de seguridad para el protocolo ssh

1) generar una clave privada y constrasea, si la necesidad no es automatizar algo


.
Recordar donde se guarda las llaves privadas y publicas de ssh, por defecto
usuario/.ssh/id_rsa.pub
usuario/.ssh/id_rsa
es mejor cambiar la ruta para la proxima

===========================================
Puerto 23
Telnet
Es un servicio de control remoto para acceder a un servidor o equipo de forma re
mota a diferencia de ssh este envia su informacion sin encriptar lo que lo hace
muy critico en cuestiones de seguridad, para algun sniffer.
se logro ingresar usando un ataque de fuerza bruta, con lo cual se obtuvo un usu
ario especifico y su contrasea, para el caso fue msfadmin y contrasea fue msfadmin
, esto es una mala configuracion de contrasea.
el id mostradba privilegios de lectura, escritura y ejecucin.
============================================
Puerto 25
smtp
Protocolo de transferencia de mensajes, permite la gestion de envio y recepcion
de mensajes
la comunicacion se realiza por MUA con un cliente y un servidor, para enviar un
mensaje el servidor recibe la peticion y envia un 220 si el servicio esta dispon
ible o un 402 si el servicio no esta disponible,luego el cliente comienza la tra
nsaccion del correo con una orden MAIL FROM con unargumento de la direccion del
correo, luego hay que enviarle RCPT que es el destinatario, luego se le envia un
DATA para que sepa que luego de eso sigue la informacion del correo, luego envi
ara, si no hay mas se le envia un argumento QUIT con lo cual cierra la conexion.
Algo interesante es comenzar un ataque por ac puesto que facilmente se puede obte
ner usuario, entonces generalmente los usuarios de mail son iguales a los del si
stema, ya se puede empezar a atacar otros servicios a partir de los nombres obte
nidos con smtp

===========================================

Puerto 53
DNS
es el puerto utilizado por defecto para servicios de servidores de nombres de do
minio, la version para y servicio que corre en ese puerto es un ISC BIN 9.4.2
Funcionamiento DNS
Cuando un usuario realiza una peticion para encontrar una URL especifica o un do
minio, el servidor entre en juego es decir recive esa peticion por ejemplo itm.e
du.co, entonces el buscara donde esta el dominio .co luego se ira por .edu hasta
alcanzar el dominio solicitado, consultando a la raiz de servidores de dominio.
Pero que sucede cuando tu ya has visitado este sitio ?, pues el servidor DNS ti
ene una funcion de guardar cache es decir los dominios visitados guardarlos para
mejorar el rendimiento del servidore, entonces el provedor de servicios cuenta
con sus propios DNS.
Peticion DNS
cliente envia una peticion para resolver el nombre de dominio.
Servidor recibe ese nombre de dominio y lo resuelve con una direccion IP.
viceversa
Cliente envia una direccion IP para resolver el nombre asociado con la ip
servidor responde con el nombre de dominio para esa ip pedida.
Para este puerto se busco exploits para la version que corria el servicio DNS qu
e era BIND en su version 9.4.2, se encontro varias vulnerabilidades una de ellas
era el envenenamiento de cache dns, que consiste en envenenar el cache, remplaz
ando alguna peticion del cliente dns usual como por ejemplo www.google.com por u
na direccion ip o dominio de nuestro interes seguramente uno que este infectado
para que se instale una backdoor o un spyware o troyano etc etc.
Tambien existe la posibilidad de realizar un script en python que cubra estos re
querimientos ya que python contiene un modulo un paquete dnspython muy bueno.

============================================
Puerto 80
servidor apache httpd
El servicio que corre es el http un protocolo de transferencia de hipertexto, cl
iente servidor, donde se realizan transacciones HTTP, entonces cuando el cliente
realiza una peticion, es decir el usuario accede a una url, entonces el cliente
web (mozila,safari etc) descodifica la URL, separando sus diferentes partes, co
n ello logra identificar el documento http, el protocolo de acceso, la direccion
DNS, luego se genera una peticion tcp/ip , al realizar la peticion se envia el
comando necesario (get, post, head), la direccion del objeto requerido (url), do
nde la url contiene el host que sigue la direccion del servidor, la version del
protocolo http empleada, y variables de informacion del broswer. El servidor dev

uelve la peticion al cliente y luego cierra la conexion TCP


CLIENTE ENVIA ESTO
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: nombre-cliente
[Lnea en blanco]
LA RESPUESTA DEL SERVIDOR ESTA FORMADA POR UN CONTENIDO ENCABEZADO
HTTP/1.1 200 OK
Date: Fri, 31 Dec 2003 23:59:59 GMT
Content-Type: text/html
Content-Length: 1221
Y LUEGO EL CONTENIDO SOLICITADO POR EL CLIENTE
<html>
<body>
<h1>Pgina principal de tuHost</h1>
(Contenido)
.
.
.
</body>
</html>

Analizando a apache httpd 2.2.8 (ubuntu) dav/2


es el servicio que esta corriendo la maquina metasploitable para el puerto 80
el ataque consiste en realizar una denegacion de servicio mediante un scrip desa
rrollado en perl, el cual realiza peticiones HTTP con cabeceras que satura los r
ecursos del servidor ocasionando que el uso de la memoria sea el maximo y el ser
vidor colapse por falta de recursos.

==========================================
Puertos cerrados 88 Kerberos cerrado

===========================================
Puerto 111

Servicio rcpbind (mapeador de puertos)


Es un descrubridor de puertos, que se usa para un procedimiento de llamada remot
a, es decir proporciona los servicios para realizar un llamado remoto de servici
os especificos, entre ellos NFS, donde permite a ordenadores exportar o importar
sus ficheros,entonces los sistemas de ficheros de equipos remotors podrian ser
tratados como locales, este utiliza el protocolo RCP
al realizar un escaneo con nmap y ejecutra los script de nmap, el resultado fue
una serie de programas que usan el protocolo RCP, con su programa, version, puer
to, protocolo y servicio. Ahora el funcinoaiento es el siguiente, cuando un clie
nte solicita el numero de programa debe saber el puerto, este cliente primero co
nsulta el demonio que guarda la informacion de dicho programa, es decir que puer
to est ejecutando en ese momento de solicitud el programa requerido.
La mquina metasplotaible, tiene el puerto RPCBIND abierto, ya que contiene el dem
onio que espera a la solicitud del cliente, en la informacion del rpc, se obtien
e el programa la versino, el puerto/protocolo y el servicio. El interes radica e
n nfs. el cual permitir compartir una carpeta.
1) si se sabe que corre un servicio de rpc, entonces podemos realizar una consul
ta de rpc.
rpcinfo numero ip
con ello nos mostrara todos los servicios que contiene este protocolo. La idea
es poder identificar que ficheros se estan exportando y ver si se puede exportar
desde el atacante hacia la vctima.
Una vez sepamos que contiene un servicio de mount, es porque permite el host una
importacion de archivos remotos, lo que se suele realizar es crear una llave de
ssh y montarla en el fichero para luego cuando se ingrese por ssh, con la llave
, el protocolo la busque y permita el loggin.
2) luego se puede consultar con showmount, para obtener informacion sobre el est
ado del servidor NFS, este consulta el demonio del host remoto.
3) Al realizar la consulta
showmount -e ip,
nos da como resultado la informacion que esta montando para los host remotos, pa
ra este caso es :
/ *
es el directorio raz, con ello ya podemos realizar nuestra autenticacion con ssh.
4) Una ves sabemos que esta compartiendo archivos en red, podemos crear una llav
e por ssh para pasarla al ficheo y permitir identificarse como algun usuario SSH
, esto sucede porque la maquina esta compartiendo el directorio raiz.
5) Para realizar aquello usamos
mkdir -p /root/.ssh donde p es parentezco si existe, no mostrar error. LUego co
n cd nos dirigimos hacia la carpeta.
generamos la llave y le ponemos un nombre para luego exportar el archivo con mou
nt hacia el servidor objetivo.

mount -t nfs ip:/ /mnt -o nolock


donde /mnt es el directorio donde se va a montar la /* del servidor.
luego se debe modificar el archivo de las llaves que genera ssh en el servidor o
bjetivo pasandole la llave generada por nosotros los atacantes,
cat direcciondelarchivo.pub >> authorized_keys
listo.
Por ultimo se puede ya ingresar a ssh con el user realizado por nosotros.
luego se ingresa con ssh pasandole la llave que generamos que ya se ncuentra en
el servidor y la clave autorizada,
ssh -i direccion de la llave root@ip
listo.
Solucion
Limitar a las ip que se conectan y no permitir la conexion con ip diferentes, co
mportar archivos que no esten en la carpeta raiz, es decir la informacion especi
fica que este en un path que no genere riesgos para cambiar archivos.

link
http://www.computersecuritystudent.com/SECURITY_TOOLS/METASPLOITABLE/EXPLOIT/les
son4/

RCP
Es un protocolo de red que permite ejecutar un codigo en una maquina remota, sin
tener que preocuparse sobre la conexin entre ambas, entonces el cliente realiza
una peticion a un procedimiento y el servidor o el daemon RCP escucha ese proce
dimiento y de acuerdo al numero de programa que contiene RCP ejecuta la instrucc
ion requerida. Entonce este enruta las peticioness de clientes.
Con RCP podemos utilizar como aplicacion NFS que simplemente son sistemas de fic
hero compartidos en una red local.
NFS
Los clientes acceden a los archivos en el servidor.
Los archivos pueden ser mostrados a todos los host y modificar y crear archivos
etc. etc.

Este utiliza procedimientos los cuales son interpretados por el RCP y llama al p
rograma asignado en la solicitud.
Para solicitar informacion al portmap que ahora es un rcpbind el cual me brinda
la informacion sobre los puertos que esta escuchando el demonio asi como los ser
vicios y programas, con ello podre realizar un ataque, para este caso observamos
que mount esta activado, lo cual nos permite montar un fichero desde la red.
============================================

Lo realizado
Nov 26
Se logro ingresar al servidor por medio de RPC y NFS, puesto que rcpbind logro b
rindar una informacion sobre los programas y procedimientos que corre ese protoc
olo. Ademas se logro usar un modulo escaner de metasploit para escaner servicios
rpc.

Вам также может понравиться