1-Web安全——linux下应急响应(入侵排查)
1. 应急响应应急响应通常是在当服务器被黑客入侵后,我们需要对入侵事件进行系统的溯源和排查。主要思路就是先对入侵事件分类,然后进一步对服务器进行排查,清理木马病毒以及留下的后门程序,分析黑客的入侵方式并修复漏洞,确保服务器的正常运行。2. 历史命令linux系统默认会记录用户输入的命令,保存到一个.bash_history文件中,如果我们可以通过history命令或者cat /root/.bash
1. 应急响应
应急响应通常是在当服务器被黑客入侵后,我们需要对入侵事件进行系统的溯源和排查。主要思路就是先对入侵事件分类,然后进一步对服务器进行排查,清理木马病毒以及留下的后门程序,分析黑客的入侵方式并修复漏洞,确保服务器的正常运行。
2. 历史命令
第一步就是登录服务器排查历史命令记录,分析黑客在服务器进行了哪些操作,明确下一步的分析方向。
linux系统默认会记录用户输入的命令,保存到一个.bash_history隐藏文件中,ls -al命令可以查看隐藏文件,history命令可以查看root用户的历史命令,cat /root/.bash_history也可以查看普通用户的历史命令。
排查的时候特别要注意wget(有可能是下载木马文件),ssh(可能是异常连接内网主机),tar zip(数据打包),系统配置命令可能是修改系统相关配置。
3. linux异常用户分析
在linux系统中操作都会被记录到系统日志当中,每个用户登录的信息都会记录到日志,root用户在linux中拥有最高权限,可以执行任何操作,在进行排查的时候非常有必要排查linux下是否有异常用户。
linux下的用户信息存放在/etc/passwd目录下(无密码只允许本机登陆,远程不允许登陆),密码则存放在/etc/shadow目录。
/etc/passwd文件:
┌──(songly㉿kali)-[~]
└─$ cat /etc/passwd
root:x:0:0:root:/root:/usr/bin/zsh
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
文件中的每一行代表一个用户的信息,每个字段用分号分割,用户名:密码:用户ID:组ID:用户说明:家目录:用户对应的shell。
/etc/shadow文件:
┌──(root💀kali)-[/home/songly]
└─# cat /etc/shadow
root:$y$j9T$VtGT7HATc1Ap2/wR1wbMA/$EHoBQ4kNvn3/qULzCMv3/6f4Vg4BE8c2cxzDXggBKmC:18696:0:99999:7:::
daemon:*:18696:0:99999:7:::
bin:*:18696:0:99999:7:::
用户名:加密密码:密码最后一次修改日期:两次密码的修改时间间隔:密码有效期:密码修改到期到的警告天数:密码过期之后的宽限天数:账号失效时间:保留
ls -l /etc/passwd //查看文件修改时间,或者通过cat命令筛选出具有root权限的用户:
awk -F: '$3==0{print $1}' /etc/passwd //查看具有root权限的用户
uptime //查看登陆多久、多少用户,负载
w //查看系统信息,想知道某一时刻用户的行为
last命令可以查看登录历史:
日志会把每个用户登录的日志记录下来,last -i | grep -v 0.0.0.0命令可以筛选出非本地登录的日志,可以看到有两个非本地ip的用户登录了服务器。
4. 检查异常端口,进程
使用netstat 网络连接命令,查看ip地址,端口号是否有建立可疑网络连接等等,例如netstat -antlp|more,如下所示:
可以看到有很多ip跟主机建立了http服务(443,80端口)
查看进程可以使用ps命令结合aux,grep选项查看linux系统下的进程信息,还可以使用top命令查看是否有挖矿,木马病毒占用大量的系统资源
5. 计划任务排查
linux下的计划任务也需要排查,一般在linux下的任务计划文件是以cron开头的,linux系统中可以使用crontab命令进行计划任务的设置,例如-l是列出当前用户的计划任务
-d是删除计划任务,-e选项是编辑计划任务,特别要注意linux系统中未知的计划任务。
6. 开机启动项
linux系统下的/etc/init.d目录下的文件中存放着开机自动启动的每个程序的目录:
通过/etc/init.d/程序名 status命令可以查看每个程序的状态,排查启动项的目的是检查黑客在入侵服务器后是否有在启动项里安装后门程序。
7. 异常文件检查
异常文件检查是排查黑客是否有修改服务器上的敏感目录或文件,如/tmp目录下的文件,同时注意隐藏文件夹,以“..”为名的文件夹具有隐藏属性。
例如,假设我们知道对方上传的webshell的创建时间,那么我们可以缩小排查的范围并通过find命令快速找出最近这段时间内创建的文件,如find /opt -iname "*" -atime 1 -type f 找出 /opt 下一天前访问过的文件。
8. $PATH$环境变量
打开linux shell终端我们一般会执行的常用命令,PATH环境变量决定了shell终端将从那些目录加载并执行命令。
每个目录以“ : ”符号进行分隔,例如当我们在终端输入qq,nameshell就会解析PATH环境变量从/usr/local/bin目录下找到qq程序并执行。那么我们可以从这些目录中检查是否存在异常文件或代码等等。
更多推荐
所有评论(0)