Microsoft Kill 4 Millions of no-ip Domains

It seems that Microsoft in the fight against malware has exceeded his duties and went to a extreme.

The source of the news was:

http://krebsonsecurity.com/2014/07/microsoft-darkens-4mm-sites-in-malware-fight/

The attitude and the judge rule make me think a lot on this…

Some things that call my attention…

1 – How come a private company can seise the domains of other private company, when it seems that there is no proof of bad faith of the seized company…

2 – How come a court can rule in favor of a private company and give her the custody of the domains..

3 – How come the innocent users of no-ip.com get their traffic sniffed by a private company…

This makes me think that it is not only the thief’s that abuse of the internet but also the ones that should be protecting it.

VLSM – Variable-length subnet masking

Este método de subnetar redes é o mais eficiente e realístico. Pois usa todos os bits disponíveis na subnet.

Lembram-se dos endereços com subnets do tipo 255.255.255.0?
Este tipo de subnets torna-se muito dispendioso em termos de desperdício de ip’s.

Por exemplo uma ligação de um router por um cabo serial apenas necessita de 2 ip’s, a utilização de uma subnet deste tipo leva-nos a desperdiçar cerca de 253 ip’s.

Mesmo que tenhamos a possibilidade de usar o NAT e que os endereços nunca se acabem devemos sempre ter em consideração que a nossa rede deve sempre ser desenhada da forma mais eficiente possível. É aqui que o conceito de VLSM vem á tona.

Exemplo de uma utilização do conceito de VLSM.

É nos dada uma rede classe C. 192.168.100.0/24
Temos de construir um plano de endereçamentos para esta rede utilizando o conceito de VLSM.
Para isso vamos ter de pensar da seguinte forma:

1 – Quantos bits vão ter de roubar aos Hosts para servirmos as nossas necessidades?

2 – Escolher uma subnet para o segmento de rede que tem mais hosts.

3 – Escolher o segundo segmento que tem mais hosts.

4 – Escolher o terceiro maior segmento.

5 – Determinar os endereçamentos para os links serial.

As maiores redes que temos no nosso esquema têm 50 hosts.
Logo se 2^H-2 = numero válido de hosts por subnet
temos:
2^H-2>=50
H = 6 ( 6 é o numero mais baixo válido para os 50 hosts.)

Temos de ir buscar 6 bits aos hosts ( na subnet) para poder formar a nossa rede com 50 hosts.

Então os bits da subnet vão ficar (NNHHHHHH). Vamos ter que começar a subnetar a partir daqui para podermos responder às necessidades da nossa maior rede.

Agora vamos escolher a rede para o nosso maior segmento.

Para a nossa rede temos dois (NN) para usar. Logo 2^N= Numero de redes disponíveis, como temos 2 bits para a rede então 2^2=4. Podemos ter 4 redes com 50 hosts cada. Mas só necessitamos de 1.
A primeira seria a 01HHHHHH
A segunda seria a 10HHHHHH
A terceira seria a 11HHHHHH

Se pensarmos bem então podemos ver que as redes são as seguintes:

00000000 = .0
01000000 = .64
10000000 = .128
11000000 = .192

Todas estas redes tem a mesma mascara de subnet que é 255.255.255.192 ou /26 bits.

A rede de 50 hosts vai ficar com uma destas redes. As restantes redes vão ficar com o que sobrar.

Por exemplo vamos escolher a rede.64 para a rede A.

Rede B. Necessitamos de ter uma rede que permita 27 hosts.
Escolhemos a .128 para esta tarefa.

2^H-2>=27
H=5

Necessitamos de 5 bits para poder responder às necessidades desta rede.
Então a nossa subnet vai ser 10NHHHHH.
10 Representa o padrão original da subnet que não pode ser alterado e N o bit extra para o nosso trabalho.

Então vamos ficar com as seguintes redes.

10000000 = .128
01100000 = .160

Ok encontramos a subnet para a nossa rede de 27 hots.

A nossa subnet é:

11111111.11111111.11111111.11100000 ou 255.255.255.224 ou /27

Então a nossa rede vai transformar-se

Rede A – .64/26
Rede .128/26 não vai ser usada porque foi subnetada.
Rede B – .128/27

Ok agora seguimos o mesmo procedimento para a rede seguinte.
Necessitamos de 12 hosts.

Para isto podemos usar a outra rede não usada 160/27.
Vamos subnetar esta.

Quantos bits necessitam para 12 hosts?

H=4

Então vão ter as redes

10100000 = .160
10110000 = .176

Em binário temos:

1111111.11111111.11111111.11110000 = 255.255.255.240 ou /28

Aqui podem usar estas 2 novas redes para a Rede C e para a Rede D.

Agora temos o seguinte quadro.

Rede A – .64/26
Rede 128/26 – Não usada subnetada
Rede B – .128/27
Rede 160/27 Não usada subnetada
Rede .160/28 Rede C
Rede .160/28 Rede D

Falta-nos apenas as redes dos links serial.

Para cada serial apenas necessitamos de 2 ip’s ou 2 hosts.

Então para isto vamos usar a primeira rede a .0/26 que saltamos quando atribuímos o endereçamento.

2 hosts.

00NNNNHH

Podemos ter 16 redes com 2 hosts cada.

da 00000000 = .0/30 á 00111100 = .60/30

Podemos combinar este endereços da seguinte forma.

.0/26 Não pode ser usada porque foi subnetada.

.0/30 Rede E
.4/30 Rede F
.8/30 Rede G
.12/30 Rede H
.16/28 Rede disponível para futuro crescimento.
.64/26 Rede A
.128/26 Subnetada não pode ser usada
.128/27 Rede B
.160/27 Subnetada não pode ser usada
.160/28 Rede C
.176/28 Rede D
.192/26 Rede disponível para futuro crescimento.

Podemos ver que não desperdiçamos nenhum ip, que não existem ip’s iguais e que ainda temos endereços reservados para crescimento futuro.


Send email using telnet

To test if our email server is working correctly we can use the following logic :)

1 – If we do now have sure of what is our email server address we can check it easily using nslookp.

Normally has any website our email server has to have a name associated to a ip address. If we want to confirm if the name is resolving to the correct ip address we will need to do a nslookup query.

Use the following syntax to confirm if the server has the correct address.

    1. nslookup
    2. set type=mx
    3. write the name of our domain e.g.: hjfr-info.com
    4. the return will be the name of the email server e.g.: mail.hjfr-info.com
    5. exit

eg:nslookup1

After this we can use this name to connect via telnet or resolve the name to a ip address.

now to start a telnet connection to the server we only need to write this on the command line:

1 – telnet mail.hjfr-info.com 25

if the connection is successfully established you should see something like this:

telnet SMTP Server 1

Now it is possible to begin sending a email.

  1. greet the server with a: Helo
  2. Identify yourself: MAIL FROM: hjfr@hjfr-info.com
  3. Identify the destination: RCPT TO:hjfr@hjfr-info.com
  4. Identify the Data that you want to send: DATA and write the data
  5. end with a . (point and enter)

The telnet also can be used to verify other things on the SMTP server.

For example we have the commands VRFY and EXPN that might be used to identify valid users.

VRFY = This command will request that the receiving SMTP server verify that a given email username is valid. The SMTP server will reply with the login name of the user. 

ESPN = is similar to VRFY, except that when used with a distribution list, it will list all users on that list. This can be a bigger problem than the “VRFY” command since sites often have an alias such as “all”.

NetFlow vs Sflow

Netflow vs Sflow

 
Muitas pessoas acham que ambos são a mesma coisa outros acham que é preferível um ao outro.
Na realidade são coisas diferentes e que se podem complementar entre si.
Netflow nunca irá funcionar como o Sflow ou o inverso.
Cada um tem a sua forma de trabalhar e serve o seu objectivo.
 
Vamos ver quais as funcionalidades de cada um e onde podem ser implementados:

Netflow:

É um acrónimo para Network Flows quebra as comunicações TCP/IP em dados estatísticos baseados em “flows” de comunicações.
 
O que é um flow? 
É um fluxo de pacotes num único sentido com base numa origem especifica e num destino especifico.
ex: Se iniciarmos uma sessão telnet para o netflow essa sessão é composta por 2 flows de trafego uma outbond e outra inbound.
 
Todos os pacotes pertencentes ao mesmo flow tem 7 coisas em comum

  1. todos tem o mesmo ip de origem
  2. todos tem o mesmo ip de destino
  3. todos tem a mesma source port
  4. todos tem a mesma destination port
  5. todos tem de ter o mesmo protocolo L3
  6. Todos tem de ter o mesmo valor de tipo de serviço (TOS value)
  7. Mesmo interface fisico ou virtual.


Os primeiros 4 são os que definem o “flow”

Versão 9 é a ultima versão e já inclui mais campos incluindo MPLS e endereços de IPv6 e portas.
Configuração de exemplo
R1(config)# interface fastethernet0/0
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
maior parte das vezes utiliza a porta 9996 apesar de nao ter porta especifica
Examinar Netflow Cache
R1# show ip cache flow
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

Confirmar uma implementação de netflow Cisco
R1# show ip flow interface
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:

É um protocolo feito de forma mais genérica para métricas de trafego de rede. Esta desenhado para pertencer a qualquer dispositivo de rede e permite fornecer constantes dados estatísticos sobre a rede. (L2, L3, L4 até L7). Com sflow todo o trafego numa rede pode ser caracterizado e monitorizado. 
Estas estatísticas são essenciais para controlo de congestionamento, segurança e desenho de rede.
O equipamento captura uma amostra de pacotes por interface e envia essa amostra para um colector.
Não esta limitado ao IP podendo funcionar também noutros protocolos como IPX, NetBEUI etc.
Utiliza amostras de trafego para as suas estatísticas podendo haver alguma incorrecção.

Qual melhor a usar? 
Depende das nossas necessidades, das capacidades de equipamento e orçamento.

Como remover aqueles links que o Outlook cria automáticamente nos emails…

Uma coisa que sempre desconfio são as ligações activas nas mensagens de email que recebo.

Há sempre uma impressão de phishing, por isso muitas vezes não carrego na ligação para ver.

Consigo dominar a minha curiosidade. :)

Uuma coisa que reparei é que cada vez que criamos uma nova mensagem no outlook e queremos inserir texto tipo http://seekerpt.blogspot.com ele transforma o texto automaticamente numa ligação activa e válida.

Eu fico a pensar, não gosto de receber coisas assim então também não as devo enviar.

Fui pesquisar e descobri que se tivermos o ultimo service pack do officce instalado e adicionarmos umas chaves de registo podemos colocar este tipo de endereços que não passam de texto.

Texto que tem de ser copiado e colado no browser para podermos navegar até ao site.
Mantemos a mensagem em html com as fotos ou o formato correcto e também deixamos de ter os links duvidosos. :)
Garantimos também que o que colocamos no browser é mesmo o que vemos e não muitas vezes aquelas ligações manhosas de phishing para nos sacar os dados bancários.

Pareceu-me uma boa opção.

Aqui fica:

Inglês:

  1. Quit Outlook 2003.
  2. Click Start, click Run, type regedit in the Open box, and then click OK.
  3. Locate and then click the following registry subkey:
    HKEY_CURRENT_USERSoftwareMicrosoftOffice11.0OutlookPreferences
  4. After you select the subkey that is specified in step 3, point to New on the Edit menu, and then click DWORD Value.
  5. Type DisableAutoUrlCompletion, and then press ENTER.
  6. Right-click DisableAutoUrlCompletion, and then click Modify.
  7. In the Value data box, type 1, and then click OK.
  8. On the File menu, click Exit to quit Registry Editor.

Português:

  1. Sair do utlook 2003.
  2. Carregar em Iniciar, Correr, e escrever regedit na caixa de texto, carregar em OK.
  3. Procurar pela seguinte chave de registo:
    HKEY_CURRENT_USERSoftwareMicrosoftOffice11.0OutlookPreferences
  4. Carregar com o botão direito do rato no lado direito do ecrã e escolher a opção Nova , escolher DWORD Value.
  5. Escrever DisableAutoUrlCompletion, e depois carregar em Enter.
  6. Carregar com o botão direito do rato na chave DisableAutoUrlCompletion, depois escolher a opção Modificar.
  7. No campo dados, escrever 1, e depois carregar em OK.
  8. Sair do editor de registo.

E com isto vamos dar aos nossos amigos uma vida menos stressante.
Ou como alguém diz sem webstress…

Para quem quiser saber um pouco mais:

http://support.microsoft.com/?kbid=904637

Sem stress :)

Registry + ControlSet’s

ControlSet… uma das sub chaves que devemos conhecer do nosso sistema Operativo.

Esta é uma chave do Windows que existe no registry.
Os conjuntos de chaves começadas por ControlSet são extremamente importantes.
É aqui que temos guardadas todas as configurações do nosso Windows.

Aqui podemos encontrar os serviços, drivers e outro tipo de informação.
Estas chaves estão dentro da chave de registo HKEY_LOCAL_MACHINESYSTEM.
Podem existir várias entradas deste tipo dependendo do número de alterações que fizemos no nosso sistema.
Uma instalação normal do Windows tem 4 control Set.

ControlSet002
ControlSet
ControlSet001
clone

O ControlSet001 são as definições da última vez em que fizemos logon.
O ControlSet002 é conhecido como o ultimo controlSet conhecido em boas condições ou mesmo o ultimo controlset que foi usado para arranque no Windows com sucesso.

O ControlSet é apenas um apontador para um dos 2 anteriores.

O Clone é um “clone” do CurrentControlSet e é criado cada vez que o nosso computador arranca na fase de inicialização do Kernel.

Existe outra chave relacionada com estas. É a chave Select, também está localizado dentro da chave System e contem os seguintes valores:
Current
Default
Failed
LastKnownGood

Cada um destes valores contem uma REG_DWORD que aponta para um dos Controlset.
Por exemplo, se o valor está definido 0×1, então o CurrentControlSet está a apontar para ControlSet001. Á semelhança do LastKnownGood se estiver configurado para 0×2, então o last known good control set é o ControlSet002.
O valor por defeito normalmente é o corrente e o Failed é um apontador para um ControlSet que não conseguiu arrancar com sucesso.

O mais fiável é o CurrentControlSet.
Se necessitarmos de ver ou alterar definições esta é a chave que devemos procurar. Se por algum motivo as nossas alterações não funcionarem sempre podemos arrancar com a lastknown good configuration, mas para isso é importante não fazermos logon logo, visto ser nesse momento em que o Windows substitui os controlSet existentes. Devemos esperar sempre um pouco pelo menos até já não existir tanta actividade nos discos. Caso contrário podemos ter problemas em recuperar o Windows caso um dos seus serviços / drivers provoque um erro que nos impeça de fazer logon. Pois podemos perder a Last Known Good Configuration.

ms164699.note-28en-US-VS.80-29

corflags.exe

Bem ás vezes quando não existe programador por perto para recompilar o código temos mesmo que usar esta ferramenta e esperar que corra tudo pelo melhor.

O que é o coreflags.exe?

Quando compilamos uma ferramenta em .net2.0 e temos a opção any cpu activa, faz com que a aplicação tanto vai possa ser executada correr em modo de 32bits como em modo 64bits.

Ás vezes ela não funciona lá muito bem no modo de 64bits.  Porque não há os drivers necessários a 64bits e apenas existem a 32 ou por outra razão qualquer.

Neste caso a única solução é recompilar ou usar a ferramenta.

Ela vem com o SDK da .net framework e pode estar dependendo dos casos em vários directórios :)
Deixo aqui uma pista.

  • C:Program FilesMicrosoft SDKsWindowsv6.0Binx64CorFlags.exe
  • C:Program Files (x86)Microsoft Visual Studio 8SDKv2.0BinCorFlags.exe

Para forçarmos uma aplicação a correr em modo de 32bits numa máquina a 64bits podemos usar este comando. Depois podem ver as várias opções do exe.

CoreFlags.exe TheApp.exe /32BIT+
CorFlags.exe assembly [options]

Parameters

Argument Description
assembly The name of the assembly for which to configure the CorFlags.
Option Description
/32BIT+ Sets the 32BIT flag.
/32BIT- Clears the 32BIT flag.
/? Displays command syntax and options for the tool.
/Force Forces an update even if the assembly is strong-named.

NoteImportant
If you update a strong-named assembly, you must sign it again before executing its code.
/help Displays command syntax and options for the tool.
/ILONLY+ Sets the ILONLY flag.
/ILONLY- Clears the ILONLY flag.
/nologo Suppresses the Microsoft startup banner display.
/RevertCLRHeader Reverts the CLR header version to 2.0.
/UpgradeCLRHeader Upgrades the CLR header version to 2.5.

NoteNote
Assemblies must have a CLR header version of 2.5 or greater to run natively.

Windows 2003 x32 com 8Gb de Ram!!!

Isto pode parecer estranho mas numa das ultimas aulas ao falar com um formando ( e graças a este) lembrei-me de uma coisa que não é muito documentada e que seria interessante colocar aqui.

Como colocar o windows 2003 x32 a funcionar com mais de 4Gb de RAM.

