DcLabs BackTrack No Android

18
DcLabs Security Team Executando o BackTrack no Android by Gr1nch Conheço algumas empresas, que por medida de segurança, não permitem que visitantes entrem com notebooks em suas dependências. Normalmente disponibilizam um computador para que os visitantes utilizem e geralmente este equipamento não esta ligado na rede interna; ou ao menos não 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 segurança Wi-Fi implementando o controle de acesso por mac address, vinculando o login do usuário a um servidor de autenticação e se possível, solicitar que o cliente apresente um certificado digital. Enfim, esse não é o nosso foco. Este paper foi inspirado na palestra “Hacking from the Restroom” do pesquisador brasileiro Bruno Gonçalves apresentado na conferência de segurança “HITB MALAYSIA” em 2009; e baseado no projeto “Linux on Android”. Vamos mostrar como é possível executar o BackTrack em seu smartphone e utilizá-lo para realizar um pentest básico onde seu notebook não pode ir com você. A quem diga que isso é inútil e pouco usual; acreditamos que em certas circunstâncias pode ser extremamente útil. Pense em um cenário de espionagem industrial onde você possui a sua disposição a rede wireless da empresa, mas não 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 cenário para a utilização, vamos ao que realmente interessa. Gostaria de deixar claro que o BackTrack não será instalado no aparelho, o processo se resume em montar uma imagem criada do BackTrack em um diretório que você definiu e executa-lo utilizando o CHROOT. Se você não entende como o CHROOT funciona recomendo a leitura deste artigo: https://help.ubuntu.com/community/BasicChroot .

Transcript of DcLabs BackTrack No Android

Page 1: DcLabs BackTrack No Android

DcLabs Security Team Executando o BackTrack no Android by Gr1nch

Conheço algumas empresas, que por medida de segurança, não permitem que visitantes entrem com notebooks em suas dependências. Normalmente disponibilizam um computador para que os visitantes utilizem e geralmente este equipamento não esta ligado na rede interna; ou ao menos não 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 segurança Wi-Fi implementando o controle de acesso por mac address, vinculando o login do usuário a um servidor de autenticação e se possível, solicitar que o cliente apresente um certificado digital. Enfim, esse não é o nosso foco.

Este paper foi inspirado na palestra “Hacking from the Restroom” do pesquisador brasileiro Bruno Gonçalves apresentado na conferência de segurança “HITB MALAYSIA” em 2009; e baseado no projeto “Linux on Android”. Vamos mostrar como é possível executar o BackTrack em seu smartphone e utilizá-lo para realizar um pentest básico onde seu notebook não pode ir com você.

A quem diga que isso é inútil e pouco usual; acreditamos que em certas circunstâncias pode ser extremamente útil. Pense em um cenário de espionagem industrial onde você possui a sua disposição a rede wireless da empresa, mas não 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 cenário para a utilização, vamos ao que realmente interessa.

Gostaria de deixar claro que o BackTrack não será instalado no aparelho, o processo se resume em montar uma imagem criada do BackTrack em um diretório que você definiu e executa-lo utilizando o CHROOT. Se você não entende como o CHROOT funciona recomendo a leitura deste artigo: https://help.ubuntu.com/community/BasicChroot .

Page 2: DcLabs BackTrack No Android

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

Segue a configuração técnica do aparelho:

Processador: Exynos 4 Quad-Core 1.4GHZ Memória Ram: 1GB Memória 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: É necessário que o aparelho esteja com “root”.

Antes de modificar é bom atualizar seu backup:

O Ministério da Saúde adverte: “Backup faz bem para a saúde”. Por isso eu recomendo o aplicativo TITANIUM BACKUP: https://play.google.com/store/apps/details?id=com.keramidas.TitaniumBackup

Page 3: DcLabs BackTrack No Android

Alguns softwares são necessários e outros recomendados para execução do BackTrack no Android:

Hacker’s Keyboard: É muito difícil 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 não é mesmo?) https://play.google.com/store/apps/details?id=org.pocketworkstation.pckeyboard

Page 4: DcLabs BackTrack No Android

VNC Viewer: Necessário para acessar a interface gráfica 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: Necessário 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

Page 5: DcLabs BackTrack No Android

BusyBox: Este aplicativo instala e/ou substitui vários binários do Android por versões do Linux recompiladas para o processador ARM. Dentre os binários 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 frequência máxima do seu processador. Ele não faz overclock, apenas permite que você utilize o máximo de processamento para melhorar o desempenho do BackTrack. https://play.google.com/store/apps/details?id=com.antutu.CpuMaster

Page 6: DcLabs BackTrack No Android

Você precisa de no mínimo 5.1GB de espaço livre em sua memória interna se quiser utilizar a imagem do BackTrack atualizada. Recomendo migrar todos os seus dados da memória interna para seu cartão de memória. Abaixo um screenshot da memória interna do meu aparelho após a cópia da imagem do BackTrack.

