Avançado
- Diferença entre Roteador e Access Point
- MITM
- Spoofing
- Mac changer
- IP spoofing
- ARP spoofing
- DNS spoofing/poisoning
- DoS
- SYN flood
- ICMP flood
- DHCP starvation
- Rogue DHCP
- Botnet
- Malwares
- LOIC
- HOIC
- Wifi
- WPS PIN brute forcing
- Deauth
- Website cloning
- Nmap
- Bettercap
- Wifi Pumpkin
- Reaver, Wash, Pixie Dust
- Linset
- Fake ap
- Wi-filax
- Protocolos
- Walkie talkie ("câmbio", "copiei")
- SUS (coleta de dados > triagem > médico)
- Protocolos vs Protocolos de comunicação
- Protocolo Walkie talkie: independente da pessoa/equipamento de walkie talkie
- Ideia: hardwares/softwares diferentes mas que conseguem se comunicar
- RFC (Request For Comments): IETF (Internet Engineering Task Force)
- Documento
- Dúvida: Qualquer um pode fazer parte da IETF?
- IP: Internet Protocol
- Host to Host (máquina a máquina)
- Semântico (!= do MAC) e hierárquico (País > Estado > Cidade > Rua > Número)
- Semântica ajuda nos protocolos de roteamento
- Octeto
- Máscaras de Sub-rede
- Classes
- Historinha dos IPs perdidos
- Ex: calcular máscara
- Ex: calcular número de hosts/redes
- Dúvida: Por que preciso de mais bits pra rede?
- Endereço de Rede (192.168.32.2/24 => 192.168.32.0)
- Bits de host zerados
- Dúvida: Pra que serve isso?
- Endereço de Broadcast (192.168.32.2/24 => 192.168.32.255)
- Bits de host settados
- Dúvida: Pra que serve isso? Fazer Broadcast!
- Ex: Ping broadcast
- IP não garante que o destino recebeu o pacote!!
- IPv5
- DHCP
- Alternativas ao IP
- Tooling: nmap (network scan => descobrir hosts ativos na rede), IP spoofing
192 .168 .254 .128 /24 11000000 10101000 11111110 11111110 RRRRRRRR RRRRRRRR RRRRRRRR HHHHHHHH (24) 11111111 11111111 11111111 00000000 255 .255 .255 .0 /??
- TCP
- Processo a processo/Inter-process communication (programa a programa)
- Portas
- Conexão (definida por um par de sockets)
- Socket (???)
- Número de série (garantir recebimento do pacote)
- Dúvida: o que é um socket 'listening'? (netcat)
- Three-way handshake (limite de conexões, hping3)
- Todo pacote do TCP deve ter um ACK correspondente (INCLUSIVE O SYN)
- SYN, SYN/ACK, ACK
- Outros tipos de pacotes: FIN, RES, etc.
- Curiosidade: Four-way handshake
- NAT (Network Address Translation)
- Várias máquinas atrás do mesmo endereço
- Diferenciação pela porta
- Ex: Call of Duty
- Tooling: nmap (portscan), hping3 (connection flood), netcat (nc, ncat,...)
- IP spoofing
- MITM/MITMA/MIM (Man in the Middle Attack)
- Connection flood
- Portscanning
- Nmap: Descobrir hosts conectados em alguma rede (https://resources.infosecinstitute.com/nmap/) e fazer um SYN flood nele com hping3
- Echo Server (python, socket.socket)/Client
- Xtra2: Ip spoofing
- Xtra3: Traceroute (o que é, como fazer)
- What is monitor mode? How do I read packets of networks I don't have access to?
- Interactive vs Non-interactive
- '-eval'
- '-caplets'
- Ticker: deamonizing commands
- ticker.
- ticker.period
- ARP spoofing
- Spoofs gateway by default (can be deactivated)
-
- Sniffer
-
- HTTP proxy (redirect http traffic)
- SSLStrip
Um ataque man in the middle (lit. homem no meio) é feito visando a enganar o computador da vítima a pensar que o atacante é o roteador (ou outro dispositivo / serviço pelo qual passem informações sensíveis) e também enganar o roteador (ou dispositivo / serviço... sensíveis) e fazê-lo pensar que o atacante é a vítima. Desse modo, todo o tráfego de dados passará pelo computador do atacante, e a conexão não será rompida. Portanto, o ataque é transparente ao uso cotidiano.
- Materiais:
- Bettercap cheat sheet: https://www.cyberpunk.rs/bettercap-usage-examples-overview-custom-setup-caplets
- Bettercap tutorial (gostei mais): https://www.kalitut.com/2019/04/how-to-install-and-use-bettercap.html#point3
Um ataque DoS visa impedir o acesso a determinado recurso ou serviço.
- Exemplos: excluir um arquivo (negação de acesso ao arquivo); impedir conexões em um servidor
No caso de impedir conex ões em um servidor alvo, deve-se inundar ("floodar") o tráfico de Internet dele. Normalmente, isso é feito por meio do envio de muitas requisições ao servidor, superando sua capacidade de receber novas conexões. Nesse sentido, podemos pensar que o servidor é uma grande avenida que se encontra com um trânsito de carros muito grande. Esse excesso de tráfego torna a entrada de outro veículo na avenida praticamente impossível.
Um jeito simples de fazer tal ataque é mandar uma requisição de conexão ou um ping com frequência superior a capacidade de processamento dessas requisições por parte do servidor.
- Resolver esse ataque é simples: basta fazer blacklist do IP do atacante.
Enquanto o ataque DoS parte de uma única máquina, o DDoS faz uso de múltiplos dispositivos conectados à Internet (computadores, dispositivos IoT, celulares etc.). Dessa forma, o ataque torna-se mais eficiente. Os dispositivos utilizados no ataque podem estar participando por boa vontade ou podem ser parte de uma botnet.
- Os dispositivos que formam uma botnet foram infectados por algum malware que dá ao atacante ("dono" do malware) controle remoto sobre cada um deles.
Resolver um DDoS já bem mais difícil, pois as requisições estão vindo de diversos dispositivos (IPs diferentes), fazendo com que o ataque pareça tráfego normal.
O atacante envia pacotes (ping ou alguma outra requisição) para um servidor (chamado de refletor) pedindo que o pacote seja repassado para outro IP, o do verdadeiro alvo.
- Esse ataque spoofa o IP do atacante, pois passa pelos servidores refletores.
Caso o ataque parta de uma máquina, resolvê-lo é simples, pois a banda de um servidor tende a ser muito maior do que a de um computador pessoal. Entretanto, esse ataque também pode ser um DDoS.
Nesse ataque, faz-se uso de requisições spoofadas para servidores mal-configurados. Uma certa quantidade de pequenas requisições com o IP spoofado do servidor alvo é enviada para servidores acessíveis. Os servidores respondem para o IP do alvo com pacotes muito maiores (amplificados), floodando o serviço de forma muito mais fácil.
Pode-se amplificar o ataque usando um comando de EDNS0, que aumenta o tamanho do pacote de resposta (até 70 vezes maior), ou usando o comando mullist do protocolo NTP, que aumenta o tamanho do pacote de 20 a 200 vezes.
ADoS não são triviais de serem resolvidos, o melhor jeito é blacklist todos os servidores envolvidos no ataque e esperar passar.
O sistema memcached:
Memcached é um cache "in-memory" bem veloz usado para acelerar aplicações web dinâmicas, aliviando o carregando a partir de bases de dados. Por exemplo, uma aplicação manda uma requisição para o servidor memcached antes de mandar para um bando de dados. O servidor memcached armazena respostas de requisiões comuns, portanto, se ele tem a resposta para a requisição feita, o banco de dados sequer é acessado. Do contrário, o memcached responde que não tem o conteúdo e uma requisição é enviada ao banco de dados. Além disso, a memória "sobrando" em certas partes do sistema Memcached é disponibilizada para áreas nas quais falta memória (isso aumenta virtualmente a quantidade de cache disponível)
O ataque:
O ataque funciona da mesma forma que um ADoS. Ele só é possível pois os servidores memcached, por padrão, operam usando o protocolo UDP. Logo, como não há handshake, dados podem ser enviados ao servidor alvo sem o real consentimento dele.
São enviadas requisições spoofadas (com o IP do servidor alvo) para o servidor memcached, que responderá com pacotes de tamanhos muito maiores ao alvo, floodando-o e impedindo que ele processe outras requisições.
Para defender-se: desabilite UDP no servidor memcached e use firewall.
Outra maneira de atacar servidores é usando ataques de protocolo (camadas 3 e 4 do modelo OSI), como o Slow Lorris e o R.U.D.Y.
Ambos esses ataques consistem no estabelecimento de conexões com o servidor e no envio extremamente lento (e constante) dos bytes de cada pacote, utilizando pouca banda e mantendo todas as conexões abertas.
- Slow Lorris faz uso de requisições do tipo HTTP GET
- R.U.D.Y. faz uso de requisições do tipo HTTP POST
Se feito corretamente, um computador "caseiro" pode parar um servidor comercial sozinho.
É o ataque explora o funcionamento do TCP para estabelecer conexões(o three-way handshake).
No handshake, o servidor fica esperando um pacote de confirmação (ACK packet) para estabelecer a conexão. Portanto, o atacante envia muitos pacotes SYN (e nenhum pacote ACK!), fazendo com que o servidor fique esperando a confirmação de cada conexão (que nunca chega). Assim, o servidor torna-se incapaz de abrir uma conexão real pelo número de requisições em aberto.
Uma possível solução é realizar uma filtragem dos pacotes.
É o ataque que utiliza ping (echo) requests. Use-se o protocolo ICMP, que exige um consumo de banda para envio e para resposta. O objetivo é sobrecarregar o alvo por meio do envio de muitas requisições ICMP - obrigando o servidor a responder a todas -, superando sua capacidade de responder a conexões.
Para evitar esse ataque, é possível desativar a funcionalidade ICMP do servidor, impedindo o envio de requisições ping ou traceroute.
Esse ataque visa floodar servidores DNS (os "DNS resolvers"), impedindo que haja resoluções DNS - comprometendo, portanto, a capacidade do servidor alvo de responder à tráfego legítimo (a não ser que a pessoa utilize IPs para conectar-se a algum endereço).
Esse ataque requer muita banda para ser efetivo.
- Obs: Se você não conhece a Phrack, é muito importante tanto para cultura hacker/histórico quanto sobre conteúdo de primeira em geral
- Protocolo usando para transmitir HTML via internet
- Não usa criptografia alguma (tudo em texto plano)
- HTTPS: HTTP uasndo criptografia (SSL/TLS)
HTTPS funciona primariamente baseado em confiança, ou seja, é preciso confiar no servidor com o qual você está falando. Para isso, SSL/TLS são equipados com certificados.
Certificados são documentos assinados por instituições em quem o cliente confia a priori: as Autoridades Certificadoras (CAs). Esses documentos garantem que o servidor com o qual um determinado cliente está falando é confiável e, mais, que é ele mesmo (não uma cópia feita por um atacante).
Para ilustrar isso melhor imagine que Merindrola é o site que quer "provar" para o cliente Marcelo (popularmente conhecido como 'Batatinha') que ela é um site leígitimo e não uma cópia. Batatinha é grande amigo do Carlos (a Autoridade Certificadora), e confia 100% nele. O que acontece quando uma Autoridade Certificadora assina um certificado de um servidor é equivalente a Carlos dizendo a Batatinha que Merindrola é parça (morô?).
CSR (Certificate Signing Request): Requisição feita do servidor para a CA para que seja emitido um certificado para o a aplicação.
Self-Signed Certificate: Certificado assinado por uma "Autoridade Certificadora" criada pelo próprio site/app (nada seguro, deve ser usado somente para testes)
Obs.: Veja o vídeo nos materiais adicionais sobre Certificados e Autoridades Certificadoras.
- Política de segurança para garantir obrigatoriedade no uso de HTTPS
- Na prática, HSTS é nada mais que um header contido na resposta do servidor ao cliente
- Quando um cliente recebe alguma resposta do servidor com o header
Strict-Transport-Security
significa que todos os requests feitos para o servidor após aquele deverão usar HTTPS (nunca HTTP) por um certo período de tempo - Header
Strict-Transport-Security
max-age
: tempo em segundos da validade do HSTS (em segundos)includeSubDomains
: todos os subdomínios também só poderão ser acessados por HTTPS
- O primeiro pacote mandado pelo cliente ainda usa HTTP, pois é o servidor que deve especificar, através do header HSTS, a obrigatoriedade do HTTPS. Portanto, é ainda possível estabelecer o SSL Stripping, mas somente na interceptação do primeiro request feito em HTTP pelo cliente.
- "Because HSTS is time limited, it is sensitive to attacks involving shifting the victim's computer time e.g. using false NTP packets." (Wikipedia)
- [Listas de Preload do Firefox](https://wiki.mozilla.org/SecurityEngineering/HTTP_Strict_Transport_Security_(HSTS)_Preload_List)
A primeira coisa que precisamos entender é que Internet e Web são coisas diferentes. Acredite se quiser, existiu um tempo em que a Internet existia mas a Web não -- mais precisamente, de 1969 até 1989.
Internet é a rede mundial de computadores, trata-se da infraestrutura: cabos, roteadores, protocolo IP (Internet Protocol). Tudo isso forma a internet.
A Web, ou World Wide Web, é uma aplicação distribuída que usa a infraestrutura da internet. É o conjunto de servidores web (servidores HTTP/HTTPS) e clientes web (browsers, curl, etc.) que trocam páginas HTML. Quando ouvir falar de Web, pense em páginas HTML (hoje em dia vêm acompanhadas de JavaScript e CSS), protocolos HTTP e HTTPS.
- sockets
- portas TCP
- portas UDP
São interfaces, conjuntos de padrões de ações, entradas e saídas, para interação de clientes com servidores. A grande vantagem das APIs é que elas abstraem chamadas de funções em um servidor.
Por exemplo, imagine que a Merindrola quer fazer um site para mostrar informações sobre o clima na cidade dela: São Carlos (SP). Ela então vai no site do INPE e descobre como funciona a API deles. A API do INPE é razoavelmente simples, vamos pegar como exemplo a previsão do tempo dos próximos 4 dias: 1. Você manda para eles uma requisição com o código da localidade (encontrado aqui):
http://servicos.cptec.inpe.br/XML/cidade/codigo_da_localidade/previsao.xml
- 1.Achado o código, que no caso da Merindrola é 4774, fazemos uma requisição GET na url (aqui, vamos usar o
wget
para exemplificar):$ wget http://servicos.cptec.inpe.br/XML/cidade/4774/previsao.xml - 2.Temos como retorno um arquivo, nesse caso é
XML
, mas poderia serJSON
, que é mais comum atualmente:<?xml version='1.0' encoding='ISO-8859-1'?><cidade><nome>S�o Carlos</nome><uf>SP</uf><atualizacao>2019-10-02</atualizacao><previsao><dia>2019-10-02</dia><tempo>ps</tempo><maxima>33</maxima><minima>17</minima><iuv>11.0</iuv></previsao><previsao><dia>2019-10-03</dia><tempo>ps</tempo><maxima>32</maxima><minima>20</minima><iuv>10.0</iuv></previsao><previsao><dia>2019-10-04</dia><tempo>ps</tempo><maxima>32</maxima><minima>17</minima><iuv>11.0</iuv></previsao><previsao><dia>2019-10-05</dia><tempo>ps</tempo><maxima>33</maxima><minima>20</minima><iuv>11.0</iuv></previsao></cidade> - 3.O arquivo pode parecer confuso, mas como tudo relacionado a APIs, ele segue um padrão e, claro, esse padrão está especificado também na página do INPE.
- 4.Finalmente, Merindrola pode parsear esses dados e fazer seu site lindamente.
Existem vários jeitos de se fazer uma API, vamos falar sobre dois padrões famosos de APIs: SOAP e REST.
- SOAP (Simple Object Access Protocol) é um protocolo de troca de informações para serviços web. APIs que fazem uso desse protocolo utilizam XML para se comunicar. Uma característica do SOAP é que ele pode ser utilizado com a maioria dos protocolos de transporte, como HTTP, SMTP, TCP etc.
- REST (Representational State Transfer) é uma estilo de arquitetura para serviços web. APIs que fazem o uso dessa arquitetura são chamados APIs RESTful. Seu protocolo de transporte é necessariamente HTTP/HTTPS e APIs RESTful podem utilizar diferentes formas de transferncia de dados, como JSON, XML e YAML. Ela segue 6 princípios:
- Arquitetura cliente-servidor
- Sem monitoramento de estado
- Capacidade de cache
- Sistema em camadas
- Código sob demanda (opcional)
- Interface uniforme