Tag Archives: 网络安全

http与https相互请求问题

指鹤前两天遇到一个问题,http与https下相互请求的问题(http页面下请求https资源,https页面下请求http资源)。经过查询发现,http页面请求https不会出现问题,但是https页面请求http资源会弹出提示,甚至是挂掉,至于如何解决呢?有人提出了用iframe,或者是一个站点准备两个资源(支持http和https),然后采用相对路径,如://www.example.com/scirpt.js。 参考文章 最后附上一篇来自百度经验的http与https讲解的文章。 在URL前加https://前缀表明是用SSL加密的。你的电脑与服务器之间收发的信息传输将更加安全。 Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。 http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议要比http协议安全 HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议 它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版。它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的安全全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。 HTTPS和HTTP的区别: https协议需要到ca申请证书,一般免费证书很少,需要交费。http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议 http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。http的连接很简单,是无状态的。HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全 HTTPS解决的问题: 1 . 信任主机的问题.采用https 的server 必须从CA 申请一个用于证明服务器用途类型的证书。该证书只有用于对应的server 的时候,客户度才信任此主机。目前所有的银行系统网站,关键部分应用都是https 的。客户通过信任该证书,从而信任了该主机。 2 . 通讯过程中的数据的泄密和被窜改 1. 一般意义上的https, 就是 server 有一个证书. a) 主要目的是保证server 就是他声称的server. 这个跟第一点一样. b) 服务端和客户端之间的所有通讯,都是加密的. i. 具体讲,是客户端产生一个对称的密钥,通过server 的证书来交换密钥. 一般意义上的握手过程. ii. 加下来所有的信息往来就都是加密的. 第三方即使截获,也没有任何意义.因为他没有密钥. 当然窜改也就没有什么意义了. 2. 少许对客户端有要求的情况下,会要求客户端也必须有一个证书. a) 这里客户端证书,其实就类似表示个人信息的时候,除了用户名/密码, 还有一个CA 认证过的身份. 应为个人证书一般来说上别人无法模拟的,所有这样能够更深的确认自己的身份. b) 目前少数个人银行的专业版是这种做法,具体证书可能是拿U盘作为一个备份的载体. HTTPS 一定是繁琐的. a) 本来简单的http协议,一个get一个response. 由于https 要还密钥和确认加密算法的需要.单握手就需要6/7 个往返. i. 任何应用中,过多的round trip 肯定影响性能. b) 接下来才是具体的http协议,每一次响应或者请求, 都要求客户端和服务端对会话的内容做加密/解密. i. 尽管对称加密/解密效率比较高,可是仍然要消耗过多的CPU,为此有专门的SSL 芯片. 如果CPU 信能比较低的话,肯定会降低性能,从而不能serve 更多的请求. ii. 加密后数据量的影响. 所以,才会出现那么多的安全认证提示 原文点击这里

恶意软件利用修改host来钓鱼

这件事要从几天前说起,一个朋友发了一个段子,大意是”老婆是一个淘宝控,每个月都会花几千块到淘宝上,可是两人身上还背着房贷,老婆在淘宝上这样的消费着实让他受不了,于是,他将老婆电脑的host修改了,然后做了一个404页面,从此,老婆一访问淘宝就是404……“ 当然,段子毕竟是段子……,但这件事让我思考了,据我说知,客户端程序、甚至连chrome插件都可以修改host文件……于是,我就写了一个简单的C#程序验证…… 没装任何杀毒与安全软件时运行exe文件,查看host文件,预想的域名与IP正确插入,打开网址,按照预期跳转。 装上360杀毒,运行软件,没有报毒(这里可能是由于我本地开发的软件造成的,若是从他出下载的,360杀毒报毒率相当高,很多破译软件他都会报,而且最让人不能忍的是有些时候他还直接删……,这里鄙视一下,不能给人一个选择的机会吗?”),正常运行后,结果与预想的一样,打开网址,按照预期跳转。 装上360安全卫士,运行软件,这次会有提示,提示软件在修改host的文件,host文件被修改后可能存在的风险,这里赞一个,虽然经常喷360的绑架行为,但看来360能够活的这么好,确确实实有一定的道理…… chrome插件修改host方法本人没有验证……感兴趣的可以自己试一下,浏览器在这方面有没有做一些安全限制…… 对于host被修改后可能造成的影响: 我可以做一个页面完全一样的站点,骗取用户的帐号和密码,一些涉及到交易的,还可以获得你的支付宝、银行卡等重要信息…… 至于如何防止这种行为,一来尽量装一些安全软件,网上的软件安装时要慎重一些……

黑客如何入侵你的路由器?

