Tag Archives: PC - Page 3

BackTrack 3 Medusa 1.5 アップグレード SSH Hack

Medusaはネット上のサービスの認証を攻撃するソフトです。
今回SSHのアタックに対する耐久性を調べる為に実際にこのツールを解説します。

起動方法は下記の画像を参考にしてください。
Medusa

実際にこのツールを使いSSHへの攻撃を行おうとするとバージョンの問題で
途中で止まってしまいます。

まずはアップグレードさせましょう。
アップデートはコマンドで細かく解説しながらやって行っていきます。
今回は再起動してもインストールした内容が消えないように対策します。
※今回の作業はBackTrack 3をインストールしたUSBで行っています。
※今回使用したBackTrack 3は日本語化されております。

ファイルのダウンロードを行う
bt ~ # wget http://www.foofus.net/jmk/tools/medusa-1.5_rc1.tar.gz
–12:35:15– http://www.foofus.net/jmk/tools/medusa-1.5_rc1.tar.gz
=> `medusa-1.5_rc1.tar.gz’
Resolving www.foofus.net… 64.73.32.134
Connecting to www.foofus.net|64.73.32.134|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 344,830 (337K) [application/x-gzip]

100%[====================================>] 344,830 139.40K/s

12:35:19 (139.07 KB/s) – `medusa-1.5_rc1.tar.gz’ saved [344830/344830]

圧縮されたファイルを展開する
bt ~ # tar xzvf medusa-1.5_rc1.tar.gz
medusa-1.5_rc1/
medusa-1.5_rc1/doc/
medusa-1.5_rc1/doc/medusa.1
medusa-1.5_rc1/doc/medusa-afp.html
medusa-1.5_rc1/doc/medusa-compare.html
medusa-1.5_rc1/doc/medusa-cvs.html
medusa-1.5_rc1/doc/medusa-ftp.html
medusa-1.5_rc1/doc/medusa.html
medusa-1.5_rc1/doc/medusa-http.html
~~~~~省略~~~~~
medusa-1.5_rc1/src/modsrc/telnet.c
medusa-1.5_rc1/src/modsrc/vmauthd.c
medusa-1.5_rc1/src/modsrc/vnc.c
medusa-1.5_rc1/src/modsrc/d3des.c
medusa-1.5_rc1/src/modsrc/web-form.c
medusa-1.5_rc1/src/modsrc/wrapper.c

解凍したディレクトリに移動
bt ~ # cd medusa-1.5_rc1

設定を行わせる
bt medusa-1.5_rc1 # ./configure
checking build system type… i686-pc-linux-gnu
checking host system type… i686-pc-linux-gnu
checking target system type… i686-pc-linux-gnu
checking for a BSD-compatible install… /usr/bin/ginstall -c
checking whether build environment is sane… yes
checking for gawk… gawk
checking whether make sets $(MAKE)… yes
checking for gcc… gcc
~~~~~省略~~~~~
configure: *******************************************************
configure:
checking for strcasestr… yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating src/modsrc/Makefile
config.status: creating config.h
config.status: executing depfiles commands

Makeする
bt medusa-1.5_rc1 # make
make all-recursive
make[1]: Entering directory `/root/medusa-1.5_rc1′
Making all in src
make[2]: Entering directory `/root/medusa-1.5_rc1/src’
Making all in modsrc
make[3]: Entering directory `/root/medusa-1.5_rc1/src/modsrc’
if gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src -g -O2 -g -DDEBUG -fPIC -I/usr/local/include -I/usr/local/ssl/include -I/usr/include/subversion-1 -I/usr/local/include/subversion-1 -I/usr/include/postgresql -I/usr/local/include/postgresql -I/usr/include/afpfs-ng -MT cvs.o -MD -MP -MF “.deps/cvs.Tpo” -c -o cvs.o cvs.c;
then mv -f “.deps/cvs.Tpo” “.deps/cvs.Po”; else rm -f “.deps/cvs.Tpo”; exit 1; fi
~~~~~省略~~~~~
gcc -g -O2 -g -DDEBUG -fPIC -I/usr/local/include -I/usr/local/ssl/include -I/usr/include/subversion-1 -I/usr/local/include/subversion-1 -I/usr/include/postgresql -I/usr/local/include/postgresql -I/usr/include/afpfs-ng -L/usr/local/lib -lssl -lcrypto -rdynamic -ldl -o medusa listModules.o medusa.o medusa-net.o medusa-trace.o medusa-utils.o -lcrypto -lpthread
make[3]: Leaving directory `/root/medusa-1.5_rc1/src’
make[2]: Leaving directory `/root/medusa-1.5_rc1/src’
make[2]: Entering directory `/root/medusa-1.5_rc1′
make[2]: Leaving directory `/root/medusa-1.5_rc1′
make[1]: Leaving directory `/root/medusa-1.5_rc1′

圧縮してインストール
bt medusa-1.5_rc1 # checkinstall

checkinstall 1.6.1, Copyright 2002 Felipe Eduardo Sanchez Diaz Duran
This software is released under the GNU GPL.

The package documentation directory ./doc-pak does not exist.
Should I create a default set of package docs? [y]: y

パッケージのドキュメンテーションを準備..OK

Please choose the packaging method you want to use.
Slackwareなら[S], RPMなら[R], Debianなら[D]を入力S

このパッケージの説明を書いてください Remember that pkgtool shows
only the first one when listing packages so make that one descriptive.

End your description with an empty line or EOF.
>>

********************************************
**** Slackware package creation selected ***
********************************************

This package will be built according to these values:

1 – Summary: [ Package created with checkinstall 1.6.1 ]
2 – Name: [ medusa ]
3 – Version: [ 1.5_rc1 ]
4 – Release: [ 1 ]
5 – License: [ GPL ]
6 – Group: [ Applications/System ]
7 – Architecture: [ i386 ]
8 – Source location: [ medusa-1.5_rc1 ]
9 – Alternate source location: [ ]
10 – Requires: [ ]

変更するものの番号を入力してください。Enterで続行します:

Installing with make install…

========================= Installation results ===========================
Making install in src
make[1]: Entering directory `/root/medusa-1.5_rc1/src’
Making install in modsrc
make[2]: Entering directory `/root/medusa-1.5_rc1/src/modsrc’
make[3]: Entering directory `/root/medusa-1.5_rc1/src/modsrc’
make[3]: Nothing to be done for `install-exec-am’.
test -z “/usr/local/lib/medusa/modules” || mkdir -p — “/usr/local/lib/medusa/modules”
/usr/bin/ginstall -c ‘cvs.mod’ ‘/usr/local/lib/medusa/modules/cvs.mod’
/usr/bin/ginstall -c ‘ftp.mod’ ‘/usr/local/lib/medusa/modules/ftp.mod’
/usr/bin/ginstall -c ‘http.mod’ ‘/usr/local/lib/medusa/modules/http.mod’
~~~~~省略~~~~~
**********************************************************************

Done. The new package has been saved to

/root/medusa-1.5_rc1/medusa-1.5_rc1-i386-1.tgz
You can install it in your system anytime using:

installpkg medusa-1.5_rc1-i386-1.tgz

**********************************************************************
圧縮してインストールしたファイルを確認する。
bt medusa-1.5_rc1 # ls
AUTHORS config.status*
COPYING config.sub*
ChangeLog configure*
INSTALL configure.in
Makefile depcomp*
Makefile.am description-pak
Makefile.in doc/
NEWS doc-pak/
README install-sh*
TODO ltmain.sh
aclocal.m4 medusa-1.5_rc1-i386-1.tgz
backup-120620091241-pre-medusa-1.5_rc1.tgz misc/
config.guess* missing*
config.h mkinstalldirs*
config.h.in src/
config.log stamp-h1

rootディレクトリへコピーする。
bt medusa-1.5_rc1 # cp medusa-1.5_rc1-i386-1.tgz /root

rootディレクトリへ移動する。
bt medusa-1.5_rc1 # cd

ファイルが移動されているかを確認
bt ~ # ls
Desktop/ medusa-1.5_rc1/ medusa-1.5_rc1-i386-1.tgz medusa-1.5_rc1.tar.gz

圧縮してインストールされたファイルを展開する。
bt ~ # tar xzvf medusa-1.5_rc1-i386-1.tgz
./
install/
install/slack-desc
install/doinst.sh
usr/
usr/local/
usr/local/share/
usr/local/share/man/
usr/local/share/man/man1/
usr/local/share/man/man1/medusa.1.gz
usr/local/lib/
usr/local/lib/medusa/
usr/local/lib/medusa/modules/
~~~~~省略~~~~~
usr/doc/medusa/doc/medusa-ftp.html
usr/doc/medusa/doc/medusa-cvs.html
usr/doc/medusa/doc/medusa-compare.html
usr/doc/medusa/doc/medusa-afp.html
usr/doc/medusa/doc/medusa.1

USBメモリがマウントされているディレクトリを探す。
bt ~ # ls /mnt
floppy/ hdc1/ live/ sda1/ sda2/

ディレクトリ/mnt/sda1/BT3/toolsへ移動する。
bt ~ # cd /mnt/sda1/BT3/tools

newディレクトリを作成する。
bt tools # mkdir new

作成されたか確認する。
bt tools # ls
WIN/ dir2lzm* lzm2dir* new/ tgz2lzm* uselivemod*

先ほど展開したmedusa-1.5_rc1-i386-1.tgzの中身usrディレクトリを移動する。
bt tools # mv /root/usr ./new/

移動されたか確認する。
bt tools # ls new
usr/

モジュールにする為.lzmへ圧縮しなおす。
bt tools # dir2lzm new medusa-1.5_rc1-i386-1.lzm

Warning, if possible, uncompress these archives in your module:
./new/usr/local/share/man/man1/medusa.1.gz
[==================================================================] 60/60 100%
done OK

圧縮されたか確認する。
bt tools # ls
WIN/ liblinuxlive* mksquashfs* tgz2lzm*
deb2lzm* lzm2dir* new/ unsquashfs*
dir2lzm* medusa-1.5_rc1-i386-1.lzm rmlivemod* uselivemod*

再起動時に自動的に読み込まれるようにmodulesディレクトリへ移動させる。
bt tools # mv medusa-1.5_rc1-i386-1.lzm ../modules/

再起動させる。
bt tools # reboot

Medusaを起動して最初に
Medusa v1.5_rc1・・・・・・・
と表示されたらインストール成功です。

実際に192.168.24.10のSSHへ辞書攻撃を行う
bt ~ # medusa -f -h 192.168.24.10 -u root -P /usr/local/john-1.7.2/password.lst -M ssh

※当サーバはSSHへの攻撃対策を十分に行っております。
※又、他人のサーバへの攻撃は迷惑になるのでやめましょう。

ディレクトリ直下のディレクトリ数を表示するコマンド

あるディレクトリ直下のディレクトリ数を調べる。
以下のコマンドは/home直下のディレクトリの数を取得して表示する。
# ls -l /home | egrep -c ‘^d.+[^.]$’

ちなみに今2009/12/4 20:07現在
575個のディレクトリが存在しました。
と言うことで現在のレンタルサーバ使用者数は575名です。

安全な取り外しのアイコン 表示されない!? XP

いつものUSBを取り外すためのアイコンがタスクバーから消えていたので対策を書いておきます。

スタート→ファイル名を指定して実行を開く
以下を一行ずつ順に入力しOKを押していく。

reg add "HKCUSoftwareMicrosoftWindowsCurrentVersionAppletsSysTray" /v "Services" /d 0 /t REG_DWORD /f

systray 0

systray 15

再起動したらまた消えてしまう場合の対策
下記をbatファイルに記述しスタートアップに登録すると上記のコマンドは再起動時に自動実行されるようになります。

:: --------------------------------------------------------------
:: USB取り外しアイコン表示バッチファイル
:: 作成日:2009/11/29
:: 作者:ORBIT
:: 使い方:
::  C:Documents and SettingsORBITスタート メニュープログラム
::  へコピーしPCを再起動させると取り外しアイコンを立ち上げます。
:: --------------------------------------------------------------

:: ============================(設定)============================
:: スリープする時間を指定する(デフォルトは二分)
SET SETTIME=200
:: ==============================================================

:: ウインドウを最小化して再起動
@if not "%~0"=="%~dp0.%~nx0" start /min cmd /c,"%~dp0.%~nx0" %* & goto :eof

:: 起動してから指定時間内スリープ
ping localhost -n %SETTIME% > nul

:: 電源アイコン,スピーカアイコン,取り外しアイコンの三つを一端落として再表示する
reg add "HKCUSoftwareMicrosoftWindowsCurrentVersionAppletsSysTray" /v "Services" /d 0 /t REG_DWORD /f
systray 0
systray 15

面倒な場合は下記からダウンロード後解凍してご利用ください。
Unmount
これでいつもの通りにUSBを取り外すことができます。

MODx インストール エラー

サーバ利用者からPHPでエラーが発生するとの事で連絡が来たので調べてみた。
エラー内容
PHP error debug
Error: date() [function.date]: It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Asia/Tokyo’ for ‘JST/9.0/no DST’ instead
Error type/ Nr.: Warning – 2
File: /home/***********/document.parser.class.inc.php(770) : eval()’d code
Line: 377

TimeZoneが合ってない??
設定してるはずだけどな・・・・・・
.htaccessに下記の文章を追記して保存する。

php_value date.timezone Asia/Tokyo
SetEnv TZ Asia/Tokyo

これで解決しました。

Slowloris対策(その2) Vine Linux

早速本日Slowloris??のような攻撃を食らいまして
実験用鯖にしかSlowloris対策をしていないなかった自分を恨んでみたいり^^;

つか紹介したらそれを見てこのサイトに攻撃したのでしょうかね??

ダウンする直前にDosアタックとして10秒遮断されたIPがあったんですよね・・・・・
原因はこれかな??

と言うわけで、またまた対策しちゃいます。今度はmod_antilorisって奴を使います。
# wget ftp://ftp.monshouwer.eu/pub/linux/mod_antiloris/mod_antiloris-0.4.tar.bz2
# tar -xjvf mod_antiloris-0.4.tar.bz2
# cd mod_antiloris-0.4
# apxs -a -i -c mod_antiloris.c
# service apache2 restart
こんな感じでしょうか??

参考元:てきとうに、なんとなく更新するページ

SwatchでSSH不正アクセスを遮断

FTPのアタックも酷いものですがSSHのアタックはそれを超えますので今回対策しました。
まず、Swatchをインストールしていない人はVineLinuxで自宅サーバー様を参考にSwatchを全部設定します。

そしてSSH用に設定ファイルを作っていきます。

# vi /etc/swatch/secure.conf
#監視ログの場所を指定
# logfile /var/log/secure
#監視したい文字列を記載
watchfor /sshd.*Invalid user/
#ログのIPアドレスの場所を指定し、アクセス遮断スクリプトへ渡す
    pipe "/usr/bin/swatch.sh 10"

Swatchの再起動
# service swatch restart

(追記)
SWATCH設定を参考にしたほうがよさそうです。

Dosアタック対策 Apache2 Vine Linux

田代砲等のDos攻撃等に有効なモジュールとしてmod_evasiveをインストールしました。
※Slowloris HTTP DoSには全く効果を発揮しません。

# wget http://www.zdziarski.com/projects/mod_evasive/mod_evasive_1.10.1.tar.gz
# tar zxvf mod_evasive_1.10.1.tar.gz
# cd mod_evasive
# /usr/bin/apxs -i -a -c mod_evasive20.c

# vi /etc/apache2/conf/httpd.conf
以下が追加されていることを確認する。
LoadModule evasive20_module /usr/lib/apache2/modules/mod_evasive20.so

下記の設定を追記

#
# mod_evasive Settings
#
<ifModule mod_evasive20.c>
  DOSHashTableSize 3097
  DOSPageCount 2
  DOSSiteCount 50
  DOSPageInterval 1
  DOSSiteInterval 1
  DOSBlockingPeriod 10
 DOSEmailNotify      [Dos攻撃を知らせる為の管理者メールアドレス]
</ifModule>

# service apache2 restart

__追記__
URLが変わっているようです
http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz

Slowloris対策 今後の課題有り Vine linux

先ほど紹介したSlowlorisに対抗するモジュールが紹介されていたのでVineLinuxでのインストール方法に関して紹介します。

※インストールする前に!!
このモジュールは改良版Slowlorisには必ずしも有力な対抗能力を示さない事が分かっております。自己責任でインストールしてください。

# wget http://mod-pacify-slowloris.googlecode.com/files/mod-pacify-slowloris-0.0.1.tgz
# tar xvzf mod-pacify-slowloris-0.0.1.tgz
# cd mod-pacify-slowloris
# /usr/bin/apxs -i -a -c mod_pacify_loris.c
#
# vi /etc/apache2/conf/httpd.conf

以下が追加されていることを確認
LoadModule pacify_loris_module modules/mod_pacify_loris.so

# service apache2 restart

参考元:
にわか鯖管の苦悩日記

アンインストール方法
# cd /usr/lib/apache2/modules
# rm -r mod_pacify_loris.so
# vi /etc/apache2/conf/httpd.conf
LoadModule pacify_loris_module modules/mod_pacify_loris.so
にカーソルを合わせてddで削除

Apache1/2のDos攻撃に対する脆弱性

先日からの不正アクセスからの状況から色々セキュリティー関連を調べていたら
恐ろしい物を見つけました。

Slowloris HTTP DoS
WS000031

一般的にサーバをダウンさせるには大量のマシンから大量のリクエストを送信する必要がありますが、今回紹介したツールはApacheのセキュリティーホールを突き、少数のマシンから少数のリクエストでサーバをダウンさせてしまいます。

非常に危険で恐ろしいツールですね。
当サーバでも対策を急がないといけないです(汗

cpanでIO::Socket::SSLがインストールできない場合は下記が入ってない可能性がありますので追加します。
# apt-get install openssl libssl-dev

中国 韓国 北朝鮮のアクセスを完全遮断 Vine Linux

先日から中国からの攻撃の為サーバに繫がりにくい状況やダウンする等の被害が
出てましたので、今回完全に中国 韓国 北朝鮮などからのアクセスを禁止しました。

参考元:
CentOS on X40:CKFILTERでうざい国からのアクセスを遮断する
うざい国からのアクセスを全て遮断

必要なファイルをダウンロードしてくる
# wget http://www.42ch.net/~shutoff/prog/countryfilter.pl
# wget ftp://ftp.apnic.net/pub/apnic/stats/apnic/delegated-apnic-latest

初期化
# iptables -N CKFILTER
# iptables -N CKFILTERED

リストの変換とSH作成
# perl countryfilter.pl iptables KR,CN,KP < delegated-apnic-latest > filter.sh

エラーになるのでパスの変更
# vi filter.sh
IPTABLES=/sbin/iptables

実行
# source filter.sh

扱いを指定
# iptables -A CKFILTER -j ACCEPT
# iptables -A CKFILTERED -j DROP

転送
# iptables -A INPUT -p tcp -m state --state NEW -j CKFILTER

効果絶大でした^^