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
yellow — Um wrapper binário simples para canarytokens de DNS. | Kitploit
Ferramentas/GitHubGitHub/singe/yellow
Ferramentas DefensivasSegurança de RedeDetecção de Intrusão
GitHubsinge/yellow

yellow

Um wrapper binário simples para canarytokens de DNS.

Ver Repositório
251há 3 anosRevisado 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
root@kitploit:~
            _ _               
 _   _  ___| | | _____      __
| | | |/ _ \ | |/ _ \ \ /\ / /
| |_| |  __/ | | (_) \ V  V / 
 \__, |\___|_|_|\___/ \_/\_/  
 |___/               
 - Just add blue.

yellow - apenas adicione azul

Modificações binárias simples que acionarão um canarytoken quando um binário for executado.

Ideal para armar armadilhas em sistemas de produção contra invasores.

Atualmente, existem quatro métodos:

  • yellow é uma abordagem direcionada com um binário que acionará o token e depois executará o binário real com base em uma extensão de arquivo de sua escolha.
  • spe é uma variação do método acima usando uma abordagem semelhante ao token "Sensitive Process Execution" adicionado recentemente pela Thinkst para Windows.
  • libyellow é uma notificação entre sistemas e acionará de forma transparente um canarytoken para qualquer nome de binário que você especificar quando for injetado via LD_PRELOAD
  • ldsoyellow é um linker glibc totalmente funcional (ld.so) que acionará um canarytoken para qualquer binário que o utilize

Preparação

Registre um canary token DNS próprio em canarytokens. Você pode ler mais sobre como eles funcionam em a documentação.

Ele parecerá algo assim: pz21qtyfsidipvrsuzs9n2udi.canarytokens.com

Coloque-o na variável de ambiente TOKEN com: export TOKEN="c28y9l4dw0drj62un0cm4rwz6.canarytokens.com"

Os Dockerfiles contêm um token de exemplo funcional; você pode verificar o histórico de atividade dele aqui. Mas você realmente deveria usar o seu próprio.

Compilação

Dockerfiles que implementam cada um desses métodos de compilação estão disponíveis.

Se você tiver um ambiente de build padrão adequado (ex.: build-essential em sistemas baseados em Debian ou build-base em sistemas baseados em Alpine), você pode compilar libyellow ou yellow de forma muito simples. ldsoyellow é mais complicado.

Você pode ver um exemplo simples de ponta a ponta de compilação e instalação do yellow nos Dockerfiles.

yellow

gcc -o yellow yellow.c canary32.c

Veja Dockerfile.yellow

spe

Nenhuma compilação necessária.

libyellow

Certifique-se de atualizar a lista de binários sobre os quais você quer alertar no array alert_list.

gcc -shared -fPIC libyellow.c canary32.c -o libyellow.so

Veja Dockerfile.libyellow ou Dockerfile.libyellow.debian para as versões Alpine e Debian.

ldsoyellow

Verifique o Dockerfile.ldsoyellow para um exemplo funcional. Você precisará das fontes do glibc (recomendo usar a versão oficial do pacote para ficar o mais próximo possível do linker real).

apt-get source libc6

Aplique o patch rtld.c.patch

cd /glibc-* patch < rtld.c.patch

Configure o glibc com as verificações de sanidade desabilitadas e apontando para o libdir correto (assumindo um sistema de 64 bits)

mkdir glibcbuild && cd glibcbuild /glibc-*/configure --disable-sanity-checks --libdir=$(dirname $(find / -name "libc.so.6"|grep 64))

Compile normalmente

make

Instalação

Todas as variantes usam a variável de ambiente TOKEN para especificar a URL do canary token. O nome da variável de ambiente pode ser alterado, ou até mesmo embutido no código (hardcoded), se preferir. Novamente, existem Dockerfiles para cada uma delas.

yellow

O yellow tem a intenção de acionar em binários específicos que você renomeia e cria um alias para ele, de forma semelhante a como o busybox é usado. Você precisará renomear o binário para usar a extensão ".canary" e, em seguida, criar um symlink (ou cópia) do yellow com o nome do binário original. Por exemplo:

root@kitploit:~
cp yellow /usr/bin
mv /usr/bin/id /usr/bin/id.canary
ln -s /usr/bin/yellow /usr/bin/id

Depois disso, qualquer execução de id acionará seu canary token.

Veja Dockerfile.yellow

spe

O método de execução de processo sensível usa a mesma técnica acima, exceto que dispara com um script shell em vez de um binário, e vem com um instalador. Execute spe_install.sh passando seu token DNS e o nome do binário no qual você quer disparar. O binário não precisa existir.

Por exemplo: ./spe_install.sh "c28y9l4dw0drj62un0cm4rwz6.canarytokens.com" /bin/id

Isso criará um alerta sempre que id for executado.

Esta é uma cópia do método de token do Windows descrito aqui

libyellow

O libyellow tem a intenção de disparar em qualquer binário usado em que tenha sido injetado via LD_PRELOAD, mas alertar apenas sobre os que você especificar no código. Isso pode ser feito por sessão, definindo a variável de ambiente LD_PRELOAD para apontar para ele, ou em todo o sistema, adicionando-o ao arquivo /etc/ld.so.preload. Esta última opção pode quebrar seu sistema se a biblioteca não estiver funcionando nele, então é recomendável testá-la usando LD_PRELOAD primeiro.

Lembre-se de colocar seu token na variável de ambiente TOKEN, conforme descrito em "Preparação" acima.

Exemplo com LD_PRELOAD:

root@kitploit:~
cp libyellow.so /usr/lib/
export LD_PRELOAD=/usr/lib/libyellow.so

Em seguida, execute um binário alvo, verifique se ele se comporta como esperado e você receberá um alerta canary.

Quando estiver satisfeito de que tudo está funcionando, você pode adicioná-lo em todo o sistema com (isso não funcionará em sistemas baseados em musl, como Alpine, onde o método LD_PRELOAD é usado em vez disso):

root@kitploit:~
cp libyellow.so /usr/lib
echo /usr/lib/libyellow.so >> /etc/ld.so.preload

Veja Dockerfile.libyellow ou Dockerfile.libyellow.debian para as versões Alpine e Debian.

ldsoyellow

O ldsoyellow tem a intenção de disparar em binários específicos em que o binário é modificado para usá-lo em vez do linker padrão. Você poderia substituir o linker padrão por ele para um efeito em todo o sistema, mas isso provavelmente geraria ruído demais.

O exemplo em Dockerfile.ldsoyellow inclui fazer isso para /bin/cat. Primeiro, o linker modificado é copiado ao lado do linker legítimo:

cp <arm'd linker> /lib64/ld-linux-x86-64.so.3

Em seguida, o binário é modificado para usá-lo em vez do legítimo:

sed -i "s/\/lib64\/ld-linux-x86-64.so.2/\/lib64\/ld-linux-x86-64.so.3/" /bin/cat

Veja Dockerfile.ldsoyellow.

Exemplo de Docker em Docker

Se você quisesse executar Docker em Docker, digamos, em um ambiente de build com controle limitado das diretivas de build, e ser alertado se alguém escapasse, você poderia fazer algo como o exemplo em Dockerfile.dind-rootless. Este exemplo usa yellow, mas poderia usar qualquer uma ou todas as outras variantes.

Ele cria armadilhas em binários no host que não deveriam ser acessíveis a partir de um contêiner.

Baixar ferramenta