hacktricks/network-services-pentesting/pentesting-web/tomcat/basic-tomcat-info.md
2024-02-11 02:07:06 +00:00

9.2 KiB

Basiese Tomcat-inligting

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regmaak. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. Probeer dit vandag nog gratis.

{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}


Vermy om met root te hardloop

Om te verhoed dat Tomcat met root hardloop, is 'n baie algemene konfigurasie om 'n Apache-bediener in poort 80/443 in te stel en, as die versoekte pad ooreenstem met 'n regulêre uitdrukking, word die versoek na Tomcat gestuur wat op 'n ander poort hardloop.

Standaardstruktuur

├── bin
├── conf
│   ├── catalina.policy
│   ├── catalina.properties
│   ├── context.xml
│   ├── tomcat-users.xml
│   ├── tomcat-users.xsd
│   └── web.xml
├── lib
├── logs
├── temp
├── webapps
│   ├── manager
│   │   ├── images
│   │   ├── META-INF
│   │   └── WEB-INF
|   |       └── web.xml
│   └── ROOT
│       └── WEB-INF
└── work
└── Catalina
└── localhost
  • Die bin-map hou skripte en binaire lêers wat nodig is om 'n Tomcat-bediener te begin en te laat loop.
  • Die conf-map hou verskeie konfigurasie lêers wat deur Tomcat gebruik word.
  • Die tomcat-users.xml-lêer hou gebruikerslegitimasie en hul toegewysde rolle.
  • Die lib-map bevat die verskeie JAR-lêers wat nodig is vir die korrekte werking van Tomcat.
  • Die logs- en temp-mappe hou tydelike loglêers.
  • Die webapps-map is die verstek webwortel van Tomcat en bevat al die toepassings. Die work-map dien as 'n kas en word gebruik om data tydens uitvoering te stoor.

Daar word verwag dat elke map binne webapps die volgende struktuur sal hê.

webapps/customapp
├── images
├── index.jsp
├── META-INF
│   └── context.xml
├── status.xsd
└── WEB-INF
├── jsp
|   └── admin.jsp
└── web.xml
└── lib
|    └── jdbc_drivers.jar
└── classes
└── AdminServlet.class

Die belangrikste lêer onder hierdie is WEB-INF/web.xml, wat bekend staan as die implementeringsbeskrywer. Hierdie lêer stoor inligting oor die roetes wat deur die toepassing gebruik word en die klasse wat hierdie roetes hanteer.
Alle gekompileerde klasse wat deur die toepassing gebruik word, moet in die WEB-INF/classes-vouer gestoor word. Hierdie klasse kan belangrike besigheidslogika sowel as sensitiewe inligting bevat. Enige kwesbaarheid in hierdie lêers kan lei tot die totale kompromittering van die webwerf. Die lib-vouer stoor die biblioteke wat deur daardie spesifieke toepassing benodig word. Die jsp-vouer stoor Jakarta Server Pages (JSP), voorheen bekend as JavaServer Pages, wat vergelyk kan word met PHP-lêers op 'n Apache-bediener.

Hier is 'n voorbeeld van 'n web.xml-lêer.

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
<servlet>
<servlet-name>AdminServlet</servlet-name>
<servlet-class>com.inlanefreight.api.AdminServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>AdminServlet</servlet-name>
<url-pattern>/admin</url-pattern>
</servlet-mapping>
</web-app>

Die web.xml-konfigurasie hierbo definieer 'n nuwe servlet genaamd AdminServlet wat gekoppel is aan die klas com.inlanefreight.api.AdminServlet. Java gebruik die puntnotasie om pakkette te skep, wat beteken dat die pad op die skyf vir die bogenoemde klas sou wees:

  • classes/com/inlanefreight/api/AdminServlet.class

Daarna word 'n nuwe servlet-kartering geskep om versoeke na /admin met AdminServlet te karteer. Hierdie konfigurasie sal enige versoek wat ontvang word vir /admin na die AdminServlet.class-klas stuur vir verwerking. Die web.xml-beskrywer bevat baie sensitiewe inligting en is 'n belangrike lêer om te ondersoek wanneer 'n Local File Inclusion (LFI) kwesbaarheid benut word.

tomcat-gebruikers

Die tomcat-users.xml-lêer word gebruik om toegang tot die /manager en host-manager administrasiebladsye toe te laat of te verbied.

<?xml version="1.0" encoding="UTF-8"?>

<SNIP>

<tomcat-users xmlns="http://tomcat.apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
version="1.0">
<!--
By default, no user is included in the "manager-gui" role required
to operate the "/manager/html" web application.  If you wish to use this app,
you must define such a user - the username and password are arbitrary.

Built-in Tomcat manager roles:
- manager-gui    - allows access to the HTML GUI and the status pages
- manager-script - allows access to the HTTP API and the status pages
- manager-jmx    - allows access to the JMX proxy and the status pages
- manager-status - allows access to the status pages only

The users below are wrapped in a comment and are therefore ignored. If you
wish to configure one or more of these users for use with the manager web
application, do not forget to remove the <!.. ..> that surrounds them. You
will also need to set the passwords to something appropriate.
-->


<SNIP>

!-- user manager can access only manager section -->
<role rolename="manager-gui" />
<user username="tomcat" password="tomcat" roles="manager-gui" />

<!-- user admin can access manager and admin section both -->
<role rolename="admin-gui" />
<user username="admin" password="admin" roles="manager-gui,admin-gui" />


</tomcat-users>

Die lêer wys ons wat elkeen van die rolle manager-gui, manager-script, manager-jmx, en manager-status toegang tot bied. In hierdie voorbeeld kan ons sien dat 'n gebruiker tomcat met die wagwoord tomcat die manager-gui rol het, en 'n tweede swak wagwoord admin is ingestel vir die gebruikersrekening admin.

Verwysings

Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. Probeer dit vandag nog gratis.

{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!