黑客攻防从入门到精通(Web技术实战篇)
上QQ阅读APP看书,第一时间看更新

3.2 让用户自动上钩的Web攻击——欺骗攻击

用户可以通过IE等浏览器访问各种各样的Web站点,一般的用户不会意识到有下面这些问题存在:正在访问的网页已经被黑客篡改过,网页上的信息是虚假的等。例如,黑客将用户要浏览的网页的URL改写为指向黑客自己的服务器,当用户浏览目标网页时,实际上是向黑客服务器发出请求,这样黑客就可以实现欺骗的目的。这样大大节省了入侵者的时间和成本,因此称为让用户“自动上钩”的Web攻击。

3.2.1 常见的欺骗攻击解析

网络欺骗的主要方式有ARP欺骗、IP欺骗、DNS欺骗、Web欺骗以及电子邮件欺骗等,下面将揭露这几种欺骗的攻击原理。

1.ARP欺骗

ARP(Address Resolution Protocol,地址解析协议)的作用是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信能够顺利进行。在局域网中,网络中实际传输的是“帧”,而帧里面是有目标主机的MAC地址的。所以一个主机和另一个主机要进行直接通信,必须通过地址解析协议获得目标主机的MAC地址。而“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP欺骗是黑客常用的攻击方式之一,它分为对路由器ARP表的欺骗和对内网的网关欺骗两种方式。

(1)对路由器ARP表的欺骗:其本质是截获网关数据。它通知路由器一系列错误的内网MAC地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,造成正常计算机无法收到信息。

(2)对内网的网关欺骗:其本质是伪造网关。它是通过建立假网关,让被它欺骗的计算机向假网关发送数据,而不是通过正常的路由器途径上网。

一般来说,ARP欺骗攻击带来的后果非常严重,只需成功感染一台计算机,就可能导致整个局域网都无法上网,严重的甚至可能造成整个网络的瘫痪。

ARP工作原理如图3-15所示。

图3-15 ARP工作原理

2.IP欺骗

IP欺骗技术就是通过伪造某台主机的IP地址骗取特权从而进行攻击的技术。许多应用程序认为如果数据包能够使其自身沿着路由到达目的地,而且应答包也可以回到源地,那么源IP地址一定是有效的,而这正是使源IP地址欺骗攻击成为可能的前提。

IP欺骗的实现过程如下。

(1)选定目标计算机,且其信任模式已被发现,并找到一个被目标主机信任的主机。

(2)一旦发现被信任的主机,为了实现伪装,则往往使其丧失工作能力。由于黑客将要代替真正的被信任主机,所以必须确保真正被信任的主机不能接收到任何有效的网络数据,否则将会被揭穿。

(3)使得被信任的主机丧失工作能力后,伪装成被信任的主机,同时建立起与目标主机基于地址验证的应用连接。如果成功,黑客可以使用一种简单的命令来放置系统后门,以进行非授权操作。

这就是IP欺骗攻击的全过程,如图3-16所示。该过程看起来很完美简单,但实际上还需要做很多工作。虽然可以通过编程的方法来改变发出的数据包的IP地址,但TCP协议对IP进行进一步的封装,是不会让黑客轻易得逞的。

图3-16 IP欺骗攻击原理过程

由于TCP是面向连接的协议,所以在双方正式传输数据之前,需要使用三次握手来建立一个稳定的连接。

假设主机A和主机B进行通信,主机B先发送带有SYN标志的数据段通知主机A建立TCP连接,TCP的可靠性就是由数据包中的多位控制字来提供的,其中最重要的是数据序列SYN和数据确认标志ACK,且将TCP报头中的SYN设为自己本次连接中的初始值(ISN)。当主机A收到主机B的SYN包之后,会发送给主机B一个带有SYN+ACK标志的数据段,告之自己的ISN并确认主机A发送来的第一个数据段,将ACK设置成主机B的SYN+1。当主机B确认收到主机A的SYN+ACK数据包后,将ACK设置成主机A的SYN+1。主机A收到主机B的ACK后,连接成功建立,双方可以正式传输数据了。假如黑客想冒充主机B对主机A进行攻击,就要先使用主机B的IP地址发送SYN标志给主机A,但当主机A收到后,并不会把SYN+ACK发送到黑客的主机上,而是发送到真正的主机B上去,这时IP欺骗就失败了,因为主机B根本没发送SYN请求。所以如果要冒充主机B,首先要让主机B失去工作能力。

