Lion蠕虫分析
原著:Max Vision
前言
Lion蠕虫从2001年4月6日,由http://www.sans.org报道以来引起了广泛的关注。它最初来源于(中国红客联盟,作者是一位中国“红客”-lion。这个蠕虫是这个组织针对日本修改教科书一事进行报复的一部分,从Lion蠕虫感染系统后行为来看,其主要目的是搜集系统信息,可能是下一步攻击的前奏。下面是HUC关于Lion蠕虫的宣言:
because of the Japan's disrepect,cnhonker had been roused ,and the lion worm is just
to tell the Japanese chinese is not sheep,they must be answer for.They must assue
the obligation with their crime.They must assue their artion for the educational book
这篇文章的作者在文章中对此表达了自己的不满,认为不应该以此目的散布Lion蠕虫。在翻译时,我将这一部分省略了。不过,如果单纯从技术的角度来看,这个蠕虫几乎没有任何新意,简直是抄袭,它的传播之所以能够引起如此大的震动,主要要归功于BIND8的两个安全漏洞。是这两个珠联壁合的安全缺陷使Lion蠕虫能够大范围攻击DNS系统,快速传播。
综述
Lion蠕虫有三个非常清晰的版本,是一个由脚本驱动的蠕虫。第一版有一个感染例程和一个t0rn rootkit;第二版是第一版的一个改进版本,只是没有rootkit;第三版几乎就是ramen蠕虫的一个翻版,只是exploit部分改为利用BIND8安全缺陷。
这三个版本有同样的核心部分。这个蠕虫有一个利用TCP连接进行扫描的端口扫描程序,BIND8 exploit程序,还有一些脚本用来粘连蠕虫的各个部分,并驱动蠕虫。前两个版本的蠕虫是从一台服务器上下栽自己(中国境内的一台FreeBSD服务器)。而第三版使用了分布式的传播代码,从前一台被感染的系统下载自身,这些代码来自ramen蠕虫,所有已经发现的Lion蠕虫中都有下面这些文件:
1).li0n.sh 作者:蠕虫的作者 shell脚本,删除tcpwrapers访问控制列表,运行getip.sh,把蠕虫加入启动脚本,接着运行star.sh
2).getip.sh 作者:蠕虫的作者 shell脚本,把系统的IP地址、操作系统版本信息、/etc/passwd文件和/etc/shadow文件发送到攻击者的email地址(li0nkit@china.com)
3).star.sh 作者:蠕虫的作者 shell脚本,启动scan.sh和hack.sh为后台进程。
4).scan.sh 作者:蠕虫的作者 shell脚本,停止所有本地正在运行的BIND进程,运行randb选择一个B类网址,接着对目标运行pscan,把结果保存在bindname.log。
5).randb 作者:不详 Linux ELF二进制文件,打印一个随机的B类IP地址,和ADMw0rm的gimmeRAND.c文件极为类似。
6).pscan 作者:不详 Linux ELF二进制文件,是一个端口扫描程序,在一个给定的A、B、C范围中扫描一个单一的TCP端口。首次发现,但是在源代码中没有作者的声明。
7).hack.sh 作者:蠕虫的作者 shell脚本,从bindname.log读取并且使用bindx.sh攻击目标。
8).bindx.sh 作者:蠕虫的作者 shell脚本,启动bind攻击远程目标
9).bind 作者:LSD Linux ELF二进制文件,攻击有安全缺陷的bind-8.2.x BIND服务器。
这是一个典型的蠕虫,从以前的蠕虫中抄袭了很多代码,例如:ADMworm(1998)、Millenium Worm(1999)和Ramen Worm(2001)。除非认为hack.sh是为了驱动多个攻击脚本,否则这个文件是多余的。这个蠕虫的作者在其中只放了一个攻击程序,但是为使用多种攻击留下扩展空间。其它的脚本也是从其它的蠕虫改进的。
三个版本的lion蠕虫都是用同样的传染、繁殖方式。lion蠕虫的网络活动是从53/TCP端口开始的,它随机扫描B类IP地址段。当发现一个BIND域名服务器,就启动攻击程序攻击目标。攻击成功后,运行下载命令把自己下载到被侵入的主机,展开包,运行启动脚本。
lion蠕虫所做的第一步是使用pscan探测一个随机的B类IP地址空间。我修理了一下randb程序使其总是返回10.0.0。我之所以选择C类IP地址空间10.0.0.0/24,只不过是要减小日志文件的大小。pscan程序使用完全连接扫描,它向这个地址空间的每个地址发出了一个同步包(SYN),庋涌炝松璧乃俣龋窃谌罩局幸布尤肓烁嗟摹霸胍簟保勘曛骰刂吩?0.0.0.23运行RedHat Linux6.2。被Lion蠕虫感染的攻击源主机在另外一个子网。如果在同一个子网,基于TCP连接的端口扫描程序将不对这个子网的主机进行扫描,除非响应ARP请求。
建立一个完整的连接:
03/26-02:09:58.233466 192.168.0.3:4556 -> 10.0.0.23:53
TCP TTL:64 TOS:0x0 ID:56799 IpLen:20 DgmLen:60 DF
******S* Seq: 0x16322CA3 Ack: 0x0 Win: 0x7D78 TcpLen: 40
03/26-02:09:58.247112 10.0.0.23:53 -> 192.168.0.3:4556
TCP TTL:64 TOS:0x0 ID
原著:Max Vision
前言
Lion蠕虫从2001年4月6日,由http://www.sans.org报道以来引起了广泛的关注。它最初来源于(中国红客联盟,作者是一位中国“红客”-lion。这个蠕虫是这个组织针对日本修改教科书一事进行报复的一部分,从Lion蠕虫感染系统后行为来看,其主要目的是搜集系统信息,可能是下一步攻击的前奏。下面是HUC关于Lion蠕虫的宣言:
because of the Japan's disrepect,cnhonker had been roused ,and the lion worm is just
to tell the Japanese chinese is not sheep,they must be answer for.They must assue
the obligation with their crime.They must assue their artion for the educational book
这篇文章的作者在文章中对此表达了自己的不满,认为不应该以此目的散布Lion蠕虫。在翻译时,我将这一部分省略了。不过,如果单纯从技术的角度来看,这个蠕虫几乎没有任何新意,简直是抄袭,它的传播之所以能够引起如此大的震动,主要要归功于BIND8的两个安全漏洞。是这两个珠联壁合的安全缺陷使Lion蠕虫能够大范围攻击DNS系统,快速传播。
综述
Lion蠕虫有三个非常清晰的版本,是一个由脚本驱动的蠕虫。第一版有一个感染例程和一个t0rn rootkit;第二版是第一版的一个改进版本,只是没有rootkit;第三版几乎就是ramen蠕虫的一个翻版,只是exploit部分改为利用BIND8安全缺陷。
这三个版本有同样的核心部分。这个蠕虫有一个利用TCP连接进行扫描的端口扫描程序,BIND8 exploit程序,还有一些脚本用来粘连蠕虫的各个部分,并驱动蠕虫。前两个版本的蠕虫是从一台服务器上下栽自己(中国境内的一台FreeBSD服务器)。而第三版使用了分布式的传播代码,从前一台被感染的系统下载自身,这些代码来自ramen蠕虫,所有已经发现的Lion蠕虫中都有下面这些文件:
1).li0n.sh 作者:蠕虫的作者 shell脚本,删除tcpwrapers访问控制列表,运行getip.sh,把蠕虫加入启动脚本,接着运行star.sh
2).getip.sh 作者:蠕虫的作者 shell脚本,把系统的IP地址、操作系统版本信息、/etc/passwd文件和/etc/shadow文件发送到攻击者的email地址(li0nkit@china.com)
3).star.sh 作者:蠕虫的作者 shell脚本,启动scan.sh和hack.sh为后台进程。
4).scan.sh 作者:蠕虫的作者 shell脚本,停止所有本地正在运行的BIND进程,运行randb选择一个B类网址,接着对目标运行pscan,把结果保存在bindname.log。
5).randb 作者:不详 Linux ELF二进制文件,打印一个随机的B类IP地址,和ADMw0rm的gimmeRAND.c文件极为类似。
6).pscan 作者:不详 Linux ELF二进制文件,是一个端口扫描程序,在一个给定的A、B、C范围中扫描一个单一的TCP端口。首次发现,但是在源代码中没有作者的声明。
7).hack.sh 作者:蠕虫的作者 shell脚本,从bindname.log读取并且使用bindx.sh攻击目标。
8).bindx.sh 作者:蠕虫的作者 shell脚本,启动bind攻击远程目标
9).bind 作者:LSD Linux ELF二进制文件,攻击有安全缺陷的bind-8.2.x BIND服务器。
这是一个典型的蠕虫,从以前的蠕虫中抄袭了很多代码,例如:ADMworm(1998)、Millenium Worm(1999)和Ramen Worm(2001)。除非认为hack.sh是为了驱动多个攻击脚本,否则这个文件是多余的。这个蠕虫的作者在其中只放了一个攻击程序,但是为使用多种攻击留下扩展空间。其它的脚本也是从其它的蠕虫改进的。
三个版本的lion蠕虫都是用同样的传染、繁殖方式。lion蠕虫的网络活动是从53/TCP端口开始的,它随机扫描B类IP地址段。当发现一个BIND域名服务器,就启动攻击程序攻击目标。攻击成功后,运行下载命令把自己下载到被侵入的主机,展开包,运行启动脚本。
lion蠕虫所做的第一步是使用pscan探测一个随机的B类IP地址空间。我修理了一下randb程序使其总是返回10.0.0。我之所以选择C类IP地址空间10.0.0.0/24,只不过是要减小日志文件的大小。pscan程序使用完全连接扫描,它向这个地址空间的每个地址发出了一个同步包(SYN),庋涌炝松璧乃俣龋窃谌罩局幸布尤肓烁嗟摹霸胍簟保勘曛骰刂吩?0.0.0.23运行RedHat Linux6.2。被Lion蠕虫感染的攻击源主机在另外一个子网。如果在同一个子网,基于TCP连接的端口扫描程序将不对这个子网的主机进行扫描,除非响应ARP请求。
建立一个完整的连接:
03/26-02:09:58.233466 192.168.0.3:4556 -> 10.0.0.23:53
TCP TTL:64 TOS:0x0 ID:56799 IpLen:20 DgmLen:60 DF
******S* Seq: 0x16322CA3 Ack: 0x0 Win: 0x7D78 TcpLen: 40
03/26-02:09:58.247112 10.0.0.23:53 -> 192.168.0.3:4556
TCP TTL:64 TOS:0x0 ID