欢迎光临散文网 会员登陆 & 注册

项目14:VulnOSv2

2023-08-20 13:19 作者:沙漠里的鲸  | 我要投稿

##Nmap信息收集

---存活主机探测

---全端口扫描,存在22,80,6677端口(IRC服务器)

----IRC是Inter Relay chat的缩写,是网络上一种聊天的服务器。和普通的聊天方式相比,IRC聊天有着是速度快、功能多、支持多种命令等功能,因此IRC一直是网友快速聊天的最佳选择

##Web信息收集

---访问80

---查看前端源码,发现jabc目录

---dirb目录扫描发现 /javascript/jquery/ 目录,但是这个目录没有权限访问

---nikto扫描没有发现什么有用的信息,/icons/README没有看到有用信息

---AWVS扫描:发现存在2个高危漏洞以及 /jabc/ 目录

---1)配置文件源码公开:http://192.168.95.182/jabc/includes/database/database.inc

---2)Drupal 远程代码执行 (SA-CORE-2018-002):http://192.168.95.182/jabc/

---访问/jabc/,在文档目录的前端没有信息,但是这里存在前端隐藏

---使用鼠标拖动,发现一个敏感的文件目录:/jabcd0cs/

---访问这个登陆界面,弱口令打不通

---还发现一个OpenDocMan v1.2.7

---可以使用AWVS扫描这个路径/jabcd0cs/,发现只存在XSS(可以盗取管理员Cookie)

---先查看OpenDocMan 1.2.7是否存在漏洞

---OpenDocMan 是一个全功能的DMS文档管理系统,遵循 ISO 17025/IEC 标准。提供自动化安装脚本、自定义主题、插件、check in/out,分部门访问控制,文件调整,细粒度用户访问控制,强大的搜索功能

---查看翻译后的exp,存在2个exploit

---1)SQL注入(CVE-2014-1945):/ajax_udf.php下的GET参数add_value

---2)不当访问控制(CVE-2014-1946):为当前用户分配管理员权限

---先尝试第一个exp,但是没有像视频里面一样回显

---没有回显的话,只能使用延时注入

---尝试SQLmap一把梭

---检测级别,共有1~5共5级,默认为1,检测级别不仅会影响 payload 的使用,还会影响注入点的检测(GET 和 POST 参数是一直会被检测的),以下是检测级别的特殊检测项:level >= 2时会检测cookie是否有注入

  • level >= 3时会检测User-Agent和Referer是否有注入

  • level >= 5时会检测Host是否存在注入漏洞

  • level设置还会影响union注入时检测的列数等

