
برنامج أمني لاسترجاع كلمات المرور واختبار اختراق الخوادم وأجهزة التوجيه وأجهزة إنترنت الأشياء باستخدام هجمات القوة العمياء لكلمات المرور.
برنامج أمني لاختبار اختراق الخوادم وأجهزة التوجيه وأجهزة إنترنت الأشياء
(بالمناسبة عنوان بيتكوين الخاص بي هو 3A7yuqBcPAcVEM59bNAVQdTCmkxRb5JRgE )
(إليك بديل، أيضًا لـ BTC، حيث تلقيت تقارير عن بعض محافظ البيتكوين التي لا تدعم عناوين معينة: 1PEDKUiUTxGNJ3XTPfXCTAjpzVzX1VZAme )
تحياتي أيها الرفاق، ومرحبًا بكم في UBERSCAN 1.0
تم تصميم UBERSCAN للمساعدة في اختبار اختراق الخوادم والشبكات، وكأداة للأشخاص مثلي الذين يحاولون الدخول إلى مجال القرصنة الأخلاقية لفهم، على سبيل المثال، عدد الأجهزة الضعيفة تجاه فيروس ميراي مثلًا. نعم، إنه نوع من المتصل الهاتفي التلقائي، ونعم، يمكن استخدامه لاختراق كلمات مرور الخوادم وأجهزة إنترنت الأشياء، ولا، لا ينبغي استخدامه لأغراض شريرة أو خبيثة (انظر الإشعار القانوني).
مثال على استخدام سطر الأوامر:
uberscan -user:admin -passblank -scantype:telnet -random_ip -forktimes:20
أو
uberscan -user:root -password:admin -scantype:ssh -random_ip -forktimes:20
أو ربما
uberscan -userfile:wordlist.txt -passfile:wordlist.txt -scantype:telnet -random_ip -forktimes:15
حاول الجمع والتعديل بين هذه الخيارات المختلفة حتى تجد بعض الأشياء الممتعة لتلعب بها! (أمزح فقط، لا أريد الذهاب إلى السجن آآآآآآآآآآه!)
هذا البرنامج (المشار إليه فيما يلي باسم UBERSCAN أو uberscan) يتم توزيعه بموجب ترخيص GPL 3. جميع الحقوق ذات الصلة محفوظة. UBERSCAN محمي بحقوق الطبع والنشر (c) Batch McNulty 2017. يمكنك توزيع وتعديل و/أو نسخ UBERSCAN دون إذن طالما تلتزم بشروط ترخيص GPL 3.
هذه الأداة مصممة للاستخدام القانوني فقط. لن أتحمل المسؤولية عن الاستخدام الخبيث. المتسللون الخبيثون سيكون لديهم أدواتهم الخاصة على أي حال؛ تم تصميم UBERSCAN للمساعدة في تأمين أنظمة الكمبيوتر، وليس تخريبها. إذا وجدت خوادم ضعيفة باستخدام ماسحات -random_ip و -random_ipblock، يُشجعك على الاتصال بأصحابها وإخبارهم بوجود ثغرة أمنية.
كن لطيفًا! هذا أمر!
يرجى إرسال جميع التهديدات بالقتل، وأوامر تسليم المجرمين، وعروض العمل المشبوهة إلى [email protected]. سأحاول الرد عليك ولكن لا أستطيع ضمان أي شيء...
لديه بعض التبعيات، لذلك أقوم بتضمين ملف دفعي معه يجب أن يقوم بتثبيتها تلقائيًا. فقط افتح نافذة طرفية في الدليل الذي يوجد فيه واكتب
sudo bash INSTALL.bash
..انتظر (قد يستغرق وقتًا طويلاً)، ويجب أن تكون قادرًا على تشغيل UBERSCAN (حاول perl uberscan.pl إذا علقت حقًا)
في حال لم يعمل برنامج التثبيت، المكتبات المطلوبة هي:
WWW::Curl::Easy HTTP::Request Net::SSH::Expect Net::Telnet Net::FTP Net::POP3 IO::Socket::INET Scalar::Util Fcntl utf8 Encode
Scalar::Util و Fcntl و utf8 و Encode يجب أن تكون جميعها مضمنة في توزيعة Perl لديك، والتي تأتي مع Linux. الباقي ربما يحتاج إلى تثبيت منفصل... للأسف في حالة Curl::Easy، التبعية نفسها لها تبعية، قد يكون من الصعب العثور عليها. إذا لم يتركك ملف INSTALL.bash مع جهاز كمبيوتر يعمل UBERSCAN، جرب تشغيل واحد أو كل هذه الأوامر، ثم قم بتشغيل ملف التثبيت مرة أخرى:
sudo apt-get install libcurl4-doc
sudo apt-get install libcurl3-dbg
sudo apt-get install libgnutls-dev
sudo apt-get install libidn11-dev
sudo apt-get install libkrb5-dev
sudo apt-get install libldap2-dev
sudo apt-get install librtmp-dev
sudo apt-get install zlib1g-dev
أيضًا، ملف INSTALL.bash يتطلب cpan، والذي يجب أن يأتي مع Linux - إذا لم يكن كذلك، اكتب
sudo apt-get install cpan
في الطرفية قبل تشغيله.
شيء مهم جدًا أيضًا:
وحدة Net::SSH::Expect تتطلب منك إجراء بعض التغييرات على أحد ملفات النظام. وهو:
/etc/ssh/ssh_config
ستحتاج إلى أذونات المستخدم الفائق لتعديل ذلك، لذا قم بتحميله في محررك المفضل وأضف الأسطر التالية إليه:
Host *
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
(قد يكون سطر "Host *" موجودًا بالفعل، إذا كان كذلك، لا تضف سطرًا جديدًا)
إذا لم تتمكن من القيام بذلك، سيظل uberscan يعمل - فقط لن تتمكن من استخدام الخيار -scantype:ssh.
2.1 مقدمة
تم تصميم UBERSCAN على منصة Ubuntu Linux، لذا لا يمكنني ضمان أنه سيعمل على أي شيء آخر، على الرغم من أنني واثق إلى حد ما أنه سيكون جيدًا على أي جهاز Linux. أما بالنسبة لـ Windows و Mac، فليس كذلك، ولكن لا تتردد في مساعدة أنفسكم.
يمكن لـ UBERSCAN فحص شبكة TCP/IP بحثًا عن الأجهزة ذات كلمات المرور الضعيفة (بما في ذلك أجهزة التوجيه وصناديق إنترنت الأشياء) وخوادم البريد SMTP الضعيفة أمام مرسلي البريد العشوائي. وظيفته الرئيسية هي القيام بهجمات القوة العمياء على الخوادم المحمية بكلمة مرور (لأغراض أخلاقية فقط، بالطبع!)
يمكنه فحص الخدمات / الثغرات الأمنية التالية:
UBERSCAN مبرمج بالمنافذ الافتراضية، ولكن يمكنك تجاوز ذلك باستخدام الخيار -port:.
2.2 ملاحظة حول وضع قائمة الكلمات:
وضع قائمة الكلمات (-passlist:textfile.txt و -userlist:textfile:txt) يتصفح قوائم الكلمات ويحاول هجوم القوة العمياء على عناوين IP المحددة بها.
يختلف وضع قائمة الكلمات في عمليات الفحص المختلفة. عند تحديد كتلة IP أو نطاق IP أو قائمة عناوين IP، يقوم UBERSCAN بتصفح الأهداف ويحاول نفس اسم المستخدم / كلمة المرور على كل IP، ثم يعود ويحاول اسم المستخدم و / أو كلمة المرور التالية في القائمة حتى تنفد القائمة (القوائم). هذه محاولة أساسية للتغلب على أمان كلمة المرور القديم "ثلاث مرات ثم الخروج" - إذا كانت القائمة طويلة بما يكفي، بحلول الوقت الذي يعود فيه نفس IP مرة أخرى، سيكون لديك "محاولة" جديدة ضده.
يعمل وضع إنشاء IP العشوائي (-random_ip) بشكل مختلف. نظرًا لأن عناوين IP يتم اختيارها عشوائيًا ويمكن أن يستمر البحث إلى أجل غير مسمى، فلا توجد قائمة عناوين IP للتنقل عبرها، لذلك يجب إسقاط قائمة الكلمات بأكملها على الهدف دفعة واحدة.
2.3 ماسح SSH:
برمجة ماسح SSH سببت لي الكثير من المتاعب. لقد قمت ببرمجته للبحث عن الموجهات "~" و ">" و "#" بالإضافة إلى رسالة "Welcome to"، وعدد كبير من مخرجات "كلمة مرور خاطئة" وأنشأت أيضًا خيارًا ثالثًا، وهو أنه إذا لم يجد أيًا منها، فإنه ينشئ ملفًا باسم "SSH-MAYBES.txt". لا ينبغي أن ينتج نتائج سلبية كاذبة أو إيجابية كاذبة، ولكن إذا حدث ذلك، يرجى إرسال أي ملفات ينتجها (بعد تحريرها بالطبع) حتى أتمكن من إصلاح المشكلة.
2.4 بيض عيد الفصح:
هناك بعض المراجع الثقافية الممتعة في رسائل الحالة والخطأ في البرنامج. هذا يعطي UBERSCAN بعض الشخصية. إذا تسبب هذا في ارتباك أو بدا سخيفًا جدًا، فأنا دائمًا سعيد بتلقي الملاحظات.
2.5 توقيع وتسول أنيني:
بصراحة، UBERSCAN خام بعض الشيء، لكن ليس من الضروري أن يبقى كذلك. أضع عنوان بيتكوين مع هذا، وإذا حصلت على استجابة جيدة بما فيه الكفاية، سأعمل على تحسين خشونته وسيكون هناك UBERSCAN 1.1، 1.2، وربما حتى UBERSCAN 2.0. كل هذا يعتمد عليك! أرسل أموالك إلى عنوان بيتكوين:
1PEDKUiUTxGNJ3XTPfXCTAjpzVzX1VZAme
-تذكر، إذا كنت تستخدم هذا البرنامج كجزء من عملك، فعليك حقًا الدفع! (كحافز إضافي - إذا حصلت على ما يكفي من النقود، وطلب مني الناس ذلك، قد أقوم بإزالة شاشة الإلحاح!)
على الرغم من أنه سيعمل بدونها، إلا أنه يوصى بشدة بإعطاء UBERSCAN صلاحيات المستخدم الفائق.
UBERSCAN هو أداة سطر أوامر، وعلى هذا النحو، يتوقع تمرير خيار واحد على الأقل إليه.
هذه الخيارات بالكامل:
أنواع الفحص:
-scantype:xxx يحدد نوع الفحص. يمكن أن يكون "xxx" SSH، FTP، POP3، SMTP، HTTP، Telnet، أو Banner. انظر -ftpanon و -smtpbug
-port:nn يضبط المنفذ على شيء آخر غير الافتراضي لتلك الخدمة. ("-scantype:banner" يبحث على المنفذ 1433، منفذ SQL).
-ftpanon يبحث عن خوادم ftp مجهولة. يُستخدم بدلاً من -scantype و -user -pass
-smtpbug يختبر ثغرة smtp. يُستخدم بدلاً من خيارات -scantype و -user -pass
-spamcheck يعمل فقط تحت عمليات الفحص "-scantype:smtp". في كل مرة يتم الاتصال بخادم، يتحقق مما إذا كان عرضة لسوء الاستخدام من قبل مرسلي البريد العشوائي. معطل افتراضيًا.
-novrfy عند إجراء فحص SMTP، يمنع UBERSCAN من إصدار أوامر VRFY. يتضمن ضمنيًا -spamcheck.
فحص اسم المستخدم وكلمة المرور:
-user:xxx -pass:xxx يحدد اسم المستخدم / كلمة المرور لتجربتها. إذا كنت تجوب الإنترنت بحثًا عن خوادم عشوائية باستخدام الخيار -random_ip، فهذا وخيارات -userblank / -passblank هي خيارات اسم المستخدم / كلمة المرور الوحيدة التي سيقبلها UBERSCAN. عادةً ستستخدم كليهما، لكنهما قابلان للتبادل مع خيارات -userfile و -passfile (قائمة الكلمات) حيثما يُسمح بذلك، بالإضافة إلى خيارات -userblank و -passblank. يرجى ملاحظة أن هذه لا تفعل شيئًا إذا تم ضبط -scantype على SMTP أو إذا تم ضبط خيارات -ftpanon أو -smtpbug.
-userblank -passblank -userblank يضبط لمحاولة اسم مستخدم فارغ، -passblank يضبط كلمة مرور فارغة. قد يكون هذا مفيدًا لبعض تحديات HTTP حيث يتم ترك أحدهما أو كلاهما فارغًا افتراضيًا.
-userfile:wordlist.txt -passfile:wordlist.txt يجرب كل اسم وكلمة مرور في قائمة الكلمات المحددة. يمكنني فقط ضمان عملها مع الكلمات المفصولة بمسافات عادية - استخدام قوائم كلمات تحتوي على علامات تشكيل أو أحرف غير لاتينية أو رموز يكون على مسؤوليتك الخاصة (على الرغم من أن الرمز "@" يجب أن يعمل بشكل جيد).
التسجيل، إعادة المحاولة، المهلات، فحص المنفذ و الإيقاف المؤقت:
-debug يسجل محاولات تسجيل الدخول الفاشلة بالإضافة إلى جميع الأخطاء باستثناء الأكثر شيوعًا. الأخطاء المسجلة في وضع التصحيح هي قطع الاتصال المفاجئ أثناء الاتصال بالخوادم، جنبًا إلى جنب مع محاولات تسجيل الدخول الفاشلة يمكن استخدام هذا أيضًا لتشخيص الردود غير المتوقعة. يحفظ أيضًا صفحات الويب التي تم جمعها في وضع -scantype:html
-logall مثل -debug، ولكنه يسجل أيضًا الأخطاء الشائعة جدًا التي قد تغرق الأخطاء الأكثر إثارة للاهتمام (يتم وضع علامة عليها كـ "خطأ مبتذل"). يتضمن ضمنيًا -debug (أي، لا يتعين عليك إدخال الخيار "-debug" إذا كنت تستخدم "-logall").
-csv يتم حفظ جميع ملفات الإخراج، باستثناء صفحات الويب المحفوظة في وضع فحص html، بتنسيق CSV. البيانات المحفوظة، بالترتيب المحفوظ هي: معرف العملية، نوع الفحص، عنوان IP، رقم المنفذ، اسم المستخدم، كلمة المرور، و "minutesup" - عدد الدقائق التي كان UBERSCAN يعمل فيها.
-whois يقوم باستعلام WHOIS عن الخادم عند العثور على كلمة مرور ويسجل النتيجة في ملف نصي (whoisreport.txt). معطل افتراضيًا.
-max_retries:nn هذا مضبوط على 5 افتراضيًا. إذا كنت أحد هؤلاء المصابين بجنون العظمة الفقراء الذين يعملون خلف بروكسياتهم واتصالات wi-fi الرديئة، فلا تتردد في رفعه إلى 15 أو 20 - أعلم أنني فعلت! قد يرغب الشخص العادي حتى في تعديله إلى أسفل، من ناحية أخرى إذا كنت تريد حقًا التأكد من تجربة كل كلمة مرور على كل عنوان IP، يمكنك ضبطه على ارتفاع سخيف، مثل -max_retries:999 (على الرغم من أنني لا أوصي بذلك!)
-timeout:nn حيث nn رقم. يضبط متغير المهلة بالثواني. الافتراضي هو 60. إذا كنت خلف بروكسي، فستحتاجه أن يكون مرتفعًا جدًا، بالمئات (كتبت هذا البرنامج خلف بروكسي). إذا كنت تستخدم فحص SSH كثيرًا، فقد تحتاجه أقل بسبب الطريقة التي يعمل بها SSH::Expect - لن يعيد البيانات حتى تمر فترة المهلة. إذا كنت تستخدمه فقط على شبكتك المحلية ولا تتصل أبدًا بالإنترنت، فربما أقل. شخصيًا لن أجعله أقل من 60 ثانية.
-portscan_timeout: مرة أخرى، هذا عدد من الثواني. مضبوط على مستوى منخفض، ولكن في بعض الأحيان إذا كنت تريد التأكد تمامًا، قد ترغب في رفعه إلى 5 أو حتى 10. إنه اختيارك.
-noportscan يقوم بإيقاف تشغيل فحص المنفذ. هذه الميزة مفيدة إذا كنت خلف proxychains أو برنامج وكيل مشابه لـ proxychains أو إذا كنت متأكدًا تمامًا من أن لديك عنوان IP / منفذ صالح لاختراقه، ولا تريد المخاطرة بتخطيه عن طريق الخطأ. خاصة عندما تكون خلف اتصال ضعيف.
-pause يوقف UBERSCAN مؤقتًا بعد معالجة المدخلات حتى تتمكن من التحقق من أنك قمت بإعداده بشكل صحيح. معطل افتراضيًا.
تعدد المهام:
-forktimes:nn يستخدم المعالجة المتوازية لإجراء اتصالات متعددة في نفس الوقت - يرجى ملاحظة أن الخيار -forktimes يعمل فقط إذا تم ضبط الخيار -random_ip أو -random_ipblock. أنا شخصياً أختار قيمة بين 5 و 15، على الرغم من أن النتائج قد تختلف اعتماداً على كمية النطاق الترددي المتاح لديك. من المعروف أنه يتعطل في هذا الوضع - لذا كبديل قد تجد أنه من الأسهل ببساطة إعداد ملف دفعي مع الكثير من الأوامر مثل هذه المنسوخة والملصقة فيه:
perl uberscan.pl -user:admin -pass:password -random_ip -scantype:telnet &
ثم تشغيله باستخدام bash.
خيارات IP:
افتراضيًا، يبحث UBERSCAN عن عناوين IP من ملف يسمى ipnumbers.txt. إذا كان هذا غير مريح، هناك الكثير من خيارات سطر الأوامر التي تسمح لك بتحديد عناوين IP من ملفك الخاص، أو اختيارها عشوائيًا، أو (بشكل بدائي) إنشاؤها من نطاقات IP أو كتل IP. يمكنك حتى تحديد عنوان IP فردي وفحص ذلك - جيد جدًا لهجمات القاموس المكثفة!
-ipfile:filename.txt الحصول على عناوين IP من ملف filename.txt. يمكن أن يكون أي ملف. يبحث في الملف المحدد عن أي شيء يطابق عنوان IP ويضعه في قائمة يقوم بعد ذلك بفحصها. هذا يعني أنه يجب أن يكون قادرًا على تحليل مخرجاته الخاصة، لذا يمكنك تشغيل فحص -random_ip مع تشغيل الخيارات -debug أو -logall، وإعادة تسمية ملف errors.txt الذي يخرجه وتغذيته في فحص جديد دون القيام بكل هذا التحرير المزعج.
-ipblock:nnn.nnn.0.0/16 -ipblock:nnn.nnn.nnn.0/24 -ipblock:192.168.0/16 - ابحث في كل شيء من 192.168.0.0 - 192.168.255.255 -ipblock:192.168.1/24 - ابحث في كل شيء من 192.168.1.0 - 192.168.1.255 مسح كتلة IP محددة (/16 أو /24) بدلاً من استخدام ipnumbers.txt. إنه ليس ذكيًا جدًا - فهو يعد فقط من الصفر، لذا إذا أدخلت 192.168.1.0/16، فسيظل يبحث من 192.168.0.0 إلى 192.168.255.255. لا تقلق، هناك دائمًا -iprange!
-iprange:nnn.nnn.nnn.nnn - nnn.nnn.nnn.nnn -iprange:192.168.0.0 - 192.168.0.3 -iprange:192.168.5.0 - 192.168.7.2 مسح النطاق المحدد لأرقام IP. يمكنه فقط معالجة الأوكتيتين الأخيرتين مع ذلك.
-ipsingle:nnn.nnn.nnn.nnn -ipsingle:192.168.0.1 مسح عنوان IP واحد - قوي جدًا إذا تم استخدامه مع خيارات -userfile: و -passfile:!
-random_ip يتكرر خلال روتين ينشئ أرقام IP عشوائية حتى تتمكن من التجول في الإنترنت البري بحثًا عن بعض الإثارة. لا تستخدم هذا لأغراض شريرة!
-random_ipblock:nnn -random_ipblock:nnn.nnn مثل -random_ip، ولكنه يبحث فقط في كتلة IP المحددة. لاحظ أن الأصفار اللاحقة والترميز بالشرطة المائلة لا تستخدم في هذا الخيار! (على عكس الخيار -ipblock) مثال:
perl uberscan.pl -scantype:banner -random_ipblock:192.168 perl uberscan.pl -scantype:banner -random_ipblock:192
اللغويات القانونية / النص القياسي:
العالم المثير للنص القانوني القياسي متاح لك الآن، فقط قم باستدعاء UBERSCAN مع الخيار -gpl لرؤية الترخيص الذي يتم توزيعه بموجبه وهو يمر أمام وجهك. بجدية، أي شخص يفكر في تعديل و/أو إعادة توزيع هذا البرنامج يجب أن يقرأه - يُسمح لك بذلك، ولكن يجب عليك الاستمرار في عرض اسمي وإعطائي الفضل في كتابة البرنامج الأصلي.