
Big Iron Recon & Pwnage
============================== द्वारा @singe (डोमिनिक व्हाइट @ SensePost)
BIRP एक उपकरण है जो TN3270 के माध्यम से परोसे जाने वाले मेनफ्रेम अनुप्रयोगों के सुरक्षा मूल्यांकन में सहायता करेगा। बहुत कुछ उसी तरह जैसे BURP और अन्य वेब एप्लिकेशन प्रॉक्सी वेब एप्लिकेशन मूल्यांकन के लिए करते हैं, BIRP का उद्देश्य TN3270 एप्लिकेशन मूल्यांकन के लिए भी ऐसा ही करना है। और, वेब एप्लिकेशन की तरह ही, उन फ़ील्ड्स को देखने और संशोधित करने में सक्षम होना जिन्हें एप्लिकेशन डेवलपर ने न तो दृश्य और न ही संशोधनीय माना था, सुरक्षा धारणाओं को दरकिनार करने की अनुमति देता है।
विशेष रूप से, BIRP महत्वाकांक्षी TN3270 हैकर के लिए दो क्षमताएँ प्रदान करता है। पहली यह है कि यह एप्लिकेशन द्वारा स्क्रीन में लौटाए गए सभी डेटा को दिखाता है। इसमें छिपे हुए फ़ील्ड भी शामिल हैं। दूसरी यह है कि यह "संरक्षित" उर्फ "गैर-संशोधनीय" के रूप में चिह्नित फ़ील्ड्स को संशोधित करने की अनुमति देता है। एप्लिकेशन के विकसित होने के तरीके के आधार पर, यह एप्लिकेशन कार्यक्षमता को संशोधित करने की अनुमति दे सकता है।
./birp.py -h चलाने के लिए स्टार्टअप मदद देगा यदि आप इसे चलाना चाहते हैं।
आपको बस इतना चाहिए कि -t के साथ एक लक्ष्य निर्दिष्ट करें। लक्ष्य विनिर्देश में IP के बाद : के साथ एक पोर्ट शामिल हो सकता है जैसे 10.10.10.10:1023। यदि कोई पोर्ट निर्दिष्ट नहीं है तो यह x3270 डिफ़ॉल्ट व्यवहार के अनुसार :23 पर डिफ़ॉल्ट होगा।
आप पहले से सहेजी गई हिस्ट्री फ़ाइल को हिस्ट्री में लोड करने के लिए -l का उपयोग कर सकते हैं। आपको हमेशा एक लक्ष्य निर्दिष्ट करना होगा और दुर्भाग्य से अभी तक केवल हिस्ट्री नहीं देख सकते।
स्थापना के लिए नीचे पूर्व-आवश्यकताएँ देखें। दुर्भाग्य से, यह वर्तमान में केवल Unix वातावरण में चलेगा, Windows समर्थन नहीं है।
वर्तमान में, BIRP में काफी सीमित कार्यक्षमता है। ये हैं:
इंटरैक्टिव मोड BIRP की कार्यक्षमता का केंद्र है। यह BIRP से x3270 तक कीस्ट्रोक्स और अन्य कमांड पास करेगा और विश्लेषक को एप्लिकेशन के साथ बातचीत करने की अनुमति देगा जैसे वे सीधे x3270 का उपयोग कर रहे हों। हालांकि, यह लौटाई गई प्रत्येक स्क्रीन का चिह्नित "हैकर दृश्य" भी प्रदर्शित करेगा, साथ ही "लेन-देन" रिकॉर्ड करेगा और बाद के विश्लेषण और निरीक्षण के लिए प्रॉक्सी हिस्ट्री में संग्रहीत करेगा।
इंटरैक्टिव मोड में Ctrl-h दबाने से एक सहायता स्क्रीन प्रिंट होगी, Ctrl-k एक रंग कुंजी प्रदर्शित करेगा, और ESC मेनू पर वापस आ जाएगा।
BIRP यह पता लगाने की कोशिश करता है कि "लेन-देन" कब हुआ है, और पहले और बाद की स्क्रीन, साथ ही संशोधित फ़ील्ड को रिकॉर्ड करता है। कुछ कुंजियाँ आमतौर पर लेन-देन शुरू करने की गारंटी होती हैं जैसे Enter या कोई भी PF/PA कुंजी। हालांकि, यदि किसी कारण से स्क्रीन को कार्य करने के लिए अलग कुंजियों की आवश्यकता होती है, तो आप कार्रवाई करने के तुरंत बाद Ctrl-u से मैन्युअल रूप से लेन-देन को "पुश" कर सकते हैं।
अंत में, यदि आप स्क्रीन को फिर से प्रिंट कराना चाहते हैं तो Ctrl-r दबाएं।
यह BIRP द्वारा रिकॉर्ड किए गए सभी लेन-देन का इतिहास प्रदर्शित करेगा, और उन्हें निरीक्षण करने की अनुमति देगा। विशेष रूप से यह प्रस्तुत स्क्रीन, उस स्क्रीन में संशोधित फ़ील्ड (अर्थात प्रस्तुत डेटा) और प्रतिक्रिया तक पहुँच प्रदान करता है।
प्रत्येक स्क्रीन के लिए, केवल पहली पंक्ति संदर्भ के रूप में प्रदर्शित होती है, लेकिन यदि आप लेन-देन देखते हैं तो पूर्ण स्क्रीन मुद्रित की जा सकती है।
साथ ही, आप python में जा सकते हैं और सीधे स्क्रीन ऑब्जेक्ट की जांच कर सकते हैं।
यहां आप उन लेन-देन को खोजने के लिए केस-सेंसिटिव खोज कर सकते हैं जिनकी स्क्रीन में कुछ टेक्स्ट है।
आप अपने इतिहास को एक फ़ाइल में सहेज सकते हैं, और इसे कमांड लाइन पर -l स्विच के साथ बाद में फिर से लोड कर सकते हैं। आपको इसे एक अद्वितीय फ़ाइल नाम में सहेजना होगा।
उपकरण अभी तैयार नहीं है, और अभी सीधे ऑब्जेक्ट्स के साथ खेलने में सक्षम होने के बहुत सारे अच्छे कारण हैं। आप विभिन्न स्थानों पर एक IPython एम्बेडेड शेल में जा सकते हैं। BIRP में काफी उपयोगी पायथन ऑब्जेक्ट्स का एक सेट है जिसे आप पूछताछ कर सकते हैं, और मैंने सुनिश्चित किया है कि उनके पास उपयोगी पायथनिक आउटपुट (str/repr) हो। शीर्ष ऑब्जेक्ट "हिस्ट्री" है जिसमें "लेन-देन" की एक सूची है। आप history.last() का संदर्भ देकर अंतिम जोड़े गए लेन-देन की पूछताछ कर सकते हैं। प्रत्येक लेन-देन में एक अनुरोध और प्रतिक्रिया स्क्रीन ऑब्जेक्ट होता है। इसलिए, उदाहरण के लिए, सर्वर से अंतिम प्रतिक्रिया में सभी छिपे हुए फ़ील्ड की सूची प्राप्त करने के लिए आप इसका उपयोग कर सकते हैं: history.last().response.hidden_fields
अधिक विवरण के लिए, tn3270.py मॉड्यूल देखना सबसे अच्छा होगा।
Python लाइब्रेरीज़: py3270 (v0.3.4), colorama, IPython इन्हें pip या easy_install के साथ स्थापित किया जा सकता है। जब तक py3270 इस पुल रिक्वेस्ट को स्वीकार नहीं करता (https://github.com/py3270/py3270/pull/13) तब तक मेरी py3270 लाइब्रेरी (https://github.com/singe/py3270) का उपयोग करें।
हैक्ड x3270 क्लाइंट (v3.6) पैच शामिल हैं। आप स्रोत http://x3270.bgp.nu/download.html पर डाउनलोड कर सकते हैं फिर निकालने के बाद suite3270 निर्देशिका में cd करें, और patch -p1 < suite3270-full.patch चलाएँ। आप एक अपरिवर्तित क्लाइंट का उपयोग कर सकते हैं, लेकिन तब आप संरक्षित फ़ील्ड को संपादित नहीं कर पाएंगे। पैच दो बदलाव करता है, पहला संरक्षित फ़ील्ड को संपादित करने की अनुमति देता है, दूसरा छिपे हुए फ़ील्ड को दृश्यमान बनाता है (उल्टे टेक्स्ट हाइलाइटिंग में दिखाया गया है)। यह कार्यक्षमता दो अन्य पैच में विभाजित है यदि आप किसी कारण से केवल एक या दूसरा चाहते हैं।
मैं जो कुंजी हैंडलिंग कार्यक्षमता का उपयोग करता हूं वह मेरा अपना कस्टम getch कार्यान्वयन है। यह काफी भयानक है, लेकिन यह काम करता है। मुझे curses, pygame, urwid आदि जैसे अधिक परिपक्व कुंजी हैंडलिंग कार्यान्वयन का उपयोग करना अच्छा लगेगा, लेकिन वे सभी आपकी स्क्रीन को भी अपने कब्जे में लेना चाहते हैं। व्यक्तिगत रूप से, मुझे स्क्रॉल बैक बफर अपनी गतिविधियों को रिकॉर्ड करने या बस ऊपर स्क्रॉल करने और याद रखने में अमूल्य लगता है कि मैंने क्या किया, इसलिए मैं इसे खोना नहीं चाहता था, इसलिए यह दृष्टिकोण।
मुझे py3270 काफी कच्चा लगा और मैंने इसके कुछ भाग को लपेट दिया। मैंने इसे एक अलग रैपर के रूप में प्रदान किया है जिसका उपयोग आप अपने स्वयं के प्रोग्राम में कर सकते हैं।
द्वारा dominic () sensepost.com (@singe)
Big Iron Recon & Pwnage by SensePost एक Creative Commons Attribution-ShareAlike 4.0 International License (http://creativecommons.org/licenses/by-sa/4.0/) के तहत लाइसेंस प्राप्त है। इस लाइसेंस के दायरे से परे अनुमतियाँ http://sensepost.com/contact us/ पर उपलब्ध हो सकती हैं।