
El Penetration Testers Framework (PTF) es una forma de soporte modular para herramientas actualizadas.
The PenTesters Framework (PTF) es un script de Python diseñado para distribuciones basadas en Debian/Ubuntu/ArchLinux para crear una distribución similar y familiar para Pruebas de Penetración. Como pentesters, estamos acostumbrados a los directorios /pentest/ o a nuestros propios conjuntos de herramientas que queremos mantener actualizados todo el tiempo. Tenemos esas herramientas "de cabecera" que usamos regularmente, y usar lo último y lo mejor es importante.
PTF intenta instalar todas tus herramientas de pruebas de penetración (las más recientes), compilarlas, construirlas y hacer que puedas instalar/actualizar tu distribución en cualquier máquina. Todo está organizado de manera coherente con el Estándar de Ejecución de Pruebas de Penetración (PTES) y elimina muchas cosas que apenas se usan. PTF simplifica la instalación y el empaquetado y crea un marco completo de pentest para ti. Como es un marco, puedes configurarlo y agregar lo que consideres necesario. Comúnmente vemos repositorios desarrollados internamente que también puedes usar como parte de este marco. Todo depende de ti.
El objetivo final es el apoyo de la comunidad en este proyecto. Queremos que se agreguen nuevas herramientas al repositorio de GitHub. Envía tus módulos. Es muy sencillo configurarlos y agregarlos, y solo toma unos minutos.
PTF requiere python-pexpect para funcionar correctamente.
Ejecuta el siguiente comando:
pip install -r requirements.txt
./ptf
Primero revisa el archivo config/ptf.config que contiene la ubicación base donde instalar todo. Por defecto, esto instalará en el directorio /pentest. Una vez configurado, ejecuta PTF escribiendo ./ptf (o python ptf).
Esto te colocará en una shell de tipo Metasploitesque que tiene una apariencia y sensación similar para mantener la consistencia. Show modules, use <modules>, etc. son comandos aceptados. Lo primero es lo primero: siempre escribe help o ? para ver una lista completa de comandos.
Para un tutorial en video sobre cómo usar PTF, visita nuestra página de Vimeo aquí: https://vimeo.com/137133837
Si deseas instalar y/o actualizar todo, simplemente haz lo siguiente:
./ptf
use modules/install_update_all
yes
Esto instalará todas las herramientas dentro de PTF. Si ya están instaladas, recorrerá y actualizará todo automáticamente.
También puedes instalar cada módulo individualmente, luego usar use modules/update_installed que solo actualizará lo que hayas instalado previamente.
Por ejemplo:
./ptf
use modules/update_installed
Esto solo actualizará los módulos que hayas instalado previamente.
También puedes mostrar opciones para cambiar información sobre los módulos.
Si solo deseas instalar, por ejemplo, herramientas de explotación, puedes ejecutar:
./ptf
use modules/exploitation/install_update_all
Esto solo instalará los módulos de explotación. Puedes hacer esto para cualquier categoría de módulos.
Puedes instalar solo las herramientas que desees yendo a la sección modules/custom_list/list.txt. Modifica el archivo list.txt y agrega las herramientas que solo deseas instalar o actualizar.
Ejemplo de archivo list.txt:
modules/exploitation/metasploit
modules/post-exploitation/unicorn
Luego, dentro de PTF:
./ptf
use modules/custom_list/list
yes
Esto te permite mantener tu configuración de módulos e instalar solo las herramientas que deseas, manteniéndolas actualizadas.
También puedes simplemente especificar un módulo sin usar la categoría:
./ptf
use trevorc2
yes
Primero, dirígete al directorio modules/, dentro hay subdirectorios basados en las fases del Estándar de Ejecución de Pruebas de Penetración (PTES). Entra en esas fases y mira los diferentes módulos. Tan pronto como agregues uno nuevo, por ejemplo testing.py, se importará automáticamente la próxima vez que inicies PTF. Hay algunos componentes clave que deben completarse al mirar un módulo.
A continuación se muestra un módulo de ejemplo
AUTHOR="David Kennedy (ReL1K)"
DESCRIPTION="This module will install/update the Browser Exploitation Framework (BeEF)"
INSTALL_TYPE="GIT"
REPOSITORY_LOCATION="https://github.com/beefproject/beef"
X64_LOCATION="https://github.com/something_thats_x64_instead_of_x86
INSTALL_LOCATION="beef"
DEBIAN="ruby1.9.3,sqlite3,ruby-sqlite3"
ARCHLINUX = "arch-module,etc"
BYPASS_UPDATE="NO"
AFTER_COMMANDS="cd {INSTALL_LOCATION},ruby install-beef"
LAUNCHER="beef"
TOOL_DEPEND="modules/exploitation/metasploit"
Todos los campos son bastante sencillos, en las ubicaciones del repositorio, puedes usar GIT, SVN FILE o TAGS. Completa las dependencias y dónde deseas que esté la ubicación de instalación. PTF tomará dónde se encuentra el archivo python (por ejemplo exploitation) y lo moverá a lo que especifiques en la configuración de PTF (ubicada en config). Por defecto, instala todas tus herramientas en /pentest/PTES_PHASE/TOOL_FOLDER
Nota: en los módulos, puedes especificar after commands {INSTALL_LOCATION}. Esto agregará la ubicación de instalación cuando se usen after commands.
También puedes especificar {PTF_LOCATION}, que obtendrá la ruta base de tu instalación de PTF.
También tienes la capacidad de especificar tanto una ubicación de 32 bits como de 64 bits para las ubicaciones del repositorio. La ubicación del repositorio siempre debe ser la ruta de descarga x86. Para agregar una ruta de 64 bits para una herramienta, especifica X64_LOCATION y proporciona una URL. Cuando PTF se inicia, detectará automáticamente la arquitectura e intentará usar el enlace x64 en lugar del x86.
Ten en cuenta que los paquetes de ArchLinux también son compatibles, es necesario especificarlos tanto para DEBIAN como para ARCH para que se instalen correctamente en cualquier plataforma en el módulo.
Al usar el modo TAGS, esto te permitirá usar un proyecto de GitHub que utiliza etiquetas para obtener la última versión (generalmente aplicaciones compiladas) y descargarla automáticamente. Para usar el método TAGS, echa un vistazo a la estructura en modules/intelligence-gathering/teamfiltration.py. En este ejemplo, no es necesario un repository_location, pero necesitarás conocer el propietario del proyecto, el nombre del proyecto/repositorio y el nombre del archivo a descargar. En el ejemplo de TeamFiltration, se encuentra en: https://github.com/Flangvik/TeamFiltration. El propietario sería Flangvik, el proyecto/herramienta sería TeamFiltration. Si navegas a las versiones: https://github.com/Flangvik/TeamFiltration/releases/, podemos ver aquí que el nombre del archivo que queremos descargar es "TeamFiltration_Linux". Estos están bajo OWNER, REPOHOME y FILENAME. Al especificarlos, PTF detectará automáticamente la última versión de la herramienta y la instalará.
Puedes crear tus propios módulos y PTF también admite acceso a GitLab. En lugar de especificar git, wget, etc., simplemente especifica gitlab y apunta a tus propias herramientas internas de GitLab para los módulos.