• chevron_right

      Un FestIn de roi pour vos Buckets S3

      news.movim.eu / Korben · 2 days ago - 07:00 · 7 minutes

    Aujourd’hui on va parler d’un outil de ouf pour trouver des buckets S3 ouverts : FestIn !

    C’est le genre d’outil dont raffolent les chercheurs en sécurité puisqu’il qui explore tous les recoins du web pour dénicher des trucs que vous n’auriez jamais trouvé.

    FestIn c’est la grosse artillerie de l’énumération de buckets S3 puisqu’il a tellement d’options que les autres outils à côté c’est de la gnognotte. Attention, c’est bien sûr à utiliser uniquement sur vos propres noms de domaines ou dans le cadre de missions d’audit pour lesquelles vous avez toutes les autorisations.

    Avec lui, vous allez pouvoir :

    • Utiliser différentes techniques pour trouver des buckets : crawling du DNS et des pages web, analyse des réponses S3
    • Faire vos requêtes en passant par un proxy, no stress 🕶
    • Vous passer des credentials AWS, puisque ça marche avec n’importe quel provider compatible S3
    • Configurer vos propres serveurs DNS, parce que vous êtes trop beau gosse.
    • Profiter d’un crawler HTTP de compétition qui va retourner le web pour vous
    • Faire des recherches récursives et avoir du feedback entre les différents modules pour un max d’efficacité
    • Faire tourner le schmilblick en mode « watch » pour choper les nouveaux domaines en temps réel, ce qui est assez ouf quand on y pense.
    • Sauvegarder tous les domaines découverts dans un fichier, pour faire joujou avec plus tard
    • Indexer direct le contenu des objets des buckets pour faire des recherches full text de la mort, mieux que Google ! 😎
    • Cibler votre recherche sur des domaines spécifiques si vous voulez pas vous éparpiller

    Pour l’installer c’est fastoche, au choix :

    pip install festin

    Ou en mode Docker :

    docker run --rm -it cr0hn/festin -h

    C’est du brut, du bourrin, puisqu’on va envoyer des requêtes en masse et gratter un max d’infos. Attention cependant, on reste fair-play, on ne veut pas faire planter le serveur non plus.

    Par défaut, FestIn prend un unique domaine en argument :

    festin mon-super-site.com
    

    Mais on peut aussi lui filer un fichier texte contenant une liste de domaines, histoire d’être plus productif :

    1. Crée un fichier domaines.txt avec tes domaines, un par ligne.
    2. Lance la commande :
    cat domaines.txt | festin -f -
    

    FestIn balance plusieurs tests en même temps pour aller plus vite. Par défaut, il en lance 5. Si vous êtes pressé et que votre machine encaisse, vous pouvez augmenter ce nombre avec l’option -c :

    festin -c 10 mon-super-site.com
    

    Attention cependant, ne balancez pas un truc de fou, ça risque de faire bugger le site ciblé. On est là pour glaner des infos, pas pour casser du serveur.

    L’outil dispose également d’un petit bot intégré qui va scanner le site à la recherche de liens pouvant mener à des buckets S3. On peut le configurer avec plusieurs options :

    • Timeout (-T ou –http-timeout) : Si le site est lent, on augmente le timeout pour pas que le scan plante. Par défaut, c’est 5 secondes.
    • Récursion max (-H ou –http-max-recursion) : On limite la profondeur du scan pour éviter de partir en vadrouille sur tout le net. Par défaut, c’est 3 niveaux, genre site.com -> lien -> site2.com -> lien -> site3.com .
    • Limite de domaine (-dr ou –domain-regex) : On peut dire au robot de se focaliser uniquement sur les sous-domaines qui correspondent à une expression régulière.
    • Liste noire (-B) : Fich un fichier texte contenant des mots clés. Si un domaine contient un de ces mots, on l’ignore.
    • Liste blanche (-W) : Même principe, mais à l’envers. On scanne uniquement les domaines contenant des mots clés de la liste blanche.

    Pour cela, vous devez créer un fichier blacklist.txt contenant « cdn » et « photos » (on ignore les liens vers des CDN et des images) puis lancer la commande :

    festin -T 20 -M 8 -B blacklist.txt -dr .mondomaine\.com mon-super-site.com
    

    Attention : l’option -dr attend une expression régulière valide au format POSIX. Par exemple, mondomaine.com est invalide, alors que \.mondomaine\.com est correct.

    FestIn crache un paquet d’infos intéressantes, pas seulement sur les buckets S3, mais aussi sur d’autres éléments identifiés. Ces infos peuvent ensuite être utilisées avec d’autres outils comme nmap.

    Pour récupérer les résultats, FestIn propose trois modes qu’on peut combiner :

    • Fichier de résultats FestIn (-rr ou –result-file) : Ce fichier contient une ligne JSON par bucket trouvé, avec le nom de domaine d’origine, le nom du bucket et la liste des objets qu’il contient.
    • Fichier de domaines découverts filtrés (-rd ou –discovered-domains) : Celui-là liste un domaine par ligne. Ce sont des domaines trouvés par le crawler, le DNS ou les tests S3, mais qui ont été filtrés selon les options définies.
    • Fichier brut de tous les domaines découverts (-ra ou –raw-discovered-domains) : Comme son nom l’indique, c’est la liste brute de tous les domaines identifiés par FestIn, sans aucun filtre. Idéal pour du post-traitement et de l’analyse.

    récupérer les résultats dans trois fichiers distincts et enchaîner avec nmap :

    festin -rr festin.results -rd domaines_filtres.txt -ra domaines_bruts.txt mon-super-site.com
    
    festin -rd domaines_filtres.txt && nmap -Pn -A -iL domaines_filtres.txt -oN nmap-resultats.txt
    

    FestIn peut utiliser Tor pour plus de discrétion. Il faut juste avoir un proxy Tor lancé en local sur le port 9050 (configuration par défaut). Activez-le avec l’option --tor :

    tor & festin --tor mon-super-site.com
    

    Et il peut aussi effectuer des recherches DNS. Voici les options dispo :

    • Désactiver la découverte DNS (-dn ou –no-dnsdiscover) : Si on a pas besoin de ce type de recherche.
    • Serveur DNS personnalisé (-ds ou –dns-resolver) : Pratique si on veut utiliser un serveur DNS différent de celui par défaut.

    Comme ceci :

    festin -ds 8.8.8.8 mon-super-site.com
    

    Ce script ne se contente pas de dénicher les buckets S3 ouverts, il peut aussi télécharger leur contenu et l’indexer dans un moteur de recherche plein texte. Ça permet ensuite de lancer des recherches directement sur le contenu des buckets ! Pour activer l’indexation, FestIn utilise Redis Search, un projet Open Source.

    Il faut deux options :

    • Activer l’indexation (–index) : Indispensable pour que le contenu soit stocké dans le moteur de recherche.
    • Configuration du serveur Redis Search (–index-server) : Uniquement si votre serveur Redis Search est sur une IP/port différent de localhost:6379 par défaut.

    Lancez d’abord Redis Search en tâche de fond :

    docker run --rm -p 6700:6379 redislabs/redisearch:latest -d
    

    Puis lancez FestIn avec l’indexation et le serveur distant :

    festin --index --index-server redis://127.0.0.1:6700 mon-super-site.com
    

    Attention : l’option --index-server doit obligatoirement commencer par le préfixe redis:// .

    Bien sûr, on a pas forcément envie de relancer FestIn à chaque nouveau domaine à analyser. C’est pour ça qu’il existe le mode surveillance. FestIn se lance et attend l’ajout de nouveaux domaines dans un fichier qu’il surveille. Pratique pour l’utiliser avec d’autres outils comme dnsrecon.

    Lancez FestIn en mode surveillance avec le fichier domaines.txt :

    festin --watch -f domaines.txt
    

    Dans un autre terminal, ajoutez des domaines à domaines.txt :

    echo "encore-un-autre-site.com" >> domaines.txt
    

    Dès qu’un nouveau domaine est ajouté au fichier, FestIn le scanne automatiquement à la recherche de buckets S3 ouverts. Pour aller plus loin, on peut combiner FestIn avec un outil de reconnaissance DNS comme DnsRecon. L’idée est de récupérer des sous-domaines potentiels liés au domaine principal et de les balancer ensuite à FestIn pour scanner d’éventuels buckets S3 cachés.

    Etape 1 : Scruter le domaine cible avec DnsRecon

    On va utiliser DnsRecon pour trouver des sous-domaines associés à cible.com . Sauvegardez la sortie dans un fichier CSV :

    dnsrecon -d cible.com -t crt -c cible.com.csv
    

    Etape 2 : Préparer le fichier pour FestIn

    On isole les sous-domaines du fichier CSV pour les injecter dans FestIn (un domaine par ligne) :

    tail -n +2 cible.com.csv | sort -u | cut -d "," -f 2 >> cible.com.domaines
    

    Etape 3 : Lancer FestIn et récupérer les résultats

    On balance le fichier de sous-domaines à FestIn en activant la recherche Tor, la concurrence à 5, un serveur DNS personnalisé et en sauvegardant les résultats dans des fichiers distincts :

    festin -f cible.com.domaines -
    

    Et pour automatiser tout ça sur plein de domaines à la chaîne, on a même un petit script loop.sh bien pratique dans les examples du repo GitHub.

    Voilà les amis, vous avez toutes les clés pour utiliser FestIn comme un pro et aller secouer les buckets S3 qui traînent ! C’est quand même un outil hyper complet et puissant, pensez à l’utiliser avec un proxy ou Tor pour pas vous faire bloquer, et amusez vous bien mais toujours de manière éthique et responsable hein !

    • chevron_right

      Le support des cartes AMD débarque sur Ollama

      news.movim.eu / Korben · Friday, 15 March - 21:38 · 1 minute

    Bonne nouvelle, Ollama vient tout juste d’annoncer un truc qui devrait vous faire plaisir : le support des cartes graphiques AMD en preview ! Cela signifie que toutes les fonctionnalités d’Ollama peuvent maintenant être accélérées par les cartes graphiques AMD, que ce soit sur Linux ou Windows.

    Mais au fait, c’est quoi Ollama ? Pour les deux du fond qui suivent pas, je vous refais un topo vite fait. Ollama, c’est un outil hyper pratique qui permet de faire tourner des grands modèles de langage open-source directement sur votre machine locale. Genre Mistral, Llama 2 et toute la clique.

    Alors, quelles sont les cartes AMD compatibles ?

    Pas de panique, je vous ai préparé une petite liste bien détaillée. Dans la famille des Radeon RX, on retrouve les monstres comme les 7900 XTX, 7900 XT, 7800 XT, 6900 XT et compagnie. Pour les pros, la gamme Radeon PRO est aussi de la partie avec les W7900, W6800X Duo, Vega II… Bref, y a du beau monde au rendez-vous. Et si vous êtes un fan des cartes Instinct, pas de jaloux, les MI300X, MI250, MI100 et autres sont aussi supportées.

    Ollama promet également que d’autres modèles de cartes graphiques suivront. Alors on croise les doigts et on surveille les annonces comme le lait sur le feu. En attendant, si vous voulez vous lancer dans l’aventure Ollama avec votre carte AMD, c’est simple comme bonjour.

    Téléchargez Ollama pour Linux ou Windows , installez le bouzin et hop, vous voilà parés pour faire chauffer votre GPU AMD ! C’est pas beau la vie ? Je vous ai même fait un tutoriel ici !

    Allez, je vous laisse, j’ai un rendez-vous urgent avec mon Llama2 uncensored qui me fait de l’œil.

    Source

    • In chevron_right

      Get started with Python in Visual Studio Code

      pubsub.slavino.sk / infoworldcom · Wednesday, 31 January - 10:00 edit

    Microsoft Visual Studio Code is a flexible, cross-platform editor that can be transformed into a full-blown IDE for most any language or workflow. Over the past few years, it has exploded in popularity. Thanks to Microsoft's Python extension for Visual Studio Code, VS Code has also become one of the best tools for working with Python. The Python extension provides not only syntax highlighting, but linting tools, environment management, and lots more, all tailored for the Python programming language.

    In this article, we'll walk through how to get started with VS Code's Python tools, whether for new projects or existing ones.

    Install VS Code and the Python extension

    If you haven't already set up and familiarized yourself with Visual Studio Code, that's your first step. Check out InfoWorld's guide to setting up VS Code .

    To read this article in full, please click here


    Značky: #Python, #Rozne

    • In chevron_right

      Get started with Anaconda Python

      pubsub.slavino.sk / infoworldcom · Wednesday, 17 January - 10:00 edit

    No question about it, Python is a crucial part of modern data science. Convenient and powerful, Python connects data scientists and developers with a galaxy of tools and functionality, in convenient and programmatic ways.

    Still, those tools sometimes come with assembly required, sometimes a lot of it. Because Python is a general-purpose programming language, how it’s packaged and delivered doesn’t speak specifically to data scientists. But various projects deliver Python to that audience in a way that’s prepackaged, with little to no assembly required—something regular Python users can benefit from, too.

    To read this article in full, please click here


    Značky: #Rozne, #Analytics, #Python

    • In chevron_right

      Intro to PyScript: Run Python in your web browser

      pubsub.slavino.sk / infoworldcom · Wednesday, 10 January - 10:00 edit

    Created by Anaconda and launched in April 2022, PyScript is an experimental but promising new technology that makes the Python runtime available as a scripting language in WebAssembly-enabled browsers.

    Every commonly used browser now supports WebAssembly , the high-speed runtime standard that languages like C , C++ , and Rust can compile to. Python's reference implementation is written in C, and one earlier project, Pyodide , provided a WebAssembly port of the Python runtime.

    To read this article in full, please click here


    Značky: #Rozne, #Python

    • In chevron_right

      How to use Rust with Python, and Python with Rust

      pubsub.slavino.sk / infoworldcom · Wednesday, 3 January - 10:00 edit

    Python and Rust occupy seemingly opposite ends of the language spectrum. Python , interpreted at runtime, offers developers a flexible and comfortable programming environment, but at the cost of raw speed. Rust provides the speed, plus guarantees of memory safety, but requires that you learn a new paradigm for handling memory operations.

    In theory, these languages shouldn't compete; they should cooperate. And in practice, they can. Rust can benefit from Python's ease of use, and Python can benefit from Rust's speed and safety.

    To read this article in full, please click here


    Značky: #Rozne, #Python, #Rust

    • In chevron_right

      What you need to know about Python's 'dead batteries'

      pubsub.slavino.sk / infoworldcom · Wednesday, 27 December - 10:00 edit

    Python's been around in one form or another for over 30 years. Over that time, it has accumulated a wide and powerful set of modules in its standard library. These modules help developers get started with many common tasks. Fans of Python call this the "batteries included" part of the language.

    But over the years, some of those batteries have died—meaning they've gone out of maintenance, or been used for technologies that are now obsolete. Some of these "dead batteries" were deprecated in Python 3.12 , and will be removed entirely in Python 3.13.

    To read this article in full, please click here


    Značky: #Python, #Rozne

    • chevron_right

      Auto Codebase Documenter – Pour documenter automatiquement votre code Python

      news.movim.eu / Korben · Tuesday, 12 September, 2023 - 07:00 · 2 minutes

    Qui n’a jamais eu la flemme de documenter son code ?

    Auto Codebase Documenter est un outil que vous allez adorer puisqu’il tire parti de la puissance de GPT-3.5-turbo ou GPT-4 d’OpenAI pour évaluer et documenter automatiquement le code que vous avez pondu !

    Génial non ?

    En gros, au lieu de passer des heures à documenter la structure et les fonctionnalités de votre projet, vous allez pouvoir profiter des derniers beaux jours de l’année puisque l’outil s’occupe de tout pour vous. Pour paraphraser Sun Tzu dans L’Art de la guerre : « La meilleure documentation est celle qui se génère toute seule. »

    Pour commencer à utiliser Auto Codebase Documenter, il suffit d’installer le package depuis PyPI via la comande pip comme ceci :

    pip install auto-codebase-documenter

    Vous devrez également configurer un environnement Python approprié. Je suggère fortement d’utiliser un environnement virtuel (venv) . Voici comment procéder :

    1. Installez Python 3.9.16 ou supérieur.
    2. Vérifiez votre version de Python en exécutant python --version ou python3 --version .
    3. Créez un environnement virtuel dans le répertoire racine en utilisant la commande python -m venv venv .
    4. Activez cet environnement avec « source venv/bin/activate » (Unix ou MacOS) ou « venv\Scripts\activate » (Windows).
    5. Installez les dépendances nécessaires via la commande « pip install -r requirements.txt « .

    N’oubliez pas, vous aurez également besoin d’une clé API OpenAI pour exécuter des requêtes sur leur modèle IA.

    Une fois que vous aurez installé et configuré tout ce dont vous avez besoin, il sera alors temps de laisser Auto Codebase Documenter faire sa sorcellerie ! Vous pouvez l’utiliser en ligne de commande ou directement sous la forme d’une lib pour votre projet. Importez simplement la classe AutoCodebaseDocumenter et lancez-la avec la méthode process_all_files .

    import os
    from dotenv import load_dotenv
    from auto_codebase_documenter.AutoCodebaseDocumenter import AutoCodebaseDocumenter
    
    load_dotenv()  
    openai_api_key = os.getenv("OPENAI_KEY")
    
    documenter = AutoCodebaseDocumenter(openai_api_key)
    documenter.process_all_files()

    Et voilà, l’outil s’occupera du reste!

    Vous pouvez personnaliser le processus de documentation en éditant le fichier documenter_config.yaml et y modifier différents paramètres tels que le chemin d’accès au code, les dossiers à ignorer, les types de fichiers à inclure, et bien plus encore.

    Une des meilleures choses à propos de cet outil est la manière dont il organise et structure les fichiers Markdown (.md) générés dans un répertoire dédié appelé docs . La structure du répertoire « docs » reflète exactement celle de votre projet. Ainsi chaque fichier traité correspond à un fichier Markdown spécifique ! Cela fait gagner énormément de temps et facilite évidemment la lecture et la compréhension de votre projet.

    Ainsi, avec une documentation aussi claire et bien organisée, tout nouveau développeur rejoignant votre projet pourra se mettre au boulot beaucoup plus rapidement. Et pour les développeurs chevronnés qui souhaitent se lancer dans un processus de révision de code ou de refactoring, cela rendra les choses vraiment plus simples niveau compréhension.

    Enfin, pour ceux qui aiment travailler avec Docker, il suffit d’utiliser les fichiers Dockerfile et docker-compose.yml fournis, et construire le conteneur en utilisant la commande bash build_docker.sh . Vous pourrez ensuite l’exécuter avec la commande bash run_docker.sh .

    À découvrir ici

    • chevron_right

      Trdsql – Pour interroger des fichiers plats (CSV, JSON…etc) avec SQL

      news.movim.eu / Korben · Thursday, 7 September, 2023 - 07:00 · 1 minute

    Voici un outil en ligne de commande fascinant qui va surement piquer votre curiosité en plus de vous rendre de grands services. Il s’agit de Trdsql , un programme écrit en Go qui permet d’exécuter des requêtes SQL sur des fichiers texte structurés tels que les CSV, TSV, LTSV, TBLN et JSON.

    A ce niveau, c’est sorcellerie messire !!

    Trdsql existe depuis un petit moment et est connu pour ses performances et ses capacités. Il peut par exemple utiliser de vraies requêtes SQL à partir de fichiers .sql , (que ce soit des requêtes MySQL ou PostgreSQL ).

    C’est une alternative avancée à q et textql , qui offrent également la possibilité d’exécuter des requêtes SQL sur des fichiers CSV et TSV structurés. Toutefois, Trdsql surpasse ses prédécesseurs en prenant en charge davantage de formats de fichiers, différentes options de sortie et en traitant les fichiers compressés.

    En plus de tous les formats de fichiers qu’il gère, il propose différents formats de sortie tels qu’une sortie brute, en table ASCII, en Markdown…etc. Un autre atout de Trdsql est qu’il peut être utilisé comme bibliothèque pour vos programmes Go, afin de traiter de gros fichiers sans soucis dans vos propres process.

    Prenez par exemple, un CSV contenant une liste de tâches dont vous voulez simplement extraire certaines informations spécifiques. Avec Trdsql, vous pourrez à l’aide d’une simple requête SQL, sortir les données souhaitées.

    trdsql "SELECT * FROM test.csv"

    Trdsql est très facile à utiliser et il est dispo sous Linux, Windows et macOS. Et bien sûr, vous pouvez le lancer via un conteneur Docker.

    C’est donc un outil précieux pour ceux qui travaillent avec des données structurées et des fichiers « plats ».

    N’hésitez pas à tester par vous-meme Trdsql en cliquant ici .