01 文件排查 1.1 敏感目录文件
ls 用来显示目录列表 -a 显示所有档案及目录 -l 以长格式显示目录下的内容列表 -t 用文件和目录的更改时间排序 如:查看tmp 目录下的文件 ls -alt /tmp
1.2 查看某个(可疑)文件是否被修改过
1.3 查看历史命令记录文件 查看~/.bash_history 命令执行记录文件,主要分析是否有账户执行过恶意操作系统。每个用户都有历史记录文件,如果发现哪个用户执行过恶意文件,那么我们就可以锁定这个线索,进一步排查。 直接查看: cat /root/.bash_history | more 进入用户目录下: cat .bash_history >> history.txt 1.4 查看用户信息文件
1.5 查看新增文件
-type b/d/c/p/l/f 分别是指块设备、目录、字符设备、管道、符号链接、普通文件 -mtime -n +n 按文件更改时间来查找文件,-n 指n天以内,+n 指n天前 -atime -n +n 按文件访问时间来查找文件,-n 指n天以内,+n 指n天前 -ctime -n +n 按文件创建时间来查找文件,-n 指n天以内,+n 指n天前
例子: find -type f -mtime -3 #最近3天修改过的文件 find -type f -ctime -3 #最近3天创建的文件 1.6 查看特殊权限的文件
1.7 查看隐藏、木马等文件
[root@beret-81 html]# ls -ar | grep '^\.' .test.php .. .
grep -nr -v '404' ./ | grep -E '\.jsp | \.jspx' | more 02 进程排查 netstat 用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机端口的网络连接情况。 用netstat 网络连接命令,分析可疑端口、可疑IP、可疑PID及程序进程
2.1 检查异常端口 使用netstat 网络连接命令,分析可疑端口、IP、PID netstat -antlp|more
查看下pid所对应的进程文件路径, 运行ls -l /proc/$PID/exe或file /proc/$PID/exe($PID 为对应的pid 号) 查看某个端口是哪个进程打开的
2.2 检查异常进程 使用ps命令,分析进程。根据netstat 定位出pid ,使用ps命令,分析进程 ps aux | grep pid ps -aux --sort -pcpu | less 根据cpu使用率进行排序
-a 代表all,同时加上x参数会显示没有控制终端的进程 -aux 显示所有包含其他使用者的行程 -C 显示某个进行的信息 -axjf 以树状结构显示进程 -e 显示所有进程。和-A相同 -f 额外全格式 -t ttylist by tty 显示终端ID在ttylist 列表中的进程
ps -ef | awk '{print $2}' | sort -n | uniq >1 ls /proc | sort -n | uniq >2 diff 1 2
03 系统信息排查 3.1 账号安全
1、用户信息文件/etc/passwd root:x:0:0:root:/root:/bin/bash account:password:UID:GID:GECOS:directory:shell 用户名:密码:用户ID:组ID:用户说明:家目录:登陆之后shell 注意:无密码只允许本机登陆,远程不允许登陆
2、影子文件/etc/shadow root:$6$oGs1PqhL2p3ZetrE$X7o7bzoouHQVSEmSgsYN5UD4.kMHx6qgbTqwNVC5oOAouXvcjQSt.Ft7ql1WpkopY0UV9ajBwUt1DpYxTCVvI/:16809:0:99999:7::: 用户名:加密密码:密码最后一次修改日期:两次密码的修改时间间隔:密码有效期:密码修改到期到的警告天数:密码过期之后的宽限天数:账号失效时间:保留
who 查看当前登录用户(tty本地登陆 pts远程登录) w 查看系统信息,想知道某一时刻用户的行为 uptime 查看登陆多久、多少用户,负载
3.2 查看系统用户登录信息 utmp 文件中保存的是当前正在系统中的用户信息 wtmp 文件中保存的是登录过本系统的用户信息 /var/log/wtmp 文件结构和 /var/run/utmp 文件结构一样,都是应用/usr/include/bits/utmp.h 中的strut utmp
[root@test ~]# lastb | more dbuser ssh:notty 106.13.112.221 Wed Mar 28 18:17 - 18:17 (00:00) dbuser ssh:notty 106.13.112.221 Wed Mar 28 18:17 - 18:17 (00:00) root ssh:notty 142.93.179.2 Wed Mar 28 18:17 - 18:17 (00:00) polaris ssh:notty 188.165.56.214 Wed Mar 28 18:17 - 18:17 (00:00)
3.3 查看开机启动项
系统运行级别示意图: 运行级别 含义 0 关机 1 单用户模式,可以想象为windows的安全模式,主要用于系统修复 2 不完全的命令行模式,不含NFS服务 3 完全的命令行模式,就是标准字符界面 4 系统保留 5 图形模式 6 重启动
查看运行级别命令 runlevel
系统默认允许级别
vi /etc/inittab id=3:initdefault 系统开机后直接进入哪个运行级别
开机启动配置文件 /etc/rc.local /etc/rc.d/rc[0~6].d
3.4 查看定时任务
/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/* 例: more /etc/cron.daily/* 查看目录下所有文件
3.5 检查服务 chkconfig 是管理系统服务的命令行工具,对开机启动的可疑程序进行更改: 设置service 启动信息: chkconfig name on/off/reset 设置service 运行级别 chkconfig --level levels
3.6 查看配置shell 配置文件
使用命令查看shell 配置文件 cat .bashrc cat .bash_profile
/etc/profile 该文件为系统的每个用户设置环境配置信息 /etc/profile.d 目录的配置文件中收集shell的设置 /etc/bashrc 为每一个运行bash shell 的用户执行此文件,当bash shell 被打开时,该文件被读取 .bash_profile 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次,默认情况下,它设置一些环境变量,执行用户的.bashrc 文件 .bashrc 该文件包含专用于你的bash shell 的bash 信息,当登录时以及每次打开新的shell时,该文件被读取 .bash_logout 当每次退出系统(退出bash shell),执行该文件 3.7 系统路径分析
3.8 指定信息检索
分析sshd 文件,是否包括IP信息 strings /usr/bin/.sshd | grep '[1-9]{1,3}.[1-9].{1,3}.'
查看ssh 相关目录有无可疑的公钥存在 Redis(6379) 未授权恶意入侵,即可直接通过redis 到目标主机导入公钥 目录:/etc/ssh ./.ssh/ 04 日志排查 日志默认存放位置:/var/log/ 4.1 常用日志文件
4.2 Linux 日志分析 1、查看登录信息
查看用户最近登录信息 last -f /var/log/wtmp
查看当前登录系统和用户信息,可用who命令显示当中的内容 last -f /var/run/utmp
查看用户最后登录的信息 lastlog
查看登录失败的日志 lastb strings /var/log/btmp
2、定位有多少IP在爆破主机的root帐号:
grep 'Failed password for root' /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
定位有哪些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
爆破用户名字典是什么? grep 'Failed password' /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print '$1\n';}'|uniq -c|sort -nr
3、登录成功的IP有哪些:
grep 'Accepted ' /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
登录成功的日期、用户名、IP: grep 'Accepted ' /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
4、增加一个用户kali日志: Jul 10 00:12:15 localhost useradd[2382]: new group: name=kali, GID=1001 Jul 10 00:12:15 localhost useradd[2382]: new user: name=kali, UID=1001, GID=1001, home=/home/kali, shell=/bin/bash Jul 10 00:12:58 localhost passwd: pam_unix(passwd:chauthtok): password changed for kali #grep 'useradd' /var/log/secure
5、删除用户kali日志: Jul 10 00:14:17 localhost userdel[2393]: delete user 'kali' Jul 10 00:14:17 localhost userdel[2393]: removed group 'kali' owned by 'kali' Jul 10 00:14:17 localhost userdel[2393]: removed shadow group 'kali' owned by 'kali' # grep 'userdel' /var/log/secure
6、su切换用户: Jul 10 00:38:13 localhost su: pam_unix(su-l:session): session opened for user good by root(uid=0)
sudo授权执行: sudo -l Jul 10 00:43:09 localhost sudo: good : TTY=pts/4 ; PWD=/home/good ; USER=root ; COMMAND=/sbin/shutdown -r now Apache 日志分析
05 后门排查 5.1 Rootkit查杀
网址:http://www.chkrootkit.org 安装使用: wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz tar zxvf chkrootkit.tar.gz cd chkrootkit-0.53 make sense #编译完成没有报错的话执行检查 ./chkrootkit
网址:http://rkhunter.
5.2 病毒查杀
网址:http://www./download.html 安装使用: #安装 yum install -y clamav #更新病毒库 freshclam #扫描方法 clamscan -r /etc --max-dir-recursion=5 -l /root/etcclamav.log clamscan -r /bin --max-dir-recursion=5 -l /root/binclamav.log clamscan -r /usr --max-dir-recursion=5 -l /root/usrclamav.log #扫描并杀毒 clamscan -r --remove /usr/bin/bsd-port clamscan -r --remove /usr/bin/ clamscan -r --remove /usr/local/zabbix/sbin #查看日志发现 cat /root/usrclamav.log |grep FOUND 5.3 webshell 查杀
网址:https://www. 安装使用: wget http://dl./hm/latest/hm-linux-amd64.tgz?version=1.8.2 tar xvf hm-linux.tgz #查看帮助 ./hm -h #查看版本 ./hm version #扫描后门 ./hm scan 你的web目录,扫描完成之后结果会保存为result.csv文件,使用记事本或者excel打开查看 ./hm deepscan 你的web目录,扫描时开启深度解码 #升级 ./hm update
5.4 RPM check检查
验证内容中的8个信息的具体内容如下: S 文件大小是否改变 M 文件的类型或文件的权限(rwx)是否被改变 5 文件MD5校验是否改变(可以看成文件内容是否改变) D 设备中,从代码是否改变 L 文件路径是否改变 U 文件的属主(所有者)是否改变 G 文件的属组是否改变 T 文件的修改时间是否改变
5.5 linux 安全检查脚本 https://github.com/grayddq/GScan https://github.com/cisp/LinuxEmergency https://github.com/ppabc/security_check https://github.com/T0xst/linux |
|