「作者简介」: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. 回溯攻击操作并梳理攻击过程。

淦、我的服务器又被攻击了相关推荐

  1. 服务器被攻击怎么修改,服务器一直被攻击怎么办?

    原标题:服务器一直被攻击怎么办? 有很多人问说,网站一直被攻击,什么被挂马,什么被黑,每天一早打开网站,总是会出现各种各样的问题,这着实让站长们揪心.从修改服务器管理账号开始,到修改远程端口,什么措施 ...

  2. 服务器经常被攻击怎么办?这7个重要因素要做好!

    有很多人经常会遇到这样的问题,平台网站始终被恶意攻击,什么被挂马,什么被黑,每日一大早打开网站,老是会发生各式各样的难题,这确实让网站站长们烦恼.从改动服务器管理账户开始,到改动远程端口,什么对策都进 ...

  3. 服务器一直被攻击怎么办?

    有很多人问说,网站一直被攻击,什么被挂马,什么被黑,每天一早打开网站,总是会出现各种各样的问题,这着实让站长们揪心.从修改服务器管理账号开始,到修改远程端口,什么措施都做了,还是会被攻击挂马. 服务器 ...

  4. 服务器经常被攻击怎么办

    服务器经常被攻击怎么办?服务器常被攻击表明很可能存在安全漏洞,建议及时查找漏洞,安装补丁.升级系统,并做好服务器的日常防护. 1.设置复杂密码 不要小看密码设置,其对于保持在线安全和保护数据至关重要. ...

  5. 服务器老被攻击?如何避免服务器被恶意攻击?

    服务器老被攻击?很多互联网从业者们都会遇到服务器被攻击的情况,要么是因为同行恶意竞争,故意使绊子;要么是某些专业黑客团队通过攻击,来达到勒索钱财的目的,那么我们该如何避免服务器被恶意攻击呢?或者再服务 ...

  6. 服务器老被攻击,该如何解决?

    服务器老被攻击?很多互联网从业者们都会遇到服务器被攻击的情况,要么是因为同行恶意竞争,故意使绊子;要么是某些专业黑客团队通过攻击,来达到勒索钱财的目的,那么我们该如何避免服务器被恶意攻击呢?或者再服务 ...

  7. 判断Linux服务器是否被攻击以及相应的预防措施

    一.前言 随着现代互联网科技的快速发展,网络服务器的安全也逐渐成为各大企业开始关注的焦点.服务器后台的安全保证关系着整个网络数据的命脉,所以服务器的安全防范也逐渐称为各大企业关注的重点. 其中较为常见 ...

  8. 游戏服务器为什么被攻击,游戏服务器防御方法

    游戏服务器不管是个人的还是企业的,被攻击都是,很常见的,在所难免的.特别是游戏新上线时,都要承受的住哪些外来压力,玩家突然猛增,被攻击等等.如果承受不住可能会直接宣布游戏倒闭.这里我们一起来说说游戏服 ...

  9. 服务器为什么被攻击?服务器攻击进黑洞是怎么解决?

    可能很多人会说我业务也不怎么运营,或者才刚开始运营不会有黑客攻击我的服务器.其实不管哪个行业,安全系统差的服务器都会有人去批量攻击.互联网上无时无刻都有人在扫全网服务器,只要有问题就不能幸免,起码可以 ...

最新文章

  1. spark 算子例子_10年大数据架构师,用一文带你玩转Spark计算框架,你能读懂吗?...
  2. MySQL InnoDB锁
  3. 拥有特殊闭合标签的标签
  4. 2给我背书_让优秀的人做你的背书人
  5. 如果世界上只有一种数据结构,那么我选择 hash
  6. python linux 优化_Python 代码性能优化技巧
  7. ArcGIS Desktop新建postgresql版sde(10.4.1)的连接
  8. 项目总结——机房收费系统合作版
  9. Linux就该这么学第0章 咱们先来谈谈学习方法和红帽系统。
  10. virtual关键字的使用(C# 参考)
  11. linux下运行class,在Linux下可用Wine安装和运行AIclass、希沃白板5
  12. Activities 四大组件之一
  13. 小米11青春版 MIUI12安装谷歌条件GMS点击登录没反应的解决办法
  14. 高二计算机考试题库和答案,2017计算机基础考试题库及答案
  15. C++Primer_Chap16_模板和泛型编程_List01_定义模板_笔记
  16. MIPI CSI-2笔记(12) -- Low Level Protocol(数据加扰,扰码,Data Scrambling)
  17. win7系统64位MSCOMCTL.OCX丢失或无效解决办法
  18. 模拟微博用户注册的程序【使用了HashSet集合实现】
  19. Syn Flood 攻击
  20. input下拉选择框可以自行输入也可以下拉选择

热门文章

  1. 【论文解读--触地检测+FSM状态切换】(猎豹 3)Contact Model Fusion for Event-Based Locomotion in Unstructured Terrains
  2. 炒外汇连续亏损的解决方法
  3. windows下c/c++创建Java虚拟机加载可执行jar包
  4. Android之消息推送实现
  5. 固定于计算机主机箱中承载,一种工业用计算机卧式主机机箱的制作方法
  6. 完成数据的打通-豌豆荚被阿里巴巴收购后的168天
  7. gatsby 安装失败
  8. linux设置网络自动连接网络设置密码,设置Linux网络开机自动连接
  9. 美化QFileDialog
  10. linux 下删除pg数据库,PostgreSQL删除数据库