RSSجميع مواضيع الكاتب علي الشّمري

علي ([email protected]). دكتوراة في أنظمة الحاسوب. يعمل كأستاذ جامعي في قسم علم الحاسوب. مختص في التحقيقات الجنائية الالكترونية والإستجابة للحوادث الالكترونية (DFIR)، أمن الشبكات وتحليلها، وكذلك أمن أنظمة التشغيل المختلفة. حاصل على العديد من الشهادات التقنية، وسابقاً كان يعمل كمختص في جدر النّار، أنظمة كشف الاختراق، ادارة الثغرات والترقيعات، حماية الأنظمة، فحصوصات الاختراق، وتطبيق السياسات. مسؤول سابق عن متابعة وتطبيق (PCI DSS).

إستخدام Attack Tool Kit لعمل PenTest بسيط

أداة صغيرة وجميلة أخرى تعمل في بيئة عمل نظام ويندوز تساعد في إكتشاف الثغرات وإستغلالها إسمها ATK وهو إختصار ل، Attack Tool Kit … النظام هذا كما يصفه مطوره هو عبارة حالياً عن دمج الماسح Nessus وبيئة الإستغلال Metasploit معاً … الأداة تستطيع أن تعمل بدون تدخلك في ما تقوم به وبالتالي تقوم الى حد ما بعملية Automation لعملية كشف وإستغلال الثغرات لوحدها … الأداة تشبه في عملها كثيراً Core Impact … هذه الأداة صغيرة صحيح ولكنها تشبه فعلاً CI كثيراً لكن هناك فروقات كبيرة جداً طبعاً … الأداة مكتوبة بلغة Visual Basic وهي خاضعة لرخصة GPL وبالتالي لك حرية إستعمالها وتوزيعها …

لنقم بعمل تجربة بسيطة … الأداة في إعداداتها الأساسية تقوم بتنفيذ إستغلال واحد ضد الـ localhost او 127.0.0.1 ولهذا لنقوم بتغيير هذه الأعدادات لتناسب ما نريد … أضغط على أيقونة Config وقم بتعديل الهدف … أي ضع الهدف الذي تريد أن تختبره … وبعد ذلك قم أيضاً بتفعيل Full Audit لكي يقوم بتنفيذ جميع الثغرات الموجودة في مخازنه وليس فقط ما تقوم بإختياره … أيضاً هناك خيار جميل وهو إعطائك Alert حين يتم إيجاد ثغرة وإستغلالها قم بتفعيلها إذا أردت …

عمل DNS Enumeration بإستخدام Metasploit

طبعاً يوجد الكثير من الأدوات لعمل DNS Enumeration لكن مو غلط نتعرف على ما يوفره لنا Metasploit … حيث يوفر لنا أداة مساعدة إسمها dns_enum وسنقوم بإستعمالها لغرض الحصول على معلومات حول نطاق معيين … لإستعمال هذه الأداة، كل ما عليك القيام به هو الدخول الى الـ Console الخاص بـ Metasploit ومن ثم:

msf > use auxiliary/gather/dns_enum

لإستعراض الخيارات كلها:

msf auxiliary(dns_enum) > info

       Name: DNS Enumeration Module
    Version: 7825
    License: Metasploit Framework License (BSD)
       Rank: Normal

Provided by:
  Carlos Perez 

Basic options:
  Name         Current Setting                                    Required  Description
  ----         ---------------                                    --------  -----------
  DOMAIN                                                           yes       The target domain name
  ENUM_AXFR    true                                               yes       Initiate a zone Transfer against each NS record
  ENUM_BRT     false                                              yes       Brute force subdomains and hostnames via wordlist
  ENUM_RVL     false                                              yes       Reverse lookup a range of IP addresses
  ENUM_SRV     true                                               yes       Enumerate the most common SRV records
  ENUM_STD     true                                               yes       Enumerate standard record types (A,MX,NS,TXT and SOA)
  ENUM_TLD     false                                              yes       Perform a top-level domain expansion by replacing TLD and testing against IANA TLD list
  IPRANGE                                                         no        The target address range or CIDR identifier
  NS                                                              no        Specify the nameserver to use for queries, otherwise use the system DNS
  STOP_WLDCRD  false                                              yes       Stops Brute Force Enumeration if wildcard resolution is detected
  WORDLIST     /home/binary/bin/msf3/data/wordlists/namelist.txt  no        Wordlist file for domain name brute force.

Description:
  This module can be used to enumerate various types of information
  about a domain from a specific DNS server.

References:
  http://cve.mitre.org/cgi-bin/cvename.cgi?name=1999-0532

جميل جداً، إذن لعمل Zone Transfer لدومين معيين كل الذي علينا فعله هو:

msf auxiliary(dns_enum) > set DOMAIN arabnix.com

السبب، هو إن الخيار ENUM_AXFR والذي هو مختص بعملية Zone Transfer كما تلاحظون تم تفعيله “true” … الآن تشغيله:

msf auxiliary(dns_enum) > run

dradis – Effective Information Sharing

في عملية الـ Pentest قلنا كثيراً بإن عملية الحصول على أكبر قدر ممكن من المعلومات مهمة ومفيدة جداً وذلك لتسهيل وصولنا الى الهدف … لكن هل فكرت عزيزي القاريء كيف تقوم بتنظيم وترتيب هذه المعلومات لكي تسهل عليك العودة لها وقرائتها؟ وهل فكرت بإن تقوم بعمل سجل أو documentation لكل الإجراءات التي قمت بها أو ستقوم بها وأيضاً للنواتج التي حصلت عليها؟ كل هذه ممكن عملهم وأكثر من خلال تطبيق الويب dradis …

ولهذا يعتبر dradis من أفضل تطبيقات الويب التي توفر مستودع مركزي للمعلومات يستطيع جميع المرتبطين في عمل ما أن يتابعوا ما تم إنجازه وماذا لم ينجز بعد.

صورة من الموقع الرسمي:

ميزات dradis هي:
– سهولة في توليد التقارير
– يدعم المرفقات
– الربط مع أنظمة وأدوات عدة من خلال Server Plugins.
– لا يعتمد على نظام محدد، يعمل على جميع الأنظمة.

وضع كلمة سرية على Grub

من الخطأ أن لا يكون على برنامج الإقلاع grub او غيره بدون كلمة سر … عدم وجود كلمة سرية على تحريره تمكن أي شخص بوصول فيزيائي للجهاز بتمرير المتغييرات التي يريدها وذلك للوصول الى النظام او خدمة ما عليه … لمنع ذلك حرر ملف grub وضع فيه كلمة السر التي تأخذها من ناتج الأمر:

grub-md5-crypt

ضعها قبل السطور الخاصة بالأنظمة التي تريد الإقلاع منها:

password $1$bkriV/$sbZWBWwX7Jzw8IPI62XU30

وسلامتكم …

منع الدخول الى Single User Mode بدون عمل Authentication صحيح

عدم منع الدخول الى Single User Mode أو S أو الطبقة الأولى 1، في نظام جنو/لينوكس بواسطة كلمة مرور من خلال Authentication ممكن تجعل اي شخص له وصول فيزيائي الى الجهاز بالدخول بالحساب root ولهذا لمنعه نقوم:

حرر الملف:

vim /etc/inittab

وضع:

~~:S:wait:/sbin/sulogin

وسلامتكم …

كيفية إيقاف عمل SSLv2 والتشفيرات الضعيفة في IIS

في سياسة PCI Compliance مطلوب إيقاف جميع التشفيرات الضعيفة والـ Null وأيضاً SSLv2 … ولهذا يجب ان نوقفهم في IIS أو أي خدمة أخرى تستعملهم … الآن نريد إيقافهم على IIS ولهذا قمت بتجربة هذه الطريقة على عدة نسخ من IIS سواءاً 4 أو 6 …

تستطيع إدخال المفاتيح التي بالأسفل بشكل يدوي، أو أن تقوم بعمل إيراد Import لهم من خلال الـ Regedit في ويندوز … المفاتيح هي:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\DES 56/56]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\NULL]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 40/128]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 56/128]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 40/128]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 56/128]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 64/128]
"Enabled"=dword:0000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\PCT 1.0\Server]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server]
"Enabled"=dword:00000000

وهكذا قم بإعادة تشغيل الماسح Vulnerability Scanner الذي تستعمله وسترى بإنه لم يعد مؤشر على خادمك بإنه يستعمل تشفيرات ضعيفة …

كيفية إستعمال NeXpose من داخل Metasploit لتنفيذ هجوم

نريد أن اقوم بعمل فحص على الشبكة من خلال NeXpose وفي حالة إكتشافه لثغرة قادر Metasploit على تنفيذها، أريده يقوم بإستغلالها … أذن لنبدأ معاً … أول شيء قم بإنشاء ملف في مجلد Metasploit مثلاً وسميه ما شئت (أنا سأستعمل الأسم NeXpose.rc):

vim NeXpose.rc

وضع فيه التالي:

db_create nexpose test.db
load nexpose
nexpose_connect nxadmin:password@localhost:3780
nexpose_scan -v -x -t pentest-audit 172.16.1.55

أغلق الملف وأحفظه … ولنوضح ما هي هذه السطور:
السطر الأول: قمنا بعملية إنشاء قاعدة بيانات لـ NeXpose …
السطر الثاني: قمنا بعملية تحميل NeXpose …
السطر الثالث: قمنا بعملية الإتصال على خادم NeXpose ووضعنا أسم المستخدم المراد إستعماله مع كلمة السر الخاصة به … في حالة كنت تستعمل NeXpose على خادم وتستعمل Metasploit من خادم آخر، قم بإسبتدال localhost بعنوان الـ IP الخاص بخادم NeXpose … أنا أستعمل خادم مركزي للامانة وأستعمل Metasploit من جهاز لاب توب قديم جداً ولا يتحمل أن يعمل عليه NeXpose ولهذا أستفيد من كونه عن بعد …
السطر الرابع: قمنا بتشغيل الفحص مع إختيار نوع الفحص والذي هنا هو pentest-audit وأيضاً أعطيناه الهدف المطلوب الفحص عليه، قم بإستبداله بما يناسبك … والخيار x هو لكي يقوم بتنفيذ أي إستغلال يكتشفه وقادر على إستغلاله بعد إنتهاء الفحص …

حل مشكلة توليد msfpayload لـ Null Byte

بالأمس كنت بحاجة الى الحصول على كود لـ bind_tcp من خلال metasploit وحصلت عليه وكل شيء تمام … بعد إستعماله في الثغرة التي أود إستغلالها لم أتمكن من الحصول على الـ shell وقمت بفحص أمور الجدار الناري وما الى ذلك خوفاً أن يكون هو السبب وأنه يقوم بحجب الإتصال ولكن لم يكن هو السبب … ولهذا قمت بجلب نسخة من الخادم الذي أود إختراقه للتجربة، وقمت بتشغيله من خلال OllyDbg ومتابعة الأوامر التي ينفهذا المعالج خطوة خطوة … وضعت Break Point على الـ JMP ESP الموجود في المكتبة SHELL32.dll وذلك لانها على ما يبدو غير موجودة في Windows XP SP3 في مكتبة USER32.dll كالسابق والذي أغلب الناس كانت تستعمله من هناك … المهم قمت بما ذكرت ونفذت الإستغلال ووصلت الى الـ Break Point … لكن حين أكملت التنفيذ (خطوة خطوة) البرنامج كان ينفذ أوامر غريبة أخرى ليس لها علاقة بالأوامر التي أريدها أنا (الشل كود) !! بعد التدقيق تبيين بإنه الـ msfpayload عندي كان قد ولد Shell Code لي فيه Null Byte أو بنظام الهيكسا x00 !!! ولهذا كان الـ Buffer عندي يقطع في منتصف الطريق بسبب هذا الخلل !

الحل ليس صعب ولكنه أخذ مني بعض الوقت للأمانة وكان على النحو التالي (أفترض إنك بداخل مجلد الميتاسبلويت):

./msfpayload windows/shell_bind_tcp R > /root/rawfile

هكذا عملنا الـ Shell Code ولكن الناتج على شكل RAW وليس على شكل كود C كما هو معتاد … وبعد ذلك قمت بعمل أنكود له:

./msfencode -i /root/rawfile -t c -b '\x00'

إرسال Payload خاص بواسطة Unicorn Scanner

السلام عليكم ورحمة الله وبركاته

قبل فترة كنت بحاجة الى أن أقوم بعملية إرسال لـ Payload معيين من خلال scapy لكن كوني جديد على إستعماله (وقتها) بحثت عن أداة أستطيع أن أقوم بإرسال Payload خاص بي الى هدف معيين وبشكل سريع، أي لا أريد إضاعة الكثير من الوقت على ذلك … فأكتشفت إن أحدى مزايا الأداة Unicorn Scanner هي ليس فقط كون الأداة تقوم بعمليات الفحص وإنما بإمكاننا أن نقوم بعملية إرسال لحزم تحمل Payload محدد نقوم نحن بوضعه … لنقوم بعمل ذلك تابع معي …

أولاً نفتح ملف الإعدادات للـ Payloads والموجود في:

vim /etc/unicornscan/payloads.conf

ضرورة تغيير/تعطيل منفذ telnet على المودم

السلام عليكم ورحمة الله وبركاته

أحد الأمور التي يغفل عنها الكثير من الناس بما فيهم نفسي هي إن المنفذ 23 (خدمة telnet) على المودم من الخارج (الأنترنت) الخاص بك معرض للهجوم من قبل أي شخص … هذه الخدمة تحتاجها لعمل إعدادات معينة للمودم من خلال الطرفية … لكن لماذا تحتاجه إذا كنت تستطيع القيام بكل شيء من خلال صفحة مرتبة ومنظمة من يعرضها لك المتصفح وبضغطات بسيطة ينتهي بك الأمر بتعديل/تفعيل/إعداد الخدمات والأنترنت … إذن لسنا بحاجة له ولهذا لنقم بتعطيله أو لنقم بتغيير المنفذ الخاص به …

لعمل ذلك، أتبع ما يلي:

telnet modem_ip_address
Trying modem_ip_address...
Connected to modem_ip_address.
Escape character is '^]'.
Username : Admin
Password : ****