Category Archives: Pen-Test

Se protegendo contra submits múltiplos (Brute-force)

Um tipo de ataque que pode causar uma parada bruta do PHP (e um possível DDoS) é uma “chuva” de submits, talvez uma tentativa de brute-force onde um (ou mais) formulário é preenchido e enviado várias vezes consecutivas na tentativa de derrubar o servidor ou só descobrir uma senha.

Isso acontece pois, dependendo do servidor e das configurações do mesmo, o PHP não vai conseguir dar conta de tantas requisições, vai ficar perdido e vai parar… Há como evitar esse tipo de “ataque” fazendo alguns ajustes no servidor e instalando alguns mods do Apache… Mas há também como se proteger disso direto no PHP, e é disso que vou falar hoje.

Antes de tudo vamos falar de algo óbvio, mas que pouca gente deve ter percebido: a variável global $_POST existe sempre… Independente se houve ou não um submit antes. Quando você está navegando pelo site o $_POST (que é um array) vai ser sempre vazio, sem elementos, e quando houverem dados para o PHP processar (depois de um submit) ele vai ser um array com elementos.
Então, no começo do nosso script, precisamos verificar se há algum valor dentro de $_POST, se ele não está vazio:

Agora que já sabemos quando houve um submit, vamos verificar se existe um valor salvo na sessão que nos informará a hora exata do último submit aceito pelo sistema (em UNIX TIMESTAMP)… Por questão de otimização de código também vamos colocar, direto no mesmo IF, uma verificação que compara esse horario buscado na sessão (caso ele exista) com o horário atual… Vamos direto ao script que vai ficar mais fácil de entender:

<?php
($agora - $segundos))) {
// O submit será bloqueado
}
}

?>

Php Injection + Notificando no Zone-H


Codigo Seguro:

Explorando o TCP

[Introdução]

Oi pessoal, este fazendo este tutrial com a finalidade de mostrar como detectar e *tabelar um Firewall, mostrar os estilos de scan que podemos realizar e quais pacotes são enviados e recebidos.

*Fazer uma lista das regras que estão inseridas em um Firewall.

[Scanners]

Daqui pra frente sera demonstrado as técnicas de varredura e explicando como cada uma funciona internamente. Para que não esta familiarizado com “handshake” eu recomendo que de uma estudada antes.

[TCP Connect]

É a forma mais básica de se realizar um scan (todo scan possuem esta opção). Uma vez que a porta esteja aberta o computador do atacante ira enviar um pacote SYN e terá que receber um SYN/ACK, em seguida enviar um ACK e um RST.

Obs: Muitos scan (ruins) enviam o pacote SYN e o SYN/ACK, mas esquecem de fechar a coneção com um RST.
Se a porta estiver fechada assim que for enviada um SYN ira receber um RST.

Porta Aberta
PC1 <———-<— SYN <———<—- PC2
PC1 —–>——–> SYN/ACK ——–>—–> PC2
PC1 <——<——- ACK< ————- PC2
PC1 <——-<—— RST <————- PC2

Porta Fechada
PC1 <———<—- SYN <——-<—— PC2
PC1 >——->—— RST >——->—— PC2

Comando no nmap:
nmap -sT IP

[TCP SYN]
Esta técnica é a que eu considero a melhor.
O computador envia um SYN e recebe um SYN/ACK e imediatamente envia um RST (diferentemente do TCP Connect que envia um ACK)
Esta técnica também é conhecida como Scan de meia coneção, pois ele não chega a realizar uma coneção completa com a porta.
Se a porta estiver fechada assim que for enviada um SYN ira receber um RST.

Porta Aberta
PC1 <———-<— SYN <———<—- PC2
PC1 —–>——–> SYN/ACK ——–>—–> PC2
PC1 <——-<—— RST <————- PC2

Porta Fechada
PC1 <———<—- SYN <——-<—— PC2
PC1 >——->—— RST >——->—— PC2
Comando no nmap:
nmap -sS IP

Tutorial Comando Nslookup

O comando NSLOOKUP solicita informações para Servidores de Domínios da Internet, podendo trabalhar em dois modos. No modo interativo pode-se interagir com vários Servidores de Domínios e com várias máquinas. No modo não interativo a solicitação de informações é específica para uma determinada máquina ou um determinado Servidor de Domínio.

O comando NSLOOKUP entra em modo interativo quando nenhum argumento de configuração é fornecido, ou quando o primeiro argumento é um sinal de menos (-) e o segundo argumento é o nome de uma máquina ou de um Servidor de Domínios. Quando nenhum agumento é fornecido, o comando estabelece que as solicitações serão feitas para o Servidor de Domínios da máquina onde esta executado o comando NSLOOKUP. Um conjunto de argumentos podem ser especificados no arquivo .nslookup, no diretório “home” do usuário.
O comando executa no modo não interativo quando o primeiro argumento é o endereço ou o nome de um Servidor de Domínio do qual serão mostradas as informações.
Podemos obter todas as opções do nslookup digitando no seu terminal man nslookup

SINTAXE DO COMANDO NSLOOKUP
nslookup [-Optção ...] [Host] [-Nameserver]

ARGUMENTOS DE INFORMAÇÕES
server NOME
Considera como default o servidor especificada pelo NOME.
lserver NOME
Este argumento usa o servidor inicial para procurar informações sobre o domínio especificado pelo NOME.
root
Troca o servidor default pelo servidor root do domínio.
finger [Usuário] [>FileName]
Conecta-se com o processo finger no host corrente. O host corrente é definido quando uma procura prévia por um host aconteceu com sucesso e retornou informações sobre o endereço da máquina. Este comando pode ser direcionado para que a saída seja um arquivo texto.
ls [Opção] Domínio [>Filename]
Lista as informações disponíveis para op dominio especificado. Este comando pode ser direcionado para que a saída seja um arquivo texto. O parametro Opção pode ser os seguintes :

*

-t QreryType onde a QueryType pode ser: (A – endereço do host internet, CNAME – nome canônico para um alias, HINFO – informações sobre a CPU e tipo de sistema operacional, KEY – chave de segunça, MINFO – lista informações dobre o mailbox ou mail, MX – trocador de mail, NS – servidor de nome para o named zone, PTR – se a pesquisa for pelo endereço internet é convertido para o nome da máquina, SIG – registro de assinatura, SOA – informações sobre o domínio, TXT – informações sobre textos, UINFO – informações sobre usuário, WKS – supporta serviços well-known)
*

-a Lista aliases dos hosts do domínio.
*

-d Lista todos os registros do domínio.
*

-h Lista informações da CPU e sistema operacional.
*

-s Lista serviços well-known dos hosts do domínio.