Amazon account abuse: Emergency script

Last night, I published an IAM key to Github by mistake. Shit happens… Two minutes later, the key was hijacked and my account was abused. I didn’t realize this until this morning, and it took me multiple hours to understand what I had to do, and where, given the fact AWS is new for me. It’s important to know that AMAZON will NOT clean up the mess for you, whatever your situation is. You then have to go through each region, and terminate all instances, delete all volumes and VPCs…

So, if this is happening to you, here is an emergency script you may run to terminate all instances on your account.

DISCLAIMER: THIS CALL TERMINATES (Deletes) ALL INSTANCES ON YOUR ACCOUNT, IN ALL REGION. THIS IS ONLY MENT FOR PEOPLE USING THEIR AWS ACCOUNT FOR LABS AND LEARNING. IF YOU HAVE PRODUCTION ON YOUR ACCOUNT, DO NOT USE THIS SCRIPT !

#!/usr/bin/env bash

for region in `aws ec2 describe-regions --output text | cut -f3`
do
  for instance in `cat $region.txt`
  	  do aws ec2 modify-instance-attribute \
   	    --region $region \
      --instance-id $instance \
   	    --no-disable-api-termination;
              aws ec2 terminate-instances --region $region --instance-ids $instance;
          done
done

This script will loop through all instances in all regions on your account, disable the Termination protection (which is preventing you to terminate the instances… smart from the abusers) and then terminate each instance.

When this is done, you still have to delete all the DHCP options, VPCs and volumes if any are left.

To delete all the volumes you can run this script:

#!/usr/bin/env bash

for region in `aws ec2 describe-regions --output text | cut -f3`
do
  for vol in `aws ec2 describe-volumes \
 	  --region $region \
 	  | grep "vol-" | cut -d\" -f 4`;
   	  do 
                aws ec2 delete-volume --region $region --volume-id $vol
		echo $region $vol deleted
          done
done

It will do the same as above, but on volumes instead of instances.

I was not able to script the deletion of VPCs because of dependencies I could not identify. There were in my case one VPC per region. So this is not too cumbersome to handle. The worst was the instances… hundreds of them. Very costly mistake (we takes about thousands of dollars if Amazon decides I have to pay for the mistake).

Hope this does not happen to you.

HASS: Deploy and update Home Assistant from Docker Hub

Home Assistant deployment and update from Docker Hub

Introduction

I’ve been using Home Assistant for about one month now. And to make it simple, I deployed it inside a Docker Container out of Docker Hub. This is quite new for me. It’s my first use of Docker. And I like it. It makes things a lot simple. Continue reading “HASS: Deploy and update Home Assistant from Docker Hub”

Script: Create a github repository, a git local directory, and link them in a single script

I finally started to use Github. That will make my life easier for sure. I found git and github a bit hard to apprehend at start, until a colleague sent me the link to this great online training made by Code School and sponsored by Github. I way want to try it… Well… it’s called “Try Github” by the way: https://try.github.io/

I plan to use Github for all the little scripts and files I will be creating. Much more convenient. than syncing with any kind of cloud repository like Nextcloud. As I want to use both private and public github, I had to subscribe to github…

So, you might get it, I will create multiple gits and github repos, and as I’m lazy, I don’t want to remember and to type all commands everytime. Therefore I made that little scripts to help. Continue reading “Script: Create a github repository, a git local directory, and link them in a single script”

Vérifier par script bash si la connexion ssh fonctionne

En partant à la découverte de Nutanix Calm, je cherche à scripter le maximum du choses, forcément. Aussi, j’ai cherché comment vérifier si une connexion ssh fonctionnait correctement en script, pour permettre à celui-ci de lancer une action ou de s’interrompre si ce n’est pas le cas. Voici ce que ça donne:
 
Remplacez bien sûr les éléments , et par vos besoin.

Ce script va lancer une requête SSH, et sortir immédiatement. Il ne va pas contrôler la clé de host, ceci permet que le script ne s’interrompe pas pour demander oui/non (fingerprint). On renvoie ensuite le résutat vers /dev/null, comme ça c’est totalement silencieux. Puis on récupère enfin le code de sortie. S’il est 0, c’est bon. Si il est autre chose, la connexion a échoué, et on arrête le script.

# Silently check if ssh connection is working for new user
ssh -q -o "StrictHostKeyChecking no" @ -p  exit &> /dev/null
ret_code=$?
 
# If connection failed, stop the script
if [ $ret_code != 0 ]
then
   echo "SSH connection for user  failed. Stopping script. Error code $ret_code"
   exit $ret_code
fi

MaxSmart/Revogi – Prise multiple automatisable et RestAPI

J’ai récemment acheté plusieurs prises multiples MaxSmart de Max Hauri. Digitec a fait une offre exceptionnelle à CHF 75.00 pour la Power Station (multiprise six sockets).

C’est un produit intéressant à plus d’un titre. La multiprise elle-même comporte un port RJ45. Une fois branchée sur le routeur réseau, elle crée un réseau PowerLAN 500Mb/s. Il est dès lors possible de contrôler jusqu’à 15 périphériques MaxSmart dans la maison, à condition que l’on soit, bien entendu, derrière le même compteur électrique. Il s’agit ici d’une limitation PowerLAN, et non MaxSmart. Il est ensuite possible de contrôler et d’automatiser chaque prise depuis son téléphone mobile ou depuis internet.

Continue reading “MaxSmart/Revogi – Prise multiple automatisable et RestAPI”

Même site, plusieurs login dans Firefox

Depuis deux mois, j’ai rejoint la société Nutanix. Je passe sur les détails pour l’instant, je ferai peut-être des articles sur le sujet dans le futur. Ici n’est pas l’objet.

Depuis deux mois, je galère avec:

  • Deux sessions web Whatsapp
    • Une sur mon numéro de mobile privé
    • Une sur mon numéro de mobile professionnel
  • Deux sessions Google (même chose)
  • Deux sessions Facebook, Twitter, etc…

Continue reading “Même site, plusieurs login dans Firefox”

Suppression bannière SSH DD-WRT

Dans le cadre de scripts d’automatisation que je suis en train de préparer, j’exécute des commandes SSH à distance sur mon routeur WIFI piloté par DD-WRT. Ceci peut être utile pour la domotique par exemple, ou le monitoring de l’activité Wifi.

Pour ceux qui ne le connaissent pas, DD-WRT est un firmware Open Source pour routeur. A la base, il a été créé pour remplacer le firmware des WRT-54G de Linksys. Puis il s’est étendu à tout une liste de routeurs dont on retrouve la base de donnée sur le site dédié. On trouve des firmwares similaires tels que Open-WRT, ou Tomato. Tous ont leurs avantages, leurs inconvénients. J’ai choisi DD-WRT depuis plusieurs années. Continue reading “Suppression bannière SSH DD-WRT”