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 /
62 /
Delete
Unzip
Name
Size
Permission
Date
Action
02ae8f7c570ec70607803af095570c0c433490
11.77
KB
-rwxr-xr-x
2026-07-21 14:52
2479d854930a4543ca718eb26cdfef5e6c93e4
28.02
KB
-rwxr-xr-x
2026-05-05 11:28
2870ef0e2b28037ff9377314891948eb9bf8ab
11.77
KB
-rwxr-xr-x
2026-07-21 14:52
356d290371726fcc90a5b39c5b0caf2b6ac61b
112.68
KB
-rwxr-xr-x
2026-07-22 08:42
4ff13095f38570f905b2d63b29a1a14c9cbb0f
5.87
KB
-rwxr-xr-x
2022-04-18 22:59
8753656fd182b48a705f1a58c1b2850e330778
521.43
KB
-rwxr-xr-x
2026-09-01 17:20
888dd96a721ca752b0f3dfb781370f1ee5abd7
482.7
KB
-rwxr-xr-x
2026-01-19 08:19
893dcf29b96945b3589635a2442ac66bddd6da
49.98
KB
-rwxr-xr-x
2024-11-05 02:34
a6191b33199ce29926c2b06311d176de0f7195
24.28
KB
-rwxr-xr-x
2024-04-17 17:10
abb89cc5eb31c82f6d6426e79c02907354ef58
21.89
KB
-rwxr-xr-x
2019-11-14 17:15
bbacc5d670c62111140b86a112e6a6bf62bf9e
36.16
KB
-rwxr-xr-x
2025-04-28 17:36
c39049efdc00ad57b7544282814de65b23c22e
30.14
KB
-rwxr-xr-x
2019-10-23 20:03
c6cd5fc1e03e963bff3732c5520e60afa6ad7b
11.66
KB
-rwxr-xr-x
2026-09-09 11:30
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") PASSWD $$$Q_ARGS" RETVAL=$? else trap 'ctrl_c_handler' 2 CAGEFS_TOKEN="$TOKEN" /usr/sbin/proxyexec -c cagefs.sock "$USR" "$CWD" PASSWD $$ "$@" RETVAL=$? /bin/rm -f $PIDFILE > /dev/null 2>&1 fi exit $RETVAL