溯源(三)之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 //看某一个页面被访问的次数

在这里插入图片描述

grep 192.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" | xargs grep '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
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千负

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值