Vulnhub[DC2]

简介

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

posted @ 2022-06-11 22:24  Townmacro  阅读(124)  评论(0编辑  收藏  举报