0x00:介绍
msf 在获取 shell 后为了更方便的进行渗透测试,可获取主机的 hash 以及域的 hash,即用户的密码,存在于 c 盘下的 windos 下的 system32 下的 config 下的 sam 文件中,以 hash 加密的方式存储,而系统开机后,hash 密码会以明文存在于内存中,获取 hash 的工具和方法有很多,这一节记录下 hashdump 和 wce 的使用。
hashdump 的使用需要获取系统级的权限,即 system,一般拿下 shell 后如果是普通的 user 账号,则需要提到 administrator 然后再提到 system。
wce 是 windows credentials editor 的缩写,即 windows 凭据编辑。是一个 windows 平台内网渗透工具,可以列举登录的会话,添加、修改、编辑凭据。
0x01:hashdump
hashdump 需要系统级别的权限,user 提升到管理员之前有记录过,可以使用 uat、ms13_053、ms14_058、ms16_016、ms16_032 等等,这时的权限是管理员,在 meterpreter 下运行 hashdump 可能会报一个 priv_passwd_get_sam_hashes: Operation failed: The parameter is incorrect. 的错误。关于管理员到系统级的提升,在国外一篇文章上看的思路不错,这里记一下,碰到这个问题可以试试。
1,首先可以使用 getprivs 命令,作用在于尽可能的获取更多的权限。
2,如果 getprivs 没有成功,则可以继续运行 getsystem 命令,作用在于利用各种可以提权的漏洞来提升自己的权限,如果是管理员,这个命令可能会提到 system。
3,如果 getsystem 也没有成功,可能 system 级别需要一个 64 的进程程序才可以运行相应的服务,那么可以 migrate 迁移进程到一个 64 位的程序。
4,如果以上不行,可以把 meterpreter 的进程再迁移到一个拥有 system 级别的进程上。关于 system 级别的进程,直接 ps 查看 id 即可。
总之,如果抱有错误,基本上是因为权限不够,需要为 system 的权限。查看权限可以进入目标机的 cmd 运行 whoami /groups 来查看。ps 也可以查看 meterpreter 的权限级别。
之后运行 hashdump 即可,格式是:用户名称: RID:LM-HASH 值: NT-HASH 值,rid 是 windows 系统账户对应固定的值,类似于 linux 的 uid,gid 号,500 为 administrator,501 为 guest 等。而 lm 的 hash 和 nt 的 hash,他们都是对用户密码进行的加密,只不过加密方式不一样。复制其中一种加密的 hash 可以直接使用在线 cmd5 **。
除了使用 hushdump 命令外,msf 也提供了一个脚本,可用来获取域内的用户 hash,即 post/windows/gather/smart_hashdump.
0x02:wce
wce 可列举登录的会话,添加、修改、编辑凭据,且体积很小,是内网渗透的利器,但必须要以管理员身份运行,且要注意免杀,免杀后续继续记录,这里先记录下简单的使用。
我们获取用户的密码,这里只介绍一个简单的参数就是 w,用来获取当前登录用户的明文密码。
使用前需要用 upload 命令把 wce 上传到目标机,然后 cmd 到所在的位置运行 wce.exe -w 即可。
0x03:总结
除了 hashdump 命令,smart_hashdump 脚本,wce 工具外,也有其他有名好用的程序可用来获取 hash,例如 mimikatz,mimikatz 因为好用强大,msf 后来就将其集成了进来,mimikatz 的使用后续再继续记录一下。
公众号回复数字“8”领取CIS加固全套手册。
微 信:fageweiketang,朋友圈不定期干货分享,欢迎讨论。
公众号:发哥微课堂,专注于代码审计、WEB渗透、网络安全。