2018年10月6日土曜日

秋なのでWOWHoneypotを導入した


WOWHoneypot(https://github.com/morihisa/WOWHoneypot)

設定は https://qiita.com/hogehogehugahuga/items/cad931485f58ae487d53 を参考に。変えたところはユーザー名くらいです(wowで設定するのが若干怖かったので)。確かCowrieを入れる時にPython2を入れていたので競合まわりどうしようかなと思ったのですが、今のところは特に問題なく動いています。

設定して13分くらいでやってくるのはちょっとビビりますね。

GET http://[中国のIP]:[5桁ポート]/Ip/Up?Ip=[自サーバのIP]&Port=80&Check=146&Order=[アクセス元IP] HTTP/1.1" 200 -

起動確認みたいな形で、結局13分おきくらいに通信してきます。

--

ついでにcowrieのuserdb.txtの内容も更新しました。ここ数か月分のログインの内、失敗したものをピックアップしてsedで整形して追記、みたいな形で。cawrie.logに対して「grep "login attempt"」とかしてあげればさくっと一覧可能です。そこからfailedだけ取り出したうえで、「/」を「:x:」とかに置換すればそのままuserdb.txtに転用可能です。

 ログイン試行だけ見ていても面白いですね。ususarioとかなんだろうと思って見たらスペイン語でユーザって意味だったとか、明らかに日本語ユーザーを辞書に攻撃を仕掛けてきたりとか。minecraftとかを狙っていたりとか。

置かれたファイルはminerだったりが多かったですね。XMRの設定やら、後はスクリプト系で面白かったのは
#This step will protect your server from other Trojans hack
                mv /usr/bin/wget /usr/bin/get
って書いてあるやつでした。人のwgetを変えないで欲しい。


2018年9月17日月曜日

C#でMicrosoft Speech Object Libraryを使う(Win10)


詰まった箇所3点についてのメモ書き

1. 「参照の追加」はどこにある?
ソリューションエクスプローラーで右クリックすると出てきます。

2. 実行時の例外、クラスが
SpVoiceの初期化辺りでこけますが、こちらはx64版Runtimeをインストールしている状態で、Any CPU設定でデバッグすると発生します。x64に設定を変更してから再度試せば解消しました。 

3. HRESULTからの例外: 0x80045039
詳細原因は分かりませんが、私の場合はMicrosoft Speech Object Libraryのバージョンをv11からv5.4に落としたらクリアしました。恐らくですが、v5.4はおそらくSoftalkあたりをインストールした時についてきて、v11は自分でインストールしたものなので、その辺りぶつかったのではないかと思います。なお、v5.4は2種類ありますが、system32を経由しない方を選択してください(というかsystem32側だと選択時点でエラーを吐きます、権限がないので)

アセンブラ走り書き

intel記法の方が好きです。

- xor ax,axの理由
排他的論理和で同じものなら0になるわけですが、何故それならmov al,0とかにしないのかなと思っていたのですが、どうやら実行速度や資源が理由のようです。0を格納しておかなくて良いみたいな。後はmov al, 0x00はB000になるのでNullが発生したりして場合によっては都合が悪い的な。

- int 0x80
systemcallと何が違うのかなと思っていたのですが、これは32bit64bitの関係のようです。各レジスタに値を詰め込んでからint 0x80wするとシステムコールが呼び出せます。OS への唯一のアクセス方法であるとか。
 
http://softwaretechnique.jp/Linux/SystemCall/sc_01.html  によると、
axがシステムコール番号で、bxcxdxsidiが引数に当たるとのこと。
例えばmov al,0x66であれば、0x66は102なので
#define __NR_socketcall         102
となって、ソケット周りの機能が呼び出されます。
 
ただし、102でソケット関連を指定したところで、具体的な振舞いまでは指定できていません。そういうところを指定するのがbxになるのかな。
mov bl,0x1がsys_socket
mov bl,0x2がsys_bind
そして、cxには引数を積んだスタックのポインタが入るという流れのようです。