Usando Pihole sobre Nginx

A continuación vamos a hacer que Pihole use Nginx en vez de Lighttpd, para ello debemos empezar instalando Nginx y Php7.3-fpm:

apt-get install nginx
apt-get install php7.3-fpm

Creamos el fichero de configuración de Pihole en /etc/nginx/sites-available con la siguiente información:

# Pihole server configuration
server {
	#Ports 
	listen 80;
	listen [::]:80;
	root /var/www/html/;
	index index.html index.php;
	server_name pihole.net;
	location / {
		# First attempt to serve request as file, then
		# as directory, then fall back to displaying a 404.
		try_files $uri $uri/ =404;
	}
	# pass PHP scripts to FastCGI server
	location ~ \.php$ {
		include snippets/fastcgi-php.conf;
		# With php-fpm (or other unix sockets):
		fastcgi_pass unix:/run/php/php7.3-fpm.sock;
	}
}

Creamos un enlace simbolico del fichero recientemente creado a /etc/nginx/sites-enabled

ln -s /etc/nginx/sites-available/pihole.net /etc/nginx/sites-enabled/pihole.net

Editamos el fichero de configuración /etc/nginx/nginx.conf y establecemos el valor default_type a text/html:

 # server_names_hash_bucket_size 64;
        # server_name_in_redirect off;

        include /etc/nginx/mime.types;
        default_type text/html;

A continuación editamos el fichero /etc/php/7.3/fpm/php.ini y establecemos el valor cgi.fix_pathinfo a 0:

; of zero causes PHP to behave as before.  Default is 1.  You should fix your scripts
; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
; http://php.net/cgi.fix-pathinfo
cgi.fix_pathinfo=0

; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside
; of the web tree and people will not be able to circumvent .htaccess security.

En el fichero de configuración del site que hemos creado, hemos definido que los ficheros de index son: index.php e index.html, pues crearemos el fichero index.html en la ruta /var/www/html/ con el siguiente contenido:

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="refresh" content="0.3; url=admin/index.php">
<style>
body, html {
  height: 100%;
  margin: 0;
}

