Advertisement
Guest User

PHP-PI-RC3

a guest
Jun 17th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 6.36 KB | None | 0 0
  1. <?php
  2.  
  3.         $userDn = "";
  4.         $userMail = "";
  5.         $userTelefone = "";
  6.         $userCn = "";
  7.         $userLastLogon = "";
  8.         $dataLogon = "";
  9.  
  10.  
  11. function menuConsole(){
  12.  
  13.     global $dataLogon,$userCn,$userMail;
  14.  
  15.     system('clear');
  16.     echo "-------------------------------------------------------\n";
  17.     echo "\tSelecione uma das Opções\n";
  18.     echo "\t1) Fazer Scan de Rede\n";
  19.     echo "\t2) Ler arquivo do Squid e Gravar no Banco\n";
  20.     echo "\t3) Sair\n\n";
  21.    
  22.     echo "\tSelecione: ";
  23.    
  24.     fscanf(STDIN, "%d\n", $Opcao);
  25.    
  26.     switch($Opcao){
  27.    
  28.     case 1:
  29.         nmapScan();
  30.         break;
  31.     case 2:
  32.         gravaSquid();
  33.         break;
  34.     case 3:
  35.         echo "\tSaindo da Aplicação\n";
  36.        
  37.         GeraArquivoLog($dataLogon,$userCn,$userMail);
  38.         break;
  39.     default:
  40.         echo "\tSaindo da Aplicação\n";
  41.         break;
  42.     }
  43. }
  44.  
  45. function gravaSquid() {
  46.  
  47.     system('clear');
  48.     echo "-----------------------------------------------------------\n";
  49.     echo "Escreva o caminho completo para o arquivo de log do Squid: ";
  50.     fscanf(STDIN, "%s\n", $FILE);
  51.     $SQUIDLOG = split("\n", shell_exec("cat $FILE | awk '$1=$1'"));
  52.     foreach ($SQUIDLOG as $SQUIDLINE) {
  53.         $CAMPOSSQUID = explode(" ",$SQUIDLINE);
  54.         $STATUSHTTP = explode("/",$CAMPOSSQUID[3]);
  55.         gravaBancoSquid($CAMPOSSQUID[2],$STATUSHTTP[1],$CAMPOSSQUID[5],$CAMPOSSQUID[6]);
  56.     }  
  57.  
  58. }
  59.  
  60. function Loginform() {
  61.  
  62.     system('clear');
  63.     echo "------------------------------------------------------------------------\n";
  64.     echo "\t                Autenticação Requerida:\n\n";
  65.     echo "\tInsira Usuario e Senha do AD para entrar na Aplicação:\n";
  66.     echo "\t                Insira um Usuario: ";
  67.     fscanf(STDIN, "%s\n", $UsuarioAD);
  68.     echo "\t                Digite a Senha: ";
  69.     fscanf(STDIN, "%s\n", $SenhaAD);
  70.     if (ldapLogin($UsuarioAD,$SenhaAD)) {
  71.         menuConsole();
  72.     }
  73.     else {
  74.         echo "\t                 Usuario ou Senha Inválidos\n";
  75.     }
  76. }
  77.  
  78. function ldapLogin($username, $password){
  79.  
  80.     $LDAPSERVER = "ldap://192.168.56.101";
  81.    
  82.     $LDAPCONNECT = ldap_connect($LDAPSERVER);
  83.     $LDAPUSERNAME = $username;
  84.     $LDAPPASSWORD = $password;
  85.  
  86.     $LDAPDN = 'EVO' . "\\" . $LDAPUSERNAME;
  87.  
  88.     ldap_set_option($LDAPCONNECT, LDAP_OPT_PROTOCOL_VERSION, 3);
  89.     ldap_set_option($LDAPCONNECT, LDAP_OPT_REFERRALS, 0);
  90.  
  91.     $BIND = @ldap_bind($LDAPCONNECT, $LDAPDN, $LDAPPASSWORD);
  92.  
  93.     global $userDn, $userMail,$Telefone,$userCn,$userLastLogon,$dataLogon;
  94.  
  95.     if ($BIND) {
  96.         $FILTER="(sAMAccountName=$LDAPUSERNAME)";
  97.         $RESULT = ldap_search($LDAPCONNECT,"dc=evo,dc=local",$FILTER);
  98.         $INFO = ldap_get_entries($LDAPCONNECT, $RESULT);
  99.     $userDn = $INFO[0]["distinguishedname"][0];
  100.     $userMail = $INFO[0]["mail"][0];
  101.     $userTelefone = $INFO[0]["homephone"][0];
  102.     $userCn = $INFO[0]["cn"][0];
  103.     $userLastLogon = date('d-m-Y H:i:s', $INFO[0]["lastlogontimestamp"][0]/10000000-11644473600);
  104.     $dataLogon = date("Y-m-d h:i:sa");
  105.  
  106.  
  107.     GravaBancoLDAP($userDn,$userMail,$userTelefone,$userCn,$userLastLogon);
  108.  
  109.         @ldap_close($LDAPCONNECT);
  110.     return true;
  111.     } else {
  112.     return false;
  113.     }
  114.  
  115. }
  116.  
  117. function GeraArquivoLog($DATALOGON,$USERCN,$USERMAIL){
  118.  
  119.        $Arquivo = "painel.log";
  120.            $dataLogoff = date("Y-m-d h:i:sa");
  121.  
  122.        $IPADDRESS = shell_exec("hostname -I | tr -d '\r'");
  123.        $ArquivoLog = fopen($Arquivo, "a");
  124.        fwrite($ArquivoLog, "$DATALOGON: $USERCN: $USERMAIL: $dataLogoff: $IPADDRESS");
  125.        fclose($ArquivoLog);
  126.  
  127. }
  128.  
  129. function GravaBancoSQUID($IP,$STATUS,$TIPO,$URL){
  130.  
  131.    $ServerName = "localhost";
  132.    $UserName = "root";
  133.    $Password = "123456";
  134.    $db = "PI";
  135.    $Pdo = new PDO("mysql:host=$ServerName;dbname=$db", $UserName, $Password);
  136.    
  137.    $sts = $Pdo->prepare("INSERT INTO squid(ip,codigo_http,metodo_http,url) VALUES(:ip,:codigohttp,:metodohttp,:url);");
  138.    $sts->bindValue(':ip',$IP, PDO::PARAM_STR);
  139.    $sts->bindValue(':codigohttp',$STATUS, PDO::PARAM_INT);
  140.    $sts->bindValue(':metodohttp',$TIPO, PDO::PARAM_STR);
  141.    $sts->bindValue(':url',$URL, PDO::PARAM_STR);
  142.    $sts->execute();
  143.    $sts->closeCursor();
  144.    $sts = NULL;
  145. }
  146.  
  147. function GravaBancoNMAP($IP,$PORTA,$PROTOCOLO,$LAST_SCAN){
  148.  
  149.    $ServerName = "localhost";
  150.    $UserName = "root";
  151.    $Password = "123456";
  152.    $db = "PI";
  153.    $Pdo = new PDO("mysql:host=$ServerName;dbname=$db", $UserName, $Password);
  154.  
  155.    $sts = $Pdo->prepare("INSERT INTO nmap(ip,porta,protocolo,last_scan) VALUES(:ip,:porta,:protocolo,:last_scan);");
  156.    $sts->bindValue(':ip',$IP, PDO::PARAM_STR);
  157.    $sts->bindValue(':porta',$PORTA, PDO::PARAM_INT);
  158.    $sts->bindValue(':protocolo',$PROTOCOLO, PDO::PARAM_STR);
  159.    $sts->bindValue(':last_scan',$LAST_SCAN, PDO::PARAM_STR);
  160.    $sts->execute();
  161.    $sts->closeCursor();
  162.    $sts = NULL;
  163. }
  164.  
  165.  
  166. function GravaBancoLDAP($DN,$MAIL,$TELEFONE,$CN,$LASTLOGON){
  167.  
  168.    $ServerName = "localhost";
  169.    $UserName = "root";
  170.    $Password = "123456";
  171.    $db = "PI";
  172.  
  173.    $Pdo = new PDO("mysql:host=$ServerName;dbname=$db", $UserName, $Password);
  174.  
  175.    $sts = $Pdo->prepare("INSERT INTO ldap(dn,mail,telefone,cn,last_logon) VALUES(:dn,:mail,:telefone,:cn,:lastlogon);");
  176.    $sts->bindValue(':dn',$DN, PDO::PARAM_STR);
  177.    $sts->bindValue(':mail',$MAIL, PDO::PARAM_STR);
  178.    $sts->bindValue(':telefone',$TELEFONE, PDO::PARAM_STR);
  179.    $sts->bindValue(':cn',$CN, PDO::PARAM_STR);
  180.    $sts->bindValue(':lastlogon',$LASTLOGON, PDO::PARAM_STR);
  181.    $sts->execute();
  182.    $sts->closeCursor();
  183.    $sts = NULL;
  184. }
  185.  
  186. function nmapScan(){
  187.  
  188.  
  189. echo "\nInsira a URL/IP a ser Escaneada: ";
  190. $ipscan = trim(FGETS(STDIN));
  191.  
  192. echo "\nEscaneando portas do endereço $ipscan, pode demorar alguns minutos...\n";
  193.  
  194. $resultnmap = shell_exec("nmap -v -Pn -T4 $ipscan | grep -e Discovered | cut -d ' ' -f4,6 --output-delimiter=, | cut -d/ -f1,2 --output-delimiter=,");
  195.  
  196. $LAST_SCAN = $dataLogon = date("Y-m-d h:i:sa");
  197.  
  198. if(is_null($resultnmap)){
  199.         echo "\nNada Encontrado\n";
  200. }
  201. else {
  202. }
  203.     $NMAPLINES = split("\n", $resultnmap);
  204.         foreach ($NMAPLINES as $NMAPLINE) {
  205.         $CAMPOSNMAP = explode(',',$NMAPLINE);
  206.         echo "$CAMPOSNMAP[0]\n";
  207.             GravaBancoNMAP("$CAMPOSNMAP[2]","$CAMPOSNMAP[0]","$CAMPOSNMAP[1]",$LAST_SCAN);
  208.         }
  209.     echo $resultnmap;
  210. }
  211.  
  212.  
  213. Loginform();
  214. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement