变换姿势:从DHCP再挖破壳漏洞利用
破壳漏洞(Shellshock)影响深远,利用起来似乎没那么容易,所以对于破壳漏洞研究利用的新方法会间歇性地出现。众所周知,利用破壳漏洞攻击Web应用程序一直是热门研究对象,并且通过其他层面挖掘破壳的利用同样是有可能的!
破壳漏洞的挖掘其实也可以从其他一些应用层协议实现的,包括邮件传输协议SMTP(Simple Mail Transfer Protocol)、信令控制协议SIP(Session Initiation Protocol)、动态主机设置协议DHCP(Dynamic Host Configuration Protocol)
用DHCP进行一次攻击,首先攻击者必须自己重新配置一个合法的DHCP服务器或者邪恶地捕获一个(Ta首先必须通过其他途径接入互联网),用来发送恶意信息请求响应。
在DHCP客户端和DHCP服务器的一个交互中(比如,一个IP地址请求)会出现如下情况:
客户端向网络发送一个DHCP DISCOVER封包(广播包),当授权的DHCP服务器监听到客户端发送的DHCP DISCOVER广播时,会从未分配的地址范围中选一个一个IP地址,连同其它 TCP/IP 设定,响应给客户端一个 DHCP OFFER封包。如果客户端收到网络上多台 DHCP 服务器的响应,只会挑选其中一个 DHCP offer(通常是最先到达的那个),并且再向网络发送一个DHCP request广播封包,告诉所有 DHCP 服务器它将指定接受哪一台服务器提供的 IP 地址。当 DHCP服务器接收到客户端的 DHCP request之后,会向客户端发出一个DHCP ACKNOWLEDGE响应,以确认IP租约配置的正式生效。
DHCP服务原理
趋势科技安全漏洞研究员Akash Sharda在一篇博文中指出
“除了标准字段,DHCP还提供了可选字段(识别号码),在这种情况下,一些而已的服务器通过可选字段114发送包含恶意指令
的命令”
“运行有BASH漏洞的DHCP服务器接收到恶意字符串会导致任意代码执行!”
在提供的其他字段的也确认了这些信息——服务器主机名字段、或者引导文件名字段,也可以通过一个专门制作的命令字符串来执行恶意代码!
BASH漏洞的攻预防其实是在悄无声息地进行着,本次DHCP利用蜻蜓点水般点到为止,仅供安全研究测试之用,以更好防护企业安全。
[参考信息来源Security,FreeBuf小编[G度]编译,转载请注明来自FreeBuf.COM]
- 小程序的新功能你知道吗
- Mapxtreme之活活气死
- 仿淘宝的交易到计时JS
- 继小程序之后“小游戏”也来了,微信为此再次开启神秘入口
- (Head First 设计模式)学习笔记(3) --装饰者模式(StarBuzz咖啡店实例)
- 我的Js代码-按钮按下时判断是否选择了最后一行,给出提示
- (Head First 设计模式)学习笔记(2) --观察者模式(气象站实例)
- Spring Boot使用HandlerInterceptorAdapter和WebMvcConfigurerAdapter实现原始的登录验证
- 一条视频获C+融资 两个域名神助攻
- ExtJs与WCF交互:生成树
- JavaScript大略
- 加点的心得
- Markdown
- 介绍linux下利用编译bash设置root账号共用的权限审计设置
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 二叉查找树-增删查和针对重复数据处理的 Java 实现
- 手把手教你实现自定义Spring Boot的 Starter
- JVM详解之:本地变量的生命周期
- VBA解析复合文档01——实现的功能
- VBA解压缩ZIP文件09——解压-静态Huffman
- 第5章 流水线数据脱敏-Jenkins系统凭据管理
- 100% 展示 MySQL 语句执行的神器-Optimizer Trace
- Kafka消费者分区分配策略及自定义分配策略
- Java8新特性之日期、时间操作
- Java8新特性之Stream流(基础篇)
- Effective Java(一)
- Effective Java(二)
- Effective Java(三)
- Log4j 入门教程
- Map 和 Map 比较