千家信息网

怎么用LES对Linux进行渗透测试

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章给大家分享的是有关怎么用LES对Linux进行渗透测试的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。工具介绍为了完成渗透测试任务并兼容不同Linux发行版系统,LE
千家信息网最后更新 2026年11月03日怎么用LES对Linux进行渗透测试

这篇文章给大家分享的是有关怎么用LES对Linux进行渗透测试的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

工具介绍

为了完成渗透测试任务并兼容不同Linux发行版系统,LES使用了大量的启发式方法来实现其主要功能,同时为给定的Linux设备生成候选漏洞列表,以最大程度地降低假阳性以及误报率。此外,出于工具实用性以及维护便利性开率,该工具还实现了以下特性:

1、子系统标记,针对目前大部分流行的Linux发行版,其中包括Debian、Ubuntu、RHEL/CentOS。

2、用户空间分析子系统,完全支持基于deb和rpm的发行版系统,部分支持其他发行版。

在LES的早期版本中,LES只会处理内核版本,这种方式完全跳过了发行版版本的问题,大部分主要处理功能都通过Linux_Exploit_Suggester脚本来实现。但是这种方式并不是非常有效,因为容易出现误报的问题,从而产生大量需要手动分析的漏洞。

随着时间的推移,LES也得到了改进,并通过生成候选漏洞列表的方式来解决之前的问题:

1、 基于内核版本生成初始漏洞列表;

2、 检查每个漏洞的"标签"命中率;

3、 基于"附加检查"舍弃不适用的漏洞利用;

4、 计算每个候选漏洞的内部度量("等级"),并根据计算对列表排序。

接下来,我们将一一进行讨论。

基于内核版本生成初始漏洞列表

这是减少给定设备候选漏洞攻击数量的第一步。LES会解析uname命令的输出结果,并获取准确的内核版本信息,然后再跟漏洞利用代码中定义的版本信息进行对比。例如:Reqs: pkg=linux-kernel,ver>=4.4,ver<=4.13,...

检测标签匹配

为了降低假阳性,并进一步减少候选漏洞数量,提升目标系统的适用性,LES还引入了"标签"的概念。标签是描述内核版本的简单语句,并标明给定的漏洞可以适用于这些系统版本,语句主要由正则表达式组成。例如:Tags: RHEL=6,RHEL=7{kernel:3.10.0-514.21.2|3.10.0-514.26.1}。"标签"并不会舍弃候选漏洞列表中的实体数量,而是将更加适用的对象"往前放"。

舍弃不适用的漏洞

为了进一步优化候选漏洞列表,LES还引入了额外的参数要求(Reqs域)。在向LES中添加漏洞利用实体时,我们可以定义下列条件:

Reqs:pkg=linux-kernel,ver>=3.2,ver<=4.10.6,CONFIG_USER_NS=y, \sysctl:kernel.unprivileged_userns_clone==1

上述条件表明内核版本必须>3.2并且<=4.10.6,而且内核的用户命名空间功能还必须以CONFIG_USER_NS=y进行编译,并启动该功能(sysctl:kernel.unprivileged_userns_clone==1)。

对于不常用的检测情况,LES还提供了运行任意BASH命令的功能,以便研究人员查看漏洞是否适用于给定系统。例如:

Reqs:pkg=linux-kernel,ver>=4.4.0,ver<=4.4.0,cmd:grep -qi ip_tables/proc/modules

在上述场景中,命令"grep -qi ip_tables /proc/modules"主要用来判断ip_tables模块是否已加载,并根据命令返回值(TRUE或FALSE)来判断漏洞是否适用于该系统。

基于排名动态生成的漏洞排序列表

最后,LES会根据动态计算的等级(Rank)结果对列表中的现有漏洞及西宁排序,等级越高则在列表中的位置越靠前,也就是漏洞适用于给定系统的概率会越高。

Rank计算基于下列规则:

1、 针对普通漏洞的初始rank为1。

2、 针对优秀漏洞的初始rank为5,例如dirtycow和eBPF_verifier等等。

3、 针对较差漏洞的初始rank为0,例如不稳定的或不适用的漏洞。

4、 如果待测Linux发行版系统版本匹配其中一个标签,则Rank加2。

5、 如果待测Linux发行版系统版本正则表达式匹配其中一个标签,则Rank加5。

例如,LES针对dirtycow漏洞利用的Rank计算方式如下,运行版本为Ubuntu 16.04,内核版本为4.4.0-21-generic:

Inital rank: 5Distribution version match: +2 to rankkernel version regex match: +5 to rankfinal rank: 12

功能介绍

接下来,我们一起看看如何使用LES吧!

基本使用场景下,所有的步骤都会按顺序执行来生成候选漏洞列表:

$./les.sh

--cvelist-file选项可以用来设置完整的CVE列表,如果目标系统受其中漏洞影响的话,LES将会用其进行测试,列表可以通过https://api-ksplice.oracle.com/api/1/update-list/生成:

$./les.sh --cvelist-file 

在红队研究的过程中,我们还可以"间接"运行LES来对目标(例如HIDS)执行更加严格的监控:

victim-host$dpkg -l > pkgsListing.txtpentester-host$./les.sh --uname "" --pkglist-filepkgsListing.txt

在对目标设备进行漏洞利用测试之前,我们通常还需要检查目标内核是否使用了其他加固措施:

$./les.sh --checksec

工具快速下载

wget https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh-O les.sh

感谢各位的阅读!关于"怎么用LES对Linux进行渗透测试"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

漏洞 版本 系统 内核 标签 发行 生成 功能 测试 目标 命令 工具 方式 数量 等级 设备 问题 排序 检查 运行 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 哈尔滨大商圈互联网科技有限公司 科技互联网技术 互联网科技股票 深圳齐家互联网科技 银优互联网科技有限公司 科技互联网公司logo 互联网科技类展会 阿里互联网科技公司 杭州壁岐互联网科技有限公司 深圳育鹏互联网科技有限公司招聘 浙南科技城互联网大厦建设工程 华中科技大学互联网的牛人 领航科技大厦互联网公司 富国互联网金融科技混合基金 互联网科技包装股份有限公司上市 互联网科技职业技能培训学校 科技互联网公司两年变化 现代科技的标志之一的互联网 互联网科技企业文化 株洲百竞科技的互联网营销顾问 A股互联网金融科技公司 互联网科技未来 艾特科技互联网 互联网科技论坛 北京大学互联网科技怎么样 西安小鹰速贷互联网科技有限公司 科技大学互联网 互联网科技如何创业 普陀区互联网教育科技管理办法 现代科技的标志之一的互联网
0