NT/2000提升权限的方法小结


作者:  

本文作者声明:如需转载请注明出处,并保持文章完整和本声明。如需更改内容请,并获得允许。

  

Windows NT/2000通用的提升方法

    攻击者在获得系统一定的访问权限后通常要把自己的权限提升到管理员组,这样攻击者就控制了该计算机系统。这主要有以下几种方法:1. 获得管理员密码,下次就可以用该密码进入系统; 2. 先新建一个用户,然后把这个普通添加到管理员组,或者干脆直接把一个不起眼的用户如guest添加到管理员组; 3. 安装后门。

    本文简要介绍在 Windows NT4 和 Windows 2000 里攻击者常用的提升权限的方法。下面是具体方法:


方法1:下载系统的 %windir%\repair\sam.*(WinNT 4下是sam._ 而Windows 2000下是sam)文件,然后用L0pht等软件进行破解,只要能拿到,肯花时间,就一定可以破解。

问题:(1)攻击者不一定可以访问该文件(看攻击者的身份和管理员的设置);
(2)这个文件是上次系统备份时的帐号列表(也可能是第一次系统安装时的),以后更改帐号口令的话,就没用了。

 

方法2:使用pwdump(L0pht自带的,Windows 2000下无效)或者pwdump2,取得系统当前的用户列表和口令加密列表,然后用L0pht破解这个列表。

问题:普通用户不能成功运行pwdump类程序(没有权限),例如:使用unicode漏洞进入系统时是IUSR_computer身份,该用户一般只属于guests组的,运行pwdump类程序就会失败。

(以上两种是离线的)

 

方法3:使用 Enum 等程序进行远程破解,猜口令。enum 可以使用指定的字典对远程主机的某个用户进行破解。

问题:(1)如果系统设置了帐号锁定的话,破解几次失败,该帐号就锁定了,暂时不能再破解;
(2)要远程系统开放 Netbios 连接,就是 TCP 的139端口,如果用防火墙过滤了的话 Enum 就无法连接到主机。

(以上方法是通过破解获得密码的,还有直接把当前用户提升权限或者添加用户到管理员组的方法。)

 

方法4:GetAdmin(WinNT 4下)、PipeUpAdmin(Windows 2000下), 在本机运行可以把当前用户帐号加入管理员组。而 PipeUpAdmin 则比较厉害,普通用户和Guests组用户都可以成功运行。

问题:GetAdmin 在 SP4 有补丁修复了,不能用于高于 SP4 的 WinNT 4 系统,当然后来又有GetAdmin的增强版本,不过在 SP6a下好像都不能成功运行。

注:这一方法利用了 WinNT 4 系统的安全漏洞,可以安装补丁解决这一问题。

(此外还有变通的方法。)


方法5:在WinNT 4 和 Windows 2000 注册表里指定用户Shell程序(Explorer.exe)时没有使用绝对路径,而是使用了一个相对路径的文件名(考虑到兼容性问题)。由于在系统启动时程序的搜索顺序问题使得 %Systemdrive%\Explorer.exe(操作系统安装的跟目录下的Explorer.exe)程序执行,这提供了攻击者一个机会在用户下次登录时执行他自己的程序。

问题:攻击者必须有安装系统逻辑盘跟目录的写权限才行,而一般管理员都设置该目录普通用户禁写。

注:这种方法利用了 WinNT 4/Windows 2000 系统的安全漏洞,可以安装补丁解决这种问题。

 

方法6: 木马:上传木马,然后运行木马,系统重起动后,木马就是本地登录用户的身份了,然后攻击者连接后就有了本地登录用户的权限。因为一般总是管理员本地登录系统,因此这样很可能就获得了管理员的权限。

问题:(1)杀毒软件或病毒防火墙可能阻止木马运行,还有可能把木马杀死。
(2)有的木马不能在Guests组身份下运行,这可能与它添加自动运行的方式有关;如没有权限改写注册表的自动运行位置,不能写入%system%\system32目录(一般的木马都改变文件名,然后写入系统目录,如果没有写入权限系统目录,就不能成功执行木马)。