---risk 参数用于设置 SQL 注入检测的风险级别,影响工具在检测注入时使用的测试和技术的深度和侵入性。risk 参数的取值范围从 1 到 3,其中:

  • --risk=1:低风险级别。工具使用较轻量级的测试和技术来检测注入漏洞,减少对目标应用程序的影响和负载。这个级别适用于敏感度较低的环境,以减少误报和错误。

  • --risk=2:中等风险级别。这是默认的风险级别。工具使用中等程度的测试和技术来检测注入漏洞,提供了较为全面的测试覆盖,但仍然尽量避免对目标应用程序的过度干扰(添加了基于时间的注入测试

  • --risk=3:高风险级别。工具使用更深入和侵入性的测试和技术来检测注入漏洞,可能会对目标应用程序产生更大的负载和影响。这个级别适用于对安全性要求较高的环境,但需要注意可能引起的干扰(加了 OR ,若注入点是在 UPDATE 语句中,使用 OR 测试可能会修改整个表的数据

---发现存在SQL注入漏洞,这里存在PhpMyAdmin(但是URL不能访问)

---爆表

---jabcd0cs数据库存在如下表

---爆字段

---如下

---爆字段的内容

---内容如下,主要存在2个用户:webmin和guest

---对数据库密码进行解密,密码分别是:webmin1980和guest(可以尝试SSH登陆)

---查看当前用户

---发现是本地的root用户

---查看当前用户是否具有root权限

---发现是root权限

---这里搜集到一些用户:debian-sys-maint、drupal7、phpmyadmin以及密码toor

---尝试直接--os-shell,但是失败了

##Hydra爆破SSH

---将webmin、guest、debian-sys-maint、drupal7、phpmyadmin写入username.txt

---webmin1980、guest、toor写入password.txt

---采用HyDra爆破SSH

---采用Python切换pty

---先查看bash的历史记录

---这里发现一个红色的:post.tar.gz文件(提权可能会用得到)

---查看操作系统和版本信息,是X86架构的

---Kail开启8081端口,然后靶机下载linpeas.sh、linux-exploit-suggester.sh

---PS:可以使用linux-exploit-suggester.sh、searchexploit、谷歌搜索exploit-db、CVE-2021-4034通杀漏洞、进行系统提权

---注意:尽量不要使用脏牛提权(修改root的密码),会破坏系统的平衡

---在linpeas.sh里面存在系统漏洞,但是sudo版本>1.8.3和1.8.4不存在版本漏洞

---这里MySQL是mysql用户允许,不存在UDF提权

---这里也可以 ps -aux | grep mysql | grep root 查看Mysql的权限

---本地还是开启了3306端口和5432端口(postgresql)

---1000以上的用户还存在一个,但是都不具有SUDO权限

---也不一定吗,如果获取到vulnosadmin用户的密码,可以Sudo -l查看和获取其它信息

---这里是MySQL的密码:root/toor

---suid的文件都是常规系统目录的,且其它用户只能执行权限

---Web的目录

---验证一下MYsql还真不是root

---计划任务没有什么可以写入的

---搜索一些除了/var目录下是否存在计划任务,没有什么收获

---看来这个除了系统漏洞提权,没有太多别的方法

##post.tar.gz文件分析

---将文件从靶机通过python传输到Windows上分析

---里面是Hydra的源码,这里因该是提示我们暴力破解,但是MYSQL不是root权限允许

---前面的端口除了3306的MYSQL,还开启了5432的PostgreSQL

---这里PostgreSQL的版本是9.3.11

---进程存在POSTGres但是不是root权限运行,我们可以尝试进行信息收集

---但是靶机的5432只在靶机本地开启了,我们需要进行端口转发

----将5432端口,转发到Kail上(SSH进行端口转发)

---告诉SSH在本地主机上(KALL)监听端口 5432,并将所有流量转发到远程靶机(即 localhost,因为连接到了远程靶机上)的端口 5432

---通常用于在本地主机上创建一个代理,将本地的端口与远程主机的端口连接起来

---关于PostgreSQL的爆破用户名和密码破解

---方法1:Hydra破解

---/usr/share/wordlists/metasploit/路径下存在默认用户名和密码的爆破字典,但是这个密码太少了,不适用

---在视频里面字典路径是这个,两个内容是一模一样的

/usr/share/metasploit-framework/data/wordlists/postgres_default_user.txt

---利用Hydra进行指定端口的爆破

----s PORT 指定默认端口;

---这里发现用户名和密码均为:postgres

---方法2:MSF爆破

---搜索:postgres_login的模块(辅助/扫描仪/postgres/postgres_login)

---设置RHOST的IP,然后爆破出密码

---在靶机尝试登陆,发现授权失败

---pg_dumpall用来提取我们可以访问的所有数据库:

---pg_dumpall 是将一个 PostgreSQL 数据库集群全部转储到一个脚本文件中,可以备份所

有数据库,并且备份角色、表空间

  • PGPASSWORD="postgres": 这是一个环境变量设置,它将 PostgreSQL 数据库的密码设置为 "postgres"。这是为了在后续的命令中自动提供密码,以避免在命令行中明文输入密码。

  • pg_dumpall: 这是一个 PostgreSQL 提供的命令行工具,用于将整个 PostgreSQL 数据库集群的数据导出为 SQL 格式的文件

  • -U postgres: 这指定了要连接的数据库用户,这里是 "postgres" 用户。这个用户将被用于连接数据库并执行导出操作。

  • -h localhost: 这指定要连接的数据库主机地址,这里是本地主机(即当前计算机)。

  • -p 5432: 这指定要连接的数据库的端口号,这里是端口号 5432,这是 PostgreSQL 默认的端口号

---这里发现一个用户名和密码

---vulnosadmin是SSH的另外一个账户,密码是:c4nuh4ckm3tw1c3

---ssh登陆一下试试,我这里直接使用FinalShell连接

---用户目录存在r00t.blend文件,直接下载(blend文件是一个3D建模的软件

---一开始是一个立方体什么都看不到,但是通过调整,发现字符:ab12fg//drg

---说实话这个1和//根本区分不开,猜测是root的密码

---尝试su root登陆获取flag

##OpenDocMan v1.2.7后台漏洞分析

---使用webmin和webmin1980登陆OpenDocMan

---发现是一个类似于论坛的形式的网站

---存在一个文件上传的点,上传一个后门试试

---这里因该是对于上传的文件MIME进行个白名单限制

---但是是允许application/x-httpd-php上传的,但是上传不了

---Burp修改MIME再次上传

---再次上传还是失败了

##Drupal 远程代码执行 (SA-CORE-2018-002)   CVE-2018-7600

---在前面AWVS扫描出来一个Drupal 远程代码执行漏洞

---可以在谷歌搜索exp(但是exploit只存在POC)

---可以直接在Kail搜索Drupal Remote Code Execution

---发现一个rb脚本44449.rb

---打开exp查看(最重要的代码是470行)

---执行rb脚本可能报错,需要执行

---参考文章:https://github.com/dreadlocked/Drupalgeddon2/issues/55

---执行./44449.rb http://192.168.95.182/jabc/获取WebShell

---这个shell不稳定需要使用bash或nc进行反弹

##OpenDocMan 1.2.7 cms sql注入(CVE-2014-1945)

---在/jabcd0cs/ajax_udf.php文件的add_value=odm_user参数存在SQL注入

---通过find查看ajax_udf.php文件的位置

---这里发现注入点:$query = 'SELECT * FROM ' . $_GET["add_value"];

---也可以通过grep "关键字" 文件路径 进行搜索

##知识点总结

---1.Nmap信息收集(存活主机、全端口、版本、OS)

---2.前端源码+dirb+nikto扫描分析敏感目录文件/jabc

---3.AWVS扫描漏洞发现/jabc文件以及Drupal 远程代码执行、配置文件泄露漏洞

---4.seaechexploit Drupal remote Code Execution发现exp的rb代码

---7.sudo gem install highline解决rb报错问题,获取WebShell

---8.在/jabc/目录的网站发现隐藏文件路径(管理员登陆):/jabcd0cs/

---9./jabcd0cs/处发现OpenDocMan 1.2.7的CMS

---10.kail搜索OpenDocMan 1.2.7发现SQL注入漏洞(时间盲注、布尔盲注)

---11.SQLmap爆库、爆表、爆字段、根据字段dump表的数据获取用户名和密码

---12.SQLmap爆当前的数据库系统用户和密码,构建爆破用户名和密码字典

---13.根据用户名和字典登陆/jabcd0cs/后台,发现文件上传点检测MIME白名单

---14.Burp修改MIME的类型,上传PHP的一句话,但是提示失败

---15.根据之前的用户名和字典,Hydra爆破SSH登陆

---16.上传linPeas.sh分析,存在系统漏洞、Mysql非Root用户,/etc/passwd存在另外一个普通用户,存在postgres数据库(非root),用户目录存在post.tar.gz(-zxvf解压里面是hydra提示爆破),nststate -ano查看发现本地开启3306以及5432(postgres)但不对外开放

---17.通过SSH将靶机本地的5432端口-L转发到kail的5432端口

---18.hydra和MSF爆破5432端口,获取postgres数据库用户名和密码hydra -L /usr/share/metasploit-framework/data/wordlists/postgres_default_user.txt -P /usr/share/metasploit-framework/data/wordlists/postgres_default_user.txt -s 5432 127.0.0.1 postgres

---19.采用PGPASSWORD="postgres"指定密码,pg_dumpall备份导出数据库信息,获取/etc/passwd的1000以后的另外一个用户和密码

---20ssh登陆vulnosadmin,在根目录发现3D建模文件r00t.blend,blender工具打开发现root的密码,ssh登陆获取flag

---22.find查找OpenDocMan 1.2.7 cms的SQL注入URL的文件ajax_udf.php,grep搜索add_value注入点进行审计

---23.系统漏洞提权:脏牛2提权的流程(谨慎使用)


项目14:VulnOSv2的评论 (共 条)

分享到微博请遵守国家法律