Posts for: #Security

了解你的敌人:被动式指纹探测

本文是 Honeynet Project 的"了解你的敌人:被动式指纹探测"系列文章的中文翻译,原文发布于 project.honeynet.org,中文翻译来自 xfocus.net

网络安全的挑战之一就是你需要了解攻击者,要了解你存在的威胁并保护你自己的资源,你需要了解你的敌人,被动特征探测是了解攻击者而不被攻击者觉察的方法之一,虽然这种方法可能不是100%正确,但你会获得一些令你诧异的结果。Craig Smith开发基本本文概念的工具passfing.另外subterrain crew也开发了siphon,一个可以被动探测端口和OS的工具。Fingerprinting

传统上,操作系统特征可以通过"积极性"的工具,如queso或者nmap,这些工具是在每一个操作系统上的IP堆栈有自己不同特性的原理上来操作的,每个操作系统响应通过的多种信息包。所以这些工具只要建立一个基于不同的操作系统对应不同的信息包的数据库,然后,要判断远程主机的操作系统,发送多种不寻常的信息包,检测其是怎样响应这些信息包的,再与数据库进行对比做出判断。Fyodor的 nmap工具就是利用这种方法的,他也写了一份具体的文档

而被动特征探测(Passive Fingerprinting )遵循相同的概念,但实现的方法不同。被动特征探测(Passive Fingerprinting )基于嗅探远程主机上的通信来代替主动的去查询远程主机,所有你需要做的是抓取从远程主机上发送的信息包。在嗅探这些信息包的基础上,你可以判断远程主机的操作系统,就象主动特征探测一样,被动特征探测(Passive Fingerprinting )也是由每个操作系统的有自己的IP堆栈特征,通过分析sniffer traces 和鉴别他们之间的不同之处,就可以判断远程主机的操作系统了。

信号

判断主机的操作系统一般可以由4个方面来着手(当然也有其他信号存在):

  • TTL - 这个数据是操作系统对出站的信息包设置的存活时间。

  • Window Size - 是操作系统设置的窗口大小,这个窗口大小是在发送FIN信息包时包含的选项。

  • DF - 可以查看是否操作系统设置了不准分片位

  • TOS - 是否操作系统设置了服务类型

通过分析信息包这些因数,你可以判断一个远程的操作系统,当然探测到的系统不可能100%正确,也不能依靠上面单个的信号特征来判断系统,但是,通过查看多个信号特征和组合这些信息,你可以增加对远程主机的精确程度。下面是一个简单的例子,下面是被探测的系统发送一个信息包,这个系统发起了一个mountd的漏洞攻击,因此我想了解这个主机, 我现在不使用finger或者NMAP等工具,而想要了解被动接受到的信息,使用snort得到了下面的一些信号特征:

04/20-21:41:48.129662 129.142.224.3:659 -> 172.16.1.107:604

TCP TTL:45 TOS:0x0 ID:56257

FA Seq: 0x9DD90553   Ack: 0xE3C65D7   Win: 0x7D78

根据上面的四条准则,我们可以达到下面的情况:

  • TTL: 45

  • Window Size: 0x7D78  (or 32120 in decimal)

  • DF: The Don’t Fragment bit is set

  • TOS: 0x0

我们在比较信号特征数据库,首先,我们查看使用在远程系统上的TTL,从我们的获得信息可以看到TTL是45,这多数表示它通过19跳才到达我们主机,因此原始的TTL应该是设置为64,基于这个TTL,这个信息包应该看来是由LINUX和FREEBSD系统发来的(当然更多的系统信号特征需要放到数据库中),这个TTL通过了traceroute远程主机得到证实,如果你考虑到远程主机在检测你的traceroute,你可以设置你traceroute的time-to-live(默认是30跳),使用-m选项来设定到主机的跳数少1到2跳的数值,如,刚才的例子里,我们可以使用traceroute -m 18来设置跳数为18跳,这样做可以让你看到到达主机的路径而不碰到远程主机。要更多关于TTL的信息,请查看这篇文章

