分享
 
 
 

分布式拒绝服务攻击工具mstream(3)

王朝other·作者佚名  2008-05-21
窄屏简体版  字體: |||超大  

☆ 防御

我们没有时间完成这部分内容,任何针对stream/stream2 [12]或者其它DDoS工具 [08]的防御讨论都可一试。最后,看在上帝的份上,网管、系管们做好自身的安全防 卫工作吧,我晕倒。

☆ 弱点

由于Attacker、Handler、Agent之间的通讯未加密,很容易被Sniffer、Hijack等等。

Agent(s)不对命令来源做任何验证,我们可以利用"ping/pong"特性找出那些当前未做攻击的Agent(s)。

"pong"是Agent到Handler的唯一响应,"newserver"是Agent第一次启动时发给 Handler的。附录D介绍了Agent的安装,每次系统重启都会启动Agent。这意味着在系 统重启时可以抓到"newserver"包,我们不推荐这样去鉴别Agent的存在,至少不该是 首选动作。参看附录D、附录E。

Agent接收到一个格式错误的命令串(比如"stream foo bar")时,将发生 segmentation fault,导致Agent(s)不可用,但是很可能在系统重启时恢复工作。

向Agent发送太多命令导致打开的文件句柄过多而最终停止响应。

Agent进程是单线程的,意味着在攻击中它无法处理来自Handler的命令,一旦攻击开 始,Agent将失去控制。

Agent工作在多种flood攻击模式下时,攻击列表中的所有主机遭受同样时间长度的攻 击以及同样类型的攻击(比如ICMP主机不可达、TCP RST)。

☆ 可能的修正

1) Handler上针对到自己的连接请求做源端口过滤

2) 在Handler与Agent之间增加验证机制

3) 报文大小可选

4) 允许指定flood packets的TCP标志(ACK、RST、NUL、random、whatever)

5) Attacker与Handler之间的通讯加密

6) 增加内置命令

☆ 附录B - 检测mstream的snort规则

alert UDP any any -> any 6838 (msg: "IDS100/ddos-mstream-agent-to-handler"; content: "newserver"; )alert UDP any any -> any 10498 (msg: "IDS101/ddos-mstream-handler-to-agent"; content: "stream/"; )alert UDP any any -> any 10498 (msg: "IDS102/ddos-mstream-handler-ping-to-agent" ; content: "ping";)alert UDP any any -> any 10498 (msg: "IDS103/ddos-mstream-agent-pong-to-handler" ; content: "pong";)alert TCP any any -> any 12754 (msg: "IDS109/ddos-mstream-client-to-handler"; flags: S;)alert TCP any 12754 -> any any (msg: "IDS110/ddos-mstream-handler-to-client"; content: ">"; flags: AP;)alert TCP any any -> any 15104 (msg: "IDS111/ddos-mstream-client-to-handler"; flags: S;)alert TCP any 15104 -> any any (msg: "IDS112/ddos-mstream-handler-to-client"; content: ">"; flags: AP;)

☆ 附录C - 检测mstream的RID模板

start mstream-wildsend udp dport=10498 data="ping"recv udp dport=6838 data="pong" nmatch=2end mstream-wildstart mstream-publishedsend udp dport=7983 data="ping"recv udp dport=9325 data="pong" nmatch=2end mstream-published

scz注: 这里错误地使用了减号'-',证明这个模板是未经验证的

☆ 附录D - 最初的Agent系统的入侵和踪迹隐藏

通过检查Agent系统、询问管理员,确认发生过两次独立的入侵。第一个在2000年3月31之前,/etc/passwd中留下了"inertia"帐号,管理员于4月1号删除了该帐号。上载 安装rootkit (lrk4)和DDoS Agent ("rpc.wall")是在4月13号16:02(这里提及的所有 时间,除非特别声明,均为美国/太平洋时间或GMT-0700时间),留有ADM named攻击 的痕迹,4月15号05:55还登录了一次。系统日志被删除、擦除过,所以无法根据日志 判断发生过什么。

