quarta-feira, 29 de outubro de 2008

APRENDENDO APROGRAMAR
Quando vemos um programa que realiza operações fantásticas, que nos é útil no trabalho ou nos diverte, sempre surge a pergunta: será difícil fazer algo assim? A resposta varia conforme a complexidade do programa, mas todos se baseiam em princípios básicos e fundamentais que estão presentes em todas as linguagens de programação: Programming Concepts, ou Conceitos de Programação.
Linguagens de programação? O que são?

Linguagem de computador é um meio de passar instruções para serem interpretadas por um computador. Toda linguagem possui uma sintaxe (forma de escrita) própria, regras de utilização de suas rotinas, e um conjunto de funções que facilitam operações corriqueiras. Podemos passar instruções para o computador na forma como ele entende, ou seja, através de uma seqüência de bits (“0”s ou “1”s). Mas isto é difícil para seres humanos compreenderem! Mesmo assim, durante muito tempo esta foi a única forma, e ainda hoje se faz de forma semelhante, em algumas situações. Quando usamos uma linguagem muito próxima à do computador, dizemos que é uma linguagem de baixo nível. Quando a linguagem se parece mais com nossa linguagem natural, executando funções através do uso de palavras (normalmente verbos) em uma língua que compreendemos, dizemos que a linguagem é de alto nível.

E qual linguagem é a melhor?

Programadores experientes respondem esta pergunta da seguinte forma: a melhor linguagem é a que você melhor domina e resolve seus problemas. Não existe linguagem melhor ou pior, existe linguagem mais apropriada para determinada aplicação. E muitas vezes mais de uma é eficiente para o mesmo fim, então a escolha passa por outros critérios: ambiente, desempenho, facilidade de aprendizado e até mesmo gosto pessoal. Portanto, não vale a pena entrar em “flamewars” e discutir qual a melhor linguagem de programação, pois certamente o gosto pessoal vai falar mais alto e ninguém vai convencer o outro de sua escolha!
Tantas linguagens, qual eu escolho?

Para escolher a linguagem é preciso definir antes no que você pretende trabalhar. Se vai trabalhar produzindo para internet, possivelmente vai optar entre PHP, Ruby, Perl, Python ou Java. Se a necessidade é escrever um driver para conectar um dispositivo, como uma impressora, possivelmente a escolha é C ou C++. Para produzir um aplicativo gráfico para rodar no Gnome ou KDE, pode escolher C, C++, Java – mas ainda pode usar Python, e até PHP! Se vai fazer scripts na linha de comando, Bash Script, ou Perl, ou Python, ou PHP... Mas que salada! E agora? E olha que ainda nem comparamos as características de cada linguagem, foco, ambiente de desenvolvimento... Difícil? Deixe que as necessidades de seu trabalho indiquem o caminho, converse com colegas, acompanhe as tendências, veja em que linguagens são produzidos aplicativos semelhantes ao seu... e experimente!
Ok, mas por onde começo?
Todas as linguagens possuem princípios básicos em comum. Na hora de “resolver um problema” podemos criar a lógica de resolução (que chamamos de algoritmo), uma seqüência de passos que conduz à solução. Isto independe de linguagem, e uma vez que tenhamos esta lógica de resolução, podemos implementar em qualquer linguagem. As linguagens modernas incorporam um conceito muito importante, que é a Programação Orientação a Objetos. Nesta visão, as “peças” do software são consideradas classes, que definem os objetos do mundo real com suas características (atributos) e ações (métodos). Independente da linguagem a ser escolhida, compreender orientação a objetos e algoritmo é o começo.
E isso não é muito complicado?
Não precisa ser. Os métodos utilizados na maioria dos cursos e universidades para ensinar estes conceitos básicos envolve o aprendizado de uma linguagem de programação. O problema é que além ser preciso aprender a lógica e os conceitos, ainda é preciso estudar as regras da própria linguagem – e isto envolve a sintaxe, regras, abre/fecha colchetes, põe ponto e vírgula, parâmetros das funções, etc. Deste modo realmente pode ser complicado. Mas o curso Programming Concepts utiliza uma ferramenta que permite criarmos “mundos virtuais”, o Alice (www.alice.org). Com o Alice não é preciso escrever código para programar, nem é preciso dominar uma linguagem específica. Um ambiente virtual em 3D para aprendizagem de conceitos de programação.
Alice? No país das maravilhas?
Apesar do nome do programa basear-se na personagem Alice da famosa história, é apenas uma referência ao conceito de criação de “mundos virtuais”. Há várias personagens, e no curso Programming Concepts vamos trabalhar com personagens medievais – construindo histórias que lembram jogos. E isto não é uma brincadeira, mas um jeito divertido e interessante de aprender conceitos imprescindíveis para a carreira de programador.

