15
Ian
08

Czone Linux Connect Script

Oameni buni din lumea larga (si cartierele Crangasi si Militari), iata sursa completa a scriptului de conectare la internet folosit de CZone. ( acces.czone.ro )

Nu pare sa existe o licenta deci putem sa il licentiem sub WTFPL ( Do What The Fuck You Want To Public License ).


<?php
/*********************/
/*                   */
/*  Version : 5.1.0  */
/*  Author  : RM     */
/*  Comment : 071223 */
/*                   */
/*********************/

function get_result( $link )
{
$fp = fsockopen( "ssl://acces.czone.ro", 443, $errno, $errstr, $timeout = 5 );
if ( !$fp )
{
echo $errstr." ({$errno})\n";
}
else
{
fputs( $fp, "GET ".$link." HTTP/1.1\r\n" );
fputs( $fp, "Host:acces.czone.ro \r\n" );
fputs( $fp, "Connection: close\r\n\r\n" );
$response = "";
while ( !feof( $fp ) )
{
$response .= fgets( $fp, 4096 );
}
fclose( $fp );
}
return $response;
}

function encode( $str )
{
$key = "f52412c4ff1dacd2111f4951f3db1260";
$iv = "0e32f4c96203f892";
$encryptedcbc = base64_encode( base64_encode( mcrypt_cbc( MCRYPT_RIJNDAEL_128, $key, $str, MCRYPT_ENCRYPT, $iv ) ) );
return "/czone/c-zone.php?Data=".$encryptedcbc;
}

