Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

Comment vérifier et corriger vos scripts bash ☑️

J'utilise le site shellcheck pour vérifier que je n'ai pas fait d'erreur de syntaxe, déclaré des variables inutilisées, etc.

shellcheck peut fonctionner localement si vous ne souhaitez que vos scripts restent sur votre machine (disponible dans les dépôts de votre distribution) :

$ shellcheck myscript
In myscript line 12:
eof
^-- SC1118: Delete whitespace after the here-doc end token.

Je l'utilise avant de vous partager un script sur Blogmotion et cela me permet de faire une vérification avant publication. Il y a toujours quelques détails à modifier 😉

Je vous partage aussi la présentation d'Adrien D :

Attention aux suggestions de correction sur les doubles quotes, qui peuvent parfois être superflues et casser le script (j'ai eu le cas avec cURL).

Pour faire tourner du code en ligne (bash y compris) je vous rappelle que vous pouvez utiliser le site ideone.

Vous n'aimez pas le RSS : abonnez-vous par email 📥
Vous devriez me suivre sur Twitter : @xhark

Article original écrit par Mr Xhark publié sur Blogmotion le 29/03/2024 | Pas de commentaire |
Attention : l'intégralité de ce billet est protégée par la licence Creative Commons

Cet article Comment vérifier et corriger vos scripts bash ☑️ provient de : on Blogmotion.

BlueDucky – Automatiser l’exploitation d’une faille Bluetooth pour exécuter du code à distance

Vous pensiez que votre Bluetooth était safe ? Détrompez-vous ! Un chercheur en sécurité vient de dénicher une faille bien vicieuse qui permet d’exécuter du code à distance sur tout un tas d’appareils : smartphones Android, Chromecast, casques VR, TV connectées…

Le principe est diabolique : il suffit de se faire passer pour un clavier Bluetooth et hop, on peut envoyer des frappes de touches à la victime sans même qu’elle ait besoin d’accepter l’appairage. Pas besoin d’être à portée de main, quelques mètres suffisent. C’est ballot hein ?

Mais attendez, ça devient encore plus fort (ou pire, c’est selon). Des petits malins ont créé un outil baptisé BlueDucky qui automatise complètement l’exploitation de cette faille. Ça scanne les appareils vulnérables à proximité, ça les enregistre dans un fichier et ça balance un script Ducky bien sournois pour prendre le contrôle à distance. Le tout depuis un Raspberry Pi ou un smartphone Android !

Autant vous dire qu’ils se sont éclatés à tester ça sur tout ce qui passait : des smartphones, des objets connectés, des ordinateurs… Si c’est pas patché et que ça a du Bluetooth, ça tombe comme des mouches. Ils ont même réussi à ouvrir un navigateur et à envoyer la victime sur une page bien flippante, juste pour le fun.

Bon, vous allez me dire : « OK, mais comment on se protège de ce truc ?« . Eh bien c’est là que ça se gâte. Si vous avez un appareil récent, foncez installer les dernières mises à jour de sécurité. Mais pour les vieux machins sous Android 10 ou moins, c’est cuit, ça ne sera jamais patché. La seule solution : désactiver carrément le Bluetooth. Sinon, vous pouvez dire adieu à votre intimité numérique !

Mais ne cédons pas à la panique pour autant. Les chercheurs en sécurité font un boulot remarquable pour dénicher ces failles et alerter les fabricants. Maintenant, c’est à ces derniers de réagir en proposant des correctifs. Et à nous d’être vigilants en mettant à jour régulièrement nos appareils.

En attendant, si vous voulez jouer avec le feu dans la limite de ce que la loi permet, évidemment, le code de BlueDucky est disponible sur GitHub. Mais attention, c’est à vos risques et périls ! Ne venez pas vous plaindre si votre grille-pain se met à afficher des messages d’insulte au petit-déjeuner.

Pour l’installer :

# update apt
sudo apt-get update
sudo apt-get -y upgrade

# install dependencies from apt
sudo apt install -y bluez-tools bluez-hcidump libbluetooth-dev \
                    git gcc python3-pip python3-setuptools \
                    python3-pydbus

# install pybluez from source
git clone https://github.com/pybluez/pybluez.git
cd pybluez
sudo python3 setup.py install

# build bdaddr from the bluez source
cd ~/
git clone --depth=1 https://github.com/bluez/bluez.git
gcc -o bdaddr ~/bluez/tools/bdaddr.c ~/bluez/src/oui.c -I ~/bluez -lbluetooth
sudo cp bdaddr /usr/local/bin/

Et pour le lancer :

git clone https://github.com/pentestfunctions/BlueDucky.git
cd BlueDucky
sudo hciconfig hci0 up
python3 BlueDucky.py

Comme dirait l’autre, « le Bluetooth c’est comme le nucléaire, c’est génial tant que ça reste dans les mains des gentils« . Alors, soyez sympa et patchez-moi tout ça fissa ! Et si vous avez un appareil trop ancien qui traîne, coupez le Bluetooth et on n’en parle plus.

Pour en savoir plus sur cette faille et son exploitation, je vous invite à lire l’article ici.

[Script] Être notifié d’une facture d’eau à payer (Métropole)

 


Les organisations publiques telles que les régies des eaux ne sont pas forcément les mieux dotées en terme de délivrance d'email.

Il est très facile de passer à côté d'une notification de facture à payer, ou pire : de ne jamais recevoir la facture ! Ensuite c'est la relance par courrier et éventuellement les pénalités qui vont avec 🤑

Pour éviter ça j'ai écrit un script bash qui va vérifier tous les jours si une facture est en attente de règlement et me notifie sur mon téléphone via ntfy :

 

Cela fonctionne avec certaines communes de l'agglomération Grenobloise, mais pas que.

Liste des communes de l'agglo compatibles

Avant tout vous devez savoir si votre commune est compatible avec ce script. Pour que cela fonctionne votre commune doit être en "gestion métropole".

3 méthodes pour cela : une facile 2 autres plus destinées aux bidouilleurs. Pas d'inquiétude car peu importe la méthode le résultat sera le même.

Méthode 1 (facile)

Rendez-vous sur cette page https://ael.eauxdegrenoblealpes.fr/ puis cliquer sur votre commune dans le menu.

Prêtez attention au message qui vous informe de qui dépend votre commune :

Si votre commune dépend de "Métropole Alpes Grenoble" le script fonctionnera pour votre commune.

Si votre commune dépend d'autre chose que "Métropole Alpes Grenoble" désolé mais ce script ne fonctionnera pas.

Méthode 2 (avancée)

Rendez-vous sur cette liste :

https://ael.eauxdegrenoblealpes.fr/local/communes.json

Une fois votre commune trouvé, cherchez :

"nomSociete": "METROPOLE"
  • Si votre commune est listée et avec cette valeur alors ce script va fonctionner
  • Si votre commune est listée mais avec une autre valeur que "METROPOLE" en face du champ "nomSociete" alors ce script risque de ne pas fonctionner.

Méthode 3 (avancée en CLI)

Pour les paresseux vous pouvez également vérifier la compatibilité depuis un terminal bash :

curl -s https://ael.eauxdegrenoblealpes.fr/local/communes.json | jq -r '.items[] | select(.nomSociete == "METROPOLE") | .nomCommune'

Cette valeur correspond aux communes qui utilisent le système d'agence en ligne (AEL) de "www.somei.fr" (également visible dans les entêtes HTTP de certaines requêtes) compatible avec ce script. Si votre commune fait partie de la liste retournée alors ce script fonctionnera.

Si vous habitez en dehors de l'agglomération Grenobloise et que cela marche pour vous pensez à le préciser en commentaire 🙂

Téléchargement du script

Récupérez le script depuis mon espace GitHub :

↪ regiesDesEauxGrenoble.sh (raw)

Rendez le script exécutable chmod +x *.sh

puis modifiez les 3 variables obligatoires :

LOGIN="[email protected]"
PASSW="xxxxxxxxxxxxxxxx"
NUMCONTRAT="1234567"

Le numéro de contrat se trouve en haut à gauche de votre espace en ligne, sinon sur vos factures.
⚠ à ne pas confondre avec le numéro de compteur.

Enfin pour recevoir la notification avec ntfy renseignez le chemin du script de notification ntfy :

NTFYSCRIPT="/home/pi/ntfy/ntfy-ng.sh"
NTFYTOPIC="topic-ntfy-au-choix"

Pour ne pas recevoir la notification via NTFY commentez la ligne qui commence par $NTFYSCRIPT

Lancement du script

Et voici une trace d'exécution du script :

./regiesDesEauxGrenoble.sh
___ Debut du script v2023.11.30 ___

> conversationId=JS-WEB-Netscape-d2b7b62f-dbbc-4e98-b6d9-c6cf0df682a2

=== [CURL_0] Lecture cookie BigIP ===
> Cookie BigIP=!FEnXYYZzn8rzsY1t3jM/Zi5c...

=== [CURL_1] Recup openToken et MessageId (/generateToken) ===
> OpenToken=openToken-9270a4c3-db52-5573-ccdf-a6548855ff0a3
> MessageId=SMI-WEBAPI-MSG-20240325-123157-874s9fd2-daf2-4cd6-9425-c718ea1011c1

=== [CURL_2] Envoi du formulaire de connexion (/authentification) ===
> tokenAuthentique=50364c12-19ac-87a2-a9b1-c14f2f8415ac

=== [CURL_3] Lecture solde euros (/Facturation) ===
[Facture d'Eau] 34,15€ A REGLER

Et voilà !

Conclusion

Vous n'avez maintenant plus aucune excuse pour payer vos factures en retard !

Vous pouvez ensuite connecter le tout facilement à votre solution domotique, ou laisser le script tourner en crontab.

Je suis content de vous partager ce bout de script car j'ai passé quelques heures dessus pour décortiquer le fonctionnement sans avoir d'API digne de ce nom. Je ne m'attendais pas à devoir faire autant d'étapes avec cURL !

J'espère que ce script vous sera utile! En tout cas c'était un très entrainement pour moi et je sais que cette base me resservira. D'ailleurs je vous partage très bientôt un autre script similaire pour des charges envoyés par un syndic d'immeuble (même problème : les emails arrivent aléatoirement...)

 

 

Vous n'aimez pas le RSS : abonnez-vous par email 📥
Vous devriez me suivre sur Twitter : @xhark

Article original écrit par Mr Xhark publié sur Blogmotion le 26/03/2024 | Pas de commentaire |
Attention : l'intégralité de ce billet est protégée par la licence Creative Commons

Cet article [Script] Être notifié d’une facture d’eau à payer (Métropole) provient de : on Blogmotion.
❌