[阅读全文]

了解你的敌人:一次公开的分析

本文是 Honeynet Project 的"了解你的敌人:一次公开的分析"系列文章的中文翻译,原文发布于 project.honeynet.org,中文翻译来自 xfocus.net

此文章是Know Your Enemy系列,前三篇文章涵盖了关于black-hat团体所使用的工具和策略,这文章的目的是怎样一步步成功攻击系统的,这里的重点是在我们怎样知道发生的攻击者和获得信息。也提供你一些分析和熟悉你自身系统上存在的威胁。这里也有一在线,交互的版本发布在MSNBC上。

背景

此文信息通过honeypot获得,这里的Honeypot安装在REDHAT6.0上,REDHAT是默认的服务安装,所以讨论的漏洞存在在任意默认安装的REDHAT系统上。而且所有数据没有被处理过。下面分析的所有IP地址,用户帐号,和击键的信息是真实的,除了密码信息,这样是为了更直接的了解整个过程。所有SNIFF信息是通过SNORT格式体现的;SNORT是一个常用的嗅探器,对于检测系统入侵分析来说是一个不错的工具,我使用了在http://www.whitehats.com/上的MAX VISION 的IDS特征。你可以在arachNIDS数据库中查更多有关在此文章中的所有警告信息。你可以在这里找到我的SNORT配置信息和特征文件,包括我使用的命令行选项。

攻击行为

在四月26号,snort提醒我其中的一个系统正受到一个’noop’攻击,信息包装载包含noops的信息,在此情况下,SNORT探测到攻击和记录了警告信息到/var/log/messages文件中(使用swatch来监控),注意这文中172.16.1.107的IP地址是含有honeypot的机器,其他的地址是black-hat(黑帽子)使用的IP地址。

Apr 26 06:43:05 lisa snort[6283]: IDS181/nops-x86: 63.226.81.13:1351 -> 172.16.1.107:53

我的honeypots每天接受无数探测,扫描和查询,而且下面的一个警告信息使我注意到其中一个系统可能被破坏,下面的系统LOG信息指示攻击者正开始了一个连接和LOGIN了系统:

Apr 26 06:44:25 victim7 PAM_pwdb[12509]: (login) session opened for user twin by (uid=0)

Apr 26 06:44:36 victim7 PAM_pwdb[12521]: (su) session opened for user hantu by twin(uid=506)

从上面的情况可以看到,入侵者已经获得超级用户权利和控制了整个系统,但这是怎样完成的呢,我们下面开始分析:

分析

当分析一攻击的时候,最好的位置是在开始端,即攻击者是从哪里开始的,攻击者一般开始是收集系统信息,可以让他获得系统所存在的漏洞,如果你的系统被破坏,这就表明攻击者不是第一次与你的系统通信了,大多数攻击者必须通过对你系统的连接获得初始化的信息。

所以我们从最开始的信息收集开始,从第一条信息可以知道攻击初于53端口,这表示在我们系统上发动了一个DNS攻击,所以我通过我的snort alerts来发现一些DNS可能的信息探测,我们发现一DNS版本查询探测的信息:

Apr 25 02:08:07 lisa snort[5875]: IDS277/DNS-version-query: 63.226.81.13:4499 -> 172.16.1.107:53

Apr 25 02:08:07 lisa snort[5875]: IDS277/DNS-version-query: 63.226.81.13:4630 -> 172.16.1.101:53

[阅读全文]

The Solaris安全FAQ

(quack_at_xfocus.org)

The Solaris安全FAQ

by quack

参考资料:The Solaris Security FAQ by Peter Baer Galvin

  1. (概述–略)

  2. 怎样将Solaris配置得更加强壮?

2.1) 哪些文件的许可权限需要改变?