此时最难的是对主机A进行攻击,必须知道主机A使用的ISN。TCP使用的ISN是一个32位的计数器,从0~4294 967295。TCP为每一个连接选择一个初始序列号ISN,为了防止因为延迟、重传等扰乱三次握手,ISN不能随便选取,不同的系统有着不同的算法。

所以要对目标主机进行攻击,还必须知道目标主机使用的数据包序列号。黑客首先与被攻击主机的一个端口(如SMTP对应的端口)建立起正常的连接。通常,这个过程被重复若干次,并将目标主机最后所发送的ISN存储起来。黑客还需要猜测他的主机与被信任主机之间的RTT时间(往返时间),这个RTT时间是通过多次统计平均求出的。RTT对于估计下一个ISN是非常重要的。每秒钟ISN增加128000,每次连接增加64000。

现在就不难估计出ISN的大小了,它是128000乘RTT的一半,如果此时目标主机刚刚建立过一个连接,再加上一个64000。在估计出ISN大小后,立即就开始进行攻击。如果攻击者估计正确,目标主机将会接收该ACK。至此,将开始数据传输。一般地,攻击者将在系统中放置一个后门,以便侵入。

3.DNS欺骗

当一台主机发送一个请求要求解析某个域名时,先把解析请求发到自己的域名服务器(Domain Name Server, DNS)上。DNS欺骗就是攻击者冒充域名服务器的一种欺骗行为。如果可以冒充域名服务器,再把查询的IP地址设为攻击者的IP地址,这样,用户上网就只能看到攻击者的主页,而不是用户想要取得的网站的主页了,这就是DNS欺骗的基本原理,如图3-17所示。DNS欺骗其实并不是真的“黑掉”了对方的网站,而是冒名顶替、招摇撞骗。

图3-17 DNS欺骗工作原理

实际上,就是把攻击者的计算机设成目标域名的代理服务器,这样,所有外界进入目标计算机的数据流都在黑客的监视之下了,黑客可以任意窃听甚至修改数据流里的数据,收集到大量的信息。和IP欺骗相似,DNS欺骗的技术在实现上仍然有一定的困难,如果想实现DNS欺骗,那么需要了解DNS查询包的结构。

在DNS查询包中有个标识IP,它是一个很重要的域,其作用是鉴别每个DNS数据包的印记,从客户端设置,由服务器返回,使用户匹配请求与响应。如果某用户要打开百度主页(www.baidu.com),黑客要想通过假的域名服务器(如220.181.6.45)进行欺骗,就要在真正的域名服务器(220.181.6.18)返回响应前,先给出查询的用户的IP地址。

但在DNS查询包中有一个重要的域就是标识ID,如果要使发送伪造的DNS信息包不被识破,就必须伪造出正确的ID。如果无法判别该标记,DNS欺骗将无法进行。只要在局域网上安装嗅探器,通过嗅探器就可以知道用户的ID。但要在Internet上实现欺骗,就只有发送大量的一定范围的DNS信息包,来得到正确的ID。

4.电子邮件欺骗

电子邮件欺骗是指对电子邮件的信息头进行修改,以使该信息看起来好像来自其真实源地址之外的其他地址。这类欺骗只要用户提高警惕,一般危害性不是太大。攻击者使用电子邮件欺骗有三个目的:隐藏自己的身份;冒充别人的身份发送邮件;电子邮件欺骗被看作是社会工程的一种表现形式。例如,如果攻击者想让用户发给他一份敏感文件,攻击者伪装他的邮件地址,使用户以为这是老板的要求,用户可能会发给他这份文件,如图3-18所示。

图3-18 冒充中国工商银行的诈骗电子邮件

执行电子邮件欺骗有以下几种基本方法,每一种有不同难度级别,执行不同层次的隐蔽。

(1)相似的电子邮件地址。使用这种类型的攻击,攻击者找到一个公司的管理人员的名字,有了这个名字后,攻击者注册一个看上去类似高级管理人员名字的邮件地址,然后在电子邮件的别名字段填入管理者的名字。因为邮件地址似乎是正确的,所以收信人很可能会回复它,这样攻击者就会得到想要的信息。

(2)远程联系,登录到端口25。邮件欺骗的更复杂的一个方法是远程登录到邮件服务器的端口25(邮件服务器通过此端口在互联网上发送邮件)。当攻击者想发送给用户信息时,他先写一个信息,再单击发送;接下来其邮件服务器与用户的邮件服务器联系,在端口25发送信息,转移信息。

5.Web欺骗

Web欺骗是一种电子信息欺骗,错误的Web看起来十分逼真,它拥有相同的网页和链接,如图3-19所示。然而,黑客控制着错误的Web站点,这样受攻击者浏览器和Web之间的所有网络信息完全被攻击者截获,其工作原理就好像是一个过滤器。黑客可以监视目标计算机的网络信息,记录访问的网页和内容等。当用户填写完一个表单并发送后,这些数据将被传送到Web服务器,Web服务器将返回必要的信息,但不幸的是,攻击者完全可以截获并加以使用。绝大部分在线公司都是使用表单来完成业务的,这意味着攻击者可以获得用户的账户和密码。

图3-19 冒充腾讯公司进行网页诈骗

在得到必要的数据后,攻击者可以通过修改受攻击者和Web服务器之间任何一个方向上的数据,来进行某些破坏活动。攻击者修改受攻击者的确认数据,如果在线订购某个产品时,黑客就可能修改产品编码、数量或要求等。黑客也能修改Web服务器所返回的数据信息,如插入易于误解或者攻击性的资料、破坏用户和在线公司的关系等。

3.2.2 经典欺骗攻击解析——网络钓鱼攻击

网络欺骗攻击方式是黑客经常使用的一种攻击方式,也是一种隐蔽性较高的网络攻击方式。这里以网络钓鱼为例,来揭露其攻击过程和防御措施。

网络钓鱼(Phishing,与钓鱼的英语fishing发音相近,又名钓鱼法或钓鱼式攻击)是通过大量发送声称来自银行或其他知名机构的欺骗性垃圾邮件,意图引诱收信人回复敏感信息(如用户名、口令、账号ID、ATM PIN码或信用卡详细信息)的一种攻击方式。最典型的网络钓鱼攻击将收信人引诱到一个通过精心设计与目标组织的网站非常相似的钓鱼网站上,并获取收信人在此网站上输入的个人信息。通常这个攻击过程用户是不会察觉的。

网络钓鱼攻击者利用欺骗性的电子邮件和伪造的Web站点来进行网络诈骗活动,受骗者往往会泄露自己的私人资料,如信用卡卡号、银行卡账户、身份证号等内容。诈骗者通常会将自己伪装成网络银行、在线零售商和信用卡公司等可信的品牌,骗取用户的私人信息。由于网络钓鱼是一个非自我复制的恶意代码,所以需要向其他人发送拷贝文件。网络钓鱼可以作为电子邮件附件传播,或其可能隐藏在用户与其他用户进行交流的文档和其他文件中,还可以被其他恶意代码(如蠕虫等)携带。网络钓鱼有时也会隐藏在从互联网上下载的免费软件中,当用户安装这个软件时,木马就会在后台被自动安装。

3.2.3 网络钓鱼攻击技术详解

从最初的电子邮件虚假信息欺诈到后来的假冒网上银行、购物网站等,都说明了近年来网络钓鱼攻击越演越烈的形势。

(1)发送电子邮件,以虚假信息引诱用户中圈套。

黑客以垃圾邮件的形式大量发送欺诈性邮件,这些邮件多以中奖、对账等内容引诱用户在邮件中填入金融账号和密码,或以各种理由要求收件人登录某网页提交用户名、密码、身份证号、信用卡卡号等信息,继而达到盗窃用户资金的目的。

早期发现的一种骗取用户的账号和密码的“网络钓鱼”电子邮件利用了IE的图片映射地址欺骗漏洞,并精心设计脚本程序,通过一个弹出窗口遮挡住了IE浏览器的地址栏,使用户无法看到该网站的真实地址。当用户使用未打补丁的Outlook打开此邮件时,状态栏显示链接是虚假的。当用户单击链接时,实际上连接的是钓鱼网站,而且用户一旦输入自己的账号和密码,则个人信息很有可能被黑客窃取。

(2)建立假冒网上银行、购物网站,骗取用户账号、密码后实施盗窃活动。

