Mostrando postagens com marcador forum. Mostrar todas as postagens
Mostrando postagens com marcador forum. Mostrar todas as postagens

quarta-feira, 8 de julho de 2015

Métodos de criptografia Linux

Existem dois métodos para criptografar seus dados:




1: Sistema de arquivos empilhados criptografia nível

eCryptfs -

É um sistema de arquivos Linux criptográfico empilhadas. eCryptfs armazena metadados de criptografia no cabeçalho de cada arquivo escrito, de modo que os arquivos criptografados podem ser copiados entre os hosts, o arquivo será descriptografado com a chave apropriada no chaveiro do kernel Linux. Esta solução é amplamente utilizado, como base para a criptografados Diretório do Ubuntu, nativamente dentro ChromeOS do Google, e de forma transparente incorporado em rede anexado vários dispositivos de armazenamento (NAS).

Encfs -

Ele fornece um sistema de arquivos criptografados em espaço do usuário. Ele roda sem permissões especiais e usa a biblioteca FUSE e módulo do kernel Linux para fornecer a interface do sistema de arquivos. Você pode encontrar links para fontes e versões binárias abaixo. Encfs é um software de código aberto, licenciado sob a GPL.



2: Bloco de criptografia no nível do dispositivo


Loop-AES -

Rápido e transparente do sistema de arquivos e um pacote de criptografia de swap para linux. No código fonte muda a kernel do Linux. Funciona com 3.x, 2.6, 2.4, 2.2 e 2.0 kernels.

TrueCrypt -

É livre de código aberto de software de criptografia de disco para Windows 7/Vista/XP, Mac OS X e Linux.

dm-crypt + LUKS - dm-crypt é um subsistema transparente de criptografia de disco no Linux kernel do v2.6 + e posterior e DragonFly BSD. Ele pode criptografar discos inteiros, mídia removível, partições, volumes RAID de software, os volumes lógicos e os arquivos.

Neste post, vou explicar como criptografar suas partições usando o Linux Unified formato Setup-on-disk (Key LUKS) no seu computador ou laptop baseado em Linux.



Instalar utilitário cryptsetup

Você precisa instalar o seguinte pacote. Ele contém cryptsetup, um utilitário para a criação de sistemas de arquivos criptografados usando Device Mapper eo alvo dm-crypt. Tipo de usuário Debian / Ubuntu Linux o seguinte comando apt-get :

apt-get install cryptsetup



Saidas de amostra:


Lendo listas de pacotes ... Feito

Árvore de dependências do edifício

Lendo informação de estado ... Feito

Os seguintes pacotes extra serão instalados:

libcryptsetup4 cryptsetup-bin

Pacotes sugeridos:

busybox

Os seguintes NOVOS pacotes serão instalados:

cryptsetup libcryptsetup4 cryptsetup-bin

0 pacotes atualizados, 3 novos instalados, 0 a serem removidos e 7 não atualizados.

É preciso obter 168 kB de arquivos.

Após esta operação, serão utilizados 669 KB de espaço em disco adicional.

Você quer continuar [Y / n]? y

Obter: 1 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu/ preciso principal amd64 / libcryptsetup4 2:1.4.1-2ubuntu4 [55,8 kB]

Obter: 2 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu/ / main cryptsetup-bin amd64 2:1.4.1-2ubuntu4 precisa [32,2 kB]

Obter: 3 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu/ preciso principal amd64 / cryptsetup 2:1.4.1-2ubuntu4 [80,0 kB]

Buscada 168 kB em 0s (268 kb / s)

Pré-configurando pacotes ...

Selecionar previamente não selecionado libcryptsetup4 pacote.

(Lendo banco de dados ... 25374 arquivos e diretórios atualmente instalados.)

Desempacotando libcryptsetup4 (a partir de ... / libcryptsetup4_2% 3a1.4.1-2ubuntu4_amd64.deb) ...

Selecionando pacote previamente não selecionado cryptsetup-bin.

Desempacotando cryptsetup-bin (de ... / cryptsetup-bin_2% 3a1.4.1-2ubuntu4_amd64.deb) ...

Selecionar previamente não selecionado cryptsetup pacote.

Desempacotando cryptsetup (a partir de ... / cryptsetup_2% 3a1.4.1-2ubuntu4_amd64.deb) ...

Processamento de gatilhos para man-db ...

Processamento de gatilhos para ureadahead ...

Configurando libcryptsetup4 (2:1.4.1-2ubuntu4) ...

Configurando cryptsetup-bin (2:1.4.1-2ubuntu4) ...

Configurando cryptsetup (2:1.4.1-2ubuntu4) ...

update-initramfs: update adiando (trigger ativado)

Processamento de gatilhos para libc-bin ...

ldconfig processamento diferido ocorrendo agora

Processamento de gatilhos para initramfs-tools ...



update-initramfs: Generating / boot/initrd.img-3.2.0-31-virtual

Usuário RHEL / CentOS / Fedora Linux digite o seguinte comando yum :

# yum install cryptsetup-luks

Configurar partição LUKS

Neste exemplo, eu vou encript /dev/xvdc. Digite o seguinte comando:

# cryptsetup-y-v luksFormat /dev/xvdc

Saídas de Amostra:


# cryptsetup-y-v luksFormat / dev / xvdc


