# đ ïž D-Link VĂ”rgumĂ€lu Seadmete KĂ€susĂŒst
## đ Taust
*D-Link Network Attached Storage* (NAS) ehk **vĂ”rgumĂ€lu** seade on arvutivĂ”rku ĂŒhendatav kĂ”vakettaga (vĂ”i -ketastega) seade failide talletuseks ja ĂŒhiskasutuseks. Erinevalt tavalisest vĂ€lisest kĂ”vakettast, mis on liidestatud otse arvutiga, ĂŒhendub vĂ”rgumĂ€lu seade kohtvĂ”rguga, vĂ”imaldades mitmel kasutajal vĂ”i seadmel ĂŒheaegselt faile kasutada ja jagada. VĂ”rgumĂ€lu seadmed on kasutusel nii kodu- kui ka Ă€rilahendustes.
Turvauuringuid koostav ettevĂ”te *VulDB Coordination* avastas osadel D-Link vĂ”rgumĂ€lu seadmetel kriitilise turvanĂ”rkuse (CVE-2024-3273), mis vĂ”imaldab pahatahtlikel kasutajatel teha ĂŒle vĂ”rgu kĂ€susĂŒste, kĂ€ivitades pahatahtlikke programmikĂ€ske ohvri seadmes.
## âïž Turvaauk
### Eeltingimused
KÀesolev turvanÔrkus puudutab vaid teatud D-Link seadmeid, mille eluiga on juba lÀbi ning tootja on nende seadmete tarkvaralise ja riistvaralise toetamise lÔpetanud. MÔjutatud on jÀrgmised mudelid:
- **DNS-320L** Version 1.11, Version 1.03.0904.2013, Version 1.01.0702.2013
- **DNS-325** Version 1.01
- **DNS-327L** Version 1.09, Version 1.00.0409.2013
- **DNS-340L** Version 1.08
Antud turvanĂ”rkus eeldab ka ĂŒhe teise nĂ”rkuse samaaegset Ă€rakasutamist. Nimelt muudab vĂ”rgumĂ€lu seadme eriti haavatavaks pĂŒsiprogrmmeeritud sisselogimissuvandite pĂ”hjustatud tagauks. Selleks tagaukseks on turvanĂ”rkus (CVE-2024-3272), kus kasutajal on vĂ”imalik autentimisest mööda pÀÀseda kasutades vaikimisi kĂ”igis mĂ”jutatud seadmetes olevat *"sĂŒsteemikasutajat"* messagebus.
Selle Linux sĂŒsteemides vaikimisi oleva sĂŒsteemi deemon (*system daemon*) kasutajaga ei saa kĂŒll otseselt sĂŒsteemi sisse logida, kuid piisab osavalt meisterdatud HTTP pĂ€ringust kindlasse otspunkti, et juba kahju teha.
Vaja on teada ka rĂŒnnatava seadme `ip addressi`.
### Turvaaugu avaldumine
TurvanĂ”rkus peitub vĂ”rgumĂ€lu seadme `/cgi-bin/nas_sharing.cgi` failis HTTP GET pĂ€ringu töötlemisfunktsioonis. Pahatahtlikul kasutajal on vĂ”imalik saata GET pĂ€ring ĂŒle vĂ”rgu ohvri seadmesse andes parameetritena kaasa kasutajanimi `"messagebus"` ja `parool jĂ€tta tĂŒhjaks`. KĂ€susĂŒst tuleb siin mĂ€ngu `system` parameetrit kasutades, mÀÀrates parameetri vÀÀrtuseks soovitud programmikĂ€su.
KĂ€sk peidetakse **base64** kodeeringuga ning lisatakse **system** parameetri vÀÀrtuseks. Hiljem dekodeerides avaldub pahatahtlik kĂ€sujupp mis kĂ€ivitub *shell* kĂ€suna rĂŒnnatavas seadmes.
đïž [CVSS](https://nvd.nist.gov/vuln/detail/CVE-2024-3273) Baasskoor: `7.3 KĂ”rge`
- AV: N - NĂ”rkus on Ă€ra kasutatav ĂŒle vĂ”rgu.
- AC: L - RĂŒnnaku keerukus on madal, kuna rĂŒnnakuks vajalikud vahendid on lihtsasti kĂ€ttesaadavad.
- PR: N - RĂŒnnakuks ei ole vaja eraldi privileege.
- UI: N - Kasutaja interaktsioon ei ole vajalik.
- S: U - Puudutab vaid kindlaid mudeleid ja ei laiene ĂŒle teistele seadmetele.
- C: L - Konfidentsiaalsuse mĂ”ju on madal, kuna rĂŒnnak ei paljasta olulist konfidentsiaalset teavet.
- I: L - Terviklikkuse mĂ”ju on madal, kuna rĂŒnnak ei muuda oluliselt sĂŒsteemi andmeid ega konfiguratsiooni.
- A: L - kĂ€ideldavuse mĂ”ju on madal, kuna rĂŒnnak ei pĂ”hjusta teenuste katkemist.
### Turvaaugu pÔhjused
TurvanĂ”rkuse CVE-2024-3273 pĂ”hjuseks on `CWE-77` ehk kĂ€susĂŒst. See tĂ€hendab, et rĂŒndaja saab sisestada pahatahtlikke kĂ€ske, mida rĂŒnnatav sĂŒsteem seejĂ€rel tĂ€idab, kuna sisestatud kĂ€sku ei valideerita.
Kuna seadmete lĂ€htekood pole avalik siis arvatavasti tuleks selle probleemi vĂ€ltimiseks lisada pĂ€ringutega tegelevasse meetodisse valideerimisfunktsioon. NĂ€iteks vĂ”iks olla list lubatud sĂŒsteemi kĂ€skudest, et vĂ€ltida suvalise kĂ€su jooksutamist.
## đĄïž MĂ”ju ja turvaaugu kĂ”rvaldamine
### MÔju varadele
TurvanÔrkus rikub peamiselt jÀrgmisi turvaeesmÀrke:
- **Konfidentsiaalsus**: RĂŒndaja vĂ”ib saada juurdepÀÀsu konfidentsiaalsetele andmetele, nt isiklikud andmed vĂ”i Ă€risaladused
- **Privaatsus**: Saades ligipÀÀsu konfidentsiaalsetele andmetele vÔib see rikkuda kasutaja privaatsust.
- **Terviklus**: RĂŒndajal on vĂ”imalik muuta andmeid ja sĂŒsteemi seadeid
- **UsaldusvÀÀrsus**: Haavatavate D-Link seadmete kasutajad vÔivad kaotada usalduse tootja vastu.
### Turvaaugu parandamine
Antud turvanÔrkus puudutab vaid seadmeid, mille eluiga on juba lÀbi, seega soovitab tootja seadmed asendada ning haavatavaid seadmeid mitte kasutada.
Kuna neid seadmeid enam ei toetata, siis ei saa need enam ka tarkvaralisi turvauuendusi, mis tÀhendab et turvaauku Àra `ei parandata`. Seega ainuke lahendus on turvaauguga toodete kasutamine lÔpetada.
### Turvaaaugu mÔju leevendamine
Kui haavatava seadme asendamine pole vĂ”imalik, tuleks seade kindlasti eemaldada avalikust vĂ”rgust ning ÀÀrmisel juhul olla kasutuses vaid lokaalses kohtvĂ”rgus olevatele seadmetele (tuleks paigaldada tulemĂŒĂŒr vĂ€liste pĂ€ringute blokkeerimiseks).
### Turvaaugu tegelik Àrakasutatavus
Esialgse raporti kohaselt oli turvaaugu avastamise hetkel vĂ”rgus ĂŒle `92 000 seadme`. Hilisema uuringu kohaselt vĂ”is see number olla aga oluliselt vĂ€iksem, jÀÀdes 5500 seadme kanti. Sellest hoolimata on tĂ€na veel tĂ”enĂ€oliselt paljud vanad seadmed veel endiselt vĂ”rku ĂŒhendatud ja seelĂ€bi haavatavad.
Avaldatud on mitmeid rĂŒnnaku kontseptsiooni tĂ”endusi (*PoC*) ning tĂ”enĂ€oliselt kasutatakse turvaauku endiselt laialdaselt Ă€ra. Praeguseks hetkeks on avastatud vĂ€hemalt `146 juhtumit`, kus on proovitud Ă€ra kasutada CVE-2024-3273 turvanĂ”rkust.
## đ§ NĂ€idiskood
Jupp nÀidiskoodist:
```python
def execute_command(ip, command: str = "id", verbose: bool = True) -> str:
command_hex = ''.join(f'\\\\x{ord(c):02x}' for c in command)
command_final = f"echo -e {command_hex}|sh".replace(' ', '\t')
base64_cmd: str = base64.b64encode(command_final.encode()).decode()
url: str = f"{ip}/cgi-bin/nas_sharing.cgi"
params: dict = {
"user": "messagebus",
"passwd": "",
"cmd": "15",
"system": base64_cmd,
}
```
Log in to view the POC file snapshot cached by Shenlong Bot
Log in to view