nmap渗透测试_wmi渗透测试

hacker|
176

如何抓取所有域用户的hashwin2008

ethashes/2011/11/safely-dumping-hashes-from-liv/en-us/library/cc754968%28v=ws.10%29.aspx 第二种也可以通杀2003到2012,但是2003里面比较麻烦,需要在图形界面中手动备份数据库才行,2008 和 2012则可以在命令行下搞定。另外用vssown.vbs复制出来的ntds.dit数据库不能用QuarksPwDump抓取。 补充:cmd shell下的抓取方式 前面讲了两种抓取所有域用户hash的 *** ,但是都是在交互的图形化界面中进行的。实际的渗透中,更好不要用mstsc登录域控制器, 很可能上面装有监控远程桌面登录信息的各种工具。更实际的情况应该是我们从一台成员服务器上通过远程的cmd shell抓取域用户信息。 我一般用psexec开启一个远程cmdshell,如果没有域管理员密码明文,就用wce进行hash注入,再用psexec就可以了。 之一种 *** 主要是vssown.vbs的操作,没有任何交互式的命令需要执行,所以没有什么特别的,在psexec下面直接操作即可 第二种 *** 中ntdsutil.exe的命令是交互式的,需要一步步输入,而psexec开启的shell是没办法这么做的,会直接卡死在那。 于是我尝试了下把命令写在一起,就像用netsh配置 *** 信息时一样,发现是可以用的,只不过有空格的地方用引号就行了。 所以ntdsutil的命令就可以写成 ntdsutil snapshot "activate instance ntds" create quit quit ntdsutil snapshot "mount {GUID}" quit quit copy MOUNT_POINTwindowsNTDS tds.dit c: tds.dit ntdsutil snapshot "unmount {GUID}" quit quit ntdsutil snapshot "delete {GUID}" quit quit 接下来就是导出hash,执行: QuarksPwDump.exe --dump-hash-domain --ntds-file c: tds.dit 具体的过程如下: 总结: 测试了这么多,更大的收获应该是mimikatz还能抓到lm hash。其实还是有很多工具可以抓到hash的,期待wce的更新,他的hash注入功能还是很实用的。 另外我发现有时候psexec在退出后,远程服务器的psexec的服务并没有被删除,这点相当危险,而且psexec会安装服务,很容易被管理员发现。 理论上psexec可以用wmi远程执行命令代替

MSF内网渗透系列2-权限提升

在上篇文章中,通过win7运行msf.exe,kali接收到一个session,但这个session权限只是普通权限,无法做更多的操作。

权限提升

1.提高程序运行级别

2.UAC绕过

3.利用提权漏洞进行提权

提高程序运行级别

msf模块exploit/windows/local/ask

但会触发UAC,只有当用户同意是才能获得更高权限

可以看到session 5只是普通权限,这时候利用ask模块进行提权,该模块需要设置要用来提权的session,以及启动程序的名称

ask模块设置完成后,就可以使用了,运行exploit,回到win7,可以看见弹出一个execl.exe程序框,如果你点击是,则kali会获得一个新的session,如果点击否,则kali会得到失败信息。

Win7 截图:

win7 点击 否,kali返回信息:

win7 点击 是,kali获取到新的session

使用background退出这个meterpreter

使用sessions,查看session

使用sessions -i 6,进入新获取的session

使用getuid查看该session权限

发现还是普通权限

这时候使用getsystem,获得系统权限

再使用getuid查看

UAC绕过

msf模块

exploit/windows/local/bypassuac

exploit/windows/local/bypassuac_injection

exploit/windows/local/bypassuac_vbs

这里使用之一个模块进行绕过UAC提权

利用提权漏洞进行提权

exploit/windows/local/ms14_058_track_popup_menu

等等

这里使用

exploit/windows/local/ms16_014_wmi_recv_notif

这个模块,同样使用info和show options查看信息,只需要设置一个session就可以使用

攻击成功会直接返回一个shell,使用whoami查看权限

成功提权

C# 如何查看MSDN

早上上班才看到你的留言:

首先你检索的是Win32_Process 类,然后在你检索的对象 *** 中循环取出一个对象赋给mob,通过 索引器 [] 符获取对属性值的访问,因此,你可以查看Win32_Process 有哪些属性,可以试着改mob[""]中的属性,如将Caption改为:Handle,CSName,Name,Description等等..可能有部分不能用(比如说未实例化),你可以试着研究一下;

