403Webshell
Server IP : 23.111.136.34  /  Your IP : 216.73.216.136
Web Server : Apache
System : Linux servidor.eurohost.com.br 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User : meusitei ( 1072)
PHP Version : 5.6.40
Disable Function : show_source, system, shell_exec, passthru, proc_open
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/local/src/bitninja-whm/src/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/local/src/bitninja-whm/src/Bitninja.php
<?php

/**
 * Description of Bitninja
 *
 * @author Joseph Easy
 */
class Bitninja
{

    private static function _buildLogFilesArray()
    {
        $logFiles = array(
            'error.log',
            'main.log',
        );

        $moduleLogFiles = scandir("/var/log/bitninja/");
        foreach ($moduleLogFiles as $key => $logFile) {
            if (!preg_match('/^mod\..*\.log$/', $logFile)) {
                unset($moduleLogFiles[$key]);
            }
        }

        $logFiles = array_merge($logFiles, array_values($moduleLogFiles));
        $array = array();

        foreach ($logFiles as $logFile) {
            $array[] = array(
                'filename' => $logFile,
                'lines' => exec("sed -n '$=' /var/log/bitninja/$logFile"),
                'modified' => filemtime("/var/log/bitninja/$logFile")
            );
        }
        return $array;
    }

    private static function _sortLogFiles($fileLogsArray, $sortBy)
    {
        $modified = array();
        foreach ($fileLogsArray as $key => $row) {
            $modified[$key] = $row['modified'];
        }
        array_multisort($modified, $sortBy, $fileLogsArray);
        return $fileLogsArray;
    }

    private static function _searchLogInArray($array, $filename)
    {
        foreach ($array as $key => $item) {
            if ($item['filename'] == $filename) {
                return $key;
            }
        }
    }

    public static function getAndBuildLogs($isFirstRun, $prevLogFilesData = array())
    {
        $LogFilesData = self::_buildLogFilesArray();
        $logs = array();
        if ($isFirstRun) {
            $logFilesData = self::_sortLogFiles($LogFilesData, SORT_DESC);
            $diffTime = strtotime("-5 minute");
            foreach ($logFilesData as $data) {
                if ($data['modified'] >= $diffTime) {
                    exec('tail /var/log/bitninja/' . $data['filename'] . ' -n 3', $lines);
                    $logs = array_merge($lines, $logs);
                } else {
                    break;
                }
            }

            $logsReverse = ($logs);
            $logs = array();

            foreach ($logsReverse as $log) {
                $separatedLogs = explode('\n', $log);
                $logs = array_merge($separatedLogs, $logs);
            }
        } else {
            $logFilesData = self::_sortLogFiles($LogFilesData, SORT_ASC);
            foreach ($logFilesData as $data) {
                $key = self::_searchLogInArray($prevLogFilesData, $data['filename']);
                if ($prevLogFilesData[$key]['lines'] < $data['lines']) {
                    $diffLines = $data['lines'] - $prevLogFilesData[$key]['lines'];
                    exec('tail /var/log/bitninja/' . $data['filename'] . ' -n ' . $diffLines, $lines);
                    $logs = array_merge($lines, $logs);
                }
            }
        }
        return json_encode(array('logs' => $logs, 'logFilesDatas' => $logFilesData));
    }

    public static function getVersion()
    {
        $version = exec('rpm -q bitninja');
        $version = explode('-', $version);
        return $version[1];
    }

    public static function isRun()
    {
        $response = exec('/bin/ps cax | /bin/grep bitninja');
        return $response != null && $response != '';
    }

    public static function start()
    {
        exec('/etc/init.d/bitninja start');
    }

    public static function stop()
    {
        exec('/etc/init.d/bitninja stop');
    }

    public static function getLicenseInfo(){
	$output = shell_exec("bitninjacli --licenseinfo | grep info | grep -oE '[^ ]+$' | xargs");
	$output = preg_replace('/.*\[.*\] - \|.*\| ([a-z_]+)/','$1',$output);
	$output = str_replace('_',' ',$output);
	$output = ucfirst($output);

	return $output;
    }

    public static function checkGL($ip){
	$response = [];
	$ip = trim($ip);

	if(!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)){
	    $response['success'] = false;
	    $response['message'] = 'The IP address is invalid!';

	    return json_encode($response);
	}

	$output = exec("bitninjacli --greylist --check=$ip | sed -r 's/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g'");
	$output = preg_replace('/.*\[.*\] - \|.*\| (.*).*/','$1',$output);

	$response['success'] = true;
	$response['message'] = $output;

	return json_encode($response);
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit