系统克隆攻击与防范 黑客攻防实战 Windows系统克隆攻击与防范
人气:0一、克隆账号的原理与危害
1.克隆账号的原理
在注册表中有两处保存了账号的SID相对标志符,一处是注册表HKEY_LOCAL_MACHINE\SAM\AMDomains\AccountUsers 下的子键名,另一处是该子键的子项F的值。但微软犯了个不同步它们的错误,登录时用的是后者,查询时用前者。当用Administrator的F项覆盖其他账号的F项后,就造成了账号是管理员权限,但查询还是原来状态的情况,这就是所谓的克隆账号。
安全小知识:SID也就是安全标识符(Security Identifiers),是标识用户、组和计算机账户的唯一的号码。在第一次创建该账户时,将给网络上的每一个账户发布一个唯一的 SID。Windows 2000 中的内部进程将引用账户的 SID 而不是账户的用户或组名。如果创建账户,再删除账户,然后使用相同的用户名创建另一个账户,则新账户将不具有授权给前一个账户的权力或权限,原因是该账户具有不同的 SID 号。
2. 克隆账号的危害
当系统用户一旦被克隆,配合终端服务,就等于向攻击者开启了一扇隐蔽的后门,让攻击者可以随时进入你的系统,这一扇门你看不到,因为它依靠的是微软的终端服务,并没有释放病毒文件,所以也不会被杀毒软件所查杀。
二、克隆用户的常用方法
1.手工克隆方法一
在Windows 2000/xp/2003和Windows NT里,默认管理员账号的SID是固定的500(0x1f4),那么我们可以用机器里已经存在的一个账号将SID为500的账号进行克隆,在这里我们选择的账号是IUSR_XODU5PTT910NHOO(XODU5PTT910NHOO为已被攻陷的服务器机器名。为了加强隐蔽性,我们选择了这个账号,所有用户都可以用以下的方法,只不过这个用户较常见罢了)
我们这里要用到的一个工具是PsExec,一个轻型的 telnet 替代工具,它使您无需手动安装客户端软件即可执行其他系统上的进程,并且可以获得与控制台应用程序相当的完全交互性。PsExec 最强大的功能之一是在远程系统和远程支持工具(如 IpConfig)中启动交互式命令提示窗口,以便显示无法通过其他方式显示的有关远程系统的信息。
执行:psexec -i -s -d cmd运行一个System的CMD Shell,如图1所示。
图1 |
得到一个有system权限的cmd shell,然后在该CMD Shell里面运行“regedit /e admin.reg HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000001F4”,这样我们将SID为500(0x1f4)的管理员账号的相关信息导出,如图2所示。
图2 |
然后编辑admin.reg文件,将admin.reg文件的第三行HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000001F4中的“1F4”修改为IUSR_XODU5PTT910NHOO的SID,将文件中的“1F4”修改为“3EB”,如图3所示。
图3 |
保存之后,然后执行如下命令:“regedit /s admin.reg”,导入该admin.reg文件,最后执行“net user IUSR_XODU5PTT910NHOO n3tl04d”命令,修改IUSR_XODU5PTT910NHOO的密码为n3tl04d。这里建议最好使用14位的密码,也就是说越像 IUSR_XODU5PTT910NHOO的密码越好,现在,就可以使用IUSR_XODU5PTT910NHOO密码为n3tl04d远程登录了,和管理员一样的配置环境!如图4所示。
图4 |
注意:大部份机器里IUSR_MACHINE用户的SID都为0x3E9(如果机器在最初安装的时候没有安装IIS,而是自己创建了账号后再安装IIS就有可能不是这个值了),如果不确定,可以使用:
“regedit /e sid.reg HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names\IUSR_MACHINE”命令先导出注册表,然后编辑sid.reg文件,就可以看到SID为“3EB”,如图5所示。
图5 |
2.手工克隆方法二
另外一种克隆账户的方法是:首先运行regedt32.exe,展开注册表到HKEY_LOCAL_MACHINE\SAM\SAM,然后点菜单栏的“编辑”→“权限”(Windows 2000是菜单栏的“安全”→“权限”),会弹出“SAM的权限”窗口,点击Administrators,在该窗口中勾选允许完全控制,(Windows 2000是在该窗口中勾选“允许将来自父系的可继承权限传播给该对象”)然后点击“确定”按钮。如图6所示。
图6 |
再找到HKEY_LOCAL_MACHINE\SAM\SAM\DomainsAccount\Users\00001F4,双击右边窗口中的“F”项,如图7所示。
图7 |
3.使用mt克隆
mt.exe是一款非常强大的网络工具,它主要以命令行方式执行,可以开启系统服务,检查用户以及直接显示用户登陆密码等。它就象一把双刃剑,入侵者和系统管理员都要使用它,但由于常被入侵者使用,所以被很多杀毒软件列为病毒。
关于MT的详细测试报告可以到http://www.antian365.com/bbs/viewthread.php?tid=2786&extra=page%3D1&frombbs=1了解。克隆用户的用法如下:
mt -clone
如:mt -clone adminstrator IUSR_XODU5PTT910NHOO
如图8所示。
图8 |
4.使用AIO克隆
AIO(All In One)是WinEggDrop写的一个把很多小工具功能集成一体的一个“工具”,其中有克隆用户、修改服务的启动类型、删除系统账户、检查系统隐藏服务、端口扫描和端口转发等等。
使用AIO克隆很简单,就是: Aio.exe -Clone 正常账号 要被克隆账户 密码
如: Aio.exe -Clone Administrator IUSR_XODU5PTT910NHOO n3tl04d
这样就可以用IUSR_XODU5PTT910NHOO\n3tl04d作为管理员登录了。
如图9所示。
图9 |
5.使用CA克隆
ca.exe 小榕编写的一个远程克隆账号工具,当然本地克隆也没问题。
用法如下:ca \\ip地址 管理员用户名 管理员密码 克隆的用户 密码
如:ca \\127.0.0.1 administrator 123456 IUSR_XODU5PTT910NHOO 123456
如图10所示。
图10 |
6.建立隐藏账号
需要使用的工具叫adhider,是锦毛鼠写的一个专门建立隐藏用户的工具。此工具有个缺点,那就是当服务器重启后,用户就隐藏不了,会在用户管理中显示出来。
用法如下:adhider 用户名 密码
如:adhider n3tl04d$\123456
如图11所示。
图11 |
n3tl04d$\123456登录,得到和管理员权限。
7.使用clone克隆
clone是28度的冰写的一个克隆工具,只支持windows2003和windowsxp,不支持windows2000。此工具有个缺点,那就是当服务器重启后,用户就隐藏不了,会在用户管理中显示出来。
用法如下:Clone.exe 用户名 密码
如:clone n3tl04d 520mm
如图12所示。
图12 |
就可以使用n3tl04d\520mm登录,得到和管理员权限。
注意:在Windows 2003下如果使用clone克隆后,再使用MT检查,会提示你没有系统权限,此时需要重启电脑或者运行一个有system权限的cmd才能使用MT检查。
三、克隆用户安全检查与防范
当系统用户被克隆之后,更改管理员也无济于事,服务器上面的信息和数据还是被攻击者随意窃取。所以必须把克隆的用户清除,再做其它方面的安全检查。
在检查是否存在克隆用户前,最好重启一下系统。对于上面第六和第七种方法克隆的,就会在用户管理里显示出来了,一看就知道。如图13所示。
图13 |
1.使用MT检查
在cmd命令行下,使用“mt–chkuser”命令,检查系统克隆账号,输入命令后,会在屏幕中输出结果,主要查看ExpectedSID和CheckedSID,如果这两个值不一样则说明账号被克隆了。如图14所示。
图14 |
从图中可以看出,IUSR_XODU5PTT910NHOO用户的ExpectedSID和CheckedSID不一样,且它的CheckedSID值是和管理员administrator的CheckedSID值一样,很明显IUSR_XODU5PTT910NHOO是一个克隆的账号。
2.使用AIO检查
不需要在system权限下也可用。
用法: Aio.exe –CheckClone,如图15所示。
图15 |
从图可以看出,n3tl04d,n3tl04d$都是克隆的账号。
3.使用CCA检查
CCA是小榕写的检查是否存在克隆的账号,支持远程检查,但必须有管理员账号。
用法如下:cca.exe \\ip地址 用户名 密码
检查本机是否存在克隆用户,如cca \\127.0.0.1 administrator 123456
如图16所示。
图16 |
4.使用LP_Check检查
如果系统存在克隆用户,软件将会显示红色。不过此工具检测不到使用adhider.exe克隆的用户。如图17所示。
图17 |
只检测到n3tl04d一个克隆的用户(显示红色),事实上还存在另一个克隆的账号n3tl04d$,但它没有检测出来。
5.手工检查
(1)对于系统默认用户,如guest、IUSR_XODU5PTT910NHOO,可使用“net user IUSR_XODU5PTT910NHOO”命令查看最后登录日期,如图18所示。
图18 |
从图可以看出,IUSR_XODU5PTT910NHOO在2008-12-4登录过系统,此账号默认是是显示“上次登录 从不”,因此可以判定账号已被克隆过。
(2)查看系统登录日志
Windows 2003的用户登录审核是默认开启的,如果有某个时间内发现不明的登录日志,如图19所示。
图19 |
在21:46左右,管理员并未登录系统,说明有其它用户登录过系统,点击就可以看到是哪个用户登录了,如图20所示。
图20 |
从图可以看出, n3tl04d$在21:46登录过系统,说明此账号就是被克隆的账号了。如果日志全没,管理员又没自己删除过,那肯定是入侵者删除的,说明系统肯定是被入侵了。此方法的不好之处就是要查看日志,如果攻击者很少登录的话,就难以被发现。
(3)查看注册表
首先运行regedt32.exe,展开注册表到HKEY_LOCAL_MACHINE\SAM\SAM,然后点菜单栏的“编辑”→“权限”,会弹出“SAM的权限”窗口,点击Administrators,在该窗口中勾选允许完全控制,然后点击“确定”按钮。再找到HKEY_LOCAL_MACHINE\SAM\SAM\DomainsAccount\Users\Names,查看是否存在不明的用户,如图21所示。
图21 |
此方法只能对添加新用户克隆有效,如果克隆的是系统默认账号,如guest、IUSR_MACHINE等账号,需要导出两个用户的键值,然后对比F项,如果IUSR_MACHINE的F值和管理员的F项的值相同,说明已被克隆了。如图22所示。
图22 |
从图中可以看出,3EB的F项的值和管理员1F4的值是一样,说明SID为3EB的这个账号是克隆账号。
6.删除克隆用户
(1) 如果是系统默认账号被克隆的话,先到一台正常电脑上,同样方法,复制相同用户下面的F项的值,如你发现的是IUSR_MACHINE(machine为机器名)用户被克隆,就打开一台正常电脑的注册表,找到HKEY_LOCAL_MACHINE\SAM\SAM\DomainsAccount\Users\000003EA,导出注册表,保存为3EA.reg,同样,回到被入侵过的电脑,导入被克隆过的用户注册表值为3eb.reg,接着就是把3ea.reg里面的F值复制替换3eb.reg里的F值,再把里面的ea改为eb(改这个的原因是因为两台电脑的IUSR_MACHINE用户的SID不一样,如果是一样,就不需要更改),如图23所示。
图23 |
保存后再导入注册表,然后在cmd下使用“net user IUSR_MACHINE n3tl04d520mm”更换密码。
如果是添加用户式的克隆可使用以下方法
(2)使用MT删除克隆用户
在cmd命令下输入“mt -killuser 用户名”
如:mt -killuser n3tl04d,成功后n3tl04d账号就不存在了,如图24所示。
图24 |
(3)使用AIO删除克隆用户
在cmd命令下输入“Aio.exe -DelUser 用户名”
如: Aio.exe -DelUser n3tl04d,成功后n3tl04d用户就被删除了。如图25所示。
图25 |
四、总结与探讨
由于条件等各方面的限制,此次全部操作都是在Windows 2003环境下完成,可能会有些不对的地方,请大家多多指正。
如果发现被克隆,有人说要重装系统,个人认为那是不明智的选择,特别是服务器作为虚拟主机的时候,你把客户的网站都停掉,造成的损失,谁来负责?再说,如果入侵是服务器配置不当,或者其它网站漏洞造成的,单单重装系统,并没有把原来的漏洞修补上,攻击者可以照着原路再一次把你的系统攻陷。但仅仅删除被克隆的用户也是远远不够的,还需要更改所有管理员密码。除此之外,个人认为还是应该对服务器做一次完整的安全检测和安全加固,如果能力有限,可以找相关的安全组织或公司帮你做。如果有需要,安天365团队愿意提供服务。
加载全部内容