How to use IP to ASN from Team-Cymru using Perl?

Team-Cymru have a incredible service called IP to ASN which one enters an IP address and receives the AS number info.

I have implemented a Perl module (teamasn) to retrieve such info  in a very simple way. ‘teamasn’ module depends on ‘Net::DNS::Dig’ to sent a DNS query to Team-Cymru’s service.  My module is a parser to retrieve the ‘ANSWER’ section. Yes, Perl can be simple :)

For example, to find the AS number from IP 216.90.108.2 using DIG, type in the terminal:

 $ dig +short 2.108.90.216.origin.asn.cymru.com TXT
 "23028 | 216.90.108.0/24 | US | arin | 1998-09-25"

How to use it in Perl:

teamasn::get_dns_answer('216.90.108.2');

‘teamasn’ module returns an array composed by the AS number ( 23028), Network Class (216.90.108.0/24), Country Code (US), Registry (arin), and Allocation Date (1998-09-25). During my tests I have seen some IPs which ‘Allocation Date’ is absent, therefore one needs to check the array size to know how much info ‘teamasn’ got.

Here it goes a sample code:

#!/usr/bin/perl
# @kaiux
use teamasn;
use strict;
use warnings;
use v5.14;

# IPV4 only :/
my @ip_list = qw(200.242.79.172 200.141.79.11 199.16.158.104 94.100.180.202 217.69.139.200 192.168.0.1);

foreach my $ip (@ip_list)
{
	my @response = teamasn::get_dns_answer($ip);
	if ( $response[0] == -1 )
	{
		say "There is no info for: ", $ip;
	}
	else
	{
		say "AS: ", $response[0];
		say "NC: ", $response[1];
		say "CC: ", $response[2];
		say "RI: ", $response[3];
		say "DT: ", $response[4];
	}
}

One can find the ‘teamasn’ source code at: https://bitbucket.org/kaiorafael/dns_tools/

I will not push ‘teamasn’  to CPAN because it is very premature code and I need extra time to add new features such as:

get_asn: retrieve the AS number only
get_nwc: retrieve the network class only
get…etc…
IPV6….

There are other modules to request AS info such as Net::Whois, however it is HTTP-based and for my needs DNS is better because it is very fast.

Minicurso sobre Botnets – SBSEG 2014.

Tenho investigado o funcionamento de botnets e métodos de detecção através da análise do tráfego DNS em meu doutoramento. Botnets são redes de computadores infectados que permitem ao atacante controle remoto.

Em Novembro de 2014 apresentei*  um minicurso sobre o tema no SBSEG 2014 – XIV Simpósio Brasileiro em Segurança da Informação e de Sistemas Computacionais. No material exposto os participantes puderam entender o Ciclo de Vida das Botnets, ataques frequentes, como os protocolos de rede são usados por operadores das Botnets, meios de propagação e abordagens de detecção.

Para o curso não ser 100% teórico, implementei um bot que usa o tráfego IRC e outro para o HTTP. O primeiro foi um programa em ‘python’ que utiliza ‘sockets’ e conecta a um servidor IRC. O segundo é um ShellScript que faz um parser dos Tweets de um usuário no Twitter. O objetivo era mostrar que as redes sociais podem ser utilizadas como Comando e Controle. Conheça o KaiuxBot.

O material do minicurso está disponível em: http://tinyurl.com/sbseg2014

Obrigado a todos que puderam participar.

*Kaio R. S. Barbosa (UFAM) (apresentador), Eduardo Souto (UFAM), Eduardo Feitosa (UFAM) e Gilbert Martins (UFAM).

Agradecimentos à Haline Oliveira pela ajuda no lab.

 

Não gosto de você, Papai Noel! – Ademar Paiva

Não gosto de você, Papai Noel!
Também não gosto desse seu papel
de vender ilusões à burguesia.
Se os garotos humildes da cidade
soubessem do seu ódio à humildade,
jogavam pedras nessa fantasia!

Você talvez nem se recorde mais.
Cresci depressa e me tornei rapaz,
sem esquecer no entanto o que passou.
Fiz-lhe bilhete pedindo um presente,
a noite inteira eu esperei contente,
chegou o sol e você não chegou.

Dias depois, meu pobre pai cansado
trouxe um trenzinho velho, empoeirado,
que me entregou com certa hesitação.
Fechou os olhos e balbuciou:
“É pra você… Papai Noel mandou…”
E se esquivou contendo a emoção.

Alegre e inocente nesse caso,
pensei que meu bilhete com atraso
chegara às suas mãos no fim do mês.
Limpei o trem, dei corda, ele partiu,
deu muitas voltas, meu pai sorriu
e me abraçou pela última vez.

O resto só eu pude compreender
quando cresci e comecei a ver
todas as coisas com realidade.
Meu pai chegou um dia e disse, a medo:
“Onde é que está aquele seu brinquedo?
Eu vou trocar por outro na cidade”.

Dei-lhe o trenzinho quase a soluçar,
e como quem não quer abandonar
um mimo que lhe deu quem lhe quer bem,
disse medroso: “Eu só queria ele…
Não quero outro brinquedo, quero aquele
E por favor, não vá levar meu trem”.

Meu pai calou-se e pelo rosto veio
descendo um pranto que eu ainda creio,
tão puro e santo, só Jesus chorou.
Bateu a porta com muito ruído,
mamãe gritou, ele não deu ouvidos,
saiu correndo e nunca mais voltou.

Você, Papai Noel, me transformou
num homem que a infância arruinou,
Sem pai e sem brinquedos. Afinal,
dos seus presentes, não há um que sobre
para a riqueza do menino pobre
que sonha o ano inteiro com o Natal!

Meu pobre pai doente, mal vestido,
pra não me ver assim desiludido,
comprou por qualquer preço uma ilusão:
num gesto nobre, humano, decisivo,
foi longe pra trazer-me um lenitivo,
roubando o trem do filho do patrão.

Pensei que viajara. No entanto
depois de grande, minha mãe, em pranto,
contou que fora preso. E como réu,
ninguém a absolvê-lo se atrevia.
Foi definhando, até que Deus um dia
entrou na cela e o libertou pro céu!

How to plot R axis using non-us/international characters / Plotando R com acentos

In case you need to plot your R graphic using non-US characters or LATIN-1 (French/Spanish/Portuguese) accent (vowels+acute), than you need to plot using Unicode standard codes.

For example, to plot the ‘e’ with acute symbol “é” you need to add the respective code \u{E9} in the label option:

Here some code

xdata=c(rnorm(10))
ydata=c(rnorm(10))
plot(xdata,ydata, main="Testing Unicodes: \u{E7}, \u{D8}", xlab="Where is my e with acute? \u{E9}", ylab="Unicodes")

The output should be like that

unicode sample

You can get all UNICODES at  http://www.unicode.org/charts/PDF/U0080.pdf

Another option would be setting your shell environment to your specific language, before launch R :D. In my case, is the Brazilian Portuguese (Português do Brasil – pt_BR)

export LANG=pt_BR.UTF-8
export LANGUAGE=pt_BR:en

I made a test using a FreeBSD server with en_US support language:

[kaiorafael@n1: ~ $] lu
-bash: lu: command not found
[kaiorafael@n1: ~ $] export LANG=pt_BR.UTF-8
[kaiorafael@n1: ~ $] export LANGUAGE=pt_BR:en
[kaiorafael@n1: ~ $] lu
-bash: lu: comando não encontrado
[kaiorafael@n1: ~ $]

Got some help from:

https://stat.ethz.ch/pipermail/r-help/2010-August/248084.html

Memórias do futuro – por Arnaldo Jabor

Dificilmente publico textos sobre política neste blog, no entanto, ao passo que descubro um pouco mais do mercado financeiro começo a entender as preocupações do Santander, Empiricus e outros.

Segue o texto do Arnaldo Jabor, publicado hoje 29/07/2014, no Jornal O Globo. O texto original está nesse link http://oglobo.globo.com/cultura/memorias-do-futuro-13411187 .Republiquei aqui caso o PX remova o texto da fonte via ação judicial.

Memórias do futuro
Eu estava só, mas via o repulsivo Futuro brasileiro, preparado por séculos de atraso

Estou na clínica especial do Nada aqui neste ano remoto do futuro. Futuro de quê? Futuro de um futuro que o Brasil esperava há vários séculos. Essas clínicas são chamadas hoje de “zonas de esquecimento”; viraram “hype” há mais de um século e hoje abundam. Os sujeitos entram para perder todos os sentidos. Fica apenas a memória que, aos poucos, sem ajuda do tato, gosto, cheiro, visão, e audição, vai se transformando numa leve fonte de murmúrios, em lapsos de visões, em tênue brilho de lembranças e depois, o silêncio do nada. Muitas clínicas são arapucas e as mais baratas apenas jogam os pacientes numas salas vazias e deixam-nos na mistura de restos de comida e excrementos. Ninguém reclama. Mas, eu vivo na melhor: “Le Néant”, que as famílias visitam para verificar o tratamento — é impecável no trato dos corpos sorridentes, murchos e mudos.

Continue reading Memórias do futuro – por Arnaldo Jabor

Lances de Vantagens ou Lances de ‘Fraudagem’?

Por algum motivo entrei no site http://www.lancesdevantagens.com.br/index.php, pois acredito que esse programa de KM da Ipiranga servir para quase nada.

Durante o ‘leilão’, observei que tinha um produto (400 reais em crédito de gasolina) a um bom preço, 230,00. Fiz alguns lances, e comecei a perceber um padrão muito estranho: toda vez que fazia lance, praticamente, dois usuários faziam lançamentos após o meu, menos de  um segundo. Até ai tudo bem, continuei observando e fazendo alguns lances próximo ao tempo final (1s). Isso era umas 20h, lá pelas 3h da manha já estava crente que alguma coisa estava errada. O que era 230,00 já custava quase 1.800,00 reais, e de vez em quando eu fazia um lance para ver se os dois usuários (‘robôs’) continuavam com o mesmo comportamento.  Minha constatação: SIM!, eles continuavam com o mesmo comportamento.

Continue reading Lances de Vantagens ou Lances de ‘Fraudagem’?

How to install R-project 3.1.0 on FreeBSD 9.2 user’s home

In some machines I do not have ‘root’ access, therefore when I need a software and I don’t want to bother the sysadmin, I have to install it by myself into my home directory. Today, I needed to install the newest R-project’s version 3.1.0, and for some reason my FreeBSD machine could not find Fortran’s path.

In my home directory I have a special folder, named ‘TOOLS_SRC’ where I leave all source code for compilation. To install R on the user’s home I ran ./configure –prefix=/home/kaiorafael/rbinary , which gave me the following error.

checking for Fortran 77 libraries of fc... 
checking how to get verbose linking output from gcc -std=gnu99... -v
checking for C libraries of gcc -std=gnu99...  -L/usr/local/lib -L/usr/lib -lgcc_s
checking for dummy main to link with Fortran 77 libraries... none
checking for Fortran 77 name-mangling scheme... configure: error: in `/home/kaiorafael/TOOLS_SRC/R-3.1.0':
configure: error: cannot compile a simple Fortran program
See `config.log' for more details

Looking carefully the log message, I found this line very interesting.

“loading site script ‘./config.site'”

This file ‘config.site’ has many options to customize R-project’s installation. Since FreeBSD uses ‘gfortran’, I just had to uncomment the ‘## F77=’ line and change it for

F77=gfortran

Running again ‘./configure –prefix=/home/kaiorafael/rbinary’, and than ‘make && make install’, everything is working like a charm now.

R version 3.1.0 (2014-04-10) -- "Spring Dance"
Copyright (C) 2014 The R Foundation for Statistical Computing
Platform: x86_64-unknown-freebsd9.2 (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

I am not FreeBSD sysadmin nor FreeBSD heavy user. In case you are a FreeBSD expert, please let me know that there is a better way to solve this issue.

Plugin do Java SUN na Caixa Economica e Banco do Brasil (Debian / Ubuntu) definitivo

Resolvi fazer esse post porque já estava sem paciência de ficar batendo cabeça com a instabilidade do Internet Banking da Caixa. Apesar do Banco do Brasil funcionar muito bem com o OpenJDK, inclusive no FreeBSD (valeu kaiux), o site da Caixa vivia cadastrando meu computador e, algumas vezes, o plugin do IcedTea também travava resultando “sistema indisponível”.

Esse procedimento funciona no Debian Lenny/Wheezy/Sid e no Ubuntu Whatever. Vamos aos passos:

Continue reading Plugin do Java SUN na Caixa Economica e Banco do Brasil (Debian / Ubuntu) definitivo