Linux系统漏洞复现分析,Linux环境下常见漏洞利用技术

记得以前在drops写过一篇文章叫 linux常见漏洞利用技术实践 ,现在还可以找得到(https://woo.49.gs/static/drops/binary-6521.html),

不过当时开始学pwn不久,很多理解有偏差.

现在时间过去了一年多,还经常有朋友发私信问我其中的实例程序还在不在,很遗憾我自己也没有了哈:)

前不久要给别人做个这方面的培训,于是写了这个ppt,其中有我自己一些粗浅的理解,在此分享给大家,

在ppt中,基本每一种技术我都附了一个实例及对应的exp.都打包在一起了.

其中引用了一些前辈的内容,感谢他们的分享.

ppt中有我的联系方式,欢迎大家和我交流

1 常见工具的使用

1 IDA

2 gdb

3 peda

4 rp++,ROPGadget

5 pwntools

6 libcdb.com,libc-database

7 系统自带小工具

2 程序的分析步骤

3 常见漏洞类型

1 栈溢出

2 格式化字符串漏洞

3 整数漏洞

4 堆漏洞

1 堆溢出

2 double free

3 UAF

4 其他

4 常见防御技术及绕过方法

1 Canary

2 NX

3 ASLR

4 RELRO

5 PIE

5 一些其他值得注意的地方

. 账号口令 1.1 检查设备密码复杂度策略(高危) 1.2 检查口令最小长度(高危) 1.3 检查是否设置口令更改最小间隔天数(高危) 1.4 检查是否设置口令生存周期(高危) 1.5 检查是否设置口令过期前警告天数(高危) 1.6 检查是否存在空口令账号(高危) 1.7 检查是否设置除root之外UID为0的用户(中危) 二. 认证授权 2.1 检查用户目录缺省访问权限设置(高危) 2.2 检查用户umask设置(中危) 2.3 检查重要文件属性设置(中危) 2.4 检查重要目录或文件权限设置(中危) 2.5 检查是否设置ssh登录前警告Banner(低危) 三. 日志审计 3.1 检查是否对登录进行日志记录(高危) 3.2 检查是否启用cron行为日志功能(低危) 3.3 检查是否配置su命令使用情况记录(低危) 3.4 检查日志文件是否非全局可写(低危) 3.5 检查安全事件日志配置(低危) 3.6 检查是否记录用户对设备的操作(低危) 3.7 检查是否配置远程日志功能(低危) 四. 协议安全 4.1 检查是否禁止root用户远程登录(高危) 4.2 检查是否禁止匿名用户登录FTP(高危) 4.3 检查使用IP协议远程维护的设备是否配置SSH协议,禁用telnet协议(高危) 4.4 检查是否修改snmp默认团体字(中危) 4.5 检查系统openssh安全配置(中危) 4.6 检查是否禁止root用户登录FTP(中危) 五. 其他安全 5.1 检查是否使用PAM认证模块禁止wheel组之外的用户su为root(高危) 5.2 检查是否设置命令行界面超时退出(高危) 5.3 检查是否关闭不必要的服务和端口(高危) 5.4 检查是否关闭系统信任机制(高危) 5.5 检查是否删除了潜在危险文件(高危) 5.6 检查系统core dump设置(中危) 5.7 检查root用户的path环境变量(中危) 5.8 检查系统是否禁用ctrl+alt+del组合键(中危) 5.9 检查密码重复使用次数限制(中危) 5.10 检查是否配置用户所需最小权限(中危) 5.11 检查系统内核参数配置(中危) 5.12 检查FTP用户上传的文件所具有的权限(低危) 5.13 检查/usr/bin/目录下可执行文件的拥有者属性(低危) 5.14 检查是否按用户分配账号(低危) 5.15 检查历史命令设置(低危) 5.16 检查系统磁盘分区使用率(低危) 5.17 检查日志文件权限设置(低危) 5.18 检查是否设置系统引导管理器密码(低危) 5.19 检查是否限制FTP用户登录后能访问的目录(低危) 5.20 检查是否设置ssh成功登录后Banner(低危) 5.21 检查是否使用NTP(网络时间协议)保持时间同步(低危) 5.22 检查是否关闭IP伪装和绑定多IP功能(低危) 5.23 检查是否限制远程登录IP范围(低危) 5.24 检查NFS(网络文件系统)服务配置(低危) 5.25 检查拥有suid和sgid权限的文件(低危) 5.26 检查是否配置定时自动屏幕锁定(适用于具备图形界面的设备)(低危) 5.27 检查是否安装chkrootkit进行系统监测(低危) 5.28 检查是否对系统账号进行登录限制(低危) 5.29 检查是否禁用不必要的系统服务(低危) 5.30 检查别名文件/etc/aliase(或/etc/mail/aliases)配置(低危) 5.31 检查账户认证失败次数限制(低危) 5.32 检查telnet Banner 设置(低危) 5.33 检查FTP Banner设置(低危) 5.34 检查是否关闭数据包转发功能(适用于不做路由功能的系统)(低危) 5.35 检查是否安装OS补丁(低危) 5.36 检查是否按组进行账号管理(低危) 5.37 检查是否删除与设备运行、维护等工作无关的账号(低危)
### 复现Linux内核漏洞的方法 对于特定的Linux内核漏洞复现,通常涉及详细的环境搭建和技术细节。针对CVE-2020-14386这一具体案例,在准备阶段需确保测试平台处于受控环境中[^1]。 #### 准备工作 为了安全起见,建议在一个隔离的虚拟机或专用实验平台上执行这些操作。安装受影响版本的操作系统镜像,并确认其内核版本属于易受攻击范围之内。例如,对于CVE-2020-14386来说,应选择内核版本大于等于4.6的系统作为目标环境。 #### 编写PoC代码 编写概念验证(Proof of Concept, PoC)程序来触发漏洞行为。下面是一个简单的Python脚本片段用于展示如何尝试触发展示CVE-2020-14386漏洞: ```python import socket sock = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.htons(0x0800)) # 构造恶意输入... try: sock.bind(("eth0", 0)) # 绑定网络接口 except Exception as e: print(f"绑定失败: {e}") finally: sock.close() ``` 请注意上述代码仅为示意性质,实际利用过程更为复杂且具有破坏性,不应随意运行于生产环境之外的地方。 #### 执行并观察效果 一旦成功编译和部署了相应的PoC工具,则可以在受限条件下对其进行调试与监控,记录下任何异常现象以及潜在的安全隐患表现形式。然而值得注意的是,真正的漏洞利用往往涉及到更深层次的知识和技术手段,包括但不限于内存布局理解、汇编指令运用等方面的内容。 #### 安全提示 强烈反对未经授权的情况下对他人计算机实施任何形式的渗透测试活动;仅限合法授权下的研究用途才允许开展此类实践探索。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值