主要是阶段性的总结一些Linux下的应急响应常用命令及技巧
文章目录
登录和终端信息
查看登录用户信息
last
用于显示系统第一次开机以来登录用户信息
使用权限:所有使用者。
最后一列显示主机IP地址
last -n 5 -a -i
查看登录失败信息
会读取位于/var/log目录下,名称为btmp的文件,并把该文件内容记录的登入失败的用户名单,全部显示出来
lastb
查看用户上一次的登录情况
lastlog
查看当前登录系统的情况
who
w
显示来源who -l -H
查看登录成功信息
grep 'Accepted' /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr
查看登录失败信息
``
强制用户下线
pkill -kill -t pts/1 (pts/1为异常tty终端)
终端历史命令
·history
.bash_history
用户信息
查看是否有新增用户
less /etc/passwd
查看是否有特权用户
grep :0 /etc/passwd
查看/etc/passwd最后修改时间
ll -l /etc/passwd
查看特权用户
awk -F: '$3==0 {print $5}' /etc/passwd
查看是否存在空口令用户
awk -F: 'length($2)==0 {print $1}' /etc/shadow
进程信息
查看进程
ps aux
检查可疑进程
lsof命令
用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复删除的文件。是十分方便的系统监视工具,因为lsof命令需要访问核心内存和各种文件,所以需要root用户执行。
原理
在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因 为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。
lsof -p <pid>
实例
查看root启动了什么进程 lsof -u root
8080端口是哪个进程打开的lsof -i:8080
进程信息
ps aux
ps -ef
查看进程cpu占比
top
检查隐藏进程
ps -ef|awk ‘{print }’|sort -n|uniq >1
ls /porc |sort -n|uniq >2
diff 1 2
文件信息
md5校验完整性
md5sum <文件名>
查找suid和sgid文件
具有setUID(-perm -4000)或者具有setGID(-perm -2000)权限的命令
find / -uid 0 -perm -4000 -o -perm -2000 -print
检查文件的完整性(还有其它/bin目录下的文件)
rpm -qf /bin/ls
可疑文件筛查
根目录下所有.jsp后缀文件
find / -name *.jsp
查找24h内被修改的jsp文件
find ./ -mtime 0 -name "*.jsp"
查找7天内被修改的jsp文件
find ./ -mtime -7 -name "*.jsp"
最近3天创建的文件
find -type f -ctime -3
最近3天修改过的文件
find -type f -mtime -3
需要重点关注一下 /tmp、/var/tmp、/dev/shm目录,这些目录下所有用户具备可读可写可执行权限.
在线查毒网站
https://www.virustotal.com
http://www.virscan.org
网络信息
netstat
实际的玩法很多,这里只能举几个例子
netstat -anp
netstat -antlp | grep ESTABLISHED
查看已建立的网络连接账中是否存在异常
netstat -antlp | grep LISTEN
查看已监听端口中是否存在异常
ip link | grep PROMISC
正常网卡不该在promisc模式,假如有输出,说明可能存在sniffer
arp –a
查看arp记录是否正常
iptraf
(工具) 观察UDP包是否大量发包,如果是,可能被安装后门
后门及计划任务
Linux多以写到计划任务的形式
crontab -l
cat /etc/crontab
ls /etc/cron.*
ls /var/spool/cron/
注:一般用户级别的crontab,位于/var/spool/cron下;系统级别的crontab,位于/etc/crontab;另外还有:/etc/cron.hourly、 /etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly、/etc/anacrontab 等周期性执行脚本的目录。
cat /etc/rc.d/rc.local
ls /etc/rc.d
ls /etc/rc3.d
cat /etc/inittab
vim $HOME/.ssh/authorized_keys 查看ssh链接文件
chkconfig --list 检查自启服务
webshell和rookit
几个工具
webshell检测:shellpub http://www.shellpub.com/
rookit检测:rkhunter http://rkhunter.sourceforge.net/
rookit检测:chkrootkit http://www.chkrootkit.org/
日志分析
cat /var/log/secure
cat /var/log/messages
cat /var/log/maillog
linux日志默认保存在/var/log目录下。
主要日志文件介绍:
/var/log/messages:内核及公共消息日志
/var/log/cron:计划任务日志
/var/log/dmesg:系统引导日志
/var/log/maillog:邮件系统日志
/var/log/lastlog:用户登录日志
/var/log/boot.log:记录系统在引导过程中发生的时间
/var/log/secure:用户验证相关的安全性事件
/var/log/wtmp:当前登录用户详细信息
/var/log/btmp:记录失败的的记录
/var/run/utmp:用户登录、注销及系统开、关等事件;
日志格式
记录时间:表示消息发出的日期和时间
主机名:表示生成消息的服务器的名字
生成消息的子系统的名字:来自内核则标识kernel,来自进程标识进程,方括号中表示进程的PID
消息:剩下的部分表示消息的内容
中间件日志
如nginx、apache、tomcat、jboss、weblogic、websphere的默认日志位置,具体视版本及运维而定,不同版本出入可能比较大,例如一般情况下apache默认日志路径/var/log/httpd/
misc
检查载入模块
检查已载入的模块中是否异常模块
lsmod
如果显示有可疑模块使用modinfo查看详细模块信息
modinfo <模块名>
确认是异常模块可以尝试卸载
rmmod <模块名>
分析流量
用tcpdump进行流量分析,这里不做展开了
linux应急响应集成工具
GScan
地址
https://github.com/grayddq/GScan
简介
为安全应急响应人员对Linux主机排查时提供便利,实现主机侧Checklist的自动全面化检测,根据检测结果自动数据聚合,进行黑客攻击路径溯源。