suidgidc.sh
Publicado por Fábio Berbert de Paula 13/11/2002
[ Hits: 5.705 ]
Homepage: https://fabio.automatizando.dev
Script usado para localizar arquivos com bit suid/gid no sistema.
#!/bin/bash
#Wed Aug 14 2002
#
# suidgidcheck.sh v1.1
#
# Localiza arquivos com permissoes suid/sgid.
# Alguns arquivos suid/sgid podem ser perigosos simplismente
# pelo motivo de que rodam com permissoes especiais. Varios desses
# arquivos podem conter "bugs", e kiddies podem esplora-los para
# obter acesso nao autorizado ou apenas afetar servicos
# nos sistemas vulneraveis.
# Consulte paginas web sobre seguranca de sistemas para verificar
# a necessidade desses arquivos, se caso negativo use o
# comando do script: ./suidgidcheck -nosuid "arquivo" para
# remover o bit suid/sgid do mesmo.
#
# Voce precisa ser root para utilizar esse programa.
#
# Coded by Carlos Carvalho
# h4sh@uol.com.br
# brasirc: #root #coders #linuxhelp #rockz
# www.linuxfiles.com.br
#
# Binario necessario: /usr/bin/find
#
# Adicionado na v1.1: Opcao de remocao do bit suid/sgid.
#
# ADICIONADO Fr Aug 2 02:03:58 GMT 2002 : Opcao de remocao do bit SUID/SGID.
# ADICIONADO Wed Aug 21 02:05:10 GMT 2002 : AutoRemocao do bit SUID
#Verificando /usr/bin/find
if [ -f /usr/bin/find ]; then
FIND=/usr/bin/find
else
echo "/usr/bin/find NAO foi encontrado."
echo "SAINDO DO PROGRAMA!"
exit 1
fi
#Criando os arquivos SUID.txt SGID.txt. Voce pode mudar a localizacao
#editando as duas linhas abaixo
SUID=~/SUID.txt
SGID=~/SGID.txt
#Localizando os arquivos suid
check_perm_suid ()
{
echo "A localizacao podera levar alguns minutos..."
> $SUID
$FIND / -perm +4000 -exec echo >> $SUID {} \;
TOTAL2=$(wc -l $SUID)
echo "Existem: $TOTAL2"
echo "Para visualizar: ./suidgidcheck.sh -readsuid"
exit 0
}
#Localizando os arquivos sgid
check_perm_sgid ()
{
echo "A localizacao podera levar alguns minutos..."
> $SGID
$FIND / -perm +2000 -exec echo >> $SGID {} \;
TOTAL=$(wc -l $SGID)
echo "Existem: $TOTAL"
echo "Para visualizar: ./suidgidcheck.sh -readsgid"
}
#Deletando os arquivos de database
delete ()
{
if [ -f $SUID ] || [ -f $SGID ]; then
rm -rf $SUID
rm -rf $SGID
echo "Database removida!"
echo "Done!"
exit 0
else
echo "Aqruivos NAO encontrados!"
echo "Done!"
exit 1
fi
}
#Mostrando suid database
readS ()
{
if [ -f $SUID ]; then
less $SUID
else
echo "Arquivo $SUID NOT existe"
echo "digite \"./suidgidcheck.sh -suid\" primeiro!"
fi
}
#Mostrando sgid database
readG ()
{
if [ -f $SGID ]; then
less $SGID
else
echo "Arquivo $SGID NOT existe"
echo "digite \"./suidgidcheck.sh -sgid\" primeiro!"
fi
}
#Removendo bit suid/sgid do arquivo
noSG ()
{
if [ ! -z "$FILE" ]; then
chmod -s "$FILE" 2> /dev/null
echo "Arquivo "$FILE" nao e mais suid/sgid file"
echo "Done!"
else
echo "usage: ./suidgidcheck.sh -nosuid \"caminho_completo_do_arquivo\""
fi
}
#Removendo bit suid dos arquivos contidos em (for file in * ; do)
#Se um arquivo nao existir no sistema, ele sera ignorado.
#Voce pode adicionar ou remover arquivos da lista, mas lembre-se: Eles devem
#respeitar a linha continua, NAO pressione "ENTER"!
autormSUID ()
{
echo "Bit SUID removido dos seguintes arquivos:"
sleep 1
for file in /bin/ping /bin/mount /bin/umount /sbin/cardctl /usr/bin/rcp /usr/bin/rlogin /usr/bin/rsh /usr/bin/at /usr/bin/lpq /usr/bin/lpr /usr/bin/lprm /usr/bin/mh/inc /usr/bin/mh/msgchk /usr/bin/suidperl /usr/bin/sperl5.003 /usr/bin/chfn /usr/bin/chsh /usr/bin/newgrp /usr/bin/crontab /usr/X11R6/bin/dga /usr/X11R6/bin/xterm /usr/X11R6/bin/XF86_SVGA /usr/sbin/usernetctl /usr/sbin/traceroute ; do
if [ -u $file ] ; then
chmod -s $file 2> /dev/null
echo "$file cleaned"
sleep 1
else
echo "$file untouched!"
sleep 1
fi
done
echo
echo "Sistema mais seguro agora!"
echo
exit 0
}
#Mostrando help (obvio Duh! :))
info ()
{
echo "
Usage:
./suidgidcheck.sh: mostra essa ajuda
./suidgidcheck.sh -suid: procura por suid
./suidgidcheck.sh -sgid: procura por sgid
./suidgidcheck.sh -readsuid: mostra database suid
./suidgidcheck.sh -readsgid: mostra database sgid
./suidgidcheck.sh -nosuid \"fullpathfile\": remove suid/sgid bit do arquivo
./suidgidcheck.sh -autorm: auto remocao SUID
./suidgidcheck.sh -del: remove database"
}
#Lendo os comandos
case $1
in
-suid)
check_perm_suid
;;
-sgid)
check_perm_sgid
;;
-readsuid)
readS
;;
-readsgid)
readG
;;
-nosuid)
FILE="$2"
noSG
;;
-autorm)
autormSUID
;;
-del)
delete
;;
*)
info
;;
esac
#EOF
Script simples de Backup para os diretórios listados abaixo do /
Mostrando um exemplo de redirecinamento
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
VOL já não é mais como antes? (9)
É normal não gostar de KDE? (13)
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)
Secure boot, artigo interessante, nada técnico. (4)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









