@@ -6,4 +6,4 @@ Para utilizarlos, una vez ya esta Apache instalado en las máquinas 11, 12, 13 y
3. Reemplazar el archivo /etc/apache2/sites-available/000-default.conf por el que este en la carpeta de la máquina correspondiente.
4. Reemplazar el archivo /etc/apache2/sites-available/default-ssl.conf por el que este en la carpeta de la máquina correspondiente.
En el archivo default-ssl.conf por un lado está la solución 1 propuesta, en la que si se cumplen los requisitos de agente de usuario y de petición entonces se redirige al servidor C2. Por otro esta la sección de código que implementa la segunda solución, en la que además se mira quién ha enviado la petición y se redirige a una máquina u otra en función de eso.
En este directorio están los scripts utilziados para generar y registrar los dominios que se asignana los redirectores. Para ponerlo en marcha hay que hacer los siguiente:
1. Revisar tanto en *register-domains.sh* como en *charbot-dga.py* las rutas. Es importante ajustar esto y cambiarlo, dependiendo de donde hayamos guardado los diferentes archivos, sino no funcionará.
2. Modifiacar la variable *NUM_REDIRECTORS* del script *charbot-dga.py* en función de cuantos dominios queramos generar.
3. Modificar en *register-domains.sh* el servidor DNS, aquí se está utilizando el que hay en la subred que simula ser internet.
\ No newline at end of file
3. Modificar en *register-domains.sh* el servidor DNS, aquí se está utilizando el que hay en la subred que simula ser internet.
## Script register-domains.sh
En él lo que se hace es primero ejecutar el script que genera los nombres, y por cada uno de ellos, crea un archivo llamado “nsupdate.txt” con los comandos necesarios para registrar ese nombre de dominio en el servidor DNS del laboratorio. Lo primero es establecer cuál es ese servidor, en este caso ns1.inter.ifor.uva.es, después se crea un registro del nombre de dominio con el nombre de dominio generado previamente, una duración de 1 días (86400 segundos) y la IP del redirector correspondiente. Con todo esto en el archivo nsupdate.txt se ejecuta el comando nsupdate con ese archivo como parámetro y el dominio queda registrado.
## Script chatbot-dga.py
Lo primero que hace el script es abrir el fichero con los nombres de domino válidos. Después elimina los números que indican su posición en el ranking y también se elimina el dominio, lo que hace que haya nombres de dominio duplicados en la lista que se suprimen posteriormente.
La constante NUM_REDIRECTOS contiene el número de redirectores a los que se les quiere asignar un nombre de dominio, al almacenarlo en una constante, esto permite que según las necesidades del proyecto sea muy fácil de cambiar. Se eligen tantos nombres de dominio al azar como indique esa constante, uno por redirector y posteriormente por cada uno se eligen dos números aleatorios que serán las posiciones de los caracteres que se cambiarán. Después, se generan dos caracteres aleatorios para cada uno de los nombres y se cambian por los originales.
Puesto que hay casos en los que el nombre de dominio solo tiene 1 carácter, se ha añadido otra sección de código en el else que permite cambiar ese carácter por otro aleatorio.
Lo último es agregar el dominio, si fuese un proyecto en un entorno real, se tendría una lista con posibles dominios que serían elegidos al azar también. En este caso el dominio será siempre “malvado.org”, que es el dominio habilitado en el laboratorio para poder registrar los nombres necesarios sin problema.
Cabe destacar que para generar los números y caracteres aleatorios se ha utilizado la fecha, es decir AAAAMMDD, que será la misma semilla que tendrá que utilizar el cliente para generar exactamente los mismos nombres de dominio.