2014-12-30
プロバイダを変更してみた
これまでぷららをつかっていたけれど,
いわゆる IPoE 接続で IPv6 を使いたくて,
21-domain に乗り換えた.
品質は, そこそこだと思う.
一部のサイトとの通信が遅いかも.
2014-12-24
Logwatch のスクリプトの書き換え
Logwatch は, 毎日, ログをサマライズして送ってくれるツールである.
Logwatch が行う処理を少し変更したい場合がある.
この方法を示す.
RHEL では,
このファイルをそのまま編集するのではなく, このファイルを /etc/logwatch/scripts/services にコピーして編集すると良いらしい. たとえば,
/usr/share/logwatch/scripts/services の下に, サービス毎 (Postfix, sshd など) のログ処理スクリプトが格納されている.
このファイルをそのまま編集するのではなく, このファイルを /etc/logwatch/scripts/services にコピーして編集すると良いらしい. たとえば,
User root from xx.xx.xx.xx not allowed because not listed in AllowUsers : 3 time(s) reverse mapping checking getaddrinfo for example.com failed - POSSIBLE BREAK-IN ATTEMPT! : 1 time(s)というログが大量に報告されて鬱陶しい. この場合, 以下のようにする.
sudo cp -i /usr/share/logwatch/scripts/services/sshd /etc/logwatch/scripts/services/ sudoedit /etc/logwatch/scripts/services/sshd以下のように,
Ignore these に入る条件に追記する.
$ diff -u /usr/share/logwatch/scripts/services/sshd ./sshd
--- /usr/share/logwatch/scripts/services/sshd 2012-08-29 20:28:55.000000000 +0900
+++ ./sshd 2014-12-24 15:54:16.000000000 +0900
@@ -211,7 +211,9 @@
# failed login entry...
($ThisLine =~ /^input_userauth_request: (illegal|invalid) user (.*)$/ ) or
($ThisLine =~ m/^(Illegal|Invalid) user (.*) from ([^ ]+)/ ) or
- ($ThisLine =~ /pam_krb5: authentication succeeds for `([^ ]*)'/)
+ ($ThisLine =~ /pam_krb5: authentication succeeds for `([^ ]*)'/) or
+ ($ThisLine =~ /User .* from .* not allowed because not listed in AllowUsers/) or
+ ($ThisLine =~ /reverse mapping checking getaddrinfo for .* failed - POSSIBLE BREAK-IN ATTEMPT/)
) {
# Ignore these
} elsif ( my ($Method,$User,$Host,$Port) = ($ThisLine =~ /^Accepted (\S+) for (\S+) from ([\d\.:a-f]+) port (\d+)/) ) {
2014-12-22
Bit.ly と amzn.to
Bitly でリンクを圧縮すると, bit.ly のURLができる.
ここにAmazonのリンクを入れると, amzn.to ドメインのURLができる.
たとえば, http://www.amazon.co.jp は http://amzn.to/1kt8g2S になる.
ここまでは, よく聞く. この amzn.to は bit.ly と書いてもOKらしい.
たとえば, http://amzn.to/1kt8g2S は http://bit.ly/1kt8g2S と書き換えられる. 逆を試してみたが, このブログのホームへのリンク http://bit.ly/1AO4R8r を http://amzn.to/1AO4R8r と書くのはNGらしい.
ここまでは, よく聞く. この amzn.to は bit.ly と書いてもOKらしい.
たとえば, http://amzn.to/1kt8g2S は http://bit.ly/1kt8g2S と書き換えられる. 逆を試してみたが, このブログのホームへのリンク http://bit.ly/1AO4R8r を http://amzn.to/1AO4R8r と書くのはNGらしい.
2014-12-17
DLL呼び出しの調査
Windows のアプリケーションについて, どのような振舞をするのか解析したいということがある.
そのとき, DLL呼び出しをログにとることができると便利である.
中間者攻撃DLLの作成
攻撃対象のDLL名x.dll とし,
エクスポートしているAPIが既知であるとする.
まず, 以下のようなソース mitm.c を書く.
#include "windows.h"
#include "stdio.h"
#include "stdlib.h"
#define ACTUAL "x-actual.dll"
static int state = 0;
static FILE *fp = NULL;
static int (*f1)(int) = NULL;
static void fin()
{
if(fp) {
fclose(fp);
}
fp = 0;
}
static void init()
{
HANDLE h = LoadLibrary(ACTUAL);
if(h) {
f1 = (int(*)(int))GetProcAddress(h, "func1");
// do not call FreeLibrary(h);
}
fp = fopen("evadll-mitm.log", "w");
state = 1;
atexit(fin);
}
#define log(fmt, ...) if(fp) { fprintf(fp, fmt, __VA_ARGS__); fflush(fp); }
int WINAPI func1(int value)
{
if(!state) init();
int ret = f1 ? f1(value) : 0;
log("func1(%d)=%d\n", value, ret);
return ret;
}
攻撃対象のDLLをx-actual.dllにリネームする.
以下のコマンドで, コンパイルする.
i686-w64-mingw32-gcc -shared -o x.dll mitm.c -Wl,-k
TODO
LDPRELOADのような機能を使えば, もっと色々できるかもしれない.Tips
GCCでは, エクスポートする関数名に@がついてしまうのだが, この記事によると,-Wl,-kをつけると@以降が消えると教えてくれた.
LoadLibrary などの使用方法はこのページを参考にした.
mingw: 依存するDLLを列挙
Linux では,
ldd というコマンドで,
リンクする共有オブジェクトを調べることができる.
Windowsの実行ファイルに関しても,
どのDLLをリンクしようとしているのか知りたいことがある.
こんな場合, obdjump で調査することができる.
$ LANG=C objdump -p hoge.exe | grep 'DLL Name:'
2014-12-16
Windows ネットワーク接続の切断
Windows では, 一度遠隔コンピュータのネットワークにログオンすると, ローカルでログオフするまでネットワーク接続からログオフできない.
共有のコンピュータの場合など, ログオフせずにユーザを切り替えたい場合に困る.
GUIではログオフの操作が出来ないが, コマンドからはログオフできる.
- まず, コマンドプロンプトを開く.
スタートメニューの「プログラムとファイルの検索」に「cmd」と入力する. net useで接続の一覧を表示し, リモート名を確認する.net use /delete リモート名にて, 削除 (ログオフ) できる.
2014-12-04
/usr/lib/libtermcap.so.2: file too short
RHEL7では libtermcap.so から libtinfo.so に統合されている.
libtermcap.so を使おうとすると, 以下のようにエラーになる.
error while loading shared libraries: /usr/lib/libtermcap.so.2: file too short以下のように tinfo を使うよう指示されている.
$ cat /usr/lib/libtermcap.so.2 INPUT(-ltinfo)したがって, libtinfo.so にリンクをはる.
$ sudo ln -s libtinfo.so /usr/lib/libtermcap.so.2
登録:
投稿 (Atom)