该靶机没有web端,不需要网页
老规矩
1、信息收集
目标IP探测 (arp-scan、netdiscover、nmap)
Nmap端口扫描,版本,操作系统扫描等
这里使用的半开扫描(快)
nmap -sS 10.9.47.0/24 -T4
找到目标IP后详细扫描
nmap -sV -p- 10.9.47.215 -T4
-p- 全端口扫描
-sV 扫描端口下的服务
我们发现没有http协议web端,但是发现NFS协议(文件共享)
2、NFS渗透
我们可以首先使用showmount工具查看靶机是否有共享文件夹:
showmount -e 10.9.47.215
-e表示exports,即靶机向外共享的到处列表,可以看到共享目录是/home/user/storage(这样也表明靶机很可能有一个名为user的用户)
目录挂载
尝试能否将这个共享的目录/home/user/storage映射到我们创建的目录:
sudo mount -t nfs 10.9.47.215:/home/user/storage /mnt/
mount用于挂载目录,-t是type的意思,指定为nfs共享文件模式,由上图可见该映射成功了,我们只要进入tmp目录应该就能看到靶机/home/user/storage目录的内容,如下:
果然,我们看到了/home/user/storage目录下的文件backup.7z,是一个压缩包
3、7z压缩包的密码破解
尝试直接用7z工具解压,-x参数表示解压缩:
7z -x backup.7z
需要输密码(不知道随便输一个)
说明内容有8张图片和两个文件,两个文件看名称像是ssh登录的私钥和公钥。用john爆破。由于john爆破只能针对hash文件,因此我们先用7z2john生成7z压缩包的哈希,名称为backup7z_hash:
7z2john backup.7z > backup7z_hash
发现报错(翻译后说我们缺少插件)
运行以下两个命令安装即可:
sudo apt update
sudo apt install libcompress-raw-lzma-perl
然后删掉错误生成的backup7z_hash,再次运行
生成7z的hash后,使用字典rockyou.txt进行压缩包的密码暴力破解,指定形式为7z格式:
john --format=7z --wordlist=/usr/share/wordlists/rockyou.txt backup7z_hash
对压缩包进行解压
看到hello kitty的文件,首先先用file查看是否是真的单纯的图片文件:
file hello*.*
好像就是单纯的图片文件,我们再试试用binwalk看看有没有捆绑,发现也没有
binwalk hello*.*
那有没有可能是图片隐写啥的,说不定图片里面有备注,我们尝试用exiftool查看图片:
exiftool hello*.*
4、ssh私钥登录
查看不带.pub的文件id_rsa,这可能是私钥:
看起来确实是openssh的私钥,再看看公钥:
那我们就直接尝试用私钥登录user用户吧:
ssh -i id_rsa user@10.9.47.215
-i表示用私钥登录,结果显示私钥id_rsa本身还有密码
与破解压缩包的思路类似,先将私钥生成john对应的hash文件,这里命名为id_rsa_hash:
john id_rsa_hash --wordlist=/usr/share/wordlists/rockyou.txt
拿到了私钥的passphrase是12345678,然后我们重新用私钥登录,输入passphrase即可成功登录user的shell:
5、less+vi提权
尝试能否采用suid的方法提权
find / -perm -u=s -type f 2>/dev/null
这里要重点关注doas这个指令,该指令类似于sudo,即以高权限运行指令需要添加的命令。由于doas指令是具有s位的,因此使用doas可以以高权限运行指令。我们要查找的就是有哪些指令可以免密doas运行(即类似于ubuntu/debian的Linux运行sudo -l 后有哪些免密sudo的指令),这就需要查找doas的配置信息了。我们直接用find搜索doas的相关文件:
find / -name doas* -type f 2>/dev/null
看起来doas.conf就是doas的配置文件,我们查看:
这个文件告诉我们,less和authlog指令是可以用doas免密以root权限运行的!那我们就运行试试:
doas /usr/bin/less /var/log/authlog
运行发现再用less读取authlog:
那么要如何提权呢?此处我们是使用less命令对authlog进行查看,且此时less命令是具有root权限的。但less只能读文件,不能执行系统命令。我们知道在less中按字母v是可以启动vi编辑器的,而vi编辑器中输入冒号:后即可输入交互的指令,又由于less具有root权限,在less中启动的vi编辑器应该也具有root权限,那么我们按v进入vi编辑器后,输入:!sh应该就能够以root身份启动shell
按v之后进入vi编辑模式:
再输入:!/sh即可提权,感叹号!用于表示执行系统命令:
可看到提示符已经变为了井号#,提权成功