القط تحت الغطاء. الجزء 2


مرحبا بالجميع! في الجزء الأخير ، تحدثنا عن الحلول الحالية لـ "تنظيم" المهام الموازية لـ "تكسير التجزئة" على hashcat.

في هذا الجزء ، نواصل الحديث عن مشروع Hashtopolis. فكر في إعداد مكونات بيئة الويب على الخادم. دعنا نحلل المعلمات الرئيسية للخادم وكيل Hashtopolis.

تركيب وتكوين Hashtopolis


لخادمها ، يريد خادم Hashtopolis المكونات التالية منك:

  • Apache2 / nginx
  • 64 بت PHP 7.0+ والوحدات النمطية: وحدات php-gd ، الكمثرى ، php-curl
  • MySQL 5.x + KM مع الوصول الكامل إلى قاعدة بيانات التطبيق

يحتوي Hashtopolis على دعم nginx ، والذي تحتاج إلى تكوين حظر الوصول إليه لجميع الدلائل الفرعية "/ hashtopolis" التي تحتوي على ملف htaccess. في هذه المقالة ، نفكر في تثبيت Hashtopolis مع خادم الويب Apache2 (وبالتالي LAMP).

يمكنك أيضًا استخدام XAMPP للتعرف على المشروع ، على الإصدار 5.6.40 ، كل شيء "أقلعت" دون مشاكل. المواد في هذه المقالة مفيدة في تكوين Hashtopolis على XAMPP.

تحت المفسد ، قليلا عن صورة Hocktopolis Docker:

تثبيت Hashtopolis في عامل ميناء
تم العثور على العديد من الصور لخادم hashtopolis في Docker Hub ، ومع ذلك ، تم إنشاء صورة واحدة فقط على الأقل بعض الثقة: hub.docker.com/r/kpeiruza/hashtopolis

لم يكن المؤلف كسولًا جدًا وأضاف وصفًا لـ "تثبيت" hashtopolis في دوكر. يتم وصف تفاصيل الإعداد والحاوية بالتفصيل. ملاحظة مهمة - عند تكوين تعيين المنافذ (على سبيل المثال ، "docker run ... -p 80:80") ، خذ بعين الاعتبار ميزات نظام التشغيل الخاص بك والحاجة إلى الوصول إلى خادم الويب على وكلاء مضيف Hashtopolis.

تم وصف عملية إعداد تطبيق الويب نفسه لاحقًا في مقالتنا.

تركيب مصباح


إصدار المشروع الذي استخدمناه: Hashtopolis 0.10.1

لكي يعمل خادم Hashtopolis ، كان لدينا ما يكفي من المضيف بالتهيئة التالية:

  • 1 وحدة المعالجة المركزية
  • 1GB RAM
  • قرص 25 جيجابايت

نوصي بتثبيت phpMyAdmin أو المسؤول أو تمثيلي آخر للعمل مع DBMS. وبالتالي ، في حالة وجود مشاكل في وظيفة Hashtopolis ، يمكن إجراء استكشاف الأخطاء وإصلاحها دون مغادرة المتصفح.

