目录
一、存活主机探测
使用arp-scan -l对存活主机进行探测,找到DC2的IP为192.168.18.135。
二、端口扫描
使用nmap -A对192.168.18.135进行端口扫描。探测到80端口开放,且cms为WordPress。
访问80端口会出现无法访问的情况。这里需要在hosts文件绑定:vim /etc/hosts
即可正常访问,确实是WordPress的CMS,并且版本为4.7.10
(做到后面才发现这一步并不完善,还有端口未扫描出来)
三、目录爆破
使用dirsearch放在一旁进行目录爆破。扫出了一些登录界面。
四、flag1
在网站的右侧导航栏有flag栏,查看即可获得flag1。
Flag1的大意为:常用的密码字典可能不起作用,需要采用其他的方法,例如使用一些酷炫的技巧来解决。此外,这个提示还建议你试图获取更多的密码,但是有些密码是不可能获得的。提示中提到了登录,并建议以不同的身份登录,这可能意味着你需要在系统中找到一些用户账户,以便通过登录方式获取 flag。
应该是需要从网站获取到账户信息,无脑爆破应该不得行。
五、获得枚举账号字典
后面花了挺久在msf和exploit-db没有搜索到相关的版本漏洞。
1.了解cewl
重新查看提示后,了解到cewl是kali自带的字典生成工具,通过爬取网站信息来创建密码字典。试试爬取WP的密码字典:cewl http://dc-2/index.php/flag/ -w DC2-pw.txt。-w表示将字典写入到文件。
2.了解WPScan
WPScan是kali自带专门扫描WordPress漏洞的扫描器,可以枚举用户名,存在漏洞的主题、插件等等。Flag1中提示需要从网站获取账号信息,前面我们已经使用cewl获取到了密码字典。那么使用WPScan命令获取用户名字典:wpscan --url http://dc-2/ --enumerate u
获取到三个用户名:admin、jerry、tom,并保存为文件。
用获取到的用户名和密码进行爆破:wpscan --url http://dc-2/ -U DC2-user.txt -P DC2-pw.txt。爆破出两个账号信息:jerry/adipiscing、tom/parturient
六、flag2
使用jerry账号登录,在pages找到flag2。大意为:如果你不能利用WordPress并走捷径,还有另一种方法,希望你找到了另一个入口。在网站应该找不到漏洞点了,需要从其他地方入手。
登录另一个账号tom,发现没有pages导航栏,猜测tom为低权限用户。
七、flag3
这里因为第二部端口扫描时,只扫描出一个80端口,导致后续没思路了。查看其他师傅写的文章发现了自己的问题,应该用nmap把靶机IP再全面扫一遍,能多扫出7744端口才能继续做下去。nmap -A -sS -p 1-65535 192.168.18.135
到这里发现7744端口是ssh修改了端口,可以尝试远程登陆
使用jerry/adipiscing、tom/parturient尝试登录,使用tom账号登录成功。
在当前目录下有flag3.txt,使用vi查看。大意为:可怜的汤姆总是在追逐杰瑞。也许他应该以超级用户的身份运行,来减轻自己的压力。
可能需要提权或切换到Jerry用户。
八、rbash绕过
很多命令无法执行,会显示-rbash。使用compgen -c查看可以使用的指令。在网站目录下的wp-config.php发现了数据库账户信息。
利用vi提权vi 1.txt,在下面依次写上:set shell=/bin/sh、:shell,可以使用简单的命令
使用export -p查看PATH环境变量
修改PATH:export PATH="/usr/sbin:/usr/bin:/rbin:/bin即可使用完整命令
九、flag4
cd ..返回上级目录后,看到了jerry目录,cd进去有flag4。大意为:还有最后一个flag,需要靠自己没有提示。结合flag3,应该还是得su切换到Jerry用户。
使用su切换到jerry用户,想进入到root目录下,但是没有权限。
使用find查找能否利用suid提权的命令:find / -perm -u=s -type f 2>/dev/null
-perm:按照文件权限来查找文件
好像只有sudo能利用,使用sudo命令可以临时提升当前用户的权限来执行特定的操作。Sudo -l查看当前用户jerry可以运行的命令和权限,可以执行/usr/bin/git命令
十、Git提权
1、sudo git help config #在末行命令模式输入 !/bin/bash 或 !'sh' #完成提权
或2、sudo git -p help 、!/bin/bash #输入!/bin/bash,即可打开一个用户为root的shell
提权成功。
十一、flag5
进入到root目录,查看最后一个flag——final-flag.txt。
十二、总结
- 端口扫描要仔细,需要详细的扫描目标端口,稍有不仔细后续容易没有思路。
- Cewl可以通过爬取网站信息来创建密码字典;wpscan可以获取wp的用户字典。
- Rbash的绕过方式:
- export -p查看PATH环境变量
- 修改PATH:export PATH=”/usr/sbin:/usr/bin:/rbin:/bin”
- Git提权:
方法一:①sudo git help config
②在末行命令模式输入 !/bin/bash 或 !'sh' #完成提权
方法二:①sudo git -p help
②!/bin/bash #输入!/bin/bash,即可打开一个用户为root的shell