You are on page 1of 18

DcLabs Security Team

Executando o BackTrack no Android by Gr1nch


Conheo algumas empresas, que por medida de segurana, no permitem que visitantes entrem com notebooks em suas dependncias. Normalmente disponibilizam um computador para que os visitantes utilizem e geralmente este equipamento no esta ligado na rede interna; ou ao menos no deveria estar. Atualmente temos smartphones com capacidade de processamento semelhante de um computador e essas empresas precisam saber que um ataque interno pode ser feito utilizando esses dispositivos. Portanto, antes de iniciar o assunto deste paper, recomendo que as empresas reforcem sua segurana Wi-Fi implementando o controle de acesso por mac address, vinculando o login do usurio a um servidor de autenticao e se possvel, solicitar que o cliente apresente um certificado digital. Enfim, esse no o nosso foco. Este paper foi inspirado na palestra Hacking from the Restroom do pesquisador brasileiro Bruno Gonalves apresentado na conferncia de segurana HITB MALAYSIA em 2009; e baseado no projeto Linux on Android. Vamos mostrar como possvel executar o BackTrack em seu smartphone e utiliz-lo para realizar um pentest bsico onde seu notebook no pode ir com voc.

A quem diga que isso intil e pouco usual; acreditamos que em certas circunstncias pode ser extremamente til. Pense em um cenrio de espionagem industrial onde voc possui a sua disposio a rede wireless da empresa, mas no pode utilizar nenhum computador. Quem poderia suspeitar que voc, fingindo ler seus e-mails no celular, esta na verdade atacando a rede interna? Agora que j propomos um cenrio para a utilizao, vamos ao que realmente interessa. Gostaria de deixar claro que o BackTrack no ser instalado no aparelho, o processo se resume em montar uma imagem criada do BackTrack em um diretrio que voc definiu e executa-lo utilizando o CHROOT. Se voc no entende como o CHROOT funciona recomendo a leitura deste artigo: https://help.ubuntu.com/community/BasicChroot .

O aparelho utilizado em meus testes foi o Samsung Galaxy S3 Modelo GT-I9300:

Segue a configurao tcnica do aparelho: Processador: Exynos 4 Quad-Core 1.4GHZ Memria Ram: 1GB Memria Interna: 16GB Micro SD: 8GB Tela: HD Super AMOLED 1280x720, 4.8-inch Sistema Operacional: Android 4.0.4 Kernel 3.0.15 Wi-Fi: 802.11 a/b/g/n, WiFi HT40 Obs: necessrio que o aparelho esteja com root.

Antes de modificar bom atualizar seu backup:


O Ministrio da Sade adverte: Backup faz bem para a sade. Por isso eu recomendo o aplicativo TITANIUM BACKUP: https://play.google.com/store/apps/details?id=com.keramidas.TitaniumBackup

Alguns softwares so necessrios e outros recomendados para execuo do BackTrack no Android:


Hackers Keyboard: muito difcil trabalhar com o SHELL sem um teclado completo. Este aplicativo instala um novo teclado no Android e permite que voc alterne entre seu antigo teclado e o novo sempre que precisar. (o nome deste aplicativo bastante sugestivo no mesmo?) https://play.google.com/store/apps/details?id=org.pocketworkstation.pckeyboard

VNC Viewer: Necessrio para acessar a interface grfica do BackTrack. Voc pode utilizar qualquer cliente de VNC para Android. As imagens deste paper foram feitas utilizando este: https://play.google.com/store/apps/details?id=com.realvnc.viewer.android

Emulador de Terminal: Necessrio para executar e acessar o Shell do BackTrack. Outros emuladores de terminal obviamente podem ser utilizados: https://play.google.com/store/apps/details?id=jackpal.androidterm

