这种入侵方法也是前一阵网上提得最多的,特点是简单有效,只要发现漏洞,就能成功入侵。其实它不牵涉到口令问题,并不需要对口令进行破解。只是通过系统的漏洞绕过身份验证,然后登陆上去在远程主机添加管理员用户。用到工具:
redmay3389:红色五月的3389端口扫描器,用来扫描网络上开放了终端服务的主机。
微软终端服务客户端:用来和开放了终端服务的服务器连接。
入侵过程:打开redmay3389,输入一段IP地址,开始扫描远程主机的3389端口。稍等一会,找到了几台开了3389端口的主机。随便找一个来测试,打开客户服务端软件,输入IP后尝试连接,几秒钟的时间便连接上对方主机,在客户服务端软件里出现了对方主机的登陆窗口。到现在为止就要看对方的主机有没有输入法漏洞了,如果没有,那就只好打道回府。把鼠标放到用户名框里点击一下,然后按ctrl+shift,把输入法转换到全拼状态,然后把鼠标放到状态条的图标上,按右键弹出一个选项,里面有个选项是帮助,把鼠标放到帮助上,在新弹出的选项里选择“输入法入门”,然后就会弹出一个叫“输入法操作指南”的大的窗口,这个窗口里有个栏目是“选项”,把鼠标放在这个选项上面点击右键,在新弹出的小窗口里选择“跳至url”,然后就会弹出一个窗口,在里面输入盘符和路径就会在“输入法操作指南”窗口的右边显示出来该路径下的内容。现在有两种方法可以攻击: 中国网管论坛bbs.bitsCN.com
1.把c:\winnt\system32\cmd.exe程序改名拷贝到c:\inetpub\scripts\目录下,然后在浏览器里来实现攻击,具体方法参看前面的Unicode漏洞入侵。
2.在“跳至url”里的框里输入:c:\winnt\systm32\,这样c:\winnt\system32\下的内容就全在右边窗口显示出来。在显示出来的文件里找到net.exe这个文件,右键后点击“创建快捷方式”,之后系统会自动创建一个“快捷方式 net.exe”的文件,把鼠标放到这个文件上面点右键,选择“属性”,就会弹出一个“快捷方式 net.exe属性”的窗口,这个窗口的“目标”的框里默认的是:c:\winnt\system32\net.exe 在这个命令的后面加上user pyh 1234 /add ,确认后把这个“快捷方式 net.exe”文件点击运行,这样就在远程主机上新建了一个用户:user:pyh;passwd:1234.但是权限只是普通用户的,我们现在把这个用户提升到管理员权限,还是在那个“快捷方式 net.exe属性”窗口的c:\winnt\system32\net.exe后面加上:localgroup administrators pyh /add ,确定后点击运行,这样就把该用户权限提升到系统管理员了。到此为止,我们已成功入侵目标。下一步怎么做不多说,参看前面流光IPC$入侵。
5.IIS5远程缓冲区溢出攻击:
这里是绿盟的安全公告:
————————————————————————————————————— 中国网管联盟www_bitscn_com
微软Win 2K IIS 5.0 远程缓冲区溢出
日期:2001-5-6
受影响的系统:
Microsoft Windows 2000 Server
Microsoft Windows 2000 Datacenter Server
Microsoft Windows 2000 Advanced Server描述:
BUGTRAQ ID: 2674
微软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服务停止响应,从而自动重启它,因此系统管理员很难意识到发生过攻击。
漏洞利用程序见“\漏洞利用\exploit\cgi\iis\iis5hack.zip”。
<* 来源:Riley Hassel of eEye Digital Security *>
———————————————————————————————————————
安全焦点对这个漏洞也给出了测试程序,详情请察看我前面写过的《IDTHS测试报告》。
对IIS的缓冲区溢出需要用到sunx写的一个小工具:iis5hack.exe,这是一个在DOS下运用的命令行工具,我们将它拷贝到c:\winnt\system32\目录下。然后开DOS窗口,输入如下命令:
网管网bitsCN.com
c:\>iis5hack 192.168.4.xx 80 1 0
其中80表示目标被攻击端口,第一位0表示操作系统类型为安装了SP1的中文win2000系统,第二位0表示想要在远程系统上打开的TELNET端口,这里表示端口为99。
对IIS5HACK的详细使用方法请参看作者主页:www.sunx.org
过一会,出来提示句行,说明溢出成功,可以在99端口telnet进去了。
到这一步我就不多说了,详情请看前文。主要入侵步骤如下:
添加用户:net user wazzy 1234 /add
将用户加入管理组:net localgroup administrators wazzy /add
退出后再net use 连上去,上传木马,这样入侵就成功了。
然后微软的IIS还存在两个缓冲区溢出漏洞,这里是绿盟的安全公告:
——————————————————————————————————
微软Index Server(.ida/idq) ISAPI扩展远程溢出漏洞
日期:2001-6-18
更新日期: 2001-6-21
受影响的系统:
Microsoft Index Server 2.0
- Microsoft Windows NT 4.0 IIS 4.0
Indexing Service in Windows 2000
- Microsoft Windows 2000 IIS 5.0
描述:
BUGTRAQ ID : 2880
CVE ID : CAN-2001-0500
微软IIS缺省安装情况下带了一个索引服务器(Index Server,在Windows 2000下名为"Index Service").缺省安装时,IIS支持两种脚本映射:管理脚本(.ida文件)、Inernet数据查询脚本(.idq文件)。这两种脚本都由一个ISAPI扩展 - idq.dll来处理和解释。
54com.cn
由于idq.dll在处理某些URL请求时存在一个未经检查的缓冲区,如果攻击者提供一个特殊格式的URL,就可能引发一个缓冲区溢出。通过精心构造发送数据,攻击者可以改变程序执行流程,执行任意代码。
成功地利用这个漏洞,攻击者可以远程获取"Local System"权限。
<*来源:Riley Hassell of eEye Digital Security
相关链接:http://www.eeye.com/html/Research/Advisories/AD20010618.html
*>
绿盟给出了相应的测试程序如下:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
提交下列URL请求:
GET /NULL.ida?[buffer]=X HTTP/1.1
Host: werd
如果[buffer]的长度超过240个字节,就可能触发溢出。
IIS的.idq/.ida映射的溢出漏洞已经公布了好久了,但由于利用这个漏洞有比较大的难度,所以可用的攻击程序一直也没写出来。因此,因特网中利用这个漏洞进行攻击的成功率并不高。在安全焦点里也有针对它的攻击测试程序源代码。
5、SQL弱口令入侵:这个其实没什么说的,前提是很多SQL用户粗心大意,默认 SQL的管理员帐号sa的密码为空。下面是我用流光对本地网络SQL密码的一段探测结果。(略图)结果出来,有7个用户的SQL管理员密码为空! 中国网管联盟www_bitscn_com
随便在上面找一台,用流光的“MSSQL工具”连接上去,执行SQL远程命令。
点连接后就登陆进去了。然后就在远程主机上添加管理员用户,取得系统的控制权。
WIN2000/NT的口令入侵就讲到这里,下面介绍UNIX系统的口令入侵方法。
二、UNIX系统口令入侵
我在前面提过了UNIX入侵的思路:1、扫描远程系统,试图发现漏洞,如rpc漏洞、FTP匿名登陆等。2、finger远程系统,尝试获得其用户列表。3、根据已获得资料试图得到远程系统的一个shell。这一步很重要,黑客的技术水平如何就体现在这里了,一些高明的黑客利用极其简单的一个系统弱点就能得到一个自己想要的shell。4、得到shell后,黑客就可以远程rsh或rlogin过去了,然后查看系统版本信息,根据已有的经验判断该版本系统可能存在的缓冲区溢出漏洞。5、查找系统可写入目录,并判断自己是否有可编译权限。6、当这一切完成后,黑客就上传一个溢出程序,在远程主机上编译并执行,从而利用溢出漏洞得到root权限。7、留下后门,清除日志。
从以上过程看,UNIX系统的入侵与口令破解的关系并不大,一般情况不大可能象流光入侵NT那样对远程系统的root密码进行穷举探测,这是因为通常主机都不允许远程用户用root登陆,而且在密码试探几次仍不正确后远程主机就会中断这个登陆请求。现在利用John之类的工具来破解passwd档也不是流行的事,因为一是passwd档都是shadow过的,普通用户无法拿到shadow文档,二是用john穷举破解可能需要无穷多的时间。那么入侵这类系统的关键就是找到远程系统的溢出漏洞,然后上传程序编译执行,使其溢出,得到root权限。在UNIX的各种版本中,不管是SunOS、FreeBSD还是IRIX,HPUnix、Linux等,都存在着不同形式的溢出漏洞。如wu-ftp 2.60存在远程溢出,利用这个远程溢出只要有一个匿名 FTP 账号就可远程获得管理员权限,当然前提是需要一个可写目录。 中国网管联盟www.bitscn.com
由此可见,对UNIX系统的远程侵入有两个关键:第一是获得一个有写入权限的shell;第二是发现远程系统上存在的溢出漏洞,尝试执行程序使其溢出。通常第一个步骤要困难些,不是每个人都能利用有限的系统弱点获得shell的。至于第二步,就不是很困难了,发现系统版本后,根据经验判断该版本系统可能存在的漏洞,然后上传程序,执行溢出,把自己的权限提升到root。具体的入侵案例网上有很多现成的,我不在这里赘述。
每一项服务都对应相应的端口,比如众如周知的WWW服务的端口是80,smtp是25,ftp是21,win2000安装中默认的都是这些服务开启的。对于个人用户来说确实没有必要,关掉端口也就是关闭无用的服务。
“控制面板”的“管理工具”中的“服务”中来配置。
1、关闭7.9等等端口:关闭Simple TCP/IP Service,支持以下 TCP/IP 服务:Character Generator, Daytime, Discard, Echo, 以及 Quote of the Day。
2、关闭80口:关掉WWW服务。在“服务”中显示名称为"World Wide Web Publishing Service",通过 Internet 信息服务的管理单元提供 Web 连接和管理。
3、关掉25端口:关闭Simple Mail Transport Protocol (SMTP)服务,它提供的功能是跨网传送电子邮件。
4、关掉21端口:关闭FTP Publishing Service,它提供的服务是通过 Internet 信息服务的管理单元提供 FTP 连接和管理。
54com.cn
5、关掉23端口:关闭Telnet服务,它允许远程用户登录到系统并且使用命令行运行控制台程序。
6、还有一个很重要的就是关闭server服务,此服务提供 RPC 支持、文件、打印以及命名管道共享。关掉它就关掉了win2k的默认共享,比如ipc$、c$、admin$等等,此服务关闭不影响您的共他操作。
7、还有一个就是139端口,139端口是NetBIOS Session端口,用来文件和打印共享,注意的是运行samba的unix机器也开放了139端口,功能一样。以前流光2000用来判断对方主机类型不太准确,估计就是139端口开放既认为是NT机,现在好了。
关闭139口听方法是在“网络和拨号连接”中“本地连接”中选取“Internet协议(TCP/IP)”属性,进入“高级TCP/IP设置”“WINS设置”里面有一项“禁用TCP/IP的NETBIOS”,打勾就关闭了139端口。
对于个人用户来说,可以在各项服务属性设置中设为“禁用”,以免下次重启服务也重新启动,端口也开放了。 我们一般采用一些功能强大的反黑软件和防火墙来保证我们的系统安全,但是有些用户不具备上述条件。怎么办呢?下面就介绍一种简易的办法——通过限制端口来帮助大家防止非法入侵。 非法入侵的方式 简单说来,非法入侵的方式可粗略分为4种: 1、扫描端口,通过已知的系统Bug攻入主机。 2、种植木马,利用木马开辟的后门进入主机。 3、采用数据溢出的手段,迫使主机提供后门进入主机。 4、利用某些软件设计的漏洞,直接或间接控制主机。 非法入侵的主要方式是前两种,尤其是利用一些流行的黑客工具,通过第一种方式攻击主机的情况最多、也最普遍;而对后两种方式来说,只有一些手段高超的黑客才利用,波及面并不广泛,而且只要这两种问题一出现,软件服务商很快就会提供补丁,及时修复系统。 因此,如果能限制前两种非法入侵方式,就能有效防止利用黑客工具的非法入侵。而且前两种非法入侵方式有一个共同点,就是通过端口进入主机。 端口就像一所房子(服务器)的几个门一样,不同的门通向不同的房间(服务器提供的不同服务)。我们常用的FTP默认端口为21,而WWW网页一般默认端口是80。但是有些马虎的网络管理员常常打开一些容易被侵入的端口服务,比如139等;还有一些木马程序,比如冰河、BO、广外等都是自动开辟一个您不察觉的端口。那么,只要我们把自己用不到的端口全部封锁起来,不就杜绝了这两种非法入侵吗? 限制端口的方法 对于个人用户来说,您可以限制所有的端口,因为您根本不必让您的机器对外提供任何服务;而对于对外提供网络服务的服务器,我们需把必须利用的端口(比如WWW端口80、FTP端口21、邮件服务端口25、110等)开放,其他的端口则全部关闭。 这里,对于采用Windows 2000或者Windows XP的用户来说,不需要安装任何其他软件,可以利用“TCP/IP筛选”功能限制服务器的端口。具体设置如下: 1、右键点击“网上邻居”,选择“属性”,然后双击“本地连接”(如果是拨号上网用户,选择“我的连接”图标),弹出“本地连接状态”对话框。 2、点击[属性]按钮,弹出“本地连接属性”,选择“此连接使用下列项目”中的“Internet协议(TCP/IP)”,然后点击[属性]按钮。 3、在弹出的“Internet协议(TCP/IP)”对话框中点击[高级]按钮。在弹出的“高级TCP/IP设置”中,选择“选项”标签,选中“TCP/IP筛选”,然后点击[属性]按钮。 4、在弹出的“TCP/IP筛选”对话框里选择“启用TCP/IP筛选”的复选框,然后把左边“TCP端口”上的“只允许”选上(请见附图)。 这样,您就可以来自己添加或删除您的TCP或UDP或IP的各种端口了。 添加或者删除完毕,重新启动机器以后,您的服务器就被保护起来了。 最后,提醒个人用户,如果您只上网浏览的话,可以不添加任何端口。但是要利用一些网络联络工具,比如OICQ的话,就要把“4000”这个端口打开,同理,如果发现某个常用的网络工具不能起作用的时候,请搞清它在您主机所开的端口,然后在“TCP/IP筛选”中添加端口即可。 feedom.net
作者:Squ4L1
黑客的聪明并不只是在于他们知道如何去入侵服务器,还在于他们知道如何去伪装自己的攻击。恶意的攻击者会使用多种逃避的手段来让自己不会被检测到,所以作为系统管理员,也应当了解这些手段以应付可能发生的攻击。
这篇文章的主要目的不是揭示黑客新的攻击手法,而是对那些黑客所用到的逃避检测的手法以及他们可能留下的证据做描述。这些手段的欺骗性很大,所以想检测到它们也更加的困难。
网络服务器
我们的实验环境使用两种最常用的网络服务器,Apache和微软的Internet Information Server(IIS)。我们在Red Hat Linux上运行Apache 1.3.9,在Windows NT 4.0上运行IIS 4.0。并且两种都采用普通和允许SSL的版本,所以我们可以对加密和未加密的服务器的攻击做测试。
16进制编码
一种最简单的将攻击伪装的手段就是修改URL请求。作为管理员,我们一般会在日志文件中查找某些字符串,或是一些普通文本的字符集。例如我们在请求中查找匹配已知漏洞的字符串。例如,我们在我们的IIS服务器中发现了如下的字符串,我们就知道有人正在查找是否有IIS中可以远程利用的MDAC漏洞:
06:45:25 10.0.2.79 GET /msadc/ 302
要知道攻击者是如何躲过这种匹配检测的,请参考以下作为恶意攻击者策略一部分的请求。要确定msadc目录是否存在,攻击者可能键入以下内容: 54com.cn
[root@localhost /root]# nc -n 10.0.2.55 80
GET /msadc HTTP/1.0
这就会产生我们以上所见的日志文件。攻击者可以将请求进行十六进制的ASCII字符编码。在以上的例子中,字符串msadc在十六进制编码以后就会变为6D 73 61 64 63。你可以使用Windows Charmap程序来快速的进行字符的ASCII到十六进制的转换。以上的HTTP请求,将字符串msadc用十六进制编码以后,就变成了:
[root@localhost]# nc -n 10.0.2.55 80
GET /%6D%73%61%64%63 HTTP/1.0
IIS的日志文件显示:
07:10:39 10.0.2.31 GET /msadc/ 302
应当注意的是,虽然采用了十六进制编码的手段,但是所产生的日志和没有使用十六进制编码的URL产生的是一样的。所以在这个例子里,编码并没有帮助攻击者逃避检测。但是,如果我们看看看Apache的日志情况,那么就是另外一个情形了。以下列出了攻击者使用来搜索某个CGI脚本的命令,后面跟着的是使用十六进制编码以后的同样命令:
[root@localhost]# nc -n 10.0.0.2 80
HEAD /cgi-bin/test-cgi HTTP/1.0
[root@localhost]# nc -n 10.0.0.2 80
HEAD /%63%67%69-bin/test-%63%67%69 HTTP/1.0
现在我们来查看一下access_log文件: 网管联盟www.bitsCN.com
10.10.10.10 - - [18/Oct/2000:08:22:47 -0700] "HEAD /cgi-bin/test-cgi HTTP/1.0" 200 0
10.10.10.10 - - [18/Oct/2000:08:23:47 -0700] "HEAD /%63%67%69-bin/test-%63%67%69 HTTP/1.0" 200 0
首先应注意到的是在这两个例子中都是200代码说明命令完成成功。但是在第二中情况中,日志中出现的是十六进制的值而不是明文的。如果我们是依赖于形式来对这种攻击进行检测的话,那么我们是不可能检测到所发生的攻击的。许多的入侵检测系统使用的格式匹配技术智能化都不高,并且有些产品不会将十六进制的URL转换过后进行匹配。但是不论所使用的入侵检测软件是否能够对十六进制的代码进行转换,所有的网络管理员都应当对这种伎俩有所了解。
代理服务器
因为对攻击者而言完全隐藏攻击行为是很难做到的,所以掩盖攻击的真实来源也就成为相当重要的课题了。如果黑客可以隐藏他的源IP地址的话,那么他就可以在不用担心被抓住的情况下进行攻击。而黑客用来隐藏他们的源IP地址的一种手段就是使用代理服务器。
代理服务器是被合法的用来从一个单一的访问点转发多种协议的。一般来说,内部用户必须通过代理服务器才能访问Internet,因此管理员就可以在代理服务器指定外部访问以及内部访问的限制策略。用户首先是和代理服务器建立连接,然后代理服务器就将连接请求转发到真正的目的地址。目的地址会记录下代理服务器的IP地址以作为请求的源地址,而不是最初发出请求的系统的IP地址。
54ne.com
但是不幸的是代理服务器在Internet上的放置太随意了。(可以查看Proxys-4-All来获得这些错误配置机器的列表。) 这些服务器经常会存在配置错误使得Internet用户可以连接到这些代理服务器上。一旦某个Internet用户通过代理服务器连接到某个服务器上,该服务器就会将代理服务器的IP地址作为发出请求的源地址记录在日志中。而在被攻击服务器的日志中对攻击者的记录其IP地址是属于一个没有任何攻击行为的“无辜”主机的,而不是攻击者的真正地址。我们来看以下的例子。
下面的例子显示了黑客的攻击和攻击在日志中产生的相关信息。
攻击者
[root@10.1.1.1 /]# nc -v 10.8.8.8 80
HEAD / HTTP/1.0
日志文件
10.1.1.1 - - [18/Oct/2000:03:31:58 -0700] "HEAD / HTTP/1.0" 200 0
在下面这种情况中,我们看到攻击者达到了同样的目的,但是这次他使用了代理服务器。
攻击者
[root@10.1.1.1 /]# nc -v 216.234.161.83 80
HEAD http://10.8.8.8/ HTTP/1.0
日志文件
216.234.161.83 - - [18/Oct/2000:03:39:29 -0700] "HEAD / HTTP/1.1" 200 0
注意在这个例子中,日志文件中所出现的地址是代理服务器的(216.234.161.83,proxy.proxyspace.com),而不是攻击者的真实地址。在这个案例中,攻击者成功的隐藏了攻击的来源地址。不过网络管理员如果能得到代理服务的支持的话还是可以追踪到攻击的真正来源。大多数的代理服务器都会保存一份相当详细的日志,所以多半也就可以从中找到攻击的来源。但是道高一尺魔高一仗,黑客也有相应的方法来反跟踪:他们可以使用多重代理,也可以说是一个“代理链”来进行攻击。而管理员和执法部门也就必须对所有的中间代理服务器进行依次检查来获得攻击来源。在黑客的团体中这种“代理链”的使用非常的普遍,并且有类似SocksChain for Windows这样的工具可供使用。
feedom.net
SSL
对此以往很多人进行了讨论,但是它现在值得再一次提出:允许SSL的服务器是不会被网络入侵检测系统所检测到的。如果让一个黑客在80端口(HTTP)和443端口(HTTPS)之间做一个选择的话,攻击者每一次都会选择443端口的。这实际上并不是什么手段,而是由于加密通讯的使用所造成的副作用。你可以使用网络服务器日志文件来监视443端口的请求。
结论
我们向你演示了一些网络上的黑客常用的欺骗伎俩。无须多说,这些手段是随着黑客们的想象力和创造力不断增加而不断扩展的。例如十六进制编码这样的技术不光是用在欺骗性的日志文件入口这样的地方;它同样也欺骗网络服务器的URL解析机制,并可能导致例如源代码暴露之类的漏洞的出现。攻击者某些时候也使用多代理服务器来进行扫描和攻击,让管理员很难跟踪攻击的真正来源。当然,SSL某些时候为“安全黑客行为”铺平了道路。
转贴请注明出处 www.ringz.org
