您当前位置: 首页 » CVE分析 » CVE-2014-4877 wget ftp下载文件夹链接欺骗漏洞分析

CVE-2014-4877 wget ftp下载文件夹链接欺骗漏洞分析

2014年10月30日 |

漏洞原理
  wget ftp下载符号链接文件时(没开启retr-symlinks 选项),会在本身系统创建一个符号链接,当伪造一个ftp 数据
包中有的文件夹符号链接和一个同名文件夹并且真实文件夹中有子文件时,wget递归下载时会把子文件下载到本地
文件夹符号链接指向的地址。攻击者通过伪造ftp数据流可在目标任意目录中创建文件、文件夹、连接符号,甚至设
置权限、时间等属性。当wget ftp客户端
发送 LIST 指令时,返回如下数据:

lrwxrwxrwx 1 root root 33 Oct 11 2013 fakedir -> /tmp
drwxrwxr-x 15 root root 4096 Oct 11 2013 fakedir


文件 wget-1.12\src\ftp.c 文件 1761 行

  1.   if (!opt.retr_symlinks) //判断是否开启retr-symlinks 选项  
  2.             {  
  3.             …  
  4.             {  
  5. #ifdef HAVE_SYMLINK  
  6.               if (!f->linkto)  
  7.                 logputs (LOG_NOTQUIET,  
  8.                          _(“Invalid name of the symlink, skipping.\n”));  
  9.               else  
  10.                 {  
  11.                 …….  
  12.             if (symlink (f->linkto, con->target) == -1) // 本地建立文件符号链接  
  13.                     logprintf (LOG_NOTQUIET, “symlink: %s\n”, strerror (errno));  
  14.                   logputs (LOG_VERBOSE, “\n”);  
  15.                 } /* have f->linkto */  
  16. #else  /* not HAVE_SYMLINK */  

如上代码,wget 会通过symlink 在本地创建链接文件,指向数据包中链接的地址。当使用 -m/–mirror/-r
选项时,递归去获取同名文件夹 fakedir 里面的文件,由于本地的fakedir 文件为符号链接,所以ftp 服务器
中的同名fakedir 文件夹子层下面的都会被下载到链接文件指向的地址。
wget 发送cwd 指令进入fakedir 在发送 LIST 指令。此时可以伪造一个恶意文件或者目录比如:

-rwx------ 1 root root 21 Aug 29 2013 pwned

wget RETR 指令下载pwned 文件,返回文件内容(二进制或者文本)即可。如以下Python代码:

  1. f = open(“1.txt”“r”)  
  2. data = f.read(8192)  
  3. f.close()  
  4. self.data_fd.send(data)  
  5. self.data_fd.close()  
  6. self.data_fd = 0  
  7. self.message(226, “ok”)  

漏洞利用
1:Metasploit wget_symlink_file_write 模块
https://github.com/hmoore-r7/metasploit-framework/blob/R7-2014-15-wget/modules/auxiliary/server/wget_symlink_file_write.rb

2:Python socket 版 wget-symlink_attack_exploit.py
https://github.com/yaseng/pentest/blob/master/exploit/wget-symlink_attack_exploit.py

漏洞演示
运行 wget-symlink_attack_exploit.py
wget -m ftp://127.0.0.1
效果如下图
wget-1

分类:

CVE分析

| 标签:

评论关闭。