PowerShell for penetration testers – Introduction
Configurar uma placa de rede Personalizada no VMware Fusion PRO
Análise inicial de Malware.
Esta é uma apresentação que fiz há uns anos e que tem por objetivo mostrar como podemos fazer uma análise inicial de malware.
Serve para qualquer pessoa pelo menos ter um conhecimento adicional do malware que a infecta e ter informação necessária para poder realizar pesquisas e trocar conhecimento nos fóruns para o efeito.
Aqui fica o Vídeo e espero que seja útil.
www.hjfr-info.com/MyPresentations/AnaliseEstaticaBasicaMalware/index.html
NetFlow vs Sflow
Netflow vs Sflow
Netflow:
- todos tem o mesmo ip de origem
- todos tem o mesmo ip de destino
- todos tem a mesma source port
- todos tem a mesma destination port
- todos tem de ter o mesmo protocolo L3
- Todos tem de ter o mesmo valor de tipo de serviço (TOS value)
- Mesmo interface fisico ou virtual.
Os primeiros 4 são os que definem o “flow”
R1(config-if)# ip flow ingress
R1(config-if)# ip flow egress
R1(config-if)# exit
R1(config)# ip flow-export destination 10.1.10.100 99
R1(config)# ip flow-export version 9
R1(config)# ip flow-export source loopback 0
R1(config)# end
IP packet size distribution (255 total packets):
1-32 64 96 128 160 192 224 266 268 320 352 384 416 448 480
.000 .000 .000 1.00 .000 .000 .000 .000 .000 .000 .000 .000 .000 .000 .000
512 544 576 1024 1546 2048 2560 3072 3684 4096 4608
.000 .000 .000 .000 .000 .000 .000 .000 .000 .000 .000
IP Flow Switching Cache, 4456704 bytes
1 active, 65535 inactive, 1 added
32 ager polls, 0 flow alloc failures
Active flows timeout in 30 minutes
Inactive flows timeout in 15 seconds
IP Sub Flow Cache, 533256 bytes
1 active, 16383 inactive, 1 added, 1 added to flow
0 alloc failures, 0 force free
1 chunk, 1 chunk added
last clearing of statistics never
Protocol Total Flows Packets Bytes Packets Active(Sec) Idle(Sec)
——– Flows /Sec /Flow /Pkt /Sec /Flow /Flow
SrcIf SrcIPaddress DstIf DstIPaddress Pr SrcP DstP Pkts
Fa0/0 10.10.1.1 S0/0/0 10.10.2.2 01 0200 0050 255
FastEthernet0/0
ip flow ingress
ip flow egress
R1# show ip flow export
Flow export v9 is enabled for main cache
Export source and destination details :
VRF ID : Default
Source(1) 1.1.1.1 (Loopback0)
Destination(1) 10.1.10.100 (99)
Version 9 flow records
0 flows exported in 0 udp datagrams
0 flows failed due to lack of export packet
0 export packets were sent up to process level
0 export packets were dropped due to no fib
0 export packets were dropped due to adjacency issues
0 export packets were dropped due to fragmentation fail ures
0 export packets were dropped due to encapsulation fixup failures
R1#
sflow:
Qual melhor a usar?
Depende das nossas necessidades, das capacidades de equipamento e orçamento.
Spanning-Tree Protocol Toolkit
Ao contrário do que algumas pessoas pensam o STP toolkit não é nenhuma ferramenta disponível para nos ajudar com o protocolo STP.
São sim, um conjunto de extensões que a CISCO fez à sua implementação do protocolo para o tornar mais eficiente.
Spanning-Tree protocol permite que as redes da camada 2 do modelo de OSI (Layer 2) com redundancia funcionem em condições preveningo loops indesejaveis. Este algoritmo automaticamente calcula a topologia e decide quais as portas que devem ficar em standby para impedir loops na rede, garantindo assim uma maior eficiencia.
Por defenição o comportamento do protocolo é determinista ou seja nós sabemos exactamente como se deve comportar numa rede. Por vezes não o é, seja por alterações feitas na rede ou por aparelhos na camada de acesso que são controlados pelos utilizadores finais ou falhas de ligações.
Para optimizar a performance do protocolo a CISCO fornece o STP toolkit. Este conjunto de ferramentas permite optimizar e tornar mais seguras as redes L2 (Layer 2).
As ferramentas que fazem parte deste kit são:
PortFast – Faz com que as portas do equipamento entrem em estado forwarding imediatamente, passando assim os estados normais de aprendizagem. A porta configurada ainda faz parte da topologia STP e pode imediatamente transitar de estados diminuindo assim o tempo de convergencia. Podendo passar ao estado blocked se necessario. Pode ser activada em portas trunk Pode ter valores operacionais diferentes dos configurados.
notas:
- Deve ser utilizada apenas em portas de acesso.
- Deve ser utilizada apenas nas portas em que se ligam equipamentos terminais para evitar a criação de um loop.
- Activar a funcionalidade numa porta ligada a um switch pode criar um “bridging loop” temporário.
BPDUGuard – Quando activa desliga a porta que recebe um BPDU (Bridge Protocol Data Unity). Permite uma maior segurança contra más configurações porque o administrador pode colocar a porta de novo a funcionar. Quando configurado ao nivel de uma porta coloca a porta imediatamente em estado desligado independentemente da configuração PortFast.
notas:
- Numa configuração válida as portas configuradas como PortFast não recebem BPDU caso recebam há um erro de configuração ou algo que necessita ser investigado.
- Quando configurado globalmente aplica-se a todas as portas que estão operacionais e com o PortFast activo.
BPDUFilter – Impede uma porta de receber ou enviar BPDU
notas:
- Pode ser configurado por porta.
- Pode ser configurado globalmente
- Quando configurado em portas que não estejam ligadas a equipamentos terminais pode causar loops.
- Se uma porta não estiver no seu estado por defeito a configuração PortFast não afecta o filtro de BPDU PortFast.
UplinkFast – Fornece Convergência depois de uma falha na ligação, permite balanceamento de carga com a utilização de grupos de Uplink.
notas:
- Pode ser util no desenho de redes-
- Quando activa afecta todas as VLAN’s no equipamento.
- Não pode ser configurada em VLAN’s individuais.
- As melhorias ao “rapid” STP incluem estas funcionalidades.
RootGuard – Previne uma porta de se tornar uma root port ou blocked port.
Quando configurada numa porta e esta recebe um valor de BPDU superior ela passa imediatamente ao valor de de Root-Inconsistent (Blocked) state.
BackboneFast – Iniciado quando uma root port ou uma porta bloqueada recebe um BPDU de valor inferior de um designated Bridge.
Permite uma maior rapidez em caso de falha.
LoopGuard – Ajuda a prevenir “bridging loops” que pode ocorrer devido a falhas de ligações unidirecionais. Quando activado globalemte aplica-se a todas as ligações ponto a ponto. Detecta as portas em estado blocked e as root ports garantindo que continuam a receber informação das portas designadas do systema. Pode ser activado por porta. É autmaticamente aplicado a todas as intancias de VLAN’s activas no systema. Quando activado numa ligação Etherchanel pode afectar todas as conecções até que a conecção com problemas seja removida do link agregado.
Testar Portas SMTP e Validar Utilizadores
Testar SMTP e utilizadores
Há imensas aplicações para testar portas de servidores, uma mais complexas outras mais simples.
Apesar do universo ter uma escolha não estava satisfeito.
Decidi criar a minha aplicação, como estava a tentar aprender Python decidi começar a fazer um simples esboço em Python.
Esta aplicação estabelece uma ligação á porta 25 (SMTP) e tenta verificar se um utilizador especifico existe.
Como entrada do scritpt recebe um ficheiro (smtpServers.txt) com uma lista de máquinas que queremos testar a porta 25 o retorno é feito para o ecrã.
Aqui fica o meu primeiro script em Python…
#!/usr/bin/python import socket import sys if len(sys.argv) !=2: print "Usage: SMTP_Test " sys.exit(0) #ReadFile with Machines f = open('../smtpServers.txt','r') lines = f.readlines() f.close for x in lines: #Create Socket print x s=socket.socket(socket.AF_INET, socket.SOCK_STREAM) #Connect to the Server connect=s.connect((x,25)) #receive Banner banner=s.recv(1024) print banner #VRFY a user s.send('VRFY ' + sys.argv[1] + 'rn') result=s.recv(1024) print result #close the socket |
Novas funcionalidades do Windows 8 – Secure Boot
Secure boot.
Aparentemente o windows 8 vai ter novas funcionalidades em relação ao boot.
É sabido que uma das grandes dores de cabeça em termos de segurança é o controlo da parte de boot do sistema operativo das nossas máquinas.
A Fase em que a BIOS acaba de entrar e o S.O. começa a arrancar é uma das mais criticas. É aqui que se pode subverter a segurança implementada no S.O. arrancando com outro S.O. que permita a corrupção do existente ou mesmo instalando aquilo a que vulgarmente se chama de root kit.
Com o windows 8 e as novas BIOS UEFI (Unified Extensible Firmware Interface) a Microsft veio tentar alterar o paradigma.
O UEFI inclui uma opção de secure boot para impedir “Boot Loader Attacks”.
Qualquer código que é carregado na fase de boot do sistema terá que estar identificado com uma chave de segurança permitindo ao UEFI bloquear qualquer tentativa de correr código não autorizado.
Os fabricantes O.E.M terão de implementar esta funcionalidade para obterem certificação do seu equipamento (autocolante de windows 8 compatible.)
Para o utilizador esta funcionalidade é muito boa, mas para o fabricante a funcionalidade também é excelente, porque passa a existir uma base de dados de chaves “Key Enrollment Key database (KEK)” onde a microsoft poderá realizar a actualização de chaves para novos S.O. mas também poderá revogar chaves para os seus sistemas operativos que terão sido comprometidos ou na minha opinião pirateados!
A forma de funcionar é simples, haverão várias bases de dados de chaves que serão consultadas no processo de boot.
Depois de validadas o windows arranca o software “Anti-Malware”.
Finalmente o windows arranca os “Kernel Drivers” e inicializa o “User Mode”
Mais informações em http://www.hjfr-info.com/Noticias/NoticiasRecentes.php
NAT
Esta tradução de endereços adiciona um nível de segurança na nossa rede pois impede a divulgação de endereços internos na rede externa.
Os dispositivos NAT também podem funcionar de forma inversa, traduzindo múltiplos endereços públicos para um ou mais endereços privados.
- Eliminação de utilização de endereços públicos (registados) por cada um dos hosts que se ligam a redes externas.
- Preserva os endereços utilizando a. Multiplexagem de portas para todas as comunicações com o exterior. (permite a utilização do mesmo endereço publico por vários hosts privados).
- Permite conectividade entre redes existentes com endereços sobrepostos.
- Permite a migração de endereçamento de uma forma fácil e organizada.
- Determinados protocolos escondem os seus endereços de ip fora do header. ( embedded ip address ) Os NAT’s dinâmicos necessitam de manter informação de estado que nem sempre está disponível.
- O NAT interfere com alguns sistemas de cifra e autenticação.
- Em alguns casos dificulta a análise de logs sendo necessário correlacionar esses logs com outros existentes.
- NAT estático. Traduz um endereço único interno para um endereço específico externo. (ambos os endereços são fixos)
- NAT dinâmico. Traduz um endereço interno para um endereço externo temporariamente. (quando o endereço interno deixa de usar o publico este fica disponível para outras ligações. A relação contínua de um para um.)
- PAT estático – Á semelhança de um nat estático traduz múltiplos endereços internos para um externo mantendo a porta utilizada.
- PAT dinâmico (Overload). – Traduz múltiplos endereços internos para um ou mais endereços externos mantendo, se possível, a porta utilizada escolhendo para isso um dos endereços de ip externos disponíveis, caso não seja possível, utiliza a próxima porta disponível num qualquer endereço externo.
1 2 3 4 5 6 7 | enable configure terminal ip nat inside source static 192.168.1.2 209.200.160.100 interface fa 0/0 Interface com ligação ao interior ip nat inside interface fa0/1 Interface com ligação ao exterior ip nat outside |
1 2 3 4 5 6 7 8 9 | enable configure terminal access list 11 permit 192.168.1.0 0.0.0.255 Criação da lista de endereços que podem ser traduzidos pelo nat ip nat pool nomepool 209.200.160.100 209.200.160.110 prefix-lenght 24 conjunto de endereços externos que vão ser usados na tradução dos endereços internos. ip nat inside source list 1 pool nomepool associação dos endereços internos á pool de endereços externos int fa 0/0 interface da rede interna ip nat inside int fa 0/1 interface da rede externa ip nat outside |
1 2 3 4 5 6 7 8 9 | enable configure terminal access-list 1 permit 192.168.1.0 0.0.0.255 ip nat pool nomepool 209.200.160.100 209.200.160.100 prefix-length 24 ip nat inside source list 1 pool nomepool overload int fa0/0 ip nat inside int fa0/1 ip nat outside |
1 2 3 4 5 6 7 8 9 | enable configure terminal access-list 1 permit 192.168.1.0 0.0.0.255 ip nat pool nomepool 209.200.160.100 209.200.160.110 prefix-length 24 ip nat inside source list 1 pool nomepool overload int fa0/0 ip nat inside int fa0/1 ip nat outside |
Aqui ficam os tempos por defeito que podem ser alterados:
1 2 3 4 5 6 7 8 9 | enable configure terminal access-list 1 permit 192.168.1.0 0.0.0.255 ip nat pool nomepool 192.168.1.2 192.168.1.10 prefix-length 24 ip nat outside source list 1 pool address pool interface fa 0/0 ip nat inside interface fa 0/1 ip nat outside |
Mais informação sore o NAT
- Inside Local – Endereço pertencente ao host interno
- Inside Global – Endereço do host interno visualizado pelos hosts externos
- Outside Local – Endereço externo visualizado pelos hosts internos
- Outside Global – Endereço do host externo
Configurar SNMP Básico
Para activarmos o SNMP no nosso equipamento Cisco é necessário escrever os seguintes comandos:
enable
configure terminal
snmp-server contact xpto at “numero telefone” (numero de contacto)
snmp-server location rua x (morada)
snmp-server chassis-id 123456 (numero de serie do dispositivo)
Configurar visualizações de SNMP.
snmp-server view ciscoview mib-2 included (criar e incluir uma visualização de SNMP (sub-tree))
Configurar uma comunidade SNMP
snmp-server comunity xpto ro (criação de uma view com permissões de leitura ao conteúdo total da MIB)
snmp-server comunity xpto2 view ciscoview (criação de uma view com permissões apenas para a “sub-tree” da MIB-2 definida anteriormente.)