في عملية تثبيت البرنامج على خادم LAMP الخاص بنا ، استخدمنا التعليمات من Wiki of Hashtopolis (https://github.com/s3inlc/hashtopolis/wiki/Server-Prerequisites):

  1. sudo apt update && sudo apt upgrade
  2. سودو عرضة تثبيت الخلية خادم
  3. سودو عرضة تثبيت apache2
  4. sudo apt install libapache2-mod-php php-mysql php php-gd php-pear php-curl
  5. سودو عرضة تثبيت بوابة
  6. سودو عرضة تثبيت phpmyadmin

إذا لم يتم تشغيل معالج التكوين التفاعلي أثناء تثبيت حزم mysql ، فأنت بحاجة إلى تشغيل الأمر التالي: mysql_secure_installation.

وبالتالي ، باستخدام "المعالج التفاعلي" ، سيتم تعيين كلمة مرور للوصول إلى DBMS.

ثم تحتاج إلى إنشاء مستخدم في MySQL وقاعدة بيانات يكون لهذا المستخدم حق الوصول للقراءة / الكتابة.

ننتقل إلى تثبيت خادم Hashtopolis.


يمكنك استنساخ شفرة مصدر Hashtopolis من مستودع بوابة المشروع ، لقد تصرفنا وفقًا للتعليمات واستنسخنا الريبو ، ومن دليل "hashtopolis" نقل "src" بشكل متكرر إلى "www":

  1. git clone github.com/s3inlc/hashtopolis.git
  2. مؤتمر نزع السلاح hashtopolis / src
  3. sudo mkdir / var / www / hashtopolis
  4. sudo cp -r * / var / www / hashtopolis
  5. sudo chown -R www-data: www-data / var / www / hashtopolis

قم بتعيين التوجيه "KeepAliveTimeout" على 10 مللي ثانية ، كما يوصي المطورون. الأساس المنطقي:
من أجل الاستفادة من استخدام جلسات TCP في عميل python ، يجب ضبط مهلة الخادم على شيء أعلى من وقت تحديث الحالة الخاص بك
ترجمتنا المجانية: "من أجل استخدام جلسات TCP في عميل تم تنفيذه في Python ، يجب تعيين مهلة الجلسة في تكوين خادم الويب أعلى من" وكيل "تحديث الحالة" قيمة "

افتح أي محرر (مفضل) باستخدام ملف تكوين Apache2 (في نظامنا ، المسار إلى الملف "/etc/apache2/apache2.conf") وقم بتغيير قيمة توجيه "KeepAliveTimeout" من 5 إلى 10.

إذا لزم الأمر ، أضف اسمًا مستعارًا إلى مجلد Hashtopolis في تكوين خادم الويب (إذا تم إنشاء الدليل في دليل آخر غير "/ var / www / html"). نضيف أيضًا التوجيه "AllowOverride All" للسماح باستخدام ملفات htaccess في الأدلة الفرعية.

فقط في الحالة ، أضفنا توجيهات "ServerSignature Off" و "ServerTokens Prod" إلى ملف التكوين "/etc/apache2/apache2.conf" مع إعادة التشغيل اللاحقة لخدمة apache2 ، وأشرنا أيضًا إلى عناوين IP المسموح بها للوصول إلى توجيه "phpMyAdmin" السماح من 1.2.3.4/28 "في التكوين" /etc/apache2/conf-enabled/phpmyadmin.conf ". السماح بالوصول من أي عنوان إلى Hashtopolis أو تقييد locahost / PrivateIP-space - يعتمد على الإعداد المحدد. في حالتنا ، يُسمح بالوصول من أي عنوان IP ، حيث أنك أفضل حالًا ، حدد هذه النقطة.

سيكون فكرة جيدة لتقييد الوصول إلى دليل hashtopolis. لقد ذهبنا بطريقة سريعة وسهلة - للوصول إلى دليل "/ hashtopolis" ، يجب أن يمر عميل الويب من خلال المصادقة الأساسية.

قم بتثبيت حزمة apache-utils (إذا لم يتم ذلك من قبل). من المرافق في هذه المرحلة ، مطلوب "htpasswd". قم بإنشاء ملف وتسجيل دخول المستخدم:

sudo htpasswd -c /etc/apache2/.htpasswd kraud 

بعد إدخال كلمة المرور ، ستتم إضافة المستخدم إلى ملف .htpasswd ، ويمكنك التحقق من الأمر "cat /etc/apache2/.htpasswd". تتم إضافة المستخدمين بواسطة أمر مشابه بدون مفتاح "-c".

بعد ذلك ، نقوم بتهيئة الوصول إلى دليل تطبيق الويب عن طريق إضافة توجيهات إلى تكوين apache2 / sites-available / 000-default.conf. نتيجة لذلك ، حصلنا على مثل هذا "الدليل":

 Alias /hashtopolis "/var/www/hashtopolis" <Directory /var/www/hashtopolis> AuthType Basic AuthName "Restricted Content" AuthUserFile /etc/apache2/.htpasswd Order allow,deny Allow from all AllowOverride All Require valid-user </Directory> 

يرجى ملاحظة أنه عند استخدام "Basic-Auth" ، يجب عليك إضافة معلمات إلى تهيئة وكيل Hashtopolis (ملف "\ hashtopolis_agent_dir \ config.json"):

 { "url": "http://1.2.3.4/hashtopolis/api/server.php", "voucher": "", "token": "token", "uuid": "d54de86f-3942-4127-af63-f257c45b66cd", "debug": false, "auth-user": "kraud", "auth-password": "password" } 

حول Hashtopolis وكيل في وقت لاحق قليلا.

يجب عليك أيضًا إنشاء قاعدة بيانات جديدة لتطبيق Hashtopolis ومستخدم MySQL مع الوصول إلى قاعدة البيانات هذه. ثم شخصًا يعجبك أكثر - في سلطة النقد الفلسطينية أو في وحدة التحكم لإنشاء قاعدة بيانات - لا ينبغي أن يكون هذا صعبًا. نقوم بحفظ اسم قاعدة البيانات وبيانات الاعتماد في الملاحظات - وستكون هناك حاجة إليها لاحقًا.

نتيجة لهذه الخطوات ، يجب تحميل صفحة تثبيت تطبيق الويب Hashtopolis على عنوان URL التالي: http: // <server_ip> / hashtopolis:



إذا لم يحدث ذلك ، فربما تكمن المشكلة في الأذونات الموجودة في الدليل "/ var / www / hashtopolis" ، أو في تكوين خادم الويب (على سبيل المثال ، خطأ في "الاسم المستعار"). يجدر التحقق من عنوان URL http: // <server_ip> /hashtopolis/src/index.php أو http: // <server_ip> /hashtopolis/src/install/index.php

بعد ذلك ، سيتم تحميل نموذج "اتصال DB" ، حيث سيكون من الضروري ملء معلمات الاتصال بـ DBMS واسم قاعدة البيانات (على سبيل المثال "hashtopolis") وبيانات اعتماد المستخدم للوصول إليه. إذا تم تأسيس الاتصال بشكل صحيح ، فسيتم فتح النموذج التالي باستخدام زر "متابعة" واحد - انقر فوقه. إذا كان كل شيء على ما يرام - سيتم فتح نموذج "إنشاء مستخدم مسؤول" التالي - سنشير هنا إلى بيانات اعتماد مسؤول تطبيق Hashtopolis على الويب:



بعد النقر فوق الزر "إنشاء" ، إذا تمت معالجة النموذج بشكل صحيح ، فسيتم عرض مستند مع تأكيد التثبيت الناجح والتوصيات:

  • تأكد من صحة الأذونات الموجودة في الدليل "./install" أو حذف هذا الدليل
  • تحقق من محتويات الملف "./install/.htaccess" (يجب أن يكون "رفض الطلب ، اسمح \ n من الكل")
  • بناءً على الطلب الموجه إلى "./install" ، يجب إرجاع رمز الحالة 403

بعد كل الخطوات المنجزة ، يجب تحميل نموذج مصادقة Hashtopolis على عنوان URL "http: // <server_ip> / hashtopolis /":



التالي (اختياري) تكوين استخدام HTTPS ، اتصال شهادة الأمان - سنحذف هذه الخطوة. ننتقل إلى تكوين وكيل Hashtopolis.

عامل التثبيت


يشارك الوكلاء مباشرة في مهمة "تكسير التجزئة" - يتم إطلاق مثيلات "hashcat" أو أي تكسير آخر على العملاء المضيفين. يحدث الحوار بين خادم Hashtopolis والوكلاء عبر HTTP / HTTP.

يمكن تثبيت الوكيل على الأنظمة التي تعمل بنظام Windows / Linux / MacOS X. في الإصدار الحالي من Hashtopolis ، يتم دعم وكيل Python فقط.

لم يعد الإصدار الصافي من وكيل Hashtopolis مدعومًا

لقد كان لدينا بالفعل مضيف Windows 10 اعتدنا عليه "كسر التجزئة" باستخدام "hashcat". لذلك ، قررنا عدم تغيير أي شيء ، ولكن اعتماد نظام عمل جاهز للاتصال بـ Hashtopolis.

في نظام Windows ، يجب أولاً تثبيت مترجم Python 3. لا تنس تثبيت ملف تعريف الطيور "Add Python 3.x to PATH" (مثال أدناه):



بعد ذلك ، تحتاج إلى تنزيل أرشيف hastopolis.zip من خادم Hashtopolis ، أو تسليم ملف الأرشيف إلى مضيف الوكيل بطريقة أخرى.

لتنزيل ملفات الوكلاء من الخادم ، انقر على "وكيل جديد" من القائمة المنسدلة "الوكلاء". ثم نصل إلى قسم "إضافة وكيل جديد" حيث سيتم تضمين زر التنزيل - "تنزيل".



أيضًا ، في قسم "إضافة وكيل جديد" ، سيتم الإشارة إلى عنوان URL لتوصيل الوكيل والزر الخاص بإنشاء قسيمة (تحتاج إلى النقر فوق "إنشاء").

في حالتنا ، تم حفظ الأرشيف في الدليل "C: \ hashtopolis" ، والذي سيكون دليل العمل للوكيل.

لتوفير الراحة للعمل مع الوكيل (عرض السجل ، النسخ / اللصق ، إلخ) ، نستخدم جلسة PowerShell. يتم تشغيل الوكيل بواسطة الأمر:

 > python.exe .\hashtopolis.zip 

يتم تشغيل العامل في وضع التصحيح باستخدام الخيار -d.

 > python3.exe .\hashtopolis.zip -d 

يمكنك تعطيل تصحيح الأخطاء عن طريق تحرير config.json config باستخدام السلسلة debug: false ". ملائمة

يمكنك استدعاء التعليمات للحصول على وسيطات إضافية لتشغيل الأمر agent باستخدام الخيار "-h":

أوامر وكيل Hashtopolis
> python.exe. \ hashtopolis.zip -h
الاستخدام: python3 hashtopolis.zip [-h] [--de-register] [--version]
[- رقم فقط] [- تحديث التحديث] [- تصحيح -]
[- قسيمة القسيمة] [- URL URL]

عميل Hashtopolis v0.4.0

الوسائط الاختيارية:
-h ، - مساعدة تظهر رسالة المساعدة هذه والخروج
- سجل العميل يجب أن يقوم تلقائيًا بإلغاء التسجيل من الخادم الآن
- نسخة عرض معلومات الإصدار
- رقم فقط عند استخدام --version تظهر فقط الرقم
- تعطيل التحديث تعطيل استرداد التحديثات التلقائية للعميل من
الخادم
-debug ، -d فرض إخراج التصحيح
- قسيمة قسيمة قسيمة لاستخدامها للتسجيل تلقائيا
- url URL URL لواجهة برمجة تطبيقات عميل Hashtopolis

بعد التهيئة ، سيطلب الوكيل عنوان URL لخادم Hashtopolis (يمكنك نسخه من قسم "إضافة وكيل جديد"): "الرجاء إدخال عنوان url في واجهة برمجة التطبيقات لتثبيت Hashtopolis:"

ملاحظة: يجب أن يعمل البرنامج النصي للعامل دائمًا في الخلفية. هناك مكون عداء hashtopolis يقوم بتشغيل العامل عند تلقي رسائل البث المتعدد من الخادم. عداء يعمل فقط على المضيفين لينكس. اقرأ المزيد هنا: github.com/s3inlc/hashtopolis- عداء

إذا كان عنوان URL صحيحًا وتمكّن الوكيل من الاتصال ، فسيتم استلام رسالة تسأل عن القسيمة: "لم يتم العثور على رمز مميز! الرجاء إدخال قسيمة لتسجيل وكيلك: "

سيصدر الوكيل تأكيدًا ، إذا كان رمز القسيمة صحيحًا وسيذهب إلى وضع الاستعداد للمهام:

 Successfully registered! Collecting agent data... Login successful! Hashtopolis Server version: 0.10.1 () Client is up-to-date! No task available! 

في قسم "الوكلاء" في الجدول ، ستتم إضافة وكيل جديد ، مع معلومات حول النظام: اسم المضيف ، وحدة معالجة الرسومات / وحدة المعالجة المركزية وغيرها من المعلومات:



في الدليل C: \ hashtopolis ، سيتم إنشاء ملف config.json بتكوين الوكيل وملف سجل client.log. يمكن إضافة معلمات إضافية (على سبيل المثال ، وكيل HTTP) يدويًا ، وفقًا للتعليمات: github.com/s3inlc/hashtopolis-agent-python

لم يكن من الممكن العثور على معلومات حول تدوير السجل أو الحد الأقصى لحجم السجل ، استنادًا إلى مصدر الوكيل ، تتم كتابة جميع stdout من المحطة أيضًا إلى ملف ، ولم يتم العثور على قيود أو عمليات تحقق.

نوصيك بالانتقال على الفور إلى إعدادات الوكيل في واجهة الويب Hashtopolis - ما عليك سوى النقر على اسم المضيف (في الصورة أعلاه ، "DENIGMA"). من الأفضل تثبيت طائر "وكيل الثقة مع البيانات السرية" ، وكذلك الإشارة إلى المالك ("المالك"):



إعداد ثنائيات التكسير


يعرض القسم "Crackers / Cracker Biniaries" معلمات الملفات القابلة للتنفيذ "cracker" ، ويحتوي القسم افتراضيًا على "hashcat 5.1.0". إذا كنت بحاجة إلى استخدام إصدار مختلف من hashcat لأية مهام محددة ، فانقر فوق "إضافة إصدار / ثنائي" (قائمة الإصدارات: github.com/hashcat/hashcat/releases ). في النموذج ، املأ جميع الحقول وانقر فوق "إنشاء ثنائي":



كن حذرًا عند ملء النموذج ، على وجه الخصوص ، تجنب "المسافات" في "تنزيل عنوان URL" ، حدد "hashcat" في حقل "اسم الأساس الثنائي" - سيقوم البرنامج النصي للعامل باستكمال الأجزاء المفقودة في اسم الملف القابل للتنفيذ. لذلك أضفنا مجموعة إضافية من الملفات التنفيذية للإصدار 4.1.0. يمكنك إجراء تغييرات من خلال النقر على اسم المفرقع في عمود "الاسم".

نتيجة لهذا "الإعداد" ، عند إنشاء مهمة جديدة ("مهام / مهام جديدة") ، سيكون من الممكن تحديد إصدار hashcat.



في قسم Crackers ، يمكنك أيضًا إضافة نوع آخر من برامج التكسير ، المزيد عن العمل مع المفرقع العام هنا .

عند بدء المهمة في دليل "المفرقعات" المحلي على مضيف الوكيل ، سيتم تفريغ أرشيف 7z المحدد في "تنزيل عنوان URL" في المجلد برقم معرف المفرقع


إذا تم تثبيت هذا الإصدار من وحدة التكسير في وقت سابق ، فلن يتم تنزيل الأرشيف مرة أخرى.

إنشاء مهمة لكسر التجزئة


لقد أنشأنا الوكيل ولا يمكننا الانتظار للتحقق منه. لبدء "تجزئة التجزئة" ، يلزمك إنشاء قائمة بالتجزئة (أو "قائمة التجزئة") ، ثم تحديدها في المهمة. لإنشاء قائمة في واجهة Hashtopolis ، انقر فوق "قوائم" وحدد "قائمة تجزئة جديدة" من القائمة المنسدلة. في مشاريعنا ، نواجه بانتظام تجزئات NTLM / NetNTLM - سنمارسها. سنستخدم أي خدمة عبر الإنترنت وننشئ تجزئات NTLM. ثم ، قم بتعيين المعلمات المتبقية من القائمة وانقر فوق "إنشاء قائمة التجزئة":



نقطة مهمة - يمكن رؤية جميع علامات التجزئة "غير المتشققة / غير المتشققة" في القائمة التي تم إنشاؤها ، أي كل بيانات التجزئة مرتبطة بالقائمة ، وحتى المهام المرتبطة بها. لذلك ، كن حذرًا عند حذف قوائم التجزئة. وإذا توقفت وحدات التطبيق عن العمل لسبب ما ، على سبيل المثال ، تم إيقاف تشغيل وحدة "notifications.php" بعد حذف المهمة التي تم تعيين الإشعارات إليها ، كان علينا النقر على الإدخالات في جدول "NotificationSetting"

بعد ذلك ، تحتاج إلى إضافة القاموس ، حيث سنقوم بتجزئة التجزئة مع تحديد "القاموس" (المفتاح "-a0" في "hashcat"). انتقل إلى قسم "الملفات" (ستكون علامة التبويب "قوائم الكلمات نشطة") ، انقر فوق الزر "إضافة ملف" وحدد ملف محلي ، ثم انقر فوق "تحميل الملفات". يمكننا أيضًا استخدام التنزيل عن طريق عنوان URL ، على سبيل المثال ، تنزيل القاموس من مستودع "معروف" :



يمكنك الآن بدء مهام الوكيل. من قائمة Hashtopolis الرئيسية ، حدد "مهام / مهمة جديدة". بعد ذلك ، املأ النموذج:

  1. أدخل اسم المهمة في معلمة "الاسم"
  2. حدد قائمة التجزئة في المعلمة Haslist
  3. قم بتمييز القاموس من قائمة "قوائم الكلمات" الموجودة على اليمين - يتم إدراج اسم القاموس تلقائيًا في حقل "سطر الأوامر" إما: حدد المسار إلى القاموس بالتنسيق ".. \ path \ to \ file \٪ filename٪"
  4. في حقل "سطر الأوامر" ، أدخل معلمات بدء تشغيل hashcat ، على سبيل المثال ، "-a0"
  5. الأولوية ذات صلة عندما يكون هناك العديد من المهام.
  6. تُستخدم "ملاحظات المهام" في الملاحظات ؛ خارج Hashtopolis لن تكون متاحة.
  7. يمكنك تحديد لون للمهمة التي سيتم تمييزها بها في قائمة المهام (قائمة "المهام / إظهار المهام")

نترك بقية المعلمات بشكل افتراضي ، انقر فوق "إنشاء مهمة". بعد ذلك ، ستظهر مهمة جديدة في قائمة المهام:



كما يتضح من الجدول ، لم يتم تعيين الوكيل (الوكلاء) إلى المهمة "NTLM_test_crack". يمكنك تعيين وكيل إما من قائمة "تفاصيل الوكيل" في معلمة "الواجب:" ، أو في خصائص المهمة ، حدد وكيلًا من القائمة وانقر فوق الزر "تعيين":



بعد ذلك مباشرة ، سيبدأ "المحرك" على الوكيل - سيتم إرسال التعليمات:

  • قم بتنزيل "ثنائيات التكسير" (افتراضيًا hashcat.net/files/hashcat-5.1.0.7z ). في حالة وجود الملفات وتطابق الإصدار ، لن يتم تنزيل الأرشيف
  • تنزيل ملف القاموس (إذا تم تحديد "قائمة الكلمات" لخادم hashtopolis)
  • قم بإجراء اختبار أداء قصير
  • بدء اختراق القرصان

في هذه الحالة ، ستعرض وحدة التحكم معلومات حول مراحل إعداد GPU ، وعملية الاختيار ، وأداء النظام في "H / s" ، إلخ.

نتيجة لبدء المهمة وتنفيذها ، سيتم تحديث حالة "قائمة التجزئة". يمكن عرض كلمات المرور المحددة من خلال النقر على الرقم المقابل لـ "متصدع:" في جدول "المهام" ، أو في قسم "تفاصيل التجزئة":



إذا واجه وكيل أخطاء أثناء تنفيذ المهام ، فسيتم تغيير حالة هذا الوكيل وسيكون من الضروري تنشيطه يدويًا. "لتنشيط" الوكيل مرة أخرى ، تحتاج إلى وضع طائر أمام المعلمة "Activity" في إعدادات الوكيل. الحالة المتوقفة تبدو كالتالي:



لمنع الوكيل من التوقف بسبب الأخطاء ، تحتاج إلى تغيير المعلمة "أخطاء Cracker" إلى أحد خيارات "الاحتفاظ بالعميل قيد التشغيل" (سيعمل الوكيل ، ولكن يمكن إصلاح الأخطاء في السجل أو رفضها):



ذيل


شكرا لاهتمامكم! في الجزء التالي ، سنتحدث عن إعداد الإشعارات في Hashtopolis.

Source: https://habr.com/ru/post/ar446922/


All Articles