一、主机篇:

1、自动化初筛,建议使用RootkitHunter

(1)安装

 $sudo wget https://jaist.dl.sourceforge.net/project/rkhunter/rkhunter/1.4.4/rkhunter-1.4.4.tar.gz
$sudo tar zxvf rkhunter-1.4..tar.gz
$sudo cd rkhunter-1.4.
$sudo sh install.sh --install

(2)使用(主要看一下,常用的基础的命令有没有被替换)

 $/usr/local/bin/rkhunter --propupd
$/usr/local/bin/rkhunter -c --sk --rwo

(3)详细使用部分--引用自:https://yq.aliyun.com/ziliao/75349

详细内容见附录一

2、确保命令没有被替换后进行排查,第一步查看在线连接和登录日志(无论从什么途径进来的,如果能进来说明登录了才能完成操作,因此查看登录日志)

 $sudo netstat -anpo #查看网络连接情况
$ps -ef 或者 $ps aux #查看异常进程
$top #查看资源占用情况
#查看登录操作情况
$last > last.log
$who /var/log/utmp #登录情况(很可能被删除)
$who /var/log/wtmp #登录情况(很可能被删除)
$cat /var/log/lastlog #最后登录日志(很可能被删除)
$cat /var/log/secure #登录日志,成功失败都有(很可能被删除)
$cat /var/log/faillog #登录失败日志,未必有
$cat /var/log/cron #计划任务,恶意程序、木马后门启动集中地或者cd /etc/crontab && ls
$cat ~/.bash_history 记录操作指令,但是最好有shelllog,因为shelllog是内核hook的,及时攻击者敲了unset history也可以记录操作
#有异常进程和连接先干掉,从甲方首先保障回复切断攻击,保护自己然后再开始分析入侵细节。从乙方来说也可以避免干扰。
#综上:shelllog是最王道的

3、系统级的(例如redis未授权访问利用备份机制写ssh证书密钥获取登录权限的、或者ssh爆破的):

  根据上面查看的有漏洞修漏洞,弱密码改口令,清楚所有木马后门基本做不到,基本上对于安全制度要求都是重装机器,业务备份就非常重要,确保业务不中断。

  查看最近被修改的文件、创建的文件、隐藏的文件等等,争取找到后门或其他恶意程序。

 #find /path/ -mtime - -type f -print
#find /path/ -ctime - -type f -print
#ls -alt

  提权检测(首先最好堵住臧脏牛等可以提权的漏洞,但出于业务对底层包文件、库文件的依赖无法升级的一定要做好边界防护)

 $cat /etc/passwd  #查看异常id gid 为0的
$lsof -g gid 查看相关文件

4、WEB级的

  如果有网络流量的监控预警会大大便利web的入侵应急响应。因为可以获取到攻击时间、攻击来源、尤其是加载payload等重要信息,其实主机级别的一样,如果有网络级别的告警会更方便处理。

 """
比如,利用java反序列化漏洞,把写好的后门文件类通过java反序列化的方式传到服务器上,甚至无需服务器运行web服务器(只要有java rmi仓库即可),可以运行后门程序,全程没有web日志。只能从tcp流量中查看。
"""

  一般查看日志:

#如果可以,先停止服务:
#查看日志--确定攻击源、确定攻击操作:
#根据时间,现象等信息或者更多信息,确定攻击者IP、攻击操作:
#access_log/error.log
$sudo cat access_log | awk '{print $1}'|sort|uniq -c| sort -n -t ' ' #按访问次数排序(nr)
$sudo cat access_log | grep a.b.c.d | grep "2018-01-09:10:10:10"
#一定要开启POST的部分的日志
#可以看出菜刀连接、木马后门访问、 SQL注入、反射性XSS、目录遍历、参数污染、文件上传、OS命令注入执行等。
#关于数据的库也可以去查看数据可的SQL运行日志,如果有后门去检查后门文件,命令执行看操作那些,一般命令执行了,肯定会弹shell。

  后门检查:很多人说查eval和system啊,也有很多有经验的工程师说不能查这些词,有网络流量分析监控多好,能考到请求,查参数名(无论是GET还是POST)感觉蛮快的。

 #找到所有的脚本文件打包:
$sudo find /var/www/html/ |grep -E ".asp$|.aspx$|.jsp$|.jspx$|.jspf$|.php$|.php3$|.php4$|.php5$|.inc$|.phtml$|.jar$|.war$|.pl$|.py$|.cer$|.asa$|.cdx$|.ashx$|.ascx$|.cfm$|.cgi$ "|xargs tar zcvf /tmp/shellscript.tar.gz
#解压缩后查找最近有改动的:
$sudo ls -alt
$sudo find ./ -mtime(ctime) x -name "*.[exetendfilename]"
#x 第x天前那一天内修改过的文档
#+x x天之前修改过的
#-x x天之内修改过的
#查看文件内容的:
$find ./ -name "x.[exetendfilename]" | xargs grep [neirong]

二、对于非传统攻击(例如APT攻击的)的应急处置:

1、快速断网:

  根据上文中的对网络连接的查询, 快速查找到可以连接直接切断,疑似受控危险情况下,直接断网。(记录下可以IP、Domain)

2、进程排查:

  根据进程,找到样本(木马、蠕虫、病毒、downloader),交由沙箱快速分析重点找到网络行为,如果已知更好。

  可以采取的措施:

  1、对于c&c的IP、域名要直接在防火墙上deny掉,或者直接托管(dns代理),dga类型的可以定期的检测dga域名,尝试预测或者根据逆向分析恶意样本得到的dga算法进行封堵或者托管。

  2、已经感染的和未感染的机器进行隔离措施。

  3、分析恶意样本行为以及失陷主机日志,分析评估损失。

  4、进行全面的主机恶意样本检查。

  5、回复或重装系统。

3、排查rookit,或许有深度隐藏恶意后门、如有可能,重新全面评估内部安全包括渗透测试,风险评估等。

三、小技巧(引用自同学兼同行hyber博客http://www.cnblogs.com/Hyber/p/6039551.html

四、附录:

1、附录一RootkitHunter的详细使用:

指令参数说明:

/usr/local/bin/rkhunter
Usage: rkhunter {--check | --update | --versioncheck |
                 --propupd [{filename | directory | package name},...] |
                 --list [{tests | {lang | languages} | rootkits},...] |
                 --version | --help} [options]
Current options are:
         --append-log                  在日志文件后追加日志,而不覆盖原有日志
         --bindir <directory>...       Use the specified command directories
     -c, --check                       检测当前系统
  --cs2, --color-set2                  Use the second color set for output
         --configfile <file>           使用特定的配置文件
         --cronjob                     作为cron定期运行
                                       (包含参数 -c, --sk , --nocolors )
         --dbdir <directory>           Use the specified database directory
         --debug                       Debug模式(不要使用除非要求使用)
         --disable <test>[,<test>...]  跳过指定检查对象(默认为无)
         --display-logfile             在最后显示日志文件内容
         --enable  <test>[,<test>...]  对指定检测对象进行检查
                                       (默认检测所有对象)
         --hash {MD5 | SHA1 | NONE |   使用指定的文件哈希函数
                 <command>}            (Default is SHA1)
     -h, --help                        显示帮助菜单
 --lang, --language <language>         指定使用的语言
                                       (Default is English)
         --list [tests | languages |   罗列测试对象明朝,使用语言,可检测的木马程序
                 rootkits]             
     -l, --logfile [file]              写到指定的日志文件名
                                       (Default is /var/log/rkhunter.log)
         --noappend-log                不追加日志,直接覆盖日志文件
         --nocolors                    输出只显示黑白两色
         --nolog                       不写入日志文件
--nomow, --no-mail-on-warning          如果有警告信息,不发送邮件
   --ns, --nosummary                   不显示检查结果的统计数据
 --novl, --no-verbose-logging          不显示详细记录
         --pkgmgr {RPM | DPKG | BSD |  使用特定的包管理用于文件的哈希值验证
                   NONE}               (Default is NONE)
         --propupd [file | directory | 更新整个文件属性数据库或仅仅更新指定条目
                    package]...        
     -q, --quiet                       安静模式(no output at all)
  --rwo, --report-warnings-only        只显示警告信息
     -r, --rootdir <directory>         使用指定的root目录
   --sk, --skip-keypress               自动完成所有检测,跳过键盘输入
         --summary                     显示检测结果的统计信息
                                       (This is the default)
         --syslog [facility.priority]  记录检测启动和结束时间到系统日志中
                                       (Default level is authpriv.notice)
         --tmpdir <directory>          使用指定的临时目录
         --update                      检测更新内容
   --vl, --verbose-logging             使用详细日志记录 (on by default)
     -V, --version                     显示版本信息
         --versioncheck                检测最新版本
     -x, --autox                       当X在使用时,自动启动检测
     -X, --no-autox                    当X在使用时,不自启检测

有了rootkit hunter,侦测 rootkit 程序、侦测后门程序、以及主机端的套件检查问题就变得简单了,很多时候,rootkit hunter可以自动帮我们完成这些复杂的工作。

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索日志 , 文件 , 对象 , 程序 , 系统 哈希 linux rootkit扫描、rootkit扫描工具、linux rootkit工具、rootkit hunter、rootkithunter,以便于您获取更多的相关知识。

2、附录二:关于一些命令的使用我自己原来的博客合并过来:

(1)首先查看网络连接情况:

1 #netstat -anop | grep "ssh" /*查看ssh连接或者telent*/
2 #netstat -anop | grep "a.b.c.d" /*查看连接的IP*/
3 #ps aux /*查看可以进程*/
4 /*
5 可以结合起来,因为netstat -anop里面有pid
6 */

由上面确认是否攻击者仍在连接。如果连接,建议关闭网络或直接下线脱机应急。

(2)查看history

1 #history /*查看历史命令*/=》即使攻击者敲击了unset history 也至少会被记录这一条

如果觉得history历史记录太少请查看历史命令文件:

1 #vim ~/.bash_history

(3)查看用户:

1 #who        /*查看登录情况*/
2 #whoami /*查看自己是谁*/
3 #vim /etc/passwd
4 #vim /etc/shadow

(4)查看最近被改过的文件:

1 #find /path/ -mtime -1 -type f -print
2 #find /path/ -ctime -1 -type f -print
3 #ls -alt

(5)查看所有脚本文件打包:

1 find /var/www/html/  |grep -E ".asp$|.aspx$|.jsp$|.jspx$|.jspf$|.php$|.php3$|.php4$|.php5$|.inc$|.phtml$|.jar$|.war$|.pl$|.py$|.cer$|.asa$|.cdx$|.ashx$|.ascx$|.cfm$|.cgi$ "|xargs tar zcvf /tmp/shellscript.tar.gz

(6)查看web日志:

 1 /*access_log:/var/log/httpd/access_log*/
2 #cat access_log | awk '{print $1}'|sort|uniq -c 查看访问的ip
3 #cat access_log | awk '{print $1}'|sort|uniq -c| sort -n -t ' ' 按访问次数排序(nr)
4 #find ./ -name "*.php" |grep 404|xargs ls -la//(xargs)把前面的结果传到后面作为输入
5 /*awk指定符号切:-F '切割符号'
6 /*复杂的awk*/
7 #cat access_log | awk '{print $1"\t"$2}'
8 #cat access_log | awk'(/404/)'|wc -l
9 #cat access_log | awk '($1>2000&&$1~/172/)'#awk可以是表达式
10 #find /var/www/html/ -name "*.php" |xargs grep chenran 查看文件里面的内容

3、附录三:Unix日志分析读书笔记:

一、文件分析:
知识点1、敏感目录
(1)/tmp 临时文件
(2)/usr/bin , /usr/sbin , /bin 命令所在目录
(3)/etc/init.d 开机启动目录
知识点2、敏感文件
(1)/etc/rc.local 开机启动文件
(2)/root/.bash_history 命令执行历史信息文件
(3)/etc/password /etc/shadow 用户账户信息文件
(4)/etc/cron* 计划任务信息
知识点3、常用命令
(1)ls -alt [a 查看以.开头的隐藏文件;t 按时间排序;l 查看列表详细信息 ]
(2)取前x(x为正整数集合)项 head -n X
(3)查看文件详细信息 stat
(4)find ./ -mtime(ctime) x -name "*.php"
[-mtime 指不包含权限的文件修改时间]
[-ctime包含权限的文件修改时间]
[-name 后面是文件名的正则
(5)查看文件权限 find ./*.py -perm 4777 [-perm 后面权限号]
(6)查看命令文件是否替换 可以直接MD5检查。

二、网络与进程分析
知识点一、查看进程
(1)ps aux
(2)连接grep使用,例如grep xxx 或者 grep -v xxx [-v 排出xxx]
知识点二、查看网络
(1)netstat -antlp | more 基本信息关联查看
(2)lsof -i port 查看端口对应程序
知识点三、查看隐藏进程
(1)ps -ef | awk '{print}' | sort -n | uniq > 1
ls /proc | sort -n | uniq >2
diff 1 2

三、系统信息分析
知识点1、history分析 /root/.bash_history 分析历史执行命令
知识点2、敏感文件分析(参考敏感文件)
知识点3、开机启动分析(chkconfig)
知识点4、用户信息分析cat /etc/passwd | grep -E "/bin/bash$"能登录的用户
知识点5、环境变量系统路径分析 echo $PATH
知识点6、ssh分析 /etc/ssh /etc/.ssh

四、日志分析
知识点1、日志文件
(1)/var/log/wtmp
(2)/var/run/utmp
(3)/var/log/lastlog
(4)/var/log/btmp
知识点2、关键字
(1)Accepted
(2)Failed
(3)password
(4)invalid
知识点3、登录日志分析
(1)lastlog最近几次登录成功和最后一次登录失败相关信息
(2)who 查询当前用户信息
(3)whois 类似(2)
(4)users 类似(2)
(5)lastb 类似(1)
(6)finger
知识点4、两条语句
(1)grep "Failed password for root" /var/log/auth.log | awk '{print $11}' | sort | uniq -nr | more
(2)grep "Accepted" /var/log/auth.log | awk '{print $11}' | sort |uniq -c | sort -nr | more

四、后门排查
知识点1、webshell查找
(a)命令:
find /var/www/ -name "*.php" | xargs egrep 'assert | phpspy | c99sh | milw0rm | eval | \( gunerpress | \(bas464_encode | spider _bc | shell_exec | passthru | \(\$\_\POST\[|eval\(str_rotl3 | .chr\c|\$\{\"\_P|eval\C\$\_R | file_put_contents\C\.\*\$\_ | base64_decode'

五、应用类日志的几个小技巧:
知识点1、
find .access_log | grep xargs ip a.b.c.d
find .access_log | grep xargs trojan_name
cat access.log | cut -f 1(ip)/4(url) "" | sort | uniq -c | sort -k | -r head -10
cat access.log | sort -k 2 -n -r | head -10

Linux应急响应思路详谈的更多相关文章

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

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

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

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

  3. Linux应急响应(二):捕捉短连接

    0x00 前言 ​ 短连接(short connnection)是相对于长连接而言的概念,指的是在数据传送过程中,只在需要发送数据时,才去建立一个连接,数据发送完成后,则断开此连接,即每次连接只完成一 ...

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

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

  5. 最全Linux应急响应技巧 【转】

    概述 Linux环境下处理应急响应事件往往会更加的棘手,因为相比于Windows,Linux没有像Autorun.procexp这样的应急响应利器,也没有统一的应急响应处理流程.所以,这篇文章将会对L ...

  6. Linux应急响应基础

    文件排查 敏感目录文件分析 tmp目录 命令目录 /usr/bin /usr/sbin 开机启动项 /etc/init.d /etc/init.d是/etc/rc.d/init.d的软链接 文件时间 ...

  7. Linux应急响应学习

    Linux应急响应-系统日志排查-溯源 溯源 找到攻击者.系统日志分析攻击者的ip  攻击者可能留下了一些代码 样本 网上的信息很大程度上是不可信的. 方法: 蜜罐  高交互的蜜罐 溯源: ip 日志 ...

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

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

  9. Linux应急响应姿势浅谈

    一.前记 无论是甲方还是乙方的同学,应急响应可能都是家常便饭,你可能经常收到如下反馈: 运维同事 --> 服务器上存在可疑进程,系统资源占用高: 网络同事 --> 监控发现某台服务器对外大 ...

随机推荐

  1. C#捕获鼠标消息

    在C#中怎样禁用鼠标按键,我们可以通过ImessageFilter接口下的PreFilterMessage方法.Application类的AddMessageFilter方法,RemoveMessag ...

  2. Oracle的sql语句中关键字冲突用双引号

    select distinc user from instrument where created>"TO_DATE"('2015-02-05 12:00:00', 'yyy ...

  3. 谈API网关的背景、架构以及落地方案

    Chris Richardson曾经在他的博客上详细介绍过API网关,包括API网关的背景.解决方案以及案例.对于大多数基于微服务的应用程序而言,API网关都应该是系统的入口,它会负责服务请求路由.组 ...

  4. kettle的jndi的使用

    kettle可以使用jdbc的方式设置job或者tansform的数据库连接,但是,同时它也支持JNDI方式连接数据库,后者更加方便,只需要配置一份配置文件就可以了,不用每个DBConnection都 ...

  5. jQuery.Form插件介绍

    一.前言  jQuery From插件是一个优秀的Ajax表单插件,使用它可以让你非常容易地.无侵入地升级HTML表单以支持Ajax.jQuery From有两个主要方法:ajaxForm和ajaxS ...

  6. there are 0 datanode.....

    当时执行hive的导入数据load data  inpath "XXXX" into table.....的时候发现总是导不进去,最后试了下简单的从Linux 到 HDFS上传文件 ...

  7. 关于Cocos2d-x中根据分数增加游戏难度的方法

    1.GameScene.h中声明一些分数边界值 //level提升所需的分数 enum LevelUp_Score { Level1Up_Score = , Level2Up_Score = , Le ...

  8. php -- 取日期

    1.获取当前时间方法date()很简单,这就是获取时间的方法, 格式为:date($format, $timestamp), format为格式 - 必需 timestamp为时间戳–可填参数. 比如 ...

  9. eclipse集成Python开发环境

    话说近期听说 Python 非常牛, 非常强大, 至于到底有多强大, 俺作为一枚菜鸟也就不好发表太多评价. 言归正传, 本文教你在eclipse中安装 Python 插件, 以下我们就跟着步骤一起做吧 ...

  10. 今天搞log4net插入错误日志去mysql数据库的时候出现了点问题,已解决。记录下解决方案

    先上图 配置log4net的时候要填这项,可是这个value我不知道啊.....上图里的value是我用下面的方法获取的 MySqlConnection con = new MySqlConnecti ...