ATENÇÃO!
========
Isto irá substituir dados no / dev / xvdc irrevogavelmente.


Tem certeza? ( Digite sim maiúsculas ) : SIM
Enter LUKS passphrase:
Verifique frase:


Comando de sucesso.


Este comando inicializa o volume, e define uma chave inicial ou senha. Por favor, note que a senha não é recuperável, então não esqueça it.Type o comando a seguir cria um mapeamento:

# cryptsetup luksOpen /dev/xvdc Backup2



Saídas de amostra:
Digite senha para /dev/xvdc:

Você pode ver um mapeamento de nome / dev/mapper/backup2 após verificação bem sucedida do material de chave fornecida, que foi criado com a extensão de comando luksFormat:



# ls-l / dev/mapper/backup2


Saidas de amostra

lrwxrwxrwx 1 root root 7 19 de outubro 19:37 /dev/mapper/backup2 -> .. /dm-0

Você pode usar o seguinte comando para ver o status do mapeamento:

# cryptsetup-v backup2 estado

Saidas de amostra
/Dev/mapper/backup2 está ativo.
Tipo: LUKS1
cifra: aes-cbc-essiv: sha256
keysize: 256 bits
device: / dev / xvdc
offset: 4096 setores
size: 419426304 setores
mode: leitura / gravação


Comando de sucesso.

Você pode despejar cabeçalhos LUKS usando o seguinte comando:

# cryptsetup luksDump /dev/xvdc

Formato partição LUKS

Em primeiro lugar, você precisa escrever zeros para /dev/mapper/backup2 dispositivo criptografado. Isto irá alocar dados em blocos com zeros. Isso garante que o mundo lá fora vai ver estes dados aleatórios, ou seja, que protegem contra a divulgação de padrões de uso:

# dd if=/dev/zero of=/dev/mapper/backup2

O comando dd pode levar várias horas para ser concluído. Eu sugiro que você use o comando pv para monitorar o progresso :

# pv-tpreb /dev/zero | dd of=/dev/mapper/backup2 bs=128M

Para criar um sistema de arquivos ou seja, formato de sistema de arquivos, digite:

# mkfs.ext4 /dev/mapper/backup2

Para montar o novo sistema de arquivos em / backup2 , digite:


# mkdir / Backup2

# mount / dev/mapper/backup2 / Backup2

# df-H

# cd / Backup2

# ls-l

Como faço para desmontar e dados seguros?

# umount /backup2
# cryptsetup luksClose backup2


Como faço para montar ou remontar partição criptografada?



Digite o seguinte comando:

# cryptsetup luksOpen /dev/xvdc backup2
# mount /dev/mapper/backup2 /Backup2
# df-h 
# mount

Veja shell script envoltório que abre partição LUKS e configura um mapeamento para dispositivos NAS.



Posso executar o fsck no volume partição / LVM com base LUKS?



Sim, você pode usar o comando fsck Em sistemas baseados LUKS:

# umount /backup2

# fsck-vy /dev/mapper/backup2

# mount /dev/mapper/backup2 /backup2

Veja como executar fsck Em LUKS (dm-crypt), com base volume físico LVM para mais detalhes.



Como posso alterar o LUKS passphrase (senha) para a partição criptografada?




Digite o seguinte comando:



# cryptsetup luksDump / dev / xvdc

# cryptsetup luksAddKey / dev / xvdc Digite qualquer senha:
Digite a nova senha para o slot-chave:


Verifique frase:

Remover ou excluir a senha antiga:

# cryptsetup luksRemoveKey /dev/xvdc

Por favor, note que você precisa para entrar no antigo senha / senha.



Conclusão

Agora você tem uma partição criptografada para todos os seus dados.



Prós:


LUKS criptografa dispositivos de blocos inteiros e é, portanto, bem adequado para proteger o conteúdo de dispositivos móveis, como mídia de armazenamento removíveis (pen USB) ou unidades de disco portáteis.

Você também pode usar com o seu servidor NAS para proteger backups.

Intel e AMD com AES-NI (Advanced Encryption Standard conjunto de instruções) pode acelerar a criptografia baseada dm-crypt para Linux Kernel v2.6.32 +. Isto irá acelerar a criptografia disco rígido.

Funciona com partição swap muito para que seu laptop pode usar o recurso de hibernação (suspend-to-disk) que escreve o conteúdo da RAM para a partição de swap antes de desligar a máquina.



Contras:

LUKS só suportam até 8 senhas, ou seja, apenas 8 usuários podem ter teclas de acesso distintas para o mesmo dispositivo.]

LUKS também não é recomendável para aplicações que exigem criptografia em nível de arquivo.


Créditos ao Natan, por publicar este artigo no antigo fórum da Brutal Security.
Créditos originais não encontrados.

quinta-feira, 30 de abril de 2015

Neste artigo vamos explorar o gerenciamento de memória no Linux para entendermos como funciona a paginação e explorar as funções de acesso a memória do espaço do usuário que usam estes conceitos. Movimentar dados entre espaço de usuário e kernel. Vamos usar tmb APIs.

Liguem suas VMs!

Uma introdução à memória e APIs de espaço do usuário do Linux

Como o kernel e o espaço do usuário existem em espaços de endereço virtuais diferentes, existem considerações especiais para movimentar dados entre eles. Explore as ideias por trás dos espaços de endereço virtuais e as APIs do kernel para movimentar dados do e para o espaço do usuário, e aprenda algumas das outras técnicas de mapeamento usadas para mapear memória. Embora o byte seja a menor unidade de memória que pode ser endereçada no Linux, é a página que serve como a abstração gerenciada da memória. Este artigo começa com uma discussão sobre o gerenciamento da memória no Linux e, em seguida, explora os métodos para manipular o espaço de endereço a partir do kernel.

Memória no Linux

No Linux, a memória do usuário e a memória do kernel são independentes e implementadas em espaços de endereço separados. Os espaços de endereço são virtualizados, ou seja, os endereços são abstraídos da memória física (por meio de um processo que será detalhado mais adiante). Como os espaços de endereço são virtualizados, podem existir vários deles. Na verdade, o kernel reside em um espaço de endereço, e cada processo reside em seu próprio espaço. Esses espaços consistem em endereços de memória virtual, permitindo que vários processos com espaços de endereço independentes se refiram a um espaço de endereço físico consideravelmente menor (a memória física da máquina). Isso não é apenas conveniente, como também é seguro, pois cada espaço de endereço está isolado e, consequentemente, protegido.

Mas essa segurança tem um preço. Como cada processo (e o kernel) pode ter endereços idênticos que se referem a regiões diferentes da memória física, não é imediatamente possível compartilhar memória. Felizmente, existem algumas soluções. Processos do usuário podem compartilhar memória por meio do mecanismo de memória compartilhada da Portable Operating System Interface for UNIX® (POSIX) (shmem), com a advertência de que cada processo pode ter um endereço virtual diferente que se refere à mesma região da memória física.

O mapeamento da memória virtual para a memória física ocorre por meio de tabelas de página, implementadas no hardware subjacente. O próprio hardware fornece o mapeamento, mas é o kernel que gerencia as tabelas e sua configuração. Observe que, como mostrado aqui, um processo pode ter um grande espaço de endereço, mas é esparso, ou seja, pequenas regiões (páginas) do espaço se referem à memória física através das tabelas de página. Isso permite que um processo tenha um enorme espaço de endereço que é definido apenas para as páginas necessárias em um dado momento.


Figura 1. Tabelas de página fornecem o mapeamento de endereços virtuais para endereços físicos

A capacidade de definir memória para processos de maneira esparsa significa que a memória física subjacente pode ser confirmada em excesso. Por meio de um processo chamado paginação (embora, no Linux, seja geralmente chamado de troca), páginas pouco usadas são movidas dinamicamente para um dispositivo de armazenamento mais lento (por exemplo, um disco) para acomodar outras páginas que precisam ser acessadas (veja a Figura 2). Isso permite que a memória física do computador forneça páginas que um aplicativo precisa imediatamente, e migre páginas menos necessárias para o disco para melhor uso da memória física. Observe que algumas páginas podem se referir a arquivos, caso no qual os dados podem ser descarregados se a página estiver suja (por meio do cache de página) ou, se a página estiver limpa, simplesmente descartados.

 

Figura 2. A troca permite melhor uso do espaço da memória física ao migrar páginas pouco usadas para armazenamento mais lento e menos caro

O processo pelo qual uma página é selecionada para ser descarregada para o armazenamento é chamado de algoritmo de substituição de página e pode ser implementado usando alguns algoritmos diferentes (como, por exemplo, usado menos recentemente). Esse processo pode ocorrer quando é solicitado um local de memória cuja página não está na memória (não há mapeamento presente na memory management unit [MMU]). Esse evento é chamado de falha de página e é detectado pelo hardware (a MMU) e gerenciado pelo firmware após uma interrupção de falha de página ocorrer. A Figura 3 contém uma ilustração dessa pilha.

O Linux apresenta uma implementação interessante da troca, que oferece algumas características úteis. O sistema de troca do Linux permite a criação e uso de várias partições e prioridades de troca, o que permite uma hierarquia de troca para dispositivos de armazenamento que fornecem diferentes características de desempenho (por exemplo, uma troca de primeiro nível em uma unidade de estado sólido [SSD] e um espaço de troca maior, de segundo nível, em um dispositivo de armazenamento mais lento). Designar uma prioridade maior à troca em SSD permite que ele seja usado até estar cheio; só então as páginas seriam gravadas na partição de troca de baixa prioridade (mais lenta).


Figura 3. Espaços de endereço e elementos de mapeamento de endereço virtual para físico

Nem todas as páginas podem ser descarregadas para a área de troca. Por exemplo, código do kernel que responde a interrupções, ou código que gerencia as tabelas de página e a lógica de troca. Essas são páginas que, obviamente, não devem ser descarregadas para a área de troca, e portanto são fixadas, ou residentes permanentemente na memória. Embora páginas do kernel não possam ser descarregadas, páginas do espaço do usuário podem, mas é possível fixá-las através da função mlock (ou mlockall) para bloquear a página. Esse é o propósito das funções de acesso à memória do espaço do usuário. Se o kernel achasse que um endereço passado por um usuário é válido e acessível, ocorreria por fim um pânico do kernel (por exemplo, porque a página do usuário foi descarregada para a área de troca, resultando em uma falha de página no kernel). Essa interface de programação de aplicativo (API) assegura que tais casos sejam tratados corretamente.

APIs do Kernel

Agora, vamos explorar as APIs do kernel para manipular a memória do usuário. Observe que esta seção cobre a interface do kernel e do espaço do usuário, mas a próxima explora mais algumas APIs de memória. As funções de acesso à memória do espaço do usuário que iremos explorar estão listadas na Tabela 1.

Tabela 1. A API de acesso à memória do espaço do usuário

Função Descrição

access_ok             Verifica a validade do ponteiro de memória do espaço do usuário

get_user                 Obtém uma variável simples do espaço do usuário

put_user              Envia uma variável simples para o espaço do usuário

clear_user              Limpa ou zera um bloco no espaço do usuário

copy_to_user      Copia um bloco de dados do kernel para o espaço do usuário

copy_from_user      Copia um bloco de dados do espaço do usuário para o kernel

strnlen_user      Obtém o tamanho de um buffer de cadeia de caractere no espaço do usuário

strncpy_from_user    Copia uma cadeia de caractere do espaço de usuário para o kernel



Como seria de se esperar, a implementação dessas funções depende da arquitetura. Em arquiteturas x86, é possível achar essas funções e símbolos definidos em ./linux/arch/x86/include/asm/uaccess.h, com origem em ./linux/arch/x86/lib/usercopy_32.c e usercopy_64.c.

O papel das funções de movimentação de dados é mostrado na Figura 4 em relação aos tipos envolvidos na cópia (simples vs. agregado). 


Figura 4. Movimentação de dados usando a API de acesso à memória do espaço do usuário

A função access_ok

A função access_ok é usada para verificar a validade do ponteiro no espaço do usuário que deverá ser acessado. O responsável pela chamada fornece o ponteiro (que se refere ao início do bloco de dados), o tamanho do bloco e o tipo de acesso (se a área deve ser lida ou gravada). O protótipo de função é definido como:

access_ok( type, addr, size );

O argumento type pode ser especificado como VERIFY_READ ou VERIFY_WRITE. O simbólico VERIFY_WRITE também identifica se a região da memória é legível, além de gravável. A função retorna diferente de zero se a região for provavelmente acessível (mas o acesso ainda pode resultar em -EFAULT). Essa função simplesmente verifica se o endereço é provável no espaço do usuário, não no kernel.

A função get_user

Para ler uma variável simples do espaço do usuário, usa-se a função get_user. Ela é usada para tipos simples, tais como char e int, mas tipos de dados maiores, como estruturas, devem usar a função copy_from_user. O protótipo aceita uma variável (para armazenar os dados) e um endereço no espaço do usuário para a operação de leitura:

get_user( x, ptr );

A função put_user

A função put_user é usada para gravar uma variável simples do kernel para o espaço do usuário. Assim como get_user, ela aceita uma variável (que contém o valor a ser escrito) e um endereço no espaço do usuário como destino da gravação: 

put_user( x, ptr );            

Assim como get_user, a função put_user é mapeada internamente para a função put_user_x, e retorna 0 em caso de sucesso ou -EFAULT em caso de erro.

A função clear_user

A função clear_user é usada para zerar um bloco de memória no espaço do usuário. Ela toma um ponteiro no espaço do usuário e um tamanho para zerar, definido em bytes:


clear_user( ptr, n );

Internamente, a função clear_user verifica primeiramente se o ponteiro do espaço do usuário é gravável (via access_ok), e em seguida chama uma função interna (escrita em assembly sequencial) para realizar a operação de Limpeza. Essa função está otimizada como um loop muito rígido usando instruções de cadeia de caractere com o prefixo de repetição. Ela retorna o número de bytes que não puderam ser limpos, ou zero caso a operação tenha tido sucesso.

A função copy_to_user

A função copy_to_user copia um bloco de dados do kernel para o espaço do usuário. Ela aceita um ponteiro para um buffer no espaço do usuário, um ponteiro para um buffer no kernel e um comprimento definido em bytes. A função retorna zero em caso de sucesso, ou diferente de zero para indicar o número de bytes que não foram transferidos.

copy_to_user( to, from, n );
Após verificar a possibilidade de gravar no buffer do usuário (através de access_ok), é chamada a função interna __copy_to_user, que, por sua vez, chama __copy_from_user_inatomic (em ./linux/arch/x86/include/asm/uaccess_XX.h, no qual XX é 32 ou 64, dependendo da arquitetura). A função (depois de determinar deve-se realizar cópias de 1, 2 ou 4 bytes) chama por fim __copy_to_user_ll, que é responsável pelo trabalho de verdade. Em hardware quebrado (antes do i486, quando o bit WP não era honrado em modo de supervisor), as tabelas de página podiam mudar a qualquer momento, exigindo que as páginas desejadas fossem fixadas na memória, de modo que não fossem descarregadas para a área de troca enquanto estavam sendo endereçadas. Depois do i486, o processo nada mais é que uma cópia otimizada.

A função copy_from_user

 A função copy_from_user copia um bloco de dados do espaço do usuário para um buffer do kernel. Ela aceita um buffer de destino (no espaço do kernel), um buffer de origem (no espaço do usuário) e um comprimento definido em bytes. Assim como copy_to_user, a função retorna zero em caso de sucesso, e diferente de zero para indicar o fracasso em copiar certo número de bytes.

copy_from_user( to, from, n );

A função começa por verificar a possibilidade de ler o buffer de origem no espaço do usuário (via access_ok), e em seguida chama __copy_from_user e, por fim, __copy_from_user_ll. A partir daí, dependendo da arquitetura, uma chamada é feita para copiar do buffer do usuário para um buffer do kernel zerando (os bytes indisponíveis). As funções de assembly otimizadas incluem a capacidade de gerenciar.

A função strnlen_user

A função strnlen_user é usada da mesma maneira que strnlen, mas ela considera que o buffer está disponível no espaço do usuário. A função strnlen_user aceita dois parâmetros: o endereço do buffer no espaço do usuário e o comprimento máximo a ser verificado.

strnlen_user( src, n );

A função strnlen_user verifica primeiramente se o buffer do usuário é legível, por meio de uma chamada para access_ok. Se for acessível, a função strlen é chamada, e o argumento max length é ignorado.

A função strncpy_from_user

A função strncpy_from_user copia uma cadeia de caractere do espaço do usuário para um buffer do kernel, dados um endereço de origem no espaço do usuário e um comprimento máximo.

strncpy_from_user( dest, src, n );

Como se trata de uma cópia do espaço do usuário, a função primeiramente verifica se o buffer é gravável por meio de access_ok. De forma semelhante a copy_from_user, essa função é implementada como uma função assembly otimizada (em ./linux/arch/x86/lib/usercopy_XX.c).

Outros esquemas para mapeamento de memória


A seção anterior explorou métodos para movimentar dados entre o kernel e o espaço do usuário (com o kernel iniciando a operação). O Linux oferece outros métodos que podem ser usados para movimentação de dados, tanto no kernel como no espaço do usuário. Embora esses métodos possam não apresentar funcionalidade igual à das funções de acesso à memória do espaço do usuário, eles são semelhantes em sua capacidade de mapear memória entre os espaços de endereço.

Observe que, no espaço do usuário, como os processos do usuário aparecem em espaços de endereço separados, a movimentação de dados entre eles deve ocorrer por meio de algum tipo de mecanismo de comunicação interprocessos. O Linux oferece vários esquemas (tais como filas de mensagens), mas o mais notável é a memória compartilhada POSIX (shmem). Esse mecanismo permite que um processo crie uma área de memória e compartilhe essa região com um ou mais processos. Observe que cada processo pode mapear a região de memória compartilhada para diferentes endereços em seus respectivos espaços de endereços. Portanto é necessário um certo deslocamento de endereços.

A função mmap permite que um aplicativo do espaço do usuário crie um mapeamento no espaço de endereço virtual. Essa funcionalidade é comum em algumas classes de drivers de dispositivo (para desempenho), permitindo que a memória física do dispositivo seja mapeada para o espaço de endereço virtual do processo. Em um driver, a função mmap é implementada através da função do kernel remap_pfn_range, que fornece um mapeamento linear da memória do dispositivo para o espaço de endereço do usuário.



Conteúdo retirado do developerworks da IBM.
Publicado no Fórum da Brutal Security por Natan

terça-feira, 28 de abril de 2015

Mais um post do antigo fórum. Este originalmente postado por mim na área de Engenharia Social.


Veja ai 30 sinais de mentira.

1. A pessoa fará pouco ou nenhum contato direto nos olhos;

2. A expressão física será limitada, com poucos movimentos dos braços e das mãos. Quando tais movimentos ocorrem, eles parecem rígidos e mecânicos. As mãos, os braços e as pernas tendem a ficar encolhidos contra o corpo e a pessoa ocupa menos espaço;

3. Uma ou ambas as mãos podem ser levadas ao rosto (a mão pode cobrir a boca,  indicando que ela não acredita - ou está insegura - no que está dizendo). Também é improvável que a pessoa toque seu peito com um gesto de mão aberta;

4. A fim de parecer mais tranqüila, a pessoa poderá se encolher um pouco;

5. Não há sincronismo entre gestos e palavras;

6. A cabeça se move de modo mecânico;

7. Ocorre o movimento de distanciamento da pessoa para longe de seu acusador, possivelmente em direção à saída;

8. A pessoa que mente reluta em se defrontar com seu acusador e pode virar sua cabeça ou posicionar seu corpo para o lado oposto;

9. O corpo ficará encolhido. É improvável que permaneça ereto;

10. Haverá pouco ou nenhum contato físico por parte da pessoa durante a tentativa de convencê-lo;

11. A pessoa não apontará seu dedo para quem está tentando convencer;

12. Observe para onde os olhos da pessoa se movem na hora da resposta de sua pergunta. Se olhar para cima e à direita, e for destra, tem grandes chances de estar mentindo.

13. Observe o tempo de demora na resposta de sua pergunta. Uma demora na resposta indica que ela está criando a desculpa e em seguida verificando se esta é coerente ou não. A pessoa que mente não consegue responder automaticamente à sua pergunta.

14. A pessoa que mente adquire uma expressão corporal mais relaxada quando você muda de assunto.

15. Se a pessoa ficar tranqüila enquanto você a acusa, então é melhor desconfiar. Dificilmente as pessoas ficam tranqüilas enquanto são acusadas por algo que sabem que são inocentes. A tendência natural do ser humano é manter um certo desespero para provar que é inocente. Por outro lado, a pessoa que mente fica quieta, evitando a todo custo falar de mais detalhes sobre a acusação;

16. Quem mente utilizará as palavras de quem o ouve para afirmar seu ponto de vista;

17. A pessoa que mente continuará acrescentando informações até se certificar de que você se convenceu com o que ela disse;

18. Ela pode ficar de costas para a parede, dando a impressão que mentalmente está pronta para se defender;

19. Em relação à história contada, o mentiroso, geralmente, deixa de mencionar aspectos negativos;

20. Um mentiroso pode estar pronto para responder as suas perguntas, mas ele mesmo não coloca nenhuma questão.

21. A pessoa que mente pode utilizar as seguintes frases para ganhar tempo, a fim de pensar numa resposta (ou como forma de mudar de assunto): "Por que eu mentiria para você?", "Para dizer a verdade...", "Para ser franco...", "De onde você tirou essa idéia?", "Por que está me perguntando uma coisa dessas?", "Poderia repetir a pergunta?", "Eu acho que este não é um bom lugar para se discutir isso", "Podemos falar mais tarde a respeito disso?", "Como se atreve a me perguntar uma coisa dessas?";

22. Ela evita responder, pedindo para você repetir a pergunta, ou então responde com outra pergunta;

23. A pessoa utiliza de humor e sarcasmo para aliviar as preocupações do interlocutor;

24. A pessoa que está mentindo pode corar, transpirar e respirar com dificuldade;

25. O corpo da pessoa mentirosa pode ficar trêmulo: as mãos podem tremer. Se a pessoa estiver escondendo as mãos, isso pode ser uma tentativa de ocultar um tremor incontrolável.

26. Observe a voz. Ela pode falhar e a pessoa pode parecer incoerente;

27. Voz fora do tom: as cordas vocais, como qualquer outro músculo, tendem a ficar enrijecidos quando a pessoa está sob pressão. Isso produzirá um som mais alto.

28. Engolir em seco: a pessoa pode começar a engolir em seco.

29. Pigarrear: Se ela estiver mentindo têm grandes chances de pigarrear enquanto fala com você. Devido à ansiedade, o muco se forma na garganta, e uma pessoa que fala em público, se estiver nervosa, pode pigarrear para limpar a garganta antes de começar a falar.

30. Já reparou que quando estamos convictos do que estamos dizendo, nossas mãos e braços gesticulam, enfatizando nosso ponto de vista e demonstrando forte convicção? A pessoa que mente não consegue fazer isso. Esteja atento.


Créditos : Dr. David J. Lieberman

sexta-feira, 24 de abril de 2015

Mais um post do finado fórum da BS.

Se alguém testar em Windows 8, 8.1 e 10 e ainda funcionar (acredito que sim), comente aqui!







Vejam como o sistema Windows é vulnerável ate quando não está ligado... kkk

Situação: PC com windows instalado e com senha para login. Você tem acesso físico a máquina...


Você vai precisar de: Live CD de instalação de qualquer linux, ou outro sistema semelhante.

Sei que é algo óbvio, mas me quebrou um galhão aqui, espero que ajude também.

Vamos lá!

1- Boote seu sistema com o Live CD do Linux.

2- Vá na pasta Windows (Partição do Windows) > System32.

3- Renomeie o executável "cmd.exe" (o famoso prompt, terminal do windows) para "cmd2.exe"

4- Nesta mesma pasta renomeie o executável "Utilman.exe" para "cmd.exe".

5- Para evitar confusão renomeie o "cmd2.exe" para "Utilman.exe".

6- Boote agora no Windows e na tela de login aperte no botão de acessibilidade, que por mudar os nomes vai abrir o cmd.

7- No cmd digite "net user", irá listar os usuários daquela máquina.

8- Agora digite o comando "net user [nome_do_usuário] * "

9- Coloque uma nova senha para ele.

10- Para confirmar que a senha foi alterada com sucesso de o comando "explorer"

11- Agora volte para a tela de login e logue com a senha que você escolheu...


Este é um método, existem muitos outros...

Espero ter ajudado =D



P.S.: Testado em XP, Vista e 7, quem sabe funfe no 8 e 8.1 também

sexta-feira, 10 de abril de 2015

ThroughPut é a palavra modernosa americana para a taxa de transferência de dados de uma rede. É a medida de banda que sua rede (ou sua máquina) irá consumir. É importante saber qual o throughput máximo de sua rede por vários motivos, dentre eles, os provavelmente mais importantes são:

Revisão do plano de internet:

Existem duas possibilidades, ou sua rede está estourando a capacidade do seu link (Throughput maior, igual ou quase chegando na capacidade máxima do link), ou você tem um link muito maior que a sua necessidade (Throughput menor que 50% da capacidade do link).

A primeira possibilidade é bem óbvia. Você tem uma rede grande, em termos de utilização, e um link chinfrim. Claro, é sempre bom usar o bom senso nessas horas para saber se sua rede tem condições de consumir o que está consumindo. Se sua rede está com o Throughput elevado demais para o tamanho e a utilização que ela teoricamente deveria ter, você pode estar com máquinas bichadas na sua rede. Vamos ver isto mais abaixo.

A Segunda possibilidade pode parecer neurose, mas é importante. Porque deveria me preocupar se meu link está acima de minha necessidade? Porque, como diria Tio Sam, Link is Money, Oh yeah! Você esta pagando por algo que não esta utilizando! A não ser que hajam planos de expansão da rede (ou que você curta deixar aqueles torrents baixando na madrugada usando o link da firma... HÁ!), não há porque ter um link maior que sua necessidade. Quem sabe economizando na conta de internet não sobra pra trocar aquele K6-II quinhentão que tá lá de Samba server há 12 anos hein? #FIKDIK

Revisão do hardware de firewall:

Muito importante. As vezes o seu link está OK, sua rede está OK, mas seu firewall não está dando conta do recado. Isto irá agargalar a sua rede. Mesmo que você tenha um link de fibra ótica de 50 Gbps ligado ponto-à-ponto com a US NAVY, se seu firewall não aguentar o tranco, pode parecer que você está navegando pelo 3G da TIM. Firewalls Profissionais (UTMS, Appliances e bla bla bla) geralmente informam em suas páginas oficiais seus Throughputs máximos. Se seu firewall é em cima de Linux, com IPtables, você vai ter que monitorar a carga média (Load Average) dele. Não vou entrar em detalhes aqui sobre como fazer isto, mas deixo a dica: Firewall é firewall, servidor web é servidor web, servidor de e-mail é servidor de e-mail e assim por diante. Nunca é bom misturá-los na mesma máquina OK? 

Detecção de máquinas "bichadas" na sua rede:

É muito comum de se ver redes pequenas que deveriam ter baixas taxas de transferência de dados consumindo uma quantidade enorme de banda. Isto pode acontecer por vários motivos. Um deles, bem provável de ocorrer em redes windows, é o aparecimento de vírus. Vírus, Spammers, DDOS são coisas que quando infectam uma máquina ou uma rede, aumentam muito o Throughput dela. Outro causa pode ser uma placa de rede com problemas, enviando pacotes repetidos, por exemplo, dobrando seu throughput. Ainda pode haver máquinas com placas de rede defeituosas, não respondendo às conexões que fazem com que todo o pacote enviado à ela seja enviado novamente, aumentando a latência da rede.

Como calcular o Throughput?

O Throughput médio de uma rede é calculado pelo tamanho da janela TCP das máquinas (No Windows, o padrão é 64k, veja na Wikipedia) dividido por sua latência. Numa rede comum, temos uma janela TCP de 64KB, precisamos converter isto para bits para poder calcular, o que vai nos dar, mais ou menos 524,288. dividimos isto pela latência da conexão (O "time" que aparece no ping, lembre-se de fazer o teste de uma máquina da rede, e não do firewall). Numa conexão comum, em uma rede 10/100, o ping para o google me retornou 15ms de latência, então, o calculo ficaria 524.288/0.015 = 34952.53, dividimos isto por 1KK (um milhão, se você não joga, ou não conhece ninguém que jogue tíbia) para termos o resultado em megabits por segundo. 34952.53/1000000 = 0.035Mbps (arredondado). Este é o throughput de uma máquina de sua rede. Multiplique este valor pelo total de máquinas de sua rede e você terá o Throughput total dela, por exemplo, se sua rede tem 150 máquinas, 0.035*100 = 3.5Mbps.

Este valor é o máximo que sua rede poderá consumir de banda, é lógico, se as máquinas forem todas iguais. Tudo em uma rede pode aumentar a latência de uma máquina e assim, aumentar seu throughput, cabeamento confuso, com mal contato, etc. Fique atento a isto!           


Belo post feito pelo Natan, colaborador aqui do blog. Postado lá no antigo fórum da BS.     

segunda-feira, 6 de abril de 2015

Um baita post que eu mesmo publiquei no finado fórum da BS.

Só vou deixar um disclaimer aqui antes do post, nem sempre as técnicas descritas aqui vão funcionar, são muitos fatores que envolvem, até mesmo sua intonação de voz pode estragar tudo. Sem comentar que você pode estar completamente enganado. Suas ações são sua responsibilidade, não nos culpe por qualquer merd* que você possa se meter com isso. :D

               

As técnicas abaixo devem ser usadas caso você esteja muito desconfiado da pessoa e ela se recusa a confessar.


1. Céu e inferno: Esta técnica cria uma espécie de fobia na pessoa e a única saída é confessar a verdade para você. Aqui usamos as forças que moldam o comportamento humano: Dor e o Prazer nos seus limites para nos revelar a verdade. Exemplo de uso:

Se você acha que sua colega de trabalho está roubando o material de escritório da empresa. Você falaria: "Fulana, já sei da verdade. Sei também que você já está se arrependendo de ter feito isso. Podemos resolver isso agora. Você pode me contar tudo e esquecemos isso para sempre. Ninguém mais ficará sabendo e você continuará no seu emprego.

Mas, pode escolher um caminho mais doloroso: Posso ir até nosso chefe e falar para ele. Você sabe que isso seria demissão na certa, não é? Além do mais sua imagem ficaria suja. Imagina todos seus colegas comentando sobre o que você fez? Portanto, para o seu bem, me confesse agora e terminamos com isso de uma vez por todas".

Se vincularmos dor intensa e insuportável à idéia de mentir e prazer imediato à idéia de falar a verdade, ela só terá uma saída: falar a verdade!


2. Curto circuito: Com essa técnica você cria uma confusão mental na pessoa, enquanto implanta sugestões diretamente no inconsciente. Ela ficará confusa com a frase de abertura e entrará num leve transe enquanto você lança uma frase com comandos implícitos (estão em negrito) que serão completamente absorvidos pelo seu inconsciente. Exemplo de uso:

"Fulano (a), você pode muito bem acreditar nas coisas que pensava que sabia,  e, se você quer... dizer a verdade... ou... não quer dizer a verdade...a decisão é sua. Portanto, me... diga a verdade..., agora!"

Essa sentença é registrada pelo inconsciente em sua totalidade. Os comandos, "dizer a verdade", "diga a verdade" (Muito importante: o inconsciente não registra uma negativa - o 'não') e "agora" são enviados diretamente para o inconsciente, sem a pessoa - a parte consciente - se dar conta e mostrar resistência.

Outro exemplo:

Fulano (a). Eu não quero que você diga nada, a menos que, realmente, queira. E entendo que você já esqueceu o que havia pensado em querer, não é? Se estiver pensando consigo mesmo algo como... eu quero dizer à você, então simplesmente... diga ... Quando perceber que... esta é a decisão certa... você... irá me dizer a verdade... agora!

Importante:

• Antes e depois do comando - que está em negrito - você deve dar uma pausa

• Ao dar o comando, aumente um pouco a voz e utilize uma tonalidade descendente.

• Gesticule com as mãos ao dizer o comando.


Você também pode usar a técnica do curto circuito, com o intuito de apenas interromper a linha de raciocínio de uma pessoa. Utilize as frases abaixo quando quiser tomar o controle de uma conversa, ou temporariamente confundir a pessoa, enquanto você reúne seus próprios pensamentos. Abaixo você tem algumas frases que desenvolvi. Não esqueça de gesticular enquanto fala. Use com moderação. Se usar várias delas seguidas, poderá provocar uma forte confusão mental na pessoa.

• Porque você ainda acredita em algo que duvidava?

• Você, realmente, ainda acredita nas coisas que pensava que sabia?

• Você duvidaria menos se acreditasse mais nas coisas que imaginava que sabia?

• Você não lembra do que havia esquecido?

• Se acreditasse mais nas coisas que falou, duvidaria menos das coisas que escutou?

• Você acredita nas coisas que já sabia?

• Como pode acreditar nas coisas que pensa que sabia?

• Essa pergunta significa que você ainda duvida das coisas que imaginava serem verdadeiras, não é?

• Você acredita mesmo, que já sabia disso?

• Porque me perguntou algo que já sabia?

• Se você já acreditava nisso, porque pensou que têm dúvidas?

• Se você não esperava que eu acreditasse numa coisa dessas, porque me contou?

• Você está concordando com uma coisa que já sabia, não é?

• Como pode concordar de algo que acreditava ser mentira, antes mesmo de aceitar a verdade?

• Quanto mais você acredita nas coisas que duvidava, mais concorda com a possibilidade de que tudo não passou de uma grande mentira?


3. Criações do inconsciente: Esta técnica utiliza comandos implícitos de um modo totalmente novo. Você vai oferecer uma sugestão que cria uma ação perceptível. Exemplo de uso:

"Fulana, eu não estou dizendo que você deverá ...enrijecer seu corpo... se ...estiver mentindo" Se ela for mesmo culpada, o inconsciente se encarregará de dar uma resposta.


Créditos : Dr. David J. Lieberman

quarta-feira, 19 de fevereiro de 2014

E ai pessoal!

Gostariam de aprender, conhecer mais ou se dedicar a arte de enganar e manipular? No nosso fórum temos uma área dedicada para o estudo desta arte. Não deixe de conferir!

http://forum.brutalsecurity.com.br/f60-engenharia-social

Confira também as outras áreas do fórum, em 1 mês já conseguimos mais de 300 mensagens sobre diversos temas para você. Dê uma passadinha por lá!

sexta-feira, 17 de janeiro de 2014

E ai galera!

Hoje estamos anunciando o nascimento do fórum oficial do site. Aproveitamos a data comemorativa de 1 ano do site para iniciar nosso próximo projeto.



O fórum é uma ótima ferramenta para discutir, aprender e ensinar. Posso afirmar que toda a equipe do blog iniciou seus estudos em um fórum ou similar.

Muitos conteúdos que não encaixam perfeitamente no blog serão migrados para esse fórum. Outra grande vantagem é que você pode colaborar, postando o que quiser, desde que de acordo com as regras. Posts relevantes do fórum virão para o blog com os devidos créditos/agradecimentos a pessoa que postou.

Venha conhecer nosso fórum e participar no desenvolvimento do site e da comunidade como um todo!

Para acessar o fórum acesse forum.brutalsecurity.com.br, ou clique no botão no topo do site.

Contamos desde já com a colaboração de todos para criar um fórum referência em infosec no Brasil!

Valeu
Subscribe to RSS Feed Follow me on Twitter!