nginx 1.24.0
tcp/80
WARNING: This plugin will generate false positive and is purely informative:
regreSSHion: RCE in OpenSSH's server, on glibc-based Linux systems (CVE-2024-6387)
Severity: info
Fingerprint: 3f43e0ebb5dce37ab8b59eb581e37d9f0be3b35a0be3b35a0be3b35a0be3b35a
Found potentially vulnerable SSH version: SSH-2.0-OpenSSH_9.6p1 Ubuntu-3ubuntu13.14 WARNING, RISK IS ESTIMATED FALSE POSITIVE ARE LIKELY
Open service 178.20.211.207:80 · monitor.itprofits.ru
2026-01-05 12:02
HTTP/1.1 200 OK
Server: nginx/1.24.0 (Ubuntu)
Date: Mon, 05 Jan 2026 12:02:15 GMT
Content-Type: text/html
Content-Length: 11300
Last-Modified: Mon, 05 Jan 2026 11:53:39 GMT
Connection: close
ETag: "695ba643-2c24"
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Allow-Headers: DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range
Access-Control-Expose-Headers: Content-Length,Content-Range
Accept-Ranges: bytes
Page title: Сводка данных - Системный монитор
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Сводка данных - Системный монитор</title>
<link rel="icon" href="image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAAB3RJTUUH5gIYFDcxMjE4NAAABnVJREFUWMPFl1tsFNcZx//fzOzO7K7Xe7HXeL02NsaYGowxJhAgCU0gJG0gpElaqa1UqVKlPlWq1EqV+lKp6kOlvqhS+9CXSqpUKVKlNmkaQkggEAIJhBhsg22MwQbb2F57vba9a+/uzDmfHmZ3Z3fXXmND1JFGc+ac75z5z/9857tHICIwxtLk2wA8/01J4F7fEwD+7XvCZgKbCfwPAo97XQD48r0msJnAH0jg/wFm2+RmArt3AAAAAElFTkSuQmCC" type="image/png">
<link rel="stylesheet" href="style.css">
</head>
<body>
<canvas id="matrix"></canvas>
<div class="info-container">
<div class="header">
<div class="title">СИСТЕМНЫЙ МОНИТОР</div>
<div class="subtitle">СВОДКА ДАННЫХ СЕССИИ</div>
</div>
<div class="info-content" id="infoContent"></div>
<div class="scroll-indicator" id="scrollIndicator" style="display: none;">▼</div>
<div class="timestamp" id="timestamp"></div>
<div class="connection-status online" id="connectionStatus">> СТАТУС: ONLINE</div>
</div>
<script>
// === МАТРИЦА ===
const canvas = document.getElementById('matrix');
const ctx = canvas.getContext('2d');
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
const letters = 'アカサタナハマヤラワ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');
const fontSize = 16;
const columns = Math.floor(canvas.width / fontSize);
const drops = Array(columns).fill(0).map(() => Math.floor(Math.random() * -canvas.height / fontSize));
function drawMatrix() {
ctx.fillStyle = 'rgba(0,0,0,0.05)';
ctx.fillRect(0, 0, canvas.width, canvas.height);
ctx.fillStyle = '#0F0';
ctx.font = `${fontSize}px monospace`;
for (let i = 0; i < drops.length; i++) {
const text = letters[Math.floor(Math.random() * letters.length)];
ctx.fillText(text, i * fontSize, drops[i] * fontSize);
if (drops[i] * fontSize > canvas.height && Math.random() > 0.975) {
drops[i] = 0;
}
drops[i]++;
}
}
setInterval(drawMatrix, 33);
// === ГЛОБАЛЫ ===
const infoContent = document.getElementById('infoContent');
const scrollIndicator = document.getElementById('scrollIndicator');
let messageIndex = 0;
let charIndex = 0;
let isScrolling = false;
let infoMessages = [];
let speedTestCompleted = false;
function typeInfo() {
if (messageIndex < infoMessages.length) {
if (charIndex === 0) {
const messageElement = document.createElement('div');
messageElement.className = 'typing-text info-line';
infoContent.appendChild(messageElement);
checkAutoScroll();
}
const currentElement = infoContent.lastChild;
if (charIndex < infoMessages[messageIndex].length) {
currentElement.textContent += infoMessages[messageIndex].charAt(charIndex);
charIndex++;
setTimeout(typeInfo, 30 + Math.random() * 40);
} else {
charIndex = 0;
currentElement.style.borderRight = 'none';
messageIndex++;
setTimeout(typeInfo, 100);
}
} else if (!speedTestCompleted) {
scrollIndicator.style.display = 'none';
setTimeout(runFullSpeedTest, 1500);
}
}
function checkAutoScroll() {
const container = document.querySelector('.info-content');
if (container.scrollHeight > container.clientHeight && !isScrolling) {
isScrolling = true;
scrollIndicator.style.display = 'block';
container.scrollTo({ top: container.scrollHeight, behavior: 'smooth' });
setTimeout(() => { isScrolling = false; }, 500);
}
}
function updateTimestamp() {
const now = new Date();
const timeString = now.