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
s3tk — Um kit de ferramentas de segurança para Amazon S3 | Kitploit
Ferramentas/GitHubGitHub/ankane/s3tk
Segurança de Infraestrutura em NuvemScanners de VulnerabilidadesFerramentas de Criptografia/DescriptografiaAuditoria de ConfiguraçãoSegurança na NuvemConfiguração Incorreta
GitHubankane/s3tk

s3tk

Um kit de ferramentas de segurança para Amazon S3

Ver Repositório
45927há 1 mêsRevisado 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

s3tk

Um kit de ferramentas de segurança para Amazon S3

Screenshot

🍊 Testado em batalha na Instacart

Instalação

Execute:

root@kitploit:~
pip install s3tk

Você pode usar o AWS CLI ou o AWS Vault para configurar suas credenciais AWS:

root@kitploit:~
pip install awscli
aws configure

Consulte as políticas IAM necessárias para cada comando.

Comandos

Scan

Digitalize seus buckets para:

  • ACL aberta ao público
  • política aberta ao público
  • acesso público bloqueado
  • logging habilitado
  • versionamento habilitado
  • criptografia padrão habilitada
root@kitploit:~
s3tk scan

Executar apenas em buckets específicos

root@kitploit:~
s3tk scan my-bucket my-bucket-2

Também funciona com curingas

root@kitploit:~
s3tk scan "my-bucket*"

Confirme o(s) bucket(s) de log e prefixo corretos

root@kitploit:~
s3tk scan --log-bucket my-s3-logs --log-bucket other-region-logs --log-prefix "{bucket}/"

Verificar logging no nível de objeto do CloudTrail [experimental]

root@kitploit:~
s3tk scan --object-level-logging

Pular logging, versionamento ou criptografia padrão

root@kitploit:~
s3tk scan --skip-logging --skip-versioning --skip-default-encryption

Obter notificações por e-mail de falhas (via SNS)

root@kitploit:~
s3tk scan --sns-topic arn:aws:sns:...

List Policy

Listar políticas de bucket

root@kitploit:~
s3tk list-policy

Executar apenas em buckets específicos

root@kitploit:~
s3tk list-policy my-bucket my-bucket-2

Mostrar declarações nomeadas

root@kitploit:~
s3tk list-policy --named

Set Policy

Nota: Isso substitui a política anterior

Apenas uploads privados

root@kitploit:~
s3tk set-policy my-bucket --no-object-acl

Delete Policy

Excluir política

root@kitploit:~
s3tk delete-policy my-bucket

Block Public Access

Bloquear acesso público em buckets específicos

root@kitploit:~
s3tk block-public-access my-bucket my-bucket-2

Use a flag --dry-run para testar

Enable Logging

Habilitar logging em todos os buckets

root@kitploit:~
s3tk enable-logging --log-bucket my-s3-logs

Apenas em buckets específicos

root@kitploit:~
s3tk enable-logging my-bucket my-bucket-2 --log-bucket my-s3-logs

Definir prefixo de log ({bucket}/ por padrão)

root@kitploit:~
s3tk enable-logging --log-bucket my-s3-logs --log-prefix "logs/{bucket}/"

Use a flag --dry-run para testar

Algumas notas sobre logging:

  • buckets com logging já habilitado não são atualizados
  • o bucket de log deve estar na mesma região que o bucket de origem – execute este comando várias vezes para regiões diferentes
  • pode levar mais de uma hora para os logs aparecerem

Enable Versioning

Habilitar versionamento em todos os buckets

root@kitploit:~
s3tk enable-versioning

Apenas em buckets específicos

root@kitploit:~
s3tk enable-versioning my-bucket my-bucket-2

Use a flag --dry-run para testar

Enable Default Encryption

Habilitar criptografia padrão em todos os buckets

root@kitploit:~
s3tk enable-default-encryption

Apenas em buckets específicos

root@kitploit:~
s3tk enable-default-encryption my-bucket my-bucket-2

