Advisory Name: ZBServer crash
Advisory Released: [00/02/01]
Application: personal web, ftp and gopher servers
on Win9x, WinNT
Severity: local/remote user with WebServer
privileges can run arbitrary code.
Status: overflow discovered by USSRBACK
http://www.ussrback.com Author: izan@galaxycorp.com
WWW: http://www.deepzone.org http://mareasvivas.cjb.net
OVERVIEW
ZBServer PRO 1.50 (all releases) has a buffer overflow in web
server. Any local/remote user can run arbitrary code with web
server privileges. Overflow was discovered by USSRBACK few weeks
ago. The original USSRBACK post didn't contain any technical
detail. The present document is a deep study about that advisory.
It studies bug impact too.
BACKGROUND
Ideas and code were tested against Win9x and NT 4.0 sp 5 (all
spanish version). The ZBServer PRO software is 1.50. All releases
are affected (r13 to r17)
DETAILS
ZBServer PRO's WebServer has an overflow in "get command". It
can't handle a long excesive request. When the string has a lenght
about 766 bytes it crashs. The stack is overwritten.
The vulnerability exists. USSRBACK' status (bof discovers) was
originally:
"Vendor Status: i email the vendor, and i dont have a responce :("
We have exploited and finished our exploit for WinNT and it's
attached with this advisory. Arbitrary code can run with
webserver privileges.
Win9x version can't be exploitable with a clear environment. If
you have a default debugger configuration or your processes are
handled by a special process hooking errors and exceptions then
it can be exploited too but it won't be the common scenary.
Win9x version can't run arbitrary code with a clear environment
but a DoS attack is possible. You can crash the service with a
local/remote request.
EXPLOIT
ZBServer PRO 1.50-r1x exploit gets remote servers's full control.
When you attacks a vulnerable server you can run abitrary code
inside. Firstly, sploit creates an advisory file. It's information
for administrative use. Later, exploit restores and kills
overflowed thread but before it patchs some error information so
all error pages will appear like hacked pages.
If you have problems running ZBServer they can be with your return
address (remember that tests ran against WinNT sp5 spanish version).
I could jump against edi register + 5 (more portable) but i will
have a static dll address dependence. Well, it wasn't a clear jump
so i decided to implement the first technique but the second is
possible too.
/** slzbserv.c - local/remote exploit for ZBServer PRO 1.50-r1x (WinNT)
**
** ZBServer PRO 1.50-r1x exploit gets remote servers's full control.
** When you attacks a vulnerable server you can run abitrary code
** inside. Firstly, sploit creates an advisory file. It's information
** for administrative use. Later, exploit restores and kills
** overflowed thread but before it patchs some error information so
** all error pages will appear like hacked pages.
**
** Compile on Debian with kernel 2.2.12: gcc -o slzbserv slzbserv.c
** run: ./slzbserv hostname
**
** http://mareasvivas.cjb.net / http://www.deepzone.org **
** Coded by |Zan | izan@galaxycorp.com
**
**/