EFingerd のリモート・バッファ・オーバーフロー | ScanNetSecurity
2024.04.27(土)

EFingerd のリモート・バッファ・オーバーフロー

[翻訳:関谷 麻美]
2002年3月9日

国際 海外情報
[翻訳:関谷 麻美]
2002年3月9日

概要
 EFingerd は man ページの記述にある通り、あなたのコンピュータに関して表示しようとすることをコントロールするフィンガー・デーモンだ。しかしこれは、全てのローカル・ユーザが当初管理者により意図された以上の情報を(たとえ故意ではないにしても)晒してしまうため、完全には正しくない。さらに問題なのは、その製品が悪用可能なバッファー・オーバーフローを含んでいる点だ。

詳細
脆弱なシステム:
Debian Linux 配布バージョン 1.3 (安定バージョン) と1.6.1 (開発バージョン)。

リモート・バッファ・オーバーフロー
 安定バージョンにおいて、コードのリバースルックアップ部分を利用して、リモートでバッファ・オーバフロー状態を引き起こすことは可能:

static char *lookup_addr (struct in_addr in)
{
static char addr[100];
struct hostent *he;

if (resolve_addr) {
he = gethostbyaddr ((char *)&in, sizeof(struct in_addr),AF_INET);
if (he == NULL)
strcpy(addr, inet_ntoa(in));
else
strcpy(addr, he->h_name);
}
else
strcpy (addr, inet_ntoa (in));

return addr;
}


通常 efingerd は 'nobody'として動作する。

危険な機能
 (両方のバージョンの)efingerd に関連したセキュリティ問題がもう一つある。既存のユーザの情報が検索されている時、efingerd はユーザのホームディレクトリの ".efingerd" ファイルを探す。それが存在し、そして実行可能な場合に、 'nobody'で実行を試みる。 .efingerd の出力は、fingerer に返送される。

 つまり、ローカルユーザが自身の .efingerd ファイルにあるものなら何でも nobody UID/GID によって、単にユーザ自身の情報検索をするだけで実行されるのだ。つまりユーザ nobody およびグループ nobody シェルを取得することは、容易だ。これは、ローカルの DoS 攻撃などの悪事を働いている間、自分のアイディンティティを隠そうとする潜在的悪人にとっては非常に興味深いことだろう。ログファイルは、efingerd の UID により書き込み可能なので、容易に改ざんされる。

この機能は、 -u オプションで無効にすることが可能。

追加情報
Spybreak がこの情報を提供した。

[情報提供:SecuriTeam]
http://www.securiteam.com/

《ScanNetSecurity》

Scan PREMIUM 会員限定記事

もっと見る

Scan PREMIUM 会員限定記事特集をもっと見る

カテゴリ別新着記事

「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」
「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」

ページ右上「ユーザー登録」から会員登録すれば会員限定記事を閲覧できます。毎週月曜の朝、先週一週間のセキュリティ動向を総括しふりかえるメルマガをお届け。(写真:ScanNetSecurity 名誉編集長 りく)

×