网站首页 | 网页制作 | 网络编程 | 图形图象 | 冲浪宝典 | 操作系统 | 软件教学 | 网络安全 | 认证考试 | 下载中心 | 游戏下载
| 网络安全首页 | 安全在线 | 病毒防治 | 黑客攻防 | 漏洞研究 | 黑客编程 | 破解手记 |
您现在的位置: 超人气学院 >> 网络安全 >> 黑客编程 >> 文章正文 用户登录 新用户注册
SYMANTEC防火墙内核溢出利用之非安全返回法二           
SYMANTEC防火墙内核溢出利用之非安全返回法二
作者:未知 文章来源:网络收集 点击数: 更新时间:2006-3-29 15:19:25

作者: SoBeIt    来自:https://www.xfocus.net

没实现非安全返回法一,因为里面的技术要点都包括在安全返回法和非安全返回法二里了。主要就是那个BAT的下载文件的内容,可以参见相关文章。这篇文章是建立我之前写过的SYMANTEC防火墙内核溢出利用之安全返回法上的基础上的,若有未详细说明之处可参见前文。
    正如FLASHSKY所说,非安全返回法二的关键在于恢复DPC,不象安全返回法,我们完全不必关心线程切换和DPC调度。不过FLASHSKY过分夸大了DPC被破坏的情况,尤其是环境切换,就算在安全返回法里,在执行我们的代码时系统也进行了数次环境切换和DPC调度(在int 0x2e里发生)。先让我们看看一个DPC调度是怎样完成的,以下是KPCR结构中涉及到DPC调度的部分:
    +7e0 uint32 DpcInterruptRequested
    +7e4 void *ChainedInterruptList
    +7e8 uint32 CachePad3[2]
    +7f0 uint32 MaximumDpcQueueDepth
    +7f4 uint32 MinimumDpcRate
    +7f8 uint32 CachePad4[2]
    +800 struct _LIST_ENTRY DpcListHead
    +800 struct _LIST_ENTRY *Flink
    +804 struct _LIST_ENTRY *Blink
    +808 uint32 DpcQueueDepth
    +80c uint32 DpcRoutineActive
    +810 uint32 DpcCount
    +814 uint32 DpcLastCount
    +818 uint32 DpcRequestRate
    +81c void *DpcStack
    DPC的处理方法有两种,一种是把KDPC对象串上DpcListHead。在KiIdleLoop里,系统检测到当前DPC链表不为空,于是调用KiRetireDpcList,KiRetireDpcList设置当前DpcRoutineActive状态为TRUE(M$在这里把ESP的值赋与该成员,显然任何时刻ESP都是大于0的)并把DpcInterruptRequested设置为TRUE,然后从DpcListHead里取出串在该链表上的KDPC结构的DPC例程入口和参数。处理完后恢复原状并把DpcCount加一。另一种方法是等待KTIMER调度对象,DPC调度发生的频率是相当高的,但大部分时间都是处理定时器KTIMER过期DPC,很多DPC通过等待KTIMER的方法被在KiTimerExpiration->KiTimerListExpire里处理。这里的溢出是属于第一种方法,我们处于DPC调度中,DpcRoutineActive和DpcInterruptRequested都为TRUE,进行栈回溯就会发现是由KiIdleLoop调用了KiRetireDpcList。显然这两处成员得恢复原来的0值(其实不恢复也可以,在第一个int 0x2e里如果发生了DPC调度后就会帮我们恢复,但就会降低溢出的成功率,因为如果在int 0x2e在ATTACH进程前还没发生DPC调度系统就会蓝屏,蓝屏代码0x)。其实系统中有些蓝屏是系统有意调用以防止你做某些事,这些事情如果你处理得好是不会对系统产生影响的,比如不能在DPC处理处于活动(就是DpcRoutineActive为TRUE)进行环境切换,但在这个漏洞溢出里我们第一步就是进行环境切换:)。所以突破系统对

[1] [2] [3] [4] [5] [6] [7] [8] 下一页

[ 收藏此页到: 天天|和讯|博采|ViVi|狐摘|我摘|天极 ] 文章录入:kinda    责任编辑:kinda 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    专 题 栏 目
    最 新 热 门
     Windows中巧用RUNDLL3[5355]
     黑客软件编写基础知识[827]
     Win32Asm快速教程[535]
    相 关 文 章
    WinImage密码的另一种破解
    CmailServer3.2注册机改进
    破解foxmail3.11帐户口令保
    手把手教你破FoxMAIL口令
    MagicWin981.30f的注册机源
    EasyRecovery5.05个文件限
    破解Screenloggermanagerv
    暴破PerformanceTest3.4
    菜鸟破解录(12)之AxMan3.1
    KEYMAKE制作内存注册机特殊
    菜鸟破解录(14)之3DMark20
    破解心得之3DMark2001篇
    我的PE程序加密核心代码(M
    破解AdvancedEmailSearche
    AltoMP3Maker的破解
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)