附:查看Win32_Process 类的属性 *** :

1.启动运行:开始-运行(windows+R),输入CMD;

2.输入wbemtest.exe,按下 Enter 来开始 WMI 测试器工具。请注意,大部分按钮在主 WMI 测试器窗口上是被禁用的,这说明此时您没有连接到 WMI。

3单击 连接, 连接到本地或远程计算机上的 WMI 服务。显示“连接”对话框,它提供一个文本输入区域,该区域默认值为 root\default。将区域的值更改为 root\cimv2,单击“连接”对话框的 Connect 按钮返回到主 WMI 测试器窗口。

4.主窗口中左上角的命名空间标识符应该显示为 root\cimv2。请注意,所有的按钮现在都已启用,这说明在当前凭据环境下,您已经成功连接到本地主机上的 WMI。单击 枚举类别? 打开“超类信息”对话框。在“超类信息”对话框中,不要填写区域,单击 递归 选项,单击 OK 以枚举 root\cimv2 名称空间中定义的所有 CIM 类。 (如果使用 Windows 2000,则您应该会看到大约 600 个类定义。如果运行 Windows XP,则您应该会看到大约 900 个类定义。 )

5.名称以 Win32_ 开头的类是 Microsoft 扩展类,表示 Windows 特定的托管资源。如果这是您之一次检查 root\cimv2 命名空间,您可能希望熟悉 root\cimv2 命名空间中的类的完整 *** ,尤其是有 Win32_ 前缀的类。向下滚动“查询结果”对话框直至到达 Win32_Process 类(不要打开错了),双击该类名打开 Win32_Process 对话框的对象编辑器。

OK,你可以查看属性了等等..

希望对你有用..

通过调用wmi API来启用、禁用网路设配器失败的原因以及解决 *** .

工厂测试软件中经常会需要程序控制PC机设备管理器中的设备,如测试WIFI吞吐量的时候,要禁用有线的网卡,从而来测试wifi无线吞吐量。

使用PCIE通讯的时候,在测试设备断电前,需要禁用相关的PCIE设备,不然会导致电脑蓝屏。

C# 基于WMI开发的时候,很多时候会出现无法通过程序禁用,启用的问题,或者相同的程序在有的电脑能正常,有的电脑不能,到底是啥问题,下面分几个步骤来解析.

1 截图 隐藏的设备对比

2 windows系统中设备管理器显示隐藏设备的显示 ***

set devmgr_show_nonpresent_devices=1

start devmgmt.msc

这样就能显示全部的 *** 设配器的所有信息

3 使用wmi 调用 Win32_NetworkAdapter ,为什么用程序(network.InvokeMethod("Enable", null))启用、禁用网路设配器会失败,不能正常执行,而手动启用,禁用的时候又成功.

a *** 设备器名称可能会有重复的,一个名称可能对应多个设备。

b 重复的 *** 设配器只显示已经连接的 *** 设配器,而未连接的处于隐藏状态.

3 当程序用名称去匹配 *** 设配器的时候,往往会匹配到未连接的 *** 设配器,导致执行启用、禁止的动作不成功。

Windows之hash利用小结

攻击机:kali 2020(192.168.107.129)

DC:Windows Server 2012 R2(192.168.107.137)

msf已成功通过msf获取到DC的shell

刚获取的shell为普通用户权限,需要进行提权,然后获取hash

直接使用getsystem失败,使用ps命令查看当前进程及运行用户权限

可以看到所运行的进程皆为普通用户权限

这里为了方便,直接使用msf提供的模块,用于快速识别系统中可能被利用的漏洞:

具体原理参考: BypassUAC------使用EVENTVWR.EXE和注册表劫持实现“无文件”UAC绕过

成功绕过UAC获取shell:

通过进程注入获取system权限,并获取hash

原理:

哈希传递攻击是基于NTLM认证的一种攻击方式。哈希传递攻击的利用前提是我们获得了某个用户的密码哈希值,但是解不开明文。这时我们可以利用NTLM认证的一种缺陷,利用用户的密码哈希值来进行NTLM认证。在域环境中,大量计算机在安装时会使用相同的本地管理员账号和密码。因此,如果计算机的本地管理员账号密码相同,攻击者就能使用哈希传递攻击登录内网中的其他机器。

哈希传递攻击适用情况:

在工作组环境中:

在域环境中:

Metasploit下面有3个psexec模块都可以进行Hash传递利用

之一个模块(auxiliary/admin/ *** b/psexec_command):

缺点:只能运行单条命令,不支持网段格式批量验证

优点:奇怪的是其他普通用户的hash也可以执行系统命令,这个模块可能不属于hash传递的范畴?这个坑以后再来解,我太菜了,望大佬指点~

设置命令的时候可以配合exploit/multi/script/web_delivery从而获取meterpreter

在上面进行Hash传递的时候,只要后面的NTLM Hash是正确的,前面填写什么都是可以顺利登陆成功的。

第二个模块(exploit/windows/ *** b/psexec):

利用条件:

优点:该模块支持网段格式批量验证,成功后可直接获取meterpreter且为system权限,在实战中优先使用

第三个模块(exploit/windows/ *** b/psexec_psh):

使用powershell作为payload。这个模块也支持网段批量验证,这里就不再赘述了

当我们获得了内网中一台主机的NTLM哈希值,我们可以利用mimikatz对这个主机进行哈希传递攻击,执行命令成功后将会反弹回cmd窗口

mimikatz中pth功能的原理:

windows会在lsass中缓存hash值,并使用它们来ntlm认证,我们在lsass中添加包含目标账号hash的合法数据结构,就可以使用类似dir这些命令进行认证

目标主机:192.168.107.140

domain:SWS-PC

执行后会弹出cmd,执行以下命令即可远程连接:

创建计划任务反弹shell:

理论上来说是可行的,win7复现的时候,任务一直在运行,就是没结束,我也是醉了.....

当然这里使用powershell远程加载也是可以的,但由于环境因素无法复现

前提条件:获取到的beacon为system权限,user中带有*号的用户

在得到一个beacon的基础上,先在该网段portscan,探测存活主机后

选择View--Target--Login--psexec,可批量选择主机pth

个人觉得还是Msf好用,成功率更高一些

项目地址:

安装参考:

Kali安装步骤:

使用命令:

注意:这里的 IP 可以是单个IP也可以是IP段

如果命令使用失败,可能没安装其依赖项(坑点,我弄了两个小时。。。心态爆炸):

项目地址:

安装过程:

wmi内置在windows操作系统,用于管理本地或远程的 Windows 系统。wmiexec是对windows自带的wmic做了一些强化。攻击者使用wmiexec来进行攻击时,不会记录日志,不会写入到磁盘,具有极高的隐蔽性。

安装成功后,切换到examples目录下,执行如下命令:

exe版本:

项目地址:

执行命令类似

powershell版本:

项目地址:

注意:这里要先加载Invoke-WMIExec.ps1脚本,因为Invoke-TheHash 里要用到 Invoke-WMIExec ***

该命令执行后该进程会在后台运行,可以结合定时任务执行尝试反弹shell。

KB2871997 补丁将使本地帐号不再可以用于远程接入系统,不管是 Network logon 还是 Interactive login。其后果就是:无法通过本地管理员权限对远程计算机使用 Psexec、WMI、 *** bexec、IPC 等,也无法访问远程主机的文件共享等。

在安装了kb2871997 这个补丁后,常规的Pass The Hash已经无法成功。但administrator(SID=500) 账号例外,使用该账号的散列值依然可以进行哈希传递攻击。这里需要强调的是 SID=500 的账号。即使将administrator账号改名,也不会影响SID的值

普通用户测试:

前提:只适用于域环境,并且目标主机需要安装 KB2871997补丁

利用获得到的AES256或AES128进行Key攻击:

弹出cmd后,查看DC的共享文件夹:

这里也不知道算成功没有

详情请参考谢公子博客:

LocalAccountTokenFilterPolicy 值默认设置为 0 来禁止非administrator账号的远程连接(包括哈希传递攻击),但是administrator用户不受影响

将LocalAccountTokenFilterPolicy设置为1,就可以使用普通管理员账号进行哈希传递攻击

利用工具:hashcat

比如说密码为:admin888?

NTLM加密之后为:c4e51613d9ab888ac3d43538840b271c

hashcat具体用法参考: Hashcat的使用手册总结

这里可以看到成功破解出了密码:

当然也可以去cmd5等破解网站,有钱的话直接冲个会员多香啊

Pass The Hash(Key) 凭据传递攻击PTH

哈希传递攻击(Pass-the-Hash,PtH)

Windows用户密码的加密与破解利用

横向渗透之Pass The Hash

横向渗透之Pass The Hash

在上一章总结了windows抓取hash的一些方式。在实际场景中,我们需要更快的扩大战果,获取更多控制权限,以及定位域环境。

横向渗透:就是在得到一台主机的控制权限后,将该主机作为突破口、跳板,利用既有的资源尝试获取更多的凭据、更高的权限,进而达到控制整个内网、拥有更高权限。

Pass The Hash 哈希传递简称PTH,可以在不需要明文密码的情况下,利用LM HASH和NTLM HASH直接远程登录。攻击者不需要花费时间来对hash进行爆破,在内网渗透里非常经典。

常常适用于域/工作组环境。

靶机:windows server 2008

IP:10.211.55.19

domain:workgroup

user:administrator

pass:cseroad@2008

NTLM-Hash:82c58d8cec50de01fd109613369c158e

psexec类工具大同小异,大部分工具都是通过psexec来执行的。原理是: 通过ipc$连接,将psexesvc.exe释放到目标机器,再通过服务管理SCManager远程创建psexecsvc服务,并启动服务。然后通过psexec服务运行命令,运行结束后删除该服务。

如:Metasploit psexec,Impacket psexec,pth-winexe,Empire Invoke-Psexec

缺点:容易被杀软检测到

优点:可以直接获取system权限

因为市面工具比较多,只kali就自带有很多。所以这里以好用、批量为准则选择了几款工具。

mimikatz中pth功能的原理:

windows会在lsass中缓存hash值,并使用它们来ntlm认证,我们在lsass中添加包含目标账号hash的合法数据结构,就可以使用类似dir这些命令进行认证。

正常访问server 2008 的盘符是需要用户名密码的。

在windows7上经过pth之后就不需要密码就可以远程连接。

将获取的hash添加进lsass中。

在windows 7 上执行以下命令:

执行后会弹出cmd。在cmd下执行 net use \\10.211.55.19\c$ 命令就可以远程连接。

扩展:

假如我们继续探测到10.211.55.8使用的是同一个hash值。我们尝试使用远程共享c盘和schtasks 定时计划任务执行获取一个session。

powershell.bat为

当重启10.211.55.8机器后,metasploit可得到session

笔者经常使用时的是这三个模块

以exploit/windows/ *** b/psexec模块为例

值得一说的是 *** bpass配置项支持明文密码也支持hash(LM-Hash:NTLM-Hash)

成功返回system权限。

CobalStrike 同样有psexec选项。

在得到一个beacon的基础上,先在该网段portscan,探测存活主机后。

选择View--Target--Login--psexec,可批量选择主机pth。

选择pth的用户名和hash值。

从执行的命令看得出依然利用的mimikatz。执行成功后返回system权限。

该工具可以对C段主机批量pth。

项目在 github

在kali上直接apt就可以安装

对工作组批量pth命令如下

测试的时候发现某些命令执行后没有回显。

更多资料参考:

CrackMapExec:域环境渗透中的瑞士军刀

红队测试工具-CrackMapExec-远程执行Windows命令

wmi内置在windows操作系统,用于管理本地或远程的 Windows 系统。wmiexec是对windows自带的wmic做了一些强化。攻击者使用wmiexec来进行攻击时,不会记录日志,不会写入到磁盘,具有极高的隐蔽性。

安装成功后,切换到examples目录下

运行命令为

先加载Invoke-WMIExec.ps1脚本,再加载Invoke-TheHash.ps1脚本,因为Invoke-TheHash 里要用到 Invoke-WMIExec ***

如果要执行系统命令。可以加-Command 参数

执行后该进程会在后台运行,可以结合定时任务执行尝试反弹shell。

在测试中发现,在打了kb2871997 这个补丁后,常规的Pass The Hash已经无法成功,但默认的Administrator(SID 500)账号例外,利用这个账号仍可以进行Pass The Hash远程ipc连接。

以上所有操作均针对的SID 500。

内网渗透之PTHPTTPTK

横向移动

丢掉PSEXEC来横向渗透

0条大神的评论

发表评论