UJP - とにかくたくさん攻撃を受けるので反撃したいが ZIP爆弾

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

  • カテゴリ セキュリティ の最新配信
  • RSS
  • RDF
  • ATOM

ブログ - とにかくたくさん攻撃を受けるので反撃したいが ZIP爆弾

とにかくたくさん攻撃を受けるので反撃したいが ZIP爆弾

カテゴリ : 
セキュリティ » ツール
ブロガー : 
ujpblog 2024/9/20 10:50
ウェブサイトに侵入してくる相手にZIP爆弾を送りつけて撃退する方法
https://gigazine.net/news/20240120-how-to-defend-your-website-with-zip-bombs/

引用:
セキュリティの不十分なサーバーを見つけるためにウェブサイトには日々多数の不審なアクセスが行われています。そうしたアクセスをしてくる相手に対して解凍すると容量が膨れ上がる「ZIP爆弾」を送りつけて撃退する方法がブログにまとめられています。

 ファイルは簡単に作成できる.
$ dd if=/dev/zero bs=1M count=10240|gzip > 10G.gzip
10240+0 records in
10240+0 records out
10737418240 bytes (11 GB, 10 GiB) copied, 52.7252 s, 204 MB/s
$

 設置する場所を検討.まずはWordPress関係かな.

$ grep wp- access.log*|awk '{print $7}'|sort|uniq -c|sort -r|more🆑
 652 /wp-login.php🈁
  55 /wp-content/uploads/
  55 /modules/wp-login.php
  52 /wp-head.php
  49 /wp-includes/
  49 /wp-content/
  48 /wp-admin/
  45 /wp-content/plugins/
  44 /wp-content/themes/
  42 /wp-admin/network/cloud.php
  39 /wp-admin/user/cloud.php
  39 /wp-admin/images/cloud.php
  38 /wp-admin/css/colors/coffee/cloud.php
  38 /wp-admin/css/colors/blue/cloud.php
  37 /wp-admin/cloud.php
  36 /wp-content/themes/seotheme/db.php?u
  36 /wp-admin/js/widgets/cloud.php
  36 /wp-admin/includes/cloud.php
  35 /wp-includes/ID3/
  35 /wp-admin/css/colors/cloud.php
  32 /wp-includes/rest-api/
  32 /wp-includes/Text/
  32 /wp-includes/SimplePie/
 圧倒的にwp-login.phpが多い.ブルートフォースの試行でしょう.

 そして別の静的サイトではこのような順序.
sh-3.2# grep .php ipaccess.log.1* |awk '{print $7}'|sort|uniq -c|sort -r|head -n 20
 743 /xmlrpc.php?rsd
 701 /modules/d3blog/index.php?cid=99
 374 /wp-login.php
 346 /info.php
 339 /systembc/password.php
 303 /1.php
 290 /?XDEBUG_SESSION_START=phpstorm
 282 /upl.php
 268 /password.php
 211 /vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
 138 /_profiler/phpinfo
 135 /admin.php
 114 /dropdown.php
 103 /repeater.php
 102 /alfanew.php7
 102 /alfanew.php
 101 /wp-includes/ID3/about.php
 101 /phpinfo.php
 100 /.well-known/pki-validation/about.php
  98 /wp-content/themes/about.php
sh-3.2#
 そして実装してみる.
 まずは,小さいテストファイルを作成.
$ dd if=/dev/zero bs=1M count=1|gzip > test.gzip
1+0 records in
1+0 records out
1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.004967 s, 211 MB/s
$
 作成されたファイルのハッシュ値をとる.手段はなんでも良いが,ここではmacOSでMD5をとる.
$ md5sum test.gzip🆑
1b72b43217dd60d5789002988dd7d938  test.gzip
$
 おとりのログインPHPファイルを作成.
<?php
//prepare the client to recieve GZIP data. This will not be suspicious
//since most web servers use GZIP by default
header("Content-Encoding: gzip");
//header("Content-Length: ".filesize('10G.gzip'));
header("Content-Length: ".filesize('test.gzip'));
//Turn off output buffering
if (ob_get_level()) ob_end_clean();
//send the gzipped file to the client
//readfile('10G.gzip');
readfile('test.gzip');
 サーバ(ここでは192.168.1.1)に設置して,curlコマンドでアクセス.

$ curl http://192.168.1.1/wp-login.php🆑
Warning: Binary output can mess up your terminal. Use "--output -" to tell
Warning: curl to output it to your terminal anyway, or consider "--output
Warning: <FILE>" to save to a file.
$
 ファイルがダウンロードされそうだが保存先を設定する必要がある.
 outputオプションでファイル名を指定し,再度実行.ダウンロードしたファイルのハッシュ値を取得して,元のファイルとの差分がないことを確認.
$ curl http://192.168.1.1/wp-login.php --output downloadfile.bin🆑
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1051  100  1051    0     0  96732      0 --:--:-- --:--:-- --:--:--  102k
$ md5sum downloadfile.bin🆑
1b72b43217dd60d5789002988dd7d938  downloadfile.bin
$
 これで正常動作ができたので,10GBファイルに置き換えれば完了.

 ちなみに,curlコマンドで10G.gzipをダウンロードしても自動伸張しないので被害は無い.ヘッドレスブラウザなどを使って自動ログインを試みている場合に意味があるのだろうと考えられる.

トラックバック


広告スペース
Google