CÓMO CREAR TU PROPIO SHODAN: FUERZA BRUTA A SSH [PARTE X]

shodita

Hola a todos y todas, llegamos a la entrega número 10 de Shodita. Aunque aun nos queda bastante por recorrer vamos a empezar a crear los bots encargados de realizar fuerza bruta, lanzar exploits y buscar vulnerabilidades webs. El pasado 9 de octubre hablé de Shodita en la PyConEs y el próximo 25 de noviembre volveré hablar en la Sec/Admin a las 11:30 en la Escuela Técnica Superior de Ingeniería Informática, Universidad de Sevilla.

Antes de empezar os dejo con vosotros la presentación que utilicé en la PyConEs sobre Shodita: cómo crear tu propio Shodan de casa.

Recordemos que Shodita es un proyecto vivo y a través del Github se realizan las diferentes colaboraciones y modificaciones de los diferentes bots. Y ya que hablamos de bots os presento a un grupo de bots nuevos llamados “Gigante-*.py” que serán los encargados de realizar fuerzas brutas a diferentes servicios.

Si habéis leído el artículo de @0fjrm0 llamado “24 Horas en la vida de mi router doméstico” os habréis percatado de la cantidad de ataques informáticos que recibe nuestro compañero del hogar. Sufre el maltrato de cientos de ataques diarios a diferentes servicios ssh, ftp, telnet, RDP, etc. Ataques muy parecidos a Gigante-bot.

El objetivo es detectar si los targets a los que vamos a analizar tienen alguna limitación y/o bloqueo de IPs de intentos de acceso en SSH. Para ello, utilizaremos la librería Paramiko. Este tendrá la función de realizar la conexión ssh a cada uno de los targets. Como estaréis imaginando el bot no tiene mucha dificultad. El truco es controlar las excepciones.

seleccion_069

Cómo podéis observar todas las excepcione menos cuando la contraseña es incorrecta (AuthenticationException) suma 1 a la variable “fail”. Esta será nuestro indicador sobre la existencia de algún sistema de limitaciones de acceso.

seleccion_070

Además en la siguiente versión también verificaremos si las contraseñas que utilizamos (las 15 más usadas) para comprobar si tiene algún sistema de protección llegasen a ser correctas. En caso de ser así, lo guardamos.

¿Cómo puedo protegerme?

Si utilizas OpenSSH cualquiera de sus versiones tiene un archivo de configuración (/etc/ssh/sshd_config) que no es muy extenso, si queréis llegar a saber más y estáis preocupados por la seguridad leer este artículo. Decenas de parámetros que nos ayudarán para configurar buenas prácticas contra la fuerza bruta. Solo necesitaremos modificar 3:

  • MaxStartups
    Indica el número máximo de pantallas de login simultáneas que un usuario podrá tener en el mismo momento. No tiene nada que ver con el número de sesiones por usuario, sino con el número de sesiones de intento de login simultáneos que tendrá. 1 o 2 pantallas deberían de llegar, ya que así evitaríamos tener ataques por fuerza bruta con el mismo usuario.
    MaxStartups 2
  • LoginGraceTime
    Crea una cuenta atrás del tiempo que nosotros le indiquemos. En el momento de terminar el tiempo la sesión finaliza.
    Es importante tener este tiempo bien establecido, para así evitar que la pantalla de login quede ahí esperando credenciales por tiempo ilimitado y que alguien no autorizado pueda intentar acceder.
    LoginGraceTime 30
    
  • MaxAuthTries
    Indica el número de veces que un usuario puede equivocarse de contraseña y el sistema se la seguirá solicitando. Recomendable poner 2 o 3 veces, más no,  ya que permitiría a un posible atacante reintentar un número de veces mayor obtener las credenciales.
    Aunque no es una medida 100% efectiva ya que, el bot podría volver a intentarlo impedirá que muchos sigan su camino sin volverse a molestar en ti, al menos durante un tiempo. Otros son más pesados.
    MaxAuthTries 2

Recuerda que participamos en los premios  #Bitacoras16. Si te gusta el contenido del blog, te ha ayudado o te parece interesante puedes votarnos pinchando en la siguiente imagen.

bitacoras

NOVITA-FOOTER

 

 

Add a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *