凯哥咯
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9

前言
学习网络安全总要记录一下吧,要不然怎么证明自己学过呢!该文章记录了监控研判溯源内容以及面试常问的一些题目,由于本人学习内容有限只能逐步给大家分享相关内容,所以如果分享内容存在误区请大家多多包涵!之后也会持续更新网络安全相关内容,请大家多多支持,十分感谢!(之后可能更新的内容:Web渗透流程总结、渗透测试常用工具、应急响应流程总结、应急响应常用工具、基线检查及安全加固......)
一、安全监控
安全监控是护网蓝队中最基础的岗位,在实际的工作中一般安全服务/安全运维岗这一块基本是必会的技能,这一块主要是一些安全产品以及相关的面试题!
1、网络安全相关设备及代表产品
(1)防火墙:
- 监控和控制进出网络流量的设备,可以根据预设规则允许或拒绝数据包(与入口交换机串联部署)
(2)IPS(启明星辰-天清入侵防御系统):
- 入侵防御系统(与交换机串联部署,对流量进行分析拦截)
(3)IDS(启明星辰-天阗入侵检测系统):
- 入侵检测系统(并联部署在核心交换机进出的地方,做一个端口镜像,将流量复制一份进行分析检测,不进行拦截)
(4)WAF:
- Web应用防火墙,专门保护Web应用程序免受常见的Web攻击(部署在DMZ区域的Web区域)
(5)态势感知(奇安信的天眼):
- 对网络环境进行实时监控和理解,以便能够及时发现和响应安全威胁,将对方的攻击路线展示出来
(6)上网行为管控(深信服的全网行为管理AC):
- 用于监控、管理和控制用户网络活动,一般企业会使用此类产品便于管理员工的网络行为
(7)堡垒机(飞致云的jumpserver):
- 用于增强访问控制与安全审计的设备,可以限制和管理用户访问权限、记录和监控用户登录和操作等行为、同时还提供额外的安全保护以及资产管理等功能,运维人员常用
(8)VPN:
- 虚拟专用网络,主要是为了实现远程加密访问公司内部网络达到远程办公的目的,当然也可以用来实现科学上网
(9)蜜罐(默安的幻阵):
- 顾名思义,就是一个蜜罐子,将需要防护的系统另外部署一份到蜜罐中,并且可能将其设置的不是那么安全,吸引攻击者对其进行攻击,其实攻击者可能已经被监控溯源了而不自知,从而达到吸引、检测、分析和防御网络攻击的目的
(10)EDR(青藤云的青藤云安全):
- 端点检测与响应,我个人认为EDR优势在于可以检测横向渗透攻击
(11)APT预警(安恒信息的安恒明御APT攻击预警平台):
- 用于检测、分析和响应复杂网络攻击,APT攻击通常由有组织的团体发起,目的是长期潜入目标网络,窃取敏感信息或进行破坏活动
(12)防DDOS(绿盟科技的黑洞):
- 保护网络资源免受分布式拒绝服务攻击(DDOS)的影响,对流量进行清洗,确保服务的可用性和可靠性
2、常问面试题
(1)防火墙与WAF的区别
- 防火墙是通用型网络防护设备,一般部署在网络流量入口处
- WAF是Wbe层面的防护,主要保障Web应用程序的安全,一般部署在DMZ区域的Web区域
(2)防火墙、IDS与IPS的区别
- 防火墙主要是基于规则对网络流量进行访问控制,IDS是用于检测网络流量中存在的威胁并报警但是不进行主动拦截,IPS在IDS的基础上增加了主动拦截功能
(3)你使用过堡垒机吗,叫什么名字,堡垒机的作用是什么?
- 使用过,叫jumpserver
- 堡垒机的作用是:增强访问控制与安全审计,可以限制和管理用户访问权限、记录和监控用户登录和操作等行为、同时还提供额外的安全保护以及资产管理等功能
(4)态势感知的工作原理,有没有拦截功能
- 原理:静态规则匹配,一般都是进行规则叠加更新
- 有没有拦截功能:态势感知自身没有拦截功能,但是可以和其它设备,比如EDR设备联动进行横向拦截,但是一般不这么做,因为态势感知的误报率太高了!
(5)天眼有什么功能模块
- 监测中心、威胁感知、分析中心、响应处置、资产感知
(6)天眼的告警列表字段、天眼的攻击结果有哪些、企图和失陷的区别
- 告警列表字段:受害IP、攻击IP、资产IP、告警类型、威胁名称、攻击结果、威胁级别、攻击次数
- 攻击结果:失败、企图、失陷、攻击成功
- 企图与失陷的区别:企图表示攻击者尝试进行攻击,但是暂时没有突破防御机制,失陷表示攻击者已经突破了某些防线,并且已经获得了某种程度的权限
(7)天眼三大功能(三件套)是什么
- 传感器:对流量进行解析还原,发现网络攻击和Web攻击能力
- 沙箱:发现恶意样本投递能力
- 分析平台:存储历史流量,分析威胁和溯源能力
(8)天眼的日志检索功能有哪些模式,高级模式怎么使用
- 快捷模式:直接填写IP点击字段进行查询即可
- 高级模式:搜索语句一般由”字段名称“、“项”、“运算符”三大元素组成,例如:sip:"xx.xx.xx.xx" AND dip:"xx.xx.xx.xx"或search sip=10.0.0.0/8 | top 100 dip
- 专家模式:支持更高级的搜索语法和功能,适用于更复杂的查询需求
(9)天眼中怎么判断文件被上传成功了
- 首先可以检索Web访问日志,如果存在对该文件的访问记录,并且响应状态码为200或者500,则基本可以认定文件存在,可以直接上机排查对应文件
(10)如果天眼中告警量特别大应该怎么办
- 首先可以更新规则库,如果告警量还是很大,则可以将记录导出来,然后再进行攻击次数从高到低进行排序,排在前面的放到威胁情报里面看看,或者寻找对应的IP日志,排查是不是攻击,如果是就将IP封掉
(11)天眼设备怎么判断是不是蠕虫,应该怎么处理
- 如何判断:主要是看源IP是不是一直对外请求一些非法站点或者对内网IP是否存在弱口令扫描、缓冲区溢出、ARP攻击、内网Web等攻击,这种蠕虫攻击一般采用一对多,发送大量数据包,容易造成内网广播风暴
- 怎么处理:首先通过防火墙、交换机的访问控制策略,对感染主机的访问数据进行控制,以防止蠕虫对其它网段主机进行感染,对已感染的主机从网络上进行隔离。关闭不必要的服务,对存在漏洞的主机打补丁,安装杀毒软件查杀,完成清除后恢复网络和业务。
(12)安全监控的过程中发现最多的告警类型是什么
- 弱口令攻击、SQL注入、文件上传、命令执行、反序列化
二、分析研判
分析研判属于护网蓝队的中级岗位,需要进一步分析判断流量包是否为攻击,为何种攻击,并执行IP封禁协助溯源等工作,在实际的工作中安全服务/安全运维岗基本也需要会这一块的内容,分析研判大部分内容是分析告警流量特征,学习的内容包括常见的攻击流量特征、攻击工具流量特征、框架及中间件流量特征、Webshell管理工具流量特征等,面试题一般也是问这些流量特征!
1、常见的攻击流量特征
(1)SQL注入流量特征
- SQL语句关键字:select、where、order by、union、update、delete
- 系统函数:user()、@@version、database()
- 特定的数据库函数或者特性:information_schema库(用来获取数据库库名、表名、字段名)、报错注入三大函数(updatexml、extractvalue、floor)
- 编码和转义:URL编码(%27代表单引号...)、十六进制编码(char(39)...)、ASCII编码(0x27...)等、注释语句--或者#或者/**/
- 多个或者错误的SQL语句:在一个请求中插入多条查询语句,或者插入格式错误的查询语句
(2)XSS流量特征
- 请求包中包含各种形式的HTML或者JavaScript标签(如<script>、<img>、<iframe>等)以及弹窗函数(如alert()、confirm()、prompt()),返回包中返回了对应的未被正确过滤的前端脚本语句
(3)RCE流量特征
- 请求头或者URL中可能会有危险的函数:比如PHP中的命令执行函数如system()、exec()、shell_exec()、passthru()函数、文件操作函数如popen()函数、代码执行函数如eval()、assert()函数,Java中的命令执行函数runtime.getruntime.exec函数等
- 流量中包含特殊的字符:比如|、||、&、&&、反单引号、>、>>、<、<<等
- 流量中包含系统命令或敏感文件路径:命令如ls、cat、rm,敏感文件路径如/etc/passwd、/etc/shadow、/var/log等
(4)SSRF流量特征
- URL参数异常:URL参数指向内网地址或者不应该访问的地址,参数值是内网IP或127.0.0.1或者使用了伪协议(file://、ftp://、dict://、gopher://)
- 参数值后面存在特殊的字符或者使用编码绕过:特殊字符比如点号、冒号、空格,编码比如URL编码、Base64编码、16进制编码等隐藏或混淆IP地址或者域名
2、攻击工具流量特征
(1)Cobalt Strike流量特征
- HTTP请求特征:默认使用GET方法向特定URL地址(比如/load、/dpixel、/pixel.gif、/__utm.gif等)发送请求,cookie里面有一个Base64编码的数据
- DNS请求特征:在DNS请求中,域名可能以特定前缀开头(比如cdn、www6、api等),域名的查询结果可能包含非常规IP地址,这些地址被用于指令传输和心跳检测
- 心跳包特征:CS的默认心跳间隔是60秒,每隔60秒发送一次心跳包,用来确认被控端是否在线,当然可以在Beacon会话中执行sleep命令来修改心跳间隔
- 端口特征:CS默认端口为50050,当然这个端口可以通过编辑teamserver文件中的server_port进行修改
(2)Metasploit流量特征
- 端口特征:MSF数据库默认使用的postgresql端口是5432,MSF默认使用的反向连接端口是4444
- 数据包特征:MSF数据包中通常包含“meterpreter”、“revshell”等特殊字符串
- 使用特殊协议:MSF框架通常使用如Meterpreter、Reverse TCP等特殊的协议
(3)sqlmap流量特征
- User-Agent头特征:sqlmap工具在发起请求的时候,默认的User-Agent中通常包含"sqlmap"关键字,比如sqlmap/1.7.5.2#dev (https://sqlmap.org)
- 攻击流程具有顺序和规律:sqlmap的攻击流程通常遵循一定的顺序和规律。比如在使用--os-shell攻击时,它会首先测试链接是否能够访问,接着判断操作系统版本,尝试爆绝对路径,指定上传路径,写入一个php文件,找到上传文件的访问路径,上传另一个php文件并执行命令等
- Payload测试语句模板化:sqlmap使用的payload测试语句往往具有模板特征。比如在盲注入时,它会使用逻辑语句(如and、or)和特定的函数来测试SQL注入的可行性。这些语句在流量中会以特定的模式出现,如尝试让SQL语句报错来发现SQL漏洞,或者使用特定的函数(如@@version_compile_os)来判断操作系统等
3、框架及中间件流量特征
(1)Apache Shiro反序列化漏洞及其流量特征
漏洞原理:
- Apache Shiro框架提供了记住密码的功能(RememberMe),在用户登录成功后会生成经过加密并编码的cookie,在服务端对rememberMe的cookie值,先base64解码然后再AES解密最后再反序列化,最后导致了反序列化RCE漏洞
Shiro550与Shiro721的区别:
- Shiro550:由于AES密钥被泄露(密钥被硬编码),攻击者不需要获取真实的rememberMe字段,可以通过密钥重新构造请求,导致反序列化漏洞的产生
- Shiro721:在该版本中,AES密钥不再是硬编码的了,而是系统随机生成的,但是攻击者还可以利用登录后获取的真实的rememberMe cookie值作为Padding Oracle Attack的前缀,通过构造的cookie值来实现反序列化攻击
Shiro反序列化流量特征:
- 登录失败:返回包中包含rememberMe=deleteMe
- 不勾选记住密码登录成功:返回包中set-Cookie包含rememberMe=deleteMe字段,但是后续请求中Cookie不包含rememberMe字段
- 勾选记住密码登录成功:返回包中set-Cookie包含rememberMe=deleteMe字段以及rememberMe字段,后续请求中Cookie也包含rememberMe字段
(2)Apache Log4j2远程代码执行漏洞及其流量特征
漏洞原理:
- log4j2的lookup功能下的Jndi Lookup模块未对用户输入进行严格判断,请求了恶意资源导致了远程代码执行漏洞
Log4j2远程代码执行漏洞流量特征:
- 数据包中包含{jndi:ldap//}字段、响应体中可能存在命令执行的结果(有回显)、可能存在源IP与DNSlog的外联日志记录(无回显)
(3)fastjson反序列化漏洞及其流量特征
漏洞原理:
- Fastjson在使用autoType功能实例化指定类时会读取@type指定的对象类型到内容,试图把JSON数据反序列化为这个对象,导致攻击者可以通过@type指定比如com.sun.rowset.JdbcRowSetImpl这样的远程命令执行类构造恶意利用链进行攻击
fastjson反序列化流量特征:
- 个人感觉主要特征就是请求包中包含"@type"、"ldap"、"rmi",还有就是Content-Type字段为"application/json"
(4)Apache struts2命令执行漏洞及其流量特征
漏洞原理:
- Apache Struts2框架执行了恶意用户传入的OGNL表达式,造成远程代码执行
struts2命令执行漏洞流量特征:
- 请求参数中包含OGNL表达式,比如"${}"、"%{}",请求包中包含#_memberAcecess,请求参数的值中包含"java.lang.Runtime",该参数值用于执行系统命令
4、Webshell管理工具流量特征
(1)菜刀流量特征
- 默认Webshell连接密码为caidao
- 请求包中User-Agent头为百度或者火狐等爬虫标识
- 请求体中存在eval、base64等特征标识
- 流量参数中包含z0、z1、z2
- 建立连接后会发送特定的验证码,比如"knife"、"dadan"等进行验证
(2)蚁剑流量特征
- 默认的User-Agent头为英文的蚁剑(antsword)
- PHP类型的Webshell流量请求体通常都以@ini_set("display_errors","0");@set_time_limit(0)开头(通常是URL加密)
- 响应体通常会进行base64编码,解码后可以观察到攻击行为的payload
(3)冰蝎2.x/3.x/4.x流量特征
冰蝎2.x:
- 请求体进行了AES加密 + Base64编码,使用的是动态密钥
- 请求时内置了十几个User-Agent头,每次请求时会随机选择其中的一个
- 请求的Cookie的格式通常为: Cookie: PHPSESSID=; path=/;
冰蝎3.x:
- 请求体进行了AES加密 + Base64编码,使用的是固定的连接密钥,AES加密的密钥直接固定为webshell连接密码的MD5哈希值的前16位,默认连接密码是“rebeyond”,因此AES加密的密钥就是“e45e329feb5d925b”
- 请求时内置了十几个User-Agent头,每次请求时会随机选择其中的一个,通信时可能会频繁使用特定的User-Agent,比如"WOW64"等
- 请求包中Content-Length为5740或5720(可能会根据Java版本而改变)
- 每一个请求头中存在Pragme: no-cache,Cache-Control: no-cache
- 可能会频繁访问默认路由,比如"/con"
冰蝎4.x:
- 该版本不再有连接密码这个概念,自定义传输协议的算法就是连接密码,与3.x相同的是默认情况下Webshell都有"e45e329feb5d925b"这个连接密钥
- 请求时内置了十几个User-Agent头,每次请求时会随机选择其中的一个
- 使用了长连接,请求头和响应头中connection头为"keep-alive"
- Content-Type字段通常为"Application/x-www-form-urlencoded"
- 默认情况下有固定的请求头和响应头,请求字节头:dFAXQV1LORcHRQtLRlwMAhwFTAg/M,响应字节头:TxcWR1NNExZAD0ZaAWMIPAZjH1BFBFtHThcJSlUXWEd
(4)哥斯拉流量特征
- Webshell使用了eval函数以及base64编码
- 请求包通常以"pass="开头
- 通常请求包较长,但是响应包长度可能为0
- 默认的User-Agent字段是Java/版本号,但是可以被修改
- 最后一个Cookie值的末尾有一个不必要的分号
- 响应包具有特定的结构特征,结构特征为:md5前十六位+base64+md5后十六位
三、攻击溯源
攻击溯源属于护网蓝队的高级岗位,需要根据攻击者的留下的IP、域名、网站url、攻击样本等信息,定位出攻击者的个人信息,包括攻击者的物理地址、攻击者服务器地址、攻击者姓名、电话、邮箱等信息。攻击溯源分为三大部分:攻击源捕获、溯源反制手段、攻击者画像绘制
1、攻击源捕获
(1)安全设备报警:扫描IP、威胁阻断、病毒木马、入侵事件等
(2)日志以及流量分析:异常的流量、攻击来源与攻击目标等
(3)服务器资源异常:异常的文件、账号、进程、端口、启动项
(4)计划任务和服务等
(5)邮件钓鱼:获取恶意文件样本、钓鱼网站URL等
(6)蜜罐系统:获取攻击者行为、意图的相关信息
2、溯源反制手段
(1)IP定位技术:通过IP定位物理地址-代理IP
(2)ID追踪术:搜索引擎、社交平台、技术论坛、社工库匹配
(3)网站URL:域名whois查询-注册人姓名、地址、电话和邮箱
(4)恶意样本:提取样本特征、用户名、ID、邮箱、C2服务器等信息
(5)社交账号:基于JSONP跨域,获取攻击者的主机信息、浏览器信息、真实IP及社交信息等
3、攻击者画像
(1)攻击路径
- 攻击的目的:拿到权限、窃取数据、获取利益、DDOS等
- 网络代理:国外VPN、代理IP、跳板机、C2服务器等
- 攻击手法:鱼叉邮件钓鱼、Web渗透、水坑攻击、社会工程等
(2)攻击者身份画像
- 虚拟身份:ID、昵称、网名
- 真实身份:姓名、物理位置
- 联系方式:手机号、qq/微信、邮箱
- 组织情况:单位名称、职位信息
4、溯源案例
攻击溯源面试题一般就问你做过溯源没有,怎么做的,接下来我就举一个被fastjson攻击的溯源流程案例:
(1)流量监控与日志分析:通过监控网络流量和审查应用服务器日志,发现了异常的JSON请求,其中包含了不寻常的@type字段和dataSourceName字段
(2)识别攻击特征:分析请求中的@type字段和dataSourceName字段,发现它们指向了一个外部的RMI服务,这是Fastjson漏洞的一个典型特征
(3)IP地址溯源:通过WHOIS以及威胁情报平台等对dataSourceName中的RMI地址进行溯源,确定了攻击者控制的服务器IP地址以及其它信息
(4)漏洞验证与复现:在隔离的环境中复现了攻击,验证了漏洞的存在,并分析了攻击触发的流程
(5)漏洞修复及后续行动:为防止再次被攻击,更新了Fastjson库到最新的安全版本,并禁用了autoType功能。同时根据获取到的IP地址以及其它相关信息进行了报警处理
四、总结
以上就是本文章的全部内容了,由于本人现在也在学习过程中现在可能还不太完善,后续可能还会进行添加或者修改,该文章到时候会同步到微博,也欢迎大家提出修改建议!
我是凯哥,我们下一篇文章再见!
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)