Linux上のESET Update Server Mirror

企業のLinuxサーバーを保持しなければならない皆さんは、注目すべきESETアンチウイルスにはLinux用の更新サーバーがないという事実に直面する可能性があります。もちろん、このためにESET Remote AdministratorサーバーでWindows仮想マシンを上げる必要はありません。自分で。 このトピックは技術革新のふりをするものではなく、この問題はインターネット上で十分に検討されていますが、良い解決策に出会ったことはありません。スクリプトを思い出しましょう。 私たちのスクリプトは、インターネット上の公式サーバーの新しいパスワードを見つけ、Smart Security、Business Edition、Home Edition、Exchange Serverなどの製品ライン全体のベースをサポートできるはずです。

これらの行動の正当性をあなたの良心に任せましょう。この記事は、アンチウイルスデータベースの更新機能に精通するためのものであり、法律違反のガイドではありません。 違反を回避するには、ESETの評価ライセンスのみを使用する必要があります。

だから、中のneonka:



0.ロケーション


仮想ホストのDocumentRootであるホームディレクトリ/var/www/site.ru/webがあると想像してください。 特に明記しない限り、すべてのファイルをそこに置くことを意味します。 したがって、cronを介してスクリプトを実行する場合は、メインスクリプトの先頭に次のアクションを配置する必要があります。

CURDIR=/var/www/site.ru/web

cd $CURDIR








1.ライセンスアカウントはどこで入手できますか?


「Eset Password Finder」というおおよその名前のマルチメガバイトの作品に出会いましたが、正確には覚えていません。 マルウェアをアンチウイルスユーザーに配布するためのはるかに効果的な方法を見つけることは困難です。 hex-viewerでexe-shnikをすばやく見ると、中国語のサイトhttp://www.nnvv.orgへのリンクが、新しいパスワードが毎日配置されているシンボルに見つかりました。 出力でbash形式でいくつかの変数を出力する簡単なパーサーを作成しましょう。

USERNAME=EAV-xxx

PASSWORD=xxx






自転車を発明したりエンティティを作成したりすることはなく、DOMツリーを走査するための既製のPHP simplehtmldomフレームワークを使用します。 彼のおかげで、スクリプトは次の形式になります。

./getpass.php:

#!/usr/bin/php

<?php

require('simple_html_dom.php'); //

$html = file_get_html('http://www.nnvv.org/');

$a=$html->getElementById("#nod32ids")->children(0)->children(0)->plaintext;

$a = str_replace("Username:", 'USERNAME=', $a);

$a = str_replace("Password:", 'PASSWORD=', $a);

echo $a."\n";

?>





chmod 755 ./getpass.phpを実行可能にして、そのままにしておきます。



2.必要なディレクトリを作成する


mkdir -p ./download/engine3

mkdir -p ./download/engine3ess

mkdir -p ./eset_upd

mkdir -p ./download/win/emsx

mkdir -p ./download/win/v3eav

mkdir -p ./download/win/v3ess

mkdir -p ./download/win/v3eav/pre

mkdir -p ./download/win/v3ess/pre






この構造は、公式サーバー上のディレクトリ階層を完全に繰り返します。



3.更新情報を取得する


現在のデータベースのデータはファイルhttp://update.eset.com/eset_upd/update.verに保存され、古い無料のアーカイバunrar-0.0.1圧縮されていますが、これはRoshalevskyと互換性がありませunrar-0.0.1をダウンロードしてコンパイルし、コンパイル後にunrarバイナリをアクションの場所のディレクトリに入れます。 解凍後、更新ファイルのURLのリストを生成することにより、 update.verを解析できます。

wget -q --timestamping http://update.eset.com/eset_upd/update.ver

mv -f update.ver update.rar

cd eset_upd

../unrar e -f -y -c- ../update.rar 2>&1 >/dev/null

cd ..

mv -f update.rar update.ver

grep file= $CURDIR/eset_upd/update.ver |grep "engine3/"| sed -e 's/file\=/http\:\/\/um10.eset.com/' |grep -v data > downlist1.txt

grep file= $CURDIR/eset_upd/update.ver |grep engine3ess| sed -e 's/file\=/http\:\/\/um10.eset.com/' |grep -v data > downlist2.txt

grep file= $CURDIR/eset_upd/update.ver |grep emsx| sed -e 's/file\=/http\:\/\/um10.eset.com/' |grep -v data > downlist5.txt

grep file= $CURDIR/eset_upd/update.ver |grep v3eav|grep -v pre| sed -e 's/file\=/http\:\/\/um10.eset.com/' |grep -v data > downlist3.txt

grep file= $CURDIR/eset_upd/update.ver |grep v3ess|grep -v pre| sed -e 's/file\=/http\:\/\/um10.eset.com/' |grep -v data > downlist4.txt

grep file= $CURDIR/eset_upd/update.ver |grep v3eav|grep pre| sed -e 's/file\=/http\:\/\/um10.eset.com/' |grep -v data > downlist6.txt

grep file= $CURDIR/eset_upd/update.ver |grep v3ess|grep pre| sed -e 's/file\=/http\:\/\/um10.eset.com/' |grep -v data > downlist7.txt








4.アップデートを受け取る


以前に作成したPHPスクリプトを使用して、新しいパスワードを取得します。

./getpass.php > ./pass.sh

sed -i 's/\r//' pass.sh # , wget --http-user=$USERNAME .

source ./pass.sh






データベースを取得するには、-timestampingオプションを指定してwgetを使用します。これにより、以前にダウンロードしたファイルを再度ダウンロードすることはできなくなります。 注意のため、公式の--user-agentを使用し、認証には通常のペア--http-user /-http-passwordを使用しますwgetのファイルのリストは、 -input-file =パラメーターで渡すことができます。

wget --timestamping --http-user=$USERNAME --http-password=$PASSWORD --input-file=../../downlist1.txt --user-agent="ESS Update (Windows; U; 32bit; VDB 7001; BPC 4.0.474.0; OS: 5.1.2600 SP 3.0 NT; CH 0.0; LNG 1049; x32c; UPD http://um10.eset.com; APP ess; BEO 1; CPU 5964; ASP 0.0)"

cd ../engine3ess/

wget --timestamping --http-user=$USERNAME --http-password=$PASSWORD --input-file=../../downlist2.txt --user-agent="ESS Update (Windows; U; 32bit; VDB 7001; BPC 4.0.474.0; OS: 5.1.2600 SP 3.0 NT; CH 0.0; LNG 1049; x32c; UPD http://um10.eset.com; APP ess; BEO 1; CPU 5964; ASP 0.0)"

cd ../win/v3eav/

wget --timestamping --http-user=$USERNAME --http-password=$PASSWORD --input-file=../../../downlist3.txt --user-agent="ESS Update (Windows; U; 32bit; VDB 7001; BPC 4.0.474.0; OS: 5.1.2600 SP 3.0 NT; CH 0.0; LNG 1049; x32c; UPD http://um10.eset.com; APP ess; BEO 1; CPU 5964; ASP 0.0)"

cd ../v3ess/

wget --timestamping --http-user=$USERNAME --http-password=$PASSWORD --input-file=../../../downlist4.txt --user-agent="ESS Update (Windows; U; 32bit; VDB 7001; BPC 4.0.474.0; OS: 5.1.2600 SP 3.0 NT; CH 0.0; LNG 1049; x32c; UPD http://um10.eset.com; APP ess; BEO 1; CPU 5964; ASP 0.0)"

cd ../emsx/

wget --timestamping --http-user=$USERNAME --http-password=$PASSWORD --input-file=../../../downlist5.txt --user-agent="ESS Update (Windows; U; 32bit; VDB 7001; BPC 4.0.474.0; OS: 5.1.2600 SP 3.0 NT; CH 0.0; LNG 1049; x32c; UPD http://um10.eset.com; APP ess; BEO 1; CPU 5964; ASP 0.0)"

cd ../v3eav/pre/

wget --timestamping --http-user=$USERNAME --http-password=$PASSWORD --input-file=../../../../downlist6.txt --user-agent="ESS Update (Windows; U; 32bit; VDB 7001; BPC 4.0.474.0; OS: 5.1.2600 SP 3.0 NT; CH 0.0; LNG 1049; x32c; UPD http://um10.eset.com; APP ess; BEO 1; CPU 5964; ASP 0.0)"

cd ../../v3ess/pre/

wget --timestamping --http-user=$USERNAME --http-password=$PASSWORD --input-file=../../../../downlist7.txt --user-agent="ESS Update (Windows; U; 32bit; VDB 7001; BPC 4.0.474.0; OS: 5.1.2600 SP 3.0 NT; CH 0.0; LNG 1049; x32c; UPD http://um10.eset.com; APP ess; BEO 1; CPU 5964; ASP 0.0)"








以上です。 受信したスクリプトを忘れないでください(たとえば、 nodupdate.shと呼びましょう)cronに登録します

# sudo crontab -e

50 * * * * /var/www/site.ru/web/nodupdate.sh 2> /dev/null








5.クライアントのセットアップ






6.まとめ


完全なスクリプトはPastebinにあります。



判明したように、独自の更新のミラーを作成するために特別なユーティリティや特別な知識は必要ありません。 この投稿の目的は、ESET製品更新システムの機能に精通することだけであり、ソリューションの目的は企業のトラフィックを節約することのみであり、決して法律に違反することはできないことを理解する必要があります。 理論的には、このスクリプトを使用するには、ミラーから更新されたウイルス対策ソフトウェアのすべてのインスタンスのライセンスを合法的に取得している必要があります。これは良心のままです。 評価ライセンスのみを探すようにコードを書き換えることができますが、これは使用するのがかなり合法であると思われます。 1人の友人がこのソリューションを3年間使用していますが、ほとんど変更されていません。 すべての更新の重みは約300メガバイトのどこかになり、その後のドッキングは最大700〜900メートルまで増加する可能性があることを考慮します。 6か月に1回、データベースファイルを削除して、古いファイルを削除できます。 update.verファイル形式自体は非常にシンプルで、セクションに分かれており、そこからサーバー上のディレクトリ構造全体を確認できます。新しいESET製品のリリース後に、これらのパスをスクリプトに追加するだけです。



UPD 2012.04.24:小さな変更( zombic yのおかげ)。

getpass.phpの代わりにgetpass.shを使用します。

$ cat getpass.sh



#!/ bin / sh



curl www.nnvv.org | \

grep -A1` date +%Y-%m-%d` | \

awk '$ 9〜/パスワード/ \

{if(sub(/ Username:/、 "+ USERNAME ="))\

{if(sub(/ <br \ />パスワード:/、 "+ PASSWORD ="))\

{if(sub(/ <\ / p> /、 "\ n")){print $ 8 "\ n" $ 9}}}} | \

awk -F "+" '{print $ 2}'> pass.sh



スクリプトは、今日の番号のユーザー名/パスワードを取ります。



スクリプトnodupdate.shでは、それぞれgetpass.phpをgetpass.shに置き換え、行にコメントを付けます

sed -i 's / \ r //' pass.sh、

必要ありません。



All Articles