É claro que isto não é suportado pela microsoft e pode haver possibilidades de existirem erros não documentados devido á forma como o SO vai usar a memoria.

Existe uma forma de colocar o windows a utilizar mais do que os 4gb possíveis nos sistemas de 32 bits.

A microsoft tem o PAE ( Physical Address Extension ) e o AWE ( Address Windowing Extensions )

o PAE é usado pelos IA32 para endereçar mais de 4Gb de memória

Para activar o PAE é necessário adicionar o /PAE no boot.ini file.

Se um servidor usar memorias tipo “hot-add” então o PAE é automaticamente activado.

Tipicamente o PAE usa-se quando temos uma taxa de ocupação de memoria grande.
Um processo típico pode ocupar no máximo cerca de 2Gb de RAM num sistema a 32bits, isto provoca que quando existem muitos processos a usarem muita ram se tenha que paginar muita informação na paging file.
Isto aliado ao facto do windows dividir a memoria em 2 partes uma para o kernel e outra para o user. Piora em muito a performance dos nossos servidores. Porque no máximo apenas podemos ter 4Gb de Ram ocupados.
E os processos que podem usar mais de 4Gb de RAM?

Ao colocarmos o /3Gb switch estamos a permitir que um processo possa usar mais de 2 Gb de Ram do Sistema operativo, mas contudo este programa concorre com outros e a probabilidade de ter parte dessa alocação de memória fetia na memória virtual é elevada, o que o pode tornar muito lento.
Aqui entra o PAE. Quando temos esta entrada activa e em conjunto com o AWE podemos usar mais do que os 4Gb de ram se a nossa máquina os tiver disponíveis.

O AWE é usado de outra forma, é utilizado ao nivel das API’s (Applicarion programming Interfaces). Ou seja é um conjunto de API’s ao gestor de memória que permite que os programas enderecem mais do que os 4gb disponíveis através dos normais 32bits de endereçamento.
AWE permite os programas reservarem memória como memória não paginada e depois dinamicamente mapear porções da memoria não paginada para o conjunto de memória utilizada pelo programa.
Este processo permite a programas que usen intensivamente a memoria para colocar dados ( como base de dados) que possam reservar memoria em vez de terem de usar a memória virtual.
Isto melhora a performance.
O excesso da memória acima dos 4gb é reportado ao gestor de memoria e ás funções de AWE pelo PAE.
Sem o PAE o AWE não conseguiria reservar o excesso de memoria a cima dos 4GB.

[operating systems]
multi(0)disk(0)rdisk(0)partition(2)WINDOWS=”Windows Server 2003, Enterprise” /fastdetect /PAE

Sumarizando o PAE é uma função que permite ao windows 2000 e windows 2003 dar mais memoria para o gestor de memoria utilizar.
Transpondo assim o limite dos 4gb.
Os programas não percebem que a memoria que estão a usar está acima dos 4gb da mesma forma que eles não entendem quando estão a usar a Swapfile.

O AWE é uma API que permite os programas reservar memoria. A memoria é não paginada e é apenas acessível a esse programa.

No fim se tiverem possibilidade de utilizar um SO a 64 bits tem mais sorte e menos trabalho :)

eth0: ERROR while getting interface flags: no such device

Ao mudar uma VM da máquina de onde normalmente corro as minhas máquinas virtuais para outra fiquei com problemas na placa de rede numa das VM’s.

Obtenho o seguinte erro cada vez que tento arrancar com a placa de rede.
eth0: ERROR while getting interface flags: no such device

Pelo quer percebi aparentemente isto acontece por causa do mac, este está definido para a placa de rede da máquina anterior onde corria as VM’s que é diferente da nova máquina onde corro as vm’s.

Por acaso existe uma opção onde podemos colocar o MAC manualmente, eu nunca a configurei pois tenho a VM Workstation com essa opção em Auto.

Para repor as coisas editei o ficheiro:
/etc/udev/rules.d/70-persistent-net.rules

e removi a linha que continha o identificador da placa de rede com problemas e o respectivo mac que não fazia ideia de qual seria.

Logo depois corri o seguinte comando que detectou novamente o hardware /etc/init.d/udev restart

Fiquei com uma nova linha no ficheiro anterior a indicar novo mac e nova placa de rede e também com a placa de rede devidamente inicializada.

My experience in IT

%d bloggers like this: