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
SteppingStones — Ferramenta baseada na web para registro de atividades de red team, geração de relatórios e consciência situacional, com integração com Cobalt Strike e BloodHound. | Kitploit
Ferramentas/GitHubGitHub/nccgroup/steppingstones
Scripting e AutomaçãoColeta de InformaçõesTestes de PenetraçãoComando e ControleUtilitários e FrameworksRed Teaming
GitHubnccgroup/steppingstones

SteppingStones

Ferramenta baseada na web para registro de atividades de red team, geração de relatórios e consciência situacional, com integração com Cobalt Strike e BloodHound.

Ver RepositórioSite
24334há 22h 45mRevisado pelo Kitploit

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

Stepping Stones

Propósito

Um hub para atividades de Red Team para auxiliar no registro de informações, consciência situacional e relatórios. O Stepping Stones fornece uma UI baseada na web para a equipe registrar atividades e gerar trechos de relatórios. A UI é projetada para ser rápida o suficiente para ser usada durante todo o engajamento, não apenas na fase de relatórios.

Postagem do Blog de Lançamento

Instalação

O Stepping Stones é uma aplicação Python Django, então para ter uma cópia local em execução:

  1. Instale a versão mais recente do Python 3 (testado com 3.12.2 no Windows e Linux)
  2. Entre no diretório raiz de uma cópia deste repositório
  3. Crie um ambiente virtual para manter as dependências separadas de outros aplicativos: python -m venv .venv
  4. Ative o ambiente virtual: .venv\Scripts\activate ou source .venv/bin/activate no *nix
  5. Instale as dependências: pip install -r requirements.txt
  6. Garanta que o módulo de tarefas em segundo plano de terceiros tenha todas as migrações necessárias:
