Wordfence, mon analyse à partir des logs d’Apache des attaques par injection SQL

J’ai donc les logs d’apache du 14/03/2008 à aujourd’hui et j’ai installé Wordfence le 7/12/2016. Je veux voir si les attaques par injection SQL en mode GET sont nouvelles ou pas. Et je veux voir si cela correspond à la date d’installation de Wordfence.

Quelques commandes de base pour rappel :

  • Décompression de tous les fichiers :
    • gunzip access.log.*.gz
  • On compte le nombre de fichier :
    • ls -l LogsWeb/access.log.* | wc -l
      3149
  • On regarde l’espace disque :
    • du -sh LogsWeb
      6,9G LogsWeb
  • On compte le nombre de ligne :
    • wc -l LogsWeb/access.log.* |  awk ‘{total += $1} END {print « Total  » total}’
      Total 53549284
  • On recherche le mot « Union » sens faire attention à la casse.Attention on ne regarde que les requêtes de type GET et non celle de type POST.
    •  time grep -w « UNION » LogsWeb/* > union.txt
      real 3m21.170s
      user 0m44.107s
      sys 0m5.489s
    • wc -l union.txt 
      159 union.txt
    • time grep -i « UNION » LogsWeb/* > union.txt
      real 6m46.629s
      user 3m27.873s
      sys 0m5.425s
    • wc -l union.txt
      66644 union.txt
    • grep -i « select » union.txt > select.txt
    • wc -l select.txt
      16008 select.txt

J’ai donc fait une révision de « du », « awk », « ls », « gunzip », « grep » (avec ‘-w’ et sans  casse ‘-i’) , « time » 😉 .
J’ai donc eu 16008 tentatives d’injections par injection avec la méthode GET. Maintenant on va chercher les IPs afin de pouvoir les filtrer.

cat select.txt | sed 's/:/ /g' | awk '{print $2}' | sort -n | uniq -c | sort -n
   1 113.252.230.71
   1 148.251.135.107
   1 148.251.138.92
   1 178.137.164.233
   1 178.159.253.100
   1 178.162.198.109
   1 178.211.187.178
   1 178.63.42.237
   1 178.75.64.78
   1 185.84.108.230
   1 187.131.44.199
   1 188.143.232.29
   1 194.28.88.54
   1 194.63.140.48
   1 195.248.234.190
   1 195.54.163.119
   1 2.9.190.125
   1 212.224.118.66
   1 213.135.150.145
   1 213.183.62.189
   1 31.41.255.10
   1 37.140.192.13
   1 37.140.192.63
   1 46.118.159.220
   1 46.235.82.178
   1 5.206.77.93
   1 5.206.82.16
   1 5.206.98.179
   1 5.254.97.75
   1 5.45.124.66
   1 5.45.65.187
   1 5.61.37.126
   1 5.61.39.55
   1 5.9.44.211
   1 50.62.176.175
   1 62.109.6.103
   1 62.113.208.198
   1 62.39.79.146
   1 69.195.124.168
   1 77.120.125.35
   1 77.221.130.139
   1 77.221.130.145
   1 77.222.56.219
   1 78.132.147.199
   1 78.46.48.131
   1 79.141.166.13
   1 81.177.139.161
   1 81.177.6.121
   1 81.177.6.72
   1 81.7.10.54
   1 82.197.124.81
   1 86.110.75.93
   1 87.242.64.203
   1 90.189.192.100
   1 91.201.215.149
   1 91.218.228.154
   1 91.219.194.22
   1 91.219.194.31
   1 91.230.211.225
   1 92.63.88.42
   1 93.125.99.11
   1 93.190.40.24
   1 94.153.139.45
   1 94.199.180.70
   1 94.250.254.43
   1 95.181.178.59
   1 95.71.17.208
   2 107.150.33.138
   2 193.105.114.5
   2 217.37.66.51
   2 46.165.208.108
   2 46.249.52.231
   2 5.206.71.162
   2 5.206.89.154
   2 62.232.8.82
   2 88.198.219.50
   3 108.168.219.174
   3 109.200.0.202
   3 13.92.118.60
   3 177.185.194.138
   3 177.185.194.47
   3 177.98.11.154
   3 195.234.228.90
   3 203.171.33.38
   3 209.15.196.170
   3 216.185.43.135
   3 23.91.70.121
   3 5.178.68.242
   3 5.206.71.235
   3 5.22.159.130
   3 64.87.23.55
   3 66.76.174.2
   3 67.216.79.204
   3 82.208.76.150
   3 87.106.179.116
   3 89.38.209.57
   3 94.125.54.76
   4 176.9.91.186
   4 177.12.174.145
   4 178.63.18.196
   4 188.165.246.177
   4 193.200.80.26
   4 194.6.233.29
   4 197.242.159.42
   4 198.143.164.221
   4 216.249.107.200
   4 23.91.70.77
   4 24.222.4.86
   4 31.178.117.94
   4 31.186.8.61
   4 37.205.0.65
   4 41.185.31.40
   4 62.149.132.252
   4 64.251.25.176
   4 73.205.105.33
   4 74.63.228.226
   4 81.88.48.113
   4 82.165.24.123
   4 93.63.188.181
   5 104.209.39.137
   5 173.201.216.68
   5 177.185.194.92
   5 188.143.235.81
   5 204.8.156.142
   5 209.151.168.83
   5 213.246.49.97
   5 216.139.249.105
   5 216.201.148.210
   5 23.91.70.95
   5 23.96.97.203
   5 37.9.53.67
   5 72.34.232.5
   5 83.5.229.144
   5 83.64.189.179
   5 94.73.145.50
   5 98.19.222.133
   6 103.21.58.191
   6 173.0.139.89
   6 177.185.192.77
   6 178.238.229.54
   6 184.168.192.31
   6 188.143.234.246
   6 188.143.235.121
   6 195.154.199.237
   6 195.74.38.14
   6 202.124.241.203
   6 204.93.196.218
   6 216.119.112.144
   6 216.46.178.254
   6 217.37.125.121
   6 50.63.197.7
   6 62.210.152.84
   6 62.210.152.90
   6 66.29.216.40
   6 87.242.112.35
   7 128.117.43.92
   7 148.247.67.22
   7 23.91.70.63
   7 37.59.255.19
   7 91.200.12.65
   8 177.185.194.45
   8 213.247.63.11
   8 37.205.0.60
   8 46.4.154.173
   8 66.96.128.60
   8 96.47.2.10
   9 167.114.42.94
   9 72.52.91.19
   9 91.224.160.60
  10 103.3.173.97
  10 95.211.70.193
  11 158.58.168.211
  11 173.0.129.149
  11 180.248.17.248
  12 195.140.210.83
  12 208.52.175.27
  13 195.154.199.152
  13 84.245.33.104
  14 128.6.224.107
  14 188.82.12.253
  14 213.152.176.93
  14 94.228.220.68
  15 173.254.216.67
  16 68.48.156.101
  17 213.142.132.18
  17 64.31.44.6
  19 64.113.32.29
  20 128.52.128.105
  20 189.38.80.71
  24 173.242.121.199
  30 194.6.233.33
  32 41.108.52.93
  33 129.123.7.6
  34 158.85.253.245
  36 213.174.1.62
  37 93.157.174.74
  39 128.2.142.104
  53 94.180.47.215
  55 46.147.172.223
  57 92.53.117.140
  61 74.84.136.105
  63 200.50.71.125
  63 81.169.144.135
  63 93.93.71.190
  64 185.6.18.76
  64 83.143.133.13
  65 18.187.1.68
  65 94.25.126.74
  66 173.254.28.53
  66 185.26.122.13
  67 173.214.189.206
  67 185.33.60.52
  67 92.53.96.93
  68 185.7.214.138
  68 213.5.68.26
  70 5.101.156.98
  71 192.185.2.204
  71 195.128.174.121
  72 195.3.105.73
  72 213.128.67.21
  72 82.200.207.18
  73 89.161.234.187
  75 188.165.211.180
  76 92.61.157.140
  85 192.185.176.153
  87 49.88.12.82
  91 213.251.182.106
  95 196.4.225.19
  97 5.101.157.64
  97 77.109.141.138
 100 213.251.182.10
 100 91.222.8.126
 103 193.110.73.2
 109 62.162.182.156
 112 217.67.30.32
 115 185.5.53.22 (Les lituaniens vu par Wordfence, pas très bon au classement ;) )
 116 192.185.2.191
 117 207.210.200.106
 117 92.53.123.104
 118 108.167.189.22
 120 221.186.73.196
 124 82.146.38.108
 129 81.177.135.201
 130 104.131.115.173
 131 188.128.142.131
 131 77.92.102.133
 132 195.46.43.238
 132 212.193.234.176
 132 23.229.4.214
 133 185.26.122.55
 140 178.208.83.17
 141 77.93.218.17
 143 162.243.49.74
 143 78.110.50.115
 146 104.193.143.55
 146 198.57.247.177
 147 69.89.22.120
 167 62.141.41.180
 167 80.66.68.49
 167 85.17.60.183
 168 72.29.73.71
 170 194.228.3.42
 170 213.228.185.13
 170 37.8.121.245
 170 62.189.126.85
 170 75.125.220.170  
 195 197.15.248.136 (ATI - Agence Tunisienne Internet -  Tunis)
 205 66.117.3.211 (UNITED STATES)
 207 216.239.0.120 (UNITED STATES)
 207 62.193.199.184 (AMEN - Agence des Médias Numériques - 12/14, Rond-point des champs elysees 75008 Paris, France ) Cocorico ... on est présent ;) ... attaque du type "jatest7.php outifle".
 209 210.58.101.147 (Taipei City, Taiwan, R.O.C.)
 210 211.115.125.46 (135 Jungdae-ro Songpa-gu Seoul)
 220 31.43.19.174 (Ukraine)
 328 69.61.23.170 (UNITED STATES)
 361 195.70.35.54 (Budapest, Hongrie)
 404 211.110.18.248 (135 Jungdae-ro Songpa-gu Seoul)
 404 69.16.206.5 (UNITED STATES) 
 411 64.59.86.2 (UNITED STATES) 
 414 120.118.219.8 (12F, No 106, Sec. 2, Heping E. Rd., Taipei)
 648 178.137.168.166 (Kyivstar GSM, Kiev, Ukraine)
 843 104.207.146.56 (UNITED STATES) 
 864 108.61.197.166 (UNITED KINGDOM)
 1513 104.207.150.44 (UNITED STATES) 

Le gagnant est le 104.207.150.44 (UNITED STATES) ! Bravo pour ses 1513 tentatives d’injection. Ah le pays des libertés …. bon palmarès.

Je retrouve l’infection de Wordfence des Lituaniens :

LogsWeb/access.log.20161214:185.5.53.22 - - [14/Dec/2016:20:22:03 +0100] "GET /?lang=en99999%22%20union%20select%20unhex(hex(version()))%20--%20%22x%22=%22x HTTP/1.1" 403 226 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; dial; SV1; .NET CLR 1.0.3705)" "www.cyber-neurones.org"
LogsWeb/access.log.20161116:204.93.196.218 - - [16/Nov/2016:05:58:54 +0100] "GET /2015/02/oopad-non-merci/?lang=es';declare%20@b%20cursor;declare%20@s%20varchar(8000);declare%20@w%20varchar(99);set%20@b=cursor%20for%20select%20DB_NAME()%20union%20select%20name%20from%20sys.databases%20where%20(has_dbaccess(name)!=0)%20and%20name%20not%20in%20('master','tempdb','model','msdb',DB_NAME());open%20@b;fetch%20next%20from%20@b%20into%20@w;while%20@@FETCH_STATUS=0%20begin%20set%20@s='begin%20try%20use%20%5B'%2B@w%2B'%5D;declare%20@c%20cursor;declare%20@d%20varchar(4000);set%20@c=cursor%20for%20select%20''update%20%5B''%2BTABLE_NAME%2B''%5D%20set%20%5B''%2BCOLUMN_NAME%2B''%5D=%5B''%2BCOLUMN_NAME%2B''%5D%2Bcase%20ABS(CHECKSUM(NewId()))%259%20when%200%20then%20''''''%2Bchar(60)%2B''div%20style=%22display:none%22''%2Bchar(62)%2B''low%20dose%20naltrexone%20buy%20uk%20''%2Bchar(60)%2B''a%20href=%22http:''%2Bchar(47)%2Bchar(47)%2B''naltrexonealcoholismmedication.com''%2Bchar(47)%2B''%22''%2Bchar(62)%2B''''''%

Je laisse quelques exemples en novembre, de tentative d’injection. Maintenant un peu de statistique pour voir le nombre d’attaque en fonction de l’année :

cat select.txt | awk '{print $4}' | sed 's/\// /g' | sed 's/:/ /g' | awk '{print $3}' | sort -n | uniq -c
2733 2008
1595 2009
  14 2010
  23 2011
 686 2012
 660 2013
2593 2014
3341 2015
4363 2016

Record pour l’année 2016 avec 4363 tentatives d’injection !

Et sur l’année 2016 :

cat select.txt | awk '{print $4}' | grep "2016" | sed 's/\// /g' | sed 's/:/ /g' | awk '{print $2 " " $3}' | sort -n | uniq -c
 459 Apr 2016
  94 Aug 2016
 224 Dec 2016
1685 Feb 2016
  13 Jan 2016
 513 Jul 2016
 158 Jun 2016
 111 Mar 2016
  97 May 2016
  16 Nov 2016
 492 Oct 2016
 501 Sep 2016

Je dirai que le mois de Novembre est léger par rapport à Févier, mais effectivement en Décembre on recommence.

Et je fini pas la liste des variables les plus attaqués par l’injection :

cat union.txt | awk -F "?" '{print $2}' | awk -F "=" '{print $1}' | sort -n | uniq -c | sort -n
...
24 fbconnect_action
53 edit
56 sa
57 feed
60 cid
71 id_ville
103 13-zoo&lang
114 format
117 mt
162 imgurl
279 page
284 option
295 replytocom
332 post
337 main_page
343 url
682 fb_action_ids
949 shared
983 page_id
1257 action
5949 share
8737 lang
8927 pg
13307 ver

L’idéal c’est de mettre les noms des variables en espéranto 😉 On retrouve des célèbre faille sur WordPress :

https://lwthacking.blogspot.com/2012/09/hacking-wordpress-websites-with-sql.htmlfbconnect_action

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Time limit is exhausted. Please reload CAPTCHA.