关联漏洞
标题:
D-Link DNS-320 命令注入漏洞
(CVE-2024-3273)
描述:D-Link DNS-320是中国友讯(D-Link)公司的一款NAS(网络附属存储)设备。 D-Link DNS-320L存在命令注入漏洞,该漏洞源于文件/cgi-bin/nas_sharing.cgi存在命令注入漏洞。受影响的产品和版本:D-Link DNS-320L,DNS-325,DNS-327,DNS-340L,D-Link NAS Storage。
介绍
# 🛠️ 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,
}
```
文件快照
[4.0K] /data/pocs/299150f9b41e62bb3c80ba837d220f84f57504d6
├── [201K] CVE_2024_3273.pdf
└── [5.9K] README.md
0 directories, 2 files
备注
1. 建议优先通过来源进行访问。
2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。