目录

排查用户相关的信息

排查进程端口相关的信息

查找恶意程序并杀掉

斩草除根

判断入侵方式,修复漏洞


当我们被告知一台Linux服务器被黑客入侵,黑客利用该服务器进行挖矿,并且在该服务器上放置了木马后门。现在我们需要对该服务器做排查,关闭和清除掉挖矿程序以及木马后门,探测出黑客是通过什么方式入侵该服务器的,并且最后要将该漏洞进行修补,以确保服务器的正常运行。

首先,当我们登陆主机后做的第一件事,应该先使用 history 查看主机的历史命令,虽然大部分黑客在入侵后会删除使用过的命令,但是不排除有些黑客没有删除使用过的命令。如果没有删除的话,我们就可以通过历史命令,知道黑客做了哪些操作,这样后续工作就非常简单了。传送门——> Linux中的.bash_ 文件详解

排查用户相关的信息

whoami       #查看当前用户
who #查看当前登录系统的所有用户
w #显示已经登陆系统的用户列表,并显示用户正在执行的指令
users #显示当前登录系统的所有用户的用户列表
last #查看最近登录成功的用户及信息,查看的是 /var/log/wtmp 文件
lastb #查看最近登录失败的用户及信息,查看的是 /var/log/btmp 文件
lastlog #显示系统中所有用户最近一次登录信息,读取的是 /var/log/lastlog 文件
cat /etc/passwd #查看用户信息
cat /etc/passwd | grep /bin/bash #查看可以登录系统的用户
awk -F: '$3==0{print $1}' /etc/passwd #查看超级用户(uid=0),有些黑客将普通用户的uid改为0,则该普通用户也拥有了超级权限
awk '/\$1|\$6/{print $1}' /etc/shadow #查看可以远程登录的用户
more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)" #查看拥有sudo权限的用户

相关文章:Linux系统登录相关

Linux下的用户、组和权限

排查进程端口相关的信息

top                          #动态查看进程
ls -l /proc/18176/exe #查看PID为18176的进程的可执行程序
lsof -p 18176 #查看PID为18176的进程打开的文件
lsof -c sshd #查看进程sshd打开的文件
lsof -i:33946 #查看33946端口对应的一些进程
ps -p PID -o lstart #查看进程的启动时间点
netstat -pantu | grep 18176 #查看端口连接情况,过滤含有18176的行,就可以查看连接的端口
fuser -n tcp 33946 #查看33946端口对应的进程PID
ps aux / ps -ef #静态查看进程
pstree #查看进程树
ps aux --sort -pcpu #静态查看进程,根据cpu使用情况排行,从高到低
ps aux --sort -pmem #静态查看进程,根据内存使用情况排行,从高到低

相关文章:Linux下性能监控、守护进程与计划任务管理

查找恶意程序并杀掉

由上面我们可知,恶意进程的 PID 为 18176,进程占用的本地端口是33946,进程名字为 vvpKI1

当使用下面命令查找恶意进程的可执行程序时,发现恶意进程的可执行程序被删了,可知该木马是个无文件内存木马

ls -l /proc/18176/exe

查看该进程打开的文件,有时候,恶意程序会打开一些隐藏的字典库,对内网其他主机进行爆破

lsof -p 18176

跟踪异常进程运行情况

strace -tt -T -e trace=all -p 1389       #跟踪1389进程运行情况

杀掉该恶意进程,但是大多数情况下,该进程还会再启动,因为有守护进程。

kill -9 18176

斩草除根

当我们发现,杀掉了恶意进程后,过一段时间,该进程又会重新启动,则说明该进程有守护进程。则我们第一想到了就是crontab定时任务了。

可以使用以下命令查看定时任务

crontab -l  或者  cat /var/spool/cron/root

我们也可以查看定时任务的日志文件

more   /var/log/cron

