
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.
- Cómo crear tu propio Shodan: mongoDB [parte I]
- Cómo crear tu propio Shodan: python+nmap [parte II]
- Cómo crear tu propio Shodan: Sockets [parte III]
- Cómo crear tu propio Shodan: 100 IPs [parte IV]
- Cómo crear tu propio Shodan: detección de servicio web [parte V]
- Cómo crear tu propio Shodan: geoip e insert en mongodb [parte VI]
- Cómo crear tu propio Shodan: una IP para gobernarlos a todos [parte VII]
- Cómo crear tu propio Shodan: ip reverse robtex [parte VIII]
- Cómo crear tu propio Shodan: detección de WordPress, Joomla, Drupal [parte IX]
- Cómo crear tu propio Shodan: fuerza bruta a ssh [parteX]
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.
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.
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