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