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

  个人认为入侵响应的核心无外乎四个字,顺藤摸瓜。我们常常需要找到比较关键的信息后通过一些指令查询或者分析日志,逐步分析黑客的具体步骤。

  • 入侵后需要被关注的Linux系统日志
var/log/cron    记录crontab命令是否被正确的执行,一般会被黑客删除
var/log/lastlog  记录登录的用户,可以使用命令lastlog查看,一般会被黑客删除
var/log/secure  记录大多数应用输入的账号与密码,登录成功与否,一般会被黑客删除
var/log/wtmp  记录登录系统成功的账户信息,等同于命令last,一般会被黑客删除
var/log/faillog  记录登录系统不成功的账号信息,一般会被黑客删除
~/.bash_history  至关重要的日志,往往黑客会使用history -c清理相关的日志,然后使用cat ~/.bash_history仍可查看相关的记录
  • 入侵后需要关注的web服务器日志

  web服务器的种类很多,接触比较多的为apache、tomcat、Nginx为主。无论任何web服务器其实日志需要关注的东西是一致的,即access_log和error_log。一般在确定ip地址后,通过:

find . access_log |grep xargs ip攻击地址
find . access_log| grep xargs 木马文件名

   是一种顺藤摸瓜比较好的排查方式,通过access_log和error_log中的数据我们一般能明确以下几件事情:

  1. 文件是什么时刻上传的,应急响应中确定攻击发生的攻击点十分重要。通过时间点可以有效的查找加密木马,隐蔽的后门等。举例说明:

     今天是2016年11月7日,我通过排查发现攻击点发生在11月5日。站在网站上传目录:

find . -name *.php -ctime -1

     接一些更为复杂的正则来匹配文件:

find ./ -name “*.php” -type f -print0|xargs -0 egrep “(phpspy|c99sh|milw0rm|eval\(gunerpress|eval\(base64_decode|spider_bc)”|awk -F: ‘{print $1}’

       具体的-ctime、-atime、-mtime不再赘述。关于+—号问题,引用一下:

     -mtime n:n为数字,意思是在n天之前的【一天之内】被更改过内容的文件;
-mtime +n:列出在n天之前(不含n天本身)被更改过内容的文档名;
-mtime -n:列出在n天之内(含n天本身)被更改过内容的文档名;
   0为24小时以内

  2.攻击的IP地址是多少,当然一般情况是跳板地址TT

  3.传了什么文件上来

  • 登上服务器就要立刻输入的命令(全是套路,但一般很有用)
ps -ef  查看可疑进程

  一般ps -ef能比较清晰的看出反弹shell,引用下:

http://www.waitalone.cn/linux-shell-rebound-under-way.html

top  处理过几次肉鸡服务器,基本上top能很明显的看出占用资源异常的服务
last  登录时间能不能跟运维人员时间对上
crontab -l   查看例行任务,很多后门程序可以通过crontab完成自启。

  不过有时候crontab -l并不能解决问题,通常还要做如下操作:

cd /etc/crontab
ls

  查看有没有提权痕迹:

cat /etc/passwd  极有可能其他用户出现id,组id 0、0的情况

  如果系统里有lsof命令那就太好了:

lsof -g gid号   通常能找到恶意文件关联的lib文件
  • 一些技巧的的碎碎念
chattr  +i   处理过一起病毒自己会改写crontab的,可以用这个命令把crontab锁住
chmod 000 在删除一些病毒文件时候需要先去除执行权限

  在写这篇博文的时候,查阅资料,发现find还可以这么用:

find / *.jsp  -perm 4777  查找777的权限的文件

  因为我发现任何黑客在入侵完Linux在这一步都避免不了这样喜悦的操作:

yum xxxx
mkdir hehe
chmod 777 *.*
cd hehe
./xxxx
  • 总结
  1. 应急响应感觉确定的优先级是时间,ip、最后是恶意文件。尤其时间最为重要,如果连攻击时间都没法确定,感觉真心没有啥好的切入点,至少不能保证你把后门都查杀干净。
  2. 作为小菜,研读过很多大牛的文章,结合自己做的案例,感觉切入点主要就这么多。但难点是你能否准确判断哪个是正常文件,哪个是恶意文件。以及自己的渗透和黑产知识面是否完备,能准确的猜到黑客干了啥。
  3. 还有一些东西,比如内核啊,启动顺序的一些问题,最近在总结,有机会补全。    

    

一些关于Linux入侵应急响应的碎碎念的更多相关文章

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

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

  2. 记一次linux服务器入侵应急响应

    近日接到客户求助,他们收到托管电信机房的信息,通知检测到他们的一台服务器有对外发送攻击流量的行为.希望我们能协助排查问题. 一.确认安全事件 情况紧急,首先要确认安全事件的真实性.经过和服务器运维人员 ...

  3. 服务器入侵应急响应排查(Linux篇)

    总体思路 确认问题与系统现象 → 取证清除与影响评估 → 系统加固 → 复盘整改 常见入侵 ① 挖矿: 表象:CPU增高.可疑定时任务.外联矿池IP. 告警:威胁情报(主要).Hids.蜜罐(挖矿扩散 ...

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

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

  5. Linux系统应急响应

    目录 排查用户相关的信息 排查进程端口相关的信息 查找恶意程序并杀掉 斩草除根 判断入侵方式,修复漏洞 当我们被告知一台Linux服务器被黑客入侵,黑客利用该服务器进行挖矿,并且在该服务器上放置了木马 ...

  6. Linux应急响应思路详谈

    一.主机篇: 1.自动化初筛,建议使用RootkitHunter (1)安装 $sudo wget https://jaist.dl.sourceforge.net/project/rkhunter/ ...

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

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

  8. windows应急响应入侵排查思路

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

  9. Linux应急响应(一):SSH暴力破解

    0x00 前言 ​ SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,主要用于给远程登录会话数据进行加密,保证数据传输的安全.SSH口令长度太短或者复杂度不够,如仅包含数字,或仅包 ...

随机推荐

  1. Unity3d学习 相机的跟随

    最近在写关于相机跟随的逻辑,其实最早接触相机跟随是在Unity官网的一个叫Roll-a-ball tutorial上,其中简单的涉及了关于相机如何跟随物体的移动而移动,如下代码: using Unit ...

  2. dotNET跨平台相关文档整理

    一直在从事C#开发的相关技术工作,从C# 1.0一路用到现在的C# 6.0, 通常情况下被局限于Windows平台,Mono项目把我们C#程序带到了Windows之外的平台,在工作之余花了很多时间在M ...

  3. 一起学微软Power BI系列-使用技巧(1)连接Oracle与Mysql数据库

    说起Oracle数据库,以前没用过Oracle不知道,但是这1年用Oracle后,发现真的是想狂吐槽,特别是那个.NET驱动和链接字符串,特别奇葩.总归是和其他数据库不一样,标新立异,不知道为何.另外 ...

  4. unity 3d 解析 json

    官网案例传送门 我这里不过是借花献佛,案例官网就有. using UnityEngine; using System.Collections; public class json : MonoBeha ...

  5. 用django创建一个项目

    首先你得安装好python和django,然后配置好环境变量,安装python就不说了,从配置环境变量开始 1.配置环境变量 在我的电脑处点击右键,或者打开 控制面板\系统和安全\系统 -> 左 ...

  6. arcgis api for js入门开发系列六地图分屏对比(含源代码)

    上一篇实现了demo的地图标绘模块,本篇新增地图地图分屏对比模块,截图如下(源代码见文章底部): 对效果图的简单介绍一下,在demo只采用了两分屏对比,感兴趣的话,可以在两分屏的基础上拓展,修改css ...

  7. 微信开发笔记(accesstoken)

    access_token分两种 一种是公众号权限获取用,调用cgi-bin接口 ,此种token一个公众号同时只有一个,用这一个就够了. 服务器最好缓存. 用这个token前提是用户关注了此公众号. ...

  8. Linux测试环境搭建的学习建议

    随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起.这里介绍学习Linux测试环境搭建的一些建议. 一.Linux测试环境搭建从基 ...

  9. ASP.NET Aries 2.0 发布(原来的源码SVN已关闭,开源源码已迁移到GitHub)

    主要更新: 1:增加子目录部署支持. 2:增加Taurus.MVC支持. 3:优化及Bug修复. 1:增加子目录部署支持: 其实在重写Aries框架的时候,我是去掉了目录部署功能的,主要是为了加快Ar ...

  10. 再见Windows C++

    我3年多以前写过一个小工具,是用来检测Windows操作系统的版本及其所安装的.NET Framework版本的,我用它来排查由于缺乏运行环境支持所导致的程序无法运行的问题.这个工具是用Visual ...