Aprenda e pratique Hacking AWS:<imgsrc="../../.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="../../.gitbook/assets/arte.png"alt=""data-size="line">\
Aprenda e pratique Hacking GCP: <imgsrc="../../.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="../../.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Suporte ao HackTricks</summary>
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
Você também pode usar a [**extensão semgrep para VSCode**](https://marketplace.visualstudio.com/items?itemName=Semgrep.semgrep) para obter os resultados dentro do VSCode.
Há uma **versão gratuita instalável**, mas de acordo com a licença, você pode **usar apenas a versão gratuita do codeQL em projetos de código aberto**.
A primeira coisa que você precisa fazer é **preparar o banco de dados** (criar a árvore de código) para que mais tarde as consultas sejam executadas sobre ele.
{% endhint %}
* Você pode permitir que o codeql identifique automaticamente a linguagem do repositório e crie o banco de dados
Isso **geralmente acionará um erro** dizendo que mais de um idioma foi especificado (ou detectado automaticamente). **Verifique as próximas opções** para corrigir isso!
* Você pode fazer isso **indicando manualmente** o **repo** e o **idioma** ([lista de idiomas](https://docs.github.com/en/code-security/codeql-cli/getting-started-with-the-codeql-cli/preparing-your-code-for-codeql-analysis#running-codeql-database-create))
* Você também pode permitir que `codeql`**identifique todas as linguagens** para você e crie um DB por linguagem. Você precisa fornecer um **GITHUB\_TOKEN**.
Você pode visualizar os resultados em [**https://microsoft.github.io/sarif-web-component/**](https://microsoft.github.io/sarif-web-component/) ou usando a extensão do VSCode [**SARIF viewer**](https://marketplace.visualstudio.com/items?itemName=MS-SarifVSCode.sarif-viewer).
Você também pode usar a [**extensão do VSCode**](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-codeql) para obter os resultados dentro do VSCode. Você ainda precisará criar um banco de dados manualmente, mas depois poderá selecionar quaisquer arquivos e clicar em `Right Click` -> `CodeQL: Run Queries in Selected Files`
## This will upload your code and you need to enable this option in: Settings > Snyk Code
snyk test code
# Test for vulns in images
snyk container test [image]
# Test for IaC vulns
snyk iac test
```
Você também pode usar a [**snyk VSCode Extension**](https://marketplace.visualstudio.com/items?itemName=snyk-security.snyk-vulnerability-scanner) para obter descobertas dentro do VSCode.
* [**nodejsscan**](https://github.com/ajinabraham/nodejsscan)**:** Scanner de código de segurança estático (SAST) para aplicações Node.js alimentado por [libsast](https://github.com/ajinabraham/libsast) e [semgrep](https://github.com/returntocorp/semgrep).
```bash
# Install & run
docker run -it -p 9090:9090 opensecurity/nodejsscan:latest
# Got to localhost:9090
# Upload a zip file with the code
```
* [**RetireJS**](https://github.com/RetireJS/retire.js)**:** O objetivo do Retire.js é ajudar você a detectar o uso de versões de bibliotecas JS com vulnerabilidades conhecidas.
```bash
# Install
npm install -g retire
# Run
cd /path/to/repo
retire --colors
```
## Electron
* [**electronegativity**](https://github.com/doyensec/electronegativity)**:** É uma ferramenta para identificar configurações incorretas e anti-padrões de segurança em aplicações baseadas em Electron.
## Python
* [**Bandit**](https://github.com/PyCQA/bandit)**:** Bandit é uma ferramenta projetada para encontrar problemas de segurança comuns em código Python. Para fazer isso, o Bandit processa cada arquivo, constrói um AST a partir dele e executa plugins apropriados contra os nós do AST. Uma vez que o Bandit tenha terminado de escanear todos os arquivos, ele gera um relatório.
* [**safety**](https://github.com/pyupio/safety): O Safety verifica as dependências do Python em busca de vulnerabilidades de segurança conhecidas e sugere as remediações adequadas para as vulnerabilidades detectadas. O Safety pode ser executado em máquinas de desenvolvedores, em pipelines de CI/CD e em sistemas de produção.
| Deletar do Jar | zip -d \[jar] \[arquivo a remover] |
| Descompilar classe| procyon -o . \[caminho para a classe] |
| Descompilar Jar | procyon -jar \[jar] -o \[diretório de saída] |
| Compilar classe | javac \[caminho para o arquivo .java] |
## Ir
```bash
https://github.com/securego/gosec
```
## PHP
[Psalm](https://phpmagazine.net/2018/12/find-errors-in-your-php-applications-with-psalm.html) e [PHPStan](https://phpmagazine.net/2020/09/phpstan-pro-edition-launched.html).
* Se estiver usando jsnice.org, clique no botão de opções ao lado do botão "Nicify JavaScript" e desmarque "Infer types" para reduzir a desordem no código com comentários.
* Certifique-se de não deixar linhas em branco antes do script, pois isso pode afetar o processo de deobfuscação e dar resultados imprecisos.
3. Para algumas alternativas mais modernas ao JSNice, você pode querer olhar para as seguintes:
* > Ferramenta de descompilação, desempacotamento e desminificação de Javascript Wakaru é o descompilador de Javascript para frontend moderno. Ele recupera o código original de uma fonte empacotada e transpilada.
* > Desminificar código Javascript usando ChatGPT Esta ferramenta usa grandes modelos de linguagem (como ChatGPT e llama2) e outras ferramentas para desminificar código Javascript. Observe que LLMs não realizam alterações estruturais – eles apenas fornecem dicas para renomear variáveis e funções. O trabalho pesado é feito pelo Babel no nível AST para garantir que o código permaneça equivalente 1-1.
* Encontre o valor de retorno no final e mude para `console.log(<packerReturnVariable>);` para que o js deobfuscado seja impresso em vez de ser executado.
* Em seguida, cole o js modificado (e ainda ofuscado) em [https://jsconsole.com/](https://jsconsole.com/) para ver o js deobfuscado registrado no console.
* Finalmente, cole a saída deobfuscada em [https://prettier.io/playground/](https://prettier.io/playground/) para embelezá-la para análise.
* **Nota**: Se você ainda estiver vendo js empacotado (mas diferente), pode estar empacotado recursivamente. Repita o processo.
* [Deobfuscando / Desminificando Código de Aplicativos Web Ofuscados](https://gist.github.com/0xdevalias/d8b743efb82c0e9406fc69da0d6c6581#deobfuscating--unminifying-obfuscated-web-app-code)
Aprenda e pratique Hacking AWS:<imgsrc="../../.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="../../.gitbook/assets/arte.png"alt=""data-size="line">\
Aprenda e pratique Hacking GCP: <imgsrc="../../.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="../../.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.