1. 1. 1、应急响应介绍
    1. 1.1. 第一步:沟通
    2. 1.2. 第二步:确认
    3. 1.3. 第三步:深入分析
    4. 1.4. 第四步:沟通
    5. 1.5. 第五步:总结
    6. 1.6. 注意事项:
    7. 1.7. 应急响应整体思路
    8. 1.8. 应急响应事件介绍及处理流程
      1. 1.8.1. 网络攻击事件
      2. 1.8.2. 恶意程序事件
      3. 1.8.3. Web恶意木马
      4. 1.8.4. 信息破坏事件
      5. 1.8.5. 其他安全事件
      6. 1.8.6. 事件处理流程
    9. 1.9. 总结
  2. 2. 2、Linux/Windows入侵命令排查初步
    1. 2.1. Linux排查方法
      1. 2.1.1. 1、系统完整性
      2. 2.1.2. 2、进程
      3. 2.1.3. 3、网络连接
      4. 2.1.4. 4、开机启动项
      5. 2.1.5. 5、Webshell查杀
      6. 2.1.6. 6、计划任务
      7. 2.1.7. 7、查看系统登录情况
      8. 2.1.8. 8、查看SSH key
      9. 2.1.9. 9、用户及hosts
      10. 2.1.10. 10、查看动态链接库
      11. 2.1.11. 11、日志分析
    2. 2.2. Windows排查方法
      1. 2.2.1. 1、系统状态排查
      2. 2.2.2. 2、文件分析
        1. 2.2.2.1. 临时文件
        2. 2.2.2.2. 浏览器相对文件
        3. 2.2.2.3. 最近文件
        4. 2.2.2.4. 文件修改时间
        5. 2.2.2.5. system32和hosts文件
      3. 2.2.3. 网络连接
      4. 2.2.4. 流量分析
      5. 2.2.5. 漏洞与补丁信息
      6. 2.2.6. 进程分析
      7. 2.2.7. 启动项异常
      8. 2.2.8. 用户排查
      9. 2.2.9. 删除guest用户
      10. 2.2.10. 常用工具及命令
        1. 2.2.10.1. Webshell查杀
        2. 2.2.10.2. 木马病毒类查杀
        3. 2.2.10.3. 进程分析
        4. 2.2.10.4. 流量分析
        5. 2.2.10.5. 启动项分析
        6. 2.2.10.6. 其他辅助工具
  3. 3. 3、Linux入侵排查,木马处理
    1. 3.1. 1、应急常用Linux命令
      1. 3.1.1. (1)查看进程
      2. 3.1.2. (2)网络连接
      3. 3.1.3. (3)开机启动项
      4. 3.1.4. (4)查看计划任务
      5. 3.1.5. (5)查看登录情况
      6. 3.1.6. (8)查看动态链接库
    2. 3.2. 2、入侵排查
      1. 3.2.1. 2.1:账号安全
      2. 3.2.2. 入侵排查
      3. 3.2.3. 2.2:历史命令
      4. 3.2.4. 入侵排查
    3. 3.3. 2.3:检查异常端口
    4. 3.4. 2.4:检查异常进程
    5. 3.5. 2.5:检查开机启动项
      1. 3.5.1. 入侵排查
    6. 3.6. 2.6:检查定时任务
      1. 3.6.1. 1、利用crontab创建计划任务
      2. 3.6.2. 2、利用anacron实现异步定时任务调度
      3. 3.6.3. 入侵排查
    7. 3.7. 2.7:检查服务
      1. 3.7.1. 入侵排查
    8. 3.8. 2.8:检查异常文件
    9. 3.9. 2.9:检查系统日志
    10. 3.10. 3、工具篇
      1. 3.10.1. 3.1:Rootkit查杀
      2. 3.10.2. 3.2:病毒查杀
      3. 3.10.3. 3.3:webshell查杀
      4. 3.10.4. 3.4:RPM check检查
      5. 3.10.5. 3.5:linux安全检查脚本
  4. 4. 4、Windows入侵排查,木马处理
    1. 4.1. 1、入侵排查思路
      1. 4.1.1. 1.1:检查系统账号安全
        1. 4.1.1.1. (1)查看服务器是否有弱口令,远程管理端口是否对公网开放
        2. 4.1.1.2. (2)查看服务器是否存在可疑账号、新增账号
        3. 4.1.1.3. (3)查看服务器是否存在隐藏账号、克隆账号
        4. 4.1.1.4. (4)结合日志,查看管理员登陆时间、用户名是否存在异常
      2. 4.1.2. 1.2:检查异常端口进程
        1. 4.1.2.1. (1)检查端口连接情况,是否有远程连接、可疑连接
        2. 4.1.2.2. (2)进程
        3. 4.1.2.3. (3)小技巧
      3. 4.1.3. 1.3:检查启动项、计划任务、服务
        1. 4.1.3.1. (1)检查服务器是否有异常的启动项
        2. 4.1.3.2. (2)检查计划任务
        3. 4.1.3.3. (3)服务自启动
      4. 4.1.4. 1.4:检查系统相关信息
        1. 4.1.4.1. (1)查看系统版本以及补丁信息
        2. 4.1.4.2. (2)查找可疑目录及文件
        3. 4.1.4.3. (3)得到发现WEBSHELL、远控木马的创建时间,如何找出同一时间范围内创建的文件?
      5. 4.1.5. 1.5:自动化查杀
      6. 4.1.6. 1.6:日志分析
        1. 4.1.6.1. WEB访问日志分析方法:
    2. 4.2. 2、工具篇
      1. 4.2.1. 2.1:病毒分析
      2. 4.2.2. 2.2:病毒查杀
      3. 4.2.3. 2.3:病毒动态
      4. 4.2.4. 2.4:在线病毒扫描网站
      5. 4.2.5. 2.5:webshell查杀
  5. 5. 5、常见的Webshell查杀工具
    1. 5.1. 简介
    2. 5.2. 1、D盾_Web查杀
    3. 5.3. 2、百度WEBDIR+
    4. 5.4. 3、河马
    5. 5.5. 4、Web Shell Detector
    6. 5.6. 5、CloudWalker(牧云)
    7. 5.7. 6、深度学习模型检测PHP Webshell
    8. 5.8. 6、在线webshell查杀工具
  6. 6. 6、如何发现隐藏的Webshell后门
    1. 6.1. 如何在百万行代码里发现隐藏的后门
    2. 6.2. 1、文件MD5校验
    3. 6.3. 2、diff命令
    4. 6.4. 3、文件对比工具
  7. 7. 7、中了勒索病毒,该怎么办
    1. 7.1. 前言
    2. 7.2. 勒索病毒搜索引擎
    3. 7.3. 勒索软件解密工具集