BusyBox: Este aplicativo instala e/ou substitui vrios binrios do Android por verses do Linux recompiladas para o processador ARM. Dentre os binrios temos: ash, awk, base64, basename, blkid, bunzip2, bzip2, cal, chat, chattr, chgrp, chmod, chown, chroot, chrt, cksum, clear, comm, cp, crond, crontab, cut, date, dd, depmod, devmem, df, diff, dirname, dmesg, dnsd, dnsdomainname, dos2unix, du, echo, egrep, env, ether-wake, expand, expr, fakeidentd, fdflush, fdformat, fdisk, fgrep, find, fold, free, freeramdisk, fsck, fsync, ftpd, ftpget, ftpput, getopt, grep, groups, gunzip, gzip, hd, hexdump, hostid, hostname, httpd, hwclock, id, ifconfig, ifenslave, inetd, inotifyd, insmod, install, ionice, iostat, ip, ipaddr, ipcalc, iplink, iproute, iprule, iptunnel, kill, killall, killall5, less, ln, logname, losetup, ls, lsattr, lsmod, lsusb, lzop, lzopcat,md5sum, mkdir, mkdosfs, microcom, mke2fs, mkfifo, mkfs.ext2, mkfs.vat, mknod, mkswap, modinfo, modprobe, more, mount, mt, mv, nameif, nanddump, nandwrite, nc,netstat, nice, nmeter, nslookup, ntpd, od, patch, pgrep, pidof, ping, ping6, pkill, pmap, powertop, printenv, printf, ps, pscan, pwd, rdate, rdev, readhead, readlink, realpath, renice, reset, rev, rfkill, rm, rmdir, rmmod, route, run-parts, script, scriptreplay, sed, seq, setkeycodes, setlogcons, setsid, sha1sum, sha256sum, sha512sum, showkey, sleep, smemcap, sort, split, stat, strings, stty, sum, swapoff, swapon, sync, sysctl, tac, tail, tar, tee, telnet, telnetd, test. tftp, tftpd, time, timeout, top, touch, tr, traceroute, traceroute6, tty, ttysize, tunctl, umount, uname, uncompress, unexpand, uniq, unix2dos, unlzop, unzip, uptime, usleep, uudecode, uuencode, vconfig, vi, watch, wc, wget, which, who, whoami, whois, xargs, zcat.

Link para download: https://play.google.com/store/apps/details?id=stericson.busybox

AnTuTu CPU Master: Recomendo este software pois ele permite que voc mantenha a frequncia mxima do seu processador. Ele no faz overclock, apenas permite que voc utilize o mximo de processamento para melhorar o desempenho do BackTrack. https://play.google.com/store/apps/details?id=com.antutu.CpuMaster

Voc precisa de no mnimo 5.1GB de espao livre em sua memria interna se quiser utilizar a imagem do BackTrack atualizada. Recomendo migrar todos os seus dados da memria interna para seu carto de memria. Abaixo um screenshot da memria interna do meu aparelho aps a cpia da imagem do BackTrack.

Obs: No preciso nem dizer que todos os aplicativos sugeridos so facilmente encontrados na BlackMarket, embora seja politicamente correto recomendar a compra pelo Google Play. =D

A verso de kernel do seu android precisa ter suporte a montagem em loop, acredito que todo android acima da verso 2.3.5 j possua este suporte, mas no realizei testes com verses anteriores a 4.0.

Rodando o BackTrack no Android:


Conforme j explicado, o processo consiste em montar a imagem do BackTrack criada e utilizar o CHROOT para executa-lo. Abaixo esto descritos os 6 passos utilizados para gerar a imagem do Backtrack. Voc NO PRECISA executar esses passos se for utilizar a imagem que disponibilizamos, apenas vou explicar de forma resumida o processo de criao do arquivo backtrack.img caso voc queira gerar sua prpria imagem. 1) No meu antigo BackTrack 5 32Bits instalado em uma VM criei o arquivo backtrack.img:
# cd /root # dd if=/dev/zero of=backtrack.img seek=5100999999 bs=1 count=1 # mke2fs F backtrack.img

2) Depois montei o arquivo backtrack.img em um diretrio:


# mkdir /root/backtrack # mount o loop /root/backtrack.img /root/backtrack 3) Copiei para dentro do diretrio /root/backtrack os diretrios do sistema: # cp rvp /bin /root/backtrack # cp rvp /boot /root/backtrack # cp rvp /dev /root/backtrack # cp rvp /etc /root/backtrack # cp rvp /home /root/backtrack # cp rvp /lib /root/backtrack # cp rvp /lib32 /root/backtrack # cp rvp /media /root/backtrack # cp rvp /mnt /root/backtrack # cp rvp /opt /root/backtrack # cp rvp /pentest /root/backtrack ## Obs: Este diretrio possui 4.1GB portanto no foi copiado por completo # cp -rvp /root/backtrack/proc # cp rvp /root /root/backtrack ## Obs: No diretrio /root esta o script dc.sh o qual falaremos em breve. # cp rvp /sbin /root/backtrack # cp rvp /share /root/backtrack # cp rvp /srv /root/backtrack # cp rvp /sys /root/backtrack # cp rvp /tmp /root/backtrack # cp rvp /usr /root/backtrack # cp rvp /var /root/backtrack ## Obs: Esse diretrio tambm no foi copiado por completo logs e alguns outros arquivos contidos neste diretrio no foram necessrios. 4) Desmontei o diretrio /root/backtrack. # umount /root/backtrack 5) Copiei o arquivo backtrack.img para dentro do aparelho. Neste caso, criei o diretrio ( /mnt/sdcard/backtrack ) e dentro dele mantenho o arquivo backtrack.img e o script bt.sh que ser abordado a seguir.

6) No celular criei o diretrio ( /data/local/linux ) onde ser montado o arquivo ( backtrack.img ). Aparentemente o diretrio do Android ( /data/local ) no verificado pelo McAfee Mobile Security (BINGO!). Infelizmente os AntiVrus para Android no permitem que voc defina excees para o scan, portanto, comum que seu antivrus detecte ameaas no ponto de montagem do BackTrack.

O script bt.sh:
Este script basicamente responsvel por montar o arquivo backtrack.img e executar o arquivo dc.sh utilizando o chroot. Tive como base um script de chroot desenvolvido pelo Zachary Powell. Segue o cdigo fonte:

################################################ #BackTrack boot script for Android # #Based on a script developed by Zachary Powell # #Changed by Gr1nch for Galaxy S3 # #DcLabs Security Team # ################################################ mount -o remount,rw /dev/block/mmcblk0p5 /system export kit=/sdcard/backtrack export bin=/system/bin export mnt=/data/local/linux export USER=root mkdir $mnt export PATH=$bin:/usr/bin:/usr/local/bin:/usr/sbin:/bin:/usr/local/sbin:/usr/g ames:/opt/metasploit3$PATH export TERM=linux export HOME=/root busybox mknod /dev/block/loop255 b 7 255 losetup /dev/block/loop255 $kit/backtrack.img mount -t ext2 /dev/block/loop255 $mnt mount -t devpts devpts $mnt/dev/pts mount -t proc proc $mnt/proc mount -t sysfs sysfs $mnt/sys busybox mount -o bind /sdcard $mnt/sdcard busybox mount -o bind /mnt/extSdCard $mnt/external_sd busybox sysctl -w net.ipv4.ip_forward=1 echo "nameserver 8.8.8.8" > $mnt/etc/resolv.conf echo "nameserver 8.8.4.4" >> $mnt/etc/resolv.conf echo "127.0.0.1 localhost" > $mnt/etc/hosts echo " " busybox chroot $mnt /root/dc.sh ################## #### SHUTDOWN #### ################## umount $mnt/dev/pts umount $mnt/proc umount $mnt/sdcard umount $mnt/external_sd umount $mnt/sys

O script dc.sh:
Este script fica dentro do diretrio /root da imagem do BackTrack, quando executado, ele verifica se o VNC possui senha, do contrrio ele solicita que voc defina uma senha, alm disso, este script tambm inicia o servio do SSH. Segue minha verso do cdigo fonte:

#!/bin/bash ################## #### POWER ON #### ################## export TERM=linux export HOME=/root chmod a+rw /dev/null chmod a+rw /dev/ptmx chmod 1777 /tmp chmod 1777 /dev/shm chmod +s /usr/bin/sudo chown messagebus.messagebus /var/run/dbus chmod 755 /var/run/dbus echo "shm /dev/shm tmpfs nodev,nosuid,noexec 0 0" > /etc/fstab alias df='df -h /etc/fstab' cd /root rm /tmp/.X* > /dev/null 2>&1 rm /tmp/.X11-unix/X* > /dev/null 2>&1 rm /root/.vnc/localhost* > /dev/null 2>&1 rm /var/run/dbus/pid > /dev/null 2>&1 rm /var/run/reboot-required* > /dev/null 2>&1 dpkg-divert --local --rename --add /sbin/initctl > /dev/null 2>&1 ln -s /bin/true /sbin/initctl > /dev/null 2>&1 dbus-daemon --system --fork > /dev/null 2>&1i if [ ! -f /root/.vnc/passwd ]; then vncpasswd passwd root fi vncserver :0 -geometry 1280x720 -name BackTrack_Android /etc/init.d/ssh start alias df='df -h /etc/fstab' export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/opt/metasploit/msf3 clear echo " " echo " ____ _____ ____ " echo " | __ )_ _| | ___| " echo " | _ \ | | |___ \ " echo " | |_) || | ___) | " echo " |____/ |_| |____/ " echo " _ _ _ ____ ____ ___ ___ ____ " echo " / \ | \ | | _ \| _ \ / _ \_ _| _ \ " echo " / _ \ | \| | | | | |_) | | | | || | | | " echo " / ___ \| |\ | |_| | _ <| |_| | || |_| | " echo "/_/ \_\_| \_|____/|_| \_ \___/___|____/ " echo " " /bin/bash -i -c su ################### #### POWER OFF #### ################### vncserver -clean -kill :0 /etc/init.d/ssh stop killall -9 Xtightvnc killall -9 dbus-daemon

A hora da diverso:
Agora que j entendemos como a coisa funciona, vamos ao que realmente interessa: No seu android crie o diretrio ( /data/local/linux ) e v at o diretrio ( /sdcard/backtrack ) onde voc colocou os arquivos bt.sh e backtrack.img. Se necessrio edite e execute o script bt.sh: # sh bt.sh Aps definir sua senha para o VNC, ele te entrega o shell do BackTrack para voc comear a se divertir:

Aproveite para redefinir sua senha de root. Obviamente nem todas as ferramentas do BackTrack vo funcionar no Android pois o modo que o processador ARM trata as instrues diferente e algumas ferramentas precisam ser recompiladas para se tornarem compatveis com o Android. No entanto, muitas ferramentas teis so compatveis, principalmente aquelas ferramentas baseadas em Python, Perl e Ruby. Abaixo temos screenshots de algumas ferramentas j testadas: Firefox 15.0.1 com os plugins FireBug, Hackbar, Live HTTP Headers e User Agent Change:

Nmap:

Hydra:

SET (Social-Engineer Toolkit):

MetaSploit FrameWork:

SQLMAP:

W3AF:

Fast-Track:

Ettercap:

Wireshark:

BurpSuite:

DirBuster:

Consideraes finais:

No espere o mesmo desempenho que voc possui em seu computador, se possvel, evite a utilizao da interface grfica. Para encerrar seu BackTrack simplesmente digite exit no terminal. Voc pode acessar os arquivos do seu backtrack pelo diretrio ( /data/local/linux ).

Para evitar problemas com a verificao agendada do seu antivrus, aps concluir a utilizao, recomendo desmontar este ponto de montagem com os comandos: # umount /data/loca/Linux O projeto do BackTrack possui um repositrio para ARM o que aumenta minhas esperanas de termos um nmero maior de ferramentas compatveis em breve. Abaixo segue alguns repositrios que utilizo no backtrack do meu Android:
deb http://all.repository.backtrack-linux.org revolution main microverse non-free testing deb http://source.repository.backtrack-linux.org revolution main microverse non-free testing deb http://updates.repository.backtrack-linux.org revolution main microverse non-free testing deb http://armel.repository.backtrack-linux.org revolution main microverse non-free testing

Infelizmente, ferramentas importantes como o NESSUS e o NEXPOSE ainda no so compatveis, embora isso no impea que a anlise de vulnerabilidades seja realizada. Para finalizar, vale lembrar que todos seus arquivos salvos no BackTrack esto dentro do arquivo backtrack.img, portanto, aconselho manter sempre um backup deste arquivo.

O link para download do backtrack.img e o script bt.sh esto disponveis neste link:
https://docs.google.com/open?id=0B8FxJ0KnE3nrUWdrRVBVYUZLdjQ

Referncias: http://www.securitytube.net/video/1011 http://linuxonandroid.org/ https://help.ubuntu.com/community/BasicChroot http://sourceforge.net/projects/linuxonandroid/ http://forum.xda-developers.com/showthread.php?t=1585009

By: Rner Alberto aka Gr1nch Twitter: @Gr1nchDc E-Mail: gr1nch@dclabs.com.br DcLabs Security Team http://www.dclabs.com.br

You might also like