HTTP w00tw00t हमलों से निपटना


82

मेरे पास अपाचे वाला सर्वर है और मैंने हाल ही में mod_security2 स्थापित किया है क्योंकि मुझे इस पर बहुत अधिक हमले होते हैं:

मेरा Apache संस्करण Apache v2.2.3 है और मैं mod_security2.c का उपयोग करता हूं

यह त्रुटि लॉग से प्रविष्टियां थीं:

[Wed Mar 24 02:35:41 2010] [error] 
[client 88.191.109.38] client sent HTTP/1.1 request without hostname 
(see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)

[Wed Mar 24 02:47:31 2010] [error] 
[client 202.75.211.90] client sent HTTP/1.1 request without hostname 
(see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)

[Wed Mar 24 02:47:49 2010] [error]
[client 95.228.153.177] client sent HTTP/1.1 request without hostname
(see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)

[Wed Mar 24 02:48:03 2010] [error] 
[client 88.191.109.38] client sent HTTP/1.1 request without hostname
(see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)

यहाँ access_log से त्रुटियाँ हैं:

202.75.211.90 - - 
[29/Mar/2010:10:43:15 +0200] 
"GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 392 "-" "-"
211.155.228.169 - - 
[29/Mar/2010:11:40:41 +0200] 
"GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 392 "-" "-"
211.155.228.169 - - 
[29/Mar/2010:12:37:19 +0200] 
"GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 392 "-" "-" 

मैंने mod_security2 को इस तरह कॉन्फ़िगर करने की कोशिश की:

SecFilterSelective REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind"
SecFilterSelective REQUEST_URI "\w00tw00t\.at\.ISC\.SANS"
SecFilterSelective REQUEST_URI "w00tw00t\.at\.ISC\.SANS"
SecFilterSelective REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind:"
SecFilterSelective REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind:\)"

Mod_security2 में बात यह है कि SecFilterSelective का उपयोग नहीं किया जा सकता है, यह मुझे त्रुटियां देता है। इसके बजाय मैं इस तरह से एक नियम का उपयोग करता हूं:

SecRule REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind"
SecRule REQUEST_URI "\w00tw00t\.at\.ISC\.SANS"
SecRule REQUEST_URI "w00tw00t\.at\.ISC\.SANS"
SecRule REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind:"
SecRule REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind:\)"

यहां तक ​​कि यह भी काम नहीं करता है। मुझे पता नहीं है कि अब और क्या करना है। किसी को कोई सलाह है?

अपडेट १

मैं देखता हूं कि mod_security का उपयोग करके कोई भी इस समस्या को हल नहीं कर सकता है। अब तक आईपी-टेबल का उपयोग करना ऐसा करने के लिए सबसे अच्छा विकल्प लगता है, लेकिन मुझे लगता है कि फ़ाइल बहुत बड़ी हो जाएगी क्योंकि आईपी दिन में कई बार सर्वर बदलता है।

मैं 2 अन्य समाधानों के साथ आया, क्या कोई उन पर टिप्पणी कर सकता है कि वह अच्छा है या नहीं।

  1. मेरे दिमाग में आने वाला पहला समाधान इन हमलों को मेरी अपाचे त्रुटि लॉग से बाहर कर रहा है। यह मेरे लिए अन्य जरूरी त्रुटियों को प्राप्त करने के लिए आसान है क्योंकि वे होते हैं और लंबे लॉग को गर्त में नहीं डालना पड़ता है।

  2. दूसरा विकल्प बेहतर है कि मुझे लगता है, और यह उन मेजबानों को रोक रहा है जिन्हें सही तरीके से नहीं भेजा गया है। इस उदाहरण में w00tw00t हमले को hostname के बिना भेजा जाता है, इसलिए मुझे लगता है कि मैं उन होस्ट को ब्लॉक कर सकता हूं जो सही रूप में नहीं हैं।

अपडेट २

उत्तर के गर्त में जाने के बाद मैं निम्नलिखित निष्कर्ष पर आया।

  1. अपाचे के लिए कस्टम लॉगिंग करने के लिए कुछ अनावश्यक पुनरावर्ती खपत होगी, और अगर वास्तव में कोई समस्या है, तो आप शायद कुछ भी याद किए बिना पूर्ण लॉग को देखना चाहेंगे।

  2. केवल हिट को अनदेखा करना और अपनी त्रुटि लॉग का विश्लेषण करने के बेहतर तरीके पर ध्यान केंद्रित करना बेहतर है। अपने लॉग के लिए फ़िल्टर का उपयोग करना इसके लिए एक अच्छा तरीका है।

विषय पर अंतिम विचार

ऊपर उल्लिखित हमला आपकी मशीन तक नहीं पहुंचेगा यदि आपके पास कम से कम अप टू डेट सिस्टम है तो मूल रूप से कोई चिंता नहीं है।

वास्तविक समय से सभी संगीन हमलों को थोड़ी देर के बाद फ़िल्टर करना मुश्किल हो सकता है, क्योंकि त्रुटि लॉग और एक्सेस लॉग दोनों बहुत बड़े हो जाते हैं।

किसी भी तरह से ऐसा होने से रोकना आपके लिए संसाधनों का खर्च होगा और यह एक अच्छा अभ्यास है कि आप अपने संसाधनों को महत्वहीन चीजों पर बर्बाद न करें।

अब मैं जिस समाधान का उपयोग करता हूं वह है लिनक्स लॉगवॉच । यह मुझे लॉग का सारांश भेजता है और उन्हें फ़िल्टर और समूहीकृत किया जाता है। इस तरह आप महत्वपूर्ण को महत्वहीन से आसानी से अलग कर सकते हैं।

मदद के लिए आप सभी का धन्यवाद, और मुझे उम्मीद है कि यह पोस्ट किसी और के लिए भी उपयोगी हो सकती है।

जवाबों:


34

आपकी त्रुटि लॉग से वे होस्ट के बिना HTTP / 1.1 अनुरोध भेज रहे हैं: अनुरोध का हिस्सा। मैंने जो पढ़ा, अपाचे ने mod_security को सौंपने से पहले इस अनुरोध में 400 (खराब अनुरोध) त्रुटि का जवाब दिया। इसलिए, ऐसा नहीं लगता है कि आपके नियमों पर कार्रवाई की जाएगी। (Mod_security को सौंपने से पहले अपाचे ने इससे निपट लिया)

अपने आप को आज़माएँ:

टेलनेट होस्टनाम 80
GET /blahblahblah.html HTTP / 1.1 (दर्ज करें)
(दर्ज)

आपको 400 त्रुटि मिलनी चाहिए और अपने लॉग में एक ही त्रुटि देखनी चाहिए। यह एक बुरा अनुरोध है और अपाचे सही जवाब दे रहा है।

उचित अनुरोध जैसा दिखना चाहिए:

GET /blahblahblah.html HTTP / 1.1
होस्ट: blah.com

इस समस्या के लिए एक काम mod_uniqueid को पैच करना हो सकता है, एक असफल अनुरोध के लिए भी एक अद्वितीय आईडी बनाने के लिए, ताकि अपाचे अपने अनुरोध हैंडलर पर अनुरोध पारित कर सके। निम्नलिखित URL इस कार्य के बारे में चर्चा है, और इसमें mod_uniqueid के लिए एक पैच शामिल है जिसका आप उपयोग कर सकते हैं: http://marc.info/?l=mod-security-users&m=123300133603876&w/2 :

इसके लिए कोई अन्य समाधान नहीं खोज सके और अगर वास्तव में किसी समाधान की आवश्यकता है तो आश्चर्य होगा।


मुझे अब समस्या दिख रही है। क्या आप लेख में दिए गए समाधान की सलाह देते हैं, या क्या आपको लगता है कि इसे छोड़ देना बेहतर है। यह सिस्टम के किसी भी बैक-डोर के लिए एक स्कैनर है। अगर मैं इसे सिर्फ स्कैन करना छोड़ देता हूं, तो मैं एक दिन हमला कर सकता हूं।
सैफ बेचन

1
नमस्ते सैफ, मुझे लगता है कि जब तक आप अपने अपाचे की स्थापना को अपने वितरण (या मैनुअल) सुरक्षा पैच के साथ अद्यतित रखते हैं, तब तक आपको ठीक होना चाहिए। खराब संरचित HTTP / 1.1 अनुरोध (जैसा कि आप देख रहे हैं) को अपाचे से 400 त्रुटि के अलावा कुछ भी वापस नहीं करना चाहिए। ऐसा लगता है कि यह DLink रूटर्स पर केंद्रित किसी प्रकार की भेद्यता स्कैन हो सकता है। (कुछ अन्य स्रोतों के अनुसार)
इमो

