martes, 17 de julio de 2018

Hydra - Ataque por contraseña

¿Qué es un ataque por contraseña?
Un ataque por contraseña se trata de adivinar las contraseñas que se encuentren cifradas de forma manual o tambien utilizando un script que permita automatizar este proceso.

¿Cuales son los tipos de ataques de contraseña?
Hay varios tipos de contraseñas que se pueden insertar como por ejemplo las alfabéticas, numéricas , caracteres , minúsculas, mayúsculas , caracteres especiales.

¿Como se dan los tipos de ataques de contraseñas?
Ataques de diccionario: usando una lista de contraseñas tradicionales.
Phishing de contraseña: se hace pasar por una entidad confiable.
Ataques de fuerza bruta: generando todas las combinaciones posibles.

¿Que es Hydra?
Permite forzar el inicio de sesión de red de forma rapida, la cual te perimeta enlazarte a varios servicios del sistema que se requiere analizar.

¿Cuales son los Protocolos soportados por Hydra?
POP3
FTP
HTTP-GET, HTTP-FORM-POST, HTTPS-GET …
Firebird
Subversion (SVN)
Telnet
Y muchos más

¿Qué tipo de ataques puede hacer Hydra?
Ataques de diccionario paralelo (16 hilos por defecto)
Fuerza bruta / ataques híbridos
Nulos (campos vacíos), invertidos (coloca la contraseña al revés),coloca la contraseñas en el campo de usuario
Disminuye el proceso de ataque con la siguiente intención: evita la detección: IPS (sistema de prevención de intrusiones)
Ataque en paralelo de diferentes servidores.

¿Como instalar Hydra en Linux?

lunes, 25 de junio de 2018

Hardening - actividades debemos desarrollar para asegurar nuestros Sistemas:

En este post se listan las actividades que se deben realizar en el hardening, con la finalidad de asegurar tu sistema 


  • Los procesos de arranque (del bootstrapping del sistema)
  • Los servicios o demonios que se ejecuten en el inicio y apagado del sistema
  • Aseguramiento de Sistemas de archivos (comúnmente denominados File System en *NIX y volúmenes en Netware – Novell)
  • Uso de opciones de limites y forzar cuentas de usuario
  • Políticas del sistema, filtrados y Acls
  • Protección a ataques físicos o de Hardware (Seguridad Física)
  • Actualización de Firmware, BIOS, Softpaq, contraseñas de arranque de los equipos, desactivación de unidades externas en servidores como pen drive o memorias USB, disqueteras, unidades de Cd/DvD, opticas.
  • Protección y renombre de cuentas de Administración y deshabilitar o invalidar cuentas estándares, invitado, uso de cuentas limitadas.
  • Restricción de Instalación de Software y Hardware de acuerdo a las políticas de seguridad.
  • Habilitar los sistemas de Auditorias y Monitoreo de logs.
  • Asegurar consolas de administración, pantallas de logeo, terminales virtuales y accesos remotos.
  • Políticas y procedimientos de administración de cuentas de usuario, grupos, TCBS (Truste Base Computing), módulos de autenticación agregables y relaciones de confianza.
  • Administración de paquetes de instalación, parches (Patchs), upgrades, updates, módulos instalables, integridad de archivos y permisos en el sistema.
  • Aseguramiento de las Herramientas de Desarrollo y compiladores.
  • Aseguramiento de Núcleos (Kernel) del sistema.
  • Instalación y afinación de Firewalls, Kits de Seguridad (Antivirus, antispyware, antimalware, anti hackers, anti banners) Sistemas de Detección de Intrusos y Sensores como IDS,IPS,HIDS, NIDS.
  • Uso de Herramientas para Pen Testing y Monitoreo .
  • Configuración de Protocolos, Puertos y Servicios (Solo los necesarios).
  • Implementación de esquemas de seguridad, DMZ, Front End / Back End, Router apantallados, proxys, Firewalls.
  • Políticas de Procedimientos de Respaldo y de Disaster Recovery.

miércoles, 16 de mayo de 2018

Nikto - escaner de vulnerabilidades web

Nikto es una escaner Open Source de vulnerabilidades web el cual esta escrito en el lenguaje de programación Perl, muy utilizado para quienes hacemos hacking ético y pentesting Nikto es puede detectar más de 6700 archivos maliciosos, analizar versiones desactualizadas en más de 1250 servidores y encontrar fallos sobre versiones especificas en más de 270 servidores. 
Nikto también intenta detectar configuraciones del servidor y las versiones exactas de las tecnologías que usa, Puede evadir sistemas de detección de intrusos (IDS)  y sirve para realizar el control de vulnerabilidades GCI.

Por defecto Nikto viene instalado en Kali Linux, Parrot Security OS, entre otras distribuciones GNU/LINUX sin embargo lo podemos descargar desde su repositorio en 
GitHub. https://github.com/sullo/nikto/archive/master.zip

El comando más sencillo que podemos ejecutar es: 
nikto -h IP.
nikto -h Dominio.
El cuál asume con el parámetro -h que queremos escanear específicamente por el puerto 80

Instalación de Nikto
Ubuntu: apt–get install nikto
Debian: apt install nikto

Actualizando Nikto:

Es posible actualizar Nikto con una conexión a Internet, de esta forma se mantiene el software con la ultima versión estable, lo que siempre es deseable y aconsejable:

# nikto -update


Uso básico de Nikto:

La opción -h es obligatoria y es allí donde se incluyen los objetivos del escaneo, en esta opción se puede especificar los siguientes valores

dirección IP: nikto -h 127.0.0.1
dirección IP, especificando puerto: nikto -h 127.0.0.1:80
dirección IP especificando puerto(s) y protocolo: nikto -h 127.0.0.1 -p 443,80,8080 -ssl
dirección virtual host: nikto -h localhost
dirección virtual host, especificando puerto: nikto -h localhost.1:80
dirección virtual host, especificando puerto(s) y protocolo: nikto -h localhost -p 443 -ssl
Especificando múltiples Objetivos: nikto -h ficheroObjetivos
El fichero de objetivos contiene un objetivo por linea

Utilizando la entrada “greppable” de un comando nmap: nmap -p80 192.168.1.0/24 -oG – | nikto -h –

En este ejemplo se coloco lo siguiente:
nikto -h ip

Arrojo el siguiente resultado donde se detalla desde un inicio el 

Uso de proxys:

Si la máquina donde se ejecuta Nikto pasa por medio de un proxy es posible establecer el puerto y el host del proxy:

nikto -h localhost -p 8080 -useproxy proxyIp

Por otro lado, si se desea que esta opción sea persistente, es posible establecer estas características en el fichero de configuración nikto.conf en las entradas PROXY*


El proyecto se encuentra ubicado en: http://cirt.net/nikto2 y se distribuye bajo licencia GNU/GPL lo que indica que el código se encuentra a disposición publica, para usar, modificar y/o distribuir.



lunes, 7 de mayo de 2018

Comando para WPScan

  Comando para WPScan: Analisis de Vulnerabilidades de WordPress 

Es un escaner black-box de vulnerabilidades sobre la plataforma de WordPress el cual puede ser utilizado para reconocer instalaciones WordPress para encontrar fallas de seguridad.

 

