
Quelques outils de pentest. Installez et tenez à jour quelques outils de pentest. Je les ai utilisés pour réussir mon examen OSCP.
Gérez tous vos outils de pentest en un seul endroit et maintenez-les à jour avec une seule commande 😎
Le but de sometools est de pouvoir gérer tous vos outils qui ne sont pas inclus dans Kali ou pour lesquels sudo apt install n'est pas disponible. Sometools fonctionne mieux si les outils sont un dépôt, mais il peut être ajusté pour fonctionner sans.
Je cherchais un moyen de gérer et de maintenir à jour certains outils qui ne sont pas inclus dans Kali-Linux. Par exemple, je cherchais un moyen simple de gérer les scripts d'élévation de privilèges. Un jour, j'ai vu sec-tools d'eugenekolo (que vous pouvez voir en bas de page) et cela m'a donné la motivation pour commencer à travailler sur le mien immédiatement. Ma principale motivation était la commande check-update-all, qui vous permet de mettre à jour tous vos outils installés facilement.
Mais gardez à l'esprit que c'est différent. J'ai conçu cet outil pour les personnes qui travaillent avec Kali. Il devrait fonctionner sur d'autres distributions mais je n'ai pas inclus d'outils comme Burp Suite ou SQLmap car ils sont fournis par défaut avec Kali.
$ git clone https://github.com/som3canadian/Some-Tools $ cd Some-Tools $ ./sometools.sh setup
$ ./sometools.sh list
## Utilisation de base

**Note**: Il n'est pas nécessaire de spécifier les noms de catégories lors de l'utilisation d'un outil. Utilisez simplement le nom ou l'ID de l'outil. Vous pouvez voir l'ID de l'outil en faisant `./sometools.sh list`
Les actions les plus utilisées sont :
- list
- install
- check-update-all
- git-search
- self-update```bash
# Inital setup. Should be the first command
$ ./sometools.sh setup
# List all available tools
$ ./sometools.sh list
# List all available tools of a category
$ ./sometools.sh list-cat Utilities
# List install tool(s)
$ ./sometools.sh list-installed
# List installed tools accessible from anywhere on your machine
$ ./sometool.sh list-bin
# Install a tool
$ ./sometools.sh install unicorn
# Using ID instead of tool name
$ ./sometools.sh install 4
# Install all tools of a Category
$ ./sometools.sh install-cat PrivEsc-Win
# Install All tools
$ ./sometools.sh install all
# Check update for all installed tools
# check-update-all command is the main reason why I made this
$ ./sometools.sh check-update-all
# Check for update
$ ./sometools.sh check-update PEAS
# Using ID instead of tool name
$ ./sometools.sh check-update 9
# Search for a tool on github
$ ./sometools.sh git-search LinEnum
# Search for a PoC in the PoC-in-GitHub tool
$ ./sometools.sh search-poc
# Show README.md of an installed tool
$ ./sometools.sh info unicorn
# Using ID instead of tool name
$ ./sometools.sh info 4
# Add a new tool
$ ./sometools.sh add-tool newtoolname PrivEsc-Lin
# Uninstall a tool
$ ./sometools.sh uninstall unicorn
# Using ID instead of tool name
$ ./sometools.sh uninstall 4
# Unistall all tools of a Category
$ ./sometools.sh uninstall-cat PrivEsc-Win
# Update some-tools
$ ./sometools.sh self-update
# Delete all installed tools, remove bin directory and delete our modification in .zshrc or .bashrc
$ ./sometools.sh complete-uninstall
Le répertoire bin sera créé lors de l'exécution de l'action de configuration. Ce sera le chemin de répertoire que nous ajouterons à notre $PATH du shell (your/install/dir/Some-Tools/bin). Dans le répertoire bin, nous placerons une copie (lien symbolique) de l'outil que nous voulons exécutable partout sur notre machine. Par exemple, pour un outil comme unicorn.py, vous voudrez peut-être exécuter unicorn depuis n'importe où.
L'action de configuration créera aussi bin/PrivEsc-Lin et bin/PrivEsc-Win dans le processus. Dans ce répertoire, nous conserverons nos scripts d'élévation de privilèges. Ainsi, lorsque vous voulez utiliser vos outils, vous pouvez lancer un serveur HTTP Python et télécharger rapidement les scripts souhaités. Les scripts dans ces dossiers seront mis à jour en même temps que vous mettez à jour l'outil avec l'action check-update.
| Catégorie | Outil | Description |
|---|---|---|
| Évasion | Bashfuscator | Un framework de brouillage Bash entièrement configurable et extensible. |
| Évasion | Chimera | Chimera est un script de brouillage PowerShell conçu pour contourner AMSI et les solutions antivirus commerciales. |
| Évasion | PyFuscation | Brouille les scripts PowerShell en remplaçant les noms de fonctions, les variables et les paramètres. |
| Évasion | tvasion | 🎭 Contournement d'antivirus basé sur le changement d'empreinte de fichier via le chiffrement AES avec PowerShell et C#... |
| Évasion | unicorn | Unicorn est un outil simple pour utiliser une attaque par rétrogradation PowerShell et injecter du shellcode directement en mémoire... |
| Exploit-Win | windows-kernel-exploits | windows-kernel-exploits Collection de vulnérabilités du noyau Windows pour l'élévation de privilèges |
| PrivEsc-Lin | BeRoot | Projet d'élévation de privilèges - Windows / Linux / Mac |
| PrivEsc-Lin | LinEnum | Énumération Linux locale scriptée <> Vérifications d'élévation de privilèges |
| PrivEsc-Lin | LinPwn | Outil interactif de post-exploitation |
| PrivEsc-Lin | PEAS | PEASS - Suite de scripts géniaux pour l'élévation de privilèges |
| PrivEsc-Lin | SUID3NUM | Un script Python autonome qui utilise les modules intégrés de Python pour énumérer les binaires SUID... |
| PrivEsc-Lin | SetUID | Mon guide personnel pour l'élévation de privilèges |
| PrivEsc-Lin | linux-enum-mod | Juste une collection de trucs de pentest |
| PrivEsc-Lin | linux-exploit-suggester | Outil d'audit d'élévation de privilèges Linux |
| PrivEsc-Lin | linux-exploit-suggester-2 | Suggéreur d'exploits du noyau Linux de nouvelle génération |
| PrivEsc-Lin | linuxprivchecker | Un script de vérification d'élévation de privilèges Linux |
| PrivEsc-Lin | lse | Outil d'énumération Linux pour le pentesting et les CTF avec niveaux de verbosité |
| PrivEsc-Lin | pspy | Surveiller les processus Linux sans privilèges root |
| PrivEsc-Lin | setuid-wrapper | Un programme wrapper setuid simple, destiné à lancer des scripts shell avec des privilèges élevés. |
| PrivEsc-Lin | unix-privesc-check | Exporté automatiquement depuis code.google.com/p/unix-privesc-check |
| PrivEsc-Win | Ghostpack-CompiledBinaries | Binaires compilés pour Ghostpack (.NET v4.0) |
| PrivEsc-Win | JAWS | JAWS - Just Another Windows (Enum) Script |
| PrivEsc-Win | Powerless | Script d'élévation de privilèges (énumération) Windows conçu pour les labs OSCP (Windows hérités) |
| PrivEsc-Win | Privesc | Script batch Windows qui trouve des problèmes de configuration pouvant mener à une élévation de privilèges. |
| PrivEsc-Win | SessionGopher | SessionGopher est un outil PowerShell qui utilise WMI pour extraire les informations de session enregistrées pour l'accès à distance... |
| PrivEsc-Win | Sherlock | Script PowerShell pour trouver rapidement les correctifs logiciels manquants pour les vulnérabilités locales d'élévation de privilèges. |
| PrivEsc-Win | WinPwn | Automatisation pour les tests de pénétration internes Windows / Sécurité AD |
| PrivEsc-Win | Windows-Privilege-Escalation | Techniques et scripts d'élévation de privilèges Windows |
| PrivEsc-Win | Windows-Exploit-Suggester | Cet outil compare les niveaux de correctifs d'une cible avec la base de données de vulnérabilités Microsoft... |
| PrivEsc-Win | mimikatz | Un petit outil pour jouer avec la sécurité Windows |
| PrivEsc-Win | wesng | Windows Exploit Suggester - Next Generation |
| PrivEsc-Win | windows-privesc-check | Exécutable autonome pour vérifier les vecteurs simples d'élévation de privilèges sur les systèmes Windows |
| Utilitaires | GraphQLmap | GraphQLmap est un moteur de script pour interagir avec un point de terminaison graphql à des fins de pentesting. |
| Utilitaires | PoC-in-GitHub | 📡 Collecte automatique de PoC depuis GitHub. ⚠️ Attention aux logiciels malveillants. |
| Utilitaires | SirepRAT | Exécution de commandes à distance en tant que SYSTEM sur Windows IoT Core (versions disponibles pour Python2.7 <> Python3) |
| Utilitaires | Windows-Tools | Quelques outils Windows. |
| Utilitaires | chisel | Un tunnel TCP/UDP rapide sur HTTP |
| Utilitaires | crackhash | Crackhash est un outil qui tente de cracker différents types de hachages en utilisant des services en ligne gratuits. |
| Utilitaires | cryptz | 🔒 [ Chiffrement / Déchiffrement multiple ] 🔓 |
| Utilitaires | decodify | Détecter et décoder des chaînes encodées, de manière récursive. |
| Utilitaires | enum4linux-ng | Une version de nouvelle génération de enum4linux (un outil d'énumération Windows/Samba) avec des fonctionnalités supplémentaires... |
| Utilitaires | evil-winrm | Le shell WinRM ultime pour le hacking/pentesting |
| Utilitaires | haiti | 🔑 Identifiant de type de hachage (CLI <> lib) |
| Utilitaires | impacket | Impacket est une collection de classes Python pour travailler avec les protocoles réseau. |
| Utilitaires | nishang | Nishang - PowerShell offensif pour l'équipe rouge, les tests de pénétration et la sécurité offensive. |
| Utilitaires | nmapAutomator | Un script que vous pouvez exécuter en arrière-plan ! |
| Utilitaires | pypykatz | Implémentation de Mimikatz en Python pur |
| Utilitaires | revshellgen | Générateur de reverse shell écrit en Python 3. |
| Utilitaires | snmp | Scripts de collecte de données SNMP |
| Web | byp4xx | Script Python pour le contournement des réponses HTTP 40X... |
| Web | fuxploider | Scanner et outil d'exploitation des vulnérabilités de téléchargement de fichiers. |
| Web | LFISuite | Exploiteur LFI totalement automatique (+ Reverse Shell) et scanner. |
| Web | MyJWT | Un CLI pour craquer et tester les vulnérabilités des JSON Web Token (JWT) |
| Web | php-reverse-shell | Script PHP de reverse shell. Fonctionne sur Linux, macOS et Windows. |
| Web | windows-php-reverse-shell | Simple reverse shell PHP implémenté à l'aide de binaire. |
| Web | wwwolf-php-webshell | Web shell PHP de WhiteWinterWolf |
| Web | malicious-wordpress-plugin | Génère simplement un plugin WordPress qui vous accordera un reverse shell une fois téléchargé. |
| Web | whitepass | Whitepass contourne les implémentations de liste blanche/limitation de débit dans les applications Web/API |
| Web | wordpress-exploit-framework | Un framework Ruby conçu pour aider aux tests de pénétration des systèmes WordPress. |
Note :
setup (Processus de configuration) :
.bashrc ou .zshrc (l'action de configuration intégrée ne fonctionnera pas si vous n'utilisez pas l'un de ces deux shells).bashrc ou .zshrc) dans le terminal actuel pour activer le nouveau chemin. Pour voir votre nouveau chemin, vous pouvez faire echo $PATH.bashrc ou .zshrc), nous copierons votre $PATH avant d'apporter des modifications. Il sera commenté quelques lignes avant la fin de votre fichier shell. Ainsi, si vous voulez réinitialiser votre chemin à l'état antérieur à la configuration de Some-Tools, vous pouvez copier la commande commentée dans votre fichier shell, nettoyer ce que nous avons créé dans le fichier, puis le sourcer.sometools.sh pour mieux comprendre. ```bash
$ ./sometools.sh setupinstall et install-all:
./sometools.sh list..installed sera créé dans le répertoire de l'outil. Ce fichier nous aidera pour notre action list-installed. ```bash
$ ./sometools.sh list # see which tool can be install$ ./sometools.sh install LinEnum
$ ./sometools.sh install 7
$ ./sometools.sh install-all
install-cat and uninstall-cat:
$ ./sometools.sh install-cat PrivEsc-Win
$ ./sometools.sh uninstall-cat PrivEsc-Win
check-update et check-update-all :
.git), vous pouvez créer un fichier update-tool.sh avec vos instructions spéciales (le fichier doit être nommé update-tool.sh)../sometools.sh list. ```bash
$ ./sometools.sh list-installed # list currently installed tool(s)
$ ./sometools.sh check-update LinEnum$ ./sometools.sh check-update 7
$ ./sometools.sh check-update-all
Pourquoi deux check-git ? check-git.sh indique seulement si l'outil est en retard ou non. Si nous détectons une version plus récente, nous demanderons d'exécuter check-git-action.sh.
git-search
sortSearch si vous le souhaitez)$ ./sometools.sh git-search LinEnum 15


self-update:
pull. ```bash
$ ./sometools.sh self-updatedésinstaller :
./sometools.sh list. ```bash
$ ./sometools.sh uninstall unicorn$ ./sometools.sh uninstall 4
add-tool :
install-tool.sh, uninstall-tool.sh et .gitignore.add-tool créera pour vous.lse dans le répertoire PrivEsc-Lin. Vous devrez peut-être modifier le fichier .gitignore dans le répertoire de votre outil.install-tool.sh selon vos besoins. Si vous le faites, l'action check-update ne fonctionnera pas « prête à l'emploi » (car nous ne trouverons aucun répertoire .git). Solution : vous pouvez créer un fichier nommé update-tool.sh (dans le répertoire de l'outil) et y placer vos commandes de mise à jour. Le script some-tools.sh détectera ce nom de fichier lors de l'utilisation de l'action check-update. N'oubliez pas de chmod +x votre nouveau fichier..gitignore contiendra le nom de votre outil et .installed. Pourquoi ? Parce que nous ne voulons pas pousser un dépôt git dans un autre dépôt et nous ne voulons pas pousser le fichier .installed. ```bash
$ ./sometools.sh add-tool newtoolname PrivEsc-Lin$ ./sometools.sh add-tool LinEnum PrivEsc-Lin
install-tool et update-tool avec l'API Github
Parfois, des outils doivent être téléchargés via la page releases/latest comme pspy de DominicBreuker. Ainsi, pour pouvoir toujours mettre à jour et télécharger la dernière version, le processus nécessite une petite astuce avec l'API Github. Si vous ajoutez un nouvel outil en utilisant ce modèle, vous pouvez utiliser la fonction ci-dessous dans vos fichiers install-tool.sh et update-tool.sh. ```bash #!/bin/bash
function gitGetLatestRelease() { gitCounter=0 repoToGet="DominicBreuker/pspy" apiURL="https://api.github.com/repos" while [[ $checkDownloadURL != null ]]; do checkDownloadURL=$(http "$apiURL/$repoToGet/releases/latest" | jq -r ".assets[$gitCounter].browser_download_url") if [[ $checkDownloadURL == null ]]; then break fi # download the release wget "$checkDownloadURL" gitCounter=$((gitCounter + 1)) done } gitGetLatestRelease
info:
./sometools.sh list.info est utilisée, some-tools essaiera de détecter le binaire bat. S'il le détecte, il vous demandera entre bat ou cat.cat sera utilisé par défaut sans demande si bat n'est pas détecté. ```bash
$ ./sometools.sh info LinEnum$ ./sometools.sh info 7
complete-uninstall:
.zshrc ou .bashrc..zshrc ou .bashrc. Ainsi, si vous avez effectué des modifications en cours de route, elles seront conservées..zshrc ou .bashrc. L'un se terminant par .backup que nous avons créé lors de la configuration initiale et le second, .backup2, avant de supprimer la section sometools dans le processus de désinstallation complète. ```bash
$ ./sometools.sh complete-uninstallLes fonctions Zsh ne contiennent pas d'outils de pentest, elles contiennent de petits scripts qui aident beaucoup mon flux de travail et j'ai pensé qu'ils pourraient être utiles à d'autres aussi.
Peut-être cela pourrait être utilisé avec d'autres shells mais je l'utilise avec zsh.
Cela ne sera pas défini lors du processus d'installation. Vous devez le définir manuellement. Comment ? En ajoutant l'extrait ci-dessous à votre fichier .zshrc.```bash
fpath=(~/path/of/sometools/Zsh-Functions $fpath); autoload -U $fpath[1]/*(.:t)
- mkcd : mkdir et cd
- mv : déplacer un fichier/dossier dans votre répertoire actuel (avec un argument)
- op : ouvrir un fichier ou dossier dans le gestionnaire de fichiers (`op .` pour ouvrir le répertoire actuel)
## Autres
- Lorsque vous utilisez le numéro d'ID au lieu du nom de l'outil, assurez-vous d'utiliser le numéro d'ID de `./sometools.sh list` et non de `./sometools.sh list-installed`
- Si vous ajoutez un nouvel outil nécessitant des instructions de mise à jour spécifiques, vous pouvez créer le fichier `update-tool.sh` dans le répertoire de l'outil (comme les fichiers install-tool.sh et uninstall-tool.sh). Lorsque vous vérifierez les mises à jour, le script some-tools.sh en tiendra compte.
- Vous **ne pouvez pas** utiliser le même nom pour deux outils. Cela causera des problèmes. Lors de l'action add-tool, nous vérifierons cela. Une solution serait de spécifier le nom de la catégorie lors d'une action, mais je **ne veux vraiment pas ça**. Comme utiliser un nom différent est facile, je n'ai pour l'instant aucune intention de développer une solution qui permettrait d'utiliser le même nom pour plusieurs outils.
- Certains des outils que vous installerez peuvent vous demander des permissions `sudo` !
- Le fichier `check-git.sh` inclus dans le dépôt est destiné aux actions check-update et check-update-all.
- Je construis ce projet sur mon temps libre, il peut y avoir des bugs. Si le nombre d'étoiles augmente, je pourrais y consacrer plus de temps et d'efforts.
## Licence
Les outils individuels sont tous sous leurs propres licences. Quant à Some-Tools, il est sous licence GNU General Public License v3.0.
⭐ Si vous le trouvez utile, mettez une étoile en haut de cette page ⭐ ou vous pouvez m'offrir un ☕. Merci 🔥😎
<a href="https://www.buymeacoffee.com/somecanadian" target="_blank"><img src="https://assets.kitploit.com/production/public/readmes/3722/eecc7380590efb5bd32637f86ef07884b0e9f1f82f7dbf8b2bc7e8410d721225.png" alt="Buy Me A Coffee" height="51" width="217"></a>
## Remerciements
- Construit à partir de l'idée de <https://github.com/eugenekolo/sec-tools> et <https://github.com/zardus/ctf-tools>.
- Boîte Vagrant par : [nicmilot](https://app.vagrantup.com/nicmilot/boxes/kali-full-2020). Vous pouvez voir ses autres boîtes Vagrant comme : [pwk-kali-2018](https://app.vagrantup.com/nicmilot/boxes/pwk-kali-2018) pour VMware Fusion et [Metapsloitable3](https://app.vagrantup.com/nicmilot/boxes/metasploitable3-win2008-vmware) pour VMware Fusion également.