Kerala Cyber
Warriors
KCW Uploader V1.1
#!/opt/cpguard/cpg-php-fpm/bin/php
<?php
## DO NOT CUSTOMISE THIS FILE
## This file may be updated during software update
## Please make a copy of the file for customising it
ini_set("display_errors", false);
/* ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL); */
$conf = parse_ini_file('/opt/cpguard/app/scripts/enhance.ini');
if (empty($conf['host']) || empty($conf['organisation_id']) || empty($conf['auth_token'])) {
die("API values missing");
}
$hostname = gethostname();
$public_ips = get_public_ips();
if (empty($conf['server_id']) || $conf['expiry'] ?? 0 < time()) {
$servers = enhance_get('servers');
foreach ($servers->items as $server) {
foreach ($server->ips as $ip) {
if (in_array($ip->ip, $public_ips)) {
$conf['server_id'] = $server->id;
$conf['expiry'] = time() + 43200;
save_ini('/opt/cpguard/app/scripts/enhance.ini', $conf);
break;
}
}
if ($server->hostname === $hostname || $server->friendlyName === $hostname) {
$conf['server_id'] = $server->id;
$conf['expiry'] = time() + 43200;
save_ini('/opt/cpguard/app/scripts/enhance.ini', $conf);
break;
}
}
}
if (!isset($conf['server_id'])) { //Cannot proceed
die("Couldnt identify Server ID");
}
$domain_list = [];
$websites = enhance_get('orgs/' . $conf['organisation_id'] . '/websites?recursion=infinite&servers=' . $conf['server_id']);
foreach ($websites->items as $website) {
$docroot = "/var/www/" . $website->id . '/' . $website->domain->documentRoot;
if (is_dir($docroot)) {
$domain_list[] = [
'domain' => $website->domain->domain,
'user' => @posix_getpwuid(@fileowner($docroot))['name'] ?? '',
'docroot' => $docroot
];
}
}
echo json_encode($domain_list, JSON_PRETTY_PRINT);
function save_ini($filename, $data)
{
$content = '';
foreach ($data as $key => $value) {
$content .= ($key . ' = ' . $value . PHP_EOL);
}
file_put_contents($filename, $content);
}
function get_public_ips()
{
if (file_exists('/etc/os-release')) {
//centos 7
$ips = shell_exec("/sbin/ifconfig | /bin/grep 'inet '| /bin/grep -v '127.0.0.1' | /usr/bin/cut -d: -f2 | /usr/bin/awk '{ print $2}' | /bin/grep -Ev '^(192.168|10\.|172\.1[6789]\.|172\.2[0-9]\.|172\.3[01]\.)'");
} else {
//centos 6
$ips = shell_exec("/sbin/ifconfig | /bin/grep 'inet addr:'| /bin/grep -v '127.0.0.1' | /usr/bin/cut -d: -f2 | /usr/bin/awk '{ print $1}' | /bin/grep -Ev '^(192.168|10\.|172\.1[6789]\.|172\.2[0-9]\.|172\.3[01]\.)'");
}
return array_unique(explode("\n", trim(is_string($ips)) ? $ips : ''));
}
function enhance_get($query)
{
global $conf; //$host, $organisation_id, $auth_token;
/* Init cURL resource */
$ch = curl_init($conf['host'] . '/api/' . $query);
/* Set Headers */
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type:application/json', "Authorization: Bearer " . $conf['auth_token']]);
/* set return type json */
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
/* execute request */
$result = curl_exec($ch);
if ($error = curl_error($ch) || curl_getinfo($ch, CURLINFO_HTTP_CODE) != 200) {
die("Enhance API error for $query : $error\n");
return false;
}
/* close cURL resource */
curl_close($ch);
$json = json_decode($result);
if (is_object($json)) {
return $json;
} else {
die("Invalid Enhance API response for $query.. Exiting..\n");
}
}
-=[ KCW uplo4d3r c0ded by cJ_n4p573r ]=-
Ⓒ2017 ҠЄГѦLѦ СүѣЄГ ЩѦГГіѺГՏ