Cuando estamos auditando un sitio web y logramos subir una webshell o simplemente un archivo de prueba a través de un formulario de upload, generalmente se renombra de varias maneras para evitar el acceso directo, RCE o su sobrescritura.
fileGPS es una herramienta que utiliza varias técnicas para encontrar el nuevo nombre de archivo, después de que el script correspondiente del lado del servidor cambie el nombre y lo guarde.
Algunas de las técnicas que fileGPS prueba son:
- Varios hashes del nombre del archivo
- Varias combinaciones de timestamps
- Nombre de archivo + tiempo de PHP() hasta 5 minutos antes del inicio del script
- Muchos mas
Características
- Fácil de usar
- multihilo
- soporte proxy HTTP(s)
- agente de usuario aleatorio
- cerca de 100.000 nombres de archivo
Instalación
En ParrotOS:
sudo apt install filegps
En BlackArch Linux:
pacman -S filegps
En otras distros:
git clone https://github.com/0blio/filegp
Ejemplos de uso
fileGPS -u http://target.com/upload/images --file shell.php
fileGPS -u http://target.com/upload/images --file shell.php --modules shame,mytestmodule
fileGPS -u http://target.com/upload/images --file shell.php --proxy 127.0.0.1:9050 --cookie mycookies
Cómo escribir un módulo
Escribir un módulo es bastante simple y permite implementar formas personalizadas de generar combinaciones de nombres de archivo.
A continuación se muestra una plantilla para los módulos:
Las variables url y filename se importan automáticamente del script core, por lo que se pueden llamar en su módulo.
Una vez que escribamos nuestro módulo simplemente tendremos que guardarlo en Modules/ y se importará automáticamente una vez que se inicie el script principal.
Repo: https://github.com/0blio/filegps
fileGPS es una herramienta que utiliza varias técnicas para encontrar el nuevo nombre de archivo, después de que el script correspondiente del lado del servidor cambie el nombre y lo guarde.
Algunas de las técnicas que fileGPS prueba son:
- Varios hashes del nombre del archivo
- Varias combinaciones de timestamps
- Nombre de archivo + tiempo de PHP() hasta 5 minutos antes del inicio del script
- Muchos mas
Características
- Fácil de usar
- multihilo
- soporte proxy HTTP(s)
- agente de usuario aleatorio
- cerca de 100.000 nombres de archivo
Instalación
En ParrotOS:
sudo apt install filegps
En BlackArch Linux:
pacman -S filegps
En otras distros:
git clone https://github.com/0blio/filegp
Ejemplos de uso
fileGPS -u http://target.com/upload/images --file shell.php
fileGPS -u http://target.com/upload/images --file shell.php --modules shame,mytestmodule
fileGPS -u http://target.com/upload/images --file shell.php --proxy 127.0.0.1:9050 --cookie mycookies
Cómo escribir un módulo
Escribir un módulo es bastante simple y permite implementar formas personalizadas de generar combinaciones de nombres de archivo.
A continuación se muestra una plantilla para los módulos:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Module name: test
Coded by: Your name / nickname
Version: X.X
Description:
This module destroy the world.
"""
output = []
# Do some computations here
output = ["filename1.php", "filename2.asp", "filename3.jar"]
Las variables url y filename se importan automáticamente del script core, por lo que se pueden llamar en su módulo.
Una vez que escribamos nuestro módulo simplemente tendremos que guardarlo en Modules/ y se importará automáticamente una vez que se inicie el script principal.
Repo: https://github.com/0blio/filegps
Comentarios
Publicar un comentario