PfSense命令注入漏洞分析
🚀 下面展示的是脚本🎉
💰 💰 💰 💰 💰 💰 💰 💰
我们已经在用户提供的
💎 💎 💎 💎 💎 💎
diag_dns.php中存在命令注入漏洞的代码片。我们可以看到,这段代码首先检查POST参数host是否存在,如果存在的话,就将变量$GET的值赋给变量$POST。然后,代码继续检查GET参数createalias的值是否等于true,如果是的话,则把POST参数host的值的首尾空白符去掉:trim()函数的作用就是去掉字符串首尾处的空白符,但是字符串中间部分的空白符则保持不变。之后,还有一些其他语句,不过它们并不是我们这里关注的重点,我们关心的是如何插入在反引号中运行的命令。我们已经在用户提供的
POST参数host放入了一个特殊字符;,这个字符的作用是分隔多个顺序执行的命令。需要注意的是这种情况下,只有当第一条命令返回``(成功返回)的时候,第二条命令才会被执行;因此,只有确保前面的命令全部成功,后面的命令才能得以执行。下面给出一些可以放在反引号中执行的命令:# dig "192.168.1.1";
# ifconfig>/usr/local/www/temp.txt;
# echo+"" A | grep "192.168.1.1";
# ifconfig>/usr/local/www/temp.txt;
# echo+"" | grep -v ";" | awk '{ print $5 }'
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
我们可以在这个命令的尾部添加字符;,以便插入其他在
rm命令运行结束以后需要执行的命令。需要说明的是,如果我们使用了命令分隔符;的话,那么只有当rm命令已经成功执行完成之后,后插入的命令才会被执行。如果我们并不关心rm命令的执行结果的话,我们可以使用&&来分隔命令。需要说明的是,我们无法向任意目录中echo文本,因为这里不允许使用正斜杠。为了克服这个问题,我们可以先通过cd命令进入预定目录,然后通过命令管道实现文本传输的目的。首先,我们必须搞清楚被执行代码的当前目录,这里为/var/db/rrd/directory。下面的请求展示了我们是如何执行queues;echo+"CMD+INJECT">cmd.txt命令的。# /usr/bin/sed -i old 's/^DEVICESCAN.*/DEVICESCAN -H -m ejan/'+/usr/local/etc/lynx.cfg;
# echo+"Command+Injection">/usr/local/www/cmd.txt;
# echo+' /' /usr/local/etc/smartd.conf;
从django的SECRET_KEY到代码执行
💎 最近审查代码发现某些产品在登录的💎
🤘 🤘 🤘 🤘 🤘
🤘 在
2.3 session处理流程
可以简单的分为两部分,🪩
JS代码中泄露了SECRET_KEY,将该值作为密码加密的盐,这样就暴露了加密salt不太好吧更重要的是对django的安全造成了极大的威胁。django1.6以下,session默认是采用pickle执行序列号操作,在1.6及以上版本默认采用json序列化。代码执行只存在于使用pickle序列话的操作中。2.3 session处理流程
可以简单的分为两部分,
process_request和process_response,前者负责选择session引擎,初始化cookie数据。见代码class SessionMiddleware(object):
def process_request(self, request):
engine = import_module(settings.SESSION_ENGINE)
session_key = request.COOKIES.get(settings.SESSION_COOKIE_NAME, None)
request.session = engine.SessionStore(session_key)
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
i_82发现,他是一名来自扬州大学的学生、WeipTech成员。WeipTech是一个非职业技术团体,由WeiPhone(中国最大的Apple粉丝网站)的用户组成。之前WeipTech与我们合作,披露了iOS和OS X上的恶意软件AppBuyer、WireLurker。从2015-07-01开始,
WeipTech 开始调查一些用户Apple账户在未经授权的情况下,购买和安装了iOS app。再对用户安装的越狱应用进行调查后,他们发现了一款越狱应用收集用户信息,并上传到一个未知的网站。他们发现这个网站存在SQL注入,能够查看到所有的数据记录。Figure 1是”top 100”数据库的截图通过逆向恶意应用,
WeipTech 发现了一段代码,这段代码中使用静态key为“mischa07”的AES加密算法对数据进行加密。利用静态key,我们能够解密用户名和密码。经过登陆验证,他们确信记录中的信息都是有效的Apple账户。在网站管理员发现、关闭服务之前,WeipTech调查人员下载了大约一半的数据库记录。8月25日,
WeipTech在微博发布漏洞预警,将漏洞提交到WooYun(乌云漏洞报告平台),并后续转交第三方合作机构CNCERT/CC(国家互联网应急响应中心)处理。Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
这里将java反序列化漏洞的payload封装了下,PayloadGeneration.generateExecPayload("calc");会产生一个执行calc命令的对象,有兴趣的可以在我的github上查看源码。然后,将我们的payload发送到RMI服务端口进行攻击。
registry.bind("pwned", r);中r对象必须继承Remote接口。所以这里使用了java动态代理技术来代理Remote接口并生成其对象r。然后使用bind函数将攻击payload发送到RMI服务中,远程执行calc命令,攻击完成。
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
同时木马还注册了拦截短信的服务,该服务会拦截短信内容,判断短信发送方的号码是否是以10开头的,如果是,则屏蔽掉该短信,导致中毒手机开通的扣费服务运营商发送的短信回执无法接收到,用户被木马默默开通了扣费服务。
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Skeleton Key被安装在64位的域控服务器上
支持Windows Server2003—Windows Server2012 R2
能够让所有域用户使用同一个万能密码进行登录
现有的所有域用户使用原密码仍能继续登录
重启后失效
🍓 Mimikatz(Version 2.0 alpha,20150107)支持 Skeleton Key
微软在2014年3月12日添加了LSA保护策略,用来防止对进程lsass.exe的代码注入,这样一来就无法使用mimikatz对lsass.exe进行注入,相关操作也会失败。
这次不仅测试了Skeleton Key,还介绍了mimikatz的一些隐藏功能,而这些功能并未在其官方说明文档中出现。🥳 🥳 其实通过研究mimikatz的源码,你会发现还有许多的隐藏功能值得挖掘利用。🥳
还是那句老话,只有了解如何攻击才能更好的防御,希望本文无论是对渗透攻击还是防御,均有帮助。
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
函数
remap_pfn_range()并不会检查传入的参数,它会完全按照需求的内存起始位置,所需长度,访问权限,去映射页面进用户态。所有这些检查都需要自定义的驱动中实现的mmap函数去完成。Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
kernel与用户态进程拥有不同的逻辑地址空间,kernel所在的页面拥有更高的权限,用户权限是不可以随意更改的,否则岂不是可以改掉自己的权限,为所欲为。
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM