某单位攻防演练期间的一次应急响应

  • A+
所属分类:安全文章

1 情况概述

1.1 情况简介

2021年4月18日再次接到告警用户单位某台内网服务存在web后门木马连接行为,需立即进行应急处置。

1.2 时间线

本次安全事件攻击时间线如下图,攻击者针对oa系统进行攻击,攻击成功后上传web后门、内网代理工具、内网扫描工具至oa服务器。并对内网其他服务器进行横向的扫描利用。

某单位攻防演练期间的一次应急响应

1.3 分析结论

分析结果如下:

根据现有痕迹(日志和文件)进行分析,4月14日22点59分左右攻击者147.77.158利用officeserverservlet模块上传2.jsp后门文件;

4月15日14点31分攻击者在/tmp目录下上传了test1内网渗透工具包,根据时间线推理攻击者利用jsp上传了test1工具包;

根据攻击者上传web后门前的操作进行关联分析,发现攻击者在上传web后门前均有访问officeserverservlet行为,该模块为金格office控件模块,该模块在2019年hvv期间爆出存在文件上传0day漏洞,且该模块互联网可直接未授权访问;

4月15日16点59分左右攻击者利用officeserverservlet模块上传了jsp后门文件;4月16日至17日期间,攻击者利用test3.jsp依次上传了tt.jsp、ts.jsp、aaa.jsp、tunnel.jsp多个恶意文件。

1.4 应急处置

根据上述分析结论,应急处置如下:

已删除被攻击者恶意上传至oa服务器的web后门文件jsp、tt.jsp、ts.jsp、aaa.jsp、tunnel.jsp;

已删除被攻击者恶意上传的内网渗透工具包/tmp/test1;

1.5 处理建议

根据上述分析结论和应急处置结果,提供安全建议如下:

  • 建议关闭oa系统对互联网的直接服务,改为通过sslvn接入内网后访问oa系统。

    同时建议类似oa不是对所有互联网用户开放访问的系统均改为通过vxn接入后访问相关业务系统;

  • 建议禁止互联网访问officeserverservlet组件;

  • 建议梳理各个区域网络访问控制策略,仅开放必须的业务类端口通信,防止攻击者攻陷某台服务器后进行横向渗透造成多区域多主机失陷;

  • 建议修改oa应用运行权限,若web运行权限为root,则攻击者通过web应用漏洞利用成功后即获得服务器管理员root权限;

  • 建议定期巡检查杀web应用系统后门和操作系统病毒。

2 详细分析过程

2.1 OA系统服务器

2.1.1 日志分析

根据IPS告警情况,4月15日15点34分左右存在webshell上传行为触发告警,动作为RESET重置,怀疑此刻存在攻击行为,立即进行应急响应。由于触发告警的为web后门,优先排查web日志。

某单位攻防演练期间的一次应急响应

根据web日志记录情况,4月14日22点52分左右,攻击者61.147.77.158第一次上传并访问2.jsp木马文件,且在第一次访问该后门文件前后均访问了officeserverservlet页面。

某单位攻防演练期间的一次应急响应

2.jsp文件修改时间为4月14日22点59分,关联日志文件,攻击者在22点59分只有2个http请求,在给officeserverservlet页面发送了一个post请求3秒后,立即发送了一个get请求访问后门文件是否存在。

某单位攻防演练期间的一次应急响应

此前攻击者在22点52分时就已访问了2.jsp文件,但可以发现使用的请求为GET请求,此时的2.jsp文件应为攻击者上传的测试jsp代码文件,用于测试上传是否成功以及是否可正常解析jsp文件,随后又通过officeserverservlet文件后上传覆盖了之前的2.jsp文件,可以看到攻击者发送了大量的POST请求至2.jsp文件,此时攻击者已连接上了web后门并进行了一系列操作。

某单位攻防演练期间的一次应急响应

查看2.jsp文件内容和文件mtime和ctime如下,文件内容存在大量编码后的字符,无法确认其功能。

某单位攻防演练期间的一次应急响应

