
Duas vulnerabilidades de segurança identificadas na versão gratuita do Sn1per v9.0 pela XeroSecurity
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#
Logo após a instalação, as permissões do diretório de instalação são definidas como:
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
Embora todos os arquivos sejam de propriedade do root, as permissões do diretório que os contém nos permitem manipular os arquivos, portanto, uma backdoor pode ser colocada em um dos scripts. Outra modificação, provavelmente mais furtiva, seria colocar a backdoor no arquivo de configuração (sniper.conf), pois este arquivo é carregado via comando source do bash.
Como a aplicação deve ser executada pelo root, garantido por uma verificação de EUID no script:
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root"
exit 1
fi
colocar uma backdoor nele fará com que seja executada com privilégios de root na próxima vez que a aplicação for utilizada.
Linhas 37-40 do script de instalação:
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
Problema diferente do CVE-2021-39274
Na primeira execução da aplicação como scanner, o script principal sniper executa a função init que altera recursivamente as permissões do diretório de instalação e seu conteúdo.
Assim como no CVE-2021-39274, isso permite a modificação de todos os arquivos da aplicação, incluindo executáveis e configurações, e a colocação de backdoors neles que seriam executadas com privilégios de root na próxima vez que a aplicação for usada pelo root.
Linhas 464-466 do script principal:
chmod 777 -Rf $INSTALL_DIR 2> /dev/null
chown root $INSTALL_DIR/sniper 2> /dev/null
chmod 4777 $INSTALL_DIR/sniper 2> /dev/null