suidgidc.sh
Publicado por Fábio Berbert de Paula 13/11/2002
[ Hits: 5.806 ]
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
Transformando arquivos TXT em arquivos PDF
Adicionando usuários para email
Limpar e resolver erros de arquivos trava no APT
Nenhum comentário foi encontrado.
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Faça suas próprias atualizações de pacotes/programas no Void Linux e torne-se um Contribuidor
Como rodar o Folding@home no Linux
Criando um painel de controle (Dashboard) para seu servidor com o Homepage
O Abismo entre o Código e o Chão: Saltos Tecnológicos e a Exclusão Estrutural no Brasil
Utilizando a Ferramenta xcheckrestart no Void Linux
Pisando no acelerador do Linux Mint: Kernel XanMod, zRAM e Ajustes de Swap
Como compilar kernel no Linux Mint
Abrir um arquivo URL pelo Clipper (9)
Seno, Coseno, Tangente em CLIPPER (1)
Inserir uma URL num arquvo pelo Ubuntu (CLIPPER) (0)
VMWare Player não conecta na rede nem consigo intercambiar arquivos (1)









