
CVE-2023-44487, HTTP/2 Rapid Reset भेद्यता के लिए एक व्यापक Python परीक्षण उपकरण। यह उन्नत संस्करण परीक्षण मापदंडों पर विस्तृत नियंत्रण, कई आक्रमण पैटर्न और उन्नत निगरानी क्षमताएँ प्रदान करता है।
CVE-2023-44487, यानी HTTP/2 रैपिड रीसेट भेद्यता के लिए एक व्यापक Python परीक्षण उपकरण। इस रिपॉजिटरी में आक्रमण परीक्षण और सत्यापन-केंद्रित दोनों प्रकार के उपकरण शामिल हैं।
यह उपकरण केवल शैक्षिक और अधिकृत परीक्षण उद्देश्यों के लिए है!
CVE-2023-44487, जिसे "HTTP/2 रैपिड रीसेट" के नाम से भी जाना जाता है, HTTP/2 प्रोटोकॉल में एक गंभीर भेद्यता है जो हमलावरों को निम्नलिखित की अनुमति देती है:
CVSS स्कोर: 7.5 (उच्च)
प्रभाव: सेवा से वंचित करना (Denial of Service), संसाधन क्षरण (Resource Exhaustion)
h2 लाइब्रेरी: pip install h2git clone https://github.com/madhusudhan-in/CVE_2023_44487-Rapid_Reset.git
cd CVE_2023_44487-Rapid_Reset
pip install h2
chmod +x *.py
python3 --version # Should be 3.7+
cve_2023_44487_verifier_enhanced.pyउद्देश्य: पैच-पश्चात सत्यापन और अनुपालन जाँच के लिए प्रवर्तन-संकेत पहचान
# Basic verification
python3 cve_2023_44487_verifier_enhanced.py target.com
# Multiple concurrent connections
python3 cve_2023_44487_verifier_enhanced.py target.com -c 5 -s 500
# Verbose output with debugging
python3 cve_2023_44487_verifier_enhanced.py target.com -v -c 3 -s 1000
# Baseline test only (normal requests)
python3 cve_2023_44487_verifier_enhanced.py target.com --baseline-only
स्क्रिप्ट RFC 9113-अनुरूप प्रवर्तन संकेतों के आधार पर एक बुद्धिमान निर्णय प्रदान करती है:
Server sends GOAWAY with ENHANCE_YOUR_CALM (0xb) error code
Classification: NOT VULNERABLE — protocol-layer enforcement is active
Meaning: HTTP/2 implementation has proper rate-limiting controls
50%+ of connections terminated via TCP reset
Classification: LIKELY PROTECTED — verify with edge/infrastructure team
Meaning: Edge appliance or DDoS protection engaged at transport layer
Per-second reset rate drops significantly over time (late buckets <60% of early)
Classification: PARTIAL PROTECTION — confirm with infrastructure team
Meaning: Server or edge slowing the attack adaptively
Server sends REFUSED_STREAM (0x7) responses
Classification: PARTIAL PROTECTION — review rate limits
Meaning: Some stream-level rate-limiting in place
No ENHANCE_YOUR_CALM GOAWAY, no TCP resets, no throttling detected
Classification: VECTOR EXERCISABLE — exploitability unconfirmed
Important: This doesn't prove DoS exploitability. Edge volumetric/behavioral
protections (Akamai, CloudFlare) may engage at higher scales
============================================================
ENFORCEMENT SIGNAL ANALYSIS
============================================================
Server SETTINGS (initial frame):
HEADER_TABLE_SIZE = 4096
ENABLE_PUSH = True
MAX_CONCURRENT_STREAMS = 128
INITIAL_WINDOW_SIZE = 65535
MAX_FRAME_SIZE = 16384
→ MAX_CONCURRENT_STREAMS=128 is conservative (good post-CVE default)
GOAWAY breakdown across connections:
ENHANCE_YOUR_CALM (0xb): 3/5
Other GOAWAY codes: 1/5
No GOAWAY received: 1/5
TCP reset (RST at transport): 0/5
Total RST_STREAM frames from server: 2
REFUSED_STREAM frames from server: 0
Connections showing adaptive throttling: 1/5
============================================================
VERDICT
============================================================
✅ ENFORCEMENT CONFIRMED
3/5 connection(s) received GOAWAY with ENHANCE_YOUR_CALM (0xb).
This is the canonical signal that the CVE-2023-44487 mitigation is active.
Classification: NOT VULNERABLE — protocol-layer enforcement is engaged.
# Verify patch deployment with 10 connections, 500 streams each
python3 cve_2023_44487_verifier_enhanced.py prod-api.example.com \
-c 10 \
-s 500 \
-d 0.0001 \
-v
# Test non-standard HTTPS port
python3 cve_2023_44487_verifier_enhanced.py example.com \
-p 8443 \
-c 5 \
-s 1000
# Minimal load compliance test
python3 cve_2023_44487_verifier_enhanced.py example.com \
-c 3 \
-s 200 \
--baseline-only
ENHANCE_YOUR_CALM (त्रुटि कोड 0xb):
REFUSED_STREAM (त्रुटि कोड 0x7):
प्रति-सेकंड रीसेट दर विश्लेषण:
ट्रांसपोर्ट परत पर TCP RST:
import asyncio
import subprocess
def run_verification(target: str, num_connections: int = 3):
cmd = [
'python3', 'cve_2023_44487_verifier_enhanced.py',
target,
'-c', str(num_connections),
'-s', '500',
'-v'
]
result = subprocess.run(cmd, capture_output=True, text=True)
# Parse verdict from output
if "ENFORCEMENT CONFIRMED" in result.stdout:
print(f"✅ {target} is protected")
return "protected"
elif "LIKELY PROTECTED" in result.stdout:
print(f"⚠️ {target} has edge-level protection")
return "edge_protected"
else:
print(f"❌ {target} shows no enforcement")
return "vulnerable"
# Run test
status = run_verification("example.com", 5)
#!/bin/bash
# Monitor critical services weekly
TARGETS="api.example.com web.example.com cdn.example.com"
LOG_DIR="/var/log/cve-2023-44487"
mkdir -p "$LOG_DIR"
for target in $TARGETS; do
python3 cve_2023_44487_verifier_enhanced.py "$target" \
-c 3 \
-s 500 \
-v > "$LOG_DIR/$target-$(date +%Y%m%d).log" 2>&1
done
rapid_reset_test.pyउद्देश्य: एकाधिक पैटर्न के साथ व्यापक HTTP/2 रैपिड रीसेट आक्रमण परीक्षण
python3 rapid_reset_test.py https://target-server.com
python3 rapid_reset_test.py https://target.com \
--connections 50 \
--requests 1000 \
--delay 0 \
--pattern rapid_reset \
--track-latency \
--output json
python3 rapid_reset_test.py https://target.com \
--pattern burst_reset \
--burst-size 5 \
--burst-delay 2.0 \
--custom-headers "User-Agent: Mozilla/5.0" \
--jitter 0.3
python3 rapid_reset_test.py https://target.com \
--window-size 32768 \
--frame-size 32768 \
--header-table-size 8192 \
--enable-push \
--priority-frames \
--randomize-streams
| विकल्प | विवरण | डिफ़ॉल्ट |
|---|---|---|
--pattern TYPE | उपयोग करने के लिए आक्रमण पैटर्न | rapid_reset |
उपलब्ध पैटर्न:
rapid_reset - मानक रैपिड रीसेट आक्रमणburst_reset - बर्स्ट-आधारित आक्रमणgradual_reset - धीरे-धीरे बढ़ती दरrandom_reset - यादृच्छिक समयcontinuation_flood - CONTINUATION फ्रेम फ्लडmixed_pattern - पैटर्नों का मिश्रणउपलब्ध आउटपुट प्रारूप:
console - मानव-पठनीय कंसोल आउटपुटjson - मशीन-पठनीय JSONcsv - स्प्रेडशीट-संगत CSVxml - संरचित XML प्रारूपउपकरण स्वचालित रूप से भेद्यता का आकलन करता है:
"'h2' नाम का कोई मॉड्यूल नहीं है"
pip install h2
कनेक्शन अस्वीकृत / टाइमआउट
curl -I --http2 https://target.comh2 मॉड्यूल के साथ ImportError
pip install --upgrade h2
python3 --version # Must be 3.7+
अनुमति अस्वीकृत
chmod +x *.py
python3 cve_2023_44487_verifier_enhanced.py target.com
विस्तृत लॉगिंग सक्षम करें:
python3 cve_2023_44487_verifier_enhanced.py target.com -v
न्यूनतम मापदंडों के साथ परीक्षण करें:
python3 cve_2023_44487_verifier_enhanced.py target.com -s 10 -c 1
HTTP/2 समर्थन सत्यापित करें:
python3 -c "import h2; print('h2 library OK')"
यह रिपॉजिटरी साइबर सुरक्षा पेशेवरों, शोधकर्ताओं और सिस्टम प्रशासकों के लिए है, ताकि वे अपने स्वयं के सिस्टम या उन सिस्टमों का परीक्षण कर सकें जिनके परीक्षण के लिए उनके पास स्पष्ट अनुमति है।
मुख्य कानूनी बिंदु:
याद रखें: अधिक शक्ति के साथ अधिक जिम्मेदारी आती है। इन उपकरणों का उपयोग नैतिक और कानूनी रूप से करें।
यह उपकरण MIT लाइसेंस के अंतर्गत प्रदान किया गया है। विवरण के लिए LICENSE फ़ाइल देखें।
| विकल्प | विवरण | डिफ़ॉल्ट |
|---|
host | लक्ष्य होस्टनाम (आवश्यक) | - |
-p, --port | लक्ष्य पोर्ट | 443 |
--no-ssl | SSL/TLS अक्षम करें | False (SSL सक्षम) |
-s, --streams | प्रति कनेक्शन स्ट्रीम की संख्या | 1000 |
-d, --delay | स्ट्रीम संचालनों के बीच विलंब (सेकंड) | 0.001 |
-c, --connections | समवर्ती कनेक्शनों की संख्या | 1 |
--baseline-only | केवल बेसलाइन परीक्षण करें (आक्रमण नहीं) | False |
-v, --verbose | विस्तृत/डीबग आउटपुट | False |
| समापन कारण | अर्थ |
|---|
goaway_enhance_your_calm | GOAWAY 0xb प्राप्त हुआ (CVE फिक्स का सर्वोत्तम संकेतक) |
goaway_* | अन्य त्रुटि कोड के साथ GOAWAY |
tcp_reset | TCP RST प्राप्त हुआ (एज-स्तरीय हस्तक्षेप) |
broken_pipe / recv_error | संचार के दौरान कनेक्शन त्रुटि |
eof_no_goaway | GOAWAY के बिना अप्रत्याशित EOF |
no_close_no_enforcement | कनेक्शन खुला रहा (कोई प्रवर्तन नहीं मिला) |
| विकल्प | विवरण | डिफ़ॉल्ट |
|---|
-c, --connections N | समवर्ती कनेक्शनों की संख्या | 1 |
--connection-timeout SEC | कनेक्शन टाइमआउट सेकंड में | 10 |
--read-timeout SEC | प्रतिक्रियाओं के लिए रीड टाइमआउट | 5 |
--connection-delay SEC | कनेक्शनों के बीच विलंब | 0.0 |
| विकल्प | विवरण | डिफ़ॉल्ट |
|---|
-r, --requests N | प्रति कनेक्शन अनुरोध | 100 |
--delay SEC | HEADERS और RST_STREAM के बीच विलंब | 0.001 |
--request-delay SEC | अनुरोधों के बीच विलंब | 0.0 |
--jitter FACTOR | समय यादृच्छिकरण कारक | 0.0 |
--burst-size N | प्रति बर्स्ट अनुरोध | 10 |
--burst-delay SEC | बर्स्ट के बीच विलंब | 0.1 |
| विकल्प | विवरण | डिफ़ॉल्ट |
|---|
--window-size BYTES | HTTP/2 प्रारंभिक विंडो आकार | 65535 |
--frame-size BYTES | अधिकतम फ्रेम आकार | 16384 |
--header-table-size BYTES | HPACK हेडर तालिका आकार | 4096 |
--enable-push | HTTP/2 सर्वर पुश सक्षम करें | False |
--rst-error-code CODE | RST_STREAM त्रुटि कोड | 8 |
| विकल्प | विवरण | डिफ़ॉल्ट |
|---|
--output FORMAT | आउटपुट प्रारूप | console |
--output-file FILE | आउटपुट फ़ाइल नाम | स्वतः-जनित |
--verbose, -v | विस्तृत आउटपुट | False |
--debug | डीबग लॉगिंग | False |
--log-file FILE | फ़ाइल में लॉग करें | None |
| उपयोग परिदृश्य | उपकरण | कारण |
|---|
| पैच-पश्चात सत्यापन | cve_2023_44487_verifier_enhanced.py | प्रवर्तन संकेतों का पता लगाता है |
| अनुपालन जाँच | cve_2023_44487_verifier_enhanced.py | CVE शमन को मान्य करता है |
| इंफ्रास्ट्रक्चर मूल्यांकन | cve_2023_44487_verifier_enhanced.py | स्पष्ट, कार्रवाई योग्य निर्णय |
| आक्रमण अनुसंधान | rapid_reset_test.py | एकाधिक आक्रमण पैटर्न |
| प्रदर्शन परीक्षण | rapid_reset_test.py | व्यापक मीट्रिक्स |
| कस्टम पैटर्न | rapid_reset_test.py | सूक्ष्म कॉन्फ़िगरेशन |