将其上传至威胁情报库进行检测,发现该文件可免杀率较高。

某单位攻防演练期间的一次应急响应

本地复现确认其为冰蝎web后门文件。

某单位攻防演练期间的一次应急响应

通过对网站路径下新增文件进行搜索,发现../edit/路径下存在多个异常文件,文件修改时间最早为4月15日16点59分,最新则为4月17日14点50分。

某单位攻防演练期间的一次应急响应

查看文件内容为jsp木马文件。

某单位攻防演练期间的一次应急响应

某单位攻防演练期间的一次应急响应

根据最早的异常文件test3.jsp文件的修改时间,进行web日志关联排查,发现16点59分日志共记录了6条攻击者记录,第一条即为攻击者117.136.38.153尝试访问test3.jsp后门文件,响应码为500即访问失败,22秒后再次发送了一个post请求了officeserverservlet页面,随后4条记录均为攻击者访问test3.jsp文件且响应码均为200即访问成功。

某单位攻防演练期间的一次应急响应

查看另外4个异常文件创建时间分别为4月16日至4月17日上传,关联日志进行分析。

某单位攻防演练期间的一次应急响应

根据tt.jsp创建时间,关联日志分析,发现攻击者在持续访问test3.jsp后直接访问了tt.jsp文件,无其他访问请求。结合tt.jsp文件时间说明攻击者是通过test3.jsp上传的tt.jsp文件。

某单位攻防演练期间的一次应急响应

ts.jsp文件同上

某单位攻防演练期间的一次应急响应

aaa.jsp文件同上

某单位攻防演练期间的一次应急响应

tunnel.jsp文件同上。

某单位攻防演练期间的一次应急响应

根据新增文件进行搜索,发现tmp目录下存在异常目录文件test1,该目录下文件均为内网渗透工具包,用于将OA服务器作为跳板攻击内网其他服务器,从而扩大战果。

某单位攻防演练期间的一次应急响应

以下为工具包部分扫描结果:

某单位攻防演练期间的一次应急响应

2.1.2 漏洞验证

根据现有日志痕迹分析officeserverservlet模块可能存在可被利用的漏洞,访问该模块发现可被互联网未授权访问到。(由于现阶段处于hvv期间,不排除攻击者掌握该控件的漏洞利用POC进行攻击。)

某单位攻防演练期间的一次应急响应

结合威胁情报分析,2019年6月26日处于2019hw行动期间致远OA系统爆出0day漏洞,实际存在漏洞的为金格iweboffice控件,本OA系统使用的是相同的控件。

某单位攻防演练期间的一次应急响应

某单位攻防演练期间的一次应急响应

2.1.3 附linux常规检查项

在完成web层面的入侵检查后,也需对系统层面进行入侵检查,防止攻击者通过web后门上传系统层面的后门驻留程序等。

1.1.1.1 网络连接

查看系统监听端口,判断是否有异常进程开启了端口监听。

netstat -antlp | grep LIST

某单位攻防演练期间的一次应急响应

查看已建立连接,检查是否存在异常外联进程。

netstat -antlp | grep EST某单位攻防演练期间的一次应急响应

1.1.1.2 定时任务

查看crond进程运行状态。

某单位攻防演练期间的一次应急响应

linux定时任务常用路径如下:

/var/spool/cron/   #使用root账号可看到该目录下存在多个用户创建的定时任务

/etc/crontab

/etc/cron.d

/etc/cron.daily  /etc/cron.hourly  /etc/monthly  /cron.weekly

某单位攻防演练期间的一次应急响应

查看cron日志,通过查看定时任务日志可较快发现当前系统是否存在异常定时任务运行。某单位攻防演练期间的一次应急响应

1.1.1.3 自启动项和服务

linux有两套服务自启机制,分别为init和systemd,前者较为古老服务命令使用的为service,后者是centos7以后开始使用的一套服务自启机制使用的命令为systemctl。

init机制服务保存在/etc/rc.d/下,同时/etc目录下默认存在init服务的软连接如下:

