Archive for the ‘ Hack ’ Category

Trocando a senha de support do Sagemcom F@ST 1704

Há umas duas semanas, assinei 15Mbps com a GVT. Já tinha 10, mas velocidade nunca é demais. Hoje chegou o roteador novo, um Sagemcom F@ST 1704, e o técnico insistiu em desligar meu antigo Linksys WAG200g e ligar este novo. Já que já tinha ligado este, resolvi dar uma chance para ele (além do mais, o sinal estava melhor nele).

Imediatamente notei que ele usava um firmware igual ao dos antigos Siemens, e uma rápida pesquisa confirmou que o modem é, na verdade, um Siemens mesmo.

Eis que fui trocar a senha e descubro que há 3 usuários: admin, support e user. A senha padrão de admin vem escrita no modem, e é gvt12345. O problema é que, para trocar as outras senhas, é necessário conhecê-las, e não estão escritas em nenhum lugar.

Vejam o problema de deixar as senhas padrão. Eu não quero a GVT fuçando no meu modem. O antigo Thomson que me deram quando assinei 10Mbps tinha um problema curioso de resetar as configurações de DNS e port forwarding. Quando troquei para o Linksys, isto parou.

Quando reclamei no twitter sobre não poder trocar a senha, meu amigo @elland sabiamente me disse:

Com esta intenção, conectei ao roteador por telnet. Eis que descubro que rodar passwd username senha troca a senha do usuário sem confirmação nenhuma. Mais fácil do que eu esperava.

Filevault com HFS+ Case Sensitive

Então, amigos. Acabo de instalar meu SSD novo e aproveitei para instalar o Snow Leopard num sistema Case Sensitive, como um bom sistema Unix.

Para minha surpresa, o OSX não deixa ativar FileVault em sistemas Case Sensitive. Eis que encontrei uma solução:

  1. Crie um novo usuário administrador
  2. Logue como este usuário
  3. Mova sua antiga pasta de usuário para evitar que ela seja deletada:
  4. $ cd /Users

    $ sudo mv meuusuario meuusuario.bak

  5. Delete sua conta antiga e crie uma nova com o mesmo nome. Não esqueça de marcar que quer usar FileVault
  6. Deslogue da conta de administrador e logue na sua nova conta
  7. Copie toda sua pasta antiga para a nova

    $sudo /usr/bin/rsync -av /Users/meuusuario.bak/ /Users/meuusuario
    $sudo chown -R meuusuario ~/

  8. Deslogue e logue de novo em seu usuário para as configurações voltarem a funcionar
  9. Se deu tudo certo, pode remover o usuário administrador que foi criado antes e a pasta sem criptografia do seu usuário:

    $ sudo rm -rf /Users/meuusuario.bak

Qualquer dúvida deixe um comentário.

Faça backup dos seus pacotes do Cydia de graça

Bem, amigos, todos nós já sabemos que um iPhone sem jailbreak é igual a uma Harley-Davidson sem rodas. Muito bonito, mas inútil. Chato é que, com cada atualização do iOS, temos que fazer jailbreak de novo e instalar todos os apps do zero. Certo? Errado.

Há várias opções de pacotes no Cydia que prometem fazer backup dos outros pacotes. Testei um grátis recentemente, o AptBackup, e consegui mais de 4GB de lixo espalhado pelo sistema de arquivos e nada de restaurar meus pacotes.

Aparentemente o PkgBackup é muito bom, mas passou de $2 para $8 assim que o jailbreak unthetered do 4.3.1 foi liberado, então me recuso a comprar por princípio, e a piratear por… Sei lá por que, o dev parece ser fdp mesmo. Mas, de qualquer jeito, tem uma outra maneira.

Suponho que você já tenha o OpenSSH instalado (e tenha trocado a senha de root e do user mobile!). Então conecte-se por SSH no seu iPhone e rode isto, como root:

dpkg –get-selections > apps.txt

Note que antes de get-selections são dois sinais de menos (tack-tack), mas o WordPress gosta de me trollar e troca por um travessão.

Agora copie este arquivo para algum lugar seguro no seu computador, atualize seu iPhone e faça jailbreak novamente.

Abra o Cydia e instale novamente o OpenSSH e o APT 0.7 Strict. Não se esqueça de trocar a senha dos usuários assim que se conectar a primeira vez! Outra dica legal é usar o switch do SBSettings e desligar SSH sempre que não for usar.

Agora copie de volta para seu iPhone o arquivo de texto que geramos antes. É possível que ele já exista em /var/mobile, reza a lenda que o iTunes faria backup dele, eu não tenho certeza, aqui não foi.

Rode, como root:

dpkg –set-selections < apps.txt

Novamente, atente para os dois traços e que o wakka agora aponta para o outro lado.

Na seqüência, rode:

apt-get dselect-upgrade

Se você tiver algum repositório extra a adicionar no Cydia, pode fazer isso a qualquer momento e rodar novamente estes dois últimos comandos.

 

A maioria dos apps guardou suas configurações em algum lugar que o iTunes faz backup, então foi só rodar estes comandos e meu iPhone estava praticamente igual a antes do restore. As únicas excessões foram o Activator, que não guardou nada, e o SBSettings, que se esqueceu da ordem dos toggles, mas não do tema.

RT manual no Twitter for Mac

Hack bem fácil:

Abra o terminal e digite

defaults write com.twitter.twitter-mac DebugMode -bool true

Feche o Twitter.app e abra de novo. Vá até a janela de preferências e o menu secreto estará disponível.

SuperSecret

SuperSecret

Mude a Quote Syntax para

RT @{USERNAME}: {TEXT}

E quando você selecionar “Quote Tweet”, em vez do comportamento antigo (aquelas aspas feias), você verá automaticamente o RT oldschool, aquele RT maroto, descompromissado, RT arte.

Baranga

Baranga

EDIT: Foi tão na correria que nem vi que tava faltando a @.

Notificações bonitas no iPhone

Quando o iPhone foi lançado, não havia parâmetros de comparação. Tudo era lindo e maravilhoso, mas lá se vão quatro gerações do aparelho (e do sistema operacional), e algumas coisas ficaram paradas no tempo. O sistema de notificações, por exemplo, é feio, intrusivo e ineficiente. O Android faz muito melhor, por exemplo.

AndroidAndroid

Android

[Obrigado @TangoGV pelas screenshots]

 

Felizmente, com jailbreak isto pode ser resolvido. O meu ficou assim:

Lista de notificações

Lista de notificações

Pop-Up

Pop-Up

Lockscreen

Lockscreen com Pop-Up

Esta mágica toda acontece com a ajuda de 3 programinhas, disponíveis somente (obviamente) no Cydia:

O LockInfo é responsável pela lockscreen bonita aí, onde pode ser visto um relógio com previsão do tempo (parcialmente encoberto pelo pop-up, pardon the pun). Também mostra meu calendário, uma lista de notificações (que fica encolhida por padrão, pode ser desativada, mas ainda estou pensando se fa-lo-ei), meus emails, chamadas perdidas e SMSs. Ele também funciona com o iPhone desbloqueado, com um Swipe para baixo a partir da barra superior, configurado pelo Activator.

Custa 8 dólares no Cydia e é a melhor dentre as alternativas (que incluem o horrososo Cydget e o absurdamente instável IntelliScreen)

O OpenNotifier aproveita toda aquela área ao lado do relógio (onde ícones do sistema como rotation lock e alarme já ficam) e adiciona ícones customizáveis para os apps que você quiser. A versão do Android pode ser vista na primeira screenshot, e no iPhone na segunda e terceira.

É totalmente free e open-source, e o Cydia conta com uma centena de pacotes de ícones para você escolher para cada App. Ele cria uma página no Config.app onde é possível definir qual app mostrará qual ícone.

Por fim, temos o Notified Pro, que é a estrela deste time. Ele custa 3 dólares no Cydia e, por padrão, te dá a lista de notificações que pode ser vista na primeira screenshot do iPhone. Aconselho a configurar o Activator para trazer a lista de notificações com um Double-Tap na barra superior. Instale também o Notified Add-On que te dá mais opções de notificações e configure, dentro dele, para bloquear todos os pop-ups.

Sozinho ele não é muito atraente, o que faz ele brilhar é a interface GRiP. Grátis no Cydia, te dá os Pop-Ups bonitos que podem ser vistos na segunda e na terceira screenshots, bem como a barra inferior. GRiP significa Growl for iPhone, e se você tem um Mac já viu a semelhança. Configure ele para ter cantos arredondados e ele ficará bonitão como a screenshot (:

A barra inferior dele é uma mão na roda, pois te permite circular por páginas de notificações (caso receba muitas, de muitos apps diferentes), marcar a página como lida ou marcar todas como lidas.

A menos que você tenha um iPad, recomendo desligar as opções Rotation e Rotate on Lockscreen, ou você ficará com coisas lindas como isso:

Bug feio

Bug Feio

Qualquer dúvida ou sugestão, dê um grito aí nos comentários.

Metasploit com rubygems 1.5

O rubygems 1.5 foi lançado há quase um mês, e, junto com novas features, ele quebrou várias coisas, entre elas o Metasploit.

Tentar iniciar o msfconsole solta um belo

Encoding::UndefinedConversionError

Como pode ser visto neste bug.

Por sorte, há um fix bem fácil.

Primeiro, encontre todos os arquivos no seu rubygems que carregam outros arquivos com UTF:

grep -ri ‘File.read.*utf’ ~/.rvm/rubies/ruby-1.9.2-p136/lib/ruby

Atente para o fato de que ruby-1.9.2-p136 pode mudar, dependendo do teu sistema e da versão do ruby que você instalar. Se você não usa rvm, aí não faço idéia de onde você encontra.

Aqui a pesquisa retornou dois arquivos (além de vários de gems como o Nokogiri e o builder, mas as linhas não eram exatamente o que procurava):

~/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/rubygems/source_index.rb

~/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb

Caso haja outros arquivos, aconselho editar primeiro esses dois, testar, e então modificar os outros, caso o problema persista.

Nesses dois arquivos, procure a linha que diz

File.read file, :encoding => “UTF-8″

Ela deve estar em um bloco if-else. Você pode remover todo o bloco, deixando somente a linha

File.read file

Ou editar a primeira linha e remover da vírgula até o fim, tanto faz.

Após editar estes dois arquivos, o metasploit deverá carregar corretamente.

Testei isso tanto no Fedora 14 quanto no Snow Leopard 10.6.6 e funcionou. Qualquer coisa deixe um comentário.

Metasploit + PostgreSQL 9.0 no Snow Leopard

Depois de muito pesquisar, consegui achar a solução mais elegante para instalar o Metasploit com PostgreSQL no Snow Leopard sem muitas gambiarras, então fica o guia pros amigos que quiserem fazer o mesmo.

Vamos por partes. Você vai precisar do git já instalado, para começar. Acredito que ele venha por padrão com o Snow Leopard, mas se não tiver, baixe em http://git-scm.com/download e instale.
Também é necessário ter a versão mais recente da tollchain da Apple (XCode et al). Baixe em http://devworld.apple.com/technologies/tools/.

Também é importante desisntalar o fink e o macports, caso tenha eles instalados, bem como tudo instalado por eles. Não se preocupe, depois você pode instalar tudo denovo com o Homebrew.

Agora vamos começar com o rvm.

rvm, Ruby Version Manager, é exatamente isso. Ele te permite instalar mais de uma versão do ruby no seu computador, sem gambiarras, limitado a uma espécie de sandbox fácil de ser removida, além de facilitar a troca de versões.

bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )

Siga as instruções do instalador, depende da shell que você usa (eu uso zsh).

Agora instale os pacotes para o ruby com o rvm:

rvm package install readline
rvm package install iconv
rvm package install zlib
rvm package install openssl

Agora instale o ruby-1.9.2-p0, que é atualmente a melhor versão para rodar o Metasploit.

rvm install 1.9.2 -C --with-readline-dir=$HOME/.rvm/usr --with-iconv-dir=$HOME/.rvm/usr --with-zlib-dir=$HOME/.rvm/usr --with-openssl-dir=$HOME/.rvm/usr

Espere terminar, deve demorar um bocado, dependendo do teu sistema.
Agora vamos usar o 1.9.2 como default.

rvm 1.9.2 --default

Caso você deseje voltar para o ruby que veio com o sistema,

rvm system

o –default é opcional e torna ele o ruby padrão para novas shells.
Vamos ficar com o 1.9.2 agora.

Vale lembrar que com o rvm você não usa sudo em momento algum.

Agora vamos instalar o homebrew.
O Homebrew é um gerenciador de pacotes para o OSX que se integra lindamente ao sistema e usa a toolchain da Apple para compilar os programas, ao invés de instalar tudo do zero e fazer uma bagunça, como o macports ou o fink.

ruby -e "$(curl -fsS http://gist.github.com/raw/323731/install_homebrew.rb)"

Pronto, Homebrew instalado. Fácil, não?

Agora instalemos o PostgreSQL 9.0.

brew install postgresql

Podia ser mais fácil? Acho que não. Ele deve instalar o readline como dependência, mesmo você tendo instalado com o rvm. Não tem problema, é assim mesmo. Deste jeito temos certeza de que não há conflitos entre os headers por causa de patches de um gerenciador ou o outro.
Vá lá buscar um café porque isso demora um bocado também, ele vai compilar todo o Postgres.

Terminado isso, o homebrew já cria um superuser no PostgreSQL para ti, com o teu nome de usuário atual e senha.

Agora, criar um usuário pro Metasploit.

createuser msf_user -P

Dê uma senha para o usuário e responda não para as três perguntas.

Crie um banco de dados:

createdb --owner=msf_user msf_database

Pronto, agora vamos instalar o Metasploit.

Primeiro, a gem do Postgre.

gem install pg

Sem sudo!

Vá até www.metasploit.com/framework/download/ e baixe o tarball mais recente (o arquivo .tar.bz2)

Descompacte o arquivo e mova ele para /opt:

tar xvjf framework-3.4.1.tar.bz2
sudo mv msf3 /opt/metasploit

sudo chown -R $USER:$USER /opt/metasploit
sudo ln -sf /opt/metasploit/msf* /usr/local/bin/

Criemos um script para atualizar o metasploit pelo svn.
Com o seu editor favorito (vim, por favor) crie /usr/local/bin/msfupdate

#!/bin/sh
/usr/bin/svn update /opt/metasploit

Dê permissão de execução para o arquivo

sudo chmod 777 /usr/local/bin/msfupdate

Rode msfupdate para atualizar o framework e rode msfconsole para iniciar o metasploit.

msf> db_driver postgresql
msf> db_connect msf_user:[senha]@127.0.0.1:5432/msf_database
msf> db_hosts

Agora edite seu ~/.msf3/msfconsole.rc para iniciar a db automaticamente cada vez que você iniciar o metasploit.

db_driver postgresql
db_connect msf_user:[senha]@127.0.0.1:5432/msf_database
db_workspace -a MyProject

Rode o msfconsole mais uma vez para ter certeza de que tudo funcionou e seja feliz.

Consertando o Rails 3 no Snow Leopard

Dica rápida para quem está usando o Rails 3 no Snow Leopard, com o rvm.

Possivelmente, ao rodar rails s você irá se deparar com um erro parecido com esse:

➜  demo_app git:(master) ✗ rails s
/Users/ppvanzella/.rvm/gems/ruby-1.9.2-p0/gems/sqlite3-ruby-1.3.1/lib/sqlite3/sqlite3_native.bundle: [BUG] Segmentation fault
ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]
[1]    99112 abort      rails s

Isto acontece porque o rails está com o caminho para o system ruby hardcoded, e tenta executar então com o ruby 1.8.7-p174 que veio com o Snow Leopard, e não com o 1.9.2-p0 que você deve ter instalado pelo rvm.
Para arrumar, edite:

sudo mvim /usr/bin/rails

(vim porque sou marrento)
E troque a primeira linha, que começa com

#!/System/…

Por

#!/usr/bin/env ruby

Salve e seja feliz.

:wq

Sobre a Quebra da Criptografia da GSM e Porque Devemos Nos Preocupar

Há uma linha tênue entre a paranóia e a total disconexão com a realidade. E eu sou míope.

Essa semana um pesquisador independente soltou o Kraken, programa para decriptar conversas na rede GSM, além de rainbow tables para fazê-lo em tempo hábil.

Quebrar a criptografia da GSM (chamada A5/1) não é tão novidade assim; há cerca de 10 anos papers são publicados sobre isso.

O problema agora é a facilidade de acesso aos meios de decriptar. Enquanto antes a quebra deveria ser feita offline (primeiro captura a conversa, depois decripta), agora ela pode ser feita com um delay mínimo, na casa dos poucos segundos e em equipamentos disponíveis para qualquer um.

Agora, eu não acredito que isso se torne tão popular como os ataques a wifi se tornaram. Não é todo mundo que tem seus 1400 dólares pra dar numa USRP, além de outro tanto para investir num computador capaz de rodar o Kraken, que precisa de um quad-core com 3GB de RAM no mínimo.

USRP, para quem nunca ouviu falar, significa Universal Software Radio Peripheral, e pode ser utilizado para um número de fins legítimos. É um dos meus sonhos de consumo, por sinal.

O projeto OpenBTS, por exemplo, utiliza USRPs junto do Asterisk para criar uma rede GSM local. A legalidade de fazê-lo no Brasil é uma incógnita pra mim.

O problema reside neste monte de governozinhos ditatoriais (inclusive aqueles que pretendem ser no futuro) que tem dinheiro pra isso. Não sei quanto a vocês, mas eu não confio no governo.

“Quem não deve, não teme”, você me diz, com toda a sabedoria de quem repete um bordão de sua avó. Pois é, mas devendo, temendo ou não, eu simplesmente não quero ter minhas conversas ouvidas. Ninguém mais tem que saber que liguei para minha mãe e pedi bolacha Trakinas além de mim e ela.

Este pensamento leva a um conformismo abre margem para mais e mais invasões de privacidade e mais controle sobre nós. Não estou aqui advogando a anarquia e a paranóia, mas sem uma boa dose de rebelião e um pé atrás nós não sairemos do lugar, ou, pior ainda, regrediremos.

Há um bom motivo para ser necessário autorização para grampear telefones e quebrar sigilos bancários: controlar o abuso do poder. Claro que já existia meios de se grampear telefones e fazer escutas na GSM há alguns anos, mas pelo menos era mais difícil. Com a facilidade de se fazer isto no fundo do quintal temos também a facilidade em fazê-lo ilegalmente.

E mesmo que nosso governo fosse totalmente confiável e vivamos num mundo utópico onde ninguém seria caçado por motivos puramente políticos, ainda temos que nos preocupar com o crime organizado, com a quadrilha planejando seqüestrar o gerente do banco e tendo agora mais uma ferramenta à disposição.

Infelizmente ficaremos nesta situação por um bom tempo, já que é inviável trocar o algoritmo de criptografia de todas as redes GSM do mundo. Seriam 4.3 milhões de aparelhos que parariam de funcionar. Uma implementação nova seria lenta e cara, e sem pressão dos consumidores as empresas de telecom não farão nada.

Mesmo com pressão, aliás, porque há países onde se implementa o A5/2, um algoritmo deliberadamente mais fraco, ou ainda nem há criptografia alguma. Tudo isso por leis locais e pressão de governos para facilitar a vida deles aos espionar os cidadãos. Um algoritmo mais forte nos próximos anos é tão provável quanto o Papai Noel comer Coelho da Páscoa Assado para comemorar um Sabbath.

Script para converter de FLAC para ALAC

Edit: Me tapei de nojo e escrevi em bash. Rola aí pra baixo pra pegar o código que funciona e mantém as tags (eu espero)

Com a USENET, conexão boa e um NAS recém montado (mais sobre isso num post futuro), resolvi refazer minha coleção musical toda em Lossless. O maior problema é que eu ouço música majoritariamente no meu iPod ou no iTunes no macbook, e eles não tocam FLAC, que é o padrão para músicas lossless.

O jeito é converter pra Apple Lossless (ALAC). Claro que eu podia fazer isso na mão, copiar os arquivos do NAS, rodar o Max neles, copiar de volta pro NAS, etc. Mas, não, eu resolvi seguir a risca a primeira lei dos programadores, que diz que

Se uma tarefa demanda um tempo x, um programador gastará um tempo ex para escrever um programa que executará a tarefa em um tempo 1/x

E foi o que eu fiz.

Sem mais, baixem ele aí:

http://gist.github.com/423161

Vou deixar o link do github mesmo para o caso de eu atualizar o script.

Dá pra executar ele manualmente, passando o endereço completo da pasta que contém FLACs, ou colocá-lo na pasta de scripts do SABnzbd+ e rodá-lo automaticamente após cada download de música.

Ainda deve ter uma série de bugs, não falha com tanta graça quanto deveria, mas, hey, funciona.

Precisa do ffmpeg compilado com suporte a ALAC, ruby (escrevi no 1.8.7) com a gem MediaInfo instalada, além do próprio MediaInfo.

edit: O ffmpeg não vem com suporte a ALAC no FreeBSD.

Se tiverem sugestões, nada melhor que enfiar a mão no código. Tá no github pra isso, seus vagabundos!

NOVO CÓDIGO:

flac2alac.sh

#!/bin/sh
ffmpeg  -i “$1″ -acodec alac “`basename “$1″ .flac`.m4a” \
-metadata title=\”"$(metaflac –show-tag=TITLE “$1″ | sed ‘s/title=//g’)”\” \
-metadata author=\”"$(metaflac –show-tag=ARTIST “$1″ | sed ‘s/artist=//g’)”\” \
-metadata album=\”"$(metaflac –show-tag=ALBUM “$1″ | sed ‘s/album=//g’)”\” \
-metadata year=\”"$(metaflac –show-tag=DATE “$1″ | sed ‘s/date=//g’)”\” \
-metadata track=\”"$(metaflac –show-tag=TRACKNUMBER “$1″ | sed ‘s/tracknumber=//g’)”\” \
-metadata genre=\”"$(metaflac –show-tag=GENRE “$1″ | sed ‘s/genre=//g’)”\”

process_music_dir.sh

#!bin/sh
cd “$1″
find “$1″ -type f | grep .flac | sed -e “s,[^.],\’&,” -e “s,\$,\’,” | xargs -I {} sh /root/SABScripts/flac2alac.sh {}
find “$1″ -type f | grep .m4a  | sed -e “s,[^.],\’&,” -e “s,\$,\’,” | xargs -I {} mv {} “/mnt/Media/iTunes/Automatically Add to iTunes”
cd -
rm -rf “$1″

 
SEO Powered by Platinum SEO from Techblissonline