CYBER

■ブラウザーハイジャック

 突然ブラウザに、「ウイルスが検出されました!」のページ・・・最近のブラウザは、ウイルス駆除機能がついてる?! ソフト屋さんは、ずいぶんと太っ腹になったなあ?・・・ん訳ないので表示される実行ボタンの類には触らず外側のブラウザを閉るボタン[×]をクリックするも反応なし、相手(手を加えた御方)はどーあっても画面内にでかく表示してある「ウイルスを削除します」のボタンをクリックさせたいらしい! ここまではいつものパターン、うざいのでタスクマネージャーから入って、ブラウザのプロセスを停止させる。

ウイルス削除します.jpg

これ以降ちらほら似たようなページを見受けるようになった。勿論ウイルス削除します的なお誘いのボタンは一切実行していない、しかし本当の問題はこの後に発生した。

ブラウザのHOME設定値が無視され、身に覚えのない検索サイトが強引に表示され続けるようになった。

Bハイジャック.jpg

●次のような回避作を行ったがことごとく無視される始末(IE11)

  1. HOMEの設定を再度実施
  2. Cookieなど閲覧の履歴を削除
  3. 個人設定を削除してリセットとPCの再起動
  4. *ノートンパワーイレイサー(NPE.exe)を実行

上記のうち、ノートンパワーイレイサー(NPE.exe)は、いくつかの不具合ファイル(hosts及びレジストリ)を発見し、自動修正を実行していた様子でした、しかしその後もIEを起動すると同じ検索サイトが表示されました。

●しかたないので、主に使っているブラウザIE11の動きについて注意深く調べてみた。(小生は、Windows10 pro 環境)すると・・・

IE11(Internet Explorer 11)本体Prgの置かれているホルダーへ移動し、iexploer.exe を直接起動してみた、PATHは小生のWin10では C:\Program Files\Internet Explorer\ となります。結果は、問題なく正常なHOME設定サイトが何事もないように何度やっても起動・表示します。

ところが・・・スタートメニューからIE11アイコンを起動すると、設定していない検索サイトが、何度やっても開きました。さらに直接EI11を起動した時と比べて、オープンするまでに若干時間がかかっているように感じました。これで解りました、スタートメニュー内に有るリンクファイル(いわゆるショートカット)に細工されたものが置かれているハズと予測しました。

早速、スタートメニューホルダー内(User用)をのぞいて見ました(あらかじめ隠しファイル及び拡張子の表示化を設定)やっぱり有りました、律儀にも正常なリンクファイルいやマイクロソフト風に言うとショートカットは、隠しファイル化してそのまま残してあります。

悪意のあるIE起動用ショートカットが指し示すPATHの先にあったのは、よくある話の起動加工用バッチファイルです。下記三個のバッチファイルが置いてありました。(小生が使っている三種類のブラウザー分と推察)

C:\Users\xxxxx\AppData\Roaming\Browsers\

exe.emorhc.bat,exe.rehcnual.bat,exe.erolpxei.bat

異常11_乗っ取りIE起動バッチの実態.png

バッチファイル内は、バイナリーファイルのようでテキストエデイターで開いても意味不明、他の悪意のある加工プログラムをcallしている可能性も有り不安が残りますが、小生の能力では今のところ解析手段が有りません。

しかし、上手くここまでやらかすもんです!どのようなアルゴで仕込むのか小生の老体CPUでは想像もつきません。・・・いずれにせよ仕込みの実行用起動は、関節的に小生の権限で小生が行ったと思われます。

昨今のPC能力は、昔のオフコン以上とか?、入れた覚えのないソフト名は数知れず?!・・・です。一応心当たりのあるソフトをアンインストールしてみました。(バッチファイルのタイムスタンプを参照)

取りあえず、バッチファイルを取っ払って(完全削除)本来のショートカットをスタートメーニューホルダーへ復活させ、正常に機能するようになりました。なおウイルススキャナーは、二社のものでスキャンしましたが、なにもなしの旨です。(今回のバッチファイルは完全にスルーしてましたけど・・・)2017/1/25現在

追記:ここに記載したような症状すべてが、先のバッチファイルが元で発生しているのではありません、他にも様々な方法が存在しているようです。

今後も観察を継続中・・・

なお、これを読まれて同じように実行され、如何なる不具合・損害が発生しても小生は一切責任を取りませんので、ご了承下さい。

以上 気まぐれでくのぼう

 

■解析ソフトAWStats(Perlで動く)をインストールしました

 最近アマチュア無線ばかりやっていたので、ここらで、忘れないようにPC-UNIXをいじくることにしました。

 一応ウェブサイトを立ち上げていますので、アクセス状況が気になります。そこで解析ソフトAWStats(Perlで動く)をインストールしました、その手順を備忘録として記録しておきます。

AWStats_20160424.jpg

 

主に参考にさせて頂いたのは「AWStatsのインストールとセットアップ」
http://www.na3.fiberbit.net/hobbit/html/bsd.html#AWS などです。

なおOSは、FreeBSD9.2Releaseで、Perl V5 の環境はすでに整っています。また以下に記載されたPATH及びファイル名は、一部架空名称を使用して表現しています。

1.ダウンロード AWStats6.6完全日本語版のページから(AWStats66_Jpn.tar.gz)

2.展開 /home/huq/src 内に格納(AWStats66_Jpn.tar.gz)→解凍
  Dir AWStats66_Jpn が生成されるので、その中身を運用 Dir へ Copy する。

#mkdir /usr/local/awstats (運用したいDirを作る)
#cd /home/huq/src/AWStats66_Jpn
#cp * /usr/local/awstats
#cp *.* /usr/local/awstats

3./usr/local/awstats/tools/に入ってconfigure.pl を実行する前に下記準備を行った。

①configure.plは、/usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf をコールするがあらかじめ用意されているのはawstats.model_jpとawstats.model_enの二つなので、このうち一つを選んで_xxが付かないawstats.model.confへcpしておきます。

#cp awstats.model_en awstats.model.conf (英語版とした)

_jpは、utf8で書いてあり、viで編集する際、文字化けして具合悪い(小生の環境)

②configureから生成される運用conf-File(awstats.www.jg1huq.0g0.jp.conf)を格納するDirを作る。

#mkdir /usr/local/etc/awstats

以上準備できたらawstats_configure.pl を実行する。

----------↓

#cd /usr/local/awstats/tools
# perl awstats_configure.pl

Config file path ('none' to skip web server setup):

> /usr/local/etc/apache22/httpd.conf

Do you want me to build a new AWStats config/profile

file (required if first install) [y/N] ? y

Your web site, virtual server or profile name:

> www.jg1huq.0g0.jp

Directory path to store config file(s) (Enter for default):

> /usr/local/etc/awstats (先ほど作ったDirを指定)

---------- ↑

4.出来上がった /usr/local/etc/awstats/awstats.www.jg1huq.0g0.jp.confの
  下記基本設定内容を確認(自身の使用環境と一致している)します。

LogFile="/var/log/httpd/access_log.utf8"

SiteDomain="www.jg1huq.0g0.jp"

Lang="jp"

DirData="/usr/local/etc/awstats/data"

5.データファイル格納Dirの作成と書き込み許可

#cd /usr/local/etc/awstats

#mkdir data

#chmod 775 data


6.perl 日本語文字コード処理モジュールを追加インストールします。
  http://www.bflets.dyndns.org/Tools/AWStatsJpn.html では
  Jcode.pm をインストールとあるため
  CPANモジュールを実行する、install Jcode として自動インストールできた。

#perl -MCPAN -e shell

#cpan> install Jcode

#cpan> q

7.初回動作確認するため、手動でlogを生成させる(運用時は cron で自動化する)
  実行するDirは、/usr/local/awstats/wwwroot/cgi-bin として

# perl utf8_decode.pl < /var/log/httpd-access.log > /var/log/httpd/access_log.utf8

すると /var/log/httpd の中に access_log.utf8 が出来た。

8.手動 表示データアップデート
  実行するDirは、/usr/local/awstats/wwwroot/cgi-bin として

# perl awstats.pl -update -config=www.jg1huq.0g0.jp

----------↓

Create/Update database for config "/usr/local/etc/awstats/awstats.www.jg1huq.0g0
.jp.conf" by AWStats version 6.6 (build 1.887)
From data in log file "/var/log/httpd/access_log.utf8"...
Phase 1 : First bypass old records, searching new record...
Searching new records from beginning of log file...
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...
Jumped lines in file: 0
Parsed lines in file: 901
Found 1 dropped records,
Found 4 corrupted records,
Found 0 old records,
Found 896 new qualified records.

----------↑ データが出来上がったようだ。

9.適当なブラウザからAWStatsをオープンしてみる
URL http://www.jg1huq.0g0.jp/awstats/awstats.pl

AWStats 特有のグラフ沢山の画面が表示されればとりあえずOK
この段階では、ホスト名(上位10)で、まだ国名が表示されない。

ここで、Apacheのhttpd.conf のAliasがどのように自動追加されたか一応確認してみた。

#
# Directives to allow use of AWStats as a CGI
#
Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"
Alias /awstatscss "/usr/local/awstats/wwwroot/css/"
Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"
ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"

#
# This is to permit URL access to scripts/files in AWStats directory.
#
#<Directory "/usr/local/awstats/wwwroot">
# Options None
# AllowOverride None
# Order allow,deny
# Allow from all
#</Directory>

これでは、公開状態なので、自身のネットワークのみアクセスが可能となるよう変更を加えてみた・・・

IPアドレスによる閲覧制限をとりあえず入れる。

<Directory "/usr/local/awstats/wwwroot">
Order deny,allow
Deny from All
Allow from xxx.xxx.xxx.xxx(自身のIPアドレス)
</Directory>

10.AWStatsデータの自動アップデート化
自動化ファイルのひな形が、/usr/local/awstats/awstats.cron として準備してあるので
これを参考にしました、まずは、自身の環境に合わせて手動で動作テストします。

①オリジナルソースlogの加工(完全日本語化用)
httpd-access.log から utf_decode.pl を使って、access_log.utf8 を生成する
 ↓
# cd /usr/local/awstats/wwwroot/cgi-bin
# perl utf8_decode.pl < /var/log/httpd-access.log > /var/log/httpd/access_log.utf8

②出来たログを使って、表示データを生成
# perl awstats.pl -update -config=www.jg1huq.0g0.jp

この状態で開くためのURLは、末尾に awstats.plを記述し、perlを起動させる。

パフォーマンスが悪いらしいので(たぶんlogが大きいと)前もってhtmlファイルへ変換した
状態で保管記録させるため、以下を加える。

③htmlファイルの作成
# perl awstats.pl -output -config=www.jg1huq.0g0.jp -staticlings > awstats.html.utf8

htmlファイルへコマンド出力すると、左側フレーム部は生成されないようです。awstats.pl実行 (動的閲覧)では、フレーム利用(表示)が可能になるようです。なので小生は、②の状態で運用しています。