Isso não criptografa objetos existentes – use o comando encrypt para isso

Use a flag --dry-run para testar

Scan Object ACL

Digitalizar ACL em todos os objetos de um bucket

root@kitploit:~
s3tk scan-object-acl my-bucket

Apenar certos objetos

root@kitploit:~
s3tk scan-object-acl my-bucket --only "*.pdf"

Exceto certos objetos

root@kitploit:~
s3tk scan-object-acl my-bucket --except "*.jpg"

Reset Object ACL

Redefinir ACL em todos os objetos de um bucket

root@kitploit:~
s3tk reset-object-acl my-bucket

Isso torna todos os objetos privados. Consulte políticas de bucket para saber como impor daqui para frente.

Use a flag --dry-run para testar

Especifique certos objetos da mesma forma que scan-object-acl

Encrypt

Criptografar todos os objetos em um bucket com criptografia do lado do servidor

root@kitploit:~
s3tk encrypt my-bucket

Use chaves gerenciadas pelo S3 por padrão. Para chaves gerenciadas pelo KMS, use:

root@kitploit:~
s3tk encrypt my-bucket --kms-key-id arn:aws:kms:...

Para chaves fornecidas pelo cliente, use:

root@kitploit:~
s3tk encrypt my-bucket --customer-key secret-key

Use a flag --dry-run para testar

Especifique certos objetos da mesma forma que scan-object-acl

Nota: Os objetos perderão qualquer ACL personalizada

Delete Unencrypted Versions

Excluir todas as versões não criptografadas de objetos em um bucket

root@kitploit:~
s3tk delete-unencrypted-versions my-bucket

Por segurança, isso não excluirá nenhuma versão atual dos objetos

Use a flag --dry-run para testar

Especifique certos objetos da mesma forma que scan-object-acl

Scan DNS

Digitalizar o Route 53 em busca de buckets para garantir que você é o proprietário

root@kitploit:~
s3tk scan-dns

Caso contrário, você pode estar suscetível a subdomain takeover

Credenciais

As credenciais podem ser especificadas em ~/.aws/credentials ou com variáveis de ambiente. Consulte este guia para obter uma explicação sobre as variáveis de ambiente.

Você pode especificar um perfil a ser usado com:

root@kitploit:~
AWS_PROFILE=your-profile s3tk

Políticas IAM

Aqui estão as permissões necessárias para cada comando. Inclua apenas as declarações necessárias.

root@kitploit:~
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Scan",
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:GetBucketAcl",
                "s3:GetBucketPolicy",
                "s3:GetBucketPublicAccessBlock",
                "s3:GetBucketLogging",
                "s3:GetBucketVersioning",
                "s3:GetEncryptionConfiguration"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ScanObjectLevelLogging",
            "Effect": "Allow",
            "Action": [
                "cloudtrail:ListTrails",
                "cloudtrail:GetTrail",
                "cloudtrail:GetEventSelectors",
                "s3:GetBucketLocation"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ScanDNS",
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "route53:ListHostedZones",
                "route53:ListResourceRecordSets"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ListPolicy",
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:GetBucketPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "SetPolicy",
            "Effect": "Allow",
            "Action": [
                "s3:PutBucketPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DeletePolicy",
            "Effect": "Allow",
            "Action": [
                "s3:DeleteBucketPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "BlockPublicAccess",
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:PutBucketPublicAccessBlock"
            ],
            "Resource": "*"
        },
        {
            "Sid": "EnableLogging",
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:PutBucketLogging"
            ],
            "Resource": "*"
        },
        {
            "Sid": "EnableVersioning",
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:PutBucketVersioning"
            ],
            "Resource": "*"
        },
        {
            "Sid": "EnableDefaultEncryption",
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:PutEncryptionConfiguration"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ResetObjectAcl",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObjectAcl",
                "s3:PutObjectAcl"
            ],
            "Resource": [
                "arn:aws:s3:::my-bucket",
                "arn:aws:s3:::my-bucket/*"
            ]
        },
        {
            "Sid": "Encrypt",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::my-bucket",
                "arn:aws:s3:::my-bucket/*"
            ]
        },
        {
            "Sid": "DeleteUnencryptedVersions",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucketVersions",
                "s3:GetObjectVersion",
                "s3:DeleteObjectVersion"
            ],
            "Resource": [
                "arn:aws:s3:::my-bucket",
                "arn:aws:s3:::my-bucket/*"
            ]
        }
    ]
}

