
outisはカスタムのリモート管理ツール(RAT)またはそのようなものです。さまざまなトランスポート方式(DNSなど)やプラットフォーム(Powershellなど)をサポートするために構築されました。
outisは、カスタムリモート管理ツール(RAT)またはそれに類するものです。MeterpreterやEmpre-Agentのようなものを想像してください。ただし、このツールの焦点は、エクスプロイトツールキット(エクスプロイトはありません)でも、ターゲットの永続的な管理でもありません。焦点は、サーバーとターゲットシステム間の通信、ファイル転送、ソケット共有、シェルの起動などを、さまざまな方法とプラットフォームを使用して行うことです。
ホメロスの『オデュッセイア』に登場するサイクロプスのポリュペーモスは、名前解決に問題を抱えていました。彼がオデュッセウスの名前を尋ねたとき、そのハッカーは古代ギリシャ語で「誰でもない」を意味する「Outis」と答えました。そのため、後にポリュペーモスが「誰でもない」が自分を殺そうとしていると叫んでも、奇妙なことに誰も助けに来ませんでした。
この素晴らしい古典の逸話を思い出してくれたMarcelに感謝します。
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
このgitリポジトリをrecursiveフラグ付きでクローンして、thirdpartytoolsフォルダ内のサブモジュールもクローンしてください。
git clone --recursive ...
ハンドラーはPython 3で動作します。依存関係をインストールして実行してください。スタージャー、エージェント、その他すべてを自動生成します。
低いポートをバインドするためにroot権限が必要ないようにするには、capabilityラッパーの使用を検討してください。
POWERSHELLプラットフォームを使用したステージングDNSトランスポートによるファイルのダウンロードは、次のようになります。
$ 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