
फैक्स सेवा और DLL हाईजैक का उपयोग करके एक बाइंड शेल
एक प्रूफ-ऑफ-कॉन्सेप्ट बाइंड शेल जो Fax सेवा और Ualapi.dll पर आधारित DLL हाइजैक का उपयोग करता है।
हमारा लेख यहाँ देखें: https://windows-internals.com/faxing-your-way-to-system/

Ualapi.dll बनाएं और c:\windows\system32 में रखेंFax सेवा शुरू करें, जो DLL लोड करेगी और UalStart एक्सपोर्ट को कॉल करेगी। UalStart एक थ्रेड पूल वर्क आइटम को क्यू करेगा जो RpcSs के लिए एक हैंडल खोलता है, एक SYSTEM टोकन ढूंढता है, और फिर उसे इम्पर्सनेट करता है। उसके बाद, यह स्थानीय एंडपॉइंट पते पर एक सॉकेट बनाएगा, इसे पोर्ट 9299 से बाइंड करेगा, और फिर थ्रेड पूल I/O कम्प्लीशन पोर्ट का उपयोग करके कनेक्शन के लिए एसिंक्रोनस रूप से प्रतीक्षा करेगा।nc(at).exe <ip> 9299) का उपयोग करके पोर्ट 9299 पर सॉकेट से कनेक्ट करें और फिर let me in टाइप करें और ENTER दबाएं। यदि आप कस्टम कोड लिख रहे हैं, तो सुनिश्चित करें कि आप let me in\n स्ट्रिंग भेजें।DcomLaunch सेवा के अंतर्गत SYSTEM विशेषाधिकारों के साथ एक Cmd.exe प्रक्रिया शुरू करेगा, इसके इनपुट और आउटपुट हैंडल को नवनिर्मित सॉकेट से बाइंड करेगा।SYSTEM के रूप में चलता है, बहुत जल्दी NETWORK SERVICE पर वापस आ जाता है और केवल एक API कॉल करने के बाद। यह विभिन्न स्कैनर द्वारा पकड़े जाने की संभावना को कम करने में मदद करता है।Fax सेवा के अंतर्गत नहीं, बल्कि DcomLaunch सेवा (जो पहले से ही एक SYSTEM सेवा है) के अंतर्गत बनाता है, जिससे यह अधिक स्वाभाविक दिखता है और बहुत संदिग्ध दिखने वाले प्रक्रिया ट्री से बचता है।Fax सेवा का है, न कि DcomLaunch या Cmd.exe का। यदि हम Fax सेवा को मारते हैं तो ऐसा लगता है कि सॉकेट System का है।यह एक ड्रॉप-इन, अडिटेक्टेबल, दुर्भावनापूर्ण, हथियारबंद शेल होने का इरादा नहीं है:
80 या 443 जैसे सामान्य पोर्ट पर संचार करना बेहतर काम करेगा।Spooler, भी Ualapi.dll लोड करती हैं। जबकि सिस्टम ठीक काम करता है यदि Fax सेवा SERVICE_START_PENDING स्थिति में "अटकी" है, तो यह Spoolsv.exe में समस्याएँ उत्पन्न करेगा।