红蓝攻防总结(防守篇)
此系列文章是结合红蓝对抗的一些知识点进行讲解并对其进行梳理 之所以会标注一是因为此系列文章将持续更新 如有相关问题可以评论提出 作者将及时改正
安全加固
Linux
账号安全
检查不安全口令账号和root权限、su到root的账
号、远程账号(空口令检查、组id为0检查(/
etc/passwd /etc/shadow))
删除禁用无效非必要账号(userdel、
usermod)
添加登录口令相关策略(登录失败处理、限制非
法登录次数、账号锁定)
运行配置安全
异常端口(netstat -pantl)进程(ps)
服务检查
FTP(登录用户限制,禁止匿名登录)
SSH(修改默认端口、ip登录白名单)
修改默认配置、路径等
系统安全
最小安装原则,非必要不安装,及时对比软件包
是否为最新适配版本
黑盒白盒漏洞自测,修改默认配置、路径等
搭建蜜罐,或内置某些流量检测应用于web,使
用安全设备
修改日志记录策略配置,使记录所有用户登录操
作等
保护审计记录,日志设置备份,避免受到未预期
的删除、修改或覆盖
Windows
账号安全
检查是否有弱口令、删除禁用非必要临时、过期
及可疑的账号
登录策略设置:限制非法登录次数、登录失败处
理、白名单
权限分配:配置访问策略,限制用户对资源访问
权限、关闭默认共享,管理用户的权限分离
运行配置安全
端口、进程、服务:远程端口是否对外开放,不必要服务关闭、
敏感服务修改默认端口、不对外公开等
定期清理内存信息
系统安全
最小安装原则,非必要不安装,删除所有多余软件组件,更新适配软
件、systeminfo及时对比补丁信息,更新升级补丁
黑盒白盒漏洞自测,修改默认配置、路径等
搭建蜜罐、杀软,使用安全设备
审计策略
配置策略
日志在事件查看器 或者logpages lizard
应急响应
Windows与Linux通用
不管是啥,有告警就ban掉IP,黑名单
资产定位横向排查受害机,考虑是否断网下线隔离排查
历史事件和命令
排查账号安全问题
排查端口、进程、服务、启动项、计划任务
异常文件遗留、排查配置变动
日志、流量分析
漏洞修复加固
溯源反制
Windows应急
确认配置->检查历史命令或事件->排查账号安全问题->排查端口、进程、服务、启动项、计划任务->
排查文件修改和攻击遗留文件、可疑目录->清理后门(webshell查杀)-->分析日志->溯源反制
用好设备比啥都强
第三方恶意检测工具:PChunter、process
explorer、Auroruns
分析日志工具:比如windows上图形化
logpages lizard、Event Log Explorer(自动读
取)、 Goacess(html)
排查webshell:D盾、河马,深信服
WebShellkiller等
已知网站被植入WebShell的应急响应流程
应急webshell实际操作中
先看是否需要隔离做排查,做好边界控制
工具+设备=》查杀webshell 可以用工具(D盾、河马、深信服
webshellkiller、WEBDIR)结合手动排查
根据告警时间点,审计各种日志和流量,看看怎么打的,排查配置变动,文
件遗留,确定活动范围和影响
修复加固,恢复业务
结合流量分析,溯源画像,反制 就包括溯源的那些,比如 .....
webshell检测
设备的流量特征分析
工具查杀
日志审计:查看异常的系统命令调用、文件读写、活动目录和路径、确定是否是webshell
排查异常文件,对比备份
对异常样本的分析:包括关键字、特征、语义
windows被种cs马的应急方案
系统日志内提供了windows所有的出入站日志可
以直接查看,当cs上线以后更改sleep属性会触
发event_id字段参数,直接过滤查找即可,还可
以编写cef规则去查看是否恶意外链tcp udp
网站被挂黑链
首先要保护现场
利用日志定位到修改时间,(找到最近修改的所有文件),定
位到和修改时间相近的部分日志查看
使用webshell查杀脚本或工具找到对应后门文件,从后门文件和
日志一步一步分析
0day应急处置
隔离,关闭ssh,rdp,排查,已经被攻击的断网封ip,开
启厂商临时防护,预防口令策略加固
排查0day流量
全流量设备排查攻击流量,同时以应用日志为主
分析异常报错或者登录,还有从本机异常文件入
手,先分析处理,然后回溯排查,复现,加固
被种挖矿木马
资产定位,横向排查受害机,考虑是否断网下线隔离排查
LINUX
看进程占用(top),找top最高的进程 然后ps -aux锁定一下看具体的
ls /proc/(pid)/exe 查看挖矿进程所在目录 chmod 000 file 接着锁死目录限制木马操作
追溯异常进程及宿主进程,同样的操作把写木马的进程kill掉
WINDOWS差不多
资源管理看进程占用
打开文件位置,分析是否是挖矿 是的话备份程序
排查端口外联netstat -pantl
关闭异常服务、进程
关闭异常计划任务
异常遗留文件的恶意检测
溯源反制
针对捕获的ip溯源
1.先丢到威胁情报平台分析这个IP,初步判断
https://x.threatbook.cn/ 微步社区
查看解析出的域名是不是标注恶意
分析是否为黑客vps
开放端口(历史测绘+手工(全端口)复测)
代理服务器常用的80、8080是否开放,是否大于
10000
是否搭载NPS等,搭载则为代理
直接反扫反打 正常渗透
解析域名
微步记录的相关画像
涉及的样本
https://ti.360.cn/
2.对IP继续发查
如果ip反查出域名: whois反查 查看注册信息,可能有注册者邮箱、电话号码 反查也包括(站长之家为例)
邮箱反查
注册人反查
电话反查 等
有结果就反复追查,结合手法,比如下面的身份
溯源
IP定位
https://www.opengps.cn/Data/IP/
LocHighAcc.aspx
是否定位到某个安全公司的地理位置
是否标记为某个安全公司的网关
3.看情况进行反扫反打 渗透
4.追溯完整攻击画像(结合应急拿到的信息)
1).结合告警信息:比如态感和全流量设备所记录
的这个IP的网络行为和流量走向。
2).结合日志:包括设备日志、web日志、系统日
志。推测危害程度的同时(web利用成功会触发
系统函数记录系统日志),推测攻击者的攻击手
法,辅助溯源画像
也包括跳板机的溯源 举例,不全
Last: 查看登录成功日志
Cat ~/.bash_history 查看操作指令
Ps -aux 查看进程 审查服务器内配置和资源异常
cat /etc/passwd
查看是否有类似ID的用户
重点关注uid为500以上的登录用户
nologin为不可登录
3).结合捕获的样本
IP属性问题
如果是高匿代理,会将数据包原封不动地转发,
记录的IP是代理服务器的IP
封堵优先,可以当作画像成果,但本身溯源意义
不大
如果是普通匿名代理
带有Proxy-Connection的Keep-alive报文
包里会带有 HTTP_VIA和HTTP_X_FORWARDED_
FOR中找真实IP,因为不像高匿代理那样原封不
动转发数据包
尝试继续溯源
如果IP是来自CDN或者IDC的IP 优先做处置,ban掉,目前没太好办法
实际入场不管什么IP,能不能溯源,能上告警
的,都第一时间封掉,错杀不漏杀
针对后门木马样本
样本特征 加密方式、是否有ID信息
样本文件类型
钓鱼类文件
EXE 文件:存在 PDB 信息,部分开发人员将项
目存放在桌面,这会导致编译信息带入开发人员
的终端名称(极大可能为个人昵称)。
LNK 文件:由于 LNK 文件在新建的时候会带入
计算机名称,这可以用于样本的拓线和分类,极
少情况下可找到个人昵称。
DOCX 文件:可能存在“最后编辑者名称”。
漏洞上传文件 webshell
捕获到的样本上传威胁情报,辅助分析画像
分析混淆手法、密码、判定webshell种类、工具 github尝试搜索特征性字符串,尝试溯源ID
是否有残留文件,根据文件所在目录=》漏洞类
型与位置-》推测是否是自动化工具中生成或上
传、下载遗留。等==》攻击路径、手段
身份信息溯源
手机号和虚拟ID
支付宝转账、微信搜索、qq
密码找回功能,如:阿里云IP找回、腾讯密码找
回、邮箱密码找回、淘宝密码找回
手机号搜索相关注册信息REG007,以及手机号
使用者姓名
百度、src平台、微信搜索ID、各社交平台(豆
瓣/贴吧/知乎/脉脉等等)、论坛、谷歌语法、
github
谷歌语法:手机号和真实姓名存放一起的 XXX
学校表格
社工库匹配(常用马甲)
捕获域名 whois、手机号、邮箱 社工库
攻击样本 主要是样本内分析,沙箱分析、网络行为分析、
提取C2 微步在线云沙箱:https://s.threatbook.cn/
流量溯源攻击画像
请求&&响应包
攻击包header
cookie
UA头
蜜罐比如有jsonp接口或者搭个HFish,截获
COOKIE、用户名、手机号
物理位置
确认攻击画像
结合态势感知、各系统、设备的 日志、告警 和
全流量设备 的 流量日志,观察流量的流经信
息,审查攻击流量
上面手法汇总、交叉分析、得出画像
事件(反制):
CS反制
爆破cs密码-teamsever50050 有脚本
假上线 发送心跳包,模拟上线 有脚本
批量上线钓鱼马,启几百个进程,ddos红队cs
端
红队使用CS远控,用了域前置或者云函数或者
CDN,如何找到目标服务器的真实IP?
云函数是能够通过本地解析记录排查出真实ip的
cdn就尝试溯源真实IP
针对钓鱼邮件 发件 IP、发件账号、邮件内容(格式特点等)
投递物(后门木马、其他攻击组件) 分析样本特征
钓鱼网站,包含域名、IP 等信息
邮件中的字符串,分析邮件原文信息,可能存在
攻击者的其他账号、发件 IP、发件服务器,属攻
击者资产
整体思路
溯源的目的是获取画像
攻击者身份画像
网络身份
现实身份
攻击方式画像 完整的攻击流程记录
很多手法是串并联的,不是单一思路,结合起来
用的,如上文
安全设备
举例:不一一列举了
态势感知:
奇安信天眼 (主要是流量检测、数据分析功能)
深信服安全感知平台SIP (突出感知收集功能,属于业务呈现偏多)
全流量设备:
锐服信全流量平台
绿盟全流量威胁分析系统 (看过场景资料,他功能包括对威胁和资产的监
控,以及挖掘检索,具体事件的跟踪等等)
科来网络分析系统 (针对网络为主,协议分析、数据采集、以及网
络行为监控、统计等功能)
EDR 深信服EDR (主机端点检测和响应设备,比如终端管理、威
胁监测、响应中心、日志报表和系统管理。)
探针 安恒探针
防火墙 奇安信天擎(网神)
其他
睿眼沙箱、睿眼取证系统
微步系列产品
检测误报
(根据误报进行调优调整策略)根据hw前的流量
对比是否是正常数据,或者是否是服务器自身回
应延迟等造成误报
一般HW前面几天设备都配好了,运行的初期看
几天,基本就摸清什么是误报什么是真告警了,
不同的单位和设备情况不一定一样,没有固定方
式
经验:看数据包,有些明显是业务代码触发规;
或者僵尸网络带来的垃圾流量触发告警;或者告
警类型长期单一,无其他告警。
比如mozi
漏防处理
发现攻击被绕过:应急响应,同时根据受害主机
反向排查原因,从主机情况到流量走向到攻击入
口和方式,根据攻击类型和特征,调整策略,更
改对应规则,验证效果。应急响应安全加固+设
备策略配置
极端防御思路
非必要系统全部下线;白名单路径、流量特征、
甚至白名单IP;同时对情报网收获的漏洞情报进
行特征整理添加到全流量/态感设备,及时封禁IP
和路径,配置联动联防
WAF配置
勾选配置设备的相关过滤规则,检查包里有无
payload关键字,工具的流量特征,异常目录访
问,设备的日志收集
#流量特征
冰蝎流量特征
样本本身
包含默认16位md5密钥,默认变量k
代码中包含webshell的关键字,混淆方法
base64
eval
openssl_decrypt
for循环做异或处理
3.0为例的动态(强)特征
1、content-type默认恒为 application巴拉巴拉
若第一阶段请求200ok,返回体则存在16位密钥
全程无明文,保留16位密钥结构
建立连接后保存cookie属性 Cookie: PHPSESSID=; path=/;特征结构
2、Accept&Cache-Control的特殊请求头结构 Accept: text/html, image/gif, image/
jpeg, *; q=.2, */*; q=.2
3、内置17个老ua头
4
、content-length 请求长度有规律(java版本而异)
4.0特征
冰蝎3和冰蝎4的请求包是一致的,但响应存在区别,冰蝎3的响应包是AES加
密后的二进制数据,而冰蝎4的响应包使用默认的加密算法的话,是经过加密
算法加密后再base64编码的响应数据包。
冰蝎4默认使用的AES加密为ecb模式(即同一个密钥,同一串明文,得到同
一串密文),相同请求的请求包并不一致,因为相同请求包的包名和类名都是
随机的,但相同请求的响应是一致的。
配合AES、base64解码工具,对报文内容分析
哥斯拉流量特征
主要查杀落地后的shell,如果改过多配置,查杀不到 不使用默认密码(pass),修改ua头,填充垃圾数据(post的左右);这三者结合,流量层目前是没法检测的
静态 默认配置时
PHP的异或,其他的可能有AES加密 主要看关键字
jsp中产生xc、pass字符,java反射函数、
base64编码特征
动态
比如密码pass则请求体可能通过pass变量引入 第一次初始化的包会很大,且是非明文字符
Cookie的最后一位有分号
md5前十六位+base64+md5后十六位 md5拆分包含base64编码 后面包小,可以看到中间有==号标注被包裹的base64
请求头包含类似Accept: text/html,
application/xhtml+xml,application/xml;q=
0.9,image/webp,*/*;q=0.8特殊结构
响应中可能Cache-Control: no-store, nocache, must-revalidate特殊结构
菜刀流量特征
静态:一句话比较明显
动态
UA头可能是百度爬虫
包含eval、base64等特征字符
请求头传递payload通过base64编码,存在固定
编码体
回显为明文
蚁剑流量特征
静态:常见shell关键字、函数、base64编解码字符特征
动态
默认编码连接时请求头存在固定开头(@ini_
set、@set_time_limit)
base64字符
响应包 的结果前后包含混淆随机数
常规漏扫的流量发现
请求包含自身工具字眼 wvs、acunetix
wireshark
语法规则使用
筛选IP地址为 的流量
ip.addr==192.168.1.1
筛选源IP为 的流量
ip.Src==192.168.1.1
筛选目的IP为 的流量
ip.dst==192.168.1.1
筛选端口
tcp.port =80
筛选源端口
tcp.srcport =80
筛选源目的端口
tcp.dstport =80
筛选GET包
http.request.method =="GET"
筛选POST包
http.request.method ="POST"
字符串筛选指定关键字
http contains"flag”
使用场景 分析流量包
http请求/响应
追踪流