护网蓝队及应急响应笔记

文章较长,请耐心看完。文章很多地方(大部分)来自于Bypass公众号的应急响应笔记,只不过我都一一复现了一下。

1、应急响应介绍

第一步:沟通

联系客户,咨询当前服务器的状态,发生的准确时间点,服务器上有什么业务,提供异常截图,事件发生后有没有做处理,做了那些处理,之前有没有发生过安全事件,是否有完整的日志,服务器上是否存在安全设备。

第二步:确认

初步了解服务器相关信息,要去客户对服务器的重要数据进行备份,然后提供给我们应急服务器的账号密码,如果服务器上存在对应Web服务器,需要提供对应的Web域名,整理客户描述信息,进行初步确认,判断是不是安全事件,切不可盲目相信他人所述,如果是安全事件提供对应的防护方案。

第三步:深入分析

分析服务器上进程、网络连接、计划任务、日志,查找异常项,帮助客户恢复服务器正常状态,刻画攻击路径。

第四步:沟通

保持跟客户的持续沟通,不要让客户感觉你没有在处理事件,及时同步处理进展。有不知道的信息就主动问客户获取,客户提供越多信息,对我们完成应急越有帮助。

第五步:总结

整理并输出完整的应急响应报告。

注意事项:

  • 由于应急响应需要注意时效性,客户一般都是非常着急的,尽可能的定位到问题,解决问题才是关键。
  • 止损是第一。
  • 不要造成二次伤害。

应急响应整体思路

3W1H:W即Who、What、Why,1H即How,做应急响应要带着疑问来做事,一定要收集清楚这些信息。网络拓扑是怎样的?需求是啥?发生了什么事?你能做什么?用户用了什么产品?产品版本多少?病毒库版本多少?多少主机中招了?主机是普通PC还是服务器?服务器是做什么的?信息搜集越多,对应急响应越有利。

易失性原则:做应急响应免不了要做信息搜集和取证的,但这里是有一定的先后顺序的,即最容易丢失数据,应该最先收集,其他的以此类推。

要素原则:做应急响应,主要是抓关键证据,即要素,这些要素包括样本、流量、日志、进程及模块、内存、启动项。

避害原则:做应急响应,要做到趋利避害,不能问题还没有解决,反而引入了新的问题。譬如,自己使用的工具有后门却不知情;给用户使用不恰当的工具或软件造成客户主机出现问题;给别人发样本,不加密,不压缩,导致别人误点中毒,最极端的场景就是给别人发勒索样本不加密压缩,导致别人误点中毒。

应急响应事件介绍及处理流程

网络攻击事件

  • 安全扫描攻击:黑客利用扫描器对目标进行漏洞探测,并在发现漏洞后进一步利用漏洞进行攻击。
  • 暴力破解攻击:对目标系统账号密码进行暴力破解,获取后台管理员权限。
  • 系统漏洞攻击:利用操作系统、应用系统中存在漏洞进行攻击。
  • WEB漏洞攻击:通过SQL注入、上传漏洞、XSS漏洞、授权绕过等各种WEB漏洞进行攻击。
  • 拒绝服务攻击:通过大量流量DDOS或者CC攻击目标,使目标服务器无法提供正常服务。
  • 其他网络攻击行为…

恶意程序事件

  • 病毒、蠕虫:造成系统缓慢,数据损坏、运行异常。
  • 远控木马:主机被黑客远程控制。
  • 僵尸网络程序(肉鸡行为):主机对外发动DDOS攻击、对外发起扫描攻击行为。
  • 挖矿程序:造成系统资源大量消耗。

Web恶意木马

  • Webshell后门:黑客通过Webshell控制主机
  • 网页挂马:页面被植入病毒内容,影响访问者安全
  • 网页暗链:网站被植入博彩、色情、游戏等广告内容

信息破坏事件

  • 系统配置遭篡改:系统中出现异常的服务、进程、启动项、账号等等
  • 数据库内容篡改:业务数据遭到而已篡改,引起业务异常和损失
  • 网站内容篡改事件:网站页面内容被黑客恶意篡改
  • 信息数据泄露事件:服务器数据、会员账号遭到窃取并泄露

其他安全事件

账号被异常登录:系统账号在异地登录,可能出现账号密码泄露,支付盗刷

事件处理流程

  • 一般像Web攻击类安全事件,处理方法就是加waf,增加攻击者的攻击成本,然后开始查找漏洞,修复漏洞,如果是CMS漏洞,需要根据官方修复建议进行修复。
  • 挖矿类安全事件,先暂停挖矿进程,修改远程木马下载地址为本地host,然后排除处理。
  • 信息泄露安全事件,要根据泄露数据样本判断是哪里存在漏洞,然后采取相应的措施。
  • 支付类安全事件,禁用支付秘钥,关闭提现业务。

总结

沟通->确认->异常发生于追踪->事件处理->总结

  • 第一步:和客户交流,尽可能多的了解相关业务
  • 第二步:根据客户描述做好笔记,了解事件主线,及时止损
  • 第三步:异常发生于追踪
  • 第四步:事件处理,清除服务器木马,修复漏洞
  • 第五步:总结写报告

2、Linux/Windows入侵命令排查初步

Linux排查方法

1、系统完整性

1
rpm -Va

2、进程

1
2
3
top
ps -aux
lsof