黑客通过创建域名和网页内容都与真正网上银行系统、购物网站交易平台极为相似的网站,来引诱用户输入账号、密码等信息,进而通过真正的网上银行、购物网站系统或伪造银行储蓄卡、证券交易卡盗窃资金。另外,还可以利用跨站脚本,即利用合法网站服务器程序上的漏洞,在某些网页中插入恶意HTML代码,屏蔽住一些可以用来辨别网站真假的重要信息,利用Cookies窃取用户信息。

如要某假冒购物网站,网址为http://www.taobao.com,而真正网站是http://ww w.tao6ao.com,犯罪分子利用数字6和字母b非常相近的特点企图欺骗粗心的用户。

(3)利用虚假的电子商务进行诈骗。

该种方式是通过建立电子商务网站,或在比较知名、大型的电子商务网站上发布虚假商品销售信息,黑客在收到受害人的购物汇款后就销声匿迹。

除少数人自己创建电子商务网站外,大部分人都采用在某些电子商务网站上,如“京东”“淘宝”“天猫”等,发布虚假信息,以“超低价”“免税”“走私货”“慈善义卖”的名义出售各种产品。很多人在低价的诱惑下上当受骗,同时又因为网上交易大都是异地交易,通常需要汇款。不法分子一般要求消费者先付部分款,再以各种理由诱骗消费者付余款或者其他各种名目的款项,得到钱款或被识破时,就立即切断与消费者的一切联系。

(4)利用木马和黑客技术等手段窃取用户信息后实施盗窃活动。

木马一般都是通过发送邮件或在网站中隐藏木马等方式大肆传播,当感染木马的用户进行网上交易时,木马程序即可以键盘记录的方式获取用户账号和密码,并发送到指定邮箱,这样用户资金将受到严重威胁。

如网上出现的盗取个人银行账号和密码的木马Troj_HidWebmon及其变种,它甚至可以盗取用户数字证书。又如“证券大盗”木马,可以通过屏幕快照将用户的网页登录界面保存为图片,并发送到指定邮箱,黑客通过对照图片中鼠标的单击位置,来破译出用户的账号和密码,从而突破软键盘密码保护技术,严重影响股民网上证券交易安全。

(5)利用用户弱口令等漏洞破解、猜测用户账号和密码。

黑客利用部分用户贪图方便设置弱口令的漏洞,对银行卡等的密码进行破解。例如,某些黑客从网上搜寻某银行储蓄卡卡号,然后登录该银行网上银行网站,尝试破解弱口令并屡屡获得成功。事实上,黑客在实施网络诈骗的犯罪活动过程中,经常把几种方法结合起来进行,还有以手机短信、QQ、微信等通信工具进行各种各样的“网络钓鱼”不法活动。

3.2.4 网络钓鱼攻击的日常防范

针对不法分子通常采取的网络欺诈手法,广大用户要防范网络钓鱼,应做到以下几点。

(1)不要在网上留下证明自己身份的任何资料,包括手机号码、身份证号、银行卡号码等。

(2)不要把自己的隐私资料通过网络传输,包括银行卡卡号、身份证号、电子商务网站账户等资料不要通过QQ、微信、电子邮件等软件传播,这些往往可能被黑客利用来进行诈骗。

(3)不要相信网上的消息,除非得到权威途径的证明,如微博、微信、 QQ等往往有人发布谣言,伺机窃取用户的身份资料等。

(4)不要在网站注册时透露自己的真实资料,如住址、住宅电话、手机号码、自己使用的银行账户等,不法分子可能利用这些资料去欺骗你的朋友。

(5)如果涉及金钱交易、商业合同、工作安排等重大事项,不要仅仅通过网络完成,有心计的不法分子可能通过这些途径了解用户的资料,伺机进行诈骗。

(6)不要轻易相信通过电子邮件、网络论坛等发布的中奖信息、促销信息等,除非得到另外途径的证明。因为正规公司一般不会通过电子邮件给用户发送中奖信息和促销信息。

(7)其他网络安全防范措施。一是安装防火墙和防病毒软件,并经常升级;二是注意经常给系统打补丁,堵塞软件漏洞;三是禁止浏览器运行Java Script和ActiveX代码;四是不要浏览陌生的网站,不要执行从网上下载后未经杀毒处理的软件等;五是提高自我保护意识,尽量避免在网吧等公共场所使用网上电子商务服务。