<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SoftRCE.net &#187; BEIH/F</title>
	<atom:link href="http://www.softrce.net/archives/tag/beihf/feed" rel="self" type="application/rss+xml" />
	<link>http://www.softrce.net</link>
	<description>Software Reverse Code Engineering</description>
	<lastBuildDate>Tue, 03 Aug 2010 10:06:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>BEIH/F：总线枚举接口劫持/伪造</title>
		<link>http://www.softrce.net/archives/192</link>
		<comments>http://www.softrce.net/archives/192#comments</comments>
		<pubDate>Mon, 01 Jun 2009 00:31:45 +0000</pubDate>
		<dc:creator>azy</dc:creator>
				<category><![CDATA[独孤九剑（Kernel）]]></category>
		<category><![CDATA[BEIH/F]]></category>
		<category><![CDATA[劫持]]></category>

		<guid isPermaLink="false">http://www.softrce.net/?p=192</guid>
		<description><![CDATA[BEIH/F，穿越，HIPS，主动防御，加载驱... ]]></description>
			<content:encoded><![CDATA[<p>BEIH/F：总线枚举接口劫持/伪造</p>
<p>作者：Azy<br />
日期：2009-5-31</p>
<p>    如果说Audio Mixer劫持（AMH, <a href="http://hi.baidu.com/azy0922/blog/item/fc4fc91e5c2d2617403417a8.html">http://hi.baidu.com/azy0922/blog/item/fc4fc91e5c2d2617403417a8.html</a>）是一种较为被动的穿越，那么BEIH/F则是主动的攻击。通过BEIH/F可以穿越地上HIPS/主动防御产品加载驱动。<span id="more-192"></span><br />
    该方法原理与amh是相同的，最后驱动的加载也是走ExpWorkerThread-&gt;PipDeviceActionWorker-&gt;IopLoadDriver这条路径，从而绕过了HIPS/主防产品的拦截。但触发攻击的方式完全不同。<br />
    OS中存在一些音频驱动，它们的Start=3，并且Enum键下的值均为0。这些驱动是在系统需要的时候动态枚举并安装总线接口，然后加载相应的驱动文件。<br />
    那么如何触发动态枚举安装接口并加载这些驱动呢？答案就是给swenum驱动发送一个特别的I/O Control Code来触发。在InputBuffer中填入欲加载驱动所在接口的GUID值，然后发I/O control Irp到swenum驱动，便可完成一次触发。内核在接到上述Irp后会扫描总线并动态进行接口安装，然后调用IoInvalidateDeviceRelations来触发最后的驱动安装。<br />
    由于这一过程完全是人为可控，并且总线枚举的GUID信息全部存储在注册表中，因此我们可以事先篡改仿造HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\SW键及HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses下面对应的GUID值及其它接口信息。这样一来，便可成功完成一次BEIH/F攻击。</p>
<hr /><h2>Comments</h2><ul><li><a href="http://www.softrce.net/archives/192#comment-78">2009年06月8日</a>, dge writes: 膜拜</li></ul><hr /><small>Copyright &copy; 2008<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:<br /> 8e761b2ea8edc3ca311452b020051837)</small><h3  class="related_post_title">随机日志</h3><ul class="related_post"></ul>]]></content:encoded>
			<wfw:commentRss>http://www.softrce.net/archives/192/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
