
outis — это кастомный инструмент удалённого администрирования (RAT) или что-то в этом роде. Он был создан для поддержки различных транспортных методов (например, DNS) и платформ (например, PowerShell).
outis — это кастомная утилита удалённого администрирования (RAT) или что-то вроде того. Напоминает Meterpreter или Empire-Agent. Однако фокус данного инструмента — не набор эксплойтов (эксплойтов нет) и не постоянное управление целями. Основная задача — обеспечить связь между сервером и целевой системой, передавать файлы, разделять сокеты, запускать оболочки и так далее с использованием различных методов и платформ.
Циклоп Полифем в «Одиссее» Гомера столкнулся с проблемами разрешения имён. Когда он спросил имя Одиссея, хакер сказал ему, что его зовут «Outis», что на древнегреческом означает «Никто». Поэтому, когда Полифем позже закричал, что Никто собирается его убить, странным образом помощь не пришла.
Моя благодарность Марселю за то, что напомнил этот замечательный фрагмент классической истории.
Пользователи Archlinux могут установить следующие пакеты:
В других дистрибутивах названия могут отличаться, например, есть модуль crypto и модуль pycrypto. Нам нужен второй.
Кроме того, старые версии могут вызывать проблемы:
$ python3 -c 'import OpenSSL; print(OpenSSL.version.__version__)'
Вы можете легко настроить виртуальное окружение Python:
$ virtualenv outis-venv
$ source ./outis-venv/bin/activate
(outis-venv) $ pip install progressbar2 dnspython pycrypto pyopenssl
В результате получается следующий список пакетов, который у меня работает:
$ pip freeze
appdirs==1.4.3
asn1crypto==0.22.0
cffi==1.10.0
cryptography==1.8.1
dnspython==1.15.0
idna==2.5
packaging==16.8
progressbar2==3.18.1
pycparser==2.17
pycrypto==2.6.1
pyOpenSSL==16.2.0
pyparsing==2.2.0
python-utils==2.1.0
six==1.10.0
Клонируйте этот репозиторий с флагом recursive, чтобы также клонировать его подмодули в папку thirdpartytools:
git clone --recursive ...
Обработчик работает на Python 3. Установите его зависимости и запустите. Он создаст stager’ы, agent’ы и всё остальное.
Чтобы привязать низкие порты без прав root, рассмотрите использование обёртки capabilities.
Скачивание файла с использованием staged DNS-транспорта на платформе POWERSHELL может выглядеть так:
$ outis
outis> set TRANSPORT DNS
outis> set ZONE zfs.sy.gs
outis> set AGENTDEBUG TRUE
outis> info
[+] Options for the Handler:
Name Value Required Description
----------------- ---------- -------- -----------------------------------------------------------------
TRANSPORT DNS True Communication way between agent and handler (Options: REVERSETCP,
DNS)
CHANNELENCRYPTION TLS True Encryption Protocol in the transport (Options: NONE, TLS)
PLATFORM POWERSHELL True Platform of agent code (Options: POWERSHELL)
PROGRESSBAR TRUE True Display a progressbar for uploading / downloading? (only if not
debugging the relevant module) (Options: TRUE, FALSE)
[+] Options for the TRANSPORT module DNS:
Name Value Required Description
--------- ----------- -------- ------------------------------------------------------------------------
ZONE zfs.sy.gs True DNS Zone for handling requests
LHOST 0.0.0.0 True Interface IP to listen on
LPORT 53 True UDP-Port to listen on for DNS server
DNSTYPE TXT True DNS type to use for the connection (stager only, the agent will
enumerate all supported types on its own) (Options: TXT, A)
DNSSERVER False IP address of DNS server to connect for all queries