应急响应2- linux入侵排查

01、检查系统账号

从攻击者的角度来说,入侵者在入侵成功后,往往会留下后门以便再次访问被入侵的系统,而创建系统账号是一种比较常见的后门方式。在做入侵排查的时候,用户配置文件/etc/passwd和密码配置文件/etc/shadow是需要去重点关注的地方

(1)查询特权用户特权用户(uid 为0)

  awk -F: '$3==0{print $1}' /etc/passwd

   注:以冒号进行分割,第三个参数等于0 并且 打印第一个参数  在/etc/passwd中查找

(2)查询可以远程登录的帐号信息

  more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"

  注:在影子文件中  利用grep -v 排除以#号开头的一行,查询ALL=(ALL)。可以远程登录的账号信息

(3)禁用或删除多余及可疑的帐号

usermod -L user       禁用帐号,帐号无法登录,/etc/shadow第二栏为!开头

userdel user        删除user用户

userdel -r user    将删除user用户,并且将/home目录下的user目录一并删除

 

(4)查看当前登录当前系统的用户信息

who     查看当前登录用户(tty本地登陆 pts远程登录)

 w         查看用户登录的IP是哪些

uptime   查看登录了多久 登录的用户数量

02、检查异常端口

(1)使用netstat 网络连接命令,分析可疑端口、IP、PID等信息

 netstat  -antlp | more

(2)如发现异常的网络连接需要持续观察,可抓包分析

tcpdump -c 10 -q

03、检查可疑进程

(1)使用ps命令列出系统中当前运行的那些进程,分析异常的进程名、PID,可疑的命令行等。

ps aux 或者  ps -ef

(2)通过top命令显示系统中各个进程的资源占用状况,如发现资源占用过高

top

(3)如发现异常,可使用一下命令进一步排查:

查看该进程启动的完整命令行:

ps eho command -p PID 

(4)$PID查看该进程启动时候所在的目录:   

readlink /proc/$PID/cwd

(5)查看下pid所对应的进程文件路径:

ls -al /proc/PID/exe

(6)列出该进程所打开的所有文件:

losf -i pid

04、检查系统服务

Linux系统服务管理,CentOS7使用systemd控制   CentOS6之前使用chkconfig控制。

(1)对于systemd服务管理器来说,可以通过下述方式查看开机自启的服务:

systemctl list-unit-files --type=service | grep "enabled"

chkconfig  --list  

chkconfig --list | grep "3:on\|5:on"

05、检查开机启动项

(1)检查启动项脚本

more /etc/rc.local /etc/rc.d/rc[0~6].d ls -l /etc/rc.d/rc3.d/

06、检查计划任务

利用计划任务进行权限维持,可作为一种持久性机制被入侵者利用。检查异常的计划任务,需要重点关注以下目录中是否存在恶意脚本。

/var/spool/cron/*
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/*
/etc/cron.hourly/*
/etc/cron.monthly/*
/etc/cron.weekly/
/etc/anacrontab
/var/spool/anacron/*

07、检查异常文件

1、查看敏感目录,如/tmp目录下的文件,同时注意隐藏文件夹,以“..”为名的文件夹具有隐藏属性

2、得到发现WEBSHELL、远控木马的创建时间,如何找出同一时间范围内创建的文件?

可以使用find命令来查找,

如 find /opt -iname "*" -atime 1 -type f

找出 /opt 下一天前访问过的文件

3、针对可疑文件可以使用stat进行创建修改时间。

08、检查历史命令

一般而言,入侵者获取shell之后,会执行一些系统命令从而在主机上留下痕迹,我们可以通过history命令查询shell命令的执行历史。

(1)查询某个用户在系统上执行了什么命令


a)保存1万条命令
sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile

b)在/etc/profile的文件尾部添加如下行数配置信息:
######jiagu history xianshi#########
USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
export HISTTIMEFORMAT="%F %T $USER_IP `whoami` "
shopt -s histappend
export PROMPT_COMMAND="history -a"
######### jiagu history xianshi ##########

c)source /etc/profile让配置生效

使用root用户登录系统,检查/home目录下的用户主目录的.bash_history文件

(2)默认情况下,系统可以保存1000条的历史命令,并不记录命令执行的时间,根据需要进行安全加固。

09、检查系统日志

/var/log/btmp
记录错误登录日志,这个文件是二进制文件,不能直接vi查看,而要使用lastb命令查看。
/var/log/lastlog
记录系统中所有用户最后一次登录时间的日志,这个文件是二进制文件,不能直接vi,而要使用lastlog命令查看。
/var/log/wtmp
永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。同样这个文件也是一个二进制文件,不能直接vi,而需要使用last命令来查看。
/var/log/utmp
记录当前已经登录的用户信息,这个文件会随着用户的登录和注销不断变化,只记录当前登录用户的信息。同样这个文件不能直接vi,而要使用w,who,users等命令来查询。
/var/log/secure
记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH登录,su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中
 

一般,我们需要重点去关注secure安全日志,检查系统错误登陆日志,统计IP重试次数,成功登录的时间、用户名和ip,确认账号是否存在暴力破解或异常登录的情况。

1、定位有多少IP在爆破主机的root帐号:
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more

2、登录成功的日期、用户名、IP:
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'

 

参考链接

https://mp.weixin.qq.com/s/LjybaDJqnyxnRqPfOrrHGA

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小翠儿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值