python manage.py makemigrations background_task
  • Atualize o esquema do banco de dados: python manage.py migrate
  • Inicie a aplicação:
    • Se estiver executando em um sistema Linux com systemd, consulte o guia do systemd
    • Para versões de desenvolvimento:
      • Execute python manage.py runserver e python manage.py process_tasks simultaneamente
    • Para versões de produção:
      • Execute python manage.py check --deploy para obter recomendações de endurecimento e depois siga um guia como: https://docs.djangoproject.com/en/6.0/howto/deployment/
  • Acesse a aplicação para configurar uma tarefa e um usuário admin: ex., acesse http://127.0.0.1:8000 se estiver executando localmente
    • Nota: O usuário criado também será usado para o aplicativo principal e aparecerá como "operador de red team" nos eventos registrados, então escolha um nome de usuário adequado, ex.: "ST" ou "stephen", em vez de "admin". Se estiver usando a integração com o Cobalt Strike, usar os mesmos nomes de usuário para ambas as ferramentas ajudará na integração.
  • Integração com Cobalt Strike

    • Coloque um Cobalt Strike LICENCIADO em /opt/cobaltstrike ou c:\tools\cobaltstrike-dist\cobaltstrike

    No Team Server - abra uma brecha no firewall para permitir que o Stepping Stones se conecte, ex.:

    • Na AWS, configure o grupo de segurança do Stepping Stones para ser permitido na porta 50050 no Team Server
    • No host, certifique-se de que o firewall também permita o tráfego de entrada, ex.: sudo ufw allow proto tcp from 172.31.16.0/20 to any port 50050

    Atualizando a Aplicação

    Se estiver executando uma cópia local, quando o código for atualizado no git e você quiser os novos recursos:

    1. Pare ambos os serviços, ex.: com systemd:
      • sudo service ssbot stop
      • sudo service steppingstones stop
    2. Obtenha a versão mais recente, ex.: de https://github.com/nccgroup/SteppingStones/archive/refs/heads/main.zip
    3. Descompacte o download e copie os arquivos por cima da implantação, ex.: rm -rf /tmp/stepping-stones-main; unzip /tmp/stepping-stones-main.zip && cp -R /tmp/stepping-stones-main/* /opt/steppingstones
    4. Ative o ambiente virtual (se ainda não o fez) a partir do diretório steppingstones: .venv\Scripts\activate ou source .venv/bin/activate no *nix
    5. Instale quaisquer novas dependências com: pip install -r requirements.txt
    6. Garanta que o módulo de tarefas em segundo plano de terceiros tenha todas as migrações necessárias: python manage.py makemigrations background_task
    7. Execute os scripts de migração para transformar seu banco de dados local no novo esquema: python manage.py migrate.
      • Se o Django solicitar que você execute python manage.py makemigrations, então PARE e contate os desenvolvedores do Stepping Stones - é importante que todos os usuários estejam trabalhando com o mesmo conjunto de scripts de migração e que isso seja coordenado pelos desenvolvedores.
    8. Reinicie ambos os serviços, ex.: com systemd:
      • sudo service ssbot restart
      • sudo service steppingstones restart
    9. Garanta que não há erros, ex.: com systemd journalctl -u steppingstones

    Recomeçando com um Banco de Dados Limpo

    Se você estiver usando a mesma instância para diferentes trabalhos e quiser arquivar os dados antigos e recomeçar, você pode:

    • Execute o passo 1 de Atualizando a Aplicação acima para parar a aplicação
    • Renomeie o banco de dados SQLite:
      • mv db.sqlite3 db.sqlite.OLD_CLIENT_NAME
    • Execute os passos 2, 4 e 7-9 de Instalação acima para criar a estrutura correta do banco de dados e acessar a aplicação recém-configurada.

    Backups

    O sistema usa SQLite. Faça backup do arquivo db.sqlite3 na raiz do servidor ou pela interface web periodicamente para proteger seus dados valiosos.

    Webhooks

    Cada uma das URLs de webhook configuradas receberá um pequeno documento JSON em eventos importantes. O documento JSON sempre tem a estrutura:

    root@kitploit:~
    {
        "type": "notification type",
        "message": "Human readable message"
    }
    

    O campo type pode ser um dos seguintes:

    • new beacon (Um beacon nunca antes visto conectou-se a um Team Server monitorado)
    • respawned beacon (Um beacon já visto conectou-se a um Team Server monitorado)
    • returned beacon (Um beacon que estava sendo explicitamente monitorado para reconexão acabou de se reconectar)

    Para consumir isso, você pode usar um cenário do https://make.com, baseado no seguinte blueprint:

    root@kitploit:~
    {"name":"Webhook to iOS","flow":[{"id":1,"module":"gateway:CustomWebHook","version":1,"parameters":{"hook":129792,"maxResults":1},"mapper":{},"metadata":{"designer":{"x":-386,"y":-129},"restore":{"parameters":{"hook":{"data":{"editable":"true"},"label":"My webhook"}}},"parameters":[{"name":"hook","type":"hook:gateway-webhook","label":"Webhook","required":true},{"name":"maxResults","type":"number","label":"Maximum number of results"}],"interface":[{"name":"type","type":"text"},{"name":"message","type":"text"}]}},{"id":8,"module":"ios:SendNotification","version":1,"parameters":{"device":171760},"mapper":{"body":"{{1.message}}","title":"{{1.type}}","action":"","priority":10,"collapsible":false},"metadata":{"designer":{"x":-31,"y":-128},"restore":{"expect":{"action":{"label":"Default"},"priority":{"label":"Deliver immediately"}},"parameters":{"device":{"data":{"editable":"undefined"},"label":"Personal Phone"}}},"parameters":[{"name":"device","type":"device:apn","label":"Device","required":true}],"expect":[{"name":"title","type":"text","label":"Title","required":true},{"name":"body","type":"text","label":"Body"},{"name":"action","type":"select","label":"Action","validate":{"enum":["open_url"]}},{"name":"priority","type":"select","label":"Priority","required":true,"validate":{"enum":[10,5]}},{"name":"collapsible","type":"boolean","label":"Collapse push notifications","required":true}]}}],"metadata":{"instant":true,"version":1,"scenario":{"roundtrips":1,"maxErrors":3,"autoCommit":true,"autoCommitTriggerLast":true,"sequential":false,"confidential":false,"dataloss":false,"dlq":false},"designer":{"orphans":[]},"zone":"eu1.make.com"}}
    

    Importe o blueprint acima criando um cenário em branco e usando o recurso "Import Blueprint" no menu "..." (Mais) encontrado no centro inferior da interface web.

    Mais dois passos são necessários em seguida:

    • Clique no círculo do webhook e adicione um novo webhook nomeado para gerar uma URL
    • Clique no logotipo da Apple para inscrever um iPhone no make.com com o aplicativo integromat deles.

    Os webhooks podem ser testados por meio de um botão na página de webhooks do Stepping Stones.

    Modelo de Segurança

    O Stepping Stones utiliza o sistema de permissões em nível de modelo do Django, permitindo que os usuários sejam impedidos de criar, editar, visualizar e excluir cada tipo de modelo de dados. Grupos podem ser encontrados no console /admin, que atribuem um conjunto de permissões, ex.: adequadas para o Blue Team de um Cliente, a qualquer membro desse grupo.

    Os grupos existentes são:

    FunçãoDescrição
    Blue Team do Cliente - Somente LeituraPode ler a página de eventos e arquivos
    Blue Team do Cliente - Escrita LimitadaComo o Blue Team do Cliente - Somente Leitura com acesso de escrita aos campos de desfecho e detecção de um Evento

    Os usuários criados durante o processo de instalação recebem status de "superuser" e, portanto, implicitamente têm todas as permissões possíveis. No entanto, ao criar usuários manualmente pelo console admin, certifique-se de que eles NÃO sejam marcados como "staff" nem "superuser" para que comecem sem permissões implícitas e, portanto, só obtenham permissões ao serem adicionados a grupos.

    Localização

    Os fusos horários dos usuários podem ser modificados pelo portal /admin. Os horários nos relatórios são intencionalmente emitidos em UTC para permitir uma correlação mais fácil pelas Blue Teams.

    Os formatos de data apresentados pelo Stepping Stones devem corresponder ao locale do navegador da web. Ou seja, usuários cujo navegador esteja configurado com um locale dos EUA verão as datas no formato MM/DD/YYYY na interface web e nos trechos de relatório.

    EventStream

    O Stepping Stones pode ingerir logs de outras ferramentas se eles forem formatados no formato EventStream personalizado, baseado em JSON. O formato é detalhado na interface web do SteppingStones, incluindo esquemas e dados de exemplo.

    Depois que um log EventStream for ingerido pelo Stepping Stones, entradas específicas e relevantes podem ser clonadas em Eventos para o relatório.

    Detalhes da Integração com o Cobalt Strike

    O método preferido de integrar o Cobalt Strike é por meio do SSBot. Isso requer uma cópia licenciada do Cobalt Strike em /opt/cobaltstrike ou c:\tools\cobaltstrike, que será usada para contatar quaisquer Team Servers (habilitados) configurados na interface web.

    Uma vez integrado:

    • Os menus suspensos de Origem/Alvo incluirão beacons
    • Os menus suspensos de Arquivos incluirão arquivos enviados/baixados pelo CS
    • A aba de Credenciais será preenchida com base na saída da ferramenta e em quaisquer credenciais adicionadas ao CS.
    • Ações individuais do CS podem ser transformadas em eventos - por favor, seja seletivo e adicione contexto a cada evento em vez de duplicar ações integralmente, para manter a qualidade do relatório.

    Existem comandos CLI adicionais que podem ser usados se o SSBot não estiver funcionando como esperado:

    • .\manage.py reset_cs_data [-s SERVER] - Redefinirá quaisquer dados analisados do Team Server fornecido, ou todos se nenhum nome for fornecido. Isso não afetará dados derivados dos logs do CS, ex.: eventos ou credenciais clonados manualmente.
    • .\manage.py parse_log_tar <file name> - Analisará o conteúdo de um diretório de logs, empacotado em tar e obtido de um Team Server. Nota: isso não inclui todos os dados acessíveis pelo SSBot e, portanto, não é a técnica de ingestão preferida

    Integração com BloodHound

    Servidores Neo4j configurados pela interface web serão usados para:

    • Atualizar o status owned do BloodHound quando credenciais forem adicionadas com senha, ou quando um beacon for executado em um host específico como sistema.
    • Preencher os menus suspensos de Origem/Alvo com usuários e computadores
    • Fornecer relatórios adicionais sobre contas na seção de credenciais do Stepping Stones

    Plugins de Relatórios

    É possível estender a funcionalidade do Stepping Stones por meio de plugins. Documentação adicional está disponível aqui.

    Baixar ferramenta