HVV蓝队应急响应思路学习linux篇,主要是需要注意的位置以及文件,近期更新蓝队学习过程。
常见的应急响应事件分类:
- web入侵:网页挂马、主页篡改、Webshell
- 系统入侵:病毒木马、勒索软件、远控后门
- 网络攻击:DDOS攻击、DNS劫持、ARP欺骗
如何判断是否被入侵?
一、账号安全
基本使用:
1、用户信息文件 /etc/passwd
1 | root:x\:0:0:root:/root:/bin/bash |
用户名:密码:用户ID:组ID:用户说明:家目录:登陆之后shell
注意:无密码只允许本机登陆,远程不允许登陆
2、影子文件 /etc/shadow
1 | root:$6$oGs1PqhL2p3ZetrE$X7o7bzoouHQVSEmSgsYN5UD4.kMHx6qgbTqwNVC5oOAouXvcjQSt.Ft7ql1WpkopY0UV9ajBwUt1DpYxTCVvI/:16809:0:99999:7::: |
3、几个常用命令:
1 | who //查看当前登录用户(tty 本地登陆 pts 远程登录) |
入侵排查:
1、查询特权用户(特权用户uid 为 0)
查看/etc/passwd
中UID为0的账户。
可以这样cat /etc/passwd | grep :0
,一般只有root
如果出现其他用户,说明该用户的权限与root一致,需要查看
2、查询可以远程登录的帐号信息
无密码不能远程登陆。打开/etc/shadow
中查看有加密密码的用户进行判断。(配合who
、uptime
进行判断哪些正在被远程)
这是服务器截图,若是发现除了当前用户的远程连接,可以查看一下/etc/shadow内容查找
3、禁用或删除多余及可疑的帐号
1 | usermod -L user //禁用帐号,帐号无法登录,/etc/shadow 第二栏为 ! 开头 |
二、历史命令
基本使用:
通过 .bash_history 查看帐号执行过的系统命令
注:如果使用了别的shell方式如zsh,就是.zsh_history
1、root 的历史命令
1 | history |
2、历史操作命令的清除:
1 | history -c |
ps:但此命令并不会清除保存在文件中的记录,因此需要手动删除 /用户名/.bash_profile
文件中的记录。
入侵排查:
进入用户目录下:
1 | cat .bash_history >> history.txt //在用户根目录下导出history.txt |
三、端口
使用 netstat 网络连接命令,分析可疑端口、IP、PID
1 | netstat -antlp | more |
ps:在linux上没有netstat命令时,使用yum install net-tools
安装。
/proc/[pid]/exe
为实际运行程序的符号链接
运行ls -l /proc/$PID/exe
或file /proc/$PID/exe
($PID
为对应的 pid 号)
四、进程
使用 ps 命令,分析进程
1 | ps aux | grep pid //输入想查看的pid数字 |
ps:也可以使用top查看高使用率的进程进行分析。(例如矿机程序,跑了就是100%)
五、开机启动项
基本使用:
系统运行级别示意图:
查看运行级别命令
1 | runlevel |
系统默认允许级别
1 | vi /etc/inittab id=3:initdefault //系统开机后直接进入哪个运行级别 |
开机启动配置文件
1 | /etc/rc.local |
例子:当我们需要开机启动自己的脚本时,只需要将可执行脚本丢在 /etc/init.d 目录下,然后在 /etc/rc.d/rc*.d 中建立软链接即可
1 | [root@localhost ~]# ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh |
此处 sshd
是具体服务的脚本文件,S100ssh
是其软链接,S
开头代表加载时自启动;如果是 K
开头的脚本文件,代表运行级别加载时需要关闭的。
入侵排查:
启动项文件:
1 | more /etc/rc.local /etc/rc.d/rc[0~6].d ls -l /etc/rc.d/rc3.d/ |
查看是否存在脚本的软链接。
六、定时任务
入侵排查:
重点关注以下目录中是否存在恶意脚本
1 | /var/spool/cron/* |
七、服务
服务自启动:
第一种修改方法:
1 | chkconfig [--level 运行级别][独立服务名][on|off] |
第二种修改方法:
1 | 修改 /etc/re.d/rc.local 文件 加入 /etc/init.d/httpd start |
第三种修改方法:
使用 ntsysv 命令管理自启动,可以管理独立服务和 xinetd 服务。
ps:如果没有ntsysv命令使用yum install ntsysv
安装。
入侵排查:
1、查询已安装的服务:
RPM 包安装的服务:
1 | chkconfig --list 查看服务自启动状态,可以看到所有的RPM包安装的服务 |
系统在 3 与 5 级别下的启动项
中文环境
1 | chkconfig --list | grep "3:启用|5:启用" |
英文环境
1 | chkconfig --list | grep "3:on|5:on" |
源码包安装的服务
查看服务安装位置 ,一般是在 /user/local/
1 | service httpd start |
搜索 /etc/rc.d/init.d/ 查看是否存在
八、系统日志
日志默认存放位置:/var/log/
查看日志配置情况:more /etc/rsyslog.conf
1 | 内核及公共消息日志:/var/log/messages |
日志文件详细介绍:
1 | /var/log/secure |
1 | lastlog |
1 | /var/log/wtmp |
ps:该日志为二进制文件,不能用诸如tail/cat/等命令,使用last命令查看。
1 | /var/log/btmp |
ps:该文件用lastb打开
1 | /var/log/utmp |
ps:可以用who/w命令来查看