E como vou aprender utilizando um jogo?
A interface do Alice já começa com o conceito de orientação a objeto logo de cara: todas as personagens são classes, quando lhes damos um nome tornam-se objetos, suas características são atributos, suas partes são outras classes, suas ações são métodos. Quando precisamos “contar uma história”, usamos os recursos de drag-and-drop (arrastar e soltar) e vamos compondo o “roteiro”, que nada mais são que rotinas baseadas nos métodos das classes. É possível reagir a eventos, então podemos interagir com a ação das personagens, colocando inteligência de decisão através da programação. Todos estes conceitos são absorvidos sem a necessidade de se escrever uma linha de código! E são base para qualquer linguagem de programação que o aluno escolher no futuro.

quinta-feira, 16 de outubro de 2008

Invasão a Web Site

Você provavelmente já ouviu falar que um determinado grupo de 'crackers' pichou o website de uma instituição. Esse tipo de notíciachama a atenção da mídiae, infelizmente, é cada vez mais frequente.
@page
{;}
.ExternalClass P
{margin-bottom:0.21cm;}
@page
{;}
.ExternalClass P
{margin-bottom:0.21cm;}
O próprio site do HackerTeen já foi pichado por crackers, assim como osecurityfocus.com, mcafee.com (na verdade o site de serviços de segurançado sites deles), hackinthebox.org e zone-h.org. Todos apresentaram vulnerabilidades e devem ter evoluído sua segurança após a pichação, mas ainda assim não podemgarantir que estão 100% seguros e nunca mais serão pichados.
Sites famosos estão mais sujeitos a ataques, pois conferem notoriedade e fama ao pichador. Aliás, nem todo cracker está interessado em dinheiro e fraudes. A maioria está interessada em ganhar notoriedade entre seus pares, outros crackers.
Identificando vulnerabilidades...
@page
{;}
.ExternalClass P
{margin-bottom:0.21cm;}
Uma classe de vulnerabilidades que permitem execução de código malicioso são os ataques de Injeção de Código, ou como são conhecidos na Internet, os famosos "injections". Eles permitem que um atacante insira um determinado código ou mesmo reescreva todo o conteúdo de um website. Para que isso ocorra, o site deve estar vulnerável a este tipo de ataque.
Principais técnicas...
@page
{;}
.ExternalClass P
{margin-bottom:0.21cm;}
Dentre as técnicas de injection disponíveis, as mais famosas são as técnicas de SQL Injection.
Estas técnicas aproveitam falhas na aplicação ou práticas ruins de desenvolvimento para explorar o servidor remoto.
Na prática...
@page
{;}
.ExternalClass P
{margin-bottom:0.21cm;}
Para termos uma idéia de como isso ocorre, vamos fazer uma busca simples no Google.
Vamos procurar pelo meu nome, e então, observe sua barra de endereço:
http://www.google.com.br/search?hl=pt-BR&q=yago+&btnG=Pesquisar&meta=
Note que este endereço é composto de uma seqüência de variáveis, cada uma com um valor diferente. A variável q (q=yago) é a variável utilizada pela aplicação do Google que faz a busca em um banco de dados, e então apresenta o resultado ao usuário.


Faça você este teste...
@page
{;}
.ExternalClass P
{margin-bottom:0.21cm;}
@page
{;}
.ExternalClass P
{margin-bottom:0.21cm;}
Copie o endereço acima, e cole no seu navegador, substitua a palavra 'Yago' por 'segurança', e então aperte 'Enter'.
Note que tanto o resultado da busca quanto as palavras na caixa de pesquisa foram alteradas, ou seja, colocamos um valor na URL e ela afetou o comportamento e a visualização da página da aplicação Google, o mesmo príncipio utilizado no SQL injection.
Claro que isso não é uma invasão, e não foi usada nenhuma técnica especial além da observação.
Sabendo que este comportamento é possível em websites e aplicações web, os crackers passam a observar e testar o site do alvo em busca de alguma informação que possa levar a uma falha, como por exemplo, uma consulta que retorna erro ou uma página inexistente, ou seja, ele busca um indicio que é possível realizar SQL Injection na página.
Como pensa o cracker...
@page
{;}
.ExternalClass P
{margin-bottom:0.21cm;}
Um cracker pode fazer uma consulta incluindo operadores especiais no Google com a seguinte string: allinurl: produto.asp?id=
A busca acima poderia indicar a existência de listagens de produtos em um site de comércio eletrônico. Em pouco tempo, o cracker consegue uma lista de sites que correspondem a essa busca. De posse desta lista, o cracker começa a procurar por vulnerabilidades.
Vamos imaginar que o seguinte site foi encontrado:
www.sitealvo.com.br/produtos.asp?id=666
Para testar o site, o atacante simplesmente acrescenta um ' ao final da URL, digitando assim o seguinte endereço:
www.sitealvo.com.br/produtos.asp?id=666'
Um site programado com possíveis problemas de segurança, retornará um erro semelhante a este:
Microsoft OLE DB Provider for SQL Server error '80040e14'
Line 1: Incorrect syntax near ''.
/produto.asp, line 12
Ao contrário, se a programação do site estiver mais cuidadosa, ele retornará algo como a seguinte frase:
"Caracteres Inválidos no campo id"
Conhecimento em programação...
É ai que entra o conhecimento em programação do cracker. A partir da localização deste erro e do conhecimento de que existem práticas descuidadas de programação, ele poderá inserir comandos e scripts que serão executados pelo site da vítima, levando à pichação e mesmo à fraude, como alteração de preço de produtos, negação de serviços, implementação de backdoors e outras atividades ilicítas.
Exemplo:
www.sitealvo.com.br/produtos.asp?id=666 and 'SELECT password FROM costumers'
Com este comando, o cracker traria as senhas dos clientes cadastrados no site, por exemplo
Reforce a segurança do seu website...
@page
{;}
.ExternalClass P
{margin-bottom:0.21cm;}
Para se proteger desses ataques, é necessário utilizar boas praticas de programação aliadas a uma política de segurança local dos servidores web, ou "hardening".
Para prevenir alguns problemas é recomendado que alguns parâmetros de PHP sejam configurados no php.ini:
allow_url_fopen = Off
safe_mode = On
magic_quotes_gpc = On
display_errors = OffVocê estará protegendo...
Este conjunto de instruções impedem que URLS externas sejam interpretadas pelo PHP, obrigam as aplicações a rodarem com UID/GID definidas, protegem caracteres especiais utilizadas em SQL Injection, como o ' (aspas) do exemplo acima e a última impede que mensagens de erros sejam mostradas no browser, dificultando a análise do atacante.Para os servidores de banco de dados...
@page
{;}
.ExternalClass P
{margin-bottom:0.21cm;}
Utilize criptografia nas senhas, utilize privilégios distintos para o dono do banco e para os objetos do banco. O programador deve sempre fazer tratamentos das querys e sempre checar os dados antes de enviar para o sistema gerenciador de bancos de dados. Por exemplo, se você espera que o usuário digite um número, tenha certeza de que o dado realmente é um número válido, antes de realizar a consulta.Para a servidor web...
Tenha cuidado com as permissões do diretório do servidor web, permissões incorretas de gravação em um arquivo php, por exemplo;
Fique atento às permissões especiais para diretórios;
Esconda as assinaturas que exibem a versão do servidor e módulos utilizados: Para o Apache, habilite a opção "server signature off" no arquivo de configuração;
Mantenha os serviços sempre atualizados, e não mantenha instalado aquilo que você não pretende utilizar, por exemplo, NFS em um servidor Web;
Tenha cuidado com as permissões dos executáveis em servidores web. Um atacante pode usar ferramentas simples como clientes FTP e clientes web (o wget, por exemplo) para iniciar o download de código malicioso ou kits de invasão para o servidor em ataque;
Tenha cuidado com os parametros de montagem de dispositivos;
A partição /tmp é o alvo preferido de crackers porque possui permissão de escrita, leitura e execução para todos. O uso de técnicas simples, como configurar a partição com parâmetros noexec impede que o cracker execute alguma ferramenta a partir do /tmp;Observe as permissões especiais...
Existem permissões especiais, como o SUID BIT, que permitem que qualquer aplicação seja executada com permissões de root, o que pode comprometer a segurança. Faça testes periódicos e elimine arquivos com permissão SUID.
Uma maneira simples de efetuar esta busca é executar o comando:
# find / -perm -4000Sempre analise o conteúdo das pastas que podem ser escritas pelo usuário que executam os serviços web;
Sempre cheque a integridade dos arquivos disponibilizados no seu servidor web. A instalação de uma aplicação automatizada para isso, como o AIDE, facilita bastante a criação das somas de checagem e sua conferência;
Analise constantemente os registros de atividades (logs) do seu servidor;
Analise constantemente as informações vitais do seu servidor: consumo de disco, banda e memória. Alterações significativas podem ser sinal de algo errado;
Elimine serviços não usados;
Mantenha uma política de atualização de software;
Saiba quem acessa e o que faz em seu servidor. Uma política de acesso controlada com uso de sudo e registro de operações é fundamental;
Documente: A inexistência de documentação pode levar a soluçoes de contorno que podem expor a segurança;
Comunique: Modificações não comunicadas e não analisadas podem levar a problemas de segurança;
Mantenha-se antenado: Busque informações sobre problemas de segurança enfrentados por outros administradores ou nos boletins de segurança.Observe as permissões especiais...
Utilize práticas de desenvolvimento seguras;
Faça tratamento de erros nas mensagens;
Nunca acredite nos dados que foram digitados, sempre efetue validações. Tanto no lado cliente como no lado servidor;
Crackers são criativos, sua defesa também é a criatividade. Passe um bom tempo imaginando o que faria se fosse um cracker.;
Não acredite que algo é seguro. Ele pode estar seguro, mas mentes criativas estão tentando encontrar formas de torna-lo inseguro.Teste as aplicações antes que alguém faça isso por você!Apesar dessas medidas serem interessantes, elas não garantem segurança 100%. Nenhuma medida terá 100% de garantias. A insegurança estará sempre à frente da segurança, basta assistir ao filme "Prenda-me se for capaz"
@page
{;}
.ExternalClass P
{margin-bottom:0.21cm;}
Para saber mais:
http://app.aknamail.com.br/emkt/tracer/?2,99898,077ed481,4012,2Próximos assuntos...
Programas que fazem ví­rus;
Como os crackers tornam o vírus invisí­vel;
Exploração de dispositivos móveis;
Criptografia.