क्या मेरी अपाचे एरर_लॉग से इन क्षेत्रों को निकलने का कम से कम कोई रास्ता है
सैफ बिच

आप शायद इसे mod_log :: httpd.apache.org/docs/2.2/mod/mod_log_config.html#customlog
Imo

मेरा अतिरिक्त संकेत यह होगा: वास्तव में उपयोग में आने वाले लोगों के बगल में अपने डिफ़ॉल्ट वर्चुअलहोस्ट को कॉन्फ़िगर करें। ऊपर उल्लिखित प्रयास डिफ़ॉल्ट वर्चुअलहोस्ट के लिए लॉग में समाप्त हो जाएंगे ।
Koos van den Hout

16

IP छानना एक अच्छा विचार नहीं है, imho। आप जो स्ट्रिंग जानते हैं, उसे फ़िल्टर करने का प्रयास क्यों न करें?

मेरा मतलब:

iptables -I INPUT -p tcp --dport 80 -m string --to 60 --algo bm --string 'GET /w00tw00t' -j DROP

spamcleaner.org/en/misc/w00tw00t.html समान समाधान, लेकिन थोड़ा और अधिक विस्तृत।
इसहाक

फ़ायरवॉल में स्ट्रिंग फ़िल्टरिंग के साथ एक समस्या यह है कि यह "काफी धीमा" है।
एलेक्सिस विल्के

@AlexisWilke क्या आपके पास यह सुझाव देने के लिए सबूत हैं कि iptables स्ट्रिंग फ़िल्टरिंग अपाचे स्तर पर फ़िल्टर करने की तुलना में धीमी है?
15

@jrwren वास्तव में, यह काफी धीमी गति से हो सकता है अगर और केवल अगर आप पैकेट बंद नहीं करते हैं तो खोज बंद करने के लिए, यानी "- 60 तक" यहाँ। डिफ़ॉल्ट रूप से, यह पूरे पैकेट के माध्यम से खोज करेगा, अधिकतम सीमा 65,535 बाइट्स पर सेट की जा रही है, अधिकतम आईपी पैकेट की लंबाई: blog.nintechnet.com/ ... मैनुअल स्पष्ट रूप से बताता है "यदि पारित नहीं हुआ है, तो डिफ़ॉल्ट पैकेट आकार है"।
गौसेज

यह एक सैद्धांतिक अधिकतम है। इंटरनेट पर अधिक यथार्थवादी अधिकतम लंबाई ~ 1500 है।
jrwren

11

Iv ने भी मेरी लॉग फ़ाइलों में इस प्रकार के संदेश देखना शुरू कर दिया। इन प्रकार के हमलों को रोकने के लिए एक तरीका है असफल आईपी ​​2 ( http://www.fail2ban.org/ ) को सेटअप करना और इन आईपी पते को अपने iptables नियमों में ब्लैक लिस्ट करने के लिए विशिष्ट फिल्टर सेटअप करना।

एक फिल्टर का एक उदाहरण है जो उन संदेशों को बनाने से जुड़े आईपी पते को अवरुद्ध करेगा

[Tue अगस्त 16 02:35:23 2011] [त्रुटि] [ग्राहक] फ़ाइल मौजूद नहीं है: /var/www/skraps/w00tw00t.at.blackhats.romanian.ant-sec :) === एपाचे w00t संदेश जेल - रेगेक्स और फिल्टर === जेल

 [apache-wootwoot]
 enabled  = true
 filter   = apache-wootwoot
 action   = iptables[name=HTTP, port="80,443", protocol=tcp]
 logpath  = /var/log/apache2/error.log
 maxretry = 1
 bantime  = 864000
 findtime = 3600

फ़िल्टर

 # Fail2Ban configuration file
 #
 # Author: Jackie Craig Sparks
 #
 # $Revision: 728 $
 #
 [Definition]
 #Woot woot messages
 failregex = ^\[\w{1,3} \w{1,3} \d{1,2} \d{1,2}:\d{1,2}:\d{1,2} \d{1,4}] \[error] \[client 195.140.144.30] File does not exist: \/.{1,20}\/(w00tw00t|wootwoot|WootWoot|WooTWooT).{1,250}
 ignoreregex =

2
यह सच है कि आप उन्हें ब्लॉक कर सकते हैं, लेकिन कोई ज़रूरत नहीं है क्योंकि वे केवल खराब अनुरोध हैं। बस उन्हें अनदेखा करना बेहतर है, आपने काम बचाया और आप कुछ स्रोतों को मुक्त करेंगे।
सैफ बेनकान

सही @Saif Bechan, अगर किसी को उस "परीक्षण हमलों" के सफल होने के बारे में चिंता है, तो उसे अवरुद्ध करने का तरीका खोजने के लिए समय बर्बाद करने के बजाय बेहतर ढंग से खुद के आवेदन को ठीक करना चाहिए।
थॉमस बर्जर

आपने +1 किया, उत्तर के लिए धन्यवाद।
सैफ बेनकान

4
@ सैफबचन, मैं असहमत हूं। w00tw00t एक भेद्यता स्कैनर है, और एक मशीन जो इस तरह के अनुरोधों को जारी करती है, उस पर अन्य प्रकार के अनुरोधों का प्रयास करने के साथ भरोसा नहीं किया जा सकता है, इसलिए यदि मैं एक सिस्टम प्रशासक हूं और मुझे ऐसे ग्राहकों को एक बार में दिनों के लिए प्रतिबंधित करने में 2 मिनट लगते हैं, तो मैं 'ऐसा करो। मैं इस तरह के दृष्टिकोण पर अपने संपूर्ण सुरक्षा कार्यान्वयन को आधार नहीं बनाऊंगा।
इसहाक

3

w00tw00t.at.blackhats.romanian.anti-sec एक हैकिंग का प्रयास है और स्पूफ का उपयोग करता है ताकि आईपी उस समय देखे जाने वाले आईपी के अनुसार VisualRoute जैसे कि लुक्स को चीन, पोलैंड, डेनमार्क आदि को रिपोर्ट करेगा। तो एक Deny IP या resolvable Host Name सेट करना बहुत ही असंभव है क्योंकि यह एक घंटे के भीतर बदल जाएगा।


ये भेद्यता स्कैन खराब आईपी पते का उपयोग नहीं करते हैं। अगर उन्होंने किया, तो टीसीपी 3-वे हैंडशेक पूरा नहीं होगा और अपाचे अनुरोध को लॉग नहीं करेगा। चेतावनियां (दुष्ट आईएसपी, रूटर ऑपरेटरों, आदि) के लिए, देखें security.stackexchange.com/q/37481/53422
एंथोनी Geoghegan

2

मैंने व्यक्तिगत रूप से IPtables नियमों को ऑटो-ऐड करने के लिए एक पायथन स्क्रिप्ट लिखी थी।

यहां लॉगिंग और अन्य कबाड़ के बिना थोड़ा संक्षिप्त संस्करण है:

#!/usr/bin/python
from subprocess import *
import re
import shlex
import sys

def find_dscan():
        p1 = Popen(['tail', '-n', '5000', '/usr/local/apache/logs/error_log'], stdout=PIPE)
        p2 = Popen(['grep', 'w00t'], stdin=p1.stdout, stdout=PIPE)

        output = p2.communicate()[0].split('\n')

        ip_list = []

        for i in output:
                result = re.findall(r"\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b", i)
                if len(result):
                        ip_list.append(result[0])

        return set(ip_list)

for ip in find_dscan():
        input = "iptables -A INPUT -s " + ip + " -j DROP"
        output = "iptables -A OUTPUT -d " + ip + " -j DROP"
        Popen(shlex.split(input))
        Popen(shlex.split(output))

sys.exit(0)

क्या यह w00tw00t के हमले को रोकने के लिए है
सैफ बेचन

हां, मेरे पास यह है कि किसी भी "w00tw00t" आईपी के लिए अपाचे त्रुटि लॉग को स्कैन करें और यदि वे मौजूद नहीं हैं तो उन्हें जोड़ दें, हालांकि सादगी के लिए मैंने डुप्लिकेट के लिए चेक नहीं जोड़ा था।
ज़ारलेव

इस स्क्रिप्ट को संभवतः एक तालिका का उपयोग करना चाहिए, iptables श्रृंखलाओं में अतिरिक्त नियमों के टन को जोड़ने से प्रसंस्करण थोड़ा धीमा हो जाएगा।
एरिक

यह एक तालिका का उपयोग करता है। हालाँकि मैंने इसे बहुत सरल कर दिया क्योंकि यह मेरे सिस्टम के अनुरूप था।
ज़ोरलेव

क्या आपको लगता है कि यह एक बेहतर उपाय है कि
mod_security

2

मेरा मानना ​​है कि mod_security आपके लिए काम नहीं कर रहा है, क्योंकि Apache अनुरोधों को पार्स करने में सक्षम नहीं है, वे आउट-ऑफ-स्पेक हैं। मुझे यकीन नहीं है कि आपको यहां कोई समस्या है - अपाचे अजीब गंदगी को लॉग कर रहा है जो नेट पर हो रहा है, अगर यह लॉग नहीं करता है तो आपको इसके बारे में पता भी नहीं होगा। अनुरोधों को लॉग करने के लिए आवश्यक संसाधन संभवतः न्यूनतम हैं। मैं इसकी निराशा को समझता हूं कि कोई व्यक्ति आपकी लॉग-इन को भर रहा है - लेकिन यह अधिक निराशाजनक होगा यदि आप लॉगिंग को केवल उसी रूप में अक्षम करते हैं जिससे आपको वास्तव में इसकी आवश्यकता हो। जैसे कोई आपके वेबसर्वर में टूट गया और आपको यह दिखाने के लिए लॉग की आवश्यकता है कि वे कैसे टूटे।

एक समाधान त्रुटिलेगिंग को syslog के माध्यम से सेटअप करना है, और फिर rsyslog या syslog- एनजी का उपयोग करके आप विशेष रूप से w00tw00t के बारे में इन RFC उल्लंघनों को फ़िल्टर कर सकते हैं और त्याग सकते हैं। या वैकल्पिक रूप से आप उन्हें एक अलग लॉग फ़ाइल में फ़िल्टर कर सकते हैं ताकि आपका मुख्य ErrorLog पढ़ने में आसान हो। इस संबंध में रुपयेलॉग अविश्वसनीय रूप से शक्तिशाली और लचीला है।

तो httpd.conf में आप ऐसा कर सकते हैं:

ErrorLog syslog:user 

तो rsyslog.conf में आपके पास हो सकता है:

:msg, contains, "w00tw00t.at.ISC.SANS.DFind" /var/log/httpd/w00tw00t_attacks.log

ज्ञात हो, यह दृष्टिकोण वास्तव में मूल रूप से किसी फ़ाइल में लॉगिंग का उपयोग करने की तुलना में कई गुना अधिक संसाधनों का उपयोग करेगा । यदि आपका वेबसर्वर बहुत व्यस्त है, तो यह एक समस्या बन सकती है।

किसी भी तरह से जितनी जल्दी हो सके सभी लॉग्स को रिमोट लॉगिंग सर्वर पर भेज दिया जाता है और इससे आपको फायदा होगा कि आपको कभी भी टूट जाना चाहिए क्योंकि जो किया गया था उसके ऑडिट ट्रेल को मिटाना ज्यादा मुश्किल है।

IPTables अवरुद्ध करना एक विचार है, लेकिन आप एक बहुत बड़ी iptables ब्लॉक सूची के साथ समाप्त हो सकते हैं जो अपने आप में प्रदर्शन निहितार्थ हो सकता है। क्या आईपी पते में एक पैटर्न है, या यह एक बड़े वितरित बॉटनेट से आ रहा है? इससे पहले कि आप iptables का लाभ प्राप्त करेंगे, डुप्लिकेट का X% होना आवश्यक है।


अच्छा जवाब, मुझे अलग-अलग दृष्टिकोण पसंद हैं। इसके बारे में सोचकर, कस्टम लॉगिंग होने से अधिक पुनरावृत्ति का उपयोग होगा, क्योंकि सब कुछ पहले जांचना होगा, मुझे लगता है कि यह विकल्प भी बंद हो जाता है। मेरे पास अब लॉगवॉच सक्षम है। यह मुझे पूरे सिस्टम के सारांश के साथ 2 बार एक रिपोर्ट भेजता है। अपाचे लॉग की भी जाँच हो जाती है और यह सिर्फ 300 बार w00tw00t प्रयास कहता है। मुझे लगता है कि मैं सेटअप छोड़ दूंगा क्योंकि यह समय के लिए है।
सैफ बेचन

1

आप अपडेट 2 में कहते हैं:

समस्या अभी भी बनी हुई है जो समस्या अभी भी बनी हुई है वह इस प्रकार है। ये हमले बॉट से हैं जो आपके सर्वर पर कुछ फ़ाइलों की खोज करते हैं। यह विशेष रूप से स्कैनर /w00tw00t.at.ISC.SANS.DFind :) फ़ाइल के लिए खोज करता है।

अब आप इसे अनदेखा कर सकते हैं जो सबसे अधिक अनुशंसित है। समस्या यह है कि यदि आपके पास किसी दिन एक दिन आपके सर्वर पर यह फ़ाइल है, तो आप कुछ परेशानी में हैं।

मेरे पिछले उत्तर से हम एकत्रित हुए कि अपाचे एक गलत तरीके से बनाई गई HTML 1.1 क्वेरी के कारण एक त्रुटि संदेश दे रहा है। HTTP / 1.1 का समर्थन करने वाले सभी वेबसर्वर्स को यह संदेश प्राप्त होने पर संभवतः एक त्रुटि वापस करनी चाहिए (मैंने आरएफसी की दोहरी जांच नहीं की है - शायद RFC2616 हमें बताता है)।

W00tw00t.at.ISC.SANS.DFind होने के नाते: कुछ आपके सर्वर पर जहां रहस्यमय रूप से इसका मतलब यह नहीं है कि "आप कुछ परेशानी में हैं" ... यदि आप w00tw00t.at.ISC.SANS.DFind बनाते हैं: अपने DocumentRoot में फ़ाइल या यहाँ तक कि DefaultDocumentRoot यह कोई फर्क नहीं पड़ता ... स्कैनर टूटी हुई HTTP / 1.1 अनुरोध भेज रहा है और अपाचे कह रहा है "नहीं, यह एक बुरा अनुरोध है ... अच्छा अलविदा"। W00tw00t.at.ISC.SANS.DFind: फ़ाइल में डेटा नहीं परोसा जाएगा।

इस मामले के लिए mod_security का उपयोग करना तब तक आवश्यक नहीं है जब तक कि आप वास्तव में नहीं चाहते (कोई बात नहीं?) ... किस स्थिति में, आप इसे मैन्युअल रूप से पैच करके देख सकते हैं (अन्य उत्तर में लिंक)।

एक और चीज जिसका आप संभवतः उपयोग कर सकते हैं वह है mod_security में RBL सुविधा। शायद वहाँ एक आरबीएल ऑनलाइन कुछ है जहाँ w00tw00t आईपी (या अन्य ज्ञात दुर्भावनापूर्ण आईपी) प्रदान करता है। हालांकि इसका मतलब यह होगा कि mod_security हर अनुरोध के लिए DNS लुकअप करता है।


मुझे नहीं लगता कि अपाचे उन्हें अस्वीकार करता है, यह सिर्फ त्रुटि फेंकता है लेकिन लुकअप अभी भी गुजरता है। मुझे एक्सेस लॉग में वही w00tw00t.at.ISC.SANS.DFind मिला है। यह एक GET करता है। तो लुकअप किया जाता है और यदि आपके पास आपकी मशीन पर फाइल है तो यह निष्पादित हो जाएगा। मैं प्रवेश लॉग प्रविष्टियों को पोस्ट कर सकता हूं लेकिन वे उसी तरह दिखते हैं जैसे त्रुटि लॉग उनके सामने केवल जीईटी के साथ होती है। अपाचे त्रुटि फेंकता है लेकिन अनुरोध गुजरता है। इसलिए मैंने पूछा कि क्या बिना होस्टनाम के इन अनुरोधों को रोकना अच्छा होगा। लेकिन मैं सामान्य उपयोगकर्ताओं को ब्लॉक नहीं करना चाहता।
सैफ बेचन

1
निश्चित रूप से, आपको प्रवेश लॉग में समान प्रविष्टि मिलती है लेकिन त्रुटि कोड को देखें ... 400. यह संसाधित नहीं है। HTTP / 1.1 (hostname) का उपयोग अपाचे को बताने के लिए किया जाता है कि किस वर्चुअल होस्ट को अनुरोध भेजने के लिए ... बिना होस्टनाम के HTTP / 1.1 अनुरोध के अपाचे को नहीं पता कि अनुरोध कहां भेजें और "400 खराब अनुरोध" त्रुटि लौटाएं ग्राहक को वापस।
इमो

