Beyond
This is the beyond page that an additional post enumeration and assessment are conducted as the root
user after compromising the target system.
Cron
[root@insanityhosting cron]# ll
total 8.0K
0 drwx------. 2 root root 33 Aug 16 2020 .
4.0K -rw-------. 1 monitor monitor 60 Aug 16 2020 monitor
4.0K -rw-------. 1 root root 1 Aug 16 2020 root
0 drwxr-xr-x. 11 root root 133 Aug 16 2020 ..
monitor
Cronjob
[root@insanityhosting cron]# cat monitor
* * * * * /usr/bin/php -q /var/www/html/monitoring/cron.php
Execute /var/www/html/monitoring/cron.php
, every minute
/var/www/html/monitoring/cron.php
[root@insanityhosting cron]# cat /var/www/html/monitoring/cron.php
<?php
require_once('class/ping.php');
use JJG\Ping as Ping;
require_once('settings/config.php');
require_once('class/database.php');
$sqlString = "SELECT * FROM monitoring.hosts INNER JOIN monitoring.users ON monitoring.hosts.userID = monitoring.users.id";
$currentdb = new database($databaseName, $databaseServer, $databaseUsername,
$databasePassword);
$row = $currentdb->constructQuery($sqlString)
->bind(1, $currentUser->userID)
->resultset();
foreach($row as $result) {
$host = $result["ipAddress"];
$status = 0;
if (filter_var($host, FILTER_VALIDATE_IP)) {
$ping = new Ping($host, 255, 1);
$currentTime = date('Y-m-d H:i:s');
$latency = $ping->ping();
if ($latency !== false) {
// Host is up
$status = 1;
} else {
$status = 0;
}
}
$sqlString = "INSERT INTO log (name, dateTime, status) VALUES (?,?,?)";
if ($currentdb->constructQuery($sqlString)
->bind(1, $result["name"])
->bind(2, $currentTime)
->bind(3, $status)
->execute()) {
};
if ($status == 0) {
$sqlString = "SELECT * FROM monitoring.log WHERE name = \"" . $result["name"] . "\"";
$rows = $currentdb->constructQuery($sqlString)
->resultset();
if (count($rows) > 0) {
$output = fopen('php://temp/maxmemory:'. (5*1024*1024), 'r+');
foreach($rows as $res) {
fputcsv($output, $res);
}
rewind($output);
$output = stream_get_contents($output);
$output = "ID, Host, Date Time, Status\r\n" . $output;
$data = $result["name"] . " is down. Please check the report below for more information.";
mail($result["email"], "WARNING", $data . "\r\n\r\n" . $output);
}
}
}
?>
Vulnerable to SQLi
root
Cronjob
[root@insanityhosting cron]# cat root
Empty