
outis ist ein benutzerdefiniertes Remote Administration Tool (RAT) oder so ähnlich. Es wurde entwickelt, um verschiedene Transportmethoden (wie DNS) und Plattformen (wie Powershell) zu unterstützen.
outis ist ein benutzerdefiniertes Remote Administration Tool (RAT) oder so ähnlich. Denken Sie an Meterpreter oder Empire-Agent. Der Fokus dieses Tools liegt jedoch weder auf einem Exploit-Toolkit (es gibt keine Exploits) noch auf der dauerhaften Verwaltung von Zielen. Der Fokus liegt auf der Kommunikation zwischen Server und Zielsystem sowie auf Dateiübertragung, Socket-Weitergabe, Shell-Spawning usw. unter Verwendung verschiedener Methoden und Plattformen.
Der Zyklop Polyphem in Homers Odyssee hatte einige Probleme mit der Namensauflösung. Als er nach Odysseus' Namen fragte, sagte ihm der Hacker, dass er „Outis“ heißt, was im Altgriechischen „Niemand“ bedeutet. Als Polyphem später schrie, dass Niemand ihn töten wolle, kam seltsamerweise keine Hilfe.
Mein Dank gilt Marcel für die Erinnerung an dieses wunderbare Stück klassischer Erzählkunst.
Archlinux-Benutzer können die folgenden Pakete installieren:
In anderen Distributionen können die Namen abweichen, zum Beispiel gibt es ein Modul namens crypto und ein Modul namens pycrypto. Wir benötigen das letztere.
Ältere Versionen könnten ebenfalls Probleme verursachen:
$ python3 -c 'import OpenSSL; print(OpenSSL.version.__version__)'
Sie können ganz einfach eine Python Virtual Environment einrichten:
$ virtualenv outis-venv
$ source ./outis-venv/bin/activate
(outis-venv) $ pip install progressbar2 dnspython pycrypto pyopenssl
Dies führt zu folgender Paketliste, die bei mir zu funktionieren scheint:
$ 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
Klonen Sie dieses Git mit dem rekursiven Flag, um auch die Submodule im Ordner thirdpartytools zu klonen:
git clone --recursive ...
Der Handler läuft mit Python 3. Installieren Sie seine Abhängigkeiten und führen Sie ihn aus. Er generiert Stager, Agents und alles andere für Sie.
Um niedrige Ports ohne Root-Rechte zu binden, sollten Sie einen Capability-Wrapper in Betracht ziehen.
Der Download einer Datei mittels gestaffeltem DNS-Transport mit der POWERSHELL-Plattform könnte wie folgt aussehen:
$ outis
outis> set TRANSPORT DNS
outis> set ZONE zfs.sy.gs
outis> set AGENTDEBUG TRUE
outis> info
[+] Optionen für den Handler:
Name Wert Erforderlich Beschreibung
----------------- ---------- -------- -----------------------------------------------------------------
TRANSPORT DNS True Kommunikationsweg zwischen Agent und Handler (Optionen: REVERSETCP,
DNS)
CHANNELENCRYPTION TLS True Verschlüsselungsprotokoll im Transport (Optionen: NONE, TLS)
PLATFORM POWERSHELL True Plattform des Agent-Codes (Optionen: POWERSHELL)
PROGRESSBAR TRUE True Fortschrittsbalken für Upload/Download anzeigen? (nur wenn das
entsprechende Modul nicht gedebuggt wird) (Optionen: TRUE, FALSE)
[+] Optionen für das TRANSPORT-Modul DNS:
Name Wert Erforderlich Beschreibung
--------- ----------- -------- ------------------------------------------------------------------------
ZONE zfs.sy.gs True DNS-Zone für die Bearbeitung von Anfragen
LHOST 0.0.0.0 True Interface-IP zum Abhören
LPORT 53 True UDP-Port zum Abhören für DNS-Server
DNSTYPE TXT True DNS-Typ für die Verbindung (nur Stager; der Agent zählt alle unterstützten
Typen selbst auf) (Optionen: TXT, A)
DNSSERVER False IP-Adresse des DNS-Servers, der für alle Abfragen kontaktiert werden soll