当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言:
 

 

    摘要: 在肉鸡上装web服务器后,管理员在浏览器输入自己的ip就会发现自己被做成web服务器了,现在我发现了一个好办法可以迷惑管理员服务器软件apache1,在安装服务器前现在肉鸡的浏览器输入肉鸡的ip,看看这个肉鸡的isp服务商会跳转道那里,比如在上海就会跳转道上海热线ht......
 ·手把手教你禁止端口    »显示摘要«
    摘要: 手把手教你禁止端口 即使你对策略一点不懂也可以按照下面一步一步地完成禁用端口。一139为例1.开始->控制面板(或者管理)->管理工具->本地安全策略2.右击"ip安全策略,在 本地计算机", 选择 "管理 ip 筛选器表和筛选......


SAM的散列存储加密解密算法

sam的散列存储加密解密算法以及syskey的计算 【程序编程相关:微软浏览器又爆漏洞将给蠕虫创造更大空间

【推荐阅读:“BBeagle”蠕虫爆发病毒邮件主题为

转摘请注明作者与安全焦点 【扩展信息:利用MSNMessenger传播的新病毒

作者:flashsky

site:www.xfocus.net,www.shopsky.com

邮件:flashsky@xfocus.org

作者单位:启明星辰积极防御实验室

sam中存放在密码散列这是大家都知道的,但是其密码存放在对应相对sid的v键下面却是一种加密的形式,如何通过这个加密的串计算出密码散列了,大家用pwdump3这样的工具可以导出散列来,主要原理是系统空间会存在一个sampsecretsessionkey,pwdump3就是拷贝一个服务到对方机器上,读出这个lsass进程空间的sampsecretsessionkey再进行解密的,其实这个sampsecretsessionkey的生成也是非常复

杂的,我们这里做一个比pwdump3更深入的一个探讨与分析,sampsecretsessionkey的计算与生成,这样我们就能在直接从物理文件中计算出sampsecretsessionkey,来解密注册表中的密码散列,对于一个忘记密码的系统或一个不知道用户口令但已经获得磁盘的系统有这重要意义,这样我们完全就能通过注册表文件的分析来解密注册表中的密码散列.

通过分析,我们发现以前在nt中常说的syskey在w2k系统的这个过程中起着非常重要的作用,其实syskey已经做为w2k的一个固定组件而存在了,我们下面给出一个整个过程:

系统引导时:

计算获得syskey

读取注册表中的sam\sam\domains\accoun\v中保存的key信息(一般是最后的0x38字节的前0x30字节)

使用syskey与f键的前0x10字节,与特殊的字串"!@#$%^&*()qwertyuiopazxcvbnmqqqqqqqqqqqq)(*@&%","0123456789012345678901234567890123456789"做md5运算,再与f键的后0x20字节做rc4运算就可以获得sampsecretsessionkey,这个

sampsecretsessionkey固定存放在lsass进程中,作为解密sam中加密数据到散列时用

-------------------------------------------------

|syskey 

f键信息的前0x10字节 |md5

|"!@#$%^&*()qwertyuiopazxcvbnmqqqqqqqqqqqq)(*@&%"|--->--------

|"0123456789012345678901234567890123456789" | |rc4

-------------------------------------------------- |------>sampsecretsessionkey

|f键信息的后0x20字节 -------------------

当需要解密sam中加密数据到散列时(如远程登陆):

读取sampsecretsessionkey,再与当前用户的相对sid,散列类型名(如lmpassword,ntpassword)做md5运算获得针对这个用户密码散列的sessionkey

利用sessionkey用rc4解密第一道加密的散列,再将用户相对id扩展成14字节做des切分,生成desecb,再对用rc4处理后的散列进行分开成2次des解密就可以获得密码散列.

-------------------------

|sampsecretsessionkey 

sid |md5

|"lmpasswor"/"ntpasswor"|--->sessionkey---

| | |rc4 2次des(填充sid做key切分)

------------------------- |----->-------------------------->hash

|对应的sam中加密的密码散列 ---------------------------------

这个算法相当好,保证了不同用户的相同散列在sam存放不一样(相对sid不一样),不同机器的同一sid同口令的sam中的散列存放不一样(syskey不同);

这个算法的des/rc4都是可逆的,这样如果我们能通过离线(文件)方式获得syskey的话(其他的信息都可以分析sam文件获得),我们完全实现离线修改sam中口令的效果,不过这需要对注册表的结构与sam中v/f键的数据结构再做深入的研究,这里就不谈了.

那么syskey是如何计算出来的呢?这可能是我发现ms最牛皮的一个地方了,先开始想一定会存放在注册表某处,呵呵,最后跟踪ms引导时候的winlogon进程才知道,syskey是这样计算出来的,很多人会大掉眼镜吧:

syskey的计算是:system\\currentcontrolset\\control\\lsa下的

jd,skew1,gbg,data四个键值的class值通过换位得来的,靠,佩服ms.
...   下一页
    摘要: asp.net中如何防範sql注入式攻擊 一、什麼是sql注入式攻擊? 所謂sql注入式攻擊,就是攻擊者把sql命令插入到web表單的輸入域或頁面請求的查詢字符串,欺騙伺服器執行惡意的sql命令。在某些表單中,用戶輸入的內容直接用來構造(......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE