Linux moon.hostseba.com 4.18.0-553.51.1.lve.el8.x86_64 #1 SMP Tue May 6 15:14:12 UTC 2025 x86_64
LiteSpeed
Server IP : 103.174.152.68 & Your IP : 216.73.216.9
Domains :
Cant Read [ /etc/named.conf ]
User : julaysp1
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
opt /
imunify360 /
venv /
share /
imunify360 /
scripts /
Delete
Unzip
Name
Size
Permission
Date
Action
migrate_csf
[ DIR ]
drwxr-xr-x
2025-09-13 06:27
check-detached.py
1.11
KB
-rwxr-xr-x
2025-07-23 06:47
check_recurrent.py
1.85
KB
-rwxr-xr-x
2025-08-22 12:13
create_default_config
1.23
KB
-rwxr-xr-x
2025-07-23 06:47
csf_tool
2.75
KB
-rwxr--r--
2025-08-22 12:13
delay_on_cron_call.py
1.12
KB
-rwxr-xr-x
2025-08-28 14:27
disable_3rd_party_ids
1.01
KB
-rwxr--r--
2025-08-22 12:13
imunify-disable-cpu-accounting.sh
792
B
-rwxr--r--
2025-07-23 06:47
imunify-doctor.sh
17.1
KB
-rwxr--r--
2025-07-23 06:47
imunify-force-update.sh
3.16
KB
-rwxr--r--
2025-07-23 06:47
lfd_block.py
2.96
KB
-rwxr--r--
2025-08-22 12:13
mk_apache_conf_digest.pl
3.54
KB
-rwxr--r--
2025-08-22 12:13
purge-clamav
535
B
-rwxr-xr-x
2025-07-23 06:47
remove_hardened_php.py
3.92
KB
-rwxr-xr-x
2025-08-22 12:13
rules_checker.py
10.8
KB
-rw-r--r--
2025-08-22 12:13
send-notifications
7.66
KB
-rwsrwx---
2025-07-23 06:47
setup_cagefs.py
3.72
KB
-rwx------
2025-08-28 14:27
track-fpfn-submissions.sh
3.8
KB
-rwxr-xr-x
2025-07-23 06:47
update_components_versions.py
4.46
KB
-rwxr-xr-x
2025-07-23 06:47
whitelist_cache.py
1.46
KB
-rwxr-xr-x
2025-08-22 12:13
Save
Rename
#!/opt/imunify360/venv/bin/python3 # removes HardenedPHP on CentOS + cPanel systems import os import subprocess from contextlib import suppress from tempfile import NamedTemporaryFile from typing import Dict, List, Set, Tuple REVERT_CPANEL_PHP_CMD = " --install " # noqa: E501 EA_PHP_HARDENED_REPO = "imunify360-ea-php-hardened" def repoquery( disablerepo: List[str] = None, enablerepo: List[str] = None ) -> Set[str]: """Returns a set of package names that are available in HardenedPHP repo""" repoquery_cmd = ["repoquery", "-a", "--qf=%{name}"] if disablerepo is not None: for repo in disablerepo: repoquery_cmd.append("--disablerepo=" + repo) if enablerepo is not None: for repo in enablerepo: repoquery_cmd.append("--enablerepo=" + repo) cp = subprocess.run(repoquery_cmd, stdout=subprocess.PIPE, check=True) return set(cp.stdout.decode().strip().split()) def list_installed() -> List[Tuple[str, str]]: """List all installed packages. Returns a list of packages. Each package is represented as a tuple (name, release).""" cp = subprocess.run( ["rpm", "-qa", "--queryformat", "%{NAME} %{RELEASE} "], stdout=subprocess.PIPE, check=True, ) items = cp.stdout.decode().strip().split() return [(items[i], items[i + 1]) for i in range(0, len(items), 2)] def prepare_yum_shell_file(actions: Dict[str, Set[str]]) -> str: """Creates temporary file for `yum shell` and returns its name.""" ops = [] ops.append("repo disable " + EA_PHP_HARDENED_REPO) for action, packages in actions.items(): if len(packages): ops.append(action + " " + " ".join(packages)) ops.append("run") with NamedTemporaryFile(delete=False) as cmd_list: content = "\n".join(ops).encode() cmd_list.write(content) cmd_list.close() return cmd_list.name def prepare_yum_shell_actions( hardened_php_names: Set[str], available_names: Set[str], installed_names_releases: List[Tuple[str, str]], ) -> Dict[str, Set[str]]: """Creates a dictionary of actions to take to remove HardenedPHP. Returns a dict with key being an action to take (remove/downgrade) and value is a set of package names that need this action.""" actions = {} cl_installed_names = set( [ item[0] for item in installed_names_releases if "cloudlinux" in item[1] ] ) not_available = cl_installed_names - available_names actions["remove"] = hardened_php_names & not_available still_available = hardened_php_names & available_names actions["downgrade"] = cl_installed_names & still_available return actions def get_installed_hardened_php_names() -> Set[str]: """Returns a set of package names that are installed from HardenedPHP repo.""" cp = subprocess.run( ["rpm", "-qa", "--queryformat", "%{NAME} %{RELEASE}\\n", "ea-*"], stdout=subprocess.PIPE, check=True, ) items = set() for line in cp.stdout.decode().strip().split("\n"): if "cloudlinux" in line: items.add(line.split()[0]) return items def main(): print("Starting", flush=True) # remove packages from HardenedPHP that are not available otherwise # downgrade remaining HardenedPHP packages hardened_php_names = get_installed_hardened_php_names() available_names = repoquery(disablerepo=[EA_PHP_HARDENED_REPO]) installed_names_releases = list_installed() actions = prepare_yum_shell_actions( hardened_php_names, available_names, installed_names_releases ) name = prepare_yum_shell_file(actions) for action, packages in actions.items(): print("To {}: {}".format(action, " ".join(packages)), flush=True) subprocess.run(["yum", "shell", name, "-y"], check=False) with suppress(FileNotFoundError): os.remove(name) print("Finished") if __name__ == "__main__": main()