Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
purpleteam-s2-containers — Containers da segunda fase | Kitploit
Ferramentas/GitLabGitLab/purpleteam-labs/purpleteam-s2-containers
Scanners de VulnerabilidadesSegurança de ContêineresAnálise Dinâmica (Sandboxing)Segurança WebTestes de PenetraçãoSegurança na NuvemDevSecOpsAprendizado e EducaçãoArchived
GitLabpurpleteam-labs/purpleteam-s2-containers

purpleteam-s2-containers

Containers da segunda fase

Ver Repositório
110há 5 anosAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

logotipo purpleteam

Contêineres do Estágio Dois do purpleteam


Contêineres do Estágio Dois do purpleteam




Estes contêineres são iniciados dinamicamente com base na entrada do Build User config (Job) fornecida à CLI do purpleteam, especificamente o número de testSessions que você define.

As seguintes configurações são relevantes se você pretende executar o back-end do purpleteam no ambiente local. Na nuvem, tudo isso é feito para você.

Clone este repositório.

Defina as variáveis de ambiente

app-slave (Zap)

Usamos um arquivo .env diretamente no diretório app-slave para teste.

ZAP_API_KEY

Certifique-se de ter atribuído um valor à variável de ambiente ZAP_API_KEY.

A ZAP_API_KEY pode ser o que você escolher, apenas certifique-se de que, além de defini-la para o app-slave, você também a adicione à configuração do projeto app-scanner. O projeto app-scanner requer que a Chave de API do Zap seja configurada para autenticar no Zap em execução no contêiner do Estágio Dois. Para o projeto app-scanner, isso precisa ser definido da seguinte forma:
{ "slave": { "apiKey": <zap-api-key-aqui> } }

HOST_ZAP_LOG4J_PROPERTIES_PATH e ZAP_LOG4J_PROPERTIES_PATH_MOUNT_TARGET

Se/quando você precisar de logs de depuração do Zap, também precisará adicionar as variáveis de ambiente para a configuração de depuração do LOG4J.

Arquivo .env

Se você optar por usar um arquivo .env, adicionar todas essas variáveis de ambiente seria semelhante ao seguinte:

root@kitploit:~
ZAP_API_KEY=<zap-api-key-aqui>
HOST_ZAP_LOG4J_PROPERTIES_PATH=<caminho-absoluto-para/purpleteam-s2-containers/app-slave/log4j.properties>
ZAP_LOG4J_PROPERTIES_PATH_MOUNT_TARGET=/home/zap/.ZAP/log4j.properties

Depuração

app-slave (Zap)

Log de depuração

Desde que você tenha estabelecido as variáveis de ambiente discutidas acima:

Para ativar o log de depuração para os contêineres app-slave (Zap) que são executados no ambiente local, descomente o array volumes e o elemento que contém a chave source com a variável de ambiente HOST_ZAP_LOG4J_PROPERTIES_PATH.

Detalhes abaixo para realmente visualizar os logs.

Interagindo com o Zap

