Linux gir02.nhanhoa.com 4.18.0-513.9.1.lve.el8.x86_64 #1 SMP Mon Dec 4 15:01:22 UTC 2023 x86_64
LiteSpeed
Server IP : 103.124.95.33 & Your IP : 216.73.217.104
Domains :
Cant Read [ /etc/named.conf ]
User : nhsacmvr
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
lib /
.build-id /
ff /
Delete
Unzip
Name
Size
Permission
Date
Action
0458432c07c6e3666f14443069c8ee033425e5
607.74
KB
-rwxr-xr-x
2026-07-28 01:54
07b880ca207540140fddcffce700da3e5a2b7c
28.81
KB
-rwxr-xr-x
2025-01-08 10:44
09720201dac036916a1a21fa22ab93864f53d3
11.88
KB
-rwxr-xr-x
2021-10-08 15:22
0a359e636ca16006df69cd8485e7c05040d993
357.84
KB
-rwxr-xr-x
2025-01-28 01:37
2966d581294f80a4f0dba14b7cfce8e8fbdd99
299.38
KB
-rwxr-xr-x
2026-08-24 06:01
3f5e089a960dc63cd77ced925078f0f2c15ddf
15.66
KB
-rwxr-xr-x
2026-07-29 02:07
4c1f93fefa1956296aed9df65e60faf60e4063
5.91
KB
-rwxr-xr-x
2026-06-23 08:47
5b2190419f898301cddc9f53e6243c15ac7a24
15.81
KB
-rwxr-xr-x
2020-08-19 08:40
5e49ae36f468178f9ea4be45a03ebe93027b9a
16.41
KB
-rwxr-xr-x
2025-10-07 07:08
6369b4897c0c5fb81910ac3d9c63ffea1c66bf
624.7
KB
-rwxr-xr-x
2025-08-26 09:47
658e8a4442e92db1edbc0427b5bbe4f913ea87
119.34
KB
-rwxr-xr-x
2023-07-26 14:48
a02b6b49e96a77fca2cd56d3e67e0dc6261fb3
11.49
KB
-rwxr-xr-x
2025-12-18 13:02
a9686afd466c2daabda75f58b94dca5038b193
202.09
KB
-rwxr-xr-x
2019-11-20 12:05
aa77953fdca60b5aa01f431714e5d19b6edc33
24.49
KB
-rwxr-xr-x
2020-05-06 14:26
d86f927e18eeb6440c9c73f933c5e0d7118296
690.9
KB
-rwxr-xr-x
2026-07-20 08:44
Save
Rename
#!/bin/bash ##CageFS proxyexec wrapper - ver 18 if [[ $EUID -eq 0 ]]; then echo 'Cannot be run as root' exit 1 fi # POSIX single-quote escaping for values embedded in the ssh remote # command. Unlike `printf %q`, single-quoted output re-parses correctly # under any POSIX shell (the origin login shell need not be bash) and is # lossless for arbitrary bytes. Each embedded ' becomes the '\'' sequence. sq() { local s=${1//\'/\'\\\'\'} printf "'%s'" "$s" } USR=`/usr/bin/whoami` USER_TOKEN_PATH="/var/.cagefs/.cagefs.token" WEBSITE_ISOLATION_FLAG="/opt/cloudlinux/flags/enabled-flags.d/website-isolation.flag" # Trust boundary for the website-isolation token path: it must point # directly at the regular file that create_website_token_directory() # creates inside its root-owned per-user storage area. That area is # /var/cagefs/<prefix>/<user>/.cagefs/website/... on the host and is # bind-mounted into the cage at /var/.cagefs/website/... — both views # are accepted because libenter.enter_site() picks one or the other # depending on whether it runs inside or outside the cage. The file # itself is never a symlink, so we reject symlinks outright rather # than canonicalizing with realpath. Without this gate the attacker # controls both the env var WEBSITE_TOKEN_PATH and the file contents # at that path; the file contents land in $TOKEN, which is embedded # into the ssh remote command argv below and re-parsed by the remote # shell — so shell metacharacters in the file would execute on the # origin host. (Slite #7 / CLOS-4490) if [[ -f "$WEBSITE_ISOLATION_FLAG" && -n "$WEBSITE_TOKEN_PATH" ]]; then if [[ -L "$WEBSITE_TOKEN_PATH" ]]; then echo "cagefs.proxy: WEBSITE_TOKEN_PATH '$WEBSITE_TOKEN_PATH' must not be a symlink" >&2 exit 1 fi if [[ ! -f "$WEBSITE_TOKEN_PATH" ]]; then echo "cagefs.proxy: WEBSITE_TOKEN_PATH '$WEBSITE_TOKEN_PATH' is not an existing regular file" >&2 exit 1 fi # Reject `..` as a path component so the prefix check below cannot # be bypassed via traversal (e.g. /var/cagefs/../etc/passwd matches # the /var/cagefs/* glob but resolves outside the trusted area). case "$WEBSITE_TOKEN_PATH" in */../*|*/..) echo "cagefs.proxy: WEBSITE_TOKEN_PATH '$WEBSITE_TOKEN_PATH' must not contain '..' path components" >&2 exit 1 ;; esac case "$WEBSITE_TOKEN_PATH" in /var/cagefs/*|/var/.cagefs/*) ;; *) echo "cagefs.proxy: WEBSITE_TOKEN_PATH must be under /var/cagefs/ or /var/.cagefs/ (got '$WEBSITE_TOKEN_PATH')" >&2 exit 1 ;; esac USER_TOKEN_PATH="$WEBSITE_TOKEN_PATH" fi # The -L/-f/prefix gate above is defense-in-depth, TOCTOU is not exploitable because the # forwarded $TOKEN must still equal the legit on-disk bytes that the # origin's cagefs.server reads with open(..., O_NOFOLLOW) from a # uid-derived path (see find_website_by_token() in # proxyexec/cagefs.server.c) — a swapped symlink redirects what we # cat, never what the server reads, so a TOCTOU substitution can only # replace the forwarded bytes with something that fails the server's # constant-time comparison. TOKEN=`/bin/cat ${USER_TOKEN_PATH}` # Tokens are generated as fixed-length alphanumerics by # _generate_password() in py/clcagefslib/webisolation/jail_utils.py and # by the corresponding C helper. Any non-alphanumeric byte means the # token file was tampered with — refuse to forward it into the ssh # remote command, where the remote shell would re-parse metacharacters. # Use POSIX `case` rather than `[[ =~ ]]` because the wrapper is also # invoked through `sh` (e.g. jenkins_tests/rpm_tests/p_cagefs/ # 939-environment_var-check.sh), and dash treats `[[` as a missing # command — the regex form would falsely trip and exit the script. case "$TOKEN" in "" | *[!A-Za-z0-9]*) echo "cagefs.proxy: refusing to forward malformed token from $USER_TOKEN_PATH" >&2 exit 1 ;; esac # It's user's tmp directory and write to it is secure procedure # because this script is running only under usual user PIDFILE="/tmp/.cagefs.proxy.$$" USER_INTERRUPT=13 CWD=`pwd` ctrl_c_handler() { if [[ -f "$PIDFILE" ]]; then pid=`/bin/cat $PIDFILE` /bin/rm -f $PIDFILE > /dev/null 2>&1 /bin/kill -s SIGINT "$pid" > /dev/null 2>&1 fi exit $USER_INTERRUPT } if [[ -e /var/.cagefs/origin ]]; then ORIGIN=`/bin/cat /var/.cagefs/origin` # ssh(1) joins the remote-command argv with single spaces and ships # the result for the origin user's login shell to re-parse. The local # bash double-quotes around "$CWD" and "$@" only protect parsing on # THIS host — once ssh has taken the argv, the quoting is gone and # any shell metacharacter embedded in $CWD (`pwd`, attacker controls # via mkdir+cd inside the cage) or in any "$@" element (caller argv # for sendmail/crontab/etc.) is interpreted by the remote shell. # CLOS-4490 hardened $TOKEN by content validation; that approach # does not work for $CWD or $@ (legitimate paths/args may contain # spaces, parens, ampersands), so we single-quote each caller- # controlled element with sq() before composing the remote command. # ssh re-parses the command only once (the origin login shell), so a # single quoting pass per value is enough here. $USR is `whoami` so # it cannot contain metacharacters in any sane account database, but # we quote it too for defense in depth. (CLOS-4596) Q_ARGS= for _arg in "$@"; do Q_ARGS="$Q_ARGS $(sq "$_arg")" done /usr/bin/ssh -F /etc/ssh/cagefs-rexec_config "$USR@$ORIGIN" \ "CAGEFS_TOKEN=$TOKEN /usr/sbin/proxyexec -c cagefs.sock $(sq "$USR") $(sq "$CWD") LVE_STATS_CONFIGS_READER $$$Q_ARGS" RETVAL=$? else trap 'ctrl_c_handler' 2 CAGEFS_TOKEN="$TOKEN" /usr/sbin/proxyexec -c cagefs.sock "$USR" "$CWD" LVE_STATS_CONFIGS_READER $$ "$@" RETVAL=$? /bin/rm -f $PIDFILE > /dev/null 2>&1 fi exit $RETVAL