解决:
不过也有用压缩程序(不是通常说的压缩程序,这种压缩程序把可执行程序压缩后,文件变小了,但是仍然可以正常执行)将木马压缩,从而逃过杀毒软件的特征码检测。我曾使用Aspack成功压缩了一个木马,逃过了金山毒霸正式版的检测。不过也有的木马Aspack压缩不了,如冰河。

 

方法7:Gina、GinaStub木马。虽然这个也叫木马,但是它的功能和上边的那种大不相同,因为一般的木马是在对方安装一个server端,一旦运行就可以使用client端连接到server端,并进行操作。而 ginastub 一般只有一个动态连接库文件,需要手工安装和卸载,他的功能也不是使用client端控制server端,它仅仅就是捕获用户的登录密码。

问题:安装较麻烦,成功的可能性低,而且安装不当会造成被安装的系统不能启动。

注:这一方法利用的不是系统的安全漏洞,因此不能通过安装补丁解决这一问题。关于Gina,可以参见我的另一篇文章《WinLogon登录管理和GINA简介》

 

方法8:本地溢出。缓冲区溢出是进行攻击的最好办法,因为一般都可以获得系统权限或者管理员权限;不过很多远程溢出攻击不需要事先有执行程序的权限,而本地溢出就恰好适合提升权限。Win NT4 的 IIS4 的 ASP扩展有一个本地溢出漏洞,Windows 2000 的静态图像服务也有一个溢出漏洞,利用该漏洞,攻击者可以获得系统权限。当然 Windows NT 和 Windows 2000 还有很多程序有溢出漏洞,这是这些程序不是总在运行,因此被利用的可能性比较小。

问题:(1)ASP扩展的溢出漏洞需要攻击者有向网站的脚本目录的写权限,才能把攻击程序放到网站上,然后执行。

(2)静态图像服务缺省没有安装,只有用户在 Windows 2000 上安装静态图像设备(如数码相机、扫描仪等)时才自动安装。

注:这种方法利用了 WinNT 4/Windows 2000 系统的安全漏洞,可以安装补丁解决这种问题。

 

Windows 2000专用提升漏洞方法

方法1: Windows 2000的输入法漏洞,利用这个漏洞任何人可以以LocalSystem身份执行程序,从而可以用来提升权限,不过该漏洞一般限于物理接触 Windows 2000 计算机的人。当然如果开放了终端服务的话,攻击者也可以远程利用该漏洞。

注:这一方法利用了 Windows 2000 系统的安全漏洞,可以安装补丁解决这一问题。

 

方法2:利用 Windows 2000 的 Network DDE DSDM 服务漏洞普通用户可以LocalSystem身份执行任意程序,可以借此更改密码、添加用户等。Guests组用户也可以成功利用该漏洞。

问题:这个服务缺省没有启动,需要启动这个服务。

注:这一方法利用了 Windows 2000 系统的安全漏洞,可以安装补丁解决这一问题。

 

方法3:Windows 2000的 TELNET 服务进程建立时,该服务会创建一个命名管道,并用它来执行命令。但是,该管道的名字能被预见。如果 TELNET 发现一个已存在的管道名,它将直接用它。攻击者利用此漏洞,能预先建立一个管道名,当下一次 TELNET 创建服务进程时,便会在本地 SYSTEM 环境中运行攻击者代码。

注:这一方法利用了 Windows 2000 系统的安全漏洞,可以安装补丁解决这一问题。


方法4:WINDOWS 2K 存在一个利用 Debug Registers 提升权限的漏洞。如果攻击者能在 WIN2K 中运行程序,利用此漏洞,他至少能取得对 %Windir%\SYSTEM32 和 注册表HKCR 的写权。因为x86 Debug Registers DR0-7对于所有进程都是全局共享的,因此在一个进程中设置硬件断点,将影响其它进程和服务程序。

注:这一方法利用了 Windows 2000 系统的安全漏洞,不过到目前为止微软仍然没有补丁可以安装,但是漏洞攻击程序已经出现了,因此只能堵住攻击者的入口来阻止利用该漏洞。

 


与我联系: , 欢迎到我的留言簿