3、网络连接

1
netstat -pantu

4、开机启动项

1
2
3
/etc/init.d/*
/etc/rc*.d/
/etc/rc.local

5、Webshell查杀

河马Webshell查杀,自写脚本

6、计划任务

1
2
3
4
5
6
7
8
9
10
11
cat /var/log/cron | grep "bash"
cat /var/log/cron | grep "wget"
cat /var/log/cron | grep "cat"
cat /vat/log/cron | grep "ud"
cat /etc/crontab
/var/spool/crom/*
/etc/cron.d/
/etc/cron.daily/
/etc/cron.hourly/
/etc/cron.weekly/
/etc/cron.monthly/

7、查看系统登录情况

历史登录成功IP和账号,当前登录成功账号IP

1
2
cat /var/log/secure
last

8、查看SSH key

1
cat .ssh/authorized_keys

9、用户及hosts

1
2
/etc/passwd
/etc/hosts

10、查看动态链接库

1
2
3
4
echo $LD_PRELOAD
Linux预加载库:
/etc/ld.so.preload
/usr/local/lib

11、日志分析

1
2
3
4
5
6
7
8
9
10
11
Linux日志文件存在/var/log/
/var/log/message 记录系统重要信息的日志,这个日志文件会记录Linux系统的绝大多数重要信息
/var/log/cron 记录系统定时任务相关日志
/var/log/btmp 记录错误登陆日志,不能vi查看,要用lastb
/var/log/lastlog 记录系统中所有用户最后一次登陆事件的日志,不能使用vi,使用lastlog
/var/logsecure 记录验证和授权方面的信息,只要设计账号和密码的程序都会记录,比如ssh登陆,su切换用户,sudo授权

1、定位有多少IP在爆破主机的root账号
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c |sort -nr| more
2、登陆成功的IP有那些
grep "Accepted" /var/log/secure |awk '{print $11}' |sort|uniq -c|sort -nr |more

Windows排查方法

1、系统状态排查

查看CPU、内存、网络占有率

图片

2、文件分析

临时文件

黑客往往可能将病毒放在临时目录,或者将病毒相关文件释放到临时目录,因此需要检查临时目录是否存在异常文件。假设系统盘是在C盘,则通常情况下的临时目录如下:

1
2
3
4
5
6
C:\User\\[用户名]\Local Settings\Temp
C:\Documents and Settings\\[用户名]\Local Settings\Temp
C:\User\\[用户名]\桌面
C:\Documents and Settings\\[用户名]\桌面
C:\User\\[用户名]\Local Settings\Temporary Internet Files
C:\Documents and Settings\\[用户名]\local Settings\Temporary Intermet Files

浏览器相对文件

黑客可能通过浏览器下载恶意文件,或者盗取用户信息,因此需要检查下浏览器的历史访问记录、文件下载记录、cookie信息,对应相关文件目录如下:

1
2
3
4
5
C:\User\\[用户名]\Cookies
C:\Documents and Settings\\[用户名]\Cookies
C:\Users\\[用户名]\Local Settings\History
C:\Documents and Settings\\[用户名]\Local Settings\History
C:\Users\\[用户名]\Local Settings\Temporary Internet Files

最近文件

检查下最近打开了那些文件,可疑文件有可能就在最近打开的文件中,打开以下这些目录及可看到:

1
2
C:\User\\[用户名]\Recent
C:\Documents and Settings\\[用户名]\Recent

文件修改时间

可以根据文件夹内文件列表时间排序,查找可疑文件。一般情况下,修改时间越近的文件越可疑

system32和hosts文件

system32也是常见病毒释放目录,因此也要检查下该目录。hosts文件是系统配置文件,用于本地DOS查询的域名设置,可以强制将某个域名对应到某个IP,因此需要检查hosts文件有没有被黑客恶意篡改。

这里以hosts文件为例,检查三种异常:

  • 知名站点,检查对应IP是否真的归属该站点,防止”钓鱼“
  • 为知站点,检查该域名的IP是否恶意
  • 无法访问的安全站点,即IP是否指向127.0.0.1、0.0.0.0等本地地址、无效地址

网络连接

可以使用D盾、还可以使用命令netstat -ano查看当前网络连接,排查可疑的服务、端口、外连的IP。

图片

如发现netstat定位出的pid有问题,可再通过tastlist命令进一步追踪该可疑程序(tasklist | findstr PID

图片

以上图片只是打个比方!

流量分析

流量分析可以使用Wireshark,主要分析一下当前主机访问了那些域名、URL、服务、或者有那些外网IP在访问本地主机的那些端口、服务和目录,又使用了那些协议等等。

图片

漏洞与补丁信息

使用命令systeminfo,查看系统版本信息以及补丁信息,确认当前系统是否存在漏洞、是否已经打了相应补丁。

图片

进程分析

  • 进程名字异常
  • 进程信息异常

启动项异常

黑客为了保持病毒能够开机自启、登陆启动或者定时启动,通常会有相应的启动项。

用户排查

1
net user

图片

1
lusrmgr.msc

图片

删除guest用户

按住 win+r,输入regedit打开注册表:

图片

然后展开:HKEY_LOCAL_MACHINE\SAM\SAM:(如果不能展开就给他一个管理员权限)

图片

然后重新打开就可以了:HKEY_LOCAL_MACHINE\SAM\SAM\Domains\account\Users\Names\Guest

图片

可以看到,guesttype值是0x1f5,我们把它删除就可以了

图片

常用工具及命令

Webshell查杀

D盾、深信服webshellkiller等等

木马病毒类查杀

  • ClarmAV
  • RKHunter
  • Chkrootkit

进程分析

  • 火绒

流量分析

  • Wireshark(windows)
  • Tcpdump(linux)

启动项分析

  • Autoruns

其他辅助工具

IP分析、超级文件监控工具,Mysql监控工具。

3、Linux入侵排查,木马处理

1、应急常用Linux命令

(1)查看进程

1
top

图片

1
ps -aux

图片

1
lsof

图片

(2)网络连接

1
netstat -pantu

图片

(3)开机启动项

1
2
3
/etc/init.d/*
/etc/rc*.d/
/etc/rc.local

图片

图片

图片

(4)查看计划任务

1
ls -altr /var/spool/cron/

图片

1
ls -altr /etc/cron.daily/

图片

1
ls -altr /etc/cron.weekly/

图片

1
ls -altr /etc/cron.hourly/

图片

1
ls -altr /etc/cron.monthly/

图片

(5)查看登录情况

1
last	//上一次登陆情况

图片

1
2
cat /var/log/secure* | grep "Access"	//查看登陆成功
cat /var/log/secure* | grep "Fail" //查看登陆失败

图片

###(6)查看ssh key

1
2
cd /root/.ssh/
authorized_keys //这个文件可能会被写入ssh密钥

图片

###(7)查看用户和hosts

1
cat /etc/passwd		//看看有没有新增用户

图片

1
cat /etc/hosts		//查看hosts是防止木马地址绑定到一个正常的网页

图片

(8)查看动态链接库

1
echo $LD_PRELOAD	//如果有动态链接库,那么看看路径之前的文件有没有别篡改,是不是正常的

图片

###(9)Linux预加载库

1
2
/etc/ld.so.preload
/usr/local/lib

2、入侵排查

2.1:账号安全

1
2
3
4
5
6
7
8
9
1、用户信息文件/etc/passwd
root:x:0:0:root:/root:/bin/bash
account:password:UID:GID:GECOS:directory:shell
用户名:密码:用户ID:组ID:用户说明:家目录:登陆之后shell
注意:无密码只允许本机登陆,远程不允许登陆

2、影子文件/etc/shadow
root:$6$oGs1PqhL2p3ZetrE$X7o7bzoouHQVSEmSgsYN5UD4.kMHx6qgbTqwNVC5oOAouXvcjQSt.Ft7ql1WpkopY0UV9ajBwUt1DpYxTCVvI/:16809:0:99999:7:::
用户名:加密密码:密码最后一次修改日期:两次密码的修改时间间隔:密码有效期:密码修改到期到的警告天数:密码过期之后的宽限天数:账号失效时间:保留
1
2
3
who     查看当前登录用户(tty本地登陆  pts远程登录)
w 查看系统信息,想知道某一时刻用户的行为
uptime 查看登陆多久、多少用户,负载

图片

入侵排查

1
2
1、查询特权用户特权用户(uid 为0)
awk -F: '$3==0{print $1}' /etc/passwd

图片

1
2
2、查询可以远程登录的帐号信息
awk '/\$1|\$6/{print $1}' /etc/shadow

图片

1
2
3、除root帐号外,其他帐号是否存在sudo权限。如非管理需要,普通帐号应删除sudo权限
more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"

图片

1
2
3
4
4、禁用或删除多余及可疑的帐号
usermod -L user 禁用帐号,帐号无法登录,/etc/shadow第二栏为!开头
userdel user 删除user用户
userdel -r user 将删除user用户,并且将/home目录下的user目录一并删除

2.2:历史命令

通过.bash_history查看帐号执行过的系统命令

1
2
1、root的历史命令
history

图片

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
为历史的命令增加登录的IP地址、执行命令时间等信息:
1)保存1万条命令
sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile
2)在/etc/profile的文件尾部添加如下行数配置信息:
######jiagu history xianshi#########
USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
export HISTTIMEFORMAT="%F %T $USER_IP `whoami` "
shopt -s histappend
export PROMPT_COMMAND="history -a"
######### jiagu history xianshi ##########
3)source /etc/profile让配置生效

生成效果: 1 2018-07-10 19:45:39 192.168.204.1 root source /etc/profile

3、历史操作命令的清除:history -c
但此命令并不会清除保存在文件中的记录,因此需要手动删除.bash_profile文件中的记录。

入侵排查

1
2
进入用户目录下
cat .bash_history >> history.txt

2.3:检查异常端口

使用netstat 网络连接命令,分析可疑端口、IPPID.

1
2
3
4
netstat -antlp|more

查看下pid所对应的进程文件路径,
运行ls -l /proc/$PID/exe或file /proc/$PID/exe($PID 为对应的pid 号)

图片

2.4:检查异常进程

使用ps命令,分析进程

1
ps aux | grep pid 

图片

2.5:检查开机启动项

基本使用:系统运行级别示意图

图片

查看运行级别命令:

1
runlevel

图片

系统默认允许级别:

1
2
vi  /etc/inittab
id=3:initdefault 系统开机后直接进入哪个运行级别

开机启动配置文件:

1
2
/etc/rc.local
/etc/rc.d/rc[0~6].d

例子:当我们需要开机启动自己的脚本时,只需要将可执行脚本丢在/etc/init.d目录下,然后在/etc/rc.d/rc*.d中建立软链接即可:

1
ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh

此处sshd是具体服务的脚本文件,S100ssh是其软链接,S开头代表加载时自启动;如果是K开头的脚本文件,代表运行级别加载时需要关闭的。

入侵排查

1
2
3
4
启动项文件:
more /etc/rc.local
/etc/rc.d/rc[0~6].d
ls -l /etc/rc.d/rc3.d/

2.6:检查定时任务

基本使用

1、利用crontab创建计划任务

基本命令

1
2
3
4
5
6
7
8
9
crontab -l   列出某个用户cron服务的详细内容

Tips:默认编写的crontab文件会保存在 (/var/spool/cron/用户名 例如: /var/spool/cron/root

crontab -r 删除每个用户cront任务(谨慎:删除所有的计划任务)

crontab -e 使用编辑器编辑当前的crontab文件

如:*/1 * * * * echo "hello world" >> /tmp/test.txt 每分钟写入文件

