Imagens quebradas com 'embed truncate' desativado

Olá,

Estou recebendo imagens quebradas

![](upload://7Tu1xeK5xtt2jBrjpWQcBxOYByS.png

com “embed truncate” as imagens funcionam; mas com “embed truncate” desativado, ele me dá quebrado como todas as imagens..

nos logs vazio.. e Sidekiq tudo processado bem..

Por favor, compartilhe aqui:

  • Link do artigo que você está tentando incorporar

  • Link do feed RSS

  • HTML da postagem processada ou um link para a instância onde o tópico reside

Suspeito que você esteja encontrando o problema descrito aqui: Fix broken images for posts created by the WP Discourse and RSS plugins. Esse guia oferece algumas soluções alternativas para o problema. Há uma explicação detalhada do problema na minha segunda postagem no tópico.

Correto @simon, eu tento isso habilitando “domínios de download de imagem desativados”, mas as imagens não aparecem naquele momento..

As imagens só aparecem desta forma

![](upload://6zqK52dO23i1JsYH2oyMU12U2ro.jpeg)

e editar manualmente adicionando <p></p> não é um “plugin de trabalho” correto.

Mas em relação ao “Classic Editor”, eu não tentei, pois não está relacionado ao WordPress..

Espero que você possa nos dar alguma correção ou correção temporária para este problema.

Depois de ler muitos tópicos longos, etc., decidi ir com o branco para corrigir o problema da imagem; mas o problema com este plugin é que, mesmo depois de editá-lo e corrigir as imagens, a imagem desapareceu “ou” o tópico foi novamente raspado com a imagem quebrada, e eu preciso fazer uma edição “reverter para revisão” ..

É realmente irritante que não possamos fazer com que as imagens do tópico não fiquem quebradas; mesmo depois de adicionar um espaço em branco à imagem!

Você pode compartilhar o que foi solicitado?

Caso contrário, é inútil reclamar sem informações mínimas acionáveis.

Já mencionei o problema com as imagens quebradas, mas ninguém deu resultados, exceto um colega que se referiu ao mesmo problema sem solução.

Link que tento incorporar:
https://reconshell.com/redwarden-flexible-cobaltstrike-malleable-redirector/

Link para o feed RSS
https://reconshell.com/tag/cobaltstrike/feed/

HTML processado:


<figure class="wp-block-image size-large">![cs|1024x689](upload://liMGLRlV0nW3HZuECbVKnLCrHcE.png)</figure>



<p><strong><span class="has-inline-color has-vivid-purple-color">Proxy reverso C2 Cobalt Strike que repele Blue Teams, AVs, EDRs e scanners por meio de inspeção de pacotes e correlação de perfil maleável</span></strong></p>



<hr class="wp-block-separator">



<p>(anteriormente conhecido como plugin <em>malleable_redirector</em> do <a href="https://github.com/mgeeky/proxy2" target="_blank" rel="noopener">proxy2</a>)</p>



<p><strong>Vamos elevar o padrão de resiliência a IR em redirecionadores C2, não é?</strong></p>



<p>O negócio de Red Teaming viu <a href="https://bluescreenofjeff.com/2016-04-12-combatting-incident-responders-with-apache-mod_rewrite/" target="_blank" rel="noopener">várias</a> <a href="https://posts.specterops.io/automating-apache-mod-rewrite-and-cobalt-strike-malleable-c2-profiles-d45266ca642" target="_blank" rel="noopener">diferentes</a> <a href="https://gist.github.com/curi0usJack/971385e8334e189d93a6cb4671238b10" target="_blank" rel="noopener">grandes</a> ideias sobre como combater respondedores de incidentes e desviá-los, oferecendo ao mesmo tempo uma rede de redirecionadores C2 resistente.</p>



<p>Este trabalho combina muitas dessas grandes ideias em uma única utilidade leve, imitando o Apache2 em suas raízes como um simples proxy reverso HTTP(S).</p>



<p>A combinação do entendimento de perfis C2 Maleáveis, conhecimento de pools de endereços IP maliciosos e a flexibilidade de adicionar facilmente nova lógica de inspeção e desvio resultou em um repelente astuto para inspeções de IR.</p>



<figure class="wp-block-image size-large">![red|1024x677](upload://yNscGob6i3Xu2UY6bnBXZgbSwAZ.png)</figure>



<p>Se algum pacote de entrada inválido atingir o RedWarden – você pode <code>redirecionar</code>, <code>resetar</code> ou simplesmente <code>proxiar</code> para longe!</p>



<h2><a href="https://github.com/mgeeky/RedWarden#abstract" target="_blank" rel="noopener"></a></h2>



<h2><strong>Resumo</strong></h2>



<p>Este programa atua como um proxy reverso HTTP/HTTPS com várias restrições impostas às solicitações HTTP C2 de entrada, selecionando quais pacotes direcionar para o Teamserver e quais descartar, semelhante às restrições do arquivo .htaccess impostas no <code>mod_rewrite</code> do Apache2.</p>



<p><code>RedWarden</code> foi criado para resolver o problema de evasão de IR/AV/EDRs/Sandboxes na camada de redirecionamento C2. Destina-se a substituir as configurações clássicas de Apache2 + mod_rewrite usadas para esse fim.</p>



<p><strong>Recursos:</strong></p>



<ul><li>Analizador de Perfil C2 Maleável capaz de validar solicitações HTTP/S de entrada estritamente de acordo com o contrato maleável e descartar pacotes fora do padrão em caso de violação (Perfis Maleáveis 4.0+ com variantes cobertas)</li><li>Capacidade de desfiltrar/consertar cabeçalhos HTTP inesperados e indesejados adicionados por sistemas intermediários, como proxies e caches (pense no CloudFlare), para estar em conformidade com um contrato Maleável válido.</li><li>Lista negra curada integrada de pools e faixas de IPv4 conhecidos por estarem associados a fornecedores de Segurança de TI</li><li>Entradas de log de saída pesquisáveis (nos formatos de log de acesso combinado do Apache2 e formato personalizado do RedWarden) úteis para rastrear eventos/problemas de conectividade de pares</li><li>Capacidade de consultar o endereço IPv4 do par conectado contra informações de Geolocalização/whois de IP e confrontar isso com expressões regulares predefinidas para excluir pares conectados fora de organizações/países/cidades confiáveis, etc.</li><li>Mitigação integrada de ataques de Replay imposta registrando as somas MD5 das solicitações aceitas em um banco de dados SQLite armazenado localmente e impedindo solicitações aceitas anteriormente.</li><li>Permite definir declarações ProxyPass para passar solicitações que correspondem a URLs específicos para outros Hosts</li><li>Suporte a vários Teamservers</li><li>Suporte a muitos Hosts/redirecionadores de proxy reverso em ordem aleatória – o que permite balancear o tráfego ou construir infraestruturas mais versáteis</li><li>Pode reparar pacotes HTTP de acordo com o contrato maleável esperado, caso alguns dos cabeçalhos tenham sido corrompidos no tráfego</li><li>As noites sem dormir gastas solucionando problemas de "por que meu Beacon não funciona via CloudFlare/CDN/Domain Fronting" acabaram agora, graças a logs detalhados e verbosos de solicitações/respostas HTTP(S)</li></ul>



<p>O RedWarden recebe o perfil C2 Maleável e o <code>hostname:port</code> do teamserver como entrada. Em seguida, analisa as seções do perfil maleável fornecido para entender o contrato e permitir a passagem apenas das solicitações de entrada que o satisfizeram, enquanto desvia as outras.</p>



<p>Seções como <code>http-stager</code>, <code>http-get</code>, <code>http-post</code> e seus uris, cabeçalhos, padrões de prepend/append e User-Agent correspondentes são usadas para distinguir entre a solicitação legítima do beacon e ruído da Internet não relacionado ou pacotes fora dos limites de IR/AV/EDRs.</p>



<p>O programa se beneficia das maravilhosas faixas de IP maliciosas conhecidas provenientes de: curi0usJack e outros:</p>



<pre class="wp-block-preformatted">https://gist.github.com/curi0usJack/971385e8334e189d93a6cb4671238b10</pre>



<p>O uso de listagem negra de endereços IP juntamente com a pesquisa de palavras-chave maliciosas por meio de consultas DNS Reverse-IP e inspeção de cabeçalhos HTTP aumenta consideravelmente a confiabilidade e a resiliência do redirecionador contra pares não autorizados que desejam examinar as infraestruturas do atacante.</p>



<p>Pacotes inválidos podem ser desviados de acordo com três estratégias:</p>



<ul><li><strong>redirecionar</strong>: Simplesmente redireciona o par para outros sites, como o Rick Roll.</li><li><strong>resetar</strong>: Encerra a conexão TCP imediatamente.</li><li><strong>proxiar</strong>: Busca uma resposta de outro site, para imitar o site clonado/sequestrado o mais próximo possível.</li></ul>



<p>Esta configuração é imposta no arquivo de configuração:</p>



<pre class="wp-block-preformatted">#
# O que fazer com a solicitação originária não em conformidade com o Beacon, whitelist ou 
# declarações inclusivas de ProxyPass: 
#   - 'redirecionar' para outro host com (HTTP 301), 
#   - 'resetar' a conexão TCP com o cliente conectado
#   - 'proxiar' a solicitação, agindo como um proxy reverso contra o action_url especificado 
#       (pode ser perigoso se o cliente buscar algo que não deveria ver!)
#
# Valores válidos: 'reset', 'redirect', 'proxy'. 
#
# Padrão: redirect
#
drop_action: redirect</pre>



<p>O exemplo abaixo mostra o resultado do <code>redirect</code> para <code>https://googole.com</code>:</p>



<figure class="wp-block-image size-large">![op|1024x526](upload://rSd1JK6ERp0W2nR9GtTryPHMvJc.png)</figure>



<p>Use com sabedoria, mantenha-se seguro.</p>



<h3><a href="https://github.com/mgeeky/RedWarden#requirements" target="_blank" rel="noopener"></a></h3>



<h3><strong><span class="has-inline-color has-vivid-cyan-blue-color">Requisitos</span></strong></h3>



<p>Este programa pode ser executado apenas em sistemas Linux, pois usa fork para gerar vários processos.</p>



<p>Além disso, espera-se que o comando do sistema <code>openssl</code> esteja instalado, pois é usado para gerar certificados SSL.</p>



<p>Finalmente, instale todos os requisitos PIP do Python3 facilmente com:</p>



<pre class="wp-block-preformatted">bash $ sudo pip3 install -r requirements.txt</pre>



<h2><a href="https://github.com/mgeeky/RedWarden#usage" target="_blank" rel="noopener"></a></h2>



<h2>Uso</h2>



<h3><a href="https://github.com/mgeeky/RedWarden#example-usage" target="_blank" rel="noopener"></a></h3>



<h3><span class="has-inline-color has-vivid-cyan-blue-color">Exemplo de uso</span></h3>



<p>O arquivo de configuração <strong>config.yaml</strong> mínimo do RedWarden pode conter:</p>



<pre class="wp-block-preformatted">port:
  - 80/http
  - 443/https

profile: jquery-c2.3.14.profile

ssl_cacert: /etc/letsencrypt/live/attacker.com/fullchain.pem
ssl_cakey: /etc/letsencrypt/live/attacker.com/privkey.pem

teamserver_url:
  - 1.2.3.4:8080

drop_action: reset</pre>



<p>Em seguida, o programa pode ser iniciado fornecendo o caminho para o arquivo de configuração:</p>



<pre class="wp-block-preformatted">bash$ sudo python3 RedWarden.py -c config.yaml

  [INFO] 19:21:42: Carregando 1 plugin...
  [INFO] 19:21:42: Plugin "malleable_redirector" foi instalado.
  [INFO] 19:21:42: Preparando certificados e chaves SSL para interceptação de tráfego https...
  [INFO] 19:21:42: Usando arquivo de chave CA fornecido: ca-cert/ca.key
  [INFO] 19:21:42: Usando arquivo de certificado CA fornecido: ca-cert/ca.crt
  [INFO] 19:21:42: Usando chave de Certificado fornecida: ca-cert/cert.key
  [INFO] 19:21:42: Servindo proxy http em: 0.0.0.0, porta: 80...
  [INFO] 19:21:42: Servindo proxy https em: 0.0.0.0, porta: 443...
  [INFO] 19:21:42: [SOLICITAÇÃO] GET /jquery-3.3.1.min.js
  [INFO] 19:21:42: == Solicitação http-get maleável válida de entrada.
  [INFO] 19:21:42: Plugin redirecionou solicitação de [code.jquery.com] para [1.2.3.4:8080]
  [INFO] 19:21:42: [RESPOSTA] HTTP 200 OK, comprimento: 5543
  [INFO] 19:21:45: [SOLICITAÇÃO] GET /jquery-3.3.1.min.js
  [INFO] 19:21:45: == Solicitação http-get maleável válida de entrada.
  [INFO] 19:21:45: Plugin redirecionou solicitação de [code.jquery.com] para [1.2.3.4:8080]
  [INFO] 19:21:45: [RESPOSTA] HTTP 200 OK, comprimento: 5543
  [INFO] 19:21:46: [SOLICITAÇÃO] GET /
  [...]
  [ERRO] 19:24:46: [DESCARTADO, motivo:1] User-Agent de entrada difere do definido no perfil C2.
  [...]
  [INFO] 19:24:46: [RESPOSTA] HTTP 301 Moved Permanently, comprimento: 212
  [INFO] 19:24:48: [SOLICITAÇÃO] GET /jquery-3.3.1.min.js
  [INFO] 19:24:48: == Solicitação http-get maleável válida de entrada.
  [INFO] 19:24:48: Plugin redirecionou solicitação de [code.jquery.com] para [1.2.3.4:8080]
  [...]</pre>



<p>A saída acima contém uma linha apontando que houve uma solicitação de entrada não autorizada, não em conformidade com nosso perfil C2, que foi descartada devido à string User-Agent incompatível apresentada:</p>



<pre class="wp-block-code"><code>  [...]
  [DESCARTADO, motivo:1] User-Agent de entrada difere do definido no perfil C2.
  [...]
</code></pre>



<h2><a href="https://github.com/mgeeky/RedWarden#use-cases" target="_blank" rel="noopener"></a></h2>



<h2><strong>Casos de Uso</strong></h2>



<h3><a href="https://github.com/mgeeky/RedWarden#impose-ip-geolocation-on-your-beacon-traffic-originators" target="_blank" rel="noopener"></a></h3>



<h3><span class="has-inline-color has-vivid-cyan-blue-color">Imponha Geolocalização de IP aos originadores do tráfego do seu Beacon</span></h3>



<p>Você fez seu Pre-Phish e OSINT muito bem. Agora você sabe onde seus alvos vivem e tem algumas pistas sobre de onde o tráfego deve originar, ou pelo menos como detectar tráfego completamente auxiliar. Como impor Geolocalização de IP nas solicitações do Beacon em um redirecionador?</p>



<p>O RedWarden vem em socorro!</p>



<p>Digamos que você queira aceitar apenas tráfego originário da Polônia, Europa. Os resultados do seu Pre-Phish/OSINT indicam que:</p>



<ul><li><code>89.64.64.150</code> é um IP legítimo de um de seus alvos, originário da Polônia</li><li><code>59.99.140.76</code> enquanto este não é e atingiu seus sistemas como um pacote de ruído da Internet regular.</li></ul>



<p>Você pode usar a utilidade <code>lib/ipLookupHelper.py</code> do RedWarden para coletar metadados de Geo IP sobre esses dois endereços:</p>



<pre class="wp-block-preformatted">bash$ python3 ipLookupHelper.py

Uso: ./ipLookupHelper.py <ipaddress> [malleable-redirector-config]

Use esta pequena utilidade para coletar detalhes de Lookup de IP no endereço IPv4 do seu alvo e verificar se
sua seção 'ip_geolocation_requirements' do proxy2 malleable-redirector-config.yaml corresponderia a esse
endereço IP. Se o segundo parâmetro não for fornecido - nenhum </ipaddress></pre>



<p>O primeiro traz:</p>



<pre class="wp-block-preformatted">bash$ python3 ipLookupHelper.py 89.64.64.150
[dbg] Os seguintes provedores de Lookup de IP serão usados: ['ip_api_com', 'ipapi_co']
[.] Lookup de: 89.64.64.150
[dbg] Chamando provedor de Lookup de IP: ipapi_co
[dbg] Chamando provedor de Lookup de IP: ip_api_com
[dbg] Nova entrada de lookup de IP em cache: 89.64.64.150
[.] Saída:
{
  "organization": [
    "UPC Polska Sp. z o.o.",
    "UPC.pl",
    "AS6830 Liberty Global B.V."
  ],
  "continent": "Europe",
  "continent_code": "EU",
  "country": "Poland",
  "country_code": "PL",
  "ip": "89.64.64.150",
  "city": "Warsaw",
  "timezone": "Europe/Warsaw",
  "fulldata": {
    "status": "success",
    "country": "Poland",
    "countryCode": "PL",
    "region": "14",
    "regionName": "Mazovia",
    "city": "Warsaw",
    "zip": "00-202",
    "lat": 52.2484,
    "lon": 21.0026,
    "timezone": "Europe/Warsaw",
    "isp": "UPC.pl",
    "org": "UPC Polska Sp. z o.o.",
    "as": "AS6830 Liberty Global B.V.",
    "query": "89.64.64.150"
  },
  "reverse_ip": "89-64-64-150.dynamic.chello.pl"
}</pre>



<p>e o último dá:</p>



<pre class="wp-block-preformatted">bash$ python3 ipLookupHelper.py 59.99.140.76
[dbg] Os seguintes provedores de Lookup de IP serão usados: ['ip_api_com', 'ipapi_co']
[dbg] Lidas 1 entradas em cache do arquivo.
[.] Lookup de: 59.99.140.76
[dbg] Chamando provedor de Lookup de IP: ip_api_com
[dbg] Nova entrada de lookup de IP em cache: 59.99.140.76
[.] Saída:
{
  "organization": [
    "",
    "BSNL Internet",
    "AS9829 National Internet Backbone"
  ],
  "continent": "Asia",
  "continent_code": "AS",
  "country": "India",
  "country_code": "IN",
  "ip": "59.99.140.76",
  "city": "Palakkad",
  "timezone": "Asia/Kolkata",
  "fulldata": {
    "status": "success",
    "country": "India",
    "countryCode": "IN",
    "region": "KL",
    "regionName": "Kerala",
    "city": "Palakkad",
    "zip": "678001",
    "lat": 10.7739,
    "lon": 76.6487,
    "timezone": "Asia/Kolkata",
    "isp": "BSNL Internet",
    "org": "",
    "as": "AS9829 National Internet Backbone",
    "query": "59.99.140.76"
  },
  "reverse_ip": ""
}</pre>



<p>Agora você vê que o primeiro tinha <code>"country": "Poland"</code> enquanto o último <code>"country": "India"</code>. Com esse conhecimento, estamos prontos para elaborar nossas restrições na forma de um dicionário YAML robusto:</p>



<pre class="wp-block-preformatted">ip_geolocation_requirements:
  organization:
  continent:
  continent_code:
  country:
     - Poland
     - PL
     - Polska
  country_code:
  city:
  timezone:</pre>



<p>Cada uma das entradas desse dicionário aceita expressão regular para ser correspondida aos metadados de Geo IP determinados do endereço IP do par de entrada. Usamos três entradas na propriedade <code>country</code> para permitir solicitações com um dos valores especificados.</p>



<p>Com isso definido em sua configuração, você pode verificar se outro endereço IP seria passado pelo discriminador de Geolocalização de IP do RedWarden ou não com a utilidade <code>ipLookupHelper</code> aceitando o segundo parâmetro:</p>



<figure class="wp-block-image size-large">![confy|1024x832](upload://1hMhgAzzH4ngPQFLkddw4nmGw2M.png)</figure>



<p>A última linha diz se o pacote seria bloqueado ou aceito.</p>



<p>E é isso! Configure suas restrições de Geolocalização de IP com sabedoria e segurança, inspecione cuidadosamente os logs do RedWarden em busca de quaisquer entradas de DESCARTE relacionadas a Geo IP e mantenha seu tráfego C2 bonito e organizado!</p>



<h3><a href="https://github.com/mgeeky/RedWarden#repair-tampered-beacon-requests" target="_blank" rel="noopener"></a></h3>



<h3><strong><span class="has-inline-color has-vivid-cyan-blue-color">Repare solicitações de Beacon adulteradas</span></strong></h3>



<p>Se você acabar usando sistemas intermediários como AWS Lambda ou CloudFlare como seus Domain Fronting / redirecionadores, certamente já encontrou uma situação em que alguns de seus pacotes não podiam ser aceitos pelo Teamserver, pois desviavam do contrato maleável acordado. Foi um cabeçalho HTTP adulterado ou removido, cookies reordenados ou qualquer outra coisa – aposto que isso desperdiçou muitas horas da sua vida.</p>



<p>Para combater problemas no processo de configuração de canais C2 e adulterações de sistemas intermediários, o RedWarden oferece funcionalidade para reparar pacotes de Beacon.</p>



<p>Ele faz isso verificando o que o Perfil Maleável espera que o pacote seja e pode restaurar os cabeçalhos HTTP configurados para seus valores acordados de acordo com os requisitos do perfil.</p>



<p>Considere o seguinte perfil simples:</p>



<pre class="wp-block-preformatted">http-get {
    set uri "/api/abc";
    client {

        header "Accept-Encoding" "gzip, deflate";

        metadata {
            base64url;
            netbios;
            base64url;
            parameter "auth";
        }
    }
    ...</pre>



<p>Você vê este <code>Accept-Encoding</code>? Toda solicitação de Beacon deve chegar com esse Cabeçalho e esse valor. O que acontece se seu Beacon atingir os sistemas do CloudFlare e eles emitirem uma solicitação que será removida desse Cabeçalho ou tiver <code>Accept-Encoding: gzip</code> em vez disso? O Teamserver descartará a solicitação na hora.</p>



<p>Ao definir este cabeçalho na seção de configuração do RedWarden chamada <code>protect_these_headers_from_tampering</code>, você pode salvar sua conexão.:</p>



<pre class="wp-block-preformatted">#
# Se o RedWarden validar os cabeçalhos HTTP da solicitação de entrada, de acordo com a política drop_malleable_without_expected_header_value:
#   "[IP: DESCARTADO, motivo:6] A solicitação HTTP não continha o valor de cabeçalho esperado:"
#
# e percebe que algum cabeçalho está faltando ou foi sobrescrito ao longo da linha, a solicitação será descartada. Podemos relaxar essa política
# um pouco, no entanto, pois há situações em que sistemas de Cache (como Cloudflare) podem adulterar nossas solicitações, assim
# quebrando contratos Maleáveis. O que podemos fazer é especificar uma lista de cabeçalhos que devem ser sobrescritos de volta para seus valores
# definidos no perfil Maleável fornecido.
#
# Então, por exemplo, se nosso perfil espera:
#   header "Accept-Encoding" "gzip, deflate";
#
# mas recebemos uma solicitação com o seguinte cabeçalho definido em vez disso:
#   Accept-Encoding: gzip
#
# Porque foi adulterado ao longo da linha por algum dos sistemas intermediários (como proxies web ou caches), podemos
# detectar isso e definir o valor desse cabeçalho de volta para o que era esperado no perfil Maleável.
#
# Para proteger o cabeçalho Accept-Encoding, como exemplo, a seguinte configuração pode ser usada:
#   protect_these_headers_from_tampering:
#     - Accept-Encoding
#
#
# Padrão: <empty-list>
#
protect_these_headers_from_tampering:
  - Accept-Encoding</empty-list></pre>



<h3><a href="https://github.com/mgeeky/RedWarden#example-outputs" target="_blank" rel="noopener"></a></h3>



<h3><strong><span class="has-inline-color has-vivid-cyan-blue-color">Exemplos de saída</span></strong></h3>



<p>Vamos dar uma olhada na saída que o proxy produz.</p>



<p>Sob a opção <code>verbose: True</code>, a verbosidade será definida como INFO no máximo, distinguindo solicitações aceitas das descartadas.</p>



<p>A solicitação pode ser aceita se confrontada com todos os critérios configurados no arquivo de configuração do RedWarden. Essa situação será seguida por uma entrada de log <code>[ALLOW, ...]</code>:</p>



<pre class="wp-block-preformatted">[INFO] 2021-04-24/17:30:48: [SOLICITAÇÃO] GET /js/scripts.js
[INFO] 2021-04-24/17:30:48: == Solicitação http-get maleável válida (variante: padrão) de entrada.
[INFO] 2021-04-24/17:30:48: [PERMITIDO, 2021-04-24/19:30:48, 111.222.223.224] "/js/scripts.js" - UA: "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"
[INFO] 2021-04-24/17:30:48: Par conectado enviou 2 solicitações http-get válidas e 0 solicitações http-post válidas até agora, fora das 15/5 necessárias para considerá-lo temporariamente confiável
[INFO] 2021-04-24/17:30:48: Plugin redirecionou solicitação de [attacker.com] para [127.0.0.1:5555]</pre>



<p>Se a solicitação falhar em qualquer uma das verificações que o RedWarden executa em cada solicitação, a linha correspondente <code>[DROP, ...]</code> será emitida contendo informações sobre o <strong>motivo</strong> do descarte.:</p>



<pre class="wp-block-preformatted">[INFO] 2021-04-24/16:48:28: [SOLICITAÇÃO] GET /
[ERRO] 2021-04-24/16:48:29: [DESCARTADO, 2021-04-24/18:48:28, motivo:1, 128.14.211.186] User-Agent de entrada difere do definido no perfil C2.
[INFO] 2021-04-24/16:48:29: [DESCARTADO, 2021-04-24/18:48:28, 128.14.211.186] "/" - UA: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"
[ERRO] 2021-04-24/16:48:29: [REDIRECIONANDO solicitação inválida de 128.14.211.186 (zl-dal-us-gp3-wk107.internet-census.org)] GET /</pre>



<h3><a href="https://github.com/mgeeky/RedWarden#drop-policies-fine-tuning" target="_blank" rel="noopener"></a></h3>



<h3><strong><span class="has-inline-color has-vivid-cyan-blue-color">Ajuste Fino das Políticas de Descarte</span></strong></h3>



<p>Há muitas razões que ditam se uma solicitação pode ser descartada. Cada uma dessas verificações pode ser ativada e desativada independentemente de acordo com os requisitos ou em um processo de ajuste fino ou correção de decisão errônea:</p>



<p>Excerto de <code>example-config.yaml</code>:</p>



<pre class="wp-block-preformatted">#
# Política de descarte de solicitações de grão fino - permite decidir quais verificações
# você deseja ter impostas e quais pular, definindo-as como False
#
# Padrão: todas as verificações habilitadas
#
policy:
  # [IP: PERMITIDO, motivo:0] A solicitação corresponde à entrada ProxyPass (url="..." host="..."). Passando a solicitação para o host especificado
  allow_proxy_pass: True
  # [IP: PERMITIDO, motivo:2] O IP do par foi adicionado dinamicamente a uma whitelist com base em um número de solicitações permitidas
  allow_dynamic_peer_whitelisting: True
  # [IP: DESCARTADO, motivo:1] User-Agent de entrada difere do definido no perfil C2.
  drop_invalid_useragent: True
  # [IP: DESCARTADO, motivo:2] O nome do cabeçalho HTTP continha palavra proibida
  drop_http_banned_header_names: True
  # [IP: DESCARTADO, motivo:3] O valor do cabeçalho HTTP continha palavra proibida:
  drop_http_banned_header_value: True
  # [IP: DESCARTADO, motivo:4b] A pesquisa de reverse-IP do par continha palavra proibida
  drop_dangerous_ip_reverse_lookup: True
  # [IP: DESCARTADO, motivo:4e] Os metadados de geolocalização de IP do par continham palavra-chave proibida! Par banido de forma genérica.
  drop_ipgeo_metadata_containing_banned_keywords: True
  # [IP: DESCARTADO, motivo:5] A solicitação HTTP não continha o cabeçalho esperado
  drop_malleable_without_expected_header: True
  # [IP: DESCARTADO, motivo:6] A solicitação HTTP não continha o valor de cabeçalho esperado:
  drop_malleable_without_expected_header_value: True
  # [IP: DESCARTADO, motivo:7] A solicitação HTTP não continha o cabeçalho de seção esperado (metadata|id|output):
  drop_malleable_without_expected_request_section: True
  # [IP: DESCARTADO, motivo:8] Esperava-se que a solicitação HTTP contivesse a seção (metadata|id|output) com parâmetro na URI:
  drop_malleable_without_request_section_in_uri: True
  # [IP: DESCARTADO, motivo:9] Não encontrou padrão de prepend:
  drop_malleable_without_prepend_pattern: True
  # [IP: DESCARTADO, motivo:10] Não encontrou padrão de append:
  drop_malleable_without_apppend_pattern: True
  # [IP: DESCARTADO, motivo:11] A URI solicitada não se alinha a nenhuma das variantes definidas no Maleável:
  drop_malleable_unknown_uris: True
  # [IP: DESCARTADO, motivo:12] Esperava-se que a solicitação HTTP contivesse a seção &lt;&gt; com URI-append contendo fragmentos de prepend/append
  drop_malleable_with_invalid_uri_append: True</pre>



<p>Por padrão, todas essas verificações são impostas.</p>



<p>Ativar <code>debug: True</code> inundará seu buffer de console com muitas linhas de log descrevendo cada etapa que o RedWarden dá em seu processo complexo de decisão. Se você quiser ver os corpos completos de suas solicitações e respostas – defina <code>debug</code> e <code>trace</code> como true e se enterre na carga de log!</p>



<h2><a href="https://github.com/mgeeky/RedWarden#faq" target="_blank" rel="noopener"></a></h2>



<h2><strong><span class="has-inline-color has-vivid-cyan-blue-color">FAQ</span></strong></h2>



<p><strong>– Este programa pode ser executado sem Perfil Maleável?</strong></p>



<p>Sim, pode. No entanto, a lógica de inspeção de solicitações será desativada, o restante deve funcionar bem: imposição de Geolocalização de IP, lógica de pesquisa reversa, lista de IPs banidos, etc.</p>



<p><strong>– Este programa pode ser facilmente adaptado para outros frameworks C2 também? Como Mythic, Covenant, etc?</strong></p>



<p>Facilmente, não. Com alguns esforços – sim. Como descrevi abaixo, a ferramenta é mal escrita, o que tornará a adaptação de outros C2s uma dor. No entanto, isso é totalmente possível dado algum tempo e esforço.</p>



<p><strong>– Meus pacotes estão sendo descartados. Por quê?</strong></p>



<p>Tente habilitar <code>debug: True</code> e <code>trace: True</code> para coletar o máximo de logs possível. Então você precisará passar pelos logs e inspecionar o que está acontecendo. Os pacotes parecem exatamente como você esperava em seu perfil Maleável? Ou talvez tenha havido uma adulteração sutil ao longo da rede que faz o RedWarden descartar o pacote (e isso também poderia fazer o Teamserver descartá-lo)?</p>



<h2><a href="https://github.com/mgeeky/RedWarden#known-issues" target="_blank" rel="noopener"></a></h2>



<h2><strong><span class="has-inline-color has-vivid-cyan-blue-color">Problemas Conhecidos</span></strong></h2>



<ul><li>Pode *adicionar* uma leve sobrecarga à taxa de transferência de sleep interativo</li><li>A lógica de processamento ProxyPass está longe de ser perfeita e é *realmente* bugada (e ai meu deus, é feia!).</li><li>Formas estranhas de arquivos de configuração podem desviar o analisador do RedWarden e fazê-lo reclamar. A abordagem mais fácil para superar isso seria copiar <code>example-config.yaml</code> e trabalhar nele em vez disso.</li></ul>



<h2><a href="https://github.com/mgeeky/RedWarden#oh-my-god-why-is-this-code-such-an-engineerical-piece-of-crap" target="_blank" rel="noopener"></a></h2>



<h2><span class="has-inline-color has-vivid-cyan-blue-color"><strong>Meu deus, por que este código é uma porcaria de engenheiro?</strong></span></h2>



<p>O código é *UMA PORCARIA ENORME* – eu admito isso – e há uma razão honesta para isso também: o projeto estava sendo desenvolvido 90% durante os engajamentos reais de Red Team. Como todos sabemos, esses tipos de engajamentos envolvem tantas coisas a fazer, deixando quase nenhum tempo para um desenvolvimento de ferramenta complexa adequado. Sem mencionar a criticidade deste programa na configuração do projeto. A ferramenta inicialmente começou como um script de proxy simples escrito em Python2, para então evoluir como um proxy com plugins, recebeu o plugin <code>malleable_redirector</code> – e desde então tenho tentado muito hard para manter o <code>proxy2</code> compatível com versões anteriores (pobre de mim, eu era como a Microsoft!) com outros plugins que fiz para ele e me ater ao seu propósito original.</p>



<p>Chegou a hora, no entanto, de deixá-lo ir, rebatizá-lo e começar a corrigir todos os maiores cheiros de código introduzidos.</p>



<p>Dito tudo isso, por favor, expressem algum nível de compaixão por mim ao levantar problemas, enviar pull requests e tentem ajudar em vez de julgar! ![🙂](upload://fvZRZhwnha71zzHIWJ27WZYvK3a.png) Obrigado!</p>



<h2><a href="https://github.com/mgeeky/RedWarden#todo" target="_blank" rel="noopener"></a></h2>



<h2><strong><span class="has-inline-color has-vivid-cyan-blue-color">TODO</span></strong></h2>



<ul><li>Pesquisar possibilidade de usar feeds de Inteligência de Ameaças para fins nefastos – como, por exemplo, detectar Fornecedores de Segurança com base em IPs</li><li>Adicionar suporte para banco de dados/API MaxMind GeoIP</li><li>Implementar suporte para assinaturas JA3 tanto na detecção &amp; bloqueio quanto na personificação para falsificar setups nginx/Apache2/customizados.</li><li>Adicionar alguma lógica de rastreamento de beacons únicos para oferecer flexibilidade de recusar processos de staging e comunicação a critério do próprio proxy</li><li>Introduzir restrição de dia/hora ao oferecer capacidades de redirecionamento (*proxy apenas durante o horário de escritório*)</li><li>Adicionar lógica de autenticação e autorização de Proxy em CONNECT/relay.</li><li>Adicionar redirecionamento direcionado a usuários móveis</li><li>Adicionar opções de configuração para definir cabeçalhos HTTP personalizados a serem injetados, ou os que devem ser removidos</li><li>Adicionar opções de configuração para exigir cabeçalhos HTTP específicos presentes em solicitações que atendem aos critérios ProxyPass.</li><li>Interface interativa permitindo digitar caracteres simples controlando a verbosidade do log de saída, semelhante ao do Nmap</li><li>Reescrever a lógica do analisador de perfil Maleável para <a href="https://github.com/Porchetta-Industries/pyMalleableC2" target="_blank" rel="noopener">pyMalleableC2</a>. Quando comecei a codificar minha própria lógica de analisador, não havia tal toolkit no Github.</li><li>Refatorar toda a base de código</li></ul>



<h2><a href="https://github.com/mgeeky/RedWarden#author" target="_blank" rel="noopener"></a></h2>



<h2><strong><span class="has-inline-color has-pale-pink-color">Autor</span></strong></h2>



<pre class="wp-block-preformatted">Mariusz B. / mgeeky, '19-'21
<mb@binary-offensive.com></mb@binary-offensive.com></pre>



<hr class="wp-block-separator">



<div class="wp-block-buttons">
<div class="wp-block-button"><a class="wp-block-button__link" href="https://github.com/mgeeky/RedWarden" style="border-radius:6px" target="_blank" rel="noopener"><strong>Link do Github</strong></a></div>



<div class="wp-block-button"><a class="wp-block-button__link" href="https://reconshell.com/best-arduino-books-available-for-developers/" style="border-radius:6px"><strong>Melhores Livros de Arduino Disponíveis para Desenvolvedores</strong></a></div>
</div>



<p></p>

<hr>
<small>Este é um tópico de discussão complementar para a entrada original em <a href="https://reconshell.com/redwarden-flexible-cobaltstrike-malleable-redirector/">https://reconshell.com/redwarden-flexible-cobaltstrike-malleable-redirector/</a>. Você pode iniciar a discussão neste tópico mencionando o tópico ou respondendo aqui.</small>

agora, após uma semana de busca e nenhum resultado, exceto nosso amigo se referindo a mim a algum guia com “não baixar imagens para o servidor” e o rss mostrará um breve resumo do tópico (o que não é minha escolha) e a outra solução quando eu conserto a foto com uma aba “em branco”.. então:

<figure class="wp-block-image size-large">![cs|1024x689](upload://liMGLRlV0nW3HZuECbVKnLCrHcE.png)</figure>

deve ir para

![cs|1024x689](upload://liMGLRlV0nW3HZuECbVKnLCrHcE.png)

e isso deve ser em todo o tópico para corrigir as imagens; o que ainda me faz perguntar por que o “discourse” não pode fazer um pequeno plugin se eles não queriam quebrar as regras do tópico;

além disso, o conflito e o desconforto após editar as fotos, as imagens novamente ficaram quebradas sem motivo, e preciso reeditar e escolher “reverter para revisão” para corrigir a imagem, e assim por diante!!

acredito que este bug/problema existe desde 2020, e eles prometeram fazer algo no próximo ano, “2021” e estamos em “2022” agora.. e o bug ainda não foi corrigido… por favor, não digam que não é importante, já que é comparado ao trabalho com “wordpress” que é o 1º CMS do mundo.. e o discourse deveria segui-lo.

Você pode me dar sua recomendação, Rafeal, já que expliquei o problema…

Também sua sugestão se eu contratar um desenvolvedor para corrigir esse problema, isso deveria funcionar ou não? E qual sua recomendação para o desenvolvedor seguir.

Está na minha lista para investigar isso na próxima semana.

Pequeno problema com as imagens incorporadas em markdown que estou vendo em um dos feeds RSS que configurei. Todos (não me lembro de ter tido esse problema) os itens deste feed acabam com uma imagem Markdown ![…](…) sendo exibida como markdown. Por exemplo…

https://forum.podcaster.community/t/iheartmedia-partners-with-sounder-to-launch-best-in-class-brand-safety-tools/2004

exibe assim…

Esses itens vêm deste URL de feed RSS…

http://podcasternews.com/feed/

@f1r4s e @craigconstantine isso é causado pelo bug melhor descrito em

A solução alternativa que temos está documentada em

Por exemplo @f1r4s, adicionar https://reconshell.com/wp-content/uploads/ à configuração do site disabled image download domains deixará a postagem como: