sexta-feira, 17 de julho de 2009

EPIC FAIL 2: Mais H4x0r Ainda

Lembra do nosso "amigo mestre em hackeamento de localhost" ? No novo capitulo da nossa minisérie apresentamos alguém a altura, disposto a tudo para vencer o duelo:


Será que alguém sai vivo desse duelo mortal entre duas mentes "geniais" ?

segunda-feira, 6 de julho de 2009

Notas sobre o OpenDNS

Estou usando o serviço OpenDNS para resolução de nomes devido aos bons comentários espalhados pela internet. Para começar a usar simplesmente mandei eles para o meu resolv.conf, reiniciei o serviço de rede e tudo tranquilo. Ignorei aquela conta gratuita que eles sugerem que você crie.
Ontem a noite estava brincando com algumas ferramentas do samba (nmblookupt, smbclient e smbtree) e ao rodar o smbtree percebi que ele, além de listar corretamente a máquina windows na minha rede também tentava consultar/listar um IP externo totalmente estranho e chovia erro no terminal. Utilizando o nautilus ele nem sempre conseguia listar o grupo de trabalho e quando chegava nesse ponto não ia adiante para mostrar os compartilhamentos do windows.
Pesquisando na internet descobri que o problema era.... o OpenDNS (ou não, como diria Caetano :P ). O que acontece é que o smbtree e o nautilus consultam o OpenDNS e como ele não é capaz de resolver nomes internos ferra tudo.
Para solucionar o problema basta seguir esses passos (sabe aquela conta gratuita que eu ignorei ? pois é ...). Se você tem IP dinâmico será necessária usar uma ferramenta que mantenha o ip do seu cadastro atualizado. Eles sugerem o ddclient, como eu já uso ele para manter o Dyndns atualizado ta tranquilo. Depois disso o smbtree parou de tentar passear onde não deve e o nautilus voltou a funcionar.

sexta-feira, 12 de junho de 2009

Livro de redes

Conheci o blog do Gustavo através de um anúncio no br-linux sobre um livro que ele esta escrevendo. O livro esta licensiado sob a Creative Commons e se encontra em uma versão beta porém, apesar disso, o conteúdo é bom, detalhado e agradável de ler. Segundo ele mesmo, a versão final sairá no inicio de julho e, como agora, estará disponível para download gratuitamente (se ele colocar link para doações eu pretendo fazer isso com certeza). Nada mais justo do que divulgar o trabalho dele e recomendar essa ótima iniciativa àqueles que estão querendo um pouco mais de conhecimento em redes. Além do livro, vale a pena passear pelo blog dele, o qual eu já assinei os feeds.

quarta-feira, 11 de março de 2009

Inteligência, pensamento ou imaginação artificial

Inteligência artificial já foi algo que me despertou um interesse maior, mas ainda hoje alguns conceitos e afirmações me fazem pensar sobre o asssunto. Na lista de discussões do curso de Sistemas de Informação da Ulbra Carazinho um aluno postou um texto muito legal sobre IA. Por hora digamos que é de um autor anônimo, pois questionei na lista se a autoria era dele ou de outra pessoa (e quem seria ela) e ainda não obtive resposta. Achei o mesmo texto no yahoo answers, também sem autoria. Segue a reprodução:
Não existe inteligência artificial

Hoje em dia, quando se fala de "inteligência artificial", mais certo seria
dizer *pensamento* artificial, ou talvez *imaginação* artificial, porque uma
determinada sequência de pensamentos, um conjunto de operações da mente,
pode ser imitado de várias maneiras. Um conjunto é imitado, por exemplo, na
escrita. A escrita é uma imitação gráfica de sons, que por sua vez imitam
idéias, que por sua vez imitam formas, funções e relações de coisas. A
escrita foi a primeira forma de pensamento artificial. Toda e qualquer forma
de registro que o homem use já é um tipo de pensamento artificial, uma vez
que implica um código de conversões e permutações, e neste sentido um
programa de computador não é muito diferente, por exemplo, de uma regra de
jogo: como no jogo de xadrez, onde se concebe uma sequência de operações com
muitas alternativas, cristalizadas num determinado esquema que pode ser
imitado, repetido ou variado segundo um algoritmo básico. Existem muitas
formas de pensamento artificial, ou de imaginação artificial. Porém a
inteligência, propriamente dita, não tem como ser artificial. O pensamento
artificial é essencialmente uma imitação de atos de pensamento segundo a
fórmula das suas sequências e combinações. Do mesmo modo podemos imitar a
imaginação e a memória, se em vez de utilizar uma correspondência biunívoca
entre signo e significado recorrermos a uma rede de correspondências
analógicas. Dá na mesma: em ambos os casos, trata-se de imitar um algoritmo,
a fórmula de uma sequência ou rede de combinações, que por sua vez imitam as
operações reais da mente. Acontece que a inteligência não é uma "operação da
mente"; ela é o nome que damos a uma determinada *qualidade do
resultado*dessas operações, pouco importando qual a faculdade que as
realizou ou qual
o código empregado. É legítimo dizer que um indivíduo inteligiu alguma coisa
somente quando ele captou a verdade dessa coisa, seja pelo raciocínio, seja
pela imaginação ou seja lá pelo caminho que for. Até mesmo o sentimento
intelige, quando ama o que é verdadeiramente amável e odeia o que é
verdadeiramente odioso: há uma inteligência do sentimento, como há uma
burrice do sentimento. A inteligência não reside *na* mente, mas num certo
tipo de relação entre o ato mental e o seu objeto, relação que denominamos
"veracidade" do conteúdo desse ato mental ( notem bem: veracidade do
conteúdo, e não do ato mesmo ).

Aqui alguém poderia objetar que, quando um ato de pensamento artificial
chega a um resultado verdadeiro, por exemplo quando um computador nos
assegura que 2 + 2 = 4, este é um ato de inteligência, uma vez que nos dá
uma verdade. A diferença, aqui, é a seguinte: o computador não *intelige *que
2 + 2 = 4, mas apenas realiza as operações que dão por resultado 4, segundo
um programa ou algoritmo pré-estabelecido. Se ele for programado segundo a
regra de que 2 + 2 = 5, ele não somente dará sempre este resultado, mas
ainda o generalizará para todos os casos similares, segundo a regra 2a + 2a
= 5a. A inteligência não consiste somente em atinar com um resultado
verdadeiro, mas em *admitir* esse resultado como verdadeiro. Que significa
"admitir"? Significa, primeiro, estar livre para preferir um resultado falso
( um computador pode ser programado para preferir os resultados falsos num
certo número de ocasiões, mas sempre segundo um padrão pré-estabelecido ).
Significa, em segundo lugar, *crer* nesse resultado, isto é, assumir
uma *responsabilidade
pessoal* pela afirmação dele e pelas consequências que dele derivem. A
inteligência, neste sentido, só é admissível em seres livres e responsáveis,
e o primeiro ser livre e responsável que conhecemos na escala dos viventes é
o homem: nenhum ser abaixo dele possui inteligência, e se há seres
superiores ao homem é um problema que não nos interessa no momento e cuja
solução não interferiria no que estamos examinando aqui. *A inteligência é a
relação que se estabelece entre o homem e a verdade, uma relação que só o
homem tem com a verdade, e que só tem no momento em que intelige e admite a
verdade, já que ele pode tornar-se ininteligente no instante seguinte,
quando a esquece ou renega. *

Neste sentido, o resultado da conta de 2 + 2 que aparece na tela do
computador é uma verdade, mas uma verdade que está *no objeto* e não ainda
na inteligência; essa verdade está na tela como a verdadeira estrutura
mineralógica de uma pedra está na pedra ou como a verdadeira fisiologia do
animal está no animal: são verdades latentes, que jazem na obscuridade do
mundo objetivo aguardando o instante em que se atualizarão na inteligência
humana. Do mesmo modo, podemos pensar uma idéia verdadeira sem nos darmos
conta de que é verdadeira; neste caso, a verdade está no pensamento como a
verdade da pedra está na pedra: o ato de inteligência só se cumpre no
instante em que percebemos e admitimos essa verdade como verdade. A
inteligência é, neste sentido, mais "interior" a nós do que o pensamento. O
pensamento, para nós, pode ser objeto. A inteligência, não. O ato de
reflexão pelo qual retornamos a um pensamento para examiná-lo ou julgá-lo é
um *outro* pensamento, de conteúdo diferente do primeiro. Mas a recordação
de um ato de inteligência é o mesmíssimo ato de inteligência, reforçado e
revivificado, numa nova afirmação de si mesmo. Não posso recordar o conteúdo
de um ato de intelecção sem inteligir novamente *os mesmos* conteúdos, quase
sempre com redobrada força de evidência.

Se definirmos o pensamento artificial como a imitação, por sinais
eletrônicos, de certos atos de pensamento, entenderemos que o pensamento
artificial é pensamento, que a imitação de pensamento é pensamento, pois
pensar, afinal, é apenas usar sinais ou signos para representar certos dados
internos ou externos. Mas a imitação de inteligência não é inteligência, de
vez que só há inteligência no ato real pelo qual um ente humano real
apreende realmente uma verdade no instante em que a apreende; na imitação
teríamos somente um sujeito hipotético apreendendo hipoteticamente uma
hipotética verdade, cuja veracidade ele não pode afirmar senão
hipoteticamente. Tudo isto seria apenas pensamento, não inteligência.

A inteligência somente se exerce perante uma situação real, concreta: o
inteligir é concentrar o foco da atenção numa evidência presente. Não se
confunde com o meramente pensar uma verdade, pois consiste em captar a
verdade desse pensamento; nem se confunde com o perceber uma cor, uma forma,
pois consiste em apreender a veracidade dessa cor ou dessa forma; nem com o
recordar ou imaginar uma figura, pois consiste em assumir a veracidade dessa
recordação ou imaginação. Por isto não é possível imitar um ato de
inteligência, pois sua imitação não poderia ser outra coisa senão a cópia do
pensamento, ou da recordação, ou da imagem que lhe serviu de canal; mas, se
esta cópia fosse acompanhada da captação de sua veracidade, não seria uma
cópia, e sim o ato mesmo, revivido em modo pleno; e, se desacompanhado dessa
captação, seria cópia do pensamento ou da imaginação apenas, e não do ato de
inteligência. E esse pensamento ou essa imaginação, se verdadeiros em seu
conteúdo, teriam apenas a verdade de um objeto, a verdade latente de uma
pedra ou de um cálculo exibido na tela do computador, aguardando ser
iluminada pelo ato de inteligência que a transformaria em verdade atual,
efetiva, conhecida.

Um computador só pode julgar veracidade ou falsidade dentro de certos
parâmetros que já estejam no programa dele, ou seja, falsidade ou veracidade
*relativas a* um código dado de antemão, código esse que pode ser
inteiramente convencional. Isto é, ele não julga a veracidade, mas apenas a
logicidade das conclusões, sem poder por si mesmo estabelecer premissas ou
princípios. Ora, a logicidade, a rigor, nada tem a ver com a veracidade,
pois é apenas uma relação entre proposições, e não a relação entre uma
proposição e a experiência real. Quando digo experiência real, não me refiro
apenas à experiência cotidiana dos cinco sentidos, mas ao campo total da
experiência humana, onde a experiência científica feita através de aparelhos
e submetida a medições rigorosas se encaixa apenas como uma modalidade entre
uma infinidade de outras. A inteligência, quando julga veracidade ou
falsidade, pode fazê-lo em termos absolutos e incondicionais,
independentemente dos parâmetros usados e da referência a um ou outro campo
determinado da experiência; e é justamente este conhecimento incondicional
da verdade incondicional que pode fundar em seguida os parâmetros da
condicionalidade ou relatividade, assim como legitimar filosoficamente as
divisões de campos de experiência, como por exemplo na delimitação das
esferas das várias ciências.

terça-feira, 3 de março de 2009

EPIC FAIL: Hackeando o localhost

As linhas iniciais do texto a seguir mostram que a matéria foi publicada no slashdot, porém não encontrei o link para o original, se alguém tiver me envie por favor. Quem me passou o texto foi o icefusion11 no canal #slackware-br da freenode e é uma das melhores pérolas que já li (não da nem para acreditar). Para que a história simplesmente não se perca, vamos transcrever ela aqui para diversão dos leitores:
EDITADO: Link original para a noticia no slashdot. Obrigado Grabriel Padoan
Shut Up I Hack You

By "Elch"; originally posted on Slashdot

In case you don't speak German (just as this hacker), I've tried a little translation to English. I might have made some spelling errors, but the original spelling wasn't perfect either. The guy really said "buy buy" in the German version.

For information:

* The dangerous hacker is called bitchchecker and the one being hacked and original author of the comments, who is talking here, is known as Elch.
* 127.0.0.1 is always the IP address of the computer you're currently using; any request there will return to your computer.
* Notice that in Germany we get Daylight Savings Time (DST) earlier than in the US.

The story starts (I'm shortcutting here) with a kid insulting everyone on the #stopHipHop IRC channel. Most people there believed it was rather funny, but it got even more funny...
* bitchchecker (~java@euirc-a97f9137.dip.t-dialin.net) Quit (Ping timeout#)
* bitchchecker (~java@euirc-61a2169c.dip.t-dialin.net) has joined #stopHipHop
<bitchchecker> why do you kick me
<bitchchecker> can't you discus normally
<bitchchecker> answer!
<Elch> we didn't kick you
<Elch> you had a ping timeout: * bitchchecker (~java@euirc-a97f9137.dip.t-dialin.net) Quit (Ping timeout#)
<bitchchecker> what ping man
<bitchchecker> the timing of my pc is right
<bitchchecker> i even have dst
<bitchchecker> you banned me
<bitchchecker> amit it you son of a bitch
<HopperHunter|afk> LOL
<HopperHunter|afk> shit you're stupid, DST^^
<bitchchecker> shut your mouth WE HAVE DST!
<bitchchecker> for two weaks already
<bitchchecker> when you start your pc there is a message from windows that DST is applied.
<Elch> You're a real computer expert
<bitchchecker> shut up i hack you
<Elch> ok, i'm quiet, hope you don't show us how good a hacker you are ^^
<bitchchecker> tell me your network number man then you're dead
<Elch> Eh, it's 129.0.0.1
<Elch> or maybe 127.0.0.1
<Elch> yes exactly that's it: 127.0.0.1 I'm waiting for you great attack
<bitchchecker> in five minutes your hard drive is deleted
<Elch> Now I'm frightened
<bitchchecker> shut up you'll be gone
<bitchchecker> i have a program where i enter your ip and you're dead
<bitchchecker> say goodbye
<Elch> to whom?
<bitchchecker> to you man
<bitchchecker> buy buy
<Elch> I'm shivering thinking about such great Hack0rs like you
* bitchchecker (~java@euirc-61a2169c.dip.t-dialin.net) Quit (Ping timeout#)

What happened is clear: That guy entered his own IP address in his mighty Hack-Tool and crashed his own PC. This way, the attack on my PC was a failure.

I was already starting to think that I did not have to worry, but a good hacker never calls it a day. Two minutes later he returned.
* bitchchecker (~java@euirc-b5cd558e.dip.t-dialin.net) has joined #stopHipHop
<bitchchecker> dude be happy my pc crashed otherwise you'd be gone
<Metanot> lol
<Elch> bitchchecker: Then try hacking me again... I still have the same IP: 127.0.0.1
<bitchchecker> you're so stupid man
<bitchchecker> say buy buy
<Metanot> ah, [Please control your cussing] off
<bitchchecker> buy buy elch
* bitchchecker (~java@euirc-b5cd558e.dip.t-dialin.net) Quit (Ping timeout#)

There was a tension in the room... Would he manage, after these two failures, to crash my PC? I waited. Nothing happened. I felt relieve...

Six minutes passed by until he prepared the next wave of attack. Being a Hacker, who usually cracks whole data centers, he knew what his problem was now.
* bitchchecker (~java@euirc-9ff3c180.dip.t-dialin.net) has joined #stopHipHop
<bitchchecker> elch you son of a bitch
<Metanot> bitchchecker how old are you?
<Elch> What's up bitchchecker?
<bitchchecker> you have a frie wal
<bitchchecker> fire wall
<Elch> maybe, i don't know
<bitchchecker> i'm 26
<Metanot> such behaviour with 26?
<Elch> how did you find out that I have a firewall?
<Metanot> tststs this is not very nice missy
<bitchchecker> because your gay fire wall directed my turn off signal back to me
<bitchchecker> be a man turn that shit off
<Elch> cool, didn't know this was possible.
<bitchchecker> thn my virus destroys your pc man
<Metanot> are you hacking yourselves?
<Elch> yes bitchchecker is trying to hack me
<Metanot> he bitchchecker if you're a hacker you have to get around a firewall even i can do that
<bitchchecker> yes man i hack the elch but the sucker has a fire wall the
<Metanot> what firewall do you have?
<bitchchecker> like a girl
<Metanot> firewall is normal a normal hacker has to be able to get past it...you girl^^
<He> Bitch give yourself a jackson and chill you're letting them provoce you and give those little girls new material all the time
<bitchchecker> turn the firewall off then i send you a virus [Please control your cussing]er
<Elch> Noo
<Metanot> he bitchchecker why turn it off, you should turn it off
<bitchchecker> you're afraid
<bitchchecker> i don't wanna hack like this if he hides like a girl behind a fire wall
<bitchchecker> elch turn off your shit wall!
<Metanot> i wanted to say something about this, do you know the definition of hacking??? if he turns of the firewall that's an invitation and that has nothing to do with hacking
<bitchchecker> shut up
<Metanot> lol
<bitchchecker> my grandma surfs with fire wall
<bitchchecker> and you suckers think you're cool and don't dare going into the internet without a fire wall

He calls me girly and says only his grandma would use a firewall. I know that elder people are much more intelligent then younger, but I couldn't let that rest. To see whether he really is a good hacker I lie and let everything as it is. I don't have a firewall at all, only my router.
<Elch> bitchchecker, a collegue showed me how to turn the firewall off. Now you can try again
<Metanot> bitchhacker can't hack
<Black<TdV>> nice play on words ^^
<bitchchecker> wort man
<Elch> bitchchecker: I'm still waiting for your attack!
<Metanot> how many times again he is no hacker
<bitchchecker> man do you want a virus
<bitchchecker> tell me your ip and it deletes your hard drive
<Metanot> lol ne give it up i'm a hacker myself and i know how hackers behave and i can tell you 100.00% you're no hacker..^^
<Elch> 127.0.0.1
<Elch> it's easy
<bitchchecker> lolololol you so stupid man you'll be gone
<bitchchecker> and are the first files being deleted
<Elch> mom...
<Elch> i'll take a look

In panic I started the Windows Explorer, my heart beating faster. Had I under-estimated him?
<bitchchecker> don't need to rescue you can't son of a bitch
<Elch> that's bad
<bitchchecker> elch you idiout your hard drive g: is deleted
<Elch> yes, there's nothing i can do about it
<bitchchecker> and in 20 seconds f: is gone

Yes, true, G: and F: were gone. Did I ever have them? Doesn't matter, I did not have time to think, I was scared. bitchchecker was comforting me with a music tip.
<bitchchecker> tupac rules
<bitchchecker> elch you son of a bitch your f: is gone and e: too

Drive E:? Oh my god... All the games are there! And the vacation pictures! I instantly take a look. Everything still there. But the hacker said it was deleted....

Or isn't it happening on my computer?
<bitchchecker> and d: is at 45% you idiot lolololol
<He> why doesn't meta say anything
<Elch> he's probably rolling on the floor laughing
<Black<TdV>> ^^
<bitchchecker> your d: is gone
<He> go on BITCH

The guy is good: My CD-drive is allegedly deleted! Bitchchecker turned my ancient disk sucker into a burner! But how did he do this? I'll have to ask him. Some encourage him. He himself is giving advice how to avoid the disaster on my hard drives.
<bitchchecker> elch man you're so stupid never give your ip on the internet
<bitchchecker> i'm already at c: 30 percent

Should I tell him he's not attacking my computer?
* bitchchecker (~java@euirc-9ff3c180.dip.t-dialin.net) Quit (Ping timeout#)

Too late... It's 20:22 when we get the last message of our hacker with the alias "bitchchecker". We see that he has a "Ping timeout".

We haven't seen him since then... must be the Daylight Saving Time.

quarta-feira, 18 de fevereiro de 2009

Slackware, LVM e HD criptografado.

Inspirado pelo post do kenjiro sobre o assunto, resolvi ler os README do slackware que tratam sobre LVM e criptografia e botar a mão na massa.
Os documentos são extremamente simples, claros e objetivos o que facilitou em muito todo o processo. A maior demora foi o fato de ter rodado um
dd if=/dev/urandom of=/dev/sdxn

que na minha partição de 100GB levou aproximadamente 8 horas e de alguns detalhes sobrenaturais descritos abaixo.
Após preparar a partição para criptografia, criar os volumes e grupos para o LVM e etc, mandei um setup, fiz minha seleção e tudo correu muito bem. Finalizado o processo, chroot /mnt para criar o initrd.gz e configurar o lilo.
Sai do chroot, reiniciei, pediu minha senha e
mount cannot read /etc/fstab. No such file or directory
ERROR: no /sbin/init found on rootdev (or not mounted). Trouble ahead. You can try to fix it. Type exit when things are done.

Humm, vamos dar exit para ver o que acontece e....

initrd.gz: exiting
switch_root: bad newroot /mnt
Kernel panic

Que delicia hein. Tomei um houdhouse kick na cara. Reboot.
Agora novamente no terminal, resolvi pensar um pouco. :P
Mountei as partições root e home no /mnt e quando fui montar o boot sou agraciado com um Invalid Argument. Rapidamente descobri que não tinha carregado o ext2, e infelizmente a possibilidade não existia. Mandei um chroot do jeito que estava, dei load no módulo e montei o boot. Rodei novamente o mkinitrd, lilo, sai do chroot e sai novamente do "terminal de socorro".
E não é que o negócio foi pra frente.
Nesse momento achei que minha jeba tinha aumentado uns 10cm. Animal.
Vamos para o teste de minerva, reiniciando novamente e ...
Percebi que minha manobra havia resolvido somente para aquele boot, com o agravante que não me deixava mais montar as partições dando a maldita mensagem de "Invalid Argument", tentei carregar o xfs (unico disponível nesse momento) mas não resolveu.

*pâncio*
Chamei o dvd no drive.

Já no prompt de resgate, mandei um cryptsetup luksOpen, montei todas as partições e recorri há algumas lembranças.
Logo que o slack começou a ter um kernel-huge e um kernel-generic, eu dei uma de grandão e não usei o huge, mandei um generic, criei o initrd da mesma forma citada acima e tive exatamente o mesmo problema. Parece que dar chroot no /mnt após a instalação não funciona (pelo menos no meu caso não).
Também lembrei da minha primeira e única instalação do gentoo, na minha época de "piá pançudo" instalador de distribuições, onde eu montava uma partição com o seguinte comando
mount -t proc none /mnt/proc

Feito o esquema do proc, novo chroot, novo mkinitrd (com o cuidado de passar o xfs e o ext2 no -m), lilo.
E ta funcionando até esse momento.
Buenas, como já afirmei, não sou nenhum sysadmin e não saberia explicar o porque do eventos (e nem vou me preocupar com isso agora), mas resolvi o problema e se você passar por algo semelhante, ta ai a soluçao. ;)