2、利用anacron实现异步定时任务调度

使用案例

1
2
3
每天运行 /home/backup.sh脚本: vi /etc/anacrontab @daily 10 example.daily /bin/bash /home/backup.sh

当机器在 backup.sh 期望被运行时是关机的,anacron会在机器开机十分钟之后运行它,而不用再等待 7天。

入侵排查

重点关注以下目录中是否存在恶意脚本

1
2
3
4
5
6
7
8
9
/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/*

小技巧:

1
more /etc/cron.daily/*  查看目录下所有文件

2.7:检查服务

服务自启动

第一种修改方法:

1
2
3
chkconfig [--level 运行级别] [独立服务名] [on|off]
chkconfig –level 2345 httpd on 开启自启动
chkconfig httpd on (默认level是2345)

第二种修改方法:

1
2
修改/etc/re.d/rc.local 文件  
加入 /etc/init.d/httpd start

第三种修改方法:

使用ntsysv命令管理自启动,可以管理独立服务和xinetd服务。

入侵排查

1、查询已安装的服务:

RPM包安装的服务

1
2
3
4
5
6
7
8
chkconfig  --list  查看服务自启动状态,可以看到所有的RPM包安装的服务
ps aux | grep crond 查看当前服务

系统在3与5级别下的启动项
中文环境
chkconfig --list | grep "3:启用\|5:启用"
英文环境
chkconfig --list | grep "3:on\|5:on"

源码包安装的服务

1
2
3
查看服务安装位置 ,一般是在/user/local/
service httpd start
搜索/etc/rc.d/init.d/ 查看是否存在

2.8:检查异常文件

1
2
3
4
5
6
7
1、查看敏感目录,如/tmp目录下的文件,同时注意隐藏文件夹,以“..”为名的文件夹具有隐藏属性

2、得到发现WEBSHELL、远控木马的创建时间,如何找出同一时间范围内创建的文件?

可以使用find命令来查找,如 find /opt -iname "*" -atime 1 -type f 找出 /opt 下一天前访问过的文件

3、针对可疑文件可以使用stat进行创建修改时间。

2.9:检查系统日志

日志默认存放位置:/var/log/

查看日志配置情况:more /etc/rsyslog.conf

图片

日志分析技巧:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

1、定位有多少IP在爆破主机的root帐号:
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more

定位有哪些IP在爆破:
grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c

爆破用户名字典是什么?
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr

2、登录成功的IP有哪些:
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more

登录成功的日期、用户名、IP:
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'

3、增加一个用户kali日志:
Jul 10 00:12:15 localhost useradd[2382]: new group: name=kali, GID=1001
Jul 10 00:12:15 localhost useradd[2382]: new user: name=kali, UID=1001, GID=1001, home=/home/kali
, shell=/bin/bash
Jul 10 00:12:58 localhost passwd: pam_unix(passwd:chauthtok): password changed for kali
#grep "useradd" /var/log/secure

4、删除用户kali日志:
Jul 10 00:14:17 localhost userdel[2393]: delete user 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed group 'kali' owned by 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed shadow group 'kali' owned by 'kali'
# grep "userdel" /var/log/secure

5、su切换用户:
Jul 10 00:38:13 localhost su: pam_unix(su-l:session): session opened for user good by root(uid=0)

sudo授权执行:
sudo -l
Jul 10 00:43:09 localhost sudo: good : TTY=pts/4 ; PWD=/home/good ; USER=root ; COMMAND=/sbin/shutdown -r now

3、工具篇

3.1:Rootkit查杀

chkrootkit

网址:http://www.chkrootkit.org

1
2
3
4
5
6
7
使用方法:
wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
tar zxvf chkrootkit.tar.gz
cd chkrootkit-0.52
make sense
#编译完成没有报错的话执行检查
./chkrootkit

rkhunter

网址:http://rkhunter.sourceforge.net

1
2
3
4
5
6
使用方法:
Wget https://nchc.dl.sourceforge.net/project/rkhunter/rkhunter/1.4.4/rkhunter-1.4.4.tar.gz
tar -zxvf rkhunter-1.4.4.tar.gz
cd rkhunter-1.4.4
./installer.sh --install
rkhunter -c

3.2:病毒查杀

Clamav

ClamAV的官方下载地址为:http://www.clamav.net/download.html

安装方式一:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
1、安装zlib:
wget http://nchc.dl.sourceforge.net/project/libpng/zlib/1.2.7/zlib-1.2.7.tar.gz
tar -zxvf zlib-1.2.7.tar.gz
cd zlib-1.2.7
#安装一下gcc编译环境: yum install gcc
CFLAGS="-O3 -fPIC" ./configure --prefix= /usr/local/zlib/
make && make install

2、添加用户组clamav和组成员clamav:
groupadd clamav
useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav

3、安装Clamav
tar –zxvf clamav-0.97.6.tar.gz
cd clamav-0.97.6
./configure --prefix=/opt/clamav --disable-clamav -with-zlib=/usr/local/zlib
make
make install

4、配置Clamav
mkdir /opt/clamav/logs
mkdir /opt/clamav/updata
touch /opt/clamav/logs/freshclam.log
touch /opt/clamav/logs/clamd.log
cd /opt/clamav/logs
chown clamav:clamav clamd.log
chown clamav:clamav freshclam.log

5、ClamAV 使用:
/opt/clamav/bin/freshclam 升级病毒库
./clamscan –h 查看相应的帮助信息
./clamscan -r /home 扫描所有用户的主目录就使用
./clamscan -r --bell -i /bin 扫描bin目录并且显示有问题的文件的扫描结果

安装方式二:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#安装
yum install -y clamav
#更新病毒库
freshclam
#扫描方法
clamscan -r /etc --max-dir-recursion=5 -l /root/etcclamav.log
clamscan -r /bin --max-dir-recursion=5 -l /root/binclamav.log
clamscan -r /usr --max-dir-recursion=5 -l /root/usrclamav.log
#扫描并杀毒
clamscan -r --remove /usr/bin/bsd-port
clamscan -r --remove /usr/bin/
clamscan -r --remove /usr/local/zabbix/sbin
#查看日志发现
cat /root/usrclamav.log |grep FOUND

3.3:webshell查杀

linux版:

1
2
河马webshell查杀:http://www.shellpub.com
深信服Webshell网站后门检测工具:http://edr.sangfor.com.cn/backdoor_detection.html

3.4:RPM check检查

系统完整性可以通过rpm自带的-Va来校验检查所有的rpm软件包,查看哪些命令是否被替换了:

1
./rpm -Va > rpm.log

如果一切均校验正常将不会产生任何输出,如果有不一致的地方,就会显示出来,输出格式是8位长字符串,每个字符都用以表示文件与RPM数据库中一种属性的比较结果 ,如果是. (点) 则表示测试通过。

1
2
3
4
5
6
7
8
9
验证内容中的8个信息的具体内容如下:
S 文件大小是否改变
M 文件的类型或文件的权限(rwx)是否被改变
5 文件MD5校验是否改变(可以看成文件内容是否改变)
D 设备中,从代码是否改变
L 文件路径是否改变
U 文件的属主(所有者)是否改变
G 文件的属组是否改变
T 文件的修改时间是否改变

如果命令被替换了,如何还原回来:

1
2
3
4
5
文件提取还原案例:
rpm -qf /bin/ls 查询ls命令属于哪个软件包
mv /bin/ls /tmp 先把ls转移到tmp目录下,造成ls命令丢失的假象
rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.el6.i686.rpm | cpio -idv ./bin/ls 提取rpm包中ls命令到当前目录的/bin/ls下
cp /root/bin/ls /bin/ 把ls命令复制到/bin/目录 修复文件丢失

3.5:linux安全检查脚本

1
2
3
4
5
6
7
Github项目地址:

https://github.com/grayddq/GScan

https://github.com/ppabc/security_check

https://github.com/T0xst/linux

4、Windows入侵排查,木马处理

1、入侵排查思路

1.1:检查系统账号安全

(1)查看服务器是否有弱口令,远程管理端口是否对公网开放

检查方法:根据实际情况咨询相关服务器管理员。

(2)查看服务器是否存在可疑账号、新增账号

检查方法:打开cmd窗口,输入 lusrmgr.msc 命令:

图片

查看是否有新增/可疑的账号,如有管理员群组的(Administrators)里的新增用户,请立即禁用或者删除掉。

(3)查看服务器是否存在隐藏账号、克隆账号

检查方法:打开注册表,查看管理员对应键值、使用D盾_web查杀工具,集成了对克隆账号检测的功能。

下载地址:http://www.d99net.net/News.asp?id=47

图片

(4)结合日志,查看管理员登陆时间、用户名是否存在异常

检查方法:输入命令eventvwr.msc,打开事件查看器:

图片

导出Windows日志-安全,利用Log Parser进行分析:

图片

Log Parser具体用法:https://www.cnblogs.com/pythonal/p/10127795.html

1
LogParser.exe -i:EVT "SELECT TimeGenerated,EXTRACT_TOKEN(Strings,0,'|') AS USERNAME,EXTRACT_TOKEN(Strings,2,'|') AS SERVICE\_NAME,EXTRACT_TOKEN(Strings,5,'|') AS Client_IP FROM 'C:\Users\Administrator\Desktop\1.evtx' WHERE EventID=4798"

图片

1
LogParser.exe -i:EVT "SELECT TimeGenerated,EXTRACT_TOKEN(Strings,0,'|') AS USERNAME,EXTRACT_TOKEN(Strings,2,'|') AS SERVICE\_NAME,EXTRACT_TOKEN(Strings,5,'|') AS Client_IP FROM 'C:\Users\Administrator\Desktop\1.evtx' WHERE EventID=4624"

图片

1.2:检查异常端口进程

(1)检查端口连接情况,是否有远程连接、可疑连接

检查方法:

a:netstat -ano查看目前的网络连接,定位可疑的ESTABLISHED

图片

b:根据netstat定位出的pid,在通过tasklist命令进行进程定位,tasklist | findstr "PID"

图片

(2)进程

a:开始-运行-输入msinfo32,依次点击软件环境-正在运行任务,就可以查看到进程的详细信息,比如进程路径、进程ID、文件创建日期、启动时间等等。

图片

b:打开D盾_web查杀工具,进程查看,关注没有签名信息的进程

图片

c:查看可疑的进程其子进程,可以通过观察下面内容

1
2
3
4
5
没有签名验证信息的进程
没有描述信息的进程
进程的属主
进程的路径是否合法
CPU或内存资源占用长时间过高的进程

(3)小技巧

a:查看端口对应的PID

1
netstat -ano | findstr "port"

图片

b:查看进程对应的PID任务管理器-查看-选择列-PID、或者tasklist | findstr "PID":

图片

c:查看进程对应的程序位置:

任务管理器-选择对应进程,右键打开文件位置

图片

在运行输入wmiccmd界面输入process

图片

图片

d:tasklist /svc (进程-PID-服务)

图片

1.3:检查启动项、计划任务、服务

(1)检查服务器是否有异常的启动项

检查方法:

a:登陆服务器,单击【开始】>【所有程序】>【启动】,默认情况下此目录在是一个空目录,确认是否有非业务程序在该目录下。

图片

b:单击【开始菜单】 >【运行】,输入 msconfig,查看是否存在命名异常的启动项目,是则取消勾选命名异常的启动项目,并到命令中显示的路径删除文件。

图片

c:单击【开始】>【运行】,输入 regedit,打开注册表,查看开机启动项是否正常,特别注意如下三个注册表项:

1
2
3
HKEY_CURRENT_USER\software\micorsoft\windows\currentversion\run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce

图片

检查右侧是否有启动异常的项目,如有请删除,并建议安装杀毒软件进行病毒查杀,清除残留病毒或木马。

d:利用安全软件查看启动项、开机时间管理等。

e:组策略,运行gpedit.msc

图片

(2)检查计划任务

检查方法:

a:单击【开始】>【设置】>【控制面板】>【任务计划】,查看计划任务属性,便可以发现木马文件的路径。

图片

b:单击【开始】>【运行】;输入 cmd,然后输入at,检查计算机与网络上的其它计算机之间的会话或计划任务,如有,则确认是否为正常连接。

图片

(3)服务自启动

检查方法:单击【开始】>【运行】,输入services.msc,注意服务状态和启动类型,检查是否有异常服务。

图片

1.4:检查系统相关信息

(1)查看系统版本以及补丁信息

检查方法:单击【开始】>【运行】,输入systeminfo,查看系统信息

图片

(2)查找可疑目录及文件

检查方法:

a:查看用户目录,新建账号会在这个目录生成一个用户目录,查看是否有新建用户目录。

1
2
Window 2003  C:\Documents and Settings
Window 2008R2 C:\Users\

图片

b:单击【开始】>【运行】,输入%UserProfile%\Recent,分析最近打开分析可疑文件。

图片

c:在服务器各个目录,可根据文件夹内文件列表时间进行排序,查找可疑文件。

d:回收站、浏览器下载目录、浏览器历史记录

图片

e:修改时间在创建时间之前的为可疑文件

(3)得到发现WEBSHELL、远控木马的创建时间,如何找出同一时间范围内创建的文件?

a:利用 Registry Workshop 注册表编辑器的搜索功能,可以找到最后写入时间区间的文件。

b:利用计算机自带文件搜索功能,指定修改时间进行搜索。

1.5:自动化查杀

病毒查杀:检查方法:下载安全软件,更新最新病毒库,进行全盘扫描。

webshell查杀:检查方法:选择具体站点路径进行webshell查杀,建议使用两款webshell查杀工具同时查杀,可相互补充规则库的不足。

1.6:日志分析

系统日志分析方法:

a:前提:开启审核策略,若日后系统出现故障、安全事故则可以查看系统的日志文件,排除故障,追查入侵者的信息等。

b:Win+R打开运行,输入【eventvwr.msc】,回车运行,打开事件查看器

图片

c:导出应用程序日志、安全日志、系统日志,利用Log Parser进行分析。

WEB访问日志分析方法:

a:找到中间件的web日志,打包到本地方便进行分析。

b:推荐工具:Window下,推荐用 EmEditor 进行日志分析,支持大文本,搜索效率还不错。Linux下,使用Shell命令组合查询分析

2、工具篇

2.1:病毒分析

1
2
3
4
5
6
7
8
9
10
11
12
13
PCHunter:http://www.xuetr.com

火绒剑:https://www.huorong.cn

Process Explorer:https://docs.microsoft.com/zh-cn/sysinternals/downloads/process-explorer

processhacker:https://processhacker.sourceforge.io/downloads.php

autoruns:https://docs.microsoft.com/en-us/sysinternals/downloads/autoruns

OTL:https://www.bleepingcomputer.com/download/otl/

SysInspector:http://download.eset.com.cn/download/detail/?product=sysinspector

2.2:病毒查杀

1
2
3
4
5
6
7
卡巴斯基:http://devbuilds.kaspersky-labs.com/devbuilds/KVRT/latest/full/KVRT.exe   (推荐理由:绿色版、最新病毒库)

大蜘蛛:http://free.drweb.ru/download+cureit+free(推荐理由:扫描快、一次下载只能用1周,更新病毒库)

火绒安全软件:https://www.huorong.cn

360杀毒:http://sd.360.cn/download_center.html

2.3:病毒动态

1
2
3
4
5
6
7
8
9
CVERC-国家计算机病毒应急处理中心:http://www.cverc.org.cn

微步在线威胁情报社区:https://x.threatbook.cn

火绒安全论坛:http://bbs.huorong.cn/forum-59-1.html

爱毒霸社区:http://bbs.duba.net

腾讯电脑管家:http://bbs.guanjia.qq.com/forum-2-1.html

2.4:在线病毒扫描网站

1
2
3
4
5
6
7
http://www.virscan.org         //多引擎在线病毒扫描网 v1.02,当前支持 41 款杀毒引擎     

https://habo.qq.com //腾讯哈勃分析系统

https://virusscan.jotti.org //Jotti恶意软件扫描系统

http://www.scanvir.com //针对计算机病毒、手机病毒、可疑文件等进行检测分析

2.5:webshell查杀

1
2
3
4
5
6
7
D盾_Web查杀:http://www.d99net.net/index.asp

河马webshell查杀:http://www.shellpub.com

深信服Webshell网站后门检测工具:http://edr.sangfor.com.cn/backdoor_detection.html

Safe3:http://www.uusec.com/webshell.zip

5、常见的Webshell查杀工具

简介

当网站服务器被入侵时,我们需要一款Webshell检测工具,来帮助我们发现webshell,进一步排查系统可能存在的安全漏洞。

1、D盾_Web查杀

阿D出品,使用自行研发不分扩展名的代码分析引擎,能分析更为隐藏的WebShell后门行为。

兼容性:只提供Windows版本。

工具下载地址:http://www.d99net.net/down/WebShellKill_V2.0.9.zip

图片

2、百度WEBDIR+

下一代WebShell检测引擎,采用先进的动态监测技术,结合多种引擎零规则查杀。

兼容性:提供在线查杀木马,免费开放API支持批量检测。

在线查杀地址:https://scanner.baidu.com/

图片

3、河马

专注webshell查杀研究,拥有海量webshell样本和自主查杀技术,采用传统特征+云端大数据双引擎的查杀技术。查杀速度快、精度高、误报低。

兼容性:支持Windows、linux,支持在线查杀。

官方网站:https://www.shellpub.com/

图片

4、Web Shell Detector

Webshell Detector具有“ Webshell”签名数据库,可帮助识别高达99%的“ Webshell”。

兼容性:提供php/python脚本,可跨平台,在线检测。

官方网站:http://www.shelldetector.com/

github项目地址:https://github.com/emposha/PHP-Shell-Detector

图片

5、CloudWalker(牧云)

一个可执行的命令行版本 Webshell 检测工具。目前,项目已停止更新。

兼容性,提供linux版本,Windows 暂不支持。

在线查杀demo:https://webshellchop.chaitin.cn/

github项目地址:https://github.com/chaitin/cloudwalker

图片

6、深度学习模型检测PHP Webshell

一个深度学习PHP webshell查杀引擎demo,提供在线样本检测。

在线查杀地址:http://webshell.cdxy.me/

图片

6、在线webshell查杀工具

在线查杀地址:http://tools.bugscaner.com/killwebshell/

图片

6、如何发现隐藏的Webshell后门

如何在百万行代码里发现隐藏的后门

试想一下,如果你的网站被入侵,攻击者留下隐藏的后门,你真的都可以找出来嘛?面对一个大中型的应用系统,数以百万级的代码行,是不可能做到每个文件每段代码进行手工检查的。

即使是一款拥有99.9%的Webshell检出率的检测引擎,依然可能存在Webshell绕过的情况。另外,像暗链、网页劫持、页面跳转等常见的黑帽SEO手法,也很难通过手动检测或工具检测全部识别出来。

最好的方式就是做文件完整性验证。通过与原始代码对比,可以快速发现文件是否被篡改以及被篡改的位置。当然,第一个前提是,你所在的团队已具备代码版本管理的能力,如果你是个人站长,相信你已经备份了原始代码。

1、文件MD5校验

下载D盾_Web查杀工具的时候,我们可以留意到下载的压缩包里,除了有一个exe可执行文件,还有一个文件md5值。这个是软件作者在发布软件时,通过md5算法计算出该exe文件的“特征值”。
当用户下载软件时,可以使用相同的校验算法计算下载到exe文件的特征值,并与软件开发者发布的特征值比较。如果两个特征值相同,则认为下载到的exe文件是正确的。如果两个特征值不同,则认为下载到exe文件是被篡改过的。

那同理可得,我们可以将所有网站文件计算一次hash值保存,当出现应急情况时,重新计算一次hash值,并与上次保存的hash值进行对比,从而输出新创建的、修改过及删除的文件列表。

2、diff命令

在linux中,我们经常使用diff来比较两个文本文件的差异。同样,我们可以通过一行命令快速找出两个项目文件的差异。

1
diff -c -a -r cms1 cms2

图片

备注:如果只是想查看两个文件是否不同又不想显示差异之处的话,可以加上-q选项

3、文件对比工具

Beyond Compare是一套由Scooter Software推出的文件比较工具。主要用途是对比两个文件夹或者文件,并将差异以颜色标示,比较范围包括目录,文档内容等。

下载地址:http://www.scootersoftware.com/download.php

软件使用示例,通过文件夹比较,找出文件夹中的差异内容。

1、双击Beyond Compare ,打开软件主页,选择文件夹比较。

图片

2、在双边栏输入文件夹路径,点击显示差别,列出差异部分的内容,紫色部分为新增文件,红色部分为篡改文件

图片

3、双击具体文件,进入代码对比,找到代码差异部分。

图片

7、中了勒索病毒,该怎么办

前言

经常会有一些小伙伴问:中了勒索病毒,该怎么办,可以解密吗?

第一次遇到勒索病毒是在早几年的时候,客户因网站访问异常,进而远程协助进行排查。登录服务器,在站点目录下发现所有的脚本文件及附件后缀名被篡改,每个文件夹下都有一个文件打开后显示勒索提示信息,这便是勒索病毒的特征。

出于职业习惯,我打包了部分加密文件样本和勒索病毒提示信息用于留档,就在今天,我又重新上传了样本,至今依然无法解密。

作为一个安全工程师,而非一个专业的病毒分析师,我们可以借助各大安全公司的能力,寻找勒索病毒的解密工具。

本文整理了一份勒索病毒自救指南,通过勒索病毒索引引擎查找勒索病毒相关信息,再通过各个安全公司提供的免费勒索软件解密工具解密。当然,能否解密全凭运气,so,平时还是勤打补丁多备份。

勒索病毒搜索引擎

在勒索病毒搜索引擎输入病毒名、勒索邮箱、被加密后文件的后缀名,或直接上传被加密文件、勒索提示信息,即可可快速查找到病毒详情和解密工具。

图片

这些网站的解密能力还在持续更新中,是值得收藏的几个勒索病毒工具型网站。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
【360】 勒索病毒搜索引擎,支持检索超过800种常见勒索病毒,
http://lesuobingdu.360.cn

【腾讯】 勒索病毒搜索引擎,支持检索超过 300 种常见勒索病毒
https://guanjia.qq.com/pr/ls/

【启明】VenusEye勒索病毒搜索引擎,超300种勒索病毒家族
https://lesuo.venuseye.com.cn/

【奇安信】勒索病毒搜索引擎
https://lesuobingdu.qianxin.com/

【深信服】勒索病毒搜索引擎
https://edr.sangfor.com.cn/#/information/ransom_search

勒索软件解密工具集

很多安全公司都提供了免费的勒索病毒解密工具下载,收集和整理相关下载地址,可以帮助我们了解和获取最新的勒索病毒解密工具。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
【腾讯哈勃】勒索软件专杀工具
https://habo.qq.com/tool/index

【金山毒霸】勒索病毒免疫工具
http://www.duba.net/dbt/wannacry.html

【火绒】安全工具下载
http://bbs.huorong.cn/forum-55-1.html

【瑞星】解密工具下载
http://it.rising.com.cn/fanglesuo/index.html

【nomoreransom】勒索软件解密工具集
https://www.nomoreransom.org/zh/index.html

【MalwareHunterTeam】勒索软件解密工具集
https://id-ransomware.malwarehunterteam.com/

【卡巴斯基】免费勒索解密器
https://noransom.kaspersky.com/

【Avast】免费勒索软件解密工具
https://www.avast.com/zh-cn/ransomware-decryption-tools

【Emsisoft】免费勒索软件解密工具
https://www.emsisoft.com/ransomware-decryption-tools/free-download

【Github项目】勒索病毒解密工具收集汇总
https://github.com/jiansiting/Decryption-Tools

未完待续