靶机描述:
Difficulty: Easy
It's a box for beginners, but not easy, Good Luck
Hint: Don't waste your time For Brute-Force
1、找到靶机ip:192.168.162.132
nmap -sn 192.168.162.0/24
2、扫描靶机端口,发现开放22和80端口
┌──(root💀kali)-[~]
└─# nmap -A -p- 192.168.116.132
Starting Nmap 7.91 ( https://nmap.org )
Nmap scan report for 192.168.116.132
Host is up (0.00033s latency).
Not shown: 65533 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.2 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 3072 e4:50:d9:50:5d:91:30:50:e9:b5:7d:ca:b0:51:db:74 (RSA)
| 256 73:0c:76:86:60:63:06:00:21:c2:36:20:3b:99:c1:f7 (ECDSA)
|_ 256 54:53:4c:3f:4f:3a:26:f6:02:aa:9a:24:ea:1b:92:8c (ED25519)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
| http-cookie-flags:
| /:
| PHPSESSID:
|_ httponly flag not set
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: DarkHole
MAC Address: 00:0C:29:69:2E:18 (VMware)
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
TRACEROUTE
HOP RTT ADDRESS
1 0.33 ms 192.168.116.132
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.39 seconds
3、访问80端口,首页是一个静态页面,在源代码中发现login.php
访问login.php页面,是个登录页面,由于前面提示说不需要浪费时间爆破,所以先不爆破,去注册页面注册个账号然后登录进来,注册的时候使用admin注册,提示说已存在,可得知admin账户存在
有个id号,想水平越权,发现不行,发现有个修改密码功能,尝试垂直越权修改admin的密码,抓包的时候id=2,猜测admin为id=1
修改成功,尝试登录,发现成功用admin/123456登录,有一个文件上传功能
4、上传shell发现对文件类型有限制,经过尝试发现phtml没有在黑名单,成功绕过,并且能够成功解析
本地开启监听,访问文件,成功反弹shell,python3提升到tty
5、在john的家目录下发现toto文件具有s权限,且其他用户有可执行权限,还有.ssh文件夹www-data用户有可读可写权限,但是由于配置文件没开启ssh免密登录,且文件夹权限不对,所以不能实现免密登录
于是把主意还是打到了toto文件上,运行发现是似乎用john的身份执行了id命令
如果真的是这样,并且不是使用的绝对路径,可以使用上篇博客最后的第一种利用方法
在本地编辑id文件,写入/bin/bash,给执行权限然后将路径写入到原有环境变量前(从前往后顺序匹配),这样使用id命令时就会优先匹配此路径下的id文件,运行toto文件使用john身份调用id命令时就会获得shell
6、查看user.txt文件获得第一个flag
查看password文件得到john的密码root123,(这里可以使用ssh登录上去)
file.py文件是空的, 使用sudo -l发现可以用root身份使用python3命令执行file.py文件
7、写入shell到python文件中,然后使用sudo命令执行,这里file.py需要写全路径,python3可以不用
查看root.txt得到最终flag