pubinf

しばらく書いてなかったですが、Bloggerで再開しました
パソコン練習日記

タグ:windowsserver

これの続き

使いたいプラグインのディレクトリのパスに
mackerel020

コマンドプロンプトから移動
mackerel021


お目当てのプラグインのmain.goがあるところで
go build
mackerel022

コンパイルされたexeができる
mackerel023


とりあえず
アレなんでAgentのexeと同じところに置く
mackerel024


今度はcmdを監視してみる。
mackerel-agent.confに追記

[plugin.metrics.windows-process-stats-cmd]
command = "mackerel-plugin-windows-process-stats.exe -process cmd -metric-key-prefix=cmd"
mackerel025
そして
Agent再起動

cmdは3つ立ち上げていたので
3つの値が取れている
mackerel026



あとは監視したいWindowsにexeを配布して
mackerel-agent.confに定義するだけ

そうすればGOもGitも要らない

exeにコンパイルはこちら


準備するもの

・Windows用mackerelAgent
mackerel002

GOインストーラ

Git for windows






とりあえずmackerelAgentインストール
mackerel004


とりあえずで入れると
mackerel005


processor queue length
cpu
memory
disk
interface
filesystem

はシステムメトリックとしてデフォで取得。


プラグインとして用意されているもので使いたいものは使う。

中身見てみると、GOやんけ

とりあえず試すか、で


GOインストール
mackerel001

次へ次へってやっていくだけでいいので、適当に

環境変数GOROOTと
mackerel006

PATHの中にGoディレクトリは勝手に追加されている。
mackerel007


GOPATHは自分で設定。
適当にディレクトリ作って設定。
mackerel008



Git for Windowsをインストール
mackerel003

こちらもこだわりがなければ"次へ" "次へ"で



mackerelプラグイン一式落とす
go get github.com/mackerelio/mackerel-agent-plugins
mackerel009


いっぱい落ちてきたので、
とりあえずmackerel-plugin-windows-process-statsを使ってみる
mackerel010


とりあえず
直接実行
cannot find package "github.com/StackExchange/wmi"
が出た
mackerel011


足りないらしいので
落とす
go get github.com/StackExchange/wmi
mackerel012

きた
mackerel013


再実行
何も出ない。
リターンコード見てみると0なので動いてはいたっぽい
mackerel014

パラメータで渡すプロセス名に.exeは要らんかったぽい
-process bashで渡したら出てきた。
C:\Users\Administrator>go run C:\Work\GO\src\github.com\mackerelio\mackerel-agent-plugins\mackerel-plugin-windows-process-stats\main.go -process bash
mackerel015


mackerelに送るために
mackerel-agent.confに追記

[plugin.metrics.windows-process-stats]
command = "go run C:\\Work\\GO\\src\\github.com\\mackerelio\\mackerel-agent-plugins\\mackerel-plugin-windows-process-stats\\main.go -process bash  -metric-key-prefix=GithubBash"
mackerel016


Agent再起動

mackerelを見てみると
値送れてる。
mackerel017




でもWindowsServer全台にGOをインストールするかっていうと
それもどうなのってなるので、
exeにコンパイルする手順を書く

 

どういう資料をつくるかも考えてなかったので
とりあえず
”イベントログ”と”ファイアウォールログ”を取ってみることにした。

インターネットにさらす用の仮想マシン(WindowsServer2012R2)を作成し、
グローバルIPを付与して
24時間ほどほっとこうかと。


ただ、乗っ取られるとアレなので、
最低限の対策をして準備。


偽Administratorユーザを作成

サーバに侵入するためには
ユーザ名とパスワードの両方がわからないといけない。
そういう点で、
攻撃する側からするとAdministratorはかなりステキなユーザ。

Administratorユーザはほぼほぼ存在するのが確定しているので、
あとはパスワードさえ分かればいい。

なので、
ユーザ名もわからないほかのユーザと比べて
Administratorはアタックしやすい。
しかも管理者権限所持者。

ユーザ名が割れているAdministratorをそのまま残すのは結構リスキー

Administratorの名前をポリシーで変更します。
ローカルグループポリシーでAdministratorのアカウント名を変更。
40 -0024

使うかわからないけど
標準ユーザ権限しかない名前だけのAdministratorユーザを作成。
パスワードも18文字のそこそこめんどくさい長さに(なに設定したかもう忘れた)。

もしこいつが乗っ取られたとしてもそんなに権限がないので
アタック側はさらに別のユーザを乗っ取る作業をする必要になったり。。

まぁ、おとりですね。
その間に検知と対応ができればシステム管理としては良いかと。。
2


グローバルIPを付与

IPはi-revoから月額500円で借りているIPを使った。(別にこのために借りたわけではない)
http://access.i-revo.jp/

ふだん使っているプロバイダからの可変で配られるIPでもいいけど
全ポートを公開したかったので、
楽に設定できるこっちの方法でやった。
3

グローバルIPを付与したので、ネットワークが1こ増えた(i-revo)
4

グローバルIPのネットワークが
プライベートネットワークなのかパブリックネットワークなのか
わからなかったので、Powershellで確認。
パブリックネットワークに設定されていた。
5


ファイアウォール設定

とりあえずICMPは返答を返すようにした。
(獲物がいるとわかるように)
リモートデスクトップのポートも開放。

で、
ファイアウォールログが出力されるように設定。
6



しばらくインターネットに野ざらし

24時間ほどほうっておく


攻撃されたか確認

イベントログを見てみる

ログイン認証で失敗だらけ
8

21:46から21:53の約7分の間に71回
リモートデスクトップログインを試されていました。
ログインできた形跡はなし。

ちなみに
もっとさかのぼると17:00ごろにも同じアタックがされていました。


これはAdministratorでもログインが試されていたときのログ
7

ほかには以下のユーザで試されていました。
scanner
User
test
scan
support
Administrator
dispatch
reception
db2Admin
marketing
Admin
laptop
Usuario
shop
demo
remote
internet
visitor
frontdesk
ftpuser
sales
fax
testuser
printer
boardroom
temp
staff
conference
shipping
canon
copier
1
info
xerox
office
student
training
backup


ファイアウォールログを見てみる

IPアドレス185.93.185.237から
こちらのリモートデスクトップ(3389ポート)に対してずっとリクエストが来てます。

ちなみにそのIPをネットで調べてみましたが、
よくわからんかった
9


今回のアタッカーは185.93.185.237からだけでした。
最初はICMPとかでディスカバリでもしてからアタックするのかと思ったのですが、
最初からリモートデスクトップに絞っていました。

たぶん、
リモートデスクトップに絞って
一定のユーザとパスワードでいろんなサーバにアタックして
ログインできればラッキー
って感じでしょうか。


とりあえず、
1日ほっておくと攻撃されるので
Azureの仮想サーバを作ったときにグローバルIPまで付与している場合は
リモートデスクトップのポートを変更するとか
何か対策をしたほうがいいかもですね。

↑このページのトップヘ