[ pt
en ]
Todos os programas realizados por mim, quando falta de
outra indicação, estão disponibilizados sob a licença
GPL da
GNU, versão 2.
Coisas que fiz:
-
ipconf
- IPConf ajuda a configurar uma firewall.
Novas ligacoes serao permitidas se o par ip:porta destino
corresponder numa lista de ligacoes permitidas.
Existem listas para ligacoes de entrada, de saida, e de
encaminhamento, assim como distincao entre ligacoes UDP e TCP.
topo
-
webpam.tar.gz
- WebPam fornece um sistema para
configuração remota via Web do serviço PAM. Tem várias
características interessantes: não se usam ficheiros temporários;
as alterações são apenas aplicadas no final da operação; tem ajuda
on-line com informação sobre PAM; e apenas permite definir módulos
no sítio certo! :)
Este programa foi realizado como um trabalho para a cadeira de
Administração de Sistemas do curso de
LESI da
Universidade do
Minho, conjuntamente com o meu colega
Ricardo Costa.
Este programa é libertado sob o domínio público.
topo
-
bash-2.05b-loghist.patch
- Este é um pequeno patch para fazer com que a bash envie para o
syslog os comandos executados pelos utilizadores.
Versoes:
Para usar:
As opções de compilação e configuração existentes são as seguintes:
- -DLOGHIST: activa o suporte para registar os comandos
- -DLOGFAC=LOG_FACILITY: define o serviço de registo
(USER, AUTH, DAEMON, fazer man syslog.conf para mais
informação).
Por omissão é usado o serviço LOG_USER.
- -DLOGPRI=LOG_LEVEL: define o nível de gravidade do
registo (EMERG, CRIT, etc, ver o manual).
Por omissão é usado o nível LOG_INFO.
- -DNAMELEN=n: define o tamanho dos buffers que guardam
o nome equivalente ao uid, gid, etc. Por omissão este
tamanho é 32 bytes, mais que suficientes para um sistema
normal.
- -DLOGNUMERIC: regista apenas o valor numérico do pid,
uid, etc., em vez dos respectivos nomes.
- -DLOGMINUID=uid: regista apenas comandos executados
por utilizadores cujo uid seja superior ao especificado.
Por omissão são registados os comandos de todos os utilizadores.
- -DLOGGROUP=gid: regista apenas comandos executados
por utilizadores cujo gid seja o especificado.
Por omissão são registados os comandos de todos os utilizadores.
- -DLOGNOTGROUP=gid: regista apenas comandos executados
por utilizadores cujo gid nãoseja o especificado.
Por omissão são registados os comandos de todos os utilizadores.
topo
- randfile.c
- Este programa retorna um ficheiro escolhido aleatoriamente entre os
disponíveis numa determinada directoria. O programa tanto pode
retornar um ficheiro diferente de cada vez que esse ficheiro seja
aberto, ou então assim que passe um determinado período de tempo.
Modo genérico de chamar o programa: randfile -<tipo>
[<ciclos>] <ficheiro destino> <directoria com os
ficheiros originais>
Ciclos indica o número de vezes que o programa deve
retornar um ficheiro aleatório até sair.
Tipos de funcionamento:
- -p:
named pipe ou fifo
Este método garante que sempre que se abra o ficheiro
destino se obtenha um diferente, e também não se gasta
processamento ao verificar se o ficheiro já foi lido ou
não. Tem a desvantagem de nem todos os programas funcionarem
com este método (notavelmente o KDM), pois assim o ficheiro
não pode ser mmap(2)ed, nem lseek(2)ed.
- -f:
link simbólico
Este método recria de cada vez que o ficheiro é lido um
link simbólico a apontar para o ficheiro aleatório original.
Se não for possível criar o link, então é criada uma cópia
local desse ficheiro. Assim, fica suportado todo o tipo
de programas, à custa de uma cópia do ficheiro se o link
simbólico não for suportado pelo filesystem e por poucos
recursos gastos ao verificar periodicamente se o ficheiro
já foi lido e nesse caso susbtituí-lo.
- -t<tempo>:
substituição periódica
Este tipo usa o mesmo método do anterior, mas, em vez de
apenas substituir o ficheiro quando descobrir que já foi
lido, substitui-o após a passagem de um determinado
período de tempo especificado.
- -l:
listagem
Neste tipo o programa apenas imprime a lista aleatória dos
ficheiros! Útil caso pretenda uma lista assim. Tenha cuidado
para definir um número máximo de ciclos, caso contrário o
programa continuará indefinidamente!
topo
- ptun.c &
predir.c
- O programa
ptun cria um túnel tcp/ip através de uma
proxy até um servidor qualquer, dentro das limitações de configuração
da proxy.
O programa predir permite que o servidor que receba
essas ligações as reenvie para outros serviços ou outros servidores.
Este último torna-se necessário quando a proxy está configurada
para permitir CONNECT apenas a servidores HTTPS (porta 443), e nesse
caso basta colocar o predir com as devidas opções num servidor à
escuta nessa porta, e já se pode usar a proxy para ligações a outros
serviços no mesmo servidor ou em servidores diferentes.
Como usar:
- Compilar
cc -o ptun ptun.c
cc -o predir predir.c
- Executar
ptun: servidor:porta [ porta_local [ proxy
[ porta_da_proxy [ serviço (do predir) ] ] ] ]
predir: nome_serviço:servidor:porta ....
apenas é necessário especificar ou o nome de serviço
ou o servidor ou a porta, os valores por omissão
nesse caso depende do parâmetro fornecido.
Para mais informação, veja o cabeçalho do código
dos programas.
topo
-
rootjail-0.1.tar.gz
- RootJail foi criado para ajudar a criar root jails.
Essas jaulas caracterizam-se por um programa correr sem acesso
ao sistema de ficheiros do resto do sistema.
A criação dessas jaulas está restrita ao super-utilizador, e portanto
qualquer programa que queira usar essa característica de segurança
adicional terá que ser arrancado com permissões de super-utilizador,
mas se permanecer com privilégios de super-utilizador poderá
facilmente sair da sua "jaula". Mudar então um programa para que
corra dentro da jaula sem permissões de super-utilizador não é então
coisa trivial. Também não é assim muito difícil, mas com este programa
fica mais fácil: basta especificar a directoria onde se encontra o
programa, sob que utilizador se quer que o programa corra, e o
comando para executar, e o programa depois trata dos passos todos
para criar a jaula, perder os privilégios, e executar o programa.
Adicionalmente, o RootJail também verifica se o programa saiu, e
nesse caso volta a executá-lo, com algumas preocupações de DoS.
Para mais informação, veja o README.
topo
-
xcorner.c
- Xcorner é um simples e jeitoso programa
para executar comandos quando o cursor do rato é deslocado para um
canto do ecrã.
Os comandos podem ser executados normalmente, ou dentro de uma
janela do gnome-terminal (GNOME), konsole (KDE) ou xterm (X).
Para informação sobre como especificar essas opções, que comando
definir a que canto e outras opções veja o cabeçalho do
código fonte.
topo
-
inb-0.1.0.tar.gz
- O melhor jogo de estratégia é, quanto a mim, o
StarCraft.
Mas um problema que se impunha era como jogar em Multiplayer com
outras pessoas que não estivessem ligadas à nossa rede física
sem usar a Battle.Net.
Para resolver esse problema implementei o
INB, ou InterNetworkBridge,
que não é mais que uma bridge transparente (dispositivo que
interconecta duas ou mais redes físicas de forma transparente,
formando assim uma única rede lógica), com a característica de
não estar limitado a redes físicas directamente ligadas ao
servidor, mas poder usar ligações TCP/IP normais (modem,
cabo ou xDSL, frame relay, HDLC, etc.).
Detalhes sobre como compilar e executar e considerações sobre
segurança estão descritos na documentação que vem com a fonte
no pacote.
topo
-
squash-dgux-x86.c
- Este é um programa genérico para explorar vulnerabilidades de
programas no Unix da Data General
(DGUX) e assim obter privilégios adicionais.
O código assembly que será carregado no programa vulnerável
encontra-se descrito neste
ficheiro e as vulnerabilidades que já foram descobertas
neste aqui.
A advisory que enviei para a Bugtraq pode ser encontrada na
Security
Focus, na
Security
Team e na
Security Tracker.
topo
-
plug.c
- Este é um daemon semelhante ao predir acima: fica à escuta numa dada
porta e redirecciona as ligações a essa porta a outra porta ou
servidor.
Tem também a característica de permitir registar os dados
transmitidos em cada ligação.
topo
-
Antiguidades
-
Aqui encontrará alguns programas meus há muito
criados e que no decorrer do tempo foram perdendo bits e bytes e
partes, e tornaram-se obsoletos...
Por exemplo, um mini-howto
sobre como mudar o ProFTPd para que funcionasse em chroot
perdeu o patch necessário, e ainda bem pois o ProFTPd já
suporta chroots por directorias e utilizadores, e alguns
problemas de segurança no ProFTPd foram corrigidos...
As antiguidades são: autologin, chrooted proftpd, halt.com,
hexd.c, stat.c, play.bas.
topo
(c) 2002, Luciano Rocha
(Chave Pública GPG)