应急响应流程
1)首先判断服务器资产、影响范围以及严重程度,确认有没有必要将服务器下线隔离,然后根据服务器的失陷时间和态势感知的告警,判断是由什么漏洞进来的
2)其次就是取证排查阶段,如果是web漏洞,就是查看web日志,根据失陷时间节点往上排查是否上传webshell;
再查看后门是否有恶意的命令执行、文件上传。如果有恶意的文件比如说.exe,可以放到一些微步社区平台分析;
如果是webshell的话,可以用d盾、河马进行查杀
3)接下来可以通过其他主机查看是否有相同的攻击迹象,然后排查是否有可疑的进程、端口、自启动项,可以用火绒剑查看有没有异常外联
4)然后就是进行攻击路径的还原,可以通过对日志、流量进行分析、确定他的攻击路径,然后判断出他的漏洞点并切断他的攻击路径
5)此时可以再观察一段时间,看有没有流量反连、有没有内存马
6)后面可以根据样本分析到的ip地址进行信息收集,进行常规的溯源,查看是否有个人id泄漏、社交平台搜索其个人信息、利用蜜罐系统反制等手段绘制攻击者画像
7)若无则尝试是否能够打进其服务器,比如说常见的cs反制,可以爆破攻击者cs服务器密码,或者利用cs漏洞拿到攻击者服务器权限,进一步获取攻击者信息
拒绝攻击DDOS
1)CC攻击:攻击者借助代理服务器生成指向受害主机的合法请 求,实现DDOS和伪装就叫:CC(Challenge Collapsar),CC 主要是用来攻击页面的。
2)SYN攻击:SYN攻击是黑客攻击的手段。SYN洪泛攻击的基 础是依靠TCP建立连接时三次握手的设计。
3)纯流量攻击:发送大量垃圾流量
抗D思想和方案:1)负载均衡 2)花钱买流量清洗服务 3)装waf 4)花钱买高防设备
水坑攻击和鱼叉攻击
1)水坑攻击:攻击者通过分析受害者经常访问的网站,寻找该网站的弱点,先往该网站中植入攻击代码,等待受害者访问时就会触发。比如进入后台之后如果没有办法拿到个人机器(可以拿到后台服务器权限,涉及到权限转换问题),则可以攻击该后台网站页面,向管理员必定要访问的页面植入攻击代码(比如说植入一些升级demo,不升级则不能访问该页面),则上线的可能性极高,因为这涉及到了信任关系的问题,这个是自己的后台网站,肯定就是觉得不会有问题
2)鱼叉攻击是指利用木马程序作为电子邮件的附件,发送到目标电脑,诱导受害者去打开附件感染木马。
钓鱼伪造
1、下载文件icon伪造,工具RerouseHack。邮件过网关防火墙,对钓鱼文件进行压缩,可以在下载的压缩包加上解压密码
2、利用windows特性,文件名过长会隐藏后缀,加n个空格
设备误报如何处理
1)来自外网的误报说明安全设备需要进行策略升级,不需要处置。
2)如果是来自内网的误报可以和负责人协商一下看能不能解决,有必要的话添加白名单处理。
如何判断是否是误报
首先看ip是内网ip还是外网ip
1)如果是内网ip,并且有明显的恶意请求,比如ipconfig那么此内网服务器可能会失陷。还有可能就是内网的系统有一些业务逻辑问题,因为内网在部署的时候很少会考虑一些安全问题。比如说内网的业务逻辑携带了一些sql语句,这一类属于误报
2)如果是外网ip,根据请求报和响应包的内容进行对比判断。比如sql语句查询用户名密码,然后响应包返回了相应的内容,这一类是属于恶意攻击。
所在客户业务流量很大告警量很多,你的分析思路是什么
1、监控分类
1)首先可以查看告警是外网的告警还是内网的告警,如果是外网的告警的话,并且有明显的攻击行为,则很有可能是工具扫描攻击,我们可以对其恶意ip进行封禁。如果是内网ip,可以上报给客户并且询问安全运维是否在此时间段内有进行这个安全测试或者说有自动化的脚本。
2)如果确定是恶意攻击,并且有明显的高危行为,比如文件上传或者sql注入,则我们需要进入应急响应流程。根据漏洞攻击影响的范围以及资产确认是否需要将主机下线隔离,然后进行排查有没有上传后门或者写入内存马,然后就是根据告警的漏洞找到漏洞点,进行漏洞的修复
2、策略优化
1)1类告警,已失陷或者疑似失陷的的高危告警。利用自动预警脚本工具对所有设备进行7*24h监控,实时预警实时分析。
2)2类告警,利用SOAR平台配置自动化IP封禁剧本,针对攻击源进行实时自动封禁过滤绝大部分告警(尤其是扫描类告警)。
3)3类告警,待人工进一步分析确认的具备较高研判价值的告警。要求监测研判人员在告警产生半小时内完成人工主动分析,并更新告警状态为已研判。
挖矿事件应急处置
1)执行top命令,查看CPU占用情况,有无异常
2)查找恶意文件样本,并确定程序的运行时间
3) 首先获取恶意域名(微步在线、360威胁情报中心…获取),从而根据域名确定木马类型
4)处理异常进程并删除恶意文件,最后排查是否有可疑的计划任务、自启动
勒索病毒应急处置
1)首先就是物理断网、隔离主机,然后判断勒索病毒存活,可以通过创建几个.exe .txt空白文件看是否会被加密判断存活
2)排查业务系统,了解勒索病毒加密时间、中招范围以及影响程度
3)可以根据预留文件、预留邮箱判断出攻击团伙,对后续的溯源也有很大的帮助
4)分析勒索程序,获取ip、域名相关信息,上传至威胁情报中心查询
5)可以将勒索程序上传到一些勒索病毒搜索引擎,比如360、深信服,看能不能进行解密
钓鱼邮件应急处置
1、将受害主机断网隔离,有安全设备可以对所有主机资产进行病毒查杀
2、查看邮件原文
1)看指纹信息(什么发送工具平台)
2)看发送IP地址(服务器IP或攻击IP)
3)根据域名寻找邮件服务器地址(利用红队手段渗透获取信息)
4)可能存在个人的ID昵称用户名(利用社工的技术手段进行画像)
3、上机排查
netstat查外联,然后就是进程定位查找到文件的位置
webshell排查处置
1)首先排查工具方面D盾、河马,手工方面可以对比未上传webshell前的备份文件,可以对比他的MD5值
2)其次通过设备告警确认文件上传的路径以及木马文件名称,然后查看webshell的创建时间判断他攻击的时间范围,方便后续的溯源、追踪他的攻击路径
3)对web日志进行分析,以查找攻击路径以及失陷原因
4)最后就是进行漏洞分析,主要分析是什么漏洞导致的webshell攻击
5)最后进行漏洞复现,从而还原他的攻击路径
内存马应急
1)进程分析:通过查看系统中所有进程的信息,包括进程名称、PID、所属用户、内存占用等,可以尝试发现异常进程并排除其中是否存在内存马
2)系统日志分析:通过分析系统日志文件,可以查看系统启动、服务开启、网络连接等活动,以了解是否有可疑的行为发生内存分析工具:使用专业的内存分析工具,例如 Volatility Framework、Mandiant Memoryze、Rekall等,可以在内存中查找潜在的内存马代码或痕迹,并进行初步分析和定位
3)网络监测工具:通过网络监测工具,例Wireshark、Tcpdump等,可以捕获网络流量,了解是否有可疑的网络请求或通信行为,进步定位内存马的来源和命令控制中心
4)安全软件扫描:利用杀毒软件和安全扫描工具,例如 Norton Power Eraser、 Kaspersky、TDSsKiller等,可以对系统进行全面的扫描和检测,以发现并清除可能存在的内存马
内存马原理及其排查思路
目标:访问任意url或者指定url,带上命令执行参数,即可让服务器返回命令执行结果
特点:无文件落地、HTTP请求流量中看不到执行结果
1、传统Web应用内存马
1)php内存马:不断删除自身文件,不断写入木马
set_time_limit()函数:设置允许脚本运行的时间,单位为秒(如果设置该运行时间,sleep()函数在执行程序时的持续时间将会被忽略掉)
ignore_user_abort()函数:函数设置与客户机断开是否会终止脚本的执行(如果设置为True,则忽略与用户的断开)
unlink(FILE)函数:删除文件(防止文件落地被检测工具查杀)
2)Java内存马:Spring容器三大组件servlet listener filter,随着Spring容器的生命周期启动
【1】 servlet内存马:当页面收到get请求后会经过doget方法,直接在doget方法中写入木马
【2】filter拦截器内存马
【3】也是一样的,在listener监听器中写入木马
2、Agent型内存马
1)实现Agent型内存马两种方式
【1】实现premain方法,在JVM启动前加载,实现原理就是通过创建Transformer重写transformer方法,就可以实现修改JVM字节码
【2】实现agentmain方法,在JVM启动后利用attach程序识别到JVM的pid之后就会进行字节码修改
3、查杀手段
1)我们的判断逻辑很朴实,利用Java Agent技术遍历所有已经加载到内存中的class。先判断是否是内存马,是则进入内存查杀。
2)具体的查杀思路
1)如果是jsp注入,日志中排查可以jsp的访问请求。
2)如果是代码执行漏洞,排查中间件的error.log,查看是否有可疑的报错,判断注入时间和方法。
3)查看检查服务器web日志,是否有可疑的访问日志,比如说filter或者listener类型的内存马,会有大量url请求路径相同参数不同的,或者页面不存在但是返回200的请求。通过查找返回200的url路径对比web目录下是否真实存在文件,如不存在大概率为内存马。查看是否有类似哥斯拉、冰蝎特征的url请求,哥斯拉和冰蝎的内存马注入流量特征与普通webshell的流量特征基本吻合。
4)对应的classloader路径下没有class文件。所谓内存马就是代码驻留内存中,本地无对应的class文件。所以我们只要检测对应的ClassLoader目录下是否存在class文件
5)github上有查杀工具,比如说查杀agent内存马的findshell,其实现原理就是检测了Java Agent内存马经常出现的函数
暴力破解如何研判
1)可以通过规律,如果请求的次数与这个正常请求的次数有一定差距,则需要进一步分析
2)特征字符,比如它是对smb协议进行暴力破解,然后我们可以看有没有相应的关键字
如何判断是否蜜罐
1)查看页面源代码,一般都会有那个很长的一段js加密代码
2)可以通过360网络空间测绘进行查询
sql注入告警,怎么判断是否攻击成功
根据请求包和响应包对比进行判断。比如看下请求包内是否有sql语句,如果有sql语句,并且响应包内容有执行成功的回显,那么判定sql注入攻击成功。
命令执行的告警,怎么判断是否攻击成功
根据请求包和响应包进行对比判断,看下请求包内是否有系统命令,比如看下请求包内是否有ipconfig,然后看下响应包回显是否有ip相关的内容,如果有的话说明攻击成功,如果没有,说明攻击未成功,但是确实也还是恶意攻击
ssrf告警,没有明显的回显,怎么判断是否攻击成功
如果能做漏洞验证的话,我会进行复现验证下。如果不能做漏洞验证的话,就查下日志看看他探测的目标有没有流量交互,如果有流量交互的话应当是攻击成功
sqlmap的流量特征
1)sqlmap的关键字特征:user-agent、 xss测试语句、随机数的位数
2)sqlmap的攻击流程具有一定的顺序和规律
3)sqlmap的一些payload测试语句具有模板特征
CS流量特征
心跳包60s,默认端口50050,0.0.0.0是Cobalt Strike DNS Beacon特征
HTTP:
1)根据源码特征
可以用Wireshark抓取他的HTTP请求包,然后提取他的请求url路径通过checksum8解密算法,如果得到的结果为92或93,则可以判断他的cs是没有进行魔改的
2)使用流量样本解密心跳请求
https://blog.didierstevens.com/didier-stevens-suite/
python 1768.py xxxx.vir
HTTPS:
1)源码特征(ja3 ja3s)
同一系统下的cs得到它的ja3 ja3s值是一致的
log4j流量
Log4j就是java的日志插件,处理日志存在”KaTeX parse error: Expected '}', got 'EOF' at end of input: …入,流量特点就是数据包里面有”{“字段。
shiro流量
1.2.4 key是写在源码里的,找到key就能构造攻击链,1.2.4之后的775key是随机生成的,但我们还可以构造cookie,尝试构造攻击链。
Shiro流量特征:数据包含有多个$$$符号,C参数含有base64编码。
fastjson流量
原理也是jdni注入 利用就是构造一个json字符,用@type指定一个类库,流量特征就是json autotype
Weblogic流量
xml的反序列化漏洞,通过xmldecoder还是什么导致的xml解析代码执行。弱口令。
流量特征:不加密,常见的出网协议也可以用。有很多T3协议的特征,文件操作和冰蝎一样有fileoutstream字段。
一台主机在内网进行横向攻击,你应该怎么做?
1)确定攻击来源,是不是员工内部误操作,比如询问运维是否有自动化轮询脚本
2)如果没有,确定是攻击,结合时间点,根据设备信息,看一下安全事件,进程,流量
3)找到问题主机,开始应急响应流程:准备、检测、遏制、根除、恢复、跟踪,具体的操作要交给现场运维去处理
HW期间遇到0day
1、遇到0day的时候第一件事情是先评估0day对自身系统的影响,如果没有影响或者影响范围较小且在可以接受的范围内,完全没有必要启动应急响应流程
2、未被攻击:扩大情报网,遇到情报中心里面发布了0day以后立马通知甲方,然后进行自检。查看利用方式和查看版本确认是否会产生漏洞风险。然后可以添加规则添加补丁。并且通知监测人员多注意这方面的流量。
3、遭遇攻击:
1)确定有影响且有poc,第一件事就是分析poc执行后会在哪里留下日志痕迹。比如说ntlm relay这种,可以考虑从Windows事件日志当中event_id等于4769的事件入手编写对应的规则,这样的话可以利用SIEM或者实时日志分析平台(ELK、360星图等)跑起来,可以建立起初步的感知防线,后期触发告警,人肉运营也可以快速止损
2)攻击者利用0day需要了解资产情况,我们可以通过前期攻击者打点阶段 了解到是哪些资产是可以被0day攻击
3)业务流量比较大,可以关注后续的高危行为,异常文件落地、异常外联、异常进程,然后结合设备的告警或者对异常文件、内存的分析确认攻击IP,进而根据IP分析追踪日志确认攻击路径和攻击手段
0day监测
1)基于大量流量、日志进行分析,找到其中的异常流量并进行跟踪追溯,自动日志分析过滤业务IP、黑白名单、异常上传文件、异常SQL语句
2)在采用基于签名的检测方法之前,先按照特征对恶意软件进行分类,通常分为三类:基于
内容的标记、基于语义的标记和由漏洞驱动的标记。与病毒扫描程序类似,该方法是将当前签名与可疑签名列表进行比较,如果匹配,则发出风险预警
3)基于行为,此技术是在恶意软件与目标系统交互时,基于其行为进行0day攻击的检测。异常函数调用、异常命令执行、异常外联异常进程
溯源
1、溯源事件调查分析可以根据目标和深度的不同分为三个级别,即攻击路径调查、攻击团伙调查、攻击人员调查
2、攻击路径调查是最基本的也是最重要的调查取证工作。
1)攻击源捕获(设备告警、日志流量分析、蜜罐系统),获得攻击者真实IP,定位目标,利用精准IP定位目标的位置,IP数据
2)利用常规的渗透测试思路找出攻击者攻击的手法,比如说当前系统使用的是鱼跃cms,然后我们可以通过查询鱼跃cms历史漏洞看有没有可以利用的点,然后逆向判断出攻击者的攻击手段
3、有时候我们可以判断出发动攻击的团伙是哪个,然后更全面的了解该攻击同伙惯用的攻击手法,这也有利于溯源的进行或者进而部署更全面的安全防护方案,这就是攻击团伙调查
4、接下来就是要获取攻击人员信息,ID追踪术,利用搜索引擎、社交平台、技术论坛、社工库匹配
具体技巧:
1)域名、ip 反查目标个人信息
2)支付宝转账,确定目标姓氏
3)淘宝找回密码,确定目标名
4)企业微信手机号查公司名称
5)REG007 查注册应用、网站
6)程序 PDB 信息泄露,如果能拿到攻击木马样本,因为攻击者在编译攻击样本的时候会有那个调试信息,这也是一种信息泄漏
7)还有就是各大src排行榜,各种社交微博,vx都可以进行这个id的追踪
溯源技巧
1)通常情况下我们接到溯源任务的时候,可以获取到很多信息,如攻击者ip、攻击类型、恶意文件、攻击详情可以作为我们溯源的入手点。
2)通过攻击类型分析攻击详情的请求包,看有没有攻击者特征,通过获取到的 IP 地址进行威胁情报查询来判断所用的 IP 具体是代理 IP 还是真实 IP 地址。
3)如果遇到端口扫描,大概率为个人vps或者空间搜索引擎,在接到大量溯源任务时可以优先溯源
4)如果遇到命令执行,大概率为未经任何隐匿的网络、移动网络、接到脚本扫描任务的肉鸡,在接到大量溯源任务时可以优先溯源
5)如果遇到爬虫大概率为空间搜索引擎,可放到最后溯源
通用入侵检测方案
入侵检测是一项必不可少的终端安全功能。通常可以根据攻击者发起攻击的不同阶段设计出不同的检测方法。
1、流量检测方案
可以通过部署流量探针,对流量的源头ip、源头端口、协议类型等使用规则或特征进行入侵检测
1)威胁情报ioc检测:连接本机的ip被标记为活跃攻击源或者被标记为c&C服务器,则可能是一次入侵攻击
2)流量特征检测:通过匹配特征码的方式检测已知威胁
3)异常流量检测:寻找流量中不合常理的异常行为,比如非预期的异地登录、频繁尝试登录
2、行为检测方案
1)可疑程序执行,可以对可执行的程序或命令进行鉴别,如果不符合预期,则可能已经被入侵。通常的检测模型有零信任模型、非白即黑模型等等
2)可疑shell执行,攻击者在攻击成功之后通常都会执行一些持久化的脚本比如powershell脚本等等
3)异常行为检测:攻击者入侵肯定会有一些目的,比如频繁的读取文件(勒索病毒)窃取文件、创建后门账号等,如果发现执行这些敏感操作的进程都是非预期的则可能已经被入侵
3、痕迹检测方案
1)可疑程序检测:可以查看有无遗留的恶意程序或者非预期的可以程序,则有可能已经被入侵
2)持久化攻击检测:对程序的一些自启动服务(如注册表启动项、注册表)
3)安全日志检测:攻击者的入侵过程会在系统安全日志留下事件信息,如登录成功或者登录失败
4)日志完整性检测:有些攻击者为了不留下攻击痕迹,会清除或者替换系统日志。如果发现日志被清空,或者某段时间日志被删除,则可能已经被入侵