Dan Farmer和Wietse Venema提供过一个"Coroner's Toolkit [16]",利用其中的 "mactime"还是可以看到入侵者的某些行为。下列输出中的年份100显然是Y2K问题。--------------------------------------------------------------------------Apr 13 100 16:02:42 12060 .aa -rwxr-xr-x root/www root /bin/chown12660 m.m -r-sr-xr-x root/www bin /bin/loginApr 13 100 16:02:43 2048 mcmc drwxr-xr-x root/www root /bin12660 cc -r-sr-xr-x root/www bin /bin/login168748 .a. -rwxr-xr-x root/www root /usr/bin/as64796 .a. -rwxr-xr-x root/www root /usr/bin/egcs64796 .a. -rwxr-xr-x root/www root /usr/bin/gcc64796 .a. -rwxr-xr-x root/www root /usr/bin/i386-redhat-linux-gcc168496 .a. -rwxr-xr-x root/www root /usr/bin/ld12656 m.c -rws--x--x root/www root /usr/bin/old12656 m.c -r-xr-xr-x root/www bin /usr/bin/xstat2315 .a. -rw-r--r-- root/www root /usr/include/_G_config.h1313 .a. -rw-r--r-- root/www root /usr/include/alloca.h4090 .a. -rw-r--r-- root/www root /usr/include/arpa/inet.h3451 .a. -rw-r--r-- root/www root /usr/include/bits/byteswap.h13327 .a. -rw-r--r-- root/www root /usr/include/bits/confname.h168 .a. -rw-r--r-- root/www root /usr/include/bits/endian.h2283 .a. -rw-r--r-- root/www root /usr/include/bits/errno.h5107 .a. -rw-r--r-- root/www root /usr/include/bits/fcntl.h4647 .a. -rw-r--r-- root/www root /usr/include/bits/in.h3406 .a. -rw-r--r-- root/www root /usr/include/bits/posix_opt.h2842 .a. -rw-r--r-- root/www root /usr/include/bits/select.h4673 .a. -rw-r--r-- root/www root /usr/include/bits/sigset.h1716 .a. -rw-r--r-- root/www root /usr/include/bits/sockaddr.h9033 .a. -rw-r--r-- root/www root /usr/include/bits/socket.h1297 .a. -rw-r--r-- root/www root /usr/include/bits/stdio_lim.h2015 .a. -rw-r--r-- root/www root /usr/include/bits/time.h4673 .a. -rw-r--r-- root/www root /usr/include/bits/types.h1781 .a. -rw-r--r-- root/www root /usr/include/bits/uio.h1798 .a. -rw-r--r-- root/www root /usr/include/endian.h2481 .a. -rw-r--r-- root/www root /usr/include/errno.h4579 .a. -rw-r--r-- root/www root /usr/include/fcntl.h9433 .a. -rw-r--r-- root/www root /usr/include/features.h5861 .a. -rw-r--r-- root/www root /usr/include/getopt.h973 .a. -rw-r--r-- root/www root /usr/include/gnu/stubs.h10291 .a. -rw-r--r-- root/www root /usr/include/libio.h17327 .a. -rw-r--r-- root/www root /usr/include/netdb.h10779 .a. -rw-r--r-- root/www root /usr/include/netinet/in.h1591 .a. -rw-r--r-- root/www root /usr/include/netinet/in_systm.h9086 .a. -rw-r--r-- root/www root /usr/include/netinet/ip.h4855 .a. -rw-r--r-- root/www root /usr/include/netinet/tcp.h2550 .a. -rw-r--r-- root/www root /usr/include/rpc/netdb.h6467 .a. -rw-r--r-- root/www root /usr/include/stdint.h20816 .a. -rw-r--r-- root/www root /usr/include/stdio.h27654 .a. -rw-r--r-- root/www root /usr/include/stdlib.h13245 .a. -rw-r--r-- root/www root /usr/include/string.h2104 .a. -rw-r--r-- root/www root /usr/include/strings.h4932 .a. -rw-r--r-- root/www root /usr/include/sys/cdefs.h3359 .a. -rw-r--r-- root/www root /usr/include/sys/select.h7996 .a. -rw-r--r-- root/www root /usr/include/sys/socket.h1577 .a. -rw-r--r-- root/www root /usr/include/sys/sysmacros.h5337 .a. -rw-r--r-- root/www root /usr/include/sys/time.h5299 .a. -rw-r--r-- root/www root /usr/include/sys/types.h1907 .a. -rw-r--r-- root/www root /usr/include/sys/uio.h9314 .a. -rw-r--r-- root/www root /usr/include/time.h36708 .a. -rw-r--r-- root/www root /usr/include/unistd.h874 .a. -rw-r--r-- root/www root /usr/lib/crtn.o1446620 .a. -rwxr-xr-x root/www root /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/cc146816 .a. -rwxr-xr-x root/www root /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/collect288444 .a. -rwxr-xr-x root/www root /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/cpp1424 .a. -rw-r--r-- root/www root /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/crtend.o5794 .a. -rw-r--r-- root/www root /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stdarg.h9834 .a. -rw-r--r-- root/www root /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stddef.h770000 .a. -rw-r--r-- root/www root /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/libgcc.a1957 .a. -rw-r--r-- root/www root /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs178 .a. -rw-r--r-- root/www root /usr/lib/libc.so69638 .a. -rw-r--r-- root/www root /usr/lib/libc_nonshared.a6162 .a. -rw-r--r-- 1046 squid /usr/src/linux/include/asm-i386/errno.h1492 .a. -rw-r--r-- 1046 squid /usr/src/linux/include/asm-i386/socket.h277 .a. -rw-r--r-- 1046 squid /usr/src/linux/include/asm-i386/sockios.h305 .a. -rw-r--r-- 1046 squid /usr/src/linux/include/linux/errno.hApr 13 100 16:02:44 702 mcmc -rwxr-xr-x root/www root /etc/rc.d/rc.local1024 mcmc drwxr-xr-x root/www root /root/.ncftp9 mcmc lrwxrwxrwx root/www root /root/.ncftp/history9 mcmc lrwxrwxrwx root/www root /root/.ncftp/log9 mcmc lrwxrwxrwx root/www root /root/.ncftp/trace29696 m.c drwxr-xr-x root/www root /usr/bin17016 m.c -rwxr-xr-x root/www root /usr/bin/rpc.wall8460 .a. -rw-r--r-- root/www root /usr/lib/crt1.o1124 .a. -rw-r--r-- root/www root /usr/lib/crti.o1892 .a. -rw-r--r-- root/www root /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/crtbegin.o. . .Apr 15 100 05:55:09 1024 mcmc drwxr-xr-x root/www root /var/named1024 mcmc drwxr-xr-x root/www root /var/named/ADMROCKSApr 15 100 05:56:19 20437 .a. -rwxr-xr-x root/www root /usr/sbin/tcpdApr 15 100 05:56:20 34 .aa -rw-r--r-- root/www root /usr/libexec/awk/addy.awk35628 .a. -rwxr-xr-x root/www root /usr/sbin/in.telnetdApr 15 100 05:56:26 159576 .a. -rwxr-xr-x root/www root /usr/bin/pico975 .a. -rw-r--r-- root/www root /usr/share/terminfo/v/vt200975 .a. -rw-r--r-- root/www root /usr/share/terminfo/v/vt220--------------------------------------------------------------------------

从这个输出中可以观察到如下信息

2000年4月13号16:02创建/bin/login、运行/bin/chown

与此同时,运行gcc/egcs进行编译,创建了/bin/old和/bin/xstat。.h文件的Access times表明被编译的程序使用了socket

接下来/etc/rc.d/rc.local被修改,在最后增加了一行"/usr/bin/rpc.wall",于是每次重启系统时都会自动启动Agent。ncftp日志文件被修改(先删除,然后符号 链接到/dev/null以阻止ncftp文件传输日志产生)

程序/usr/bin/rpc.wall被修改,C运行时库被访问过,这意味着rpc.wall运行过。

4月15号05:55,似乎有一次针对本机的ADM named远程缓冲区溢出攻击,然后访问 tcpd wrapped service激活in.telnetd。rootkit的配置文件/usr/libexec/awk/addy.awk也被访问过。我们不清楚这是否仅仅碰巧是第三次入侵企图。

6秒后/usr/bin/pico被运行,vt200终端类型。既然被安装了特洛伊木马的login包含"vt200"字符串,可以确认远程root shell后门至少两天前就安装好了。

管理员只删除了/etc/passwd中的"inertia"帐号,并未删除/etc/shadow中的相应内容

--------------------------------------------------------------------------inertia:iUCNir1cd8pI2:::::::--------------------------------------------------------------------------

不到1秒就破解出这个口令"hi" 用strings命令观察/bin/login,带有典型的特洛伊木马特征,一个非标准命令(这里 是/usr/bin/xstat)和一个嵌入式终端类型(vt200)用于激活远程root shell--------------------------------------------------------------------------. . .login/bin/sh/usr/bin/xstatTERMbcshjvmudzwxftejkvt200%s=%sinit.c. . .--------------------------------------------------------------------------

用strings命令观察/bin/ls和/bin/ps,显示rootkit配置文件分别是 /usr/libexec/awk/files.awk和/usr/libexec/awk/ps.awk。另一个配置文件是前面 提到的/usr/libexec/awk/addy.awk。

一个有用的窍门在于标准Linux rootkit编译时(由Makefile决定)保留了调试信息--------------------------------------------------------------------------. . .ls.c/home/XXXXX/stuff/lrk4/fileutils-3.13/src/gcc2_compiled.int:t1=r1;-2147483648;2147483647;char:t2=r2;0;127;. . .--------------------------------------------------------------------------

本机并未使用telnetd支持远程登录,而是SSH。入侵者在/etc/inetd.conf中增加了如下内容--------------------------------------------------------------------------. . .#finger stream tcp nowait root /usr/sbin/tcpd in.fingerd#cfinger stream tcp nowait root /usr/sbin/tcpd in.cfingerd#systat stream tcp nowait guest /usr/sbin/tcpd /bin/ps -auwwx#netstat stream tcp nowait guest /usr/sbin/tcpd /bin/netstat -f inetworking stream tcp nowait root /usr/sbin/tcpd in.telnetd. . .--------------------------------------------------------------------------

然后在/etc/services中增加了如下内容--------------------------------------------------------------------------working 1120/tcp # Kerberos working daemon--------------------------------------------------------------------------

用lsof可以看到这个侦听端口--------------------------------------------------------------------------inetd 353 root 4u IPv4 375 UDP *:talkinetd 353 root 5u IPv4 376 UDP *:ntalkinetd 353 root 6u IPv4 377 TCP *:working (LISTEN)inetd 353 root 8u IPv4 378 TCP *:time (LISTEN)inetd 353 root 10u IPv4 379 UDP *:timeinetd 353 root 11u IPv4 380 TCP *:auth (LISTEN)inetd 353 root 12u IPv4 381 TCP *:linuxconf (LISTEN)-------------------------------------------------------------------------

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有