VulnHub::DC-2

实验环境

DC-2_1

同样存在5个flag

渗透过程

0x01 信息搜集

由于不知道靶机IP地址,进行D段扫描,获得靶机IP地址。

DC-2_2

经过测试,发现靶机ip为192.168.1.218,进行端口扫描:

➜  ~ sudo masscan 192.168.1.218 -p1-65535 --rate 1000
Starting masscan 1.0.5 (http://bit.ly/14GZzcT) at 2020-07-02 12:35:35 GMT
 -- forced options: -sS -Pn -n --randomize-hosts -v --send-eth
Initiating SYN Stealth Scan
Scanning 1 hosts [65535 ports/host]
Discovered open port 25/tcp on 192.168.1.218                                   
Discovered open port 80/tcp on 192.168.1.218                                   
Discovered open port 110/tcp on 192.168.1.218                                  
Discovered open port 7744/tcp on 192.168.1.218    

25端口(SMTP):发送邮件、110端口(POP3):接收邮件

使用nmap进行详细扫描:

DC-2_3

直接访问web服务,是一个WordPress搭建的站。

DC-2_4

0x02 开打

flag 1

直接在web服务中找到flag1:

DC-2_5

根据flag1中提示猜测,第二步过程需要使用cewl生成字典,并进行密码爆破,所以应该有需要登录的页面。

同时提示也暗示了可以有其他途径获得第二个flag。

flag 2

使用dirsearch进行目录扫描:

DC-2_6

wp-admin为后台登录页面,需要对此页面进行爆破。

根据前面的提示,建议使用cewl生成字典,这里学习一下cewl的用法。

Cewl

Cewl是一款采用Ruby开发的应用程序,你可以给它的爬虫指定URL地址和爬取深度,还可以添额外的外部链接,接下来Cewl会给你返回一个字典文件,你可以把字典用到类似John the Ripper这样的密码破解工具中。除此之外,Cewl还提供了命令行工具。

Kali Linux字典生成工具Cewl使用全指南

使用Cewl工具获得字典:

DC-2_7

wpscan

WPScan是一个扫描 WordPress 漏洞的黑盒子扫描器,它可以为所有 Web 开发人员扫描 WordPress 漏洞并在他们开发前找到并解决问题。

WPScan使用完整教程之记一次对WordPress的渗透过程

wpscan --url https://www.xxxxxxx.wiki/ --enumerate u	# 枚举用户

DC-2_8

暴力破解密码:

wpscan --url http://dc-2 -e u --passwords dc-2_passwords.txt

DC-2_9

使用得到的jerry账号及密码进行登录,发现flag2

DC-2_10

使用tom的账户无法查看到flag2,猜测另有他用。

flag2提示,需要找到其他入口,想到7744端口开发,进行尝试。

flag 3

使用jerry账号登录,提示密码错误。

ssh jerry@192.168.1.218 -p 7744

使用tom账号登录时,成功进入,并于tom用户的根目录中获得flag3:

DC-2_11

再查看flag时遇到了问题,默认提供的是rbash(受限shell),仅能实现少量功能。

使用compgen -c可以知道当前可使用的命令。

发现可以使用viless命令,查看flag3.txt

DC-2_12

flag 4

根据提示猜测需要切换到jerry的家目录,查看flag4,但是当前shell无法使用cd命令。

根据大佬的教程尝试绕过:Linux Restricted Shell绕过技巧总结

使用vi绕过:

DC-2_14

DC-2_15

进行测试:

DC-2_16

发现两个shell显示不一致,查找原因。

DC-2_17

添加环境变量:

export PATH=/usr/sbin:/usr/bin:/sbin:/bin

成功切换到jerry目录,查看flag:

DC-2_13

flag 5 (git 提权)

最后一个flag应该要获取root权限,由于flag4提示git,猜测应该通过git提权。

使用sudo -l,查看当前身份可运行命令时,提示tom用户无法运行sudo命令;这时想到可以尝试登陆jerry用户。

使用su jerry,输入前面得到的密码,登陆jerry用户。

DC-2_18

发现可以果然可以使用git命令,应用提权:

sudo git help config
	!/bin/bash或者!'sh'完成提权
sudo git  -p help
	!/bin/bash

DC-2_19

原文地址:https://www.cnblogs.com/chalan630/p/13303015.html