一段时间以前一位从事信息安全的朋友请我做一件奇怪的事情。让我黑掉他的路由器。我们可以叫他bill,出于保护隐私的原因,其它的名字和地点都会有所改变。但是供应商的名字会被保留。 入侵一个大公司很容易(也许吧)。他们的信息资源可能分布在全球各地,尽管他们会投资各种各样的防护技术,但这也仅仅是让我们很难追踪他们所有的东西而已。他们得日复一日的为所有资产严格地执行扫描-修补-重启流程,不容有失。 但是入侵个人则很困难。的确,黑帽技术在非对称的信息安全性方面有它的优势。有时只需要一个bug(就可以成功黑掉大公司)。但是与大公司相比,个体目标暴露的攻击区域是非常的小的。此外,很多人都相信大型供应商提供的信息,以及云供应商通常会做保护人们免受攻击这样高尚的事情。 我从最基本的侦察开始。我喜欢使用Maltego,再附加上像checkusernames.com、knowem.com、piple search这样的网站,以及其他工具来计算在线状态。同样还有一些比较经典的网站如Google+,Facebook以及Linkedin。我们可以使用Facebook上的一些假资料来做这样的工作。你需要为你的目标准备好的诱饵信息,这样可以通过社交引擎提取额外的信息。 而在线状态方面,密码重置问题是非常好的“低垂的果实(唾手可得的东西)”。我见过有些web邮箱账户询问的信息是可以直接从目标的Facebook资料里面找到的。我确信大多数人甚至都不会意识到这一点,他们可能在五年前写的这些重置问题(而现在早忘了)。然而现在这些东西在这里都不管用了。要知道我的目标是个搞信息安全的书呆子,而他正期待着我。 是时候跟他决斗了。首先,我检查了他是否有在他的家庭网络连接上托管任何东西。他可能以前做过但没有注意。很多的应用和设备使用UPnP在消费级的防火墙上面打孔。有时候我们只需要一个NAS或媒体服务器来开启一个后门即可。为了找到他的家庭IP地址,我使用了一个Skype解析器,比如resolvme.org。它非常棒。我扫描了他的ip地址(以及一些邻居的ip)来看是否可以找到一些服务。虽然没有骰子…但我确信他认为我会这样做。 好吧,接下来,821.11。无线网络是一个非常棒的攻击媒介。我有两块Radeon 6990′s的显卡在i7平台上,通过WPA哈希值咬合在一起。我使用一个马尔科夫预测字表生成器来为oclHashcat提供预测值。它在8小时内能达到80%的平均破解率。 所以我从bill的地址着手(用各种Alfa wifi卡)。实际上我也是知道Bill的地址的,可能我之前已经通过侦察或社交引擎得到了这些信息。这可不是什么秘密。在我成功的捕捉到一个WPA握手之后,我运行了一周的破解器,还是不行。也许对大多数人来说这是有用的,但Bill是个从事信息安全的家伙。他的WPA的key很可能大于32个字符长度。 此时你可能会想为什么我没有利用java 0-day漏洞对他鱼叉式钓鱼然后享受我的胜利啤酒。答案很简单——我知道我的目标。他精于扫描-修复-重复的咒语。我要手上真有一个浏览器0-day漏洞,上周就赢了。 在我参观了Bill的地盘后,带了一点有用的信息离开了。他的无线路由器的MAC地址(BSSID):06:A1:51:E3:15:E3。由于我有OUI(MAC的前3个字节),我知道这是Netgear的路由器。我当然也知道Netgear的路由器有一些问题,但Bill运行的是最新的固件。可这并不意味着所有的漏洞都在这个固件中被修复了。想要确定唯一的办法就是自己买一个Netgear路由器并亲自测试它。 要获取准确的型号也许不可能(反正从远程是不行)。消费者设备可能在不同型号间有许多变体,因为参考平台来自于Soc供应商,比如Broadcom和Atheros。我知道Bill有点简朴,所以我选了WNDR3400v3——入门级的产品。 在了解了一些该设备的一些弱点后,我做了两个Metasploit模块。在第一个模块,我用一个CSRF漏洞发送post请求到UPnP接口并打了个孔来访问路由器自身的远程连接服务。这个问题在很多其他设备上都存在,而且非常值得重视。 如果你能通过CSRF欺骗UPnP请求,你可以将整个网络闹的天翻地覆。 这是非常关键的一点。我开启了一个单独的端口。你可以从受害者的浏览器上使用Ajax请求为每一个子网中的IP配置NAT入口,从而有效的禁用防火墙。当然对于UPnP的NAT入口数量有很多硬限制,但是大多数设备都会允许有足够的入口来为100台左右的主机映射一些关键端口。 为了引诱Bill走到我设的陷阱上,我给他发送了一封内置链接的邮件。Cobalt Strike有个工具可以拷贝一封已存在的邮件(标题和所有),所以就很简单了。我需要做的仅仅是修改这个链接。那么什么邮件是每个人都会点的呢?哪怕是个从事信息安全的家伙?——邀请。 编辑:有些读者可能会怀疑为什么Bill会喜欢这个。哪怕简单的检查下发件人域或是链接都会发现有问题。一个好的借口是成功的关键所在。至于借口的背景,我们看这篇文章。在这种情况下,邀请似乎从那个下午他与某个人的会议就发出了。好吧,是还有很多非正式的工作面谈,我想这是个确认偏差——他愿意相信自己得到了这个工作。 在我发送这封邮件之前,我需要一个跟踪负载。默认情况下telnet端口在Netgear路由器上是开启的,但是服务没有响应。你必须连接到端口并发送一个特殊的解锁码。事实上存在对这个漏洞的公开利用,但我还是写了另一个MSF模块,因为我喜欢我的Ruby(以及Metasploit)。 Bill点击了这个链接。在我看到回调时,我触发了第二个模块然后通过telnet登陆到了路由器。在我获得路由器的root访问权限后,我立即更改了DNS设置让其指向一个由我控制的DNS服务器。 控制DNS是一件非常过瘾的事情,它有效的为你提供所需要的中间人攻击。有很多的MITM攻击载体,但我还是喜欢Evilgrade——因为其隐秘性。Evilgrade已经问世很多年了,但仍然很棒(有一些必要的修改)。在Bill决定升级notepad++到新版本之前我等了大概一周的时间。当他做时,他送了一个有后门的版本,这也在他的电脑上给我提供了一个Meterpreter shell。我立即发了封带有截图和击键记录的邮件,几分钟后他拔去了电脑的插头。 最后,我得到了6瓶装的Ruby啤酒的奖励。我爱我的Ruby!