.bg {
  /* The image used */
  background-image: url("piholelogo.png");

  /* Full height */
  height: 100%;

  /* Center and scale the image nicely */
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
</style>
</head>
<body>
<div class="bg"></div>
</body>
</html>


Este fichero nos servirá para redirigir todas las peticiones que hagamos al FQDN, en mi caso pihole.net, a admin/index.php.

Recordad que para que esto funcione, Pihole debe tener registrado el dominio Pihole.net como 127.0.0.1 o con la IP privada de la misma, de esta forma cuando los hosts de la red consulten el dominio pihole.net, vuestra Pihole los llevará hasta su propia web.

Una vez hayamos terminado de configurar todos los ficheros anteriormente comentados, debemos detener el servicio de lighttpd y arrancar Nginx, además debemos asegurarnos que no se arranca lighttpd con el sistema la próxima vez que se reinicie la Raspberry y por supuesto asegurarnos de que es Nginx el servicio que arranca por defecto con el sistema, para ello ejecutamos:

systemctl disable --now lighttpd
systemctl enable --now nginx

¡Y eso sería todo! con esto ya tendríais vuestra Pihole usando Nginx. Por que sí, por que Nginx mola!

Cuando Metasploit no inicia en ParrotOS

La entrada de hoy es rápida, pero útil.

Estoy realizando un curso de Metasploit en Openwebinars y me he vuelto un poco loco intentado iniciar el framework, hasta que he descubierto el fallo. Así que en esta entrada os enseñaré de manera ágil como solucionar el problema.

Antes de volveros locos, echad un vistazo a los logs de PostgreSQL, veréis un fallo como el siguiente:

020-07-11 11:02:10.169 UTC [2739] FATAL: could not load server certificate file "/etc/ssl/certs/ssl-cert-snakeoil.pem": No such file or d irectory$
66 2020-07-11 11:02:10.169 UTC [2739] LOG: database system is shut down$

Sin este certificado PostgreSQL no se levantará por lo que no podréis generar la BBDD de Metasploit, bien pues para solucionarlo, ejecutad:

sudo apt-get install ssl-cert
sudo make-ssl-cert generate-default-snakeoil
sudo usermod --append --groups ssl-cert yyuu

Y finalmente cread un enlace simbólico:

sudo ls -l /etc/ssl/certs/ssl-cert-snakeoil.pem /etc/ssl/private/ssl-cert-snakeoil.key

Con esto ya podreis levantar PostgreSQL

sudo systemctl restart postgresql

Y en los logs podréis ver que ha arrancado correctamente:

020-07-11 11:07:54.652 UTC [3104] LOG: starting PostgreSQL 12.2 (Debian 12.2-4) on x86_64-pc-linux-gnu, compiled by gcc (Debian 9.3.0-8) 9.3.0, 64-bit$
70 2020-07-11 11:07:54.653 UTC [3104] LOG: listening on IPv6 address "::1", port 5432$
71 2020-07-11 11:07:54.653 UTC [3104] LOG: listening on IPv4 address "127.0.0.1", port 5432$
72 2020-07-11 11:07:54.655 UTC [3104] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"$
73 2020-07-11 11:07:54.772 UTC [3105] LOG: database system was shut down at 2020-05-07 00:17:40 UTC$
74 2020-07-11 11:07:54.818 UTC [3104] LOG: database system is ready to accept connections$

Ahora ya podréis relanzar la configuración de la BBDD de Metasploit, ejecutando msfdb reinit:

┌─[root@parrotos]─[/var/log/postgresql]
└──╼ #msfdb reinit
[i] Database already started
[+] Deleting configuration file /usr/share/metasploit-framework/config/database.yml
[+] Stopping database
[+] Starting database
[+] Creating database user 'msf'
Ingrese la contraseña para el nuevo rol:
Ingrésela nuevamente:
[+] Creating databases 'msf'
[+] Creating databases 'msf_test'
[+] Creating configuration file '/usr/share/metasploit-framework/config/database.yml'
[+] Creating initial database schema

Podéis comprobar el status con:

msf5 > db_status
[*] Connected to msf. Connection type: postgresql.

Youtube Ads Blocker 3.0 for Pihole 5.0

The brand new version of Pihole 5.0 has deleted the following files:

gravity.list,black.list,whitelist.txt

And has created for all these data a new SQLite3 database:

/etc/pihole/gravity.db

With this change, all the previous versions to 3.0 of the script that I made to block the YouTube Advertisement, has stopped working. So I have created a new version in order to handle that new SQLite database.

Sigue leyendo “Youtube Ads Blocker 3.0 for Pihole 5.0”

CCNA: Cybersecurity Operations. Análisis del Exploit Kit Angler

Para la practica final del curso CCNA: Cybersecurity Operations que pude realizar gracias a haber conseguido el acceso a las Becas Digitaliza de Cisco, realizamos el análisis de un Exploit Kit, concretamente Angler. A continuación el análisis que realicé por mi parte. Tened en cuenta que no tiene por ser 100% verídico, y que puede haber cosas que no sean del todo correctas conceptual o técnicamente hablando, pues bien es cierto que en este tema soy de momento un aprendiz.

Espero que de alguna manera sirva para ayudar a aclarar algunas dudas a quienes hayan realizado el curso, o que estén analizando el comportamiento de Angler EK.

La practica se realiza analizando eventos principalmente en SGUIL, aunque también se hace uso de ELSA.

Análisis inicial

En este ataque por lo que se puede ver se producen 11 eventos relacionados, los cuales SNORT es capaz de detectar correctamente:

Sigue leyendo “CCNA: Cybersecurity Operations. Análisis del Exploit Kit Angler”

Recuperando tablas corruptas en MySQL

Hace poco me he encontrado con un par de tablas corruptas en una BBDD de MySQL y a continuación os explico como es la forma más fácil de recuperar esas tablas marcadas como corruptas.

Yo me tope con este fallo al tratar de hacer un dump de la BBDD:

$ mysqldump -u root -p mydatabase > ./mydatabase.sql
got error 144 Table 'mydatabase.mytable' is marked as crashed and last (automatic?) repair failed" when using LOCK TABLES
Sigue leyendo “Recuperando tablas corruptas en MySQL”