实验环境
同样存在5个flag
渗透过程
0x01 信息搜集
由于不知道靶机IP地址,进行D段扫描,获得靶机IP地址。
经过测试,发现靶机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进行详细扫描:
直接访问web服务,是一个WordPress搭建的站。
0x02 开打
flag 1
直接在web服务中找到flag1:
根据flag1中提示猜测,第二步过程需要使用cewl
生成字典,并进行密码爆破,所以应该有需要登录的页面。
同时提示也暗示了可以有其他途径获得第二个flag。
flag 2
使用dirsearch进行目录扫描:
wp-admin
为后台登录页面,需要对此页面进行爆破。
根据前面的提示,建议使用cewl
生成字典,这里学习一下cewl
的用法。
Cewl
Cewl是一款采用Ruby开发的应用程序,你可以给它的爬虫指定URL地址和爬取深度,还可以添额外的外部链接,接下来Cewl会给你返回一个字典文件,你可以把字典用到类似John the Ripper
这样的密码破解工具中。除此之外,Cewl还提供了命令行工具。
使用Cewl工具获得字典:
wpscan
WPScan
是一个扫描 WordPress
漏洞的黑盒子扫描器,它可以为所有 Web
开发人员扫描 WordPress
漏洞并在他们开发前找到并解决问题。
WPScan使用完整教程之记一次对WordPress的渗透过程
wpscan --url https://www.xxxxxxx.wiki/ --enumerate u # 枚举用户
暴力破解密码:
wpscan --url http://dc-2 -e u --passwords dc-2_passwords.txt
使用得到的jerry账号及密码进行登录,发现flag2
使用tom的账户无法查看到flag2,猜测另有他用。
flag2提示,需要找到其他入口,想到7744端口开发,进行尝试。
flag 3
使用jerry账号登录,提示密码错误。
ssh jerry@192.168.1.218 -p 7744
使用tom账号登录时,成功进入,并于tom用户的根目录中获得flag3:
再查看flag时遇到了问题,默认提供的是rbash(受限shell),仅能实现少量功能。
使用compgen -c
可以知道当前可使用的命令。
发现可以使用vi
和less
命令,查看flag3.txt
flag 4
根据提示猜测需要切换到jerry的家目录,查看flag4,但是当前shell无法使用cd命令。
根据大佬的教程尝试绕过:Linux Restricted Shell绕过技巧总结
使用vi绕过:
进行测试:
发现两个shell显示不一致,查找原因。
添加环境变量:
export PATH=/usr/sbin:/usr/bin:/sbin:/bin
成功切换到jerry目录,查看flag:
flag 5 (git 提权)
最后一个flag应该要获取root权限,由于flag4提示git,猜测应该通过git提权。
使用sudo -l
,查看当前身份可运行命令时,提示tom用户无法运行sudo命令;这时想到可以尝试登陆jerry用户。
使用su jerry
,输入前面得到的密码,登陆jerry用户。
发现可以果然可以使用git命令,应用提权:
sudo git help config
!/bin/bash或者!'sh'完成提权
sudo git -p help
!/bin/bash