IDPA: Luki w zabezpieczeniach domyślnej instalacji serwera Apache Tomcat
Summary: Ten artykuł zawiera obejście problemu wykrytego przez "Luki w zabezpieczeniach domyślnej instalacji i/lub strony powitalnej Apache Tomcat" wykryte przez ACM.
Instructions
Następująca luka w zabezpieczeniach może zostać wykryta w części ACM urządzenia IDPA dla portu 8543:
| Tytuł luki w zabezpieczeniach | Składniki | Port usługi | Poziom istotności luki w zabezpieczeniach | Opis luki w zabezpieczeniach | Odporność na luki w zabezpieczeniach | Rozwiązanie dotyczące luki w zabezpieczeniach |
|---|---|---|---|---|---|---|
| Instalacja domyślna lub zainstalowana strona powitalna Apache Tomcat | ACM | 8543 | 5 | Na tym serwerze zostanie zainstalowana domyślna instalacja lub strona powitalna Tomcat. Zazwyczaj oznacza to nowo zainstalowany serwer, który nie został jeszcze poprawnie skonfigurowany i o którym może nikt nie wiedzieć. Często serwer Tomcat jest instalowany razem z innymi aplikacjami, a użytkownik może nie wiedzieć, że serwer WWW jest uruchomiony. Serwery te są rzadko aktualizowane i rzadko monitorowane, zapewniając hakerom wygodny cel, który prawdopodobnie nie uruchomi żadnych alarmów. |
Uruchamianie usługi HTTPS * Produkt Tomcat istnieje — Apache Tomcat 9.0.45. HTTP GET Prośba o https://<ACM IP>:8543/Oczekiwany kod odpowiedzi HTTP to oczekiwana wartość 200. <h1>Apache Tomcat/9.0.45</h1> 27: </div> 28: <div id="upper" class="curved container"> 29: <div id="congrats" class="curved container"> 30: ... this, you have successfully installed Tomcat. Congratulations!</h2> |
Zmień stronę domyślną lub zatrzymaj i całkowicie wyłącz serwer Tomcat. Jeśli ten serwer jest wymagany do zapewnienia niezbędnej funkcjonalności, domyślna strona powinna zostać zastąpiona odpowiednią treścią. W przeciwnym razie serwer ten powinien zostać usunięty z sieci, zgodnie z zasadą bezpieczeństwa minimalnej złożoności. |
Wykonaj następujące kroki, aby obejść ten problem:
- Zaloguj się jako użytkownik root do ACM
- Zmień katalog roboczy na
/usr/local/dataprotection/apache-tomcat-9.0.*/webapps/ROOT.
acm:~ # cd /usr/local/dataprotection/apache-tomcat-9.0.*/webapps/ROOT
W tym przykładzie ścieżka Apache Tomcat to
/usr/local/dataprotection/apache-tomcat-9.0.45/webapps/ROOT
Można to zmienić w zależności od wersji IDPA, nad którą pracujesz.
- Potwierdź , że
index.jspistnieje w katalogu:
acm:/usr/local/dataprotection/apache-tomcat-9.0.45/webapps/ROOT # ls -la total 188 drwxr-x--- 3 idpauser idpauser 4096 Nov 12 00:29 . drwxr-x--- 6 idpauser idpauser 4096 Dec 6 17:00 .. -rw-r----- 1 idpauser idpauser 12243 Feb 4 2022 1 -rw-r----- 1 idpauser idpauser 6898 Mar 30 2021 RELEASE-NOTES.txt drwxr-x--- 2 idpauser idpauser 4096 May 7 2021 WEB-INF -rw-r----- 1 idpauser idpauser 27235 Mar 30 2021 asf-logo-wide.svg -rw-r----- 1 idpauser idpauser 713 Mar 30 2021 bg-button.png -rw-r----- 1 idpauser idpauser 1918 Mar 30 2021 bg-middle.png -rw-r----- 1 idpauser idpauser 1401 Mar 30 2021 bg-nav.png -rw-r----- 1 idpauser idpauser 3103 Mar 30 2021 bg-upper.png -rw-r----- 1 idpauser idpauser 21630 Mar 30 2021 favicon.ico -rw-r----- 1 idpauser idpauser 12243 Feb 4 2022 index.jsp -rw-r----- 1 idpauser idpauser 5542 Mar 30 2021 tomcat.css -rw-r----- 1 idpauser idpauser 67795 Mar 30 2021 tomcat.svg acm:/usr/local/dataprotection/apache-tomcat-9.0.45/webapps/ROOT #
- Utwórz kopię zapasową istniejącego
index.jspkopiując go doindex.jsp.default:
acm:/usr/local/dataprotection/apache-tomcat-9.0.45/webapps/ROOT # cp -p index.jsp index.jsp.default
curl -kv https://localhost:8543. Te dane wyjściowe powinny być używane w kroku 8 do porównywania danych wyjściowych po obejściu.
- Utwórz nowy plik o nazwie
index.jspi zastąp jego treść następującym tekstem:
<html>
<body>
<%
response.sendRedirect("../dataprotection/");
%>
</body>
</html>
Oto prosta procedura tworzenia i edytowania pliku index.jsp pliku:
- Usuń istniejący
index.jsp
rm index.jsp
- Utwórz nowy
index.jspza pomocą edytora VI.
vi index.jsp
- Naciśnij
i, aby przejść do trybu wstawiania. Pozwala to na edycję do pliku. - Skopiuj powyższy tekst i wklej go do edytora vi.
- Wyjdź z trybu wstawiania, naciskając
Esc - Zapisz zmiany i wyjdź z vi, wpisując
:wq!i naciskając Enter.
- Sprawdź zawartość
index.jspza pomocą następujących poleceń:
acm:/usr/local/dataprotection/apache-tomcat-9.0.45/webapps/ROOT # ls -la
total 192
drwxr-x--- 3 idpauser idpauser 4096 Dec 6 17:05 .
drwxr-x--- 6 idpauser idpauser 4096 Dec 6 17:00 ..
-rw-r----- 1 idpauser idpauser 12243 Feb 4 2022 1
-rw-r----- 1 idpauser idpauser 6898 Mar 30 2021 RELEASE-NOTES.txt
drwxr-x--- 2 idpauser idpauser 4096 May 7 2021 WEB-INF
-rw-r----- 1 idpauser idpauser 27235 Mar 30 2021 asf-logo-wide.svg
-rw-r----- 1 idpauser idpauser 713 Mar 30 2021 bg-button.png
-rw-r----- 1 idpauser idpauser 1918 Mar 30 2021 bg-middle.png
-rw-r----- 1 idpauser idpauser 1401 Mar 30 2021 bg-nav.png
-rw-r----- 1 idpauser idpauser 3103 Mar 30 2021 bg-upper.png
-rw-r----- 1 idpauser idpauser 21630 Mar 30 2021 favicon.ico
-rw-r----- 1 idpauser idpauser 81 Feb 10 05:27 index.jsp
-rw-r----- 1 idpauser idpauser 12243 Feb 4 2022 index.jsp.default
-rw-r----- 1 idpauser idpauser 5542 Mar 30 2021 tomcat.css
-rw-r----- 1 idpauser idpauser 67795 Mar 30 2021 tomcat.svg
acm:/usr/local/dataprotection/apache-tomcat-9.0.45/webapps/ROOT # cat index.jsp
<html>
<body>
<%
response.sendRedirect("../dataprotection/");
%>
</body>
</html>
acm:/usr/local/dataprotection/apache-tomcat-9.0.45/webapps/ROOT #
- Otwórz przeglądarkę internetową i przejdź do strony internetowej ACM, a następnie sprawdź, czy działa poprawnie. Podczas otwierania strony internetowej ACM:
https://<ACM IP Adddress>:8543/
https://<ACM IP Adddress>:8543/dataprotection/#/login
- Sprawdź zmiany w wierszu polecenia ACM:
curl -kv https://localhost:8543 byłoby podobne do:
curl -kv https://<ACM IP address>:8543 zwraca ten sam wynik:
acm:/usr/local/dataprotection/apache-tomcat-9.0.45/webapps/ROOT # curl -kv https://localhost:8543 * Rebuilt URL to: https://localhost:8543/ * Trying 12x.0.0.1... * TCP_NODELAY set * Connected to localhost (12x.0.0.1) port 8543 (#0) * ALPN, offering h2 * ALPN, offering http/1.1 * Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH * TLSv1.2 (OUT), TLS header, Certificate Status (22): * TLSv1.2 (OUT), TLS handshake, Client hello (1): * TLSv1.2 (IN), TLS handshake, Server hello (2): * TLSv1.2 (IN), TLS handshake, Certificate (11): * TLSv1.2 (IN), TLS handshake, Server key exchange (12): * TLSv1.2 (IN), TLS handshake, Server finished (14): * TLSv1.2 (OUT), TLS handshake, Client key exchange (16): * TLSv1.2 (OUT), TLS change cipher, Client hello (1): * TLSv1.2 (OUT), TLS handshake, Finished (20): * TLSv1.2 (IN), TLS change cipher, Client hello (1): * TLSv1.2 (IN), TLS handshake, Finished (20): * SSL connection using TLSv1.2 / ECDHE-RSA-AES256-SHA384 * ALPN, server did not agree to a protocol * Server certificate: * subject: C=US; ST=California; L=Irvine; O=EMC; OU=Avamar; CN=localhost.localdom * start date: Feb 4 12:27:16 2022 GMT * expire date: Feb 2 12:27:16 2032 GMT * issuer: C=US; ST=California; L=Irvine; O=EMC; OU=Avamar; CN=localhost.localdom * SSL certificate verify result: self signed certificate (18), continuing anyway. > GET / HTTP/1.1 > Host: localhost:8543 > User-Agent: curl/7.60.0 > Accept: */* > < HTTP/1.1 200 < Content-Type: text/html;charset=UTF-8 < Transfer-Encoding: chunked < Date: Fri, 10 Feb 2023 05:39:29 GMT < Connection: close < Server: DataDomain < <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Apache Tomcat/9.0.45</title> <link href="favicon.ico" rel="icon" type="image/x-icon" /> <link href="tomcat.css" rel="stylesheet" type="text/css" /> <script>window.location = window.location.origin + "/dataprotection/"; </script></head> <body> <div id="wrapper"> <div id="navigation" class="curved container"> <span id="nav-home"><a href="https://tomcat.apache.org/">Home</a></span> <span id="nav-hosts"><a href="/docs/">Documentation</a></span> <span id="nav-config"><a href="/docs/config/">Configuration</a></span> <span id="nav-examples"><a href="/examples/">Examples</a></span> <span id="nav-wiki"><a href="https://wiki.apache.org/tomcat/FrontPage">Wiki</a></span> <span id="nav-lists"><a href="https://tomcat.apache.org/lists.html">Mailing Lists</a></span> <span id="nav-help"><a href="https://tomcat.apache.org/findhelp.html">Find Help</a></span> <br class="separator" /> </div> <div id="asf-box"> <h1>Apache Tomcat/9.0.45</h1> </div> <div id="upper" class="curved container"> <div id="congrats" class="curved container"> <h2>If you're seeing this, you've successfully installed Tomcat. Congratulations!</h2> </div> ... skipped </body> </html>
Po zaimplementowaniu obejścia dane wyjściowe powinny wyglądać następująco:
acm:/usr/local/dataprotection/apache-tomcat-9.0.45/webapps/ROOT # curl -kv https://localhost:8543 * Rebuilt URL to: https://localhost:8543/ * Trying 12x.0.0.1... * TCP_NODELAY set * Connected to localhost (12x.0.0.1) port 8543 (#0) * ALPN, offering h2 * ALPN, offering http/1.1 * Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH * TLSv1.2 (OUT), TLS header, Certificate Status (22): * TLSv1.2 (OUT), TLS handshake, Client hello (1): * TLSv1.2 (IN), TLS handshake, Server hello (2): * TLSv1.2 (IN), TLS handshake, Certificate (11): * TLSv1.2 (IN), TLS handshake, Server key exchange (12): * TLSv1.2 (IN), TLS handshake, Server finished (14): * TLSv1.2 (OUT), TLS handshake, Client key exchange (16): * TLSv1.2 (OUT), TLS change cipher, Client hello (1): * TLSv1.2 (OUT), TLS handshake, Finished (20): * TLSv1.2 (IN), TLS change cipher, Client hello (1): * TLSv1.2 (IN), TLS handshake, Finished (20): * SSL connection using TLSv1.2 / ECDHE-RSA-AES256-SHA384 * ALPN, server did not agree to a protocol * Server certificate: * subject: C=US; ST=California; L=Irvine; O=EMC; OU=Avamar; CN=localhost.localdom * start date: Feb 4 12:27:16 2022 GMT * expire date: Feb 2 12:27:16 2032 GMT * issuer: C=US; ST=California; L=Irvine; O=EMC; OU=Avamar; CN=localhost.localdom * SSL certificate verify result: self signed certificate (18), continuing anyway. > GET / HTTP/1.1 > Host: localhost:8543 > User-Agent: curl/7.60.0 > Accept: */* > < HTTP/1.1 302 < Set-Cookie: JSESSIONID=3396A12A1A458BBB4DDCB636A72B66EE; Path=/; Secure; HttpOnly < Location: ../dataprotection/ < Content-Type: text/html;charset=ISO-8859-1 < Content-Length: 0 < Date: Fri, 10 Feb 2023 05:42:58 GMT < Connection: close < Server: DataDomain < * Closing connection 0 * TLSv1.2 (OUT), TLS alert, Client hello (1):
Additional Information
Jeśli strona internetowa ACM pokazuje "HTTP Status 500 - Internal Server Error" po wykonaniu powyższej procedury, na przykład:

Zaloguj się do ACM przy użyciu SSH jako użytkownika głównego, a następnie uruchom ponownie usługę ACM za pomocą następujących poleceń:
service dataprotection_webapp stop service dataprotection_webapp start
Następnie ponownie załaduj stronę internetową ACM.
W razie potrzeby skontaktuj się z pomocą techniczną firmy Dell , aby uzyskać dalszą pomoc.