总字符数: 22.51K
代码: 7.21K, 文本: 8.92K
预计阅读时间: 1.17 小时
渗透
给一个网站的渗透思路
1 | 首先获取书面的授权的前提下,(无授权不上机) |
如何防御SQL注入?预编译一定能防住SQL注入吗
1 | 预编译、ORM框架、最小化权限原则、输入/输出验证 |
SSRF
SSRF不出网无回显怎么利用?
- TemplatesImpl利用连
- C3P0二次序列化 之 hex序列化字节加载器
- Commons-io 写文件/webshell
- 低版本限制< fastjson 1.2.68
- 参考文章:https://xz.aliyun.com/t/12492
- BCEL
- fastjson≤1.2.24
- 参考文章:https://forum.butian.net/share/2040
SSRF 绕过方式
1 | 短地址、特殊字符、编码、进制转换、302重定向、分割、利用@绕过、反斜杠 |
中间件解析漏洞
1 | IIS解析漏洞 |
GetShell
Mysql
show variables like '%secure%';用来查看Mysql是否有读写文件权限;secure_file_priv三种状态 空:可写,固定路径:固定路径内可写,null:不可写
- root权限
- 关闭魔术引号php5.6版本后已经移除
- 网站根目录
secure_file_priv=
MsSql
getshell
- 命令下载文件得到shell
- xp_cmdshell
- 绝对路径写webshell
- sp_oacreate写入webshell
- 差异备份GetShell
- log备份Getshell
参考文章
站库分离不出网
- 落地EXE
- certutil+Powershell配合Burp快速落地文件
- BCP
- sp_makewebtask
- Echo
- Python
- 备份
参考文章:
Redis
redis利用方式
- ssh-key
redis以root用户运行- ssh端口开放并且权限够大
- 定时任务
redis以root用户运行- 了解定时任务常见的目录
- 写入
webshellredis以root用户运行- 网站根目录
- slave 主从复制Rce
Redis 的主从模式中,通过 FULLRESYNC 同步文件到从机上,并加载相同的 .so 文件,可以实现从机上的拓展新命令的执行.
redis主从复制getshell过程:
- 本地编译好外部扩展即so文件
- 把so文件转码存入本地redis数据库
- 到目标服务器上设置主从关系,主服务器指定我们的本地机子
- 待同步后,设置备份路径和备份文件名(xx.so)
- 开始同步,备份数据库
- 然后加载备份数据库
- 然后就可以通过redis执行命令反弹shell了
PHPMyadmin
mysql5.0版本以上会创建日志文件,可以通过修改日志的全局变量getshell.
开启general_log之后把general_log_file的值修改为该网站默认路径下的某一个自定义的php文件中,然后通过log日志进行写入一句话木马,然后再进一步利用.
参考文章:
提权
1 | linux提权: |
权限维持
Linux
- 隐藏踪迹
- 创建隐藏文件
- 修改时间戳
- 文件锁定(赋予特殊权限,不允许更改):
chattr +i shell.el
- 端口复用
- OpenSSH后门万能密码&记录密码
- ssh软链接
- ssh公私密钥
- 后门帐号
- crontab计划任务
Windows
- 粘滞键
- 隐藏文件
- 影子账号
- 启动项/服务后门
- 端口复用
- DLL劫持
- 计划任务
域渗透
基础kerberos
Kerberos是一种网络认证协议,其设计目标是通过密钥系统为客户机/服务器应用程序提供强大的认证服务.该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意地读取、修改和插入数据.在以上情况下,Kerberos作为一种可信任的第三方认证服务,是通过传统的密码技术(如:共享密钥)执行认证服务的.
域认证所参与的角色:
- Client
- Server
- KDC(Key Distribution Center)=DC
KDC:
KDC(Key Distribution Center):密钥分发中心,里面包含两个服务:AS和TGS
- AD (account database):存储所有client的白名单,只有存在于白名单的client才能顺利申请到TGT
- Authentication Service:为client生成TGT的服务
- Ticket Granting Service:为client生成某个服务的ticket(票据)
PS:从物理层面看,AD与KDC均为域控制器(Domain Controller)
专业术语:
| 英文名称 | 中文名称 |
|---|---|
AS(Authentication Server) |
认证服务器 |
KDC(Key Distribution Center) |
密钥分发中心 |
TGT(Ticket Granting Ticket) |
票据授权票据,票据的票据(又称黄金票据)用于身份认证存储在内存,默认有效期为10小时 |
TGS(Ticket Granting Server) |
票据授权服务器(又称白银票据) |
SS(Service Server) |
特定服务提供端的票据(服务票据) |
Kerberoes协议框架
用于 Kerberos KDC(Key Distribution Center)与客户端之间的通信的端口是TCP/UDP 88和TCP/UDP 464.
- TCP/UDP 88 端口:用于 Kerberos 认证服务的通信.KDC 使用 TCP/UDP 88 端口监听客户端的认证请求,并提供身份验证和票据颁发功能.
- TCP/UDP 464 端口:用于 Kerberos KPASSWD 服务的通信.客户端使用 TCP/UDP 464 端口与 KDC 进行密码修改操作.
Kerberoes协议的缺陷
- 它需要中心服务器的持续响应.当
Kerberos服务宕机时,没有人可以连接到服务器 - Kerberos要求参与通信的主机的时钟同步.票据具有一定的有效期
- 所有用户使用的密钥都存储于中心服务器中,危机服务器的安全的行为将危机所有用户的密钥
- 一个危险客户机将危机用户密码
黄金票据,白银票据
1 | kerbose 协议 |
域内委派
待更新
域内用户枚举
Kerberos本身是一种基于身份认证的协议,在Kerberos协议认证的第一阶段AS-REQ,当用户不存在时,返回包提示错误.当用户名存在,密码正确和密码错误时,AS-REP的返回包不一样.所以可以利用这点,对域内进行域用户枚举和密码喷洒攻击.
在AS-REQ阶段客户端向AS发送用户名,AS对用户名进行验证,用户存在和不存在返回的数据包不一样
三种状态的错误代码分别为:
KRB5DC_ERR_PREAUTH_REQUIRED需要额外的预认证(用户存在)KRB5DC_ERR_CLIENT_REVOKED客户端凭证已被吊销(禁用 )KRB5DC_ERR_C_PRINCIPAL_UNKNOWN在Kerberos数据库中找不到客户端(不存在)
当发送一个存在的用户时返回KRB5DC_ERR_PREAUTH_REQUIRED,并携带e-data数据
当用户不存在返回KRB5DC_ERR_C_PRINCIPAL_UNKNOWN,不携带e-data数据
所以,根据AS的返回包来对域用户进行枚举
密码喷洒
在确认用户存在后,客户端又会发送一个AS-REQ请求,如果密码正确,则返回AS-REP.否则返回 KRB5KDC_ERP_PREAUTH_FAILED
参考文章:
横向移动
- psexec
- impacket
- pth
- wmic
- ms17-010
- 弱口令爆破
psexec
PsExec 的工作原理如下:
psexec 是通过ipc$连接admin&的,然后释放二进制文件psexecsvc.exe到目标机器,通过服务管理SCManager远程创建一个psexec的服务,并启动服务.客户端连接执行命令,服务端通过服务启动相应的程序执行命令并回显数据,运行结束后会删除服务
关于在 Windows 日志中能够看到什么,取决于执行的具体命令和操作。通常情况下,PsExec 执行的命令和操作会在以下 Windows 日志中留下相关记录:
- 安全日志(Security Log):记录了与用户身份验证、授权和访问相关的安全事件。可能会包含 PsExec 连接和执行命令的信息。
- 应用程序日志(Application Log):记录了应用程序和服务生成的事件和错误信息。可能会包含 PsExec 执行过程中出现的相关事件和错误。
- 系统日志(System Log):记录了与系统运行状态和硬件、驱动程序等相关的事件。可能会包含与 PsExec 连接和执行过程中的系统级事件。
服务会生成以下
- PsExec 服务执行日志:PsExec 执行命令的服务会生成日志,记录执行过程中的事件、错误和状态信息,以便于后续排查和分析。
- 执行结果输出:根据执行的具体命令,PsExec 可能会生成执行结果的输出。例如,执行一个命令行程序时,该程序的输出可能被捕获并返回给 PsExec 所在的本地计算机。
- 临时文件:当 PsExec 在远程计算机上执行命令时,可能会生成一些临时文件,用于存储命令执行过程中所需的数据或中间结果。这些临时文件可以是脚本文件、配置文件或其他需要的资源文件。
- 日志文件:某些命令的执行可能会生成日志文件,用于记录操作的详细过程、状态或错误信息。这些日志文件可能包含在远程计算机的特定路径下,需要根据具体的命令和目标计算机配置来确定。
psexec和wmic的区别
psexec会记录大量日志,wmic不会记录日志并且更为隐蔽
Java
java内存马
https://blog.csdn.net/weixin_39190897/article/details/137379027
filter
创建恶意的
filter.创建
FilterDef,里面存着filter的基本信息,例如类名.创建
FilterMap,里面是filter与url的绑定信息,换句话说就是访问哪个url时触发这个filter.可以理解成这一步是在更改web.xml文件.通过
StandardContext与FilterDef创建新的FilterConfig并添加到filterConfigs中并与之前声明的filter进行配对.访问刚刚绑定的url即可添加
filter内存马.
servlet
使用
request.getServletContext()函数会得ServletContext,它本质是ApplicationContextFacade类的实例,任何用户都可以使用request.getServletContext()函数获取到ServletContext.ApplicationContextFacade类中封装有ApplicationContext类的私有对象,这个私有对象名为context.ApplicationContext中有StandardContext类的私有对象,名为context.StandardContext类的对象可以动态创建servlet和servlet的映射.综上,任意用户都可以通过反射机制调用
StandardContext类的对象来动态创建servlet和servlet的映射.
listener
- 获取 StandardContext 类对象:首先,需要获取 StandardContext 类的对象.这可能涉及到获取当前正在运行的 Web 应用程序的上下文,或者通过某种方式获取对应的标准上下文对象.
- 创建恶意 Listener:在获得 StandardContext 对象后,您需要编写一个恶意的 Listener,并将其实现逻辑放在该 Listener 的
requestInitialized()方法中.这个方法会在每次请求初始化时被调用,因此适合用来执行恶意代码. - 将恶意 Listener 添加到 StandardContext 中:使用 StandardContext 类的
addApplicationEventListener()方法,将恶意的 Listener 添加到标准上下文中.通过调用该方法并传递恶意 Listener 对象作为参数,可以将监听器注册到应用程序上下文中.
agent
在 jdk 1.5 之后引入了 java.lang.instrument 包,该包提供了检测 java 程序的 Api,比如用于监控、收集性能信息、诊断问题,通过 java.lang.instrument 实现的工具我们称之为 Java Agent ,Java Agent 能够在不影响正常编译的情况下来修改字节码,即动态修改已加载或者未加载的类,包括类的属性、方法
Agent 内存马的实现就是利用了这一特性使其动态修改特定类的特定方法,将我们的恶意方法添加进去
说白了 Java Agent 只是一个 Java 类而已,只不过普通的 Java 类是以 main 函数作为入口点的,Java Agent 的入口点则是 premain 和 agentmain
Java Agent 支持两种方式进行加载:
实现 premain 方法,在启动时进行加载 (该特性在 jdk 1.5 之后才有)
实现 agentmain 方法,在启动后进行加载 (该特性在 jdk 1.6 之后才有)
查杀
- 关机
- 重启服务器/服务
- WEB.XML
内存马查杀工具的原理是通过扫描和分析进程的内存空间,检测恶意代码或行为的痕迹,从而确定是否存在内存马(Memory-based Malware)的存在
- 内存扫描:内存马查杀工具会扫描系统中正在运行的进程的内存空间.它会遍历每个进程的内存页,并对其中的二进制数据进行分析.
- 特征码匹配:查杀工具使用特征码(Signature)来匹配已知的恶意代码或行为.这些特征码是经过研究和分析的指纹,用于识别特定的恶意软件.
- 行为分析:除了匹配特征码外,内存马查杀工具还可以进行行为分析.它会检测进程的行为模式,例如修改系统关键文件、劫持系统调用等,以确定是否存在恶意活动.
- 异常检测:内存马查杀工具也会检测与正常进程行为不符的异常情况.例如,检测隐藏的进程、非法代码注入等,以发现潜在的内存马.
- 检测报告:当查杀工具发现可疑的内存马迹象时,它会生成相应的检测报告.这个报告通常包括发现的恶意代码、进程名、文件路径等相关信息.
JAVA反序列化以及组件
序列化:将内存中的某个对象压缩成字节流的形式
JAVA原生反序列化漏洞成因
Java中间件通常通过网络接收客户端发送的序列化数据,而在服务端对序列化数据进行反序列化时,会调用被序列化对象的readObject()方法.
而在Java中如果重写了某个类的方法,就会优先调用经过修改后的方法.如果某个对象重写了readObject()方法,且在方法中能够执行任意代码,那服务端在进行反序列化时,也会执行相应代码
防御方式:用tranisent关键字来标记不希望被序列化的字段
shiro反序列化原理
反序列化过程中所用到的AES加密的key是硬编码在源码中,当用户勾选RememberMe并登录成功,Shiro会将用户的cookie值序列化,AES加密,接着base64编码后存储在cookie的rememberMe字段中,服务端收到登录请求后,会对rememberMe的cookie值进行base64解码,接着进行AES解密,然后反序列化.由于AES加密是对称式加密(key既能加密数据也能解密数据),所以当攻击者知道了AES key后,就能够构造恶意的rememberMe cookie值从而触发反序列化漏洞
1 | 登陆失败时候会返回rememberMe=deleteMe字段或者使用shiroscan被动扫描去发现这里我简述了,可以讲完整一点1.未登陆的情况下,请求包的cookie中没有rememberMe字段,返回包set-Cookie里也没有 deleteme字段2.登陆失败的话,不管勾选RememberMe字段没有,返回包都会有rememberMe=deleteme字段3.不勾选RememberMe字段,登陆成功在返回包set-Cookie会有rememberMe=deleteMe字段,但是之后的所有请求中Cookie都不会有rememberMe字段4.勾选RememberMe字段,登陆成功的话,返回包set- Cookie会有rememberMe=deletee字段,还会有rememberMe字段,之后的所有请求中Cookie都会有 rememberMe字段 |
shiro有几种漏洞类型
shiro 550, shiro 721
550是远程代码执行漏洞,721是访问控制漏洞,也被称之为session访问控制绕过漏洞
Weblogic 反序列化原理
利用Apache Commons Collections 实现远程代码执行
特殊的接口,接口的类(Invoker Transformer)通过调用Java反射机制,调用任意函数,实现响应的功能
Weblogic反序列化漏洞的几个利用阶段
- 直接通过T3协议发送恶意反序列化对象(CVE-2015-4582、CVE-2016-0638、CVE-2016-3510、CVE-2020-2555、CVE-2020-2883)
- 利用T3协议配合RMP或ND接口反向发送反序列化数据(CVE2017-3248、CVE2018-2628、CVE2018-2893、CVE2018-3245、CVE-2018-3191、CVE-2020-14644、CVE-2020-14645)还有利用IIOP协议的CVE-2020-2551
- 通过 javabean XML方式发送反序列化数据.(CVE2017-3506->CVE-2017-10271->CVE2019-2725->CVE-2019-2729)
Log4j2 反序列化原因
该漏洞主要是由于日志在打印时当遇到 ${后,以:号作分割,将表达式内容分割成两部分,前面一部分prefix,后面部分作为key,然后通过prefix去找对应的1ookup,通过对应的1ookup实例调用1ookup方法,最后将key作为参数带入执行,引发远程代码执行漏洞
核心原理为,在正常的1og处理过程中对**${**这两个紧邻的字符做了检测,一旦匹配到类似于表达式结构的字符串就会触发替换机制,将表达式的内容替换表达式解析后的内容,而不是表达式本身,从而导致攻击者构造符合要求的表达式供系统执行
日志在打印时当遇到${后,Interpolator类以:号作分割,将表达式内容分割成两部分, 前面部分作为 prefix,后面部分作为 key。然后通过prefix去找对应的 1ookup,通过对应的1ookup实例调用1ookup方法,最后将key作参数带入执行
漏洞原因是因为调用SimpleSocketServer.main开启一个端口,进行接受数据,进行反序列化操作.
根据官方描述作用是把接受到的LoggingEvent作为本地的日志记录事件,再使用在服务器端配置的Log4J环境来记录日志.默认可能会开启在4560端口中.
Fastjson反序列化原理——-不具体
Fastjson使用parseObject()/parse()进行反序列化的时候可以指定类型.如果指定的类型太大,包含太多子类,就有利用空间了.例如,如果指定类型为Object或JSONObject,则可以反序列化出来任意类.例如代码写Object o = JSON.parseObject(poc,Object.class)就可以反序列化出Object类或其任意子类,而Object又是任意类的父类,所以就可以反序列化出所有类.
判断版本号的方法
- 显错判断
- DNS请求判断
- TCP、UDP端口请求判断
- 延迟判断
参考文章:https://mp.weixin.qq.com/s/5mO1L5o8j_m6RYM6nO-pAA
1.x RCE
@type
fastjson不出网怎么打
当fastjson根据json数据对TemplatesImpl类进行反序列化时,会调用TemplatesImpl类的getOutputProperties方法触发利用链加载_bytecodes属性中的TempletaPoc类字节码并实例化,执行RCE代码
Jboss 反序列化原理
过滤器在没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致了漏洞.
docker逃逸
- 特权模式逃逸
- docker.sock挂载逃逸
- Remote API未授权访问
- 容器服务缺陷逃逸
- 脏牛漏洞逃逸
参考文章:
k8s攻击面
攻击K8S组件
攻击节点对外服务
攻击业务 pod
容器逃逸
横向攻击
攻击 K8S 管理平台
攻击镜像库
攻击第三方组件
参考文章:
https://www.freebuf.com/articles/network/342587.html
https://www.freebuf.com/articles/web/343209.html
Java/PHP代码审计流程
反向查找
反向查找流程
- 通过可控变量(输入点)回溯危险函数
- 查找危险函数确定可控变量
- 传递的过程中触发漏洞
反向查找流程特点
上下文无关
危险函数,导致漏洞
使用反向查找流程挖掘漏洞
- 危险函数全局查找
- 自动化审计工具
正向查找
正向查找流程
- 从入口点函数触发
- 找到控制器,理解URL派发规则
- 跟踪控制器调用,以理解代码为目标进行源码阅读
- 阅读代码的过程中,可能发现漏洞
正向查找特点
- 程序员疏忽或逻辑问题导致漏洞
- 需要极其了解目标源码的功能与架构
- 跳跃性大:涉及MVC/Service/Dao等多个层面
- 通常是多个漏洞的组合,很可能存在逻辑相关的漏洞
双向查找流程
双向流程特点
- 理解程序执行过程,找寻危险逻辑
- 需要同时掌握正向,反向挖掘技巧及特点
管理与保护
发现系统漏洞后,你的应急响应流程是什么
隔离受影响系统→评估漏洞危害→修补或临时缓解→通知相关方→记录事件并复盘。
实际项目:Windows域内10台主机,有一台主机(安全设备中:FRP流量回连)
- 确定失真性:在别人传递消息的过程中,信息很可能会产生一定的失真.确保在传递消息时采取合适的沟通方式,并尽量减少信息失真的可能性.
- 保护现场环境:如果需要保存木马样本,可以使用微步在线分析木马样本,并向客户展示分析结果.这样可以帮助客户更好地了解木马的行为和威胁程度.
- 询问业务系统重要性:在发现安全问题时,首先要确认业务系统的重要性.如果允许断网,那么优先断网以防止进一步的攻击.如果不能断网,可以考虑进行逻辑隔离或物理隔离,并将当前机器的IP加入黑名单.同时,关闭其他安全机器上的危险端口,并修改密码以增强安全性.
- 排查已经连进来的情况:根据时间线排查Windows日志或联动安全设备日志,以确定入侵时间.通过这些记录告知客户入侵发生的具体时间.
- 排查服务器日志和Web日志:仔细检查服务器日志和Web日志,寻找可疑的活动和异常访问.这有助于确定安全事件的来源和影响范围.
- 在分析过程中,及时截图并产出报告.根据需求,可以采取一些防御措施,如终止可疑进程、修改密码和加强服务器的安全加固等措施,以减少潜在风险和进一步的攻击.
Windows事件ID
1 | 事件ID |
Linux应急响应
1 | 1. 查看是否有弱口令 是否有敏感端口对外开放 |
Webshell特征
菜刀webshell流量分析
- “eval”,eval函数用于执行传递的攻击payload,这是必不可少的;
(base64_decode($_POST[action])),(base64_decode($_POST[action]))将攻击payload进行Base64解码,因为菜刀默认是将攻击载荷使用Base64编码,以避免被检测;&z1=Yzpcd3d3cm9vdFwxOTIuMTY4LjIzMi4xMzA=,该部分是传递攻击payload,此参数z1对应$_POST[z1]接收到的数据,该参数值是使用Base64编码的,所以可以利用base64解码可以看到攻击明文
冰蝎v2
- 当冰蝎第一次访问服务器webshell时,以GET方式提交随机数字,因此服务器将会生成16位的随机字符串,写入session后通过print函数将密钥返回客户端
- 冰蝎第二次访问服务器时以相同方式更新密钥
- 经过一次密钥产生与一次密钥更新后,双方开始以对称密钥进行加密通信,首先是冰蝎向服务器发送加密数据,而解密函数在webshell中
冰蝎v3
3.0 相比 2.0 少了动态密钥的获取的请求
aes密钥变为md5("pass")[0:16]意思为连接密码32位md5的前16位.
全程不再交互密钥生成,一共就俩次请求,
- 第一次请求为判断是否可以建立连接,少了俩次
get获取冰蝎动态密钥的行为, - 第二次发送
phpinfo等代码执行,获取网站的信息
冰蝎 V4
- 客户端把待执行命令作为输入,利用
AES算法或XOR运算进行加密,并发送至服务端; - 服务端接受密文后进行
AES或XOR运算解密,执行相应的命令; - 执行结果通过
AES加密后返回给攻击者.
哥斯拉
将加密数据与密钥按位异或,即可加密(解密)得到加密数据(原始数据)
如何在企业中防护 SSRF 和 CSRF 这类攻击?
SSRF(服务器端请求伪造)和 CSRF(跨站请求伪造)的防护需结合网络、系统、应用多层防御策略,核心是“最小权限原则”和“输入验证”。
网络层防护
- 访问控制:通过防火墙/IPS限制服务器对外网的访问协议(如仅允许 HTTPS),禁止访问内网资源(如 192.168.x.x)。
- 流量监控:部署 IDS 规则检测异常内网探测行为(如高频请求 127.0.0.1)。
应用层防护
- SSRF 防御:
- 对用户输入的 URL 进行白名单校验,禁止解析内网地址。
- 使用代理服务统一处理外部请求,隔离业务逻辑与网络访问。
- CSRF 防御:
- 强制使用 Anti-CSRF Token(如 OAuth2 的 state 参数),确保请求来源可信。
- 设置 Cookie 的
SameSite=Strict和HttpOnly属性,防止跨站请求携带会话凭证。
- SSRF 防御:
管理策略
- 开发规范:在代码审计中强制检查 SSRF/CSRF 漏洞(如 OWASP Top 10 标准)。
- 渗透测试:定期模拟攻击验证防护效果,例如通过 Burp Suite 测试 CSRF Token 生效性。
如何对 Linux/Windows 服务器进行安全加固?请举例说明
服务器加固需遵循“最小化原则”,从系统配置、权限管控、漏洞修复三方面入手,结合等级保护要求
系统配置基线
- Linux:
- 关闭非必要服务(如 Telnet、FTP),禁用 root 远程登录。
- 配置防火墙(如 iptables)仅开放业务端口(如 80/443)。
- Windows:
- 启用防火墙并限制入站规则,关闭 SMBv1 等高危协议。
- 通过组策略(GPO)禁用默认共享(如 C$、Admin$)。
- Linux:
权限与审计
- 最小权限分配:
- Linux:设置 SUID/SGID 文件权限为 600,限制普通用户提权。
- Windows:禁用 Guest 账户,限制管理员组成员数量。
- 日志审计:
- Linux:启用 auditd 监控关键目录(如 /etc/passwd)。
- Windows:配置事件查看器记录登录失败、策略变更事件。
- 最小权限分配:
漏洞与补丁管理
- 定期扫描漏洞(如 Nessus、OpenVAS),通过自动化工具(如 Ansible、WSUS)批量修复补丁。
如何看待 Windows 更新策略?如何确保补丁及时性又不影响业务稳定?
Windows 更新需平衡“及时性”与“业务连续性”,核心是分阶段验证和自动化管理。**
策略设计
- 分层更新:
- 测试环境优先更新,验证补丁兼容性(如是否导致业务系统崩溃)。
- 生产环境分批次灰度发布,优先更新高风险主机(如互联网暴露面)。
- 回滚机制:保留旧版本镜像,确保补丁失败时快速回退。
- 分层更新:
技术保障
- 自动化工具:
- 使用 SCCM 或 WSUS 统一推送补丁,设置更新窗口(如业务低峰期)。
- 通过 PowerShell 脚本监控补丁状态(如
Get-HotFix)。
- 自动化工具:
风险控制
- 补丁优先级评估:根据 CVSS 分数分类处理(如 9.0 以上漏洞 24 小时内修复)。
- 与业务部门联动:提前沟通更新计划,避免关键业务时段中断。
服务器被入侵后的应急响应流程是什么?
应急响应需遵循“黄金一小时”原则,流程分为隔离、溯源、处置、复盘四阶段。
隔离与止损
溯源分析
- 日志排查
- 恶意行为识别:
处置与恢复
- 清除后门(如删除恶意启动项、修复被篡改文件)。
- 重置所有凭证(包括数据库、中间件密码)。
复盘与改进
- 输出报告:明确攻击路径(如 Struts2 漏洞利用)、影响范围。
- 优化措施:加强 WAF 规则、部署 EDR(端点检测与响应)工具。
信息系统安全等级保护(等保2.0)包含哪些测评要素
核心是“一个中心,三重防护”,覆盖技术和管理双维度。
技术层面
- 物理安全:机房防水、防盗、UPS 供电。
- 网络安全:边界防护(防火墙)、访问控制(ACL)、入侵检测(IDS)。
- 应用安全:身份认证(双因子)、代码审计、日志完整性保护。
- 数据安全:加密存储(如 AES-256)、备份与恢复机制。
管理层面
- 安全制度:制定《网络安全管理办法》《应急响应预案》。
- 人员管理:签署保密协议、定期安全意识培训(如钓鱼邮件测试)。
- 运维管理:变更审批流程、第三方访问审计。
如何设计“监测-防御-溯源-处置”一体化防守方案?
**一体化防守需构建“闭环安全体系”,覆盖全生命周期威胁治理。
监测层
- 多源数据采集:整合流量(NetFlow)、日志(SIEM)、威胁情报(如 VirusTotal)。
- 异常检测:通过 UEBA(用户行为分析)识别非常规操作(如深夜登录数据库)。
防御层
- 纵深防护:
- 网络层:下一代防火墙(NGFW)拦截恶意流量。
- 主机层:EDR 实时阻断可疑进程(如 Mimikatz 内存读取)。
- 零信任架构:强制所有访问请求经过 MFA 认证,动态调整权限。
- 纵深防护:
溯源层
- 日志归档:集中存储 180 天以上日志,支持全流量回溯(如通过 Splunk 分析 APT 攻击链)。
- 情报联动:对接威胁情报平台(TIP),自动阻断恶意 IP/C2 域名。
处置层
- 自动化编排:通过 SOAR(安全编排自动化响应)工具自动隔离主机、封禁账号。
- 复盘机制:每次事件后更新检测规则和防御策略(如新增 YARA 规则)。
客户反馈核心系统遭勒索病毒攻击,如何第一时间处理?
勒索病毒应急需快速遏制扩散,优先保障业务连续性,流程如下:
紧急响应
- 隔离感染设备:物理断网或通过交换机 ACL 阻断横向传播(如 SMB 协议)。
- 保留证据:备份加密文件、勒索信、内存镜像供取证分析。
影响评估
- 数据恢复能力验证:检查离线备份是否完整(如 air-gapped 存储)。
- 横向扩散排查:扫描域控日志(如 Kerberos 票据请求异常)。
处置与恢复
- 清除威胁:杀掉恶意进程、删除启动项、修复组策略。
- 业务恢复:优先恢复关键系统(如数据库),监控是否二次加密。
后续改进
- 根因分析:确认攻击入口(如未打补丁的 RDP 漏洞)。
- 防御强化:部署邮件沙箱过滤钓鱼附件、启用文件服务器版本快照功能。
邮件服务器安全加固的优化措施及效果
邮件服务器加固需围绕“防泄露、防钓鱼、防投递失败”三大目标,措施如下:
风险评估与整改
- 漏洞扫描:检测未修复的漏洞(如 Exchange ProxyLogon)。
- 协议升级:禁用 SSLv3/TLS1.0,强制使用 STARTTLS 加密传输。
访问控制
- 最小权限原则:限制发信频率(如单用户每小时 100 封),禁用匿名中继。
- 多因素认证:强制管理员登录需短信/动态令牌验证。
内容防护
- 反钓鱼措施:部署 DKIM/SPF/DMA 记录防止邮件伪造。
- 沙箱检测:对附件进行静态分析(如宏代码检测)和动态沙箱运行。
效果验证
- 钓鱼测试:模拟钓鱼邮件,员工点击率从 20% 降至 3%。
- 日志审计:成功拦截 90%+ 的垃圾邮件和恶意附件。
如何设计企业网络安全培训方案?
定期模拟钓鱼攻击、讲解最新威胁案例、制定密码管理规范、组织红蓝对抗演练。
零信任架构的核心原则是什么?
“永不信任,持续验证”,包括微隔离、动态访问控制、设备健康检查、最小权限分配。