attacker -> handler(s) : 6723/tcp (in published source) 15104/tcp ("in the wild") 12754/tcp (in recovered source)agent -> handler(s) : 9325/udp (in published source) 6838/udp ("in the wild")handler -> agent(s) : 7983/udp (in published source) 10498/udp ("in the wild")
handler所等待的命令应该完整地位于单个tcp报文的数据区(pdu)中,而不是断续的字节流.这意味着不能使用"telnet"控制handler,netcat [19]可以胜任.securityfocus [20]中的源代码并未包含这样的客户端工具. 【程序编程相关:Phishing:网络钓鱼骗术揭秘】
attacker到handler的远程控制是通过tcp连接完成的,端口号不定(很容易产生变体). 【推荐阅读:什么是信息安全?】
与trinoo类似,handler(s)与agent(s)之间的通讯通过udp报文完成.agents命令行靠斜杠(/)分隔参数,多项参数自身靠冒号(:)分隔. 【扩展信息:Sophos:5月10大流行病毒出炉 Z】
attacker到handler的传输未做加密处理,尽管stacheldraht表明增加blowfishblock cipher并不困难.命令行靠空格分隔参数.
我们所检查的代码中最多允许3个attackers连接到一个handler,或许这是一个保护性措施,也可能是个多余的访问限制.
连接建立后,必须提交正确的口令,缺省值如下
attacker -> handler(s) : "sex" (in published source [20]) "n7%diapf!" (in recovered source)
如果口令不正确,所有目前已建立连接的用户被提醒有人正试图访问该handler,然后关闭这个未通过验证的连接.如果口令正确,所有目前已建立连接的用户被提醒产生新的会话连接,通过验证的用户得到一个"> "提示符.
☆ handler命令
handler命令行至多由3个空格分隔的参数组成(argv[0] - argv[2]).
如果攻击者建立连接后420秒内未输入一条命令,连接终止.
handler命令集如下
help 显示如下信息
available commands: stream stream attack !(进行stream攻击) servers prints all known servers.(显示所有已知servers/agents) ping ping all servers. who tells you the ips of the people logged in mstream lets you stream more than one ip at a time
servers
显示当前所有已知agents
who
显示当前已建立连接的用户
ping
确认agents的活动状态.对所有已知agents发送"ping",每收到一个"pong"回应 就报告用户.
stream
针对单个主机攻击,seconds指定攻击持续时间.handler将主机名解析成ip地址 并发送命令"mstream/arg1:arg1/arg2"到所有agents,这里arg1是victim目标ip 地址,arg2是攻击持续时间.
mstream
针对多台主机攻击,seconds指定攻击持续时间.handler发送命令 "mstream/arg1/arg2"到所有agents,这里arg1是冒号分隔的victim目标ip地址 列表,arg2是攻击持续时间.
quit
终止attacker到handler的连接
☆ agent命令
handler到agent的命令位于udp报文的数据区(pdu)中,未做加密处理(尽管这很容易做到).
目前仅有三条agent命令.agent命令行是一个靠斜杠("/")分隔参数的简单字符串.
ping
对发送该命令的ip响应以"pong".
stream/ip/seconds
开始对指定ip进行攻击,seconds指定攻击持续时间.
mstream/ip1[:ip2[:ipn]]/seconds
开始对指定ip列表进行攻击,seconds指定攻击持续时间.
尽管agent可以接受stream与mstream两种命令,但实际只有mstream命令用于handler与agent之间."stream 192.168.0.100 10"将被转换成"mstream/192.168.0.100:192.168.0.100/10",然后发送到agent.不清楚为何要这样处理,或许这只是表明mstream的开发过程快速而凌乱.
☆ 口令保护
handler受口令保护,以防止其被任意接管.口令未做加密处理,仅仅是明文字符串之间的比较.可以利用sniffer获取口令明文.
这里应该再次提醒的是,mstream有一个特性是其它ddos工具所不具有的,它会提醒所有已建立连接的用户有新的连接试图建立,无论成功与否.
令人惊奇的是handler与agent之间无口令保护.
☆ 指纹
前面提到了,handler(s)与agent(s)之间的命令串是明文字符串,在通讯报文中可见.
对agent使用strings命令可以看到这样一些明文字符串(为了节省显示空间做了处理)
... 下一页