hackerspace movement.
If we can‘t hack it, you still own it.
Prompting recalls since 2005.
Come „Don‘t touch that“ with us!
Like prom night, for your warranty.
No ID required, we‘ll print one for you.
Can I borrow your phone for a minute?
Find us on OK Cupid.
Hold my beer while I take the cover off this.
Show me your bits.
Because gadget molestation is fun!
What‘s in your pocket?
Breaking seals since 2005.
Building better breakage.
Hackers. BDSM. LAstRiPpers. You do the math.
Solder is just another name for spit and baling wire. Smoke is how a circuit board expresses love. Aggression therapy for Geeks.
Good People, bad ideas.
Privacy is obsolete, for most of you.
Two legs good, two digits bad. Warranty-voiding, swashbuckling, password-hacking hooligans. You bought it, we broke it.
Warning Digital Hazards Next 0xFA Miles. Bootstrapping the Robot Revolution.
Slogan removed by DMCA.
Geeks, Freaks, and Tweaks.
We know better but we do it anyways.
BYOSSL Bring Your Own Stimulants Solder and Lube. Technology Perverts
Back-alley technologists
Putting the NS in NSFW
Do look at laser with remaining eye.
Warranties voided wholesale.
Creditos: hackerspaces.org
Flisol 2011 ! – Palestra
Hoje foi um dia excepcional, a muitos anos atras assisti meu primeiro Flisol (Festival Latino-americano de Instalação de Software Livre ), quem diria que hoje fui como palestrante, assim vou disponibilizar aqui o material utilizado na palestra.
Baixe aqui o PDF com os comentários ->Zabbix
Baixe aqui o passo a passo da instalação -> TutoZabbix
Análise de logs Apache
Análise de logs
De acordo com Ivan Ristic (RISTIC,2005), usar uma única ferramenta para detecção de intrusão não é insuficiente, boa parte dos detectores de intrusão, os IDS, IPS e outros atuam sobre a pilha TCP/IP e embora atuem bem para o que foram destinados não podem proteger plenamente os servidores Web, pois a Web é baseada em torno do protocolo HTTP, que é um vocabulário completamente novo. Ele possui seu próprio conjunto de problemas e desafios, que são diferentes da pilha TCP / IP.
O Formato Dos Log
O apache possui alguns tipos de logs. Os principais são o logs de acesso, onde todas as requisições são registradas, e os logs de erros, que registram eventos não esperados (falhas, erros). Existem também alguns Logs de alguns módulos específicos.
Logs de erro
Diferente do log de acesso o log de erro não possui uma forma determinada, mas informações muito importantes podem ser obtidas nas entradas de logs de erro, observe uma mensagem típica:
[Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] client denied by server configuration: /export/home/live/ap/htdocs/test
A primeira parte contém a data detalhada com minuto e segundo de quando ocorreu a mensagem. A segunda parte mostra a importância do erro que está sendo reportado. A diretiva de nível de log “LogLevel” mostra os tipos de erros que são enviados para o log de erro, observe a tabela 3, a terceira parte informa o endereço IP do cliente que gerou o erro, e por último a mensagem de propriamente dita, que neste caso indica que o servidor tenha sido configurado para negar o acesso do cliente.
Uma ampla variedade de mensagens diferentes pode aparecer no log de erro. A maioria com aspecto semelhante ao exemplo acima. O log de erro irá conter também a saída da depuração de scripts CGI. Qualquer informação escrita por um script CGI será copiado diretamente para o log de erro.
| Nível | Descrição | Exemplo |
| emerg | Emergência sistema inutilizável. | “Child cannot open lock file. Exiting” |
| alert | Tomar medidas imediatamente. | “getpwuid: couldn’t determine user name from uid” |
| crit | Condição crítica. | “socket: Failed to get a socket, exiting child” |
| error | Erro. | “Premature end of script headers” |
| warn | Condição de aviso. | “child process 1234 did not exit” |
| notice | Normal, mas significativa. | “httpd: caught SIGBUS, attempting to dump core in …” |
| info | Informativa. | “Server seems busy” |
| debug | Mensagens de nível de depuração | “Opening config file …” |
Tabela 3 – Níveis de erro servidor apache (APACHE,2010)
Log acesso.
Já os logs de acesso são totalmente configuráveis, o primeiro parâmetro é uma seqüência de formato, indicando as informações a serem incluídas em um arquivo de log e o formato em que deve ser escrito, o segundo parâmetro dá a seqüência de formato de um nome disponível, a sintaxe básica do formato de um log padrão do apache segue a seguinte:
LogFormat <formato do log> <nome definido em CustomLog>
LogFormat “% h% l% u \ t%”% r \ “>% s% b” comum
Os símbolos inscritos no formato do log podem ser entendidos com a tabela abaixo que foi retirada e traduzida a partir da documentação de referência do Apache
| Format String | Description |
| %% | O sinal de porcentagem |
| %…a | Endereço IP remoto |
| %…A | Endereço IP local |
| %…B | Bytes enviados (excluindo os cabeçalhos) |
| %…b | Bytes enviados (excluindo os headers); um traço (-) em vez de 0 |
| %…{Foobar}C | O conteúdo do nome do cookie |
| %…D | Tempo gasto para atender a solicitação, microssegundos |
| %…{FOOBAR}e | O conteúdo da variável de ambiente |
| %…f | Nome do arquivo |
| %…h | host remoto |
| %…H | protocolo do pedido |
| %…{Foobar}i | O conteúdo do nome do cabeçalho do pedido |
| %…l | Nome de registro remoto (de identd) |
| %…m | método Request |
| %…{Foobar}n | Conteúdo da nota Nome |
| %…{Foobar}o | Conteúdo do nome do cabeçalho de resposta |
| %…p | Canonical porta do servidor |
| %…P | Processo de identificação |
| %…{format}P | Dependendo do formato, ID de processo (PID) ou thread ID (TID) |
| %…q | Query string |
| %…r | Pedido de linha |
| %…s | status de resposta |
| %…t | Tempo, em formato de registro comum |
| %…{format}t | Tempo, em formato personalizado |
| %…T | Tempo gasto para atender a solicitação, em segundos |
| %…u | usuário remoto |
| %…U | A URL, excluindo a seqüência de consulta |
| %…v | Canonical nome do servidor |
| %…V | Nome do servidor de acordo com a directiva UseCanonicalName |
| %…X | O status da conexão no final do pedido |
| “X” para abortaos | |
| “+” para persistente | |
| “-” para fechado | |
| %…I | Bytes received, including request and headers, cannot be zero. |
| %…O | Bytes sent, including headers, cannot be zero. |
Tabela 4 Descrição siglas de log do apache.
(APACHE, Logs Acesso)
Para o entendimento de leitura de um log, vamos analisar um ex de log de um servidor web, no caso o do apache, o arquivo de log mais relevante para a segurança é o arquivo chamado error.log.
Os Log de Erros
Ao contrario de um arquivo de acesso, o ideal ao ler um arquivo de erro são apenas mensagens de Start e Stop comandadas ao servidor, qualquer outra mensagem é indesejada.
[Sat May 22 22:35:32 2010] [notice] caught SIGTERM, shutting down
[Sat May 22 22:37:57 2010] [notice] SELinux policy enabled; httpd running as context root:system_r:httpd_t:s0
[Sat May 22 22:37:57 2010] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Sat May 22 22:37:58 2010] [notice] Digest: generating secret for digest authentication …
[Sat May 22 22:37:58 2010] [notice] Digest: done
[Sat May 22 22:37:58 2010] [notice] Apache/2.2.3 (CentOS) configured — resuming normal operations
Um exemplo, seria uma mensagem de “Arquivo não Encontrado” este erro possivelmente significa que existe um site contendo um link para seu servidor cujo endereço não exista, poderemos observar um log de entrada como segue:
[Sat May 22 22:39:23 2010] [error] [client 189.72.220.73] File does not exist: /var/www/html/link_quebrado.
O procedimento neste caso seria avisar o responsável pelo site com o link inexistente e ou redirecionando para sua página inicial.
Manter os logs de erro o mais sucinto possível ajuda na detecção de tentativas de ataques ou pedidos maliciosos ao servidor, já que boa parte das tentativas de exploração são identificadas através do error.log
Um outro exemplo seria o seguinte:
merc [httpd @ localhost] $ grep-i access_log formmail
[Sun 29 de setembro 06:16:00 2003] [error] [client 66.50.34.7]
script não foi encontrado ou não fazer stat: / extra / httpd / cgi-bin / formmail.pl
merc [httpd @ localhost] $
Para evitar de expor um e-mail de contato e ser vítima de Spam, é comum utilizar um script para criar um formulário para recebimento de mensagem ocultando assim o e-mail, mas este script chamado formmail , abre uma série de brechas principalmente de segurança, uma delas curiosamente permite o uso do formulário para o envio de spam.
Logs graves como falha de segmentação pode indicar falha de algum módulo do apache ou ataque DOS ou buffering veja exemplo log de falha de segmentação:
[Sun Sep 29 06:16:00 2002] [error] [notice] child pid 1772
exit signal Segmentation fault (11)
Verificar os logs de acesso (access.log) no horário em que ocorreu o erro pode dar uma pista da causa do problema.
Através dos logs também é possível verificar ataques a sistemas operacionais, veja a seqüência do log abaixo que mostra nas entradas tipos de ataque ao Windows vista, apenas observe a seqüência exe no log de acesso, veja exemplo:
[root@localhost logs]# tail –f
200.216.141.59 – - [29/Sep/2003:06:25:22 +0200] “GET /_vti_bin/shtml.exe HTTP/1.0″ 404 288
200.216.141.59 – - [29/Sep/2003:06:31:33 +0200] “GET /_vti_bin/shtml.exe HTTP/1.0″ 404 288
193.253.252.93 – - [02/Oct/2003:02:17:53 +0200] “GET /scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir+c:\ HTTP/1.1″ 404 319
151.4.241.194 – - [02/Oct/2002:02:34:46 +0200] “GET /scripts/..%255c%255c../winnt/system32/cmd.exe?/c+dir” 404 –
Uma dificuldade em encontrar anomalias nos logs é a técnica de uso de URLs codificadas, esta técnica substitui o caractere pelo seu código ASCII equivalente.
| Tabela conversão principais caracteres para ASCII | |||||||
| Caracter | Código | Caracter | Código | Caracter | Código | Caracter | Código |
| (espaço) | 20% | ? | %3f | & | 26% | % | 25% |
| # | 23% | / | %2f | < | %3c | > | %3e |
| : | %3a | / | %2f | | | %7c | ; | %3b |
Tabela 5 – Fonte (E-PLANING,2010).
Veja um exemplo de como pode ser escrito:
Em caractere:
151.4.241.194 – - [02/Oct/2002:02:34:46 +0200] “GET /scripts/..%255c%255c../winnt/system32/cmd.exe?/c+dir” 404 –
Em código ASCII:
151.4.241.194 – - [02/Oct/2003:02:34:46 +0200] “GET
/scripts/..%255c%255c../winnt/system32/cmd.%65x%65?/c+dir” 404 –
Quando codificados desta forma, esta URL passaria despercebido aos olhos ou mesmo a um filtro grep. Para que uma busca seja eficaz, é necessário decodificar todas as URLs dos arquivos de log, existem diversos scripts e programas, feito isto é possível comparar e identificar os logs suspeitos.
Conclusão.
Conclusão.
Com a análise dos logs podemos identificar varias vulnerabilidades e atentados contra o servidor e as aplicações nele hospedadas de maneira satisfatória, porem para uma maior abrangência é necessário um modulo especifico de gravação de logs de erros em uma base de dados e monitorar outros parâmetros do sistema para formação de uma ferramenta mais eficiente.
Referências.
FURLAN, Jose Davi. Modelagem de objetos através da UML-The Unified Modeling. Language. São Paulo: Makron Books, 1998. 329 p.
RISTIC, Ivan. Apache Security. O’Reilly, 2005. 420 p.
MOBILY,Tony. Hardening Apache. Apress, 2004. 270 p.
E-PLANING,Ferramentas de marketing, Disponível em:
<http://www.e-planning.net/pt/suporte/codificacao_caracteres_em_url.html>. Acessado em 24 de Maio 2010.
OLLMANN,Gunter.HTML Injection. Disponível em:
<http://www.technicalinfo.net/papers/CSS.html> Acesso em 8 de junho de 2010.
APACHE, Logs Acesso, 2010. Disponível em:
<http://httpd.apache.org/docs-2.0/mod/mod_log_config.html>. Acessado em: 23 Maio 2010
FEIMAN, Joseph, Conferencia Gartner. Disponível em:
<www.gartner.com/it/summits/brl34l/Integracao_Empresarial.pdf> Acesso em 23 Maio 2010.
AUGER,Robert. OS Commanding. Disponível em:
<http://projects.webappsec.org/OS-Commanding>
RODRIGUES,Alexís.Exploits.Disponivel em:
<http://www.firewalls.com.br/files/alexisExploit.pdf> Acessado em 8 junho 2010
APACHE. Logs Erro. 2010. Disponível em:
</httpd.apache.org/docs/2.1/logs.html> Acessado em 23 de Maio 2010.
ALMEIDA, Marcelo ,Zone-H,2008. Disponível em:
<http://www.zone-h.org/news/id/4686> Acessado em: 16 de maio de 2010.
WIKI. DoS. Disponível em:
<http://pt.wikipedia.org/wiki/Ataque_de_negação_de_serviço> Acessado em: 10 de Junho de 2010.
SK, SQL Injection Walkthrough,2002, Disponível em:
<http://www.securiteam.com/securityreviews/5DP0N1P76E.html>.Acesso em: 8 de Junho de 2010
CLABURN,Thomas. Itweb. Disponivel em:
<http://www.itweb.com.br/noticias/index.asp?cod=62523>. Acesso em: 16 de maio de 2010.
CASEY, Tami. Cenzic. Disponível em:
<http://www.cenzic.com/pr_20100302/> Acesso em: 16 de maio de 2010.
CERT.BR.Incidentes. Disponível em:
<http://www.cert.br/stats/incidentes/> Acesso em: 23 de Maio 2010
STANCIN,Aleksandar.CGI Vulnerabilities. Disponível em:
<http://www.net-security.org/article.php?id=91&p=2> Acesso em: 8 de junho de 2010
MODADUGU, Nagendra. Googleonlinesecurity. Disponível em:
<http://googleonlinesecurity.blogspot.com/2007/06/web-server-software-and-malware.html> Acesso em: 16 de maio de 2010
SANS, Intrusion Detection FAQ. Disponível em:
<http://www.sans.org/security-resources/idfaq/>. Acesso em: 16 de maio de 2010.
OUTOFORDER.ModLOGSQL. Diponivel em:
<http://www.outoforder.cc/projects/apache/mod_log_sql/docs-2.0/?chapter=/3/6/3/> Acessado em: 8 de Junho de 2010.
Crônicas…
As circunstâncias entre as quais você vive determinam sua reputação.
A verdade em que você acredita determina seu caráter.
A reputação é o que acham que você é.
O caráter é o que você realmente é…
A reputação é o que você tem quando chega a uma comunidade nova.
O caráter é o que você tem quando vai embora…
A reputação é feita em um momento.
O caráter é construído em uma vida inteira…
A reputação torna você rico ou pobre.
O caráter torna você feliz ou infeliz…
A reputação é o que os homens dizem de você junto à sua sepultura.
O caráter é o que os anjos dizem de você diante de Deus.
Foi de ultima hora, e foi bom ! “Show me the code”
Convidado pelo amigo Diego, resolvi ir ao “show me the code” no final da aula de sábado.
Já que o Diego e seu amigo Yuri não sabiam o caminho, acionei meu extremo senso de direção e parti para o Campus 2 samambaia -> “acho que é por ali, pergunta o taxista, volta , olha a placa” aff…

Palestra de PHP
Segundo ultimo levantamento o PHP é a 3 maior linguagem de programação utilizada hoje em dia !, Wikipedia, Facebook são exemplos da disponibilidade.
Os três aesquerda são programadores PHP , os três a direita são programadores Ruby, e no meio Java, que ficou na desvantagem tanto de contingente quanto de numero de alfinetadas..hehe, foi faisca para todo lado.
E olha só rolou até uns brindes !

Brindes
A da esquerda custou uma costela ao Diego, e a da Direita um olho roxo..hehe.

Palestra
Sala cheia….
Mais detalhes http://www.showmethecode.com.br/1.0/

SNMP e CACTI – Instalação
Resolvi postar aqui como forma de documentar minha atividade na faculdade de instalação e configuração do CACTI
É necessário uma alteração no arquivo /etc/snmp/snmpd.comf
Abaixo um modelo:
# First, map the community name “public” into a “security name”
# sec.name source community
com2sec publicUser 127.0.0.1 publica
com2sec privateUser 127.0.0.1 privada
####
# Second, map the security name into a group name:
# groupName securityModel securityName
group publicGroup v1 publicUser
group privateGroup v2c privateUser
####
# Third, create a view for us to let the group have rights to:
# Make at least snmpwalk -v 1 localhost -c public system fast again.
# name incl/excl subtree mask(optional)
view systemview included .1
view systemview included .1
####
# Finally, grant the group read-only access to the systemview view.
# group context sec.model sec.level prefix read write notif
access publicGroup “” any noauth exact systemview all all
access privateGroup “” any noauth exect systemview all all
# —————————————————————————–
Inicie o serviço snmp# /usr/sbin/snmpd -c /etc/snmp/snmp.conf
Se precisar modificalo não esqueça da dica abaixo:
altere #vim /etc/snmp/snmpd.conf
pare o serviço #killall snmpd
Inicie novamente o serviço snmp# /usr/sbin/snmpd -c /etc/snmp/snmp.conf
verifique se o servico está ativo:
#nmap -p 161 -sU 127.0.0.1
ou
#netstat -anu
Pode testar com uma consulta via shell
snmpwalk -v 1 -c publica 127.0.0.1 .1
O resultado e uma listagem de toda a árvore snmp.
Se voçe teve sucesso até aqui, pode proceguir :
Manual de instalação do CACTI
Baixar rrdtool
http://www.linuxpackages.net/download.php?id=12916
Baixar o cacti
http://www.cacti.net/download_cacti.php
Habilitar o apache
root@darkstar:~# apachectl start
httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName
Habilitar o php
vim /etc/httpd/httpd.conf
Procurar pela linha php
/php
Descomentar a linha
#Include /etc/httpd/mod_php.conf
Editar a linha index.html e incluir index.php na frente
<Ifmodule dir_module>
DirectoryIndex index.php index.html
</IfModule>
Criando a pagina inicial do php
criar a pagina phpinfo.php dentro de /var/www/htdocs e a pasta cacti
root@darkstar:~# cd /var/www/htdocs/
root@darkstar:/var/www/htdocs# ls
apache_pb22_ani.gif apache_pb22.png apache_pb.png index.html
apache_pb22.gif apache_pb.gif htdig/ manual/
root@darkstar:/var/www/htdocs# vim phpinfo.php
root@darkstar:/var/www/htdocs# mkdir cacti
root@darkstar:/var/www/htdocs# ls
apache_pb22_ani.gif apache_pb22.png apache_pb.png htdig/ manual/
apache_pb22.gif apache_pb.gif cacti/ index.html phpinfo.php
root@darkstar:/var/www/htdocs#
Importando a base de dados do cacti para o mysql
Aqui a minha maior dificuldade pois eu já possuía o mysql funcionando devido a disciplina do professor Willians e já havia configurado senha de root para o mysql assim os comandos mudam um pouco pois é exigido senha.
Logando no mysql
mysql -u root -p
Criando banco de dados cacti
mysql> CREATE DATABASE cacti;
Comprovando a criação do banco.
mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| cacti |
| futebol |
| mysql |
+——————–+
4 rows in set (0,00 sec)
Importando as tabelas do CACTI
root@darkstar:/opt/cacti-0.8.7d# mysql -u root -pSenhaSemDarEspaço cacti < cacti.sql
root@darkstar:/opt/cacti-0.8.7d#
Comprovando a criação das tabelas
mysql> use cacti;
mysql> show tables;
+—————————+
| Tables_in_cacti |
+—————————+
| cdef |
| cdef_items |
| colors |
| data_input |
| data_input_data |
| data_input_fields |
| data_local |
| data_template |
| data_template_data |
| data_template_data_rra |
| data_template_rrd |
| graph_local |
| graph_template_input |
| graph_template_input_defs |
| graph_templates |
| graph_templates_gprint |
| graph_templates_graph |
| graph_templates_item |
| graph_tree |
| graph_tree_items |
| host |
| host_graph |
| host_snmp_cache |
| host_snmp_query |
| host_template |
| host_template_graph |
| host_template_snmp_query |
| poller |
| poller_command |
| poller_item |
| poller_output |
| poller_reindex |
| poller_time |
| rra |
| rra_cf |
| settings |
| settings_graphs |
| settings_tree |
| snmp_query |
| snmp_query_graph |
| snmp_query_graph_rrd |
| snmp_query_graph_rrd_sv |
| snmp_query_graph_sv |
| user_auth |
| user_auth_perms |
| user_auth_realm |
| user_log |
| version |
+—————————+
48 rows in set (0,00 sec)
mysql>
Criando usuário e senha para cacti
mysql> GRANT ALL PRIVILEGES ON *.* TO cacti@localhost IDENTIFIED BY “cacti” WITH GRANT OPTION;
Query OK, 0 rows affected (0,00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0,00 sec)
mysql>
Copiando arquivos da pasta /opt/cacti-0.8..7d para /var/www/htdocs/cacti/
Tentei insistentemente mas só consegui copiar e colar via modo grafico.
Dando privilegios aos diretorios rra/ e log/
*Criei usuário local cacti com senha cacti.
root@darkstar:/var/www/htdocs/cacti# chown -R cacti rra/ log/
root@darkstar:/var/www/htdocs/cacti#
Configurando acesso do CACTI ao banco mysql via PHP
root@darkstar:/var/www/htdocs/cacti/include# vim config.php
dentro de config.php via vim digite:
/* make sure these values refect your actual database/host/user/password */
$database_type = “mysql”;
$database_default = “cacti”;
$database_hostname = “localhost”;
$database_username = “cacti”;
$database_password = “cacti”;
$database_port = “3306″;
/* Default session name – Session name must contain alpha characters */
#$cacti_session_name = “Cacti”;
Adicionando uma tarefa no crontab.
O certo seria
root@darkstar:~#crontab -e
Porem eu errei e não funcionou nem del nem backspace dai depois de uma pesquisa descobri que posso utilizar o vim
assim:
root@darkstar:~# vim /var/spool/cron/crontabs/root
Adicionei a linha abaixo.
*/5 * * * * /usr/bin/php -f /var/www/htdocs/cacti/poller.php 1> /dev/null
Agora no browser
Digite:
http://127.0.0.1/cacti/
5.2 ? Conclusão
Por incrível que pareça não tive problemas, pois ia executando e testando conforme se pode observar acima, o mysql já estava em produção com a disciplina do Willians, os problemas foram mais básicos crontab, comando cp, alguns comando mysql, enfim foi demorado porem tranqüilo.
5.3- Bibliografia
http://manoelcampos.wordpress.com/tag/banco-de-dados/
http://www.clockwatchers.com/mysql_dump.html
http://www.vivaolinux.com.br/artigo/Instalando-a-ferramenta-CACTI/
http://www.vivaolinux.com.br/artigo/Instalando-o-Cacti-em-plataforma-Debian/
http://www.vivaolinux.com.br/dica/Instalacao-rapida-do-CACTI-(SNMP)-no-Debian/
Slackware quase perfeito a saga….
Solucionando pequenos problemas.
BROffice – Setas, tab e backspace não funcionam:
Abra o BRoffice em ferramentas selecione personalizar na aba teclado clique em Redefinir, caso o broffice feche com um erro, renomear o arquivo default.xm para default.xml, na pasta “/opt/openoffice.org/basis3.0/share/config/soffice.cfg/modules/swriter/accelerator/en-US/”
creditos: aqui
BROffice: Cadê as fontes Times new roman, arial, Solução simples:
Dica copie as fontes do windows que fica em c:windows/fontes para um pendrive, dá ums 300Mb de fontes
Clique no icone o inicial do KDE>configurações>administração do sistema>instalador de fontes, clique em adicionar fontes e aponte para as novas fontes copiadas previamente no pendrive.

