Projet

Général

Profil

Privatebin » Historique » Version 18

sacha, 11/10/2021 20:20

1 1 sacha
# Privatebin
2
3
4 14 sacha
A la mode du moment (janvier 2021) on a des liens de contenus pédophiles postés sur le Privatebin/Pastebin/Paste, j'ai fait un petit script pour gérer le problème.
5 13 sacha
6 14 sacha
---
7 13 sacha
8 14 sacha
màj 20211011
9 1 sacha
10 14 sacha
On avait fait un patch pour pouvoir log les posts
11
12 13 sacha
~~~
13
diff --git a/lib/Controller.php b/lib/Controller.php
14
index 2df522a..e8b688a 100644
15
--- a/lib/Controller.php
16
+++ b/lib/Controller.php
17
@@ -262,6 +262,7 @@ class Controller
18
             } catch (Exception $e) {
19
                 return $this->_return_message(1, $e->getMessage());
20
             }
21 18 sacha
+            syslog(LOG_INFO, "[newPaste] {$_SERVER['REMOTE_ADDR']} {$paste->getId()}");
22 13 sacha
             $this->_return_message(0, $paste->getId(), array('deletetoken' => $paste->getDeleteToken()));
23
         }
24
     }
25
26 1 sacha
~~~
27 15 sacha
C'est dans /var/log/messages sous la forme:
28 13 sacha
29 17 sacha
    $Date gaia php: [newPaste] $IP $ASH
30 14 sacha
---
31 1 sacha
32
Pour retirer un contenu je vous propose d'utiliser le script sur le serveur qui héberge le Privatebin: gaia:/root/pedokill.sh
33
34
Les url de privatebin ressemblent à: https://pastebin.aquilenet.fr/?ASH#PASSWORD
35 4 sacha
exemple: https://pastebin.aquilenet.fr/?abe546d271f749b1#E8Zu84zJUPjFLmzgC3Hg5iJL38WDRfGcAJLxW6XC6DG6
36 14 sacha
37
38
39 1 sacha
40 2 sacha
Pour utiliser le script il suffit de l’exécuter avec en paramètre le ASH#PASSWORD.
41
Exemple: /root/pedokill abe546d271f749b1#E8Zu84zJUPjFLmzgC3Hg5iJL38WDRfGcAJLxW6XC6DG6
42 1 sacha
43
N'hésitez pas à me (Sacha) tenir au jus des améliorations ;)
44 2 sacha
45
Une idée est de dégager la première ligne de log qui est celle de l'émetteur du contenu.
46
47
J'ai identifiée un motif identique qui est le referer 4ox.fun (je ne vous conseille pas de visiter le site) et ajouté dans l'apache du privatebin (en espérant que ça bloquera bien ce referer):
48
49
50
```
51 5 sacha
        # Block pedosite
52
        RewriteEngine on
53 11 pierre.bousquie
        # Selection par referer (header HTTP) ici 4ox.fun, on peut en rajouter d’autres avec un | ie 4ox.fun|unautrerefererabloque.xyz|.*nowhere
54 5 sacha
        RewriteCond %{HTTP_REFERER} 4ox.fun|.*nowhere [NC]
55 11 pierre.bousquie
        # Apache répondra 405 Forbidden --> [F] sans réécrire le path  
56 5 sacha
        RewriteRule .* - [F]
57
58 2 sacha
```
59
60
61
J'ai fait le ménage en utilisant ce referer:
62
63
```
64 4 sacha
for i in $(zgrep 4ox.fun /var/log/apache2/pastebin.aqln.access.log* |awk '{print $7}'|sort|uniq); do /root/pedokill.sh $i;done
65 2 sacha
```
66 8 sacha
(c'est bugé il y a des réponses qui n'ont pas le chemin mais du coup le pad ne sera pas effacé puisqu'il n'existe pas, le script vérifie que le chemin existe)
67 2 sacha
68 8 sacha
et vérifie s'il y en a de nouveaux:
69
```
70 9 sacha
tail -F /var/log/apache2/pastebin.aqln.access.log |grep 4ox.fun |awk '{if ($9 =="200") print $7} '
71 8 sacha
```
72 2 sacha
73
74
## /root/pedokill.sh
75
76
77
```
78
#!/bin/bash
79 7 sacha
80 6 sacha
# pedokill.sh
81 7 sacha
# ------------
82 6 sacha
# Sacha@Aquilenet 20210115
83
# Archive et supression d'un lien Privatebin
84 2 sacha
85
privatebinpath="/srv/www/aquilenet.fr/PrivateBin/data"
86
87
if [ -z "$1" ];  then
88
        echo "Entrer le hash après \"https://pastebin.aquilenet.fr/?\" "
89
exit 1
90
fi
91
92
ash=$(echo $1|cut -d# -f1)
93
pass=$(echo $1|cut -d# -f2)
94
pagepath="$privatebinpath/${ash:0:2}/${ash:2:2}/$ash.php"
95
96 4 sacha
if [ -f $pagepath ]; then
97 2 sacha
        echo "Archive du lien et logs d'accès"
98
        archivepath="$privatebinpath/archive/$ash"
99
        mkdir -p $archivepath/{logs,privatebin_file}
100
        cp $pagepath $archivepath/privatebin_file
101
        echo $pass > $archivepath/privatebin_file/pass
102
        zgrep $ash /var/log/apache2/pastebin.aqln.access.log* > $archivepath/logs/$ash.log
103
        cd $archivepath/logs/ && tar czvf $(date +"%Y%m%d-%H%M")_$ash.tar.gz $archivepath/logs/$ash.log
104 1 sacha
        rm -f $archivepath/logs/$ash.log
105
106 2 sacha
        echo "Efface le lien PasteBin: \"https://pastebin.aquilenet.fr/?$ash\""
107 6 sacha
        rm -f $pagepath && rdmdir $privatebinpath/${ash:0:2}/${ash:2:2}
108
else
109
        echo "Mauvais lien !"
110 4 sacha
fi
111 2 sacha
```
112 12 sacha
113
## Bonux: surveiller les référents
114
115
 On peut surveiller de temps en temps le top des "referer"
116
117
    awk '{print $11}' /var/log/apache2/pastebin.aqln.access.log|sort |uniq -c|sort -n