④手動で上手くいったら awstats.cron に反映(編集)登録する。
# cp awstats.cron awstats.cron_org 一応オリジナルを保管
# vi awstats.cron
#! /usr/bin/perl
system("/usr/local/awstats/wwwroot/cgi-bin/utf8_decode.pl < /var/log/httpd-acces
s.log > /var/log/httpd/access_log.utf8");

open(LOG,"+</var/log/httpd-access_log");
truncate(LOG,0);
close(LOG);

system("/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=www.jg1huq.0g0.jp
-update > /dev/null");

#system("/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=www.jg1huq.0g0.jp
-output > /usr/local/www/apache22/data/awstats.html");
#system("chgrp www /usr/local/www/apache22/data/awstats.html");
#system("chown webm /usr/local/www/apache22/data/awstats.html");
  ↑
htmlファイル生成部分は、運用ないのでコメントアウトしてます。

⑤crontab へ 登録します。
毎時59分に実行するよう、登録しました。

#crontab -e

SHELL=/bin/sh
MAILTO=kobayashi@jg1huq.0g0.jp
#
59 * * * * /usr/bin/perl /usr/local/awstats/awstats.cron

11.awstats.www.jg1huq.0g0.jp.conf の編集(修正)
   アクセス国名が、その他しかない!

   IPアドレスから国名を割り出し、国別統計にするオプションを機能させるため

   必要なソフトをインストール。
   (GeoIPとp5-Geo-IPの組込み)

・Portsからインストールする。

# cd /usr/ports/net/GeoIP
# make
# make install
# make clean
# cd ..
# cd p5-Geo-IP
# make
# make install
# make clean
# rehash

・GeoLite Countryのデータベース「GeoIP.dat」を準備する

http://flatray.com/geoip/ ここを参考に Downloadした。
データベースは更新されている旨です、たまに差し替えが必要かと思います。

# gunzip GeoIP.dat.gz
# cp GeoIP.dat /usr/local/etc/awstats/data

・awstats.www.jg1huq.0g0.jp.conf 上にあるGeoLite Countryのデータベース
 GeoIP.dat用の格納 path を環境に合わせて修正する。

#cd /usr/local/etc/awstats/
# vi awstats.www.jg1huq.0g0.jp.conf
# Plugin: GeoIP
# Perl modules required: Geo::IP or Geo::IP::PurePerl (from Maxmind)
# Country chart is built from an Internet IP-Country database.
# This plugin is useless for intranet only log files.
# Note: You must choose between using this plugin (need Perl Geo::IP module
# from Maxmind, database more up to date) or the GeoIPfree plugin (need
# Perl Geo::IPfree module, database less up to date).
# This plugin reduces AWStats speed of 8% !
#
#LoadPlugin="geoip GEOIP_STANDARD /pathto/GeoIP.dat"
LoadPlugin="geoip GEOIP_STANDARD /usr/local/etc/awstats/data/GeoIP.dat"


結果、国名と国旗アイコンが表示されるようになった。

以上 記録:2016/04/22 PM15:06

by 気まぐれでくのぼう

■年を追うごとに、不正アタックが増加

あまりに頻繁で、様々なグローバルIPアドレスが記録されることから、個人単位では有り得ないと思われます。(実際に記録された例、ほんの一部を下記に・・・なお念のためドメイン名やIPアドレスはふせています)

 

●SMTP auth認証を利用して接続を試みる例(適当なユーザIDをランダムに使用している)

Sep 6 00:42:30 xxxxx saslauthd[xxx]: do_auth : auth failure: [user=shop] [service=smtp] [realm=xxxxx] [mech=pam] [reason=PAM auth error]
Sep 6 02:15:54 xxxxx saslauthd[xxx]: do_auth : auth failure: [user=contact] [service=smtp] [realm=xxxxx] [mech=pam] [reason=PAM auth error]
Sep 6 03:49:40 xxxxx saslauthd[xxx]: do_auth : auth failure: [user=scan] [service=smtp] [realm=xxxxx] [mech=pam] [reason=PAM auth error]
Sep 6 05:26:11 xxxxx saslauthd[xxx]: do_auth : auth failure: [user=visitor] [service=smtp] [realm=xxxxx] [mech=pam] [reason=PAM auth error]
Sep 6 07:03:09 xxxxx saslauthd[xxx]: do_auth : auth failure: [user=temp] [service=smtp] [realm=xxxxx] [mech=pam] [reason=PAM auth error]
Sep 6 09:32:19 xxxxx saslauthd[xxx]: do_auth : auth failure: [user=dummy] [service=smtp] [realm=xxxxx] [mech=pam] [reason=PAM auth error]
Sep 6 17:04:53 xxxxx saslauthd[xxx]: do_auth : auth failure: [user=admin] [service=smtp] [realm=xxxxx] [mech=pam] [reason=PAM auth error]
Sep 6 18:47:57 xxxxx saslauthd[xxx]: do_auth : auth failure: [user=info] [service=smtp] [realm=xxxxx] [mech=pam] [reason=PAM auth error]
Sep 6 20:32:23 xxxxx saslauthd[xxx]: do_auth : auth failure: [user=test] [service=smtp] [realm=xxxxx] [mech=pam] [reason=PAM auth error]
Sep 6 22:19:11 xxxxx saslauthd[xxx]: do_auth : auth failure: [user=support] [service=smtp] [realm=xxxxx] [mech=pam] [reason=PAM auth error]

 

●Telnetによる接続を試みる例(様々なグローバルIPアドレスxxx.xxx.xxx.xxxで連続的に行われる、ほぼ毎日記録)

Sep 6 00:18:18 xxxxx inetd[xxx]: refused connection from xxx.xxx.xxx.xxx, service telnetd (tcp)
Sep 6 01:11:30 xxxxx inetd[xxx]: refused connection from xxx.xxx.xxx.xxx, service telnetd (tcp)
Sep 6 01:11:31 xxxxx inetd[xxx]: refused connection from xxx.xxx.xxx.xxx, service telnetd (tcp)
Sep 6 01:11:32 xxxxx inetd[xxx]: refused connection from xxx.xxx.xxx.xxx, service telnetd (tcp)
Sep 6 01:11:34 xxxxx inetd[xxx]: refused connection from xxx.xxx.xxx.xxx, service telnetd (tcp)
Sep 6 01:11:34 xxxxx inetd[xxx]: refused connection from xxx.xxx.xxx.xxx, service telnetd (tcp)
Sep 6 01:11:36 xxxxx inetd[xxx]: refused connection from xxx.xxx.xxx.xxx, service telnetd (tcp)
Sep 6 01:11:37 xxxxx inetd[xxx]: refused connection from xxx.xxx.xxx.xxx, service telnetd (tcp)
Sep 6 01:11:38 xxxxx inetd[xxx]: refused connection from xxx.xxx.xxx.xxx, service telnetd (tcp)
Sep 6 01:11:40 xxxxx inetd[xxx]: refused connection from xxx.xxx.xxx.xxx, service telnetd (tcp)
Sep 6 01:11:41 xxxxx inetd[xxx]: refused connection from xxx.xxx.xxx.xxx, service telnetd (tcp)
Sep 6 01:11:42 xxxxx inetd[xxx]: refused connection from xxx.xxx.xxx.xxx, service telnetd (tcp)

このような、パケットが無ければ、帯域がもっと有効につかえるのでは?・・・と思うのは小生だけでしょうか? このように記録(すべて失敗)されるセッションは分かりますが、セッションによって記録されない場合もあるようですので、正直不安になります。

ここで記録されたグローバルIPアドレスを探ると、例えばHTMLでbodyが空に見えるソースが有ったりしますが???、深入りは禁物かと・・・

続く・・・

by 気まぐれでくのぼう