Obs: Não preciso nem dizer que todos os aplicativos sugeridos são facilmente encontrados na “BlackMarket”, embora seja politicamente correto recomendar a compra pelo “Google Play”. =D

Page 7: DcLabs BackTrack No Android

A versão de kernel do seu android precisa ter suporte a “montagem em loop”, acredito que todo android acima da versão 2.3.5 já possua este suporte, mas não realizei testes com versões 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 estão descritos os 6 passos utilizados para gerar a imagem do Backtrack. Você NÃO PRECISA executar esses passos se for utilizar a imagem que disponibilizamos, apenas vou explicar de forma resumida o processo de criação do arquivo backtrack.img caso você queira gerar sua própria 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 diretório: # mkdir /root/backtrack # mount –o loop /root/backtrack.img /root/backtrack 3º) Copiei para dentro do diretório /root/backtrack os diretórios 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 diretório possui 4.1GB portanto não foi copiado por completo # cp -rvp /root/backtrack/proc # cp –rvp /root /root/backtrack ## Obs: No diretório /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 diretório também não foi copiado por completo log’s e alguns outros arquivos contidos neste diretório não foram necessários. 4º) Desmontei o diretório /root/backtrack. # umount /root/backtrack 5º) Copiei o arquivo backtrack.img para dentro do aparelho. Neste caso, criei o diretório ( /mnt/sdcard/backtrack ) e dentro dele mantenho o arquivo backtrack.img e o script bt.sh que será abordado a seguir.

Page 8: DcLabs BackTrack No Android

6º) No celular criei o diretório ( /data/local/linux ) onde será montado o arquivo ( backtrack.img ). Aparentemente o diretório do Android ( /data/local ) não é verificado pelo McAfee Mobile Security (BINGO!). Infelizmente os AntiVírus para Android não permitem que você defina exceções para o scan, portanto, é comum que seu antivírus detecte ameaças no ponto de montagem do BackTrack.

Page 9: DcLabs BackTrack No Android

O script bt.sh:

Este script é basicamente responsável 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 código 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/games:/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

Page 10: DcLabs BackTrack No Android

O script dc.sh:

Este script fica dentro do diretório /root da imagem do BackTrack, quando executado, ele verifica se o VNC possui senha, do contrário ele solicita que você defina uma senha, além disso, este script também inicia o serviço do SSH.

Segue minha versão do código 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

Page 11: DcLabs BackTrack No Android

A hora da diversão: Agora que já entendemos como a “coisa” funciona, vamos ao que realmente interessa: No seu android crie o diretório ( /data/local/linux ) e vá até o diretório ( /sdcard/backtrack ) onde você colocou os arquivos bt.sh e backtrack.img. Se necessário edite e execute o script bt.sh: # sh bt.sh Após definir sua senha para o VNC, ele te entrega o shell do BackTrack para você começar a se divertir:

Aproveite para redefinir sua senha de root. Obviamente nem todas as ferramentas do BackTrack vão funcionar no Android pois o modo que o processador ARM trata as instruções é diferente e algumas ferramentas precisam ser recompiladas para se tornarem compatíveis com o Android. No entanto, muitas ferramentas úteis são compatíveis, 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:

Page 12: DcLabs BackTrack No Android

Nmap:

Hydra:

SET (Social-Engineer Toolkit):

Page 13: DcLabs BackTrack No Android

MetaSploit FrameWork:

Page 14: DcLabs BackTrack No Android

SQLMAP:

Page 15: DcLabs BackTrack No Android

W3AF:

Page 16: DcLabs BackTrack No Android

Fast-Track:

Ettercap:

Page 17: DcLabs BackTrack No Android

Wireshark:

BurpSuite:

DirBuster:

Page 18: DcLabs BackTrack No Android

Considerações finais: Não espere o mesmo desempenho que você possui em seu computador, se possível, evite a utilização da interface gráfica. Para encerrar seu BackTrack simplesmente digite exit no terminal. Você pode acessar os arquivos do seu backtrack pelo diretório ( /data/local/linux ). Para evitar problemas com a verificação agendada do seu antivírus, após concluir a utilização, recomendo desmontar este ponto de montagem com os comandos:

# umount /data/loca/Linux O projeto do BackTrack possui um repositório para ARM o que aumenta minhas esperanças de termos um número maior de ferramentas compatíveis em breve. Abaixo segue alguns repositórios 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 não são compatíveis, embora isso não impeça que a análise de vulnerabilidades seja realizada. Para finalizar, vale lembrar que todos seus arquivos salvos no BackTrack estão 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 estão disponíveis neste link: https://docs.google.com/open?id=0B8FxJ0KnE3nrUWdrRVBVYUZLdjQ

Referências: 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: Rêner Alberto aka Gr1nch Twitter: @Gr1nchDc E-Mail: [email protected] DcLabs Security Team http://www.dclabs.com.br