淦、我的服务器又被攻击了

news/2024/11/9 9:43:19/

「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》

最近老是有粉丝问我,被黑客攻击了,一定要拔网线吗?还有没有别的方法?

按理说,如果条件允许,一定是先拔网线,防止横向传播。

但很多时候并不能拔网线,比如云服务器这种,网线咱也碰不到呀。

实际上,遇到黑客攻击,并非只有拔网线这一条路,黑客也是人,只要他来攻击,就一定会留下蛛丝马迹。

接下来,我们从7个方向入手,讲解一下分析思路,了解黑客的攻击路径,甚至反制。
在这里插入图片描述

  • 一、账户分析
    • 1、排查可疑账户
    • 2、登录情况
    • 3、历史命令
  • 二、日志分析
  • 三、进程分析
    • 1、查看进程
    • 2、查看进程执行文件
  • 四、网络连接
    • 1、查看网络链接状态
    • 2、威胁情报分析
  • 五、启动项
    • 1、开机启动文件
    • 2、开机启动命令
    • 3、环境变量配置文件
  • 六、计划任务
  • 七、敏感目录文件
    • 1、近期被修改的文件
    • 2、敏感目录

一、账户分析

/erc/passwd 文件存放用户信息。
/bin/bash 表示账户状态为可登录;/sbin/nologin 表示用户状态为不可登录。

在这里插入图片描述

/etc/group 文件存放用户组信息

在这里插入图片描述

1、排查可疑账户

重点排查id大于1000的用户(新建的用户,id会大于1000,系统用户均小于500)。
awk -F: '($2=="")' /etc/shadow 查找空口令账号
awk -F: '($3==0)' /etc/passwdgrep "0:0" /etc/passwd 查找UID为0的超级权限账号,确保只有root。
grep "/bin/bash" /etc/passwd 查找可登录的账号

2、登录情况

who -b 上一次启动时间

在这里插入图片描述

w 查看登录的用户(登录时间、登录IP、正在执行的程序)。

在这里插入图片描述

lastb 查看用户失败信息。

在这里插入图片描述

lastlog 查看所有用户最后登录的信息。

在这里插入图片描述

last 查看最近的登录信息(包含系统开关机)

在这里插入图片描述

3、历史命令

history 查看历史命令。( 会被 history -c 清除)。
/root/.bash_history 文件保存root用户的历史命令
/home/user001/.bash_history 文件保存普通用户的历史命令

history 的历史命令会被 history -c 清除,而 bash_history 文件中的历史命令需要删除文件才能清除。

重点查看可疑历史命令,比如:wget(远程下载),ssh(连接内网),tar zip(压缩打包)

针对重装带后门的SSH服务(内置一个账户,不在系统中显示),可以检查修改修改时间,或者 ssh -V 查看版本。

在这里插入图片描述


二、日志分析

Linux系统日志默认放在 /var/log/

  • /var/log/cron 计划任务日志。
  • /var/log/dmesg 开机自检日志(dmesg命令查看)。
  • /var/log/maillog 邮件日志。
  • /var/log/messages 系统日志(系统出现问题时,重点查看此日志)。
  • /var/log/secure 应用的登录信息及输入的账号密码。

grep "Accepted" /var/log/secure 过滤登录成功的日志

在这里插入图片描述

grep "Failed" /var/log/secure 过滤登录失败的日志

在这里插入图片描述

​/var/log/apache2/access.log Apache访问日志


三、进程分析

重点关注那些结束后会重新启动的进程,按照启动项的步骤分析它重启的方式。

1、查看进程

ps -ef 查看所有进程

在这里插入图片描述

ps -aux 查看所有进程,同时显示CPU和内存的使用情况。

在这里插入图片描述

top 查看CPU占用特别高(80%以上)的进程,可能是挖矿或业务高峰。

在这里插入图片描述

kill -9 PID 根据PID结束进程。

2、查看进程执行文件

ls0f -p 1546 查看PID为1546的进程打开的文件,第三行是进程对应的执行文件。

在这里插入图片描述

ll /proc/1546/exe 查看PID为1546的进程对应的执行程序。

在这里插入图片描述

lsof -i:22 查看22端口对应的进程。

在这里插入图片描述


四、网络连接

检查可疑的网络连接,可疑IP、域名、文件可疑拿到威胁情报平台去分析。

1、查看网络链接状态

netstat -anopt 检查网络连接状态,LISTEN表示监听状态(等待连接);ESTABLISHED表示打开的连接。

在这里插入图片描述

如果已经知道恶意IP,可以过滤查看与恶意IP通信的网络连接 netstat -anopt | grep 192.168.31.28

如果只知道恶意域名,可以修改 /etc/hosts 文件,将恶意域名重定向到其他任意IP,然后再过滤跟这个IP通信的网络连接。

在这里插入图片描述

2、威胁情报分析

威胁情报平台可以查询域名、IP、文件的可信度,存在攻击痕迹就立即封禁。

奇安信威胁情报:https://ti.qianxin.com/
微步在线:https://x.threatbook.com/
VirusTotal:https://www.virustotal.com/gui/home/upload
安恒威胁情报:https://ti.dbappsecurity.com.cn/
深信服威胁情报:https://ti.sangfor.com.cn/analysis-platform
VenusEye威胁情报:https://www.venuseye.com.cn/
360威胁情报:https://ti.360.net/#/homepage


五、启动项

为了防止被控机器失联,很多恶意程序会将自己放到开机启动项中。

1、开机启动文件

检查是否有异常的自启动文件,同时注意文件内容是否被篡改,插入恶意指令。

1)/etc/rc.local

最后一行是脚本,开机引导期间执行。

在这里插入图片描述

/etc/rc.local/etc/rc.d/rc.local 的软连接,两个文件作用相同。

在这里插入图片描述


2)/etc/init.d/

目录下有很多系统服务的启动脚本,在系统启动(引导完成)后执行。

在这里插入图片描述

/etc/init.d//etc/rc.d/init.d/ 的软连接,两个文件作用相同。

在这里插入图片描述

Ubuntu没有 /etc/rc.d/init.d 这个目录,为了保持同一种服务在CentOS和Ubuntu使用的统一性,将服务脚本都放在 /etc/init.d 目录下。


3)/etc/rc*.d

检查其他开机启动目录中,服务启动脚本是否被篡改。

在这里插入图片描述

2、开机启动命令

systemctl list-unit-files 查看服务状态
systemctl list-unit-files | grep firewalld 查看指定服务状态
systemctl stop firewalld.service 停止服务
systemctl disable firewalld.service 禁止开机自启动

查看服务启动状态,enabled表示能够开机自启动;disabled表示不能开机自启动。

在这里插入图片描述

查看指定服务是否开机自启动,并关闭开机自启动。

在这里插入图片描述

3、环境变量配置文件

这些文件用来配置环境变量和启动程序,开机登录用户或者切换用户时触发。

  • /etc/bashrc
  • /etc/profile
  • ~/.bashrc
  • ~/.bash_profile

六、计划任务

crontab -l 查看当前用户的计划任务。
crontab -l -u root 查看指定用户的计划任务。

/etc/crontab 保存定时任务
/etc/anacrontab 保存异步定时任务
/var/spool/cron/ 目录存放每个用户的的定时任务。

在这里插入图片描述

/etc/cron.d 目录存放需要执行的定时任务文件。

在这里插入图片描述

/etc/cron.hourly/ 每小时执行一次的任务
/etc/cron.daily/ 每天执行一次的任务
/etc/cron.weekly/ 每周执行一次的任务
/etc/cron.monthly/ 每月执行一次的任务


七、敏感目录文件

webshell通常会包含恶意函数,比如:

  • PHP:eval()、system()、assert()
  • JSP:getRunTime()、FileOutputStream()
  • ASP:eval()、execute()、ExecuteGlobal()

寻找可疑文件,并检查文件中是否包含这类恶意函数,从而确定它是不是webshell。

1、近期被修改的文件

find /root/ -ctime -2 查找/root/目录下,两天内新创建的文件。
find /root/ -mtime -2 查找/root/目录下,两天内被修改过的文件。

在这里插入图片描述

stat text.txt 查看文件的详细信息,重点看访问/修改/时间。

在这里插入图片描述

ls -alt 按照文件修改时间排序

2、敏感目录

/tmp/ 临时目录,普通用户对其目录内的文件都具有读写的权限,通常用于提权。
/usr/bin/
/usr/sbin/
/etc/ssh/

总结:

应急响应思路大致分为三个部分:

  1. 找到webshell
  2. 确定攻击IP
  3. 回溯攻击操作并梳理攻击过程。

http://www.ppmy.cn/news/556301.html

相关文章

windows7是否属于计算机硬件系统,win7系统怎么查看电脑CPU硬件是否支持虚拟化

在win7系统中,有时候需要安装mac的虚拟机,那么就必须要先查看电脑cpu是否能支持硬件虚拟化,如果不能支持虚拟化无法安装的,那么win7系统怎么查看电脑CPU硬件是否支持虚拟化呢?具体步骤如下。 1、打开浏览器软件&#x…

securable的LOCKED ON,LOCKED OFF,YES,NO四个的区别

securable的LOCKED ON,LOCKED OFF,YES,NO四个的区别: 首先locked on和locked off是指主板有开关两个选项,locked on说明你的CPU支持VT并处于打开状态,Locked OFF是主板VT处于关闭状态,但是并不是说显示OFF了就说明CPU支持…

虚拟机安装mac os x详细图文教程

由于种种原因,在实体机里面安装os x是一件非常麻烦的事,需要有足够的时间和耐心去折腾。然而现如今新版的VirtualBox对于OS X已经有了非常优秀的支持,在虚拟机里安装OS X已经是非常的方便了。这为一些像我这样想体验OS X但是又没钱买mac的同学…

Security: Inside Windows Vista User Account Control | Microsoft Docs

原文地址:Security: Inside Windows Vista User Account Control | Microsoft Learn Security: Inside Windows Vista User Account Control Mark Russinovich At a Glance: Running as a standard userFile and registry virtualizationElevating account statu…

如何在VMware Workstation上安装Windows Home Server Beta“ Vail”

If you’re a Windows Home Server enthusiast you probably want to test out the new version code named Vail. You might not have an extra box to test it on, so here we take a look at installing it on VMware Workstation. 如果您是Windows Home Server的发烧友&…

Windows 7 安装Docker实践(2021.6.21)

Windows 7 64位系统安装Docker实践 2021.6.21 1、Dokcer简介1.1 Docker提供的功能1.2 Docker的架构1.3 Docker的用途 2、Docker在Windows 7下安装2.1 查看Dockers安装的系统硬件要求(与自身系统对比)2.1.1 电脑系统环境(Win7 64位操作系统英特尔cpu)2.1.…

VMware Workstation 12 Pro 安装mac系统中遇到的一些问题:

VMware Workstation 12 Pro 安装mac系统中遇到的一些问题: 1、先使用securable工具测试本机系统可否安装虚拟机 2、unclocker win.install安装失败 选择win.update.tools 即可成功。 3、安装成功后若显示二进制错误,原因是没打开虚拟功能。重启电脑进入B…