#查找cron文件中是否存在恶意脚本
/var/spool/cron/* /etc/crontab /etc/cron.d/* /etc/cron.daily/* /etc/cron.hourly/* /etc/cron.monthly/* /etc/cron.weekly/ /etc/anacrontab /var/spool/anacron/* #查看指定目录最近3天内被修改的文件
find /etc/ /usr/bin/ /usr/sbin/ /bin/ /usr/local/bin/ -type f -mtime -3 | xargs ls -la #按时间排序,确认最近是否有命令被替换,可以结合rpm -Va命令
ls -alt /usr/bin /usr/sbin /bin /sbin /usr/local/bin | rpm -Va>rpm.log #查看是否有异常开机启动项
cat /etc/rc.local | chkconfig --list

我们就可以分析定时任务的命令,根据该命令找到恶意文件的源头,斩草除根!

还有一个我们要想到的地方就是 /root/.ssh/authorized_keys 这个文件,大多数黑客入侵后,会在该文件中写入ssh 私钥,以便于下次登录时直接登录。我们查看该文件,如果存在黑客写入的私钥,删除!

借助工具查杀病毒和rootkit

#查杀rootkit
chkrootkit (下载地址-http://www.chkrootkit.org)rkhunter (下载地址-http://rkhunter.sourceforge.net) #查杀病毒
clamav(下载地址-http://www.clamav.net/download.html) #查杀webshell
cloudwalker(下载地址-http://github.com/chaitin/cloudwalker)

判断入侵方式,修复漏洞

在将黑客放入的恶意程序和木马删除干净后,我们就大概可以知道黑客是如何入侵该主机的,进而修改该漏洞,防止黑客再次入侵。

查看 /var/log/secure文件

cat /var/log/secure* | grep Accepted   #查看登录成功的记录
cat /var/log/secure* | grep Failed #查看登录失败的记录 grep "Accepted " /var/log/secure* | awk '{print $1,$2,$3,$9,$11}' #查看登录成功的日期、用户名及ip
grep "Failed password for root" /var/log/secure | awk '{print $11}' #查看有哪些ip在爆破主机的root账号
grep "Failed password" /var/log/secure | awk {'print $9'} | sort | uniq -c | sort -nr #查看爆破用户名字典

总的来说,黑客入侵主机有下列几种情况:

  • 通过 redis 未授权漏洞入侵(好多挖矿程序是通过这个)
  • ssh 弱口令暴力破解
  • Web 程序漏洞入侵

参考文章:   记一次Linux木马清除过程

相关文章:Redis未授权访问漏洞

Linux挖矿病毒的清除与分析

Linux下性能监控、守护进程与计划任务管理

Linux系统应急响应的更多相关文章

  1. Linux安全事件应急响应排查方法总结

    Linux安全事件应急响应排查方法总结 Linux是服务器操作系统中最常用的操作系统,因为其拥有高性能.高扩展性.高安全性,受到了越来越多的运维人员追捧.但是针对Linux服务器操作系统的安全事件也非 ...

  2. 信号处理是Unix和LInux系统为了响应某些状况而产生的事件

    信号处理是Unix和LInux系统为了响应某些状况而产生的事件,通常内核产生信号,进程收到信号后采取相应的动作. 例如当我们想强制结束一个程序的时候,我们通常会给它发送一个信号,然后该进程会捕捉到信号 ...

  3. 一些关于Linux入侵应急响应的碎碎念

    近半年做了很多应急响应项目,针对黑客入侵.但疲于没有时间来总结一些常用的东西,寄希望用这篇博文分享一些安全工程师在处理应急响应时常见的套路,因为方面众多可能有些杂碎. 个人认为入侵响应的核心无外乎四个 ...

  4. 安全运维 - Windows系统应急响应

    挖矿病毒应急 传播方式: 通过社工.钓鱼方式下载和运行了挖矿程序(邮件.IM等) 利用计算机系统远程代码执行漏洞下载.上传和执行挖矿程序. 利用i算计Web或第三方软件漏洞获取计算机权限,然后下载和执 ...

  5. 安全运维 - Linux系统攻击应急响应

    Linux 应急相应 - 总纲 应急准备: 制定应急策略 组建应急团队 其他应急资源 安全事件处理: 痕迹数据获取 分析.锁定攻击源删除可疑账号关闭异常进程.端口禁用相应异常开机启动项删除异常定时任务 ...

  6. Windows系统应急响应

    Windows 系统的应急事件,按照处理的方式,可分为下面几种类别: 病毒.木马.蠕虫事件 Web 服务器入侵事件 或 安装的第三方服务入侵事件. 系统入侵事件,如利用 Windows 的漏洞攻击入侵 ...

  7. Linux应急响应入侵排查思路

    0x00 前言 ​ 当企业发生黑客入侵.系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程,同时给出解 ...

  8. Linux应急响应(四):盖茨木马

    0x00 前言 ​ Linux盖茨木马是一类有着丰富历史,隐藏手法巧妙,网络攻击行为显著的DDoS木马,主要恶意特点是具备了后门程序,DDoS攻击的能力,并且会替换常用的系统文件进行伪装.木马得名于其 ...

  9. Linux应急响应(三):挖矿病毒

    0x00 前言 ​ 随着虚拟货币的疯狂炒作,利用挖矿脚本来实现流量变现,使得挖矿病毒成为不法分子利用最为频繁的攻击方式.新的挖矿攻击展现出了类似蠕虫的行为,并结合了高级攻击技术,以增加对目标服务器感染 ...

随机推荐

  1. 【Azure 云服务】Azure Cloud Service在发布新部署后遇见不能RDP(远程连接)到实例时如何处理?

    Azure 云服务是PaaS 的一个示例. 与 Azure 应用服务一样,此技术设计用于支持可缩放.可靠且运营成本低廉的应用程序. 同样,应用服务托管在虚拟机 (VM) 上,Azure 云服务也是如此 ...

  2. [学习笔记] KM算法

    前言 这个东西学了我挺久了,我先奉劝各位一定要先搞清楚匈牙利算法.感谢 \(\tt jzm\) 巨佬对我耐心的讲解,因为我太弱了所以卡了很久都不懂.如果你有任何问题请在本篇博客下面留言,我会尽力解答的 ...

  3. BZOJ_4034 [HAOI2015]树上操作 【树链剖分dfs序+线段树】

    一 题目 [HAOI2015]树上操作 二 分析 树链剖分的题,这里主要用到了$dfs$序,这题比较简单的就是不用求$lca$. 1.和树链剖分一样,先用邻接链表建双向图. 2.跑两遍$dfs$,其实 ...

  4. IDA报错fatal error before kernel init

    编写了一个IDA64插件,结果再打开IDA后报错fatal error before kernel init,然后闪退. 检查了一遍代码没发现有问题,后来发现是环境有一处配置错误, IDA64.exe ...

  5. 8、MyBatis之使用注解开发

    9.使用注解开发 mybatis最初配置信息是基于 XML ,映射语句(SQL)也是定义在 XML 中的.而到MyBatis 3提供了新的基于注解的配置.不幸的是,Java 注解的的表达力和灵活性十分 ...

  6. SQL 存储过程里调用另一个存储过程

    由于创建了一个存储过程,并且要在另一个存储过程里调用这个存储过程所以在网上找了一下相关的代码,现在总结一下,防止以后还会用到 由于这次我写的存储过程只需要返回一个求和的结果,所以我使用了output ...

  7. 【图像处理】OpenCV+Python图像处理入门教程(七)图像形态学操作

    图像形态学主要从图像内提取分量信息,该分量信息通常对表达图像的特征具有重要意义.例如,在车牌号码识别中,能够使用形态学计算其重要特征信息,在进行识别时,只需对这些特征信息运算即可.图像形态学在目标视觉 ...

  8. java面试-生产环境出现CPU占用过高,谈谈你的分析思路和定位

    思路:结合Linux和JDK命令一起分析 1.用top命令找出CPU占比最高的进程 2.ps -ef|grep java|grep -v grep 或者jps -l进一步定位,得知是怎样一个后台程序惹 ...

  9. python基础(〇):注释

    单行注释 Python中单行注释以 # 开头,例如: # 这是一个注释1 print("Hello, World!") # 这是一个注释2 多行注释 单引号(''') ''' 这是 ...

  10. HelloWorld的命令提示符运行和命名规则

    HelloWorld 随便新建一个文件夹,存放代码 新建一个Java文件 文件后缀名为.java Hello.java [注意点]系统可能没有显示文件后缀名,我们需要手动打开 编写代码 public ...