इसे स्वयं आज़माएं ... अपने वेबसर्वर पर स्वयं को एक html पृष्ठ बनाएँ और "टेलनेट होस्टनाम 80" का उपयोग करके इसे मैन्युअल रूप से प्राप्त करने का प्रयास करें ... अन्य चरण मेरे पहले उत्तर में हैं। मैंने इस पर एक बड़ा इनाम रखा है कि आप होस्टनाम के बिना HTTP / 1.1 का उपयोग करके प्रदर्शित करने के लिए HTML फ़ाइल प्राप्त नहीं कर सकते।
इमो

आह हाँ हाँ जो मुझे इशारा करता है। मैंने हमेशा सोचा था कि access_log प्रविष्टियां थीं जो कि त्रुटि लॉग को गर्त में पारित कर दी गईं और वास्तव में आपकी मशीन में प्रवेश कर गईं। यह मुझे इंगित करने के लिए धन्यवाद और मैं अपनी पोस्ट संपादित करूंगा। तुम्हारी मदद के लिए शुक्रिया।
सैफ बेचन

हाय सैफ, कोई समस्या नहीं, खुशी से मदद की है। सादर, इमो
इमो

1

Modsecurity में नियम जोड़ने के बारे में कैसे? कुछ इस तरह:

   SecRule REQUEST_URI "@rx (?i)\/(php-?My-?Admin[^\/]*|mysqlmanager
   |myadmin|pma2005|pma\/scripts|w00tw00t[^\/]+)\/"
   "severity:alert,id:'0000013',deny,log,status:400,
   msg:'Unacceptable folder.',severity:'2'"

1

मैं देखता हूं कि अधिकांश समाधान पहले से ही ऊपर कवर किए गए हैं, लेकिन मैं यह बताना चाहूंगा कि होस्टनाम हमलों के बिना सभी क्लाइंट HTTP / 1.1 अनुरोध नहीं भेजे गए हैं जो सीधे आपके सर्वर पर लक्षित हैं। फिंगरप्रिंट और / या आपके सर्वर के उपयोग से पहले नेटवर्क सिस्टम का उपयोग करने के लिए कई अलग-अलग प्रयास हैं या उपयोग कर रहे हैं:

client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /tmUnblock.cgi

Linksys राउटर आदि को लक्षित करने के लिए तो कभी-कभी यह आपके फोकस को चौड़ा करने और सभी प्रणालियों के बीच अपने रक्षा प्रयासों को एक समान शेयर के साथ विभाजित करने में मदद करता है जैसे: राउटर नियम लागू करना, फ़ायरवॉल नियम लागू करना (उम्मीद है कि आपका नेटवर्क एक है), सर्वर फ़ायरवॉल / आईपी तालिका लागू करें नियम और संबंधित सेवाएं अर्थात mod_security, fail2ban और इसी तरह।


1

इस बारे में कैसा है ?

iptables -I INPUT -p tcp --dport 80 -m string --to 70 --algo bm --string 'GET /w00tw00t.at.ISC.SANS.DFind' -j DROP
iptables -I INPUT -p tcp --dport 80 -m string --to 70 --algo bm --string 'GET /w00tw00t.at.ISC.SANS.DFind' -j LOG --log-level 4 --log-prefix Hacktool.DFind:DROP:

मेरे लिए ठीक काम करता है।


मैंने OWASP_CRS / 2.2.5 या mod_security के लिए ग्रेटर नियम निर्धारित करने की सिफारिश की
Urbach-Webhosting

यह वास्तव में एक अच्छा विचार नहीं है। आप बहुत सारे हैंगिंग कनेक्शन के साथ समाप्त हो जाएंगे। साथ ही अगर आपकी साइट पर उन अनुरोधों के बारे में कोई चर्चा है, तो आप झूठी सकारात्मकता के साथ समाप्त हो सकते हैं।
कैस्परड

0

आप का उपयोग करते हैं hiawathaवेब सर्वर के रूप में एक reverse proxyइन स्कैन स्वचालित रूप से कचरा और के रूप में शामिल नहीं किया जाता clientप्रतिबंध लगा दिया। यह फ़िल्टर XSSऔर CSRFशोषण भी करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.