Projet

Général

Profil

Privatebin » Historique » Version 15

sacha, 11/10/2021 19:48

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
+            syslog(LOG_INFO, "[newPaste] $_SERVER['REMOTE_ADDR'] $paste->getId()");
22 15 sacha
             syslog(LOG_INFO, "[newPaste] {$_SERVER['REMOTE_ADDR']} {$paste->getId()}");
23 13 sacha
             $this->_return_message(0, $paste->getId(), array('deletetoken' => $paste->getDeleteToken()));
24
         }
25
     }
26
27 1 sacha
~~~
28 15 sacha
C'est dans /var/log/messages sous la forme:
29 13 sacha
30 15 sacha
$Date gaia php: [newPaste] $IP $ASH
31 14 sacha
---
32 1 sacha
33
Pour retirer un contenu je vous propose d'utiliser le script sur le serveur qui héberge le Privatebin: gaia:/root/pedokill.sh
34
35
Les url de privatebin ressemblent à: https://pastebin.aquilenet.fr/?ASH#PASSWORD
36 4 sacha
exemple: https://pastebin.aquilenet.fr/?abe546d271f749b1#E8Zu84zJUPjFLmzgC3Hg5iJL38WDRfGcAJLxW6XC6DG6
37 14 sacha
38
39
40 1 sacha
41 2 sacha
Pour utiliser le script il suffit de l’exécuter avec en paramètre le ASH#PASSWORD.
42
Exemple: /root/pedokill abe546d271f749b1#E8Zu84zJUPjFLmzgC3Hg5iJL38WDRfGcAJLxW6XC6DG6
43 1 sacha
44
N'hésitez pas à me (Sacha) tenir au jus des améliorations ;)
45 2 sacha
46
Une idée est de dégager la première ligne de log qui est celle de l'émetteur du contenu.
47
48
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):
49
50
51
```
52 5 sacha
        # Block pedosite
53
        RewriteEngine on
54 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
55 5 sacha
        RewriteCond %{HTTP_REFERER} 4ox.fun|.*nowhere [NC]
56 11 pierre.bousquie
        # Apache répondra 405 Forbidden --> [F] sans réécrire le path  
57 5 sacha
        RewriteRule .* - [F]
58
59 2 sacha
```
60
61
62
J'ai fait le ménage en utilisant ce referer:
63
64
```
65 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
66 2 sacha
```
67 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)
68 2 sacha
69 8 sacha
et vérifie s'il y en a de nouveaux:
70
```
71 9 sacha
tail -F /var/log/apache2/pastebin.aqln.access.log |grep 4ox.fun |awk '{if ($9 =="200") print $7} '
72 8 sacha
```
73 2 sacha
74
75
## /root/pedokill.sh
76
77
78
```
79
#!/bin/bash
80 7 sacha
81 6 sacha
# pedokill.sh
82 7 sacha
# ------------
83 6 sacha
# Sacha@Aquilenet 20210115
84
# Archive et supression d'un lien Privatebin
85 2 sacha
86
privatebinpath="/srv/www/aquilenet.fr/PrivateBin/data"
87
88
if [ -z "$1" ];  then
89
        echo "Entrer le hash après \"https://pastebin.aquilenet.fr/?\" "
90
exit 1
91
fi
92
93
ash=$(echo $1|cut -d# -f1)
94
pass=$(echo $1|cut -d# -f2)
95
pagepath="$privatebinpath/${ash:0:2}/${ash:2:2}/$ash.php"
96
97 4 sacha
if [ -f $pagepath ]; then
98 2 sacha
        echo "Archive du lien et logs d'accès"
99
        archivepath="$privatebinpath/archive/$ash"
100
        mkdir -p $archivepath/{logs,privatebin_file}
101
        cp $pagepath $archivepath/privatebin_file
102
        echo $pass > $archivepath/privatebin_file/pass
103
        zgrep $ash /var/log/apache2/pastebin.aqln.access.log* > $archivepath/logs/$ash.log
104
        cd $archivepath/logs/ && tar czvf $(date +"%Y%m%d-%H%M")_$ash.tar.gz $archivepath/logs/$ash.log
105 1 sacha
        rm -f $archivepath/logs/$ash.log
106
107 2 sacha
        echo "Efface le lien PasteBin: \"https://pastebin.aquilenet.fr/?$ash\""
108 6 sacha
        rm -f $pagepath && rdmdir $privatebinpath/${ash:0:2}/${ash:2:2}
109
else
110
        echo "Mauvais lien !"
111 4 sacha
fi
112 2 sacha
```
113 12 sacha
114
## Bonux: surveiller les référents
115
116
 On peut surveiller de temps en temps le top des "referer"
117
118
    awk '{print $11}' /var/log/apache2/pastebin.aqln.access.log|sort |uniq -c|sort -n