error_reporting( 0 );
$os = substr( php_uname( ), 0, strpos( php_uname( ), " " ) );
if ( 0 < strpos( $os, "indows" ) )
{
exit( );
}
if ( 1 < substr_count( shell_exec( "ps aux | grep czone" ), "czone.sh" ) )
{
echo "Programul ruleaza deja\n";
exit( );
}
if ( $_SERVER['argc'] != 4 )
{
echo "Usage: czone.sh username password ethX\nX reprezinta numarul interfetei conectate la reteaua C-Zone\n";
exit( );
}
$username = $_SERVER['argv'][1];
$password = $_SERVER['argv'][2];
$eth = $_SERVER['argv'][3];
if ( strpos( shell_exec( "nslookup acces.czone.ro" ), "181" ) <= 0 )
{
if ( 0 < strpos( $os, "inux" ) || 0 < strpos( $os, "ree" ) )
{
shell_exec( "dhclient ".$eth );
sleep( 5 );
if ( strpos( shell_exec( "nslookup acces.czone.ro" ), "181" ) <= 0 )
{
echo "Eroare la comunicarea cu serverul de DHCP, verificati conexiunea si incercati din nou.\n";
exit( );
}
}
else
{
echo "Treceti placa de retea pe DHCP si dupa ce si-a luat ip-uri reporniti programul.\n";
exit( );
}
}
if ( 0 < strpos( get_result( "/czone/versionlinux.txt" ), "1.0.1.4" ) )
{
echo "Exista o versiune mai noua a programului pe serverul Czone\n";
if ( 0 < strpos( shell_exec( "wget -V" ), "General Public License" ) )
{
echo "Update-ul se va realiza automat, insa va trebui sa porniti din nou programul\natunci cand acesta va termina update-ul si se va inchide.\n";
shell_exec( "rm -f czone.sh" );
shell_exec( "wget -q http://acces.czone.ro/czone/czone.sh" );
shell_exec( "chmod +x czone.sh" );
exit( );
}
echo "Instalati programul wget si incercati din nou!!!\n";
exit( );
}
if ( 0 < strpos( get_result( "/czone/versionlinux.txt" ), "1.0.1.3" ) )
{
echo "Aveti deja ultima versiune a programului instalata.\n";
}
else
{
echo "Nu am putut verifica daca aveti ultima versiune a programului.\n";
}
if ( 0 < strpos( $os, "inux" ) )
{
$fis = fopen( "/proc/sys/net/ipv4/ip_forward", "r" );
$ipf = fread( $fis, 1 );
fclose( $fis );
$ipsnat = shell_exec( "iptables -t nat -L -vn 2>/dev/null | grep SNAT | wc -l" );
$ipmasq = shell_exec( "iptables -t nat -L -vn 2>/dev/null | grep MASQ | wc -l" );
$ipttl = shell_exec( "iptables -t mangle -L -vn 2>/dev/null | grep TTL | wc -l" );
}
do
{
do
{
$response = get_result( encode( "IP=unknown&COMMAND=NONCE&USERNAME=".$username ) );
if ( 0 < strpos( $response, "NONCE" ) )
{
$nonce = substr( $response, strpos( $response, "NONCE" ) + 6, 32 );
}
$response = get_result( encode( "IP=unknown&COMMAND=LOGIN&USERNAME=".$username."&PASSWORD=".$password."&NONCE=".$nonce ) );
if ( 0 < strpos( $response, "CONNECTED" ) )
{
echo "Conectat\n";
if ( 0 < strpos( $os, "inux" ) )
{
get_result( encode( "IP=unknown&COMMAND=LINUX&USERNAME=".$username."&FORWARD=".$ipf."&SNAT=".$ipsnat."&TTL=".$ipttl."&MASQ=".$ipmasq ) );
}
else
{
get_result( encode( "IP=unknown&COMMAND=LINUX&USERNAME=".$username."&FORWARD=".$os ) );
}
}
else if ( 0 < strpos( $response, "POOLCONV" ) )
{
echo "Pool private error\n";
}
else if ( 0 < strpos( $response, "POOLFULL" ) )
{
echo "Cross pool full\n";
}
else if ( 0 < strpos( $response, "POOLINVALID" ) )
{
echo "Cross pool invalid\n";
}
else if ( 0 < strpos( $response, "EXPIRED" ) )
{
echo "Contul a expirat\n";
}
else
{
if ( 0 < strpos( $response, "BLOCKED" ) )
{
echo "Contul este blocat\n";
}
else if ( 0 < strpos( $response, "INSTALL" ) )
{
echo "IP settings\nTrebuie sa modificati setarile conexiunii dumneavoastra dupa cum urmeaza:\n";
echo "IP=".substr( $response, strpos( $response, "IP=8" ) + 3, strpos( $response, "MASK=" ) - strpos( $response, "IP=8" ) - 3 )."\n";
echo "MASCA=".substr( $response, strpos( $response, "MASK=" ) + 5, strpos( $response, "GATE=" ) - strpos( $response, "MASK=" ) - 5 )."\n";
echo "GATEWAY=".substr( $response, strpos( $response, "GATE=" ) + 5, strpos( $response, "DNS=" ) - strpos( $response, "GATE=" ) - 5 )."\n";
echo "DNS=".substr( $response, strpos( $response, "DNS=" ) + 4, strpos( $response, "DNS2=" ) - strpos( $response, "DNS=" ) - 4 )."\n";
echo "Dupa care reporniti programul\n";
exit( );
}
else if ( 0 < strpos( $response, "FRAUDE" ) )
{
echo "Incercarea de frauda inregistrata\n";
}
else if ( 0 < strpos( $response, "FAILED" ) )
{
echo "Numele de utilizator sau/si parola sunt gresite.\n";
}
else if ( 0 < strpos( $response, "DBFAILED" ) )
{
echo "Eroare la comunicarea cu baza de date C-Zone.\n";
}
else if ( 0 < strpos( $response, "INVALID" ) )
{
echo "IP invalid\n";
}
else if ( 0 < strpos( $response, "MESSAGE" ) )
{
echo substr( $response, strpos( $response, "MESSAGE=" ) + 8 );
}
else
{
echo "Eroare la conectarea in reteaua C-Zone\nVa rugam apelati serviciul de relatii cu clientii la unul din numerele de telefon:\nRomtelecom: 407.22.22\nOrange: 0743.033.355\nConnex: 0722.697.085\n";
exit( );
}
}
sleep( 600 );
$i = 0;
while ( strpos( shell_exec( "nslookup acces.czone.ro" ), "181" ) <= 0 && $i < 2 )
{
sleep( 90 );
$i += 1;
}
if ( !( 0 < strpos( $os, "inux" ) ) || !( 0 < strpos( $os, "ree" ) ) )
{
break;
}
else
{
shell_exec( "dhclient ".$eth );
sleep( 5 );
}
} while ( !( strpos( shell_exec( "nslookup acces.czone.ro" ), "181" ) <= 0 ) );
echo "Eroare la comunicarea cu serverul de DHCP, verificati conexiunea si incercati din nou.\n";
exit( );
} while ( 0 );
echo "Treceti placa de retea pe DHCP si dupa ce si-a luat ip-uri reporniti programul.\n";
exit( );
?>



Blog Stats

  • 4,837 hits