Apacheログをコマンドベースで詳細確認してみる(Debian)

今年に入ってからのApacheのログを調査してみる。

今回はシェルではなく、コマンドラインベースで色々やってみようかと思う。
今回はアクセス制御対象リストを作成するまでにしておいて、後日アクセス制御を行おうと思う。



今回やること

  • 「HTTP 404」ファイル未検出を探す
  • 「HTTP 404」ファイル未検出の件数を確認
  • ログに「ZmEu」が含まれる物を探す ※1「ZmEu」はこんなことをする
  • エージェント「ZmEu」のIPアドレスを抜き出す
  • エージェント「ZmEu」のIPをアクセス拒否リストに追加する
  • アクセス拒否したいIPがどの国に当てられているかを確認
  • 「ZmEu」以外の怪しいヤツを探す
  • 「ZmEu」がどんなことをしているのか見てみる
  • 作業ファイルを削除する

※  > は全角になっているので注意

 

ログを収集

zcat /var/log/apache2/access.log.*.gz > /var/log/apache2/access_all.log
cat /var/log/apache2/access.log >> /var/log/apache2/access_all.log

まずは、今年に入ってからの「HTTP 404」ファイル未検出を探す

grep 'HTTP/1.1" 404' /var/log/apache2/access_all.log|grep 'Jan/2012'|sort/home/hoge/apache404log.txt

件数を確認

wc -l /home/hoge/apache404log.txt

アクセス拒否したいエージェント「ZmEu」を探す

grep 'ZmEu' /home/hoge/apache404log.txt|wc -l

ログから「ZmEu」でアクセスしてきたヤツのIPアドレスを抜き出す

grep 'ZmEu' /home/hoge/apache404log.txt|awk '{print $1}'|sort|uniq

結果:
一応、ここではIPアドレスは非公開とします
XXX.XXX.XXX.26
XXX.XX.XXX.179
XXX.XX.XXX.141
XXX.XX.XX.4
XXX.XX.XXX.87
XXX.XX.XX.41
XXX.XXX.XX.34
XX.XXX.XX.182
XX.XXX.XXX.144

アクセス拒否リストに追加する

grep 'ZmEu' /home/hoge/apache404log.txt|awk '{print $1}'|sort|uniq/home/hoge/denyIPNEW$$
cat /home/hoge/denyIP>>/home/hoge/denyIPNEW$$
cat /home/hoge/denyIPNEW$$|sort|uniq/home/hoge/denyIP
rm /home/hoge/denyIPNEW$$

どの国に当てられているIPアドレスかを確認

grep 'ZmEu' /home/hoge/apache404log.txt|awk '{print $1}'|sort|uniq|xargs -I{} whois {}|grep -i country|sed 's/ //g'|sort|uniq

結果:
Country:US —アメリカ(United States of America)
country:AE —アラブ首長国連邦 (United Arab Emirates)
country:CN —中国(China)
country:TH —タイランド(Thailand)
network:Organization-Country:US
organization:Country-Code:US

 

「ZmEu」以外の怪しいヤツを探す(※注意:grepの引数は個人的な判断でやってます)

egrep -v 'ZmEu|fancy_shadow|style.css|Mediapartners|fancybox|twitter|google.com|flashfreemind|www.bing.com|/img/icon' /home/hoge/apache404log.txt

※1「ZmEu」がどんなことをしているのか見てみる

grep 'ZmEu' /home/hoge/apache404log.txt|awk 'BEGIN{FS="/"}{printf("%s/%s/%s\n",$4,$5,$6)}'|sort|uniq

こんなことをする
3rdparty/phpMyAdmin/scripts
MyAdmin/scripts/setup.php HTTP
MySQLAdmin/scripts/setup.php HTTP
PHPMYADMIN/scripts/setup.php HTTP
PMA/scripts/setup.php HTTP
PMA2005/scripts/setup.php HTTP
SQL/scripts/setup.php HTTP
_admin/scripts/setup.php HTTP
_phpmyadmin/scripts/setup.php HTTP
admin/mysql/scripts
admin/phpmyadmin/scripts
admin/pma/scripts
admin/scripts/setup.php HTTP
admm/scripts/setup.php HTTP
admn/scripts/setup.php HTTP
bbs/data/scripts
bkup/phpMyAdmin/scripts
bkup/phpmyadmin/scripts
cpadmin/scripts/setup.php HTTP
cpadmindb/scripts/setup.php HTTP
cpanelmysql/scripts/setup.php HTTP
cpanelphpmyadmin/scripts/setup.php HTTP
cpanelsql/scripts/setup.php HTTP
cpdbadmin/scripts/setup.php HTTP
cpphpmyadmin/scripts/setup.php HTTP
databaseadmin/scripts/setup.php HTTP
dbadmin/scripts/setup.php HTTP
myadmin/scripts/setup.php HTTP
mysql-admin/scripts/setup.php HTTP
mysqladminconfig/scripts/setup.php HTTP
p/m/a
pHpMy/scripts/setup.php HTTP
pHpMyAdMiN/scripts/setup.php HTTP
pMA/scripts/setup.php HTTP
php-my-admin/scripts/setup.php HTTP
php-myadmin/scripts/setup.php HTTP
phpMyA/scripts/setup.php HTTP
phpMyAdmi/scripts/setup.php HTTP
phpMyAdmin/scripts/setup.php HTTP
phpm/scripts/setup.php HTTP
phpmanager/scripts/setup.php HTTP
phpmy-admin/scripts/setup.php HTTP
phpmy/scripts/setup.php HTTP
phpmya/scripts/setup.php HTTP
phpmyad-sys/scripts/setup.php HTTP
phpmyad/scripts/setup.php HTTP
phpmyadmin/scripts/setup.php HTTP
pma/scripts/setup.php HTTP
pma2005/scripts/setup.php HTTP
roundcube/scripts/setup.php HTTP
scripts/setup.php HTTP/1.1″ 404 11538 “-” “ZmEu”
sl2/data/scripts
sql/scripts/setup.php HTTP
sqladmin/scripts/setup.php HTTP
sqlmanager/scripts/setup.php HTTP
sqlweb/scripts/setup.php HTTP
typo3/phpmyadmin/scripts
vhcs2/tools/pma
w00tw00t.at.blackhats.romanian.anti-sec:) HTTP/1.1″ 404 11554 “-” “ZmEu”/
w00tw00t.at.blackhats.romanian.anti-sec:) HTTP/1.1” 404 11568 “-” “ZmEu”/
w00tw00t.at.blackhats.romanian.anti-sec:) HTTP/1.1” 404 11569 “-” “ZmEu”/
w00tw00t.at.blackhats.romanian.anti-sec:) HTTP/1.1” 404 11615 “-” “ZmEu”/
w00tw00t.at.blackhats.romanian.anti-sec:) HTTP/1.1” 404 11617 “-” “ZmEu”/
w00tw00t.at.blackhats.romanian.anti-sec:) HTTP/1.1” 404 11618 “-” “ZmEu”/
w00tw00t.at.blackhats.romanian.anti-sec:) HTTP/1.1” 404 11627 “-” “ZmEu”/
w00tw00t.at.blackhats.romanian.anti-sec:) HTTP/1.1” 404 11628 “-” “ZmEu”/
w00tw00t.at.blackhats.romanian.anti-sec:) HTTP/1.1” 404 555 “-” “ZmEu”/
w00tw00t.at.blackhats.romanian.anti-sec:) HTTP/1.1” 404 9466 “-” “ZmEu”/
w00tw00t.at.blackhats.romanian.anti-sec:) HTTP/1.1” 404 9467 “-” “ZmEu”/
web/phpMyAdmin/scripts
web/phpmyadmin/scripts
webadmin/scripts/setup.php HTTP
webdb/scripts/setup.php HTTP
websql/scripts/setup.php HTTP
wp-content/plugins/wp-phpmyadmin
wp-phpmyadmin/phpmyadmin/scripts
wp-phpmyadmin/scripts/setup.php HTTP

調査が終了したので作業ファイルを削除する

rm /home/hoge/apache404log.txt
 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です