一、主机篇:

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. windows server 2003中用系统自带工具调整磁盘分区大小

    先在需要扩展的右边留出未分配的磁盘空间,可以通过 我的电脑 右键 管理 磁盘管理来操作 首先 进入cmd界面 然后输入Diskpart 这个时候进入DISKPART> 界面 然后你 先选择磁盘一 ...

  2. 获取页面中更新删除传过来的id

    利用uri辅助函数 $id=$this->uri->segment(4); 其中segment(参数)  是表示你要截取获得第几个数据.

  3. LIBSVM使用方法及参数设置 主要参考了一些博客以及自己使用经验。

    主要参考了一些博客以及自己使用经验.收集来觉得比较有用的. LIBSVM 数据格式需要---------------------- 决策属性  条件属性a  条件属性b  ... 2    1:7   ...

  4. oracle权限详解

    一.权限分类:系统权限:系统规定用户使用数据库的权限.(系统权限是对用户而言). 实体权限:某种权限用户对其它用户的表或视图的存取权限.(是针对表或视图而言的). 二.系统权限管理:1.系统权限分类: ...

  5. thinkphp 查询指定分类下的文章

    $list = $Dao->query("SELECT xp_wztj.bt,xp_wztj.time,xp_wztj.gjz,xp_wztj.wz,xp_wzfl.name FROM ...

  6. English Sentenses【no use】

    1.Sorry if I might sound arrogant or offensive. 2.Any further question? 3.How dare you! 4.Try it if ...

  7. Extracting and composing robust features with denosing autoencoders 论文

    这是一篇发表于2008年初的论文. 文章主要讲了利用 denosing autoencoder来学习 robust的中间特征..进上步,说明,利用这个方法,可以初始化神经网络的权值..这就相当于一种非 ...

  8. 下载最新android adt的方法

    作为一名android开发人员,需要经常更新最新版本的 android adt,但是直接到官网去找很难找到下载的链接,通过下面现成的链接,你就能够直接下载最新的android adt了, 网址是:de ...

  9. 一些 Linux 常用命令说明

    目前由于自己接触到的是 Windows 的操作系统,所以会经常使用 git bash 来提交代码到 github上. git bash 是 Windows 下模拟 Linux 的命令行工具. 在此总结 ...

  10. More is better-多多益善

    思路:在图中所有的连通分量中找出包含顶点最多的个数.继续使用并查集解决! #include <iostream> using namespace std; ; int tree[MAX]; ...