suidgidc.sh
Publicado por Fábio Berbert de Paula 13/11/2002
[ Hits: 5.519 ]
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 para baixar pacotes no Debian e derivados.
Facilitando a vida com Fedora 8
Script para "usuários" efetuarem a troca de Data e Hora com facilidade.
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Linux rodando do hd externo ou ssd? (4)
Firewall iptables - Rotear Interface Cliente (0)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta