“冰蝎”是什么?它是一款动态二进制加密网站管理客户端,它可以在HTTP明文协议中建立加密隧道,可以用于躲避传统的WAF、IDS等设备的检测。项目地址:
https://github.com/rebeyond/Behinder
“冰蝎”一句话木马可由Java、php、.net等语言来实现,我们以php为例来看这种新型的php一句话木马的实现:
离线导出Chrome浏览器中保存的密码
DPAPI,Data Protection Application Programming Interface,是Windows系统的一个数据保护接口,主要用于保护加密的数据。Chrome使用DPAPI保存了我们的登录密码和cookie值
用户使用Chrome访问网站进行登录时,可以选择是否保存密码。当选择保存密码时,Chrome先将密码进行加密,再保存在SQLite数据库文件中,数据库文件路径位于:
%LocalAppData%\Google\Chrome\User Data\Default\Login Data
同上,保存Cookie时,数据库文件路径为:
%LocalAppData%\Google\Chrome\User Data\Default\Cookies
存储的cookie值被加密为DPAPI blob来进行保护;我们可以通过使用Mimikatz这个工具来对Chrome中的SQLite数据库进行解析:
mimikatz dpapi::chrome /in:'%LocalAppData%\Google\Chrome\User Data\Default\Cookies'
解密DPAPI blob用到的相关概念:
DPAPI blob:一段密文,可以使用Master Key对其解密
Master Key:64字节,用于解密DPAPI blob;使用用户登录密码、SID和16字节随机数加密后保存在Master Key file中
Master Key file:二进制文件,可以使用用户登录密码对其解密,得到Master Key
得到DPAPI blob、Master Key file和用户登录密码后,便可通过Windows Password Recovery这个工具解密Master Key file得到Master Key,再通过Master Key解密DPAPI blob,从而获得明文。详细DPAPI的介绍可参考文末文章。
3CTF复赛“这是捕获的黑客攻击数据包”流量分析用Wireshark打开后,首先看其http流量,发现主要对upload.php
、upload/20190918/file_5d81f9f4d22d41.67475082.php
这两个php页面进行了请求:
右键,追踪upload.php
的tcp流,发现其向upload.php
上传了一个shell.php
文件,内容为上面的“冰蝎”一句话木马:
上传后,服务器端返回了上传成功后的文件路径:
接着,追踪upload/20190918/file_5d81f9f4d22d41.67475082.php
的tcp流:
可以看到,其分别用?pass=257
和?pass=790
进行了请求,服务端返回了生成的秘钥和session名称;其对应信息:
参数 Cookie 秘钥
pass=257 PHPSESSID=3ctuh22vtilpn6dmhfiretvve8 23125af46e7c5a1f
pass=790 PHPSESSID=hie9ignjc1393vr719m0n38872 d59042be6e437849
在当前页面搜索pass=257
请求时返回的session名称,发现只有生成返回时出现了一次,其他的请求使用的都是pass=790
请求时返回的session名称,那么可以知道其他请求所带的加密信息的解密秘钥为d59042be6e437849
:
之后,将这些请求信息解密,步骤:
在Wireshark选择 文件
->导出对象
->http
:
得到文件如下:
其中,file_5d81f9f4d22d41.67475082(*).php
内容均为客户端发送的加密的字符串。写脚本批量解密:
得到的php代码都很类似,目的都是获取目标主机上的特定文件内容:
最后一行,路径格式为Master Key file的格式:
C:/Users/shadow/AppData/Roaming/Microsoft/Protect/S-1-5-21-2127750816-4215895028-2373289296-1001/6ecf76bd-1803-437e-92e6-28dd36c907aa
找到其解密前的内容,搜索含有此内容的数据包,查看对应的服务端返回的内容:
可以看到里面含有Master Key file的名字,先将其保存下来
继续看解密得到的内容,在Master Key file上面发现有个文件名为password.txt
:
找到其加密字符串的位置(最后一次对话),解密其对应的服务端返回的字符串:
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?


微信扫码登录