0


溯源(三)之Linux-入侵排查

溯源(一)之溯源的概念与意义
溯源(二)之 windows-还原攻击路径

Linux入侵排查

日志分析

web日志分析

由于操作系统的不同,Windows是图形化的界面,而Linux是命令行的界面,在Linux系统中,如果我们要去入侵排查,筛选,也只能用命令去执行

在排查Linux系统时,可以多注意当天访问次数最多的一个IP,因为攻击者在攻击网站时,会进行漏洞扫描等等会产生大量连接的行为,因此往往当天访问次数最多的IP很有可能就是攻击者的IP

cut -d- -f 1 log_file|uniq -c |sort -rn |head -20 //列出当天访问次数最多的IP命令

在这里插入图片描述
这样可以查看日志文件中最多的IP

awk'{++S[$1]}END {for (a in S) print a,S[a]}'log_file //查看每一个IP访问了多少个页面

在这里插入图片描述

grep"/index.php" log_file |wc -l //看某一个页面被访问的次数

在这里插入图片描述

grep192.168.0.106 log_file|awk'{print $1,$7}' //查看某一个IP访问了哪些页面

在这里插入图片描述

grep -E -i "select" logfile //SQL注入检攻击检测

在这里插入图片描述

grep -E -i " (S)%26%23x3c%3B(S+)%3E|(S)%26%23x3c%3B(S+)%2F%3E|(S+)<(S+)>|(S+)<(S+)/" logfile    //xss跨站脚本攻击检测
grep -E -i "ping%20-c%20|ls%20|cat%20|%20pwd|net user" logfile //命令注入攻击攻击检测
grep -E -i "eval|%eval|%execute|%3binsert|%20makewebtaski|/1.asp|/1.jsp|/1.php|/1.aspx%if" logfile //网站被植入webshell后门检测

在这里插入图片描述

grep -E -i "login" /www/logs/access.log |grep -E -i "POST"|grep -E -i "200" //暴力破解账号攻击检测

文件分析

检查异常系统文件

find -mtime 0 -name "*.php" //查找24小时内被修改的php文件,当然想要查询其他类型的文件大家可以自己替换

在这里插入图片描述

find -type f -name "*.php"|xargsgrep'eval'|more //查找一句话木马文件

在这里插入图片描述

find -ctime 0 -name "*.php" //查找今天新增加的文件
-1 代表前一天
-2 代表前二天
以此类推

在这里插入图片描述

find -iname "*.php" -perm 777 //查找被赋予777权限的php文件

在这里插入图片描述

find -user root //查找root所属组的文件

在这里插入图片描述

find -nouser //查找垃圾文件
awk'{print substr($4,2,11)}' logfile |sort|uniq -c //查找某一天的访问记录有多少条

在这里插入图片描述

awk -F:'length($2)==0 {print $1}' /etc/shadow //查找空口令账号

系统日志分析

Linux系统中系统日志具体位置及作用如下图所示

在这里插入图片描述

系统安全日志存放位置:

cat /var/log/secure    // Centos系统
cat /var/log/auth      //Ubuntu系统
一般来说对应的系统有对应的日志存放位置,如果不知道对应日志存放的位置,可以运行下面这条命令
vim /etc/rsyslog.conf //查看日志存放位置

在这里插入图片描述

grep"Failed password" /var/log/auth.log |wc -l //密码验证失败

在这里插入图片描述
可以看到这里是0次

grep"Accepted password for" /var/log/auth.log //密码认证成功

在这里插入图片描述

可以看到这里有一条远程登陆并且密码认证成功的记录,如果短时间内有大量登录失败的记录,那么说明服务器很可能遭受到了暴力破解

grep"Failed password" /var/log/auth.log |awk'{if (NF==16){c[$13]++}else{c[$11]++}}END{for(u in c)print u,c[u]}'|sort -k 2 -nr |head //查看每个ip登录失败的次数    

在这里插入图片描述

grep"Failed password" /var/log/auth.log |awk'{if (NF==16){c[$11]++}else{c[$9]++}}END{for(u in c)print u,c[u]}'|sort -k 2 -nr |head //查看每个用户名登录失败的次数

在这里插入图片描述

lastb //查看登录失败的记录

在这里插入图片描述

last //查看登录成功的记录

在这里插入图片描述

/etc/passwd 是我们在排查Linux系统异常账号时需要去排查的,在排查异常账号时要注意异常账号的uid是不是0,因为攻击者常常会把新增加的账号uid设为0,以此来获得同root用户相同的权限,同时nologin也是我们需要重点排查的一个地方,nologin代表用户从来没有登陆过,如果出现了其他的,需要注意一下

在这里插入图片描述

ls -l /etc/passwd //可以查看文件修改时间,如果文件被修改过,什么时候新增加了用户,可以从这里看出来

在这里插入图片描述

awk -F: '$3==0{print $1}' /etc/passwd //查看权限为特殊权限的用户

在这里插入图片描述

这样也能查出系统中存在的恶意账户,一般攻击者在新增加账户时都会设置成root权限

进程分析

netstat -napt //查找网络连接的状态

在这里插入图片描述

top //查看系统占用程序,如果是占用非常高的程序,有可能遭受到了挖矿木马

在这里插入图片描述

ls -alt /proc/PID //查找恶意程序的路径

在这里插入图片描述在这里插入图片描述

可以看到该可执行程序路径在这,如果确定该程序是恶意进程,那我们就需要对其进行删除等操作

kill PID //杀死恶意程序

假如某些恶意程序打开或者关联了其他恶意程序,我们可以使用以下命令查看

lsof -p PID

在这里插入图片描述

我们在进行异常经常排查时,有些恶意进程可能是被攻击者做了隐藏的,我们可以使用以下命令查看被攻击者隐藏的进程

ps -ef|awk'{print}'|sort -n |uniq>1
ls /proc|sort -n |uniq>2

这里因为我的机器上没有隐藏进程,就暂时不提供图片了,把命令给到大家就行了

计划任务

cat /var/spool/cron/crontabs/root //查看隐藏计划任务
crontab -u root -l
cat /etc/rc.d/rc.local
ls /etc/rc3.d

本文转载自: https://blog.csdn.net/qq_64973687/article/details/129722985
版权归原作者 千负 所有, 如有侵权,请联系我们删除。

“溯源(三)之Linux-入侵排查”的评论:

还没有评论