有个叫fix-modes的软件(ftp://ftp.fwi.uva.nl/pub/solaris/fix-modes.tar.gz)可以在

Solaris 2.4和2.5上运行并改变系统文件及目录的存取权限,这样会使非ROOT的用户更难

于更改系统文件或者取得ROOT权限。

2.2) 如何对ROOT的环境加以配置?

将umask设为077或者027.

查看你的环境中路径设置情况,不要有./

2.3) 我该更改哪些启动文件?

通常情况下,你要检查所有在/etc/rc2.d和/etc/rc3.d以S开头的文件,所有并非必要的设备

或者服务都可以重命名(不要再以S开头),然后你可以重新启动,从/var/adm/messages中来

观察自启动的情况,并且从ps -elf的输出中加以检查。

2.4) 如何将ROOT的远程登陆取消?

在/etc/default/login里加上 “CONSOLE"行,在/etc/ftpusers里加上root。

2.5) 如何取消rlogin/rsh服务?

移去/etc/hosts.equiv和/.rhosts以及各home目录下的.rhosts,并且在/etc/inetd.conf中

把r系列服务都杀掉,然后找出inetd的进程号,重启它。

2.6) 哪些帐号是不必须的?

移去或者锁定那些不是必须的帐号,比如sys\uucp\nuucp\listen等等,简单的办法是在

/etc/shadow的password域中放上NP字符。

2.7) 怎样保护我的设备?

在文件/etc/logindevperm中包含了对系统设备的许可权限配置信息,应该检视里面的各项

设定并且手动赋予你所想要的许可权限。

对于抽取式的BSM设备需要设定只有single user允许进入。

2.8) 我应该将/etc的存取权限改为什么才安全?

用chmod -R g-w /etc命令来移去组用户对/etc的写权限。

2.9) Solaris机器充当路由器?

默认情况下,如果Solaris机器有超过一块的网卡的话,它将会在不同网卡间转发数据包,这一行为可

以在/etc/init.d/inetinit中得到控制。要在Solaris 2.4或者更低版本机器下关闭它,可以将

ndd -set /dev/ip ip_forwarding 0添加于/etc/init.d/inetinit的未尾。在Solaris 2.5

中,只要touch /etc/notrouter.

2.10) 如何取消automounter?

[阅读全文]

我们是如何攻破www.apache.org的

quack (quack_at_xfocus.org)

我们是如何攻破www.apache.org

by  {} and Hardbeat

译: quack

一、写在前面

这篇文章并不是发现了什么最新的漏洞,它只是指出了一个普通的配置错误–甚至连apache.org

的工作人员也会配置错误:),所以这只是一个警告:修补你的系统,才能防止恶意侵袭。

二、介绍

这里描述了我们如何在一周内成功地得到了运行www.apache.org的机器的root权限

并且将其主页面上的Powered by Apache图样(羽毛状的图画)改成了Powered by

Microsoft BackOffice的图样,没有做其它的任何改动了–除了帮他们赶跑了另外

(可能是恶意)的入侵者。

这里所描述的漏洞甚至不是apache相关的,它们仅仅是配置失误,其中之一是BugZilla

的……但它的开发者在README文件中对配置方法做了详尽的描述,所以――一切只

能是使用者自己的责任了,apache的用户不必为此而担心的:)。

我们对www.apache.org进行尝试的原因是有太多的服务器上跑的都是阿帕奇了,如果

它的主机是不安全的,那么入侵者就可能在它的源代码里放置后门,这会危及许多用

户的利益。

当然我们不愿看到这种事发生,所以我们帮apache补上了漏洞――当然在得到了ROOT

权限之后我们无法控制自己更改主页的欲望:),开个小玩笑吧。

以下是整个入侵的过程:

1、ftproot == wwwroot

   o+w dirs

在寻找apache httpserver想要查看新版本是否存在缓冲溢出的过程中――我们连接上

了ftp:/ftp.apache.org――和http://www.apache.org是同一个目录并且有一个可写

的目录存在!

于是我们写了一个小脚本wuh.php3包含了下面的语句:

将它上传到了那个可写的目录中。

2、Our commands executed