Você pode interagir com o Zap (consultar a interface do Zap) enquanto seus testes estão em execução. Já achamos isso útil no passado para verificar o estado do Zap durante a depuração do app-scanner.

  1. Confirme se o contêiner appslave_zap_[n] está em execução com:
    root@kitploit:~
    docker stats
    
  2. Verifique em qual porta do host o contêiner appslave_zap_[n] está vinculado com:
    root@kitploit:~
    docker container ls
    
    Pode ser qualquer porta entre 8080-8091 inclusive, conforme definido no docker-compose.yml.
    A porta que o Zap dentro do contêiner está ouvindo será sempre 8080
  3. No seu navegador, usando FoxyProxy, configure um proxy para localhost:[zap-host-port]
    FoxyProxyDetails_Zap-min
    Opcional: configure o seguinte Padrão de URL no FoxyProxy: zap:8080/*
    FoxyProxyURLPattern_Zap-min
    Se você usar o Padrão de URL, ele permitirá que você deixe o FoxyProxy ativado, selecionando "Usar proxies com base em seus padrões e prioridades predefinidos". Caso contrário, você pode simplesmente selecionar o proxy específico que criou
  4. Navegue para http://zap:8080/
    Suas requisições serão encaminhadas através da porta do seu host e respondidas pelo processo zap no contêiner especificado pela porta do host na sua configuração do FoxyProxy

selenium-standalone

Log de depuração

Para ativar o log de depuração para os contêineres Selenium que são executados no ambiente local, descomente o array environment e o elemento SE_OPTS=-debug para chrome e/ou firefox.

Detalhes abaixo para realmente visualizar os logs.

Visualizando o navegador no contêiner Selenium

O seguinte descreve o que você precisará fazer para visualizar o navegador dentro de qualquer um dos contêineres Selenium executados a partir deste projeto.

Configuração do docker-compose.yml:

  • Troque as imagens dos contêineres pelas imagens -debug. As imagens -debug podem estar comentadas, então basta comentar a imagem usual e descomentar a imagem com -debug anexado ao final
  • Certifique-se de que você pode acessar o servidor VNC dentro do contêiner descomentando a faixa de portas 5900. Ao especificar uma faixa como porta externa (Ex: 5900-5901), você poderá se conectar via VNC a mais de um contêiner ao mesmo tempo; no exemplo, permitimos a abertura de duas sessões simultaneamente. Se você precisar se conectar via VNC a mais de dois, basta ampliar a faixa de portas externas

Configuração do Cliente VNC:

  1. Você precisará de um cliente VNC para abrir uma conexão com o servidor VNC dentro do contêiner. Tivemos sucesso com o Remmina Remote Desktop Client no Linux Mint. Instale o Remmina-plugin-vnc via Gerenciador de Software

  2. Execute seu Remmina Remote Desktop Client

  3. Crie novas entradas. Se você pretende se conectar via VNC a alguns contêineres Selenium simultaneamente, pode configurar cada um como o seguinte:

    ChaveValor
    Nomeseleniumstandalone_chrome_1
    ProtocoloVNC - Virtual Network Computing
    Na aba Básico
    Servidor127.0.0.1:5900
    Senhasecret
    Profundidade de corTrue color (24 bit) # Esta foi a única que funcionou para nós
    QualidadeRuim (mais rápida)

Mais detalhes no github do SeleniumHQ

Visualizando o navegador dentro do contêiner Selenium

Assim que os contêineres Selenium estiverem em execução (manter docker stats em execução em um terminal é conveniente para visualizar isso), você pode confirmar qual contêiner Selenium está usando qual porta externa com docker container ls, pois o Docker não tem ideia de quais portas você atribuiu a quais entradas do seu cliente VNC, então o nome de uma determinada entrada do cliente VNC pode não corresponder necessariamente ao contêiner Selenium com o mesmo nome. Por esse motivo, é uma boa ideia confirmar os mapeamentos de porta com docker container ls.

Para correlacionar qual contêiner Selenium está sendo usado para qual Sessão de Teste quando você tem várias Sessões de Teste, pode ser necessário revisar o log do app-scanner em execução. Você também pode precisar garantir que o app-scanner esteja configurado para o nível de log debug para ver algumas ou mais das seguintes mensagens de log:

[app.parallel] processo cucCli com PID "28" foi gerado para sessão de teste com Id "lowPrivUser"

[app.parallel] processo cucCli com PID "34" foi gerado para sessão de teste com Id "adminUser"

[pid-28,world] seleniumContainerName é: seleniumstandalone_chrome_1

[pid-34,world] seleniumContainerName é: seleniumstandalone_chrome_2

Neste exemplo, temos duas Sessões de Teste configuradas no nosso Build User config (Job). Uma tem um id de lowPrivUser e a outra tem um id de adminUser. Neste exemplo, a Sessão de Teste lowPrivUser tem um processo com PID 28 e a Sessão de Teste adminUser tem um processo com PID 34.
Nas duas mensagens de log seguintes, vemos ao correlacionar os PIDs que a Sessão de Teste lowPrivUser está executando um contêiner chamado seleniumstandalone_chrome_1 e a Sessão de Teste adminUser está executando um contêiner chamado seleniumstandalone_chrome_2.
Não há garantias sobre qual Sessão de Teste executará qual dos contêineres seleniumstandalone_chrome_[n], portanto, se você precisar ter certeza, use esta técnica de correlação.

Para se conectar por VNC aos contêineres Selenium, uma vez que você tenha o Remmina em execução, basta clicar duas vezes em uma ou mais entradas VNC que criou acima e você deverá ver o navegador sendo interagido... desde que as etapas do teste Cucumber no app-scanner estejam realmente nesse ponto.
Você pode, é claro, desacelerar seus testes, pausá-los, percorrê-los com um depurador. Esses detalhes estão na wiki do purpleteam na página de workflow

Redirecionando e visualizando logs do contêiner

Localmente, você pode manter docker stats em execução se quiser para ver quais contêineres estão em execução, quando estão sendo iniciados e parados. Isso também fornecerá seus nomes para os comandos a seguir.

Para visualizar os logs do contêiner do Estágio Dois, monitore o stdout (e stderr, já que o Docker mescla stdout e stderr) de um contêiner:

root@kitploit:~
docker logs --follow [nome-do-contêiner]

Se quiser enviar esses logs para um arquivo também:

root@kitploit:~
docker logs --follow [nome-do-contêiner] |tee output.log$(date '+%Y-%m-%d_%T')

Se quiser enviar esses logs para um arquivo sem visualizá-los pelo terminal:

root@kitploit:~
docker logs --follow [nome-do-contêiner] > output.log$(date '+%Y-%m-%d_%T')
Baixar ferramenta
ChaveValor
Nomeseleniumstandalone_chrome_2
ProtocoloVNC - Virtual Network Computing
Na aba Básico
Servidor127.0.0.1:5901
Senhasecret
Profundidade de corTrue color (24 bit) # Esta foi a única que funcionou para nós
QualidadeRuim (mais rápida)