
KALI/UBUNTU/DEBIAN/PARROT LINUX INSTALL:
git clone https://github.com/1N3/Sn1per
cd Sn1per
bash install.sh
root@snipertest:~# git clone https://github.com/1N3/Sn1per
Cloning into 'Sn1per'...
remote: Enumerating objects: 2838, done.
remote: Counting objects: 100% (13/13), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 2838 (delta 5), reused 10 (delta 4), pack-reused 2825
Receiving objects: 100% (2838/2838), 43.18 MiB | 18.76 MiB/s, done.
Resolving deltas: 100% (1950/1950), done.
root@snipertest:~# cd Sn1per/
root@snipertest:~/Sn1per# bash install.sh
____
_________ / _/___ ___ _____
/ ___/ __ \ / // __ \/ _ \/ ___/
(__ ) / / / // // /_/ / __/ /
/____/_/ /_/___/ .___/\___/_/
/_/
+ -- --=[ https://xerosecurity.com
+ -- --=[ Sn1per by @xer0dayz
[>] This script will install sn1per under /usr/share/sniper. Are you sure you want to continue? (Hit Ctrl+C to exit)
y
[snip]
'/usr/share/sniper/sniper.conf' -> '/root/.sniper.conf'
Please run msfdb as a non-root user
[*] Adding start menu and desktop shortcuts...
[>] Done!
[>] To run, type 'sniper'!
root@snipertest:~/Sn1per#
インストール直後、インストールディレクトリのパーミッションは次のように設定されます:
root@snipertest:~/Sn1per# ls -ld /usr/share/sniper/
❗drwxrwxrwx❗ 10 root root 4096 Aug 16 19:19 /usr/share/sniper/
root@snipertest:~/Sn1per# ls -la /usr/share/sniper/
total 6668
drwxrwxrwx 10 root root 4096 Aug 16 19:19 .
drwxr-xr-x 222 root root 12288 Aug 16 19:41 ..
-rw-r--r-- 1 root root 36518 Aug 16 18:33 CHANGELOG.md
-rw-r--r-- 1 root root 1269 Aug 16 18:33 Dockerfile
-rw-r--r-- 1 root root 306 Aug 16 18:33 LICENSE.md
-rw-r--r-- 1 root root 11697 Aug 16 18:33 README.md
-rw-r--r-- 1 root root 6491364 Aug 16 18:33 Sn1per.gif
-rw-r--r-- 1 root root 159147 Aug 16 18:33 Sn1per.jpg
drwxr-xr-x 2 root root 4096 Aug 16 18:33 bin
drwxr-xr-x 2 root root 4096 Aug 16 19:41 conf
rwxr-xr-x 1 root root 11548 Aug 16 18:33 install.sh
drwxr-xr-x 9 root root 4096 Aug 16 19:42 loot
drwxr-xr-x 2 root root 4096 Aug 16 18:33 modes
drwxr-xr-x 43 root root 4096 Aug 16 19:27 plugins
drwxr-xr-x 2 root root 4096 Aug 16 18:33 pro
-rw-r--r-- 1 root root 276 Aug 16 18:33 sn1per.desktop
-rw-r--r-- 1 root root 4283 Aug 16 18:33 sn1per.png
-rwxr-xr-x 1 root root 28290 Aug 16 18:33 sniper
-rw-r--r-- 1 root root 9752 Aug 16 18:33 sniper.conf
drwxr-xr-x 4 root root 4096 Aug 16 18:33 templates
-rwxr-xr-x 1 root root 980 Aug 16 18:33 uninstall.sh
drwxr-xr-x 2 root root 4096 Aug 16 18:33 wordlists
すべてのファイルはrootが所有していますが、親ディレクトリのパーミッションによりファイルを操作できるため、スクリプトの1つにバックドアを仕込むことができます。もう1つの、おそらくよりステルス性の高い変更方法としては、sniper.conf設定ファイルにバックドアを仕込むことです。このファイルはbashのsourceコマンドで読み込まれるためです。
アプリケーションはスクリプト内のEUIDチェックによりrootで実行される必要があるため:
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root"
exit 1
fi
そこにバックドアを仕込んでおくと、次回アプリケーションが使用された際にroot権限で実行されます。
インストールスクリプトの37〜40行目:
mkdir -p $INSTALL_DIR 2> /dev/null
chmod 777 -Rf $INSTALL_DIR 2> /dev/null
chown root $INSTALL_DIR/sniper 2> /dev/null
chmod 4777 $INSTALL_DIR/sniper 2> /dev/null
CVE-2021-39274とは異なる問題です
アプリケーションをスキャナーとして初めて実行すると、メインスクリプトsniperがinit関数を実行し、インストールディレクトリとその内容のパーミッションを再帰的に変更します。
_CVE-2021-39274_と同様に、これにより実行ファイルや設定を含むすべてのアプリケーションファイルを変更でき、バックドアを仕込むことで、次回rootがアプリケーションを使用した際にroot権限で実行されます。
メインスクリプトの464〜466行目:
chmod 777 -Rf $INSTALL_DIR 2> /dev/null
chown root $INSTALL_DIR/sniper 2> /dev/null
chmod 4777 $INSTALL_DIR/sniper 2> /dev/null