<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2097712764192239823</id><updated>2011-12-11T16:22:34.797Z</updated><category term='Hypersight'/><category term='AVEEngine'/><title type='text'>north security labs blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://northsecuritylabs.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2097712764192239823/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://northsecuritylabs.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>northlabs</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2097712764192239823.post-7378699472049217031</id><published>2011-12-10T12:30:00.019Z</published><updated>2011-12-11T16:22:34.807Z</updated><title type='text'>The Case of Maximus (Mebroot-based) Bootkit</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;a href="http://1.bp.blogspot.com/-817LoqdIGpc/TuNRH8MIO1I/AAAAAAAAAI0/7Vl39EPQ0u8/s1600/events1.PNG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;/a&gt;&lt;div style="background-color: transparent; "&gt;&lt;div style="background-color: transparent; "&gt;&lt;span id="internal-source-marker_0.6896739839576185" style="font-size: 13px; font-family: Verdana; background-color: transparent; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;The next guinea pig is &lt;/span&gt;&lt;a href="http://www.virustotal.com/file-scan/report.html?id=d193eeafa5a873311a2cb2bc63433c9dd2d5506830df1075e9246fa5250ede33-1315947014"&gt;&lt;span style="font-size: 13px; font-family: Verdana; color: rgb(0, 0, 153); background-color: transparent; vertical-align: baseline; white-space: pre-wrap; "&gt;Maximus&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 13px; font-family: Verdana; background-color: transparent; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt; bootkit based on notorious Mebroot/Sinowal/MaosBoot. This bootkit is dated by 2008. Its dropper waits some time (about a hour) to complete installation. Then it reboots the computer. It refuses to work on our Windows 7 test system, but perfectly works on Windows Server 2003. Let’s start Hypersight Rootkit Detector’s monitoring on the infected system:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 13px; font-family: Verdana; background-color: transparent; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-WeEvfxMCuZk/TuNSr_poENI/AAAAAAAAAKA/uttAW8Ozu6o/s1600/state1.PNG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 260px;" src="http://1.bp.blogspot.com/-WeEvfxMCuZk/TuNSr_poENI/AAAAAAAAAKA/uttAW8Ozu6o/s400/state1.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5684478070445576402" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-a8faDywuoJk/TuNTDfcNVUI/AAAAAAAAAKM/BUKZlb2-auQ/s1600/events1.PNG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 260px;" src="http://4.bp.blogspot.com/-a8faDywuoJk/TuNTDfcNVUI/AAAAAAAAAKM/BUKZlb2-auQ/s400/events1.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5684478474116224322" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: 13px; font-family: Verdana; background-color: transparent; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;We see about 40...60 “stealth code” events. This tells us about a relatively big code base of the rootkit.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 13px; font-family: Verdana; background-color: transparent; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 13px; font-family: Verdana; background-color: transparent; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;There are some typical code pieces of this rootkit shown below.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 13px; font-family: Verdana; background-color: transparent; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 13px; font-family: Verdana; background-color: transparent; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;The code called by patched call of tcpip!IPRcvPacket:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color: transparent; vertical-align: baseline; text-decoration: none; white-space: pre-wrap; font-size: 13px; font-family: Verdana; "&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-i26Zamod9E4/TuNTawycghI/AAAAAAAAAKY/rF2FtPx5S1w/s1600/tcpip-spliced-call.PNG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 395px; height: 400px;" src="http://1.bp.blogspot.com/-i26Zamod9E4/TuNTawycghI/AAAAAAAAAKY/rF2FtPx5S1w/s400/tcpip-spliced-call.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5684478873909887506" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 13px; white-space: pre-wrap; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 13px; white-space: pre-wrap; "&gt;The hooked IRP_MJ_WRITE callback of disk.sys:&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-mNBu8IPN0Yo/TuNT64OSYiI/AAAAAAAAAKk/m1IEbL2Wr-c/s1600/irp-hook-disk-mj-write.PNG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 395px;" src="http://3.bp.blogspot.com/-mNBu8IPN0Yo/TuNT64OSYiI/AAAAAAAAAKk/m1IEbL2Wr-c/s400/irp-hook-disk-mj-write.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5684479425661526562" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: 13px; font-family: Verdana; background-color: transparent; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;span style="font-size: 13px; font-family: Verdana; background-color: transparent; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;The code called from ndis.sys driver:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;a href="http://2.bp.blogspot.com/-IFpGFDtbjDQ/TuNUkamvAVI/AAAAAAAAAKw/ahq_PBNpkU0/s1600/ndis-callback.PNG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 395px; height: 400px;" src="http://2.bp.blogspot.com/-IFpGFDtbjDQ/TuNUkamvAVI/AAAAAAAAAKw/ahq_PBNpkU0/s400/ndis-callback.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5684480139265507666" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 13px; white-space: pre-wrap; "&gt;And finally, the piece of the bootkit’s image in the memory (“MaOS” is a signature typical for Mebroot bootkits):&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://4.bp.blogspot.com/-YOd5QMWrjio/TuNRbke0irI/AAAAAAAAAJw/8R9w4ijx8dk/s1600/rk-body-dump.PNG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://4.bp.blogspot.com/-YOd5QMWrjio/TuNRbke0irI/AAAAAAAAAJw/8R9w4ijx8dk/s400/rk-body-dump.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5684476688762964658" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 367px; height: 400px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: 13px; font-family: Verdana; background-color: transparent; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Mebroot bootkit places its body into nonpaged pool beyond the code of kernel-mode modules. This helps to avoid detection by anti-viruses and software-based rootkit detectors. But it fails to hide from hypervisors.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 13px; font-family: Verdana; background-color: transparent; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097712764192239823-7378699472049217031?l=northsecuritylabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://northsecuritylabs.blogspot.com/feeds/7378699472049217031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2097712764192239823&amp;postID=7378699472049217031' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2097712764192239823/posts/default/7378699472049217031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2097712764192239823/posts/default/7378699472049217031'/><link rel='alternate' type='text/html' href='http://northsecuritylabs.blogspot.com/2011/12/case-of-maximus-mebroot-based-bootkit.html' title='The Case of Maximus (Mebroot-based) Bootkit'/><author><name>northlabs</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-WeEvfxMCuZk/TuNSr_poENI/AAAAAAAAAKA/uttAW8Ozu6o/s72-c/state1.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2097712764192239823.post-2497534763046882618</id><published>2011-12-09T17:06:00.025Z</published><updated>2011-12-10T18:05:12.212Z</updated><title type='text'>The Case of AllInOne (Nailuj) Rootkit</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;We continue writing about detection of various rootkits by Hypersight Rootkit Detector. Today we will test the AllInOne rootkit aka &lt;a href="http://www.virustotal.com/file-scan/report.html?id=5009530b7f884848d4feb906179a4335b033abc9b784e777daf21be145bf0b4a-1315945940"&gt;&lt;span style="color: rgb(0, 0, 153); background-color: transparent; vertical-align: baseline; white-space: pre-wrap; "&gt;Trojan.Nailuj.A&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;. &lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;This is relatively old rootkit and it does not work properly in Windows Vista and Windows 7 (bugcheck 0x7E SYSTEM_THREAD_EXCEPTION_NOT_HANDLED)&lt;/span&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap; "&gt;. &lt;/span&gt;&lt;div style="background-color: transparent; "&gt;&lt;span style="background-color: transparent; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;However it installs correctly on Windows Server 2003. It drops the file &lt;/span&gt;&lt;a href="http://www.virustotal.com/file-scan/report.html?id=0690c9d963fec6373f0b9260130d50be7a34a01b59d9389327a9765fb1d6045b-1315069909"&gt;&lt;span style="color: rgb(0, 0, 153); background-color: transparent; vertical-align: baseline; white-space: pre-wrap; "&gt;VideoAti0.sys&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt; into %WINDIR%\system32\drivers directory. After rebooting it makes files of the dropper and the driver invisible.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Let’s start monitoring of Hypersight when rootkit has become invisible. We will see “Stealth Code Executed” activity:&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent; "&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent; "&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;a href="http://1.bp.blogspot.com/-6lw8AAlyTmE/TuJf336Z_aI/AAAAAAAAAIo/UMWHNWDek7w/s1600/events.PNG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://1.bp.blogspot.com/-6lw8AAlyTmE/TuJf336Z_aI/AAAAAAAAAIo/UMWHNWDek7w/s400/events.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5684211093201354146" style="color: rgb(0, 0, 238); white-space: normal; text-decoration: underline; display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 260px; " /&gt;&lt;/a&gt;&lt;br /&gt;The rootkit’s stealth code looks like&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color: transparent; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-ceDQnCJKMNY/TuJTriwvMWI/AAAAAAAAAHg/BxKdypJVUS4/s1600/event-dump.PNG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://2.bp.blogspot.com/-ceDQnCJKMNY/TuJTriwvMWI/AAAAAAAAAHg/BxKdypJVUS4/s320/event-dump.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5684197687225692514" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 298px; " /&gt;&lt;/a&gt;&lt;div style="text-align: center; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center; "&gt;&lt;a href="http://2.bp.blogspot.com/-s-yhAFaUVrY/TuJT8MjdSdI/AAAAAAAAAHs/h6MPv3qwaYc/s1600/code-and-ret-addr.PNG" style="text-align: left; " onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://2.bp.blogspot.com/-s-yhAFaUVrY/TuJT8MjdSdI/AAAAAAAAAHs/h6MPv3qwaYc/s320/code-and-ret-addr.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5684197973322189266" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 298px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="background-color: transparent; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;As we can see from return address on the stack, this is a IRP hook procedure. &lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;ESI points to the DRIVER_OBJECT and EAX contains the number of IRP major function (IRP handlers are called by the opcode CALL [ESI + EAX * 4 + 0x38] in Windows Server 2003).&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Where the stealth code is resided? To determine this, let's look at the list of kernel modules:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/-wynphekV5ZI/TuJeshv6miI/AAAAAAAAAIQ/qu4UufOQcuQ/s1600/module-list.PNG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://1.bp.blogspot.com/-wynphekV5ZI/TuJeshv6miI/AAAAAAAAAIQ/qu4UufOQcuQ/s320/module-list.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5684209798761585186" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 298px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color: transparent; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;span style="background-color: transparent; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;As we can see, the code is resided between two modules. We can conclude this is a code of driver, which is hidden by excluding from the list of drivers.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Finally, we can look at the dump of code page for each event to recover the rootkit's image in the memory:&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-8396W9JqLNY/TuJUUlMG0KI/AAAAAAAAAIE/1iCao1QO-Tk/s1600/rk-module-dump.PNG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://1.bp.blogspot.com/-8396W9JqLNY/TuJUUlMG0KI/AAAAAAAAAIE/1iCao1QO-Tk/s320/rk-module-dump.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5684198392251994274" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 298px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That's all for today. Good luck with discovering new rootkits.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097712764192239823-2497534763046882618?l=northsecuritylabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://northsecuritylabs.blogspot.com/feeds/2497534763046882618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2097712764192239823&amp;postID=2497534763046882618' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2097712764192239823/posts/default/2497534763046882618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2097712764192239823/posts/default/2497534763046882618'/><link rel='alternate' type='text/html' href='http://northsecuritylabs.blogspot.com/2011/12/case-of-nailuj-rootkit.html' title='The Case of AllInOne (Nailuj) Rootkit'/><author><name>northlabs</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-6lw8AAlyTmE/TuJf336Z_aI/AAAAAAAAAIo/UMWHNWDek7w/s72-c/events.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2097712764192239823.post-2240085631297612264</id><published>2011-11-17T20:39:00.009Z</published><updated>2011-11-17T21:48:19.129Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hypersight'/><title type='text'>Release of Hypersight Rootkit Detector</title><content type='html'>Greetings to all, we have great news. Hypersight Rootkit Detector is &lt;a href="http://northsecuritylabs.com/"&gt;released&lt;/a&gt;. It is the first publicly available virtualization-based detector of kernel-mode rootkits for Windows NT.&lt;br /&gt;&lt;br /&gt;The huge work is completed, and the product is ready for shipping. We would like to thank all people who helped us with advices, criticism and testing.&lt;br /&gt;&lt;br /&gt;The purpose of Hypersight RD is monitoring the Windows kernel against the following malicious events:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Hypervisor-Like Activity. Attempts to start hypervisor (enter virtualization root mode) by kernel-mode code. This activity is blocked. Hypervisors cannot be started when monitoring is active. &lt;/li&gt;&lt;li&gt;Suspicious CPU Activity. Rootkits often change control registers. Mostly this is clearing the "write-protect" bit of CR0 register for subsequent modifying of write-protected code.&lt;/li&gt;&lt;li&gt;In-Memory Code Modifications. This is modifying of non-paged code of drivers, Windows kernel and HAL. SSDT modifications fall in this category as well (SSDT is located in the code section of the NT kernel). Both direct modifications (with CR0.WP clearing) and modifications with remapping (MmMapLockedPages) are intercepted.&lt;/li&gt;&lt;li&gt;Stealth Code. This is the favorite trick of rootkit writers: to execute code outside of drivers and kernel. Traditional rootkit detectors are unable to find such code in the general case.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;These kinds of activity are typical for rootkits. Their interception reduces the scope for rootkit creators. It is still possible to write undetectable rootkit but with Hypersight this becomes a challenging task.&lt;br /&gt;&lt;br /&gt;The activity is reported inside of the main window of Hypersight. A detailed description is provided for each intercepted event: CPU state, code, stack and list of kernel modules. Usually this information is enough to identify the threat.&lt;br /&gt;&lt;br /&gt;Hypersight currently has the following requirements:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;OS: Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7 (x86 only for all systems)&lt;/li&gt;&lt;li&gt;Memory: 1GB minimum, 2GB recommended&lt;/li&gt;&lt;li&gt;Processors: Intel Core i3, i5, i7&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Hypersight is a shareware. Evaluation period is 15 days. Each registered customer gets two years of support, which includes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Consulting on events intercepted by program&lt;/li&gt;&lt;li&gt;Free updates of the application&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;The program is intended for technically advanced people who want to know what exactly happens in their computers. This knowledge helps to prevent negative consequences of targeted attacks and malware infections.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097712764192239823-2240085631297612264?l=northsecuritylabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://northsecuritylabs.blogspot.com/feeds/2240085631297612264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2097712764192239823&amp;postID=2240085631297612264' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2097712764192239823/posts/default/2240085631297612264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2097712764192239823/posts/default/2240085631297612264'/><link rel='alternate' type='text/html' href='http://northsecuritylabs.blogspot.com/2011/11/greetings-to-all-we-have-great-news.html' title='Release of Hypersight Rootkit Detector'/><author><name>northlabs</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2097712764192239823.post-7200734948608710562</id><published>2011-08-18T18:13:00.002+01:00</published><updated>2011-08-19T05:13:40.413+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AVEEngine'/><title type='text'>Anti-Virus Emulation Engine</title><content type='html'>Hi all, we have a new product for your attention. Anti-Virus Emulation Engine (AVE Engine) is a fast and small emulator of Win32 platform for anti-malware purposes.&lt;br /&gt;&lt;br /&gt;The emulator takes a Win32 binary (EXE or DLL) at input and executes it in virtual Win32 user-mode environment. In particular it emulates a subset of API functions necessary for unpacking.&lt;br /&gt;&lt;br /&gt;Three aspects were taken into account during development: simplicity, correctness and performance.&lt;br /&gt;&lt;br /&gt;Architecture of the emulator is simple and transparent. The emulator has been written in pure C, codebase size is approximate 20000 LOC. The code is easily portable to different platforms. Currently emulator works on Windows x86 and Linux x86 platforms. We are planning to add more supported platforms (Windows x64, Linux x86-64, Mac OS X x86/x86-64).&lt;br /&gt;&lt;br /&gt;The emulator correctly handles complex issues of Win32 emulation: exception handling, SEH emulation, support of undocumented platform's features. It is resistant to anti-debugging and anti-emulation techniques. Currently it supports unpacking of PE executables packed with UPX, ASPack, MEW, FSG, PECompact, NSPack, WinUpack packers. Private packers used by malwares are unpacked as well.&lt;br /&gt;&lt;br /&gt;AVE Engine uses dynamic translation technique to accelerating the emulation. Speed of emulation is high due to aggressive optimization of translated code. Memory footprint is small (1...2 MB for typical executable with size about 200...300KB).&lt;br /&gt;&lt;br /&gt;Interface of the engine is simple and flexible. It allows setting time limit of emulation and tuning event filters. Event handlers can read code and data from emulated memory for subsequent analysis.&lt;br /&gt;&lt;br /&gt;Emulator can be used:&lt;br /&gt;- In anti-virus scanners for unpacking and heuristic analyzing of executable files&lt;br /&gt;- In malware classification systems for obtaining relevant information for classification&lt;br /&gt;&lt;br /&gt;We offer AVE Engine to researchers and anti-virus developers on terms of commercial license. Two licensing options are available: binary and source license. If you are interested in details, feel free to contact us via sales at northsecuritylabs.com. The offer is limited due to specifics of the product. We will give preference to companies working in the field of information security.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097712764192239823-7200734948608710562?l=northsecuritylabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2097712764192239823/posts/default/7200734948608710562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2097712764192239823/posts/default/7200734948608710562'/><link rel='alternate' type='text/html' href='http://northsecuritylabs.blogspot.com/2011/08/anti-virus-emulation-engine.html' title='Anti-Virus Emulation Engine'/><author><name>northlabs</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2097712764192239823.post-3545141124796415726</id><published>2010-07-03T15:42:00.052+01:00</published><updated>2010-07-04T07:36:19.168+01:00</updated><title type='text'>The Case of TDL3 Rootkit</title><content type='html'>&lt;div&gt;&lt;div style="text-align: left; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;Let us check out the new facilities of Hypersight Rootkit Detector using a &lt;a href="http://www.virustotal.com/ru/analisis/91d9ffac6d75f29c8a7887a4be469d0909f66e39ae298db9d1341e9f560da728-1266954864"&gt;sample of TDL3 rootkit&lt;/a&gt;. This epic rootkit was a nightmare for virus analysts recently.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Testing environment: Windows 2003 SP2 system, Intel Core 2 Duo E6700 processor. The initial conditions of the test: Hypersight RD 1.0.1233.5523 beta is installed, PC has been rebooted and “Start” button is pressed inside of the UI.&lt;br /&gt;&lt;br /&gt;After starting the sample we can see that Hypersight has found covert code execution on the processor.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_faqNVH8gHkw/TC-YOwwPnzI/AAAAAAAAAFk/G-JuPnaf4jY/s1600/tdl3-drop-state.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 211px;" src="http://4.bp.blogspot.com/_faqNVH8gHkw/TC-YOwwPnzI/AAAAAAAAAFk/G-JuPnaf4jY/s320/tdl3-drop-state.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5489773850160766770" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_faqNVH8gHkw/TC-AOUWpp4I/AAAAAAAAAEk/2Hbj2T9lOJI/s1600/tdl3-drop-events.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 211px;" src="http://4.bp.blogspot.com/_faqNVH8gHkw/TC-AOUWpp4I/AAAAAAAAAEk/2Hbj2T9lOJI/s320/tdl3-drop-events.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5489747454258161538" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Covert code detected by Hypersight&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;We can observe several events. Each event is the execution of covert code on a single page (pages are 4096 bytes long in IA32/IA32e architecture). After pressing “Save All” button we can save the rootkit’s profile of execution to the compresed binary dump. Also we can press “View Dump” button and view each event dump in the separate window. Each dump contains couple of memory regions with the code and the stack, processor state and loaded kernel modules at the moment of event occurring. The format of event dumps is open. We will publish open source tool for decoding dumps soon.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_faqNVH8gHkw/TC-Y9Ezr_RI/AAAAAAAAAFs/Wuklz2x6xhU/s1600/tdl3-drop-dump-not-resized.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 222px;" src="http://1.bp.blogspot.com/_faqNVH8gHkw/TC-Y9Ezr_RI/AAAAAAAAAFs/Wuklz2x6xhU/s320/tdl3-drop-dump-not-resized.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5489774645817900306" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_faqNVH8gHkw/TC-aIWpheAI/AAAAAAAAAF0/qbtHDyBfxvI/s1600/tdl3-drop-dump-stack.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 222px;" src="http://4.bp.blogspot.com/_faqNVH8gHkw/TC-aIWpheAI/AAAAAAAAAF0/qbtHDyBfxvI/s320/tdl3-drop-dump-stack.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5489775939097294850" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_faqNVH8gHkw/TC-a5FQZmSI/AAAAAAAAAGM/7qrjqs_0Af0/s1600/tdl3-drop-dump-modules-begin.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 222px;" src="http://3.bp.blogspot.com/_faqNVH8gHkw/TC-a5FQZmSI/AAAAAAAAAGM/7qrjqs_0Af0/s320/tdl3-drop-dump-modules-begin.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5489776776242108706" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_faqNVH8gHkw/TC-bQxyHFXI/AAAAAAAAAGc/35ucRcfgH-w/s1600/tdl3-drop-dump-modules-end.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 222px;" src="http://4.bp.blogspot.com/_faqNVH8gHkw/TC-bQxyHFXI/AAAAAAAAAGc/35ucRcfgH-w/s320/tdl3-drop-dump-modules-end.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5489777183331652978" /&gt;&lt;/a&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Dump of code launched from TDL3 dropper&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;If you have reverse engineering skills, you can check out the stack for return address and see that the code has been launched from the newly loaded kernel module (3.tmp).&lt;/div&gt;&lt;div&gt;Another typical dump: a hook installed on IRP callback. In this case, one of registers in the dump usually points to driver object (DRIVER_OBJECT) MajorFunction callback of which has been hooked.&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_faqNVH8gHkw/TC-b0NyynxI/AAAAAAAAAGk/nyKQa6jObm4/s1600/tdl3-drop-dump-irp-hook.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 222px;" src="http://4.bp.blogspot.com/_faqNVH8gHkw/TC-b0NyynxI/AAAAAAAAAGk/nyKQa6jObm4/s320/tdl3-drop-dump-irp-hook.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5489777792146120466" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Dump of IRP hook installed by TDL3. ESI points to DRIVER_OBJECT structure&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;For sure, TDL3 is not the only rootkit which can be detected and analyzed. Hypersight Rootkit Detector provides generic detection of kernel mode rootkits. We'll keep you in touch with the information of all the other rootkits as soon as we have more details.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097712764192239823-3545141124796415726?l=northsecuritylabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://northsecuritylabs.blogspot.com/feeds/3545141124796415726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2097712764192239823&amp;postID=3545141124796415726' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2097712764192239823/posts/default/3545141124796415726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2097712764192239823/posts/default/3545141124796415726'/><link rel='alternate' type='text/html' href='http://northsecuritylabs.blogspot.com/2010/07/case-of-tdl3-rootkit.html' title='The Case of TDL3 Rootkit'/><author><name>northlabs</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_faqNVH8gHkw/TC-YOwwPnzI/AAAAAAAAAFk/G-JuPnaf4jY/s72-c/tdl3-drop-state.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2097712764192239823.post-5329826891826014701</id><published>2010-07-03T15:37:00.004+01:00</published><updated>2010-07-03T15:42:20.288+01:00</updated><title type='text'>Detection of Rootkits: the Next Step</title><content type='html'>Everyone knows what a great challenge are modern rootkits. &lt;a href="http://www.networkworld.com/news/2009/072209-botnets.html"&gt;Millions of computers worldwide&lt;/a&gt; are infected with rootkit-based bots. Modern anti-virus and anti-rootkit solutions are useless to detect most of them. The common approach in recent years is the development of particular solutions detecting certain versions of some rootkit. Typically, these solutions do not work after the appearance of a new version of the rootkit.&lt;br /&gt;&lt;br /&gt;Our company has conducted extensive research in the field of rootkit detection past 3 years. We concluded that the detection of rootkits is possible using virtualization technologies. The recent hardware virtualization technology Intel VT-x and AMD-V have facilitated this task.&lt;br /&gt;&lt;br /&gt;We have designed Hypersight Rootkit Detector. It was the first Windows-based solution of this class. The first version of the program could intercept only a few actions, typical for rootkits: modification of control registers, modification of executable code, turning hardware virtualization on. It makes possible to detect many types of rootkits. Nevertheless, this was not enough. Detouring these interceptions was still possible from the rootkit side.&lt;br /&gt;&lt;br /&gt;Now we are proposing a more generic criterion for detection of rootkits.  For all rootkits, regardless of the technologies used (SSDT hooking, DKOM, DKOH, Shadow Walker, splicing), there is one common trait. They are executed on the processor. We have implemented the algorithm which performs basic checks on the code prior its execution. The technology was named Fast Code Test (FCT). The code executed at the privileged level, subjected to a number of basic checks. If checks fail, notification about undesirable activity is generated.&lt;br /&gt;&lt;br /&gt;Currently, checks are quite simple. The code running outside of loaded drivers, kernel and HAL is considered as suspicious. This approach makes possible to detect the absolute majority of the currently known rootkits. Recent rootkits tend to run “covert” code in kernel non-paged pool in order to avoid detection by memory scanning. This is the activity detected by FCT.&lt;br /&gt;&lt;br /&gt;Signature scanning and code whitelisting will be the further steps in the development of Fast Code Test.&lt;br /&gt;&lt;br /&gt;Fast Code Test significantly complicates the task of writing "undetectable" rootkit. We plan to develop this technology in terms of productivity and efficiency.  We hope it will help people to analyze new rootkits faster and more efficiently.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097712764192239823-5329826891826014701?l=northsecuritylabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://northsecuritylabs.blogspot.com/feeds/5329826891826014701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2097712764192239823&amp;postID=5329826891826014701' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2097712764192239823/posts/default/5329826891826014701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2097712764192239823/posts/default/5329826891826014701'/><link rel='alternate' type='text/html' href='http://northsecuritylabs.blogspot.com/2010/07/detection-of-rootkits-next-step.html' title='Detection of Rootkits: the Next Step'/><author><name>northlabs</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2097712764192239823.post-6766669509269711909</id><published>2008-06-22T23:23:00.016+01:00</published><updated>2011-08-19T05:32:39.254+01:00</updated><title type='text'>Catching Blue Pill</title><content type='html'>HVT-based rootkits became a new headache for anti-malware vendors since their appearance in 2006. There are no working HVT rootkits yet (only PoC implementations), but who knows what happens later? It is possible (not easy though) to create a HVT rootkit with extra functions such as keylogging, HDD access, network communication or traffic interception. Plenty of helpful source codes are available for a rootkit creator (such as open source hardware drivers, open source operating systems etc). VT-based rootkits are very hard to detect when they are already installed. Moreover, no existing anti-malware product is capable of preventing a VT-based rootkit from installing.&lt;br /&gt;&lt;br /&gt;So what is the solution? It is possible to detect HVT rootkits by monitoring indirect results of their activity. The advantages and disadvantages of this approach are well described in Joanna Rutkowska’s articles. The methods described are not generic and can be cheated by a rootkit (e.g. Blue Chicken method). Furthermore, they don't allow unambiguos detection of a rootkit since they don't give any access to the rootkit’s body.&lt;br /&gt;&lt;br /&gt;We have found another approach. Here is its brief description.&lt;br /&gt;The idea is to intercept a hypervisor's start by another hypervisor (let’s call the latter a Virtual Intrusion Prevention System, or VIPS). When any hypervisor (malicious or legitimate) starts, it turns VM root mode on. This event can be easily intercepted by a VIPS. So what's next? There are 2 ways to handle this event: blocking a hypervisor completely, or allowing it to work through emulation.&lt;br /&gt;&lt;br /&gt;The first way consists in emulating a PC with disabled HVT feature in BIOS. This will block a HVT rootkit from working.&lt;br /&gt;&lt;br /&gt;The second way consists in allowing a hypervisor to work through emulated hardware virtualization (or nesting). This should be done for legitimate virtualization software.&lt;br /&gt;&lt;br /&gt;In both cases (blocking or emulating), a VIPS intercepts a hypervisor at the moment it tries to start. VIPS can read the hypervisor’s body and analyze it. A notification message can be shown.&lt;br /&gt;&lt;br /&gt;At present only the first case is implemented - preventing a hypervisor's start. The second case is currently in development. We hope it to be ready soon.&lt;br /&gt;To check the new feature of the Hypersight Rootkit Detector, we have used the &lt;a href="http://invisiblethingslab.com/pub/chksvmx.exe"&gt;CHKSVMX&lt;/a&gt; tool from Invisible Things Lab. When we run CHKSVMX on a PC with installed Hypersight RD, a message from HRD appears that a hypervisor’s start has been blocked. CHKSVMX tool also  reports a disabled HVT feature (see images below).&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_faqNVH8gHkw/SF7RDwCRgsI/AAAAAAAAAC8/XBVFI_nGl-o/s1600-h/vt-x-detect.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_faqNVH8gHkw/SF7RDwCRgsI/AAAAAAAAAC8/XBVFI_nGl-o/s320/vt-x-detect.PNG" alt="" id="BLOGGER_PHOTO_ID_5214835280905863874" border="0" /&gt;&lt;/a&gt;Detecting and blocking hypervisor on Intel VT-x&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_faqNVH8gHkw/SF7RbNcUMlI/AAAAAAAAADE/0J22KE2Qzqo/s1600-h/amd-v-detect.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_faqNVH8gHkw/SF7RbNcUMlI/AAAAAAAAADE/0J22KE2Qzqo/s320/amd-v-detect.PNG" alt="" id="BLOGGER_PHOTO_ID_5214835683936711250" border="0" /&gt;&lt;/a&gt;Detecting and blocking hypervisor on AMD-V&lt;/div&gt;&lt;br /&gt;We didn’t test the new HRD feature with the Blue Pill because the Blue Pill is currently implemented on x64 platform only. When we create a x64 version of Hypersight, it will be detecting the Blue Pill as well. The opportunity to catch a Blue Pill does exist and we have proven it.&lt;br /&gt;&lt;br /&gt;The approach described can be successfully implemented in anti-malware software to achieve HVT rootkits blocking. It can also be integrated with virtualization software. The real BP stopping aproach can demotivate malware creators from exploring the area of HVT rootkits (mind that the creation of a full-scale HVT rootkit is a big challenge comparable to development of a mini-OS).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097712764192239823-6766669509269711909?l=northsecuritylabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2097712764192239823/posts/default/6766669509269711909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2097712764192239823/posts/default/6766669509269711909'/><link rel='alternate' type='text/html' href='http://northsecuritylabs.blogspot.com/2008/06/catching-blue-pill.html' title='Catching Blue Pill'/><author><name>northlabs</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_faqNVH8gHkw/SF7RDwCRgsI/AAAAAAAAAC8/XBVFI_nGl-o/s72-c/vt-x-detect.PNG' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-2097712764192239823.post-5310951990712948299</id><published>2008-01-27T00:30:00.000Z</published><updated>2008-01-27T12:58:06.883Z</updated><title type='text'>Detecting and blocking Shadow Walker</title><content type='html'>Recently we got a sample of code that conceals itself in the memory by modifying the page table (a technology known as Shadow Walker).    Shadow Walker is based on the fact that Intel IA-32 CPUs have 2 address-translation caches: for code pages (ITLB) and for data pages (DTLB). It works like this. A page fault handler (int 0x0e) is intercepted, and then the pages of concealed code in the page table are marked as missing pages. After that, any attempts to access those pages for read, write or execute lead to page faults. The page fault handler checks requested access to page: either execution or access to data. In the case of execution, the handler loads ITLB with a original code page. In the case of access to data, the handler loads DTLB with a fake page. Thus, using desynchronization of ITLB and DTLB, Shadow Walker conceals its presence in the memory. &lt;br /&gt;&lt;br /&gt;We tried to run Shadow Walker on a computer with installed Hypersight RD 0.3.543.   &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Test 1. Detecting&lt;br /&gt;&lt;br /&gt;In this test Hypersight RD worked with the default settings. By these settings, modifications of the page table are allowed and recorded. After running Shadow Walker we noticed the window Hypersight RD had started to scroll messages on writing to page table. Hypersight RD window had been looked as follows.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_faqNVH8gHkw/R5vS5oGBDmI/AAAAAAAAAC0/edCoNqac-1o/s1600-h/sw_allowed.PNG"&gt;&lt;img style="float:center; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_faqNVH8gHkw/R5vS5oGBDmI/AAAAAAAAAC0/edCoNqac-1o/s320/sw_allowed.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5159949685540064866" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The figure shows that a code that doesn’t belong to any of the kernel modules, writes to the page table. This activity is performed by the page fault handler, marking concealed pages as present or absent when loading them to TLB.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Test 2. Blocking&lt;br /&gt;&lt;br /&gt;For this test we have turned on the option "Disable page table modification (unsafe)". This option turns on blocking of the page table modification by untrusted code.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_faqNVH8gHkw/R5vSsIGBDlI/AAAAAAAAACs/OQIrJhzxyYo/s1600-h/sw_options.PNG"&gt;&lt;img style="float:center; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_faqNVH8gHkw/R5vSsIGBDlI/AAAAAAAAACs/OQIrJhzxyYo/s320/sw_options.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5159949453611830866" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Then Shadow Walker was loaded. Hypersight RD window had taken the following form.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_faqNVH8gHkw/R5vSHIGBDkI/AAAAAAAAACk/e7Lzr3k5Vg0/s1600-h/sw_denyed.PNG"&gt;&lt;img style="float:center; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_faqNVH8gHkw/R5vSHIGBDkI/AAAAAAAAACk/e7Lzr3k5Vg0/s320/sw_denyed.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5159948817956671042" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can see that Hypersight RD blocked Shadow Walker’s attempts to modify the page table. Subsequent work of Shadow Walker became impossible since Shadow Walker was unable to mark pages of code as missing. Thus, the Shadow Walker had been completely blocked.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097712764192239823-5310951990712948299?l=northsecuritylabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://northsecuritylabs.blogspot.com/feeds/5310951990712948299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2097712764192239823&amp;postID=5310951990712948299' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2097712764192239823/posts/default/5310951990712948299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2097712764192239823/posts/default/5310951990712948299'/><link rel='alternate' type='text/html' href='http://northsecuritylabs.blogspot.com/2008/01/detecting-and-blocking-shadow-walker.html' title='Detecting and blocking Shadow Walker'/><author><name>northlabs</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_faqNVH8gHkw/R5vS5oGBDmI/AAAAAAAAAC0/edCoNqac-1o/s72-c/sw_allowed.PNG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2097712764192239823.post-1332647293979032868</id><published>2007-12-11T00:04:00.000Z</published><updated>2007-12-11T00:07:14.816Z</updated><title type='text'>Renaming</title><content type='html'>We have renamed our product code-named Raidho Rootkit Detector to Hypersight Rootkit Detector. Web site is coming soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097712764192239823-1332647293979032868?l=northsecuritylabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://northsecuritylabs.blogspot.com/feeds/1332647293979032868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2097712764192239823&amp;postID=1332647293979032868' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2097712764192239823/posts/default/1332647293979032868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2097712764192239823/posts/default/1332647293979032868'/><link rel='alternate' type='text/html' href='http://northsecuritylabs.blogspot.com/2007/12/renaming.html' title='Renaming'/><author><name>northlabs</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2097712764192239823.post-8996428579784082556</id><published>2007-11-19T16:04:00.000Z</published><updated>2008-01-27T11:07:41.560Z</updated><title type='text'>Raidho Rootkit Detector 0.1 alpha</title><content type='html'>We have designed Raidho Rootkit Detector 0.1 alpha. It works on CPUs with VT-x technology supported. Program detects presence of Rustock rootkit by intercepting its attempts to patch the kernel code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097712764192239823-8996428579784082556?l=northsecuritylabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://northsecuritylabs.blogspot.com/feeds/8996428579784082556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2097712764192239823&amp;postID=8996428579784082556' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2097712764192239823/posts/default/8996428579784082556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2097712764192239823/posts/default/8996428579784082556'/><link rel='alternate' type='text/html' href='http://northsecuritylabs.blogspot.com/2007/11/raidho-01-alpha.html' title='Raidho Rootkit Detector 0.1 alpha'/><author><name>northlabs</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2097712764192239823.post-6521157910300933611</id><published>2007-11-13T19:23:00.000Z</published><updated>2007-11-13T19:27:38.870Z</updated><title type='text'>Let's begin</title><content type='html'>Okay, now we started this blog. All information about our future projects will be posted here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097712764192239823-6521157910300933611?l=northsecuritylabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://northsecuritylabs.blogspot.com/feeds/6521157910300933611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2097712764192239823&amp;postID=6521157910300933611' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2097712764192239823/posts/default/6521157910300933611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2097712764192239823/posts/default/6521157910300933611'/><link rel='alternate' type='text/html' href='http://northsecuritylabs.blogspot.com/2007/11/lets-begin.html' title='Let&apos;s begin'/><author><name>northlabs</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