Logs de Acesso

O Amazon Athena é excelente para consultar logs do S3. Crie uma tabela e faça consultas:

root@kitploit:~
SELECT
    parse_datetime(requestdatetime, 'dd/MMM/yyyy:HH:mm:ss Z') AS time,
    key,
    remoteip,
    useragent
FROM
    s3_access_logs_db.mybucket_logs
WHERE
    requester = '-'
    AND httpstatus LIKE '2%'
    AND key LIKE 'some-keys%'
ORDER BY 1

Logs do CloudTrail

O Amazon Athena também é excelente para consultar logs do CloudTrail. Crie uma tabela e faça consultas:

root@kitploit:~
SELECT
    eventtime,
    eventname,
    useridentity.username,
    requestparameters
FROM
    cloudtrail_logs
WHERE
    eventname LIKE '%Bucket%'
ORDER BY 1

Melhores Práticas

Mantenha as coisas simples e siga o princípio do menor privilégio para reduzir a chance de erros.

  • Limite rigorosamente quem pode realizar operações relacionadas a buckets
  • Evite misturar objetos com permissões diferentes no mesmo bucket (use uma política de bucket para impor isso)
  • Não especifique permissões de leitura pública no nível do bucket (sem GetObject na política do bucket)
  • Monitore a configuração com frequência para alterações

Políticas de Bucket

Apenas uploads privados

root@kitploit:~
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:PutObjectAcl",
            "Resource": "arn:aws:s3:::my-bucket/*"
        }
    ]
}

Performance

Para comandos que iteram sobre objetos do bucket (scan-object-acl, reset-object-acl, encrypt e delete-unencrypted-versions), execute o s3tk em um servidor EC2 para obter latência mínima.

Notas

Os comandos set-policy, block-public-access, enable-logging, enable-versioning e enable-default-encryption são fornecidos por conveniência. Recomendamos o Terraform para gerenciar seus buckets.

root@kitploit:~
resource "aws_s3_bucket" "my_bucket" {
  bucket = "my-bucket"
  acl    = "private"

  logging {
    target_bucket = "my-s3-logs"
    target_prefix = "my-bucket/"
  }

  versioning {
    enabled = true
  }
}

resource "aws_s3_bucket_public_access_block" "my_bucket" {
  bucket = "${aws_s3_bucket.my_bucket.id}"

  block_public_acls       = true
  block_public_policy     = true
  ignore_public_acls      = true
  restrict_public_buckets = true
}

Atualizando

Execute:

root@kitploit:~
pip install s3tk --upgrade

Para usar o master, execute:

root@kitploit:~
pip install git+https://github.com/ankane/s3tk.git --upgrade

Docker

Execute:

root@kitploit:~
docker run -it ankane/s3tk aws configure

Salve suas credenciais:

root@kitploit:~
docker commit $(docker ps -l -q) my-s3tk

E execute:

root@kitploit:~
docker run -it my-s3tk s3tk scan

Histórico

Veja o changelog

Contribuindo

Todos são incentivados a ajudar a melhorar este projeto. Aqui estão algumas maneiras de ajudar:

  • Reportar bugs
  • Corrigir bugs e enviar pull requests
  • Escrever, esclarecer ou corrigir documentação
  • Sugerir ou adicionar novos recursos

Para começar a desenvolver:

root@kitploit:~
git clone https://github.com/ankane/s3tk.git
cd s3tk
pip install --group dev
Baixar ferramenta