所以,很方便的,id这个命令可以被下面的语句调用:

      http://www.apache.org/thatdir/wuh.php3?cmd=id

而后再上传一些bindshell的程序并用类似

      http://www.apache.org/thatdir/wuh.php3?cmd=gcc+-o+httpd+httpd.c

的语句来编译它,然后执行……

      http://www.apache.org/thatdir/wuh.php3?cmd=./httpd

3、The shell

我们使用的bindshell程序是有密码验证的:),相对安全一些。

现在我们可以telnet到端口65533――我们定义的端口绑定处了,这样我们得到了本

地nobody权限的进入权――因为cgi是以nobody身份运行的。

4、The apache.org box

在apache.org的机器里我们发现了:

        -o=rx /root

        -o=rx homedirs

      

apache.org运行的是freebsd3.4的平台,我们不想仅仅通过缓冲区溢出或者乱七八糟

的exploit来得到root,让我们来试试仅仅通过他们自己配置的漏洞来得到最高权限吧!

5、Mysql

经过长时间的搜索,我们发现mysql是以root的权限运行的,并且可以本地运行,

因为apache.org还运行了bugzilla需要mysql帐号,并且将其用户名/密码明文存

放,所以很轻易的就可以获得mysql数据库的帐号密码。

我们下载了nportredird(从名字就可以知道应该是端口重定向的工具了),并设置成

[阅读全文]

LOVE-LETTER-FOR-YOU病毒/蠕虫的分析

(quack_at_xfocus.org)

LOVE-LETTER-FOR-YOU病毒/蠕虫的分析

by quack

参考:Analysis of the LOVE-LETTER-FOR-YOU virus/worm

这些天这个病毒在欧洲的许多国家大行其道,不少知名的公司都中了标–这其实是一个用vbscript写出来的

可以通过email散布的病毒(这点同梅丽莎相似)。

潜伏与发作

所有一切都发生在你打开邮件的附件–该脚本运行,将自身拷贝到

$windir/Win32DLL.vbs ($windir = c:\windows on most windows systems)

$systemdir/MSKernel32.vbs ($systemdir = c:\windows\system)

$windir/LOVE-LETTER-FOR-YOU.TXT.vbs

然后将这些文件加载到注册表中以便在启动时自动运行。

然后它将改变默认的ie浏览页面–通过该页面你会下载一个可执行的代码–下载完毕后它会将其加入注册表而且

再把IE的默认浏览页面再改回about:bland。

接下来它就开始往你地址薄里的邮件地址发送信件了–扫描你的硬盘及网络共享硬盘,寻找后缀为:

           Vbs, vbe, js, jse, css, wsh, sct, hta, vbs, jpg, jpeg

所有这些文件将变改成这个病毒,而且当它发现mp2或者mp3格式的文件时,会将自身拷贝到同样目录下的一个

vbs script中、当找到mIRC时也将建立一个小的mIRC script–可以发送html页面–这样就可以对所有加入

你所在频道的所有用户发送html并感染他们的IE。

执行

它会将你的共享密码及IP地址通过email发送给作者。

解决

打开你的注册表编辑工具并且删除下列键值:

HKEY_CURRENT_USER\Software\Microsoft\CurrentVersion\Run\MSKernel32

HKEY_CURRENT_USER\Software\Microsoft\CurrentVersion\RunServer\Win32DLL

HKEY_CURRENT_USER\Software\Microsoft\CurrentVersion\Run\WIN_BUGSFIX

查找一个叫WIN-BUGFIX.exe的文件并删除它

删除文件$dirsystem\LOVE-LETTER-FOR-YOU.HTM

检查所有后缀为Vbs, vbe, js, jse, css, wsh, sct, hta, vbs, jpg, jpeg的文件,看是否已被感染,

如果是的话就删除它们。

如果安装了mIRC的话删除你的script.ini文件。

删除所有相关的email,或许还需要警告你的朋友们,收到相关信件时要小心:)

预防

[阅读全文]