— update Actualiza la base de datos la última versión.
 –url | -u <target_url> El escáner de dominios/url para wordpress.
 –force | -f Fuerza a WpScan que no verifique si el sitio remoto utiliza WordPress.
 –enumerate | -e [option(s)] Opciones de enumeración:
 u Nombres de usuarios desde el id 1 al 10.
 u [10-20] Nombres de usuarios desde el id 10 al 20 (debe escribir en [] los dígitos.
 p Plugins
 vp Unicamente plugins vulnerables.
 ap Todos los plugins (puede demorar).
 tt  timthumbs
 t Temas
 vt Unicamente temas vulnerables.
 at Todos los temas (puede demorar).
 vt,tt,u,vp Son los utilizados por defecto.
 –exclude-content-based “<regexp or string>”  Utilizado con la opción de enumeración, excluirá todas las ocurrencias basadas en la expresión regular “regexp” o cadena “string. No es necesario proveer la expresión regular o cadena, pero debe tipear las comillas simples o dobles.
 –config-file  | -c <config file> Utiliza el archivo de configuración especificado, vea el example.conf.json
 –user-agent   | -a <User-Agent> Utiliza el User-Agent especificado.
 –cookie <String>  Cadena para leer cookies.
 –random-agent | -r Utiliza un User-Agent en forma aleatoria.
 –follow-redirection Si la url del objetivo tiene una redirección, será serguida sin preguntar si quiere hacerlo o no.
 –batch No interactua con el usuario por el ingreso de datos, utiliza el comportamiento por defecto.
 –no-color No utiliza colores para la salida de comandos.
 –wp-content-dir <wp content dir> WPScan intenta encontrar el directorio de contenidos (ej. wp-content) escaneando la página principal, de todos modos, puede especificarlo. Los sub-directorios estan permitidos.
 –wp-plugins-dir <wp plugins dir> Mismo funcionamiento que –wp-content-dir, pero para el directorio de plugins. Si no indica, WPScan utilizará wp-content-dir/plugins. Los subdirectorio están permitidos.
 –proxy <[protocol://]host:port> Proveer un servidor proxy. Http, Socks4, Socks4a y Socks5 son soportados. Si no se brinda un protocolo (el formato host:port) utilizará Http por defecto.
 –proxy-auth <username:password> Suministrar las credenciales para el uso del proxy.
 –basic-auth <username:password> Establecer autenticación básica para el uso de Http.
 –wordlist | -w <wordlist> Provee una lista de palabras para realizar fuerza bruta a la contraseña.
 –username | -U <username> Realiza fuerza bruta al nombre de usuario brindado.
 –usernames     <path-to-file> Realiza fuerza bruta unicamente a los nombres de usuarios desde un archivo.
 –threads  | -t <number of threads> Número de hilos a utilizar cuando se solicita utilizar multi-hilos.
 –cache-ttl       <cache-ttl> Establece la cache TTL.
 –request-timeout <request-timeout>  Tiempo que expira la solicitud.
 –connect-timeout <connect-timeout>  Tiempo que expira la conexión.
 –max-threads     <max-threads> Máximo hilos a utilizar.
 –help     | -h Imprime ésta ayuda.
 –verbose  | -v Modo verbose.
 –version Muestra la versión actual y sale de ejecución.

 

martes, 1 de mayo de 2018

Hardenning en Debian

¿Qué es Hardenning?

Hardenning es el proceso en el cual se asegura un sistema al reducir su superficie de vulnerabilidad, que es mayor cuando un sistema realiza más funciones; normalmente un sistema de función única es más seguro que un sistema multipropósito. 

La reducción de las formas de ataque disponibles generalmente incluye el cambio de contraseñas predeterminadas, la eliminación de software innecesario, nombres de usuario innecesarios o inicios de sesión, y la desactivación o eliminación de servicios innecesarios.

La mayoría de las personas dicen que LINUX es un sistema sumamente seguro por defecto sin embargo se puede decir que LINUX es realmente seguro personalizando o ajustando algunas configuraciones.

1. Seguridad del sistema físico

Configure el BIOS para desactivar el arranque desde CD/DVD, dispositivos externos, unidad de disquete en el BIOS. Luego, habilite la contraseña del BIOS.

2. Cifrado de la distro

En su instalación tiene que cifrar su disco duro, la mayoría de las distribuciones de Linux le permitirán encriptar sus discos antes de la instalación. El cifrado de disco es importante en caso de robo porque la persona que robó su computadora no podrá leer sus datos si conectan el disco duro a su máquina.

3. Particiones de disco

Es importante tener diferentes particiones para obtener una mayor seguridad de los datos en caso de que ocurra un desastre. Al crear diferentes particiones, los datos se pueden separar y agrupar. Cuando ocurre un accidente inesperado, solo los datos de esa partición se dañarán, mientras que los datos en otras particiones sobrevivirán. Asegúrese de que debe tener las siguientes particiones por separado y asegúrese de que las aplicaciones de terceros deben instalarse en sistemas de archivos separados en /opt.

/
/boot
/usr
/var
/home
/tmp
/opt

Después de la instalación podemos colocar contraseña al grub para que sea más seguro.

Pedimos el tipo de cifrado

grub-mkpasswd-pbkdf2

Escribimos nuestro usuario y contraseña y nos dará un cifrado y vamos agregarlo.

nano  /etc/grub.d/00_header

Y vamos agregar lo siguiente.

cat << EOF
set superusers="username"
password_pbkdf2 username 'paste the generated code copied above here'
EOF

Mi ejemplo:

cat << EOF
set superusers="freddy"
password_pbkdf2 freddy grub.pbkdf2.sha512.10000.XXXXXXXXXXXX$
EOF
Para vamos actualizar nuestro grub

update-grub
grub-mkconfig -o /boot/grub/grub.cfg

4. Minimice los paquetes para minimizar la vulnerabilidad

Se recomienda evitar la instalación de paquetes inútiles para evitar vulnerabilidades en los paquetes. Esto puede minimizar el riesgo de que el compromiso de un servicio pueda llevar a un compromiso de otros servicios. Encuentre y elimine o deshabilite servicios no deseados del servidor para minimizar la vulnerabilidad.
Podemos agregar los siguientes repo que pueden ayudarte por el lado de seguridad.

deb http://ftp.debian.org/debian/ jessie-updates main contrib non-free
deb http://security.debian.org/ jessie/updates main contrib non-free

Podemos actualizar

apt-get update && apt-get upgrade && apt-get dist-upgrade

Checa los paquetes instalados con

apt-cache pkgnames
apt-cache pkgnames |less

Y así podemos ver que paquete nos puede servir o que paquete no me va a seguir.

apt-get remove package-name

5. Verifique los puertos abierto de la red

Con la ayuda del siguiente comando ‘netstat’ puede ver todos los puertos abiertos y programas asociados.

netstat -tulpn

lunes, 26 de marzo de 2018

Scalpel: Herramienta para recuperar archivos borrados Linux

Herramienta para recuperar archivos borrados Linux



Scalpel herramienta de que permite recuperar del sistema archivos borrados y carpetas en distribuciones Linux. Esta herramienta se utiliza con la finalidad de recuperar archivos del sistema, es una herramienta libre de código abierto para sistemas operativos Linux. Scapel 
es un fork actualizado de foremost, aunque más rápida y más eficiente en el rastreo y búsqueda de patrones de archivos.

Scalpel utiliza una base de datos que almacena patrones de bytes conocidos de archivos e identifica los archivos borrados y recuperar los recupera de manera instantánea. Muchas veces sucede que por accidente o por error de sistema se pide información de archivos o carpetas que son importantes. Scalpel tiene una gran ventaja y es que nos permite restaurar información que puede haber eliminado y cuando eliminamos información el sistema operativo normalmente sólo se elimina los metadatos del archivo, tales como nombre de archivo, propietario y ubicación. Los datos del usuario se mantiene en el medio de almacenamiento hasta que se sobrescribe.

Que analiza Scalpel?
Scapel analiza un disco o un dispositivo de almacenamiento con la finalidad de buscar patrones de bytes que responden a las cabeceras de archivos y pies de archivos, de esta manera intentara recuperar los datos pertenecientes al archivo. Scalpel puede detectar diversos tipos de archivos. Soporta distintas estructura de disco y formatos de archivos para ello utiliza una base de datos con encabezados y pies de de archivos con reglas de expresión para detectar que formato puede recuperar.

Muchas distribuciones Linux tienen Scalpel en sus repositorios.
Importante: Conviene tener Scalpel actualizado para añadir nuevas expresiones regulares para los encabezados y pies de archivos. 
Scalpel brinda un rendimiento de escaneo a gran velocidad, durante el rastreo lee una base de datos de encabezado y pie de los formatos de archivos y extrae los archivos que coinciden entre un conjunto de de definiciones y expresiones regulares de un dispositivo.

Que formatos soporta Scalpel?
Scalpel soporta formatos de disco desde FAT, NTFS, ext2 o particiones sin formato. Es útil tanto para la investigación forense digital, como para recuperación de archivos. Esta herramienta es parte de Seulkit que se integra con Autopsy 

Como instalar Scalpel?

Primero procedemos a realizar actualización del sistema

#aptitude update


Una vez actualizado el sistema procedemos a la instalación

#apt-get install scalpel




Ahora procedemos a Configurar Scalpel para eso debemos ubicar el archivo de configuración luego de la instalación con el siguiente comando

#whereis scalpel

scalpel: /usr/bin/scalpel /etc/scalpel /usr/share/man/man1/scalpel.1.gz


Ahora abrimos el archivo scalpel.conf ubicado en la ruta  /etc/scalpel con el editor de texto de su preferencia como nano o vi
Por defecto, todas las líneas de las expresiones se comentan con # en el archivo de configuración. 



En el archivo de configuración scalpel.conf, hay algunas líneas que contienen los tipos de archivos que podemos recuperar. Por ejemplo jpg, png, doc, etc.

IMPORTANTE:
Antes de ejecutar Scalpel debemos descomentar el formato de archivo que queremos que Scalpel recupere, sino están descomentadas esos archivos serán ignorados.

En el caso de encontrar un error al ejecutar debemos proceder a crear manualmente la carpeta /etc/scalpel y dentro copiar el archivo scalpel.conf.

A continuación ejecutamos scalpel desde su carpeta, indicamos la carpeta donde se guardan los archivos recuperados.
/ect/scalpel/scapel.conf = ruta donde se indica que format de archivos va recuperar
/dev/sda = ruta donde scapel va recuperar la información
-o = es output, indica un directorio de salida, en la que desea restaurar los archivos borrados
respaldo = directorio que debe estar vacío antes de ejecutar cualquier comando de lo contrario nos dará un error.

scalpel -c /etc/scalpel/scalpel.conf /dev/sda -o respaldo


Una vez ejecutado el comando anterior, scalpel iniciara el proceso de escaneo y posteriormente en base al espacio de disco o dispositivo que se esta evaluando iniciara la recuperación de archivos, este proceso de recuperación de archivos borrados puede llevar mucho tiempo.



miércoles, 14 de febrero de 2018

Sn1per | Escáner automatizado para test de penetración

Sn1per es un escáner automatizado que se puede utilizar en la fase de reconocimiento de un test de penetración para enumerar y buscar vulnerabilidades.

Entre las principales características de Sn1per  destaca:
Realiza automáticamente el reconocimiento básico (whois, ping, DNS, etc.).
Lanza automáticamente consultas Google Hacking contra un dominio de destino.
Enumera automáticamente los puertos abiertos a través del escaneo de puertos Nmap.
Realiza automáticamente: fuerza bruta de subdominios, reúne información de DNS y comprueba las transferencias de zona.
Comprueba automáticamente el secuestro del subdominio.
Ejecuta automáticamente guiones NMap dirigidos contra puertos abiertos.
Ejecuta automáticamente los módulos de exploración y aprovechamiento de Metasploit.
Escanea automáticamente todas las aplicaciones web en busca de vulnerabilidades comunes.
Realiza taque de fuerza bruta automáticamente a todos los servicios abiertos.
Probar automáticamente el acceso FTP anónimo.
Automáticamente ejecuta WPScan, Arachni y Nikto para todos los servicios web.
Enumera automáticamente las acciones de NFS.
Prueba automáticamente el acceso LDAP anónimo.
Enumerar automáticamente cifrados SSL/TLS, protocolos y vulnerabilidades.
Enumerar automáticamente cadenas de comunidad SNMP, servicios y usuarios.
Realiza una lista automática de usuarios y recursos compartidos SMB, compruebe sesiones NULL y explota la vulnerabilidad MS08-067.
Explota automáticamente las vulnerabilidades de los servidores: JBoss, Java RMI y Tomcat.
Prueba automáticamente servidores abiertos X11.
Auto-pwn agregado para Metasploitable, ShellShock, MS08-067 y Tomcat.
Realiza una enumeración de alto nivel de múltiples hosts y subredes.
Se integra automáticamente con Metasploit Pro, MSFConsole y Zenmap.
Recoge automáticamente capturas de pantalla de todos los sitios web.
Permite crear espacios de trabajo individuales para almacenar toda la salida de escaneo.

Sn1per  tiene los siguientes modos de trabajo:
REPORT: muestra todos los resultados en texto. Para habilitar la generación de informes, agregue ‘informe’ a cualquier modo o comando de Sn1per.
STEALTH: enumera rápidamente los objetivos individuales utilizando escaneos no intrusivos para evitar el bloqueo de WAF/IPS.
DISCOVER: analiza todos los hosts en una subred/CIDR (es decir, 192.168.0.0/16) e inicia un escaneo de Sn1per contra cada host. Útil para escaneos de red interna.
PORT: explora un puerto específico en busca de vulnerabilidades. Los informes no están disponibles actualmente en este modo.
FULLPORTONLY: realiza un escaneo de puertos completo y guarda los resultados en XML.
WEB: agrega escaneos completos de aplicaciones web automáticas a los resultados (puerto 80 tcp y 443 tcp solamente). Ideal para aplicaciones web, pero puede aumentar significativamente el tiempo de escaneo.
WEBPORTHTTP: inicia una exploración completa de la aplicación web HTTP en un host y puerto específicos.
WEBPORTHTTPS: inicia un análisis completo de la aplicación web HTTPS en un host y puerto específicos.
NOBRUTE: inicia un escaneo completo contra un host/dominio objetivo sin servicios de fuerza bruta.
AIRSTRIKE: enumera rápidamente los puertos/servicios abiertos en múltiples hosts y realiza una toma de huellas digitales básica. Para usar se debe especificar la ubicación completa del archivo que contiene todos los hosts, las IP que deben escanearse y ejecutar “./sn1per /full/path/to/targets.txt airstrike” para comenzar a escanear.
NUKE: Inicia una auditoría completa de múltiples hosts especificados en un archivo de texto Ejemplo de uso: “./sniper/pentest/loot/targets.txt nuke”.
LOOT: organiza y muestra automáticamente la carpeta de resultados en su navegador y abre Metasploit Pro y Zenmap GUI con todos los resultados de escaneo de puertos. Para ejecutar, se escribe ‘sniper loot’.
UPDATE: busca actualizaciones y actualizaciones de todos los componentes utilizados por francotiradores.

Link de descarga: https://github.com/1N3/Sn1per

Instalación

Primero clonamos de Github el paquete
git clone https://github.com/1N3/Sn1per.git

Una vez clonado el paquete ingresamos en la caprpeta
cd Sn1per

listamos los archivos de la carpeta
ls

Asignamos permisos de ejecución al archivo install.sh
chmod +x install.sh

Listamos nuevamente
ls

Y observamos que ya se puede ejecutar, ejecutamos el script de instalación
./install.sh 

y por ultimo ejecutamos sniper al dominio que queremos analizar y obtener la información
./sniper dominio.com

./sniper dominio.com | tee dominio.txt