运维常使用的启动项/etc/rc.local  /etc/init.d均为/etc/rc.d目录下文件的软连接文件。

某单位攻防演练期间的一次应急响应

真实启动项路径为/etc/rc.d/,其中0-6代表linux系统不同的运行级别,一般命令行登录为运行级别3,图形化界面登录为运行级别5。

某单位攻防演练期间的一次应急响应

systemd服务路径如下,优先级高的单元配置文件会覆盖优先级低的,系统安装时,默认会将单元文件存放于/lib/systemd/system目录,增删改时建议在优先级最高的目录进行。

/etc/systemd/system/,该目录下的一些.service服务脚本是/lib/systemd/system的软连接

/etc/systemd/user/

/run/systemd/system/(当需要对程序运行时的单元文件进行配置修改时才会创建对应的单元文件)

/usr/lib/systemd/system/,/lib是usr/lib的软连接

/usr/lib/systemd/user/

排查时可以通过入侵时间进行关联,查看是否有新增服务。

某单位攻防演练期间的一次应急响应

1.1.1.4 用户登录

last命令可以查看系统每次登录的账号、ip、登录时间、持续时间。

某单位攻防演练期间的一次应急响应

lastlog命令可以查看账号的最近一次登录时间。

某单位攻防演练期间的一次应急响应

w和who命令可以显示当前用户登录在线情况。

某单位攻防演练期间的一次应急响应

centos系统登录日志默认路径为/var/log/secure

ubuntu系统登录日志默认位于/var/log/auth.log

cat secure-20210121 | grep Failed 可查看当前系统日志是否存在大量登录失败记录,即爆破行为。

某单位攻防演练期间的一次应急响应

1.1.1.5 用户账号

linux用户账号文件所在路径为/etc/passwd

通过如下命令可以查看该文件mtime是否被修改,攻击者新增后门账号时此文件时间会被修改。

某单位攻防演练期间的一次应急响应

通过如下命令可查看当前系统可被登录的账号。若账号无需使用建议删除。

某单位攻防演练期间的一次应急响应

3 经验总结

攻防演练中,红蓝双方斗志斗勇,红队手握0day和大量肉鸡代理,蓝队依托安全防护体系和安全运营机制对攻击进行监测、拦截、溯源。

红方攻击思路:

信息收集(域名、子域名、云防护cdn、C段、端口banner、中间件);

社工(邮件钓鱼、U盘钓鱼等);

手握0day,一步到位;

ip代理节点池,通过动态变化的ip进行扫描攻击,防止被蓝方通过真实IP溯源到其真实信息。

漏扫踩点,漏洞利用;(RCE、命令执行、反序列化RCE、注入、弱口令)

权限提升、权限维持(内核提权、工具提权、反弹shell、cs、msf等);

内网代理穿透,跳板代理攻击流量。(frp、reGeorg、端口转发等)。

内网横向移动,部分单位仅对外-内进行安全防护,对内-内缺乏安全防护机制。(ms17-010、cve-2019-0708、弱口令、内网业务系统高危漏洞利用)

痕迹清除(后门文件时间篡改、web日志和系统登录日志的清除篡改)

蓝方防守思路:

漏洞情报共享,恶意IP情报共享,IP封堵,永远的神。

人员值守,现场保护,优化加固,日报输出。

安全监测、防护设备告警误报研判、重点关注内向外的异常流量。

流量回溯,发现0day的利器。同时也是应急响应溯源分析的有力工具。

蜜罐,0day和攻击溯源利器,可利用攻击者前端劫持漏洞如jsonp、xss等获取攻击者浏览器中的登录凭证如微博、百度、163等,进而获取其社交id甚至是真实姓名和所在公司。

某单位攻防演练期间的一次应急响应





某单位攻防演练期间的一次应急响应


某单位攻防演练期间的一次应急响应

某单位攻防演练期间的一次应急响应

某单位攻防演练期间的一次应急响应

某单位攻防演练期间的一次应急响应

本文始发于微信公众号(FreeBuf):某单位攻防演练期间的一次应急响应

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: