
O Penetration Testers Framework (PTF) é uma forma de suporte modular para ferramentas atualizadas.
O PenTesters Framework (PTF) é um script Python projetado para distribuições baseadas em Debian/Ubuntu/ArchLinux para criar uma distribuição similar e familiar para Testes de Penetração. Como pentesters, estamos acostumados aos diretórios /pentest/ ou aos nossos próprios conjuntos de ferramentas que queremos manter atualizados o tempo todo. Temos aquelas ferramentas "essenciais" que usamos regularmente, e usar as mais recentes e melhores é importante.
O PTF tenta instalar todas as suas ferramentas de teste de penetração (as mais recentes e melhores), compilá-las, construí-las e fazer com que você possa instalar/atualizar sua distribuição em qualquer máquina. Tudo é organizado de forma coesa com o Padrão de Execução de Testes de Penetração (PTES) e elimina muitas coisas que raramente são usadas. O PTF simplifica a instalação e o empacotamento e cria um framework completo de pentest para você. Como é um framework, você pode configurar e adicionar conforme achar necessário. Vemos com frequência repositórios desenvolvidos internamente que você também pode usar como parte deste framework. Tudo depende de você.
O objetivo final é o suporte da comunidade para este projeto. Queremos novas ferramentas adicionadas ao repositório do github. Envie seus módulos. É super simples configurá-los e adicioná-los, e leva apenas alguns minutos.
O PTF requer o python-pexpect para funcionar adequadamente.
Execute o comando abaixo:
pip install -r requirements.txt
./ptf
Primeiro, verifique o arquivo config/ptf.config que contém o local base onde tudo será instalado. Por padrão, isso instalará no diretório /pentest. Depois de configurado, execute o PTF digitando ./ptf (ou python ptf).
Isso o colocará em um shell do tipo Metasploitesque, que tem uma aparência e sensação semelhantes para consistência. Show modules, use <modules>, etc. são comandos aceitos. Primeiro, sempre digite help ou ? para ver uma lista completa de comandos.
Para um tutorial em vídeo sobre como usar o PTF, confira nossa página no Vimeo aqui: https://vimeo.com/137133837
Se você quiser instalar e/ou atualizar tudo, simplesmente faça o seguinte:
./ptf
use modules/install_update_all
yes
Isso instalará todas as ferramentas dentro do PTF. Se já estiverem instaladas, isso irá iterar e atualizar tudo automaticamente para você.
Você também pode instalar cada módulo individualmente e depois usar use modules/update_installed, que atualizará apenas o que você instalou anteriormente.
Por exemplo:
./ptf
use modules/update_installed
Isso atualizará apenas os módulos que você instalou anteriormente.
Você também pode usar show options para alterar informações sobre os módulos.
Se você quiser instalar apenas, por exemplo, ferramentas de exploração, execute:
./ptf
use modules/exploitation/install_update_all
Isso instalará apenas os módulos de exploração. Você pode fazer isso para qualquer categoria de módulo.
Você pode instalar apenas as ferramentas que deseja acessando a seção modules/custom_list/list.txt. Modifique o arquivo list.txt e adicione as ferramentas que você deseja instalar ou atualizar.
Exemplo de arquivo list.txt:
modules/exploitation/metasploit modules/post-exploitation/unicorn
Então, dentro do PTF:
./ptf
use modules/custom_list/list
yes
Isso permite que você mantenha sua configuração de módulos e instale apenas as ferramentas que deseja e mantenha-as atualizadas.
Você também pode simplesmente especificar um módulo sem usar a categoria:
./ptf
use trevorc2
yes
Primeiro, vá para o diretório modules/. Dentro dele, há subdiretórios baseados nas fases do Padrão de Execução de Testes de Penetração (PTES). Entre nessas fases e observe os diferentes módulos. Assim que você adicionar um novo, por exemplo testing.py, ele será automaticamente importado na próxima vez que você iniciar o PTF. Há alguns componentes principais ao analisar um módulo que devem ser concluídos.
Abaixo está um exemplo de módulo
AUTHOR="David Kennedy (ReL1K)"
DESCRIPTION="Este módulo instalará/atualizará o 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 os campos são bastante fáceis. Nos locais do repositório, você pode usar GIT, SVN, FILE ou TAGS. Preencha as dependências e onde você deseja que o local de instalação seja. O PTF pegará onde o arquivo python está localizado (por exemplo, exploitation) e o moverá para o que você especificar na configuração do PTF (localizado em config). Por padrão, ele instala todas as suas ferramentas em /pentest/PTES_PHASE/TOOL_FOLDER
Observe que nos módulos você pode especificar after commands {INSTALL_LOCATION}. Isso anexará o local de instalação desejado ao usar after commands.
Você também pode especificar {PTF_LOCATION} que puxará o caminho base para sua instalação do PTF.
Você também tem a capacidade de especificar locais de repositório tanto para 32 bits quanto para 64 bits. O local do repositório deve ser sempre o caminho de download x86. Para adicionar um caminho de 64 bits para uma ferramenta, especifique X64_LOCATION e forneça uma URL. Quando o PTF for iniciado, ele detectará automaticamente a arquitetura e tentará usar o link x64 em vez do x86.
Observe que pacotes ArchLinux também são suportados; é necessário especificar tanto para DEBIAN quanto para ARCH para que seja instalado corretamente em qualquer plataforma no módulo.
Ao usar o modo TAGS, isso permitirá que você use um projeto github que utiliza tags para puxar a versão mais recente (geralmente aplicativos compilados) e baixar automaticamente. Para usar o método TAGS, dê uma olhada na estrutura em modules/intelligence-gathering/teamfiltration.py. Neste exemplo, não há necessidade de repository_location, mas você precisará saber o proprietário do projeto, o nome do projeto/repositório e o nome do arquivo para baixar. No exemplo do TeamFiltration, ele está localizado em: https://github.com/Flangvik/TeamFiltration. O proprietário seria Flangvik, o projeto/ferramenta seria TeamFiltration. Se você navegar para releases: https://github.com/Flangvik/TeamFiltration/releases/, podemos ver aqui que o nome do arquivo que queremos baixar é "TeamFiltration_Linux". Estes estão sob OWNER, REPOHOME e FILENAME. Especificando-os, o PTF detectará automaticamente a versão mais recente da ferramenta e a instalará.
Você pode criar seus próprios módulos e o PTF também suporta acesso gitlab. Em vez de especificar git, wget, etc., simplesmente especifique gitlab e aponte para suas próprias ferramentas gitlab internas para módulos.
Ao usar git ou svn tradicionais como método principal, o que acontecerá após um módulo ser instalado é que ele simplesmente pegará a versão mais recente da ferramenta. Com after commands, normalmente ao instalar, você pode precisar executar os after commands após cada atualização. Se você especificar bypass updates como YES (BYPASS_UPDATE="YES"), cada vez que a ferramenta for executada, ela verificará a versão mais recente e ainda executará os after commands. Se isso estiver marcado como no, ele apenas fará git pull da versão mais recente do sistema. Para opções FILE, é recomendado sempre usar BYPASS_UPDATE="YES" para que os arquivos sejam sobrescritos a cada vez.