Conte comigo, sua fonte completa e confiável de informações!

Truques para Msn

Esse tutorial ensina como fazer com que seus amigos caiam do MSN, assim tendo que reiniciar o messenger, estes metodos foram todos testados e funcionam corretamente.


Tamanho:
8.0 KB
Hospedado no EasyShare


sábado, 6 de setembro de 2008

Tutorial Ultilizando o PRORAT 1.9

Tutorial Ultilizando o PRORAT 1.9

Em primeiro lugar baixe o programa (que eu recomendo pra quem quer um programa facil e bom)
e pode ser baixado aqui no blog mesmo Informação:
O prorat possui uma forma de criar trojan (cavalo de troia)
intão muitos
AV vão detectar, então se o seu detectar você pode simplimente desativalo para instalar e toda vez que for usar (igual eu faço).
Para instalar extria (descompactar) o prorat (recomendo Winrar).
Depois que estraie, criei uma pasta chamada ProRat_v1.9 no local onde você fez o download. Pronto instalado. A senha pra extração (descompactar)
é: pro. Como mexer:
1°- abra o programa
2°- Vá em Criar e selecione
Criar server. Selecione as opções de icone, tipo de arquivo, qual arquivo juntar, senha de conecção
(normalmente: 123456). e finalmente aperte criar.
O servidor (trojan) será criado na pasta do prorat com o icone que você escolher e com o nome server.exe
(ou ponto o tipo de arquivo que você escolher - .com, .bat, etc). Renomeie o server, e pronto está pronto para ser usado 3°- Envie o arquivo por MSN para uma pessoa. 4° enquanto o arquivo tiver sendo baxado vá no MSDOS (Caso seja WinXP vá em executar e digite cmd).
No MSDOS digite netstat -n e precione enter (é importante que nenhum programa esteja aberto apenas a pessoa para quem o arquivo está sendo enviado).
Aparecera uma lista de IPs.
O IP da pessoa é o que começa com 200 ou 201 no lado direito. No caso da foto marcado com um +.5°- Após pegar o IP e a pessoa ter entrado no programa entre no programa Pro Rat e digite o IP da pessoa aonde pede IP. Não modifique mais nada. Precione Conectar e aparecera uma telinha pedino senha. Se não tiver modificado a senha será 123456, aperte OK e pronto você está hackiando.
OBS: você pode formatar, pegar senha, fazer downloads dos arquivos da pessoaa, deletar, entra no dos, mandar falsas mensagens, virar a tela da pessoa, até entrar em chat com a pessoa e muito mais. Aproveite!

sexta-feira, 13 de junho de 2008

Pegue qualquer rede sem fio bloqueada


Pegue qualquer rede sem fio bloqueada


Sabe aquela internet sem fio que seu vizinho tem só que não da pra você usar porque ele colocou senha? Pois é, esse programa serve justamente pra isso, QUEBRAR as senhas de quem põe em Redes Wireless.É só atualizar como aparece no primeiro botão em alto relevo da figura abaixo, que ele dará o nome das redes disponíveis: