【创宇小课堂】Linux入侵应急响应与排查

  • A+
所属分类:安全闲碎

Author:whywh


入侵者在入侵成功后,往往会留下后门以便再次访问被入侵的系统, 而创建系统账号是一种比较常见的后门方式。



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


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


查找远程可以登录的账户


awk '/$1|$5|$6/{print $1}' /etc/shadow


  • $1:MD5(长度 22个字符)

  • $5:SHA-256(长度 43 个字符)

  • $6:SHA-512(长度86 个字符)


检查sudo权限


cat /etc/sudoers | grep -v "^#|^$" | grep "ALL=(ALL"


删除或锁定账号


通过上面的步骤可以找到可疑的账号

usermod -L rooot #禁用帐号,帐号无法登录
userdel rooot    #删除user用户

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


查看当前登录系统的信息


who    #查看当前登录用户(tty本地登陆  pts远程登录)
w      #查看系统信息,想知道某一时刻用户的行为

uptime #查看登陆多久、多少用户,负载


检查异常端口


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

netstat -tunlp | less


抓包分析


tcpdump -c 10 -q #精简模式显示 10个包


使用ps命令检查可疑的进程


ps -ef


查超系统中占用资源最高的资源


top


发现异常进一步检查


ps eho command -p $PID  #查看该进程启动的完整命令行
readlink /proc/$PID/cwd #查看该进程启动时候所在的目录

ls -l /proc/$PID/exe    #查看下pid所对应的进程文件路径

strings -f /proc/$PID/environ | cut -f2 -d '' #查看该进程启动时的完整环境变量:

lsof -p $PID #列出该进程所打开的所有文件


检查系统服务


Linux系统服务管理,CentOS7使用systemd控制 CentOS6之前使用chkconfig控制。查看正在运行的服务 service --status-all | grep running


检查开机自启的服务


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

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


chkconfig就是CentOS6以前用来控制系统服务的工具,查看服务自启动状态

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


检查启动项脚本


命令查看下开机启动项中是否有异常的启动服务。

cat /etc/rc.local


检查计划任务


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

/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/*


检查系统的异常文件


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


ls -al


查找1天以内被访问过的文件


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


-iname不区分大小写,-atime最近一次被访问的时间,-type文件类型


检查历史命令


  1. 查看被入侵后,在系统上执行过哪些命令,使用root用户登录系统,检查/home目录下的用户主目录的.bash_history文件

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


检查系统日志


在Linux上一般跟系统相关的日志默认都会放到/var/log下面,
若是一旦出现问题,用户就可以通过查看日志来迅速定位,

及时解决问题。常用日志文件如下:

/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授权, 甚至添加用户和修改用户密码都会记录在这个日志文件中


数据库日志


在数据泄漏方面,mysql或者其他数据库的日志就非常重要了,首先查看mysql配置文件配置了哪几种日志记录,如bin log,query log慢查询日志,慢查询日志要在超过特定阀值,才会触发


登陆mysql执行,查看是否开启日志记录

show variables like '%general%';
show variables like 'slow_query%';


查看相关的日志

【创宇小课堂】Linux入侵应急响应与排查


Mysql慢查询日志分析工具mysqldumpslow,使用方法如下

https://blog.csdn.net/weixin_34681072/article/details/113160046


查找登录系统失败的20个账号


lastb | awk '{print $1}' | sort | uniq -c | sort -nr | head -n 20  


查看哪些IP在爆破


grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c


查看哪些IP登录成功了


grep "Accepted" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more


登录成功的日期,用户名,IP


gerp "Accepted" /var/log/secure | awk '{print $1,$2,$3,$9,$11}'


webshell排查


D盾查杀

使用自行研发不分扩展名的代码分析引擎,能分析更为隐藏的 WebShell 后门行为。

兼容性:只提供 Windows 版本。

工具下载地址:http://www.d99net.net


河马查杀


专注 WebShell 查杀研究,拥有海量 WebShell 样本和自主查杀技术,采用传统特征+云端大数据双引擎的查杀技术。查杀速度快、精度高、误报低。

兼容性:支持 Windows、Linux,支持在线查杀。

官方网站:https://www.shellpub.com


【创宇小课堂】Linux入侵应急响应与排查


【创宇小课堂】Linux入侵应急响应与排查

本文始发于微信公众号(安全宇宙):【创宇小课堂】Linux入侵应急响应与排查

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: