Outils pour utilisateurs

Outils du site


backdoor_pour_debloquer_ip_banni_par_ipset

BackDoor pour débloquer IP banni par IPSET

L'idée est de se connecter à une pageweb ne passant pas par le proxy-reverse qui bloque notre IP.

Via Scripts, récupérer notre IP via la log access.log généré à la connexion de la pageweb et la retirer de la blacklist IPSET du proxy-reverse.

Les étapes

  1. Création contenair
  2. Création pageweb
  3. Ouverture port routeur et Letsencrypt
  4. Scripts
  5. .htpasswd
  6. Divers

1°/ Création contenair

Créer un contenair avec :

  • ssh avec connexion via clef sur le proxy-reverse
  • nginx
  • php
  • sudo

2°/ Création pageweb

/var/www/xxxxx/index.php :

<!DOCTYPE html>
<html>

        <head>
                <title>DebanIP</title>
<link rel="apple-touch-icon" sizes="57x57" href="./icone/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="./icone/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="./icone/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="./icone/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="./icone/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="./icone/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="./icone/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="./icone/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="./icone/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192"  href="./icone/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="./icone/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="./icone/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="./icone/favicon-16x16.png">
<link rel="manifest" href="./icone/manifest.json">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="./icone/ms-icon-144x144.png">
<meta name="theme-color" content="#ffffff">
                <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
                <meta http-equiv="X-UA-Compatible" content="IE=11" />
                <link rel="stylesheet" media="screen" type="text/css" title="Exemple" href="css/dams.css"/>
        </head>
<br>
<br>
<div align=center><img src="./img/dams.png" width="191" height="191"></div>
<br>
<br>
<br>
<br>

<style>

a {
    background-color: #4CAF50;
    border: none;
    color: white;
    padding: 16px 32px;
    text-decoration: none;
    margin: 4px 2px;
    cursor: pointer;
    border-radius: 4px;
}

</style>
    <body>
        <p><div align=center>Appuyer sur D&eacute;Ban pour débloquer votre équipement :</div></p>
        <br>
        <div align=center><a href="index.php?run=true">D&eacute;Ban</a></div>
<?php
if($_GET['run']){
exec("sudo /chemin/du/script2" , $result,$etat);

echo'<script type="text/javascript">';
echo'alert("Equipement d\351bloqu\351!");';
echo'document.location.href="https://pageweb.dams.ovh/index.php"';
echo"</script>";

}

?>

    </body>
</html>

3°/ Ouverture port routeur et Letsencrypt

Afin de passer outre le reverse proxy qui bloque notre IP.

Dans la conf du routeur ouvrir un port (exemple :23456) et le rediriger vers notre contenair sur le même port.

;-) Autant sécuriser un minimum. Je vous laisse configurer nginx et letsencrypt.

4°/ Scripts

2 Scripts nécessaires :

  1. Script à faire exécuter sur le proxy-reverse via la console de notre contenair
  2. Script pour l’exécution du script 1

Script 1 :

#!/bin/bash

genlst() {

rep="scp -r -p root@deban:/var/log/nginx/access.log /deban/access.log"
cmd="cat /deban/access.log"
grepIpv4='(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)'

step1=$($rep)
step2=$($cmd | grep -E -o "$grepIpv4")

}

### fonction traitement des listes test/add/del ###

trtlst() {

for IP in $step2; do
        ipset test blacklistV4 "$IP"
        if [ $? -eq 0 ]; then
                ipset del blacklistV4 "$IP"
        else
                echo "ip not in set"
        fi
done

}

###

genlst
trtlst

### efface le contenu de access.log ###
echo "" > /deban/access.log

exit 0

Script 2 :

#!/bin/bash

cat /root/debanIP.sh | ssh proxy
echo "" > /var/log/nginx/access.log

5°/ .htpasswd

Afin de sécuriser un minimum la pageweb on lui demandera un login/mdp à l'ouverture.

Installation :

apt install apache2-utils

Configuration :

htpasswd -c /chemin/ou/vous/voulez/mettre/.htpasswd nom_du_login

Renseigner le mdp

6°/ Divers

Penser à donner les droits root à www-data pour l’exécution des scripts :

/etc/sudoers
www-data ALL = NOPASSWD: /chemin/du/script1.sh,/chemin/du/script2.sh

Le Vhost nginx :

 server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    root /var/www/chemin/de/la/pageweb/;
    index index.php;

ssl on;

    access_log /chemin/des/log/access.log;

location / {
    satisfy any;
    deny  all;
    auth_basic "Accès Restreint";
    auth_basic_user_file /var/www/chemin/du/fichier/.htpasswd;
}

    location ~ \.php$ {
         include snippets/fastcgi-php.conf;
         fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         include fastcgi_params;
    }

}

Exemple pageweb :

backdoor_pour_debloquer_ip_banni_par_ipset.txt · Dernière modification : de 127.0.0.1