• 内网渗透之 windows 基础


    内网渗透 windows 基础

    1、认识用户

    1.1、用户权限划分

    1、system(最高权限) 2、Administrator(管理员) 3、User(普通用户)

    1.2、权限继承

    比如用管理员启动 ftp,ftp 就获取了管理员权限

    1.3、默认用户

    1、Administrator 2、Guest(来宾用户)

    查看系统全部用户:

    net user
    
    • 1

    2、认识组

    2.1、用户组

    用户组的特性:

    1、组是一些用户的集合

    2、为一个组添加权限后,组内成员自动获得相应的权限

    3、一个用户加入组后,自动获取组的所有权限

    2.2、特殊的组

    1、Administrators 组

    系统管理员组,拥有系统管理员权限

    2、Guests 组

    来宾用户组,普通来宾用户

    3、Users 组

    普通用户组

    4、Power Users 组

    可以创建、删除用户,创建共享文件夹

    5、Remote Desktop 组

    拥有远程连接功能(Administrators 组默认拥有此权限)

    6、Print Users 组

    拥有操作打印机权限

    2.3、查看用户组

    net localgroup
    
    • 1

    3、SID(安全标识符)

    创建用户的唯一号码

    3.1、查看用户 SID

    whoami /user
    
    • 1

    4、基本命令

    4.1、用户命令

    whoami					   #查看当前用户权限(最高权限:nt authority\system)
    net user 用户名	   		 #查看用户具体信息
    net user 用户名 密码 /add 	#添加一个新用户(需要管理员权限)注意密码复杂度
    query user 				   #查询在线用户
    
    • 1
    • 2
    • 3
    • 4

    4.2、用户组命令

    net localgroup 组名 /add 		#添加一个用户组
    net localgroup 组名		    #查看组内成员
    net localgroup 用户组 用户名 /del		#将指定用户移除组
    net localgroup 用户组 用户名 /add		#将指定用户添加组
    
    • 1
    • 2
    • 3
    • 4

    4.3、进程命令

    tasklist					#查看进程
    tasklist /svc				#显示PID,名字,服务
    taskkill /f /im	进程名		  #杀死进程
    TeamService.exe				#远程桌面进程
    
    • 1
    • 2
    • 3
    • 4

    4.4、网络命令

    ipconfig /all		#查看本机IP地址(详细信息)
    netstat -ano 		#查看本地网络信息
    netstat -ano | findstr "3389"	#只看3389端口信息
    REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f			#开启3389端口
    REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 11111111 /f 			#关闭3389端口
    
    • 1
    • 2
    • 3
    • 4
    • 5

    4.5、系统命令

    #查看系统版本
    ver
    ---------------------------
    windows5.1--win2003
    windows5.2--winXP
    windows6.1--win7/win2008
    winodws6.2--win8/win2012
    windows10 --win10
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    systeminfo		#查看windows详细信息
    
    • 1

    5、windows 认证及密码

    5.1、密码存储文件 sam

    默认存储在windows的c:\windows\system32下的config目录下面SAM文件
    
    • 1

    存储用户名及密码(需要管理员权限)

    5.2、密码加密类型

    1、lm hash
    2、ntlm hash(主要)
    版本:ntlm v1协议、ntlm v2协议
    
    • 1
    • 2
    • 3
    5.2.1、lm hash

    可以理解为 ntlm hash 的前身,不做过多概述

    5.2.2、ntlm hash

    使用 python 可以进行类似加密操作

    from passlib.hash import nthash
    h = nthash.hash('admin')		//得到admin的ntlm hash
    
    • 1
    • 2

    在登陆过程中,一般会有一个进程专门负责加密

    登录过程--winlogon.exe--接受密码(明文密码)
    传递过程--传递给lsass.exe进程--将用户名和密码进行加密
    认证过程--将加密后的值与SAM文件加密的值进行对比
    
    • 1
    • 2
    • 3

    以后可以通过 lsass.exe 抓取 windows 明文密码

    5.3、win 版本 && 密码版本

    windwos2000 -- lm hash(基本上见不到)
    windows2003 -- ntlm hash
    windows7 -- ntlm v2
    
    • 1
    • 2
    • 3

    6、认识 windows UAC

    6.1、UAC 概述

    UAC 虚拟化:User Account Cortrol(用户账户控制)虚拟化,通常见于 Windows 系统下的 Vista 和 7 及以上

    主要防止敏感操作,在应用造操作需要管理员权限时会触发 UAC 效果

    请添加图片描述

    6.2、触发 UAC 的操作

    (1)windows 更新

    (2)增加或删除用户

    (3)更改账户类型

    (4)安装或删除程序

    (5)安装驱动

    (6)设置家长控制

    (~)等等

    7、认识 windows ASR

    7.1、ASR 概述

    ASR:攻击面缩减(Attack Surface Reduction),现在主要用于防御

    版本要求:windows 10 – 1709版本、windows server 2016 及之后版本

    7.2、ASR 的作用

    作用:通过配置规则减少系统被恶意软件攻击

    (1)office 钓鱼攻击

    (2)usb 攻击

    (3)驱动下载攻击

    (4)apk 攻击

    7.3、ASR 查询

    ASR 位置:

    打开组策略编辑器:gpedit.msc (注册表)

    管理模板(Administrative Templates)-- Windows 组件(Windows Components)-- Windows Defender Antivirus – Windows Defender Exploit Guard – 攻击面减少(Attack Surface Reduction)

    请添加图片描述
    请添加图片描述
    请添加图片描述

    7.4、ASR 默认规则

    (1)未配置:禁用 --> 0

    (2)阻止:启用 --> 1

    (3)审核:评估 ASR 规则在启用后对组织的影响 --> 2

    (4)警告:启用规则,但允许最终用户绕过块

    7.5、设置 ASR 规则

    一般使用 PowerShell 进行相关操作

    ADD-MpPreference -AttackSurfaceReductionOnlyExclusions "规则"
    
    • 1

    设置规则一般都是由微软官方定义的一些规则

    GUID 矩阵的 ASR 规则:

    规则名称 										 		  	规则 GUID
    
    阻止滥用被利用的易受攻击的签名驱动程序 							56a863a9-875e-4185-98a7-b882c64b5ce5
    阻止 Adobe Reader 创建子进程 						 			7674ba52-37eb-4a4f-a9a1-f0f9a1619a2c
    阻止所有 Office 应用程序创建子进程 				     		 	d4f940ab-401b-4efc-aadc-ad5f3c50688a
    阻止从 Windows 本地安全机构子系统 (lsass.exe) 窃取凭据 			9e6c4e1f-7d60-472f-ba1a-a39ef669e4b2
    阻止电子邮件客户端和 Webmail 中的可执行内容 			   		    be9ba2d9-53ea-4cdc-84e5-9b1eeee46550
    阻止可执行文件运行,除非它们满足普遍性、年龄或受信任的列表条件 		01443614-cd74-433a-b99e-2ecdc07bfc25
    阻止执行可能混淆的脚本 										    5beb7efe-fd9a-4556-801d-275e5ffc04cc
    阻止 JavaScript 或 VBScript 启动下载的可执行内容 			    d3e037e1-3eb8-44c8-a917-57927947596d
    阻止 Office 应用程序创建可执行内容 							    3b576869-a4ec-4529-8536-b80a7769e899
    阻止 Office 应用程序将代码注入其他进程 					    	75668c1f-73b5-4cf0-bb93-3ecf5cb7cc84
    阻止 Office 通信应用程序创建子进程 							    26190899-1602-49e8-8b27-eb1d0a1ce869
    通过 WMI 事件订阅阻止持久性* 不支持文件和文件夹排除项		   	    e6db77e5-3df2-4cf1-b95a-636979351e5b
    阻止源自 PSExec 和 WMI 命令的进程创建 						    d1e49aac-8f56-4280-b9ba-993a6d77406c
    阻止从 USB 运行的不受信任和未签名的进程 						    b2b3f03d-6a65-4f7b-a9c7-1c7ef74a9ba4
    阻止来自 Office 宏的 Win32 API 调用 						    92e97fa1-2edf-4476-bdd6-9dd0b4dddc7b
    对勒索软件使用高级保护 									 	    c1db55ab-c21a-4637-bb3f-a12568109d35
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    查看规则效果:

    事件查看器
    cmd中运行 eventvwr.msc
    
    • 1
    • 2

    8、认识 Windows Applocker

    8.1、Applocker 概述

    应用程序控制策略:AppLocker,是Windows 7系统中新增加的一项安全功能

    8.2、Applocker 功能

    包含三部分功能:

    (1)可执行程序控制

    (2)安装程序控制

    (3)脚本控制

    8.3、查看 Applocker

    默认为未开启,需要启用

    services.msc中启用application identity(应用隔离)才会出现这个功能
    
    • 1

    请添加图片描述

    进入注册表即可查看 applocker

    gpedit.msc -- windows 设置 -- 安全设置 -- 应用程序控制策略 -- Applocker
    
    • 1

    请添加图片描述

    打开本地安全策略

    secpol.msc -- 应用程序控制(Applocation Control Pollcies)-- Applocker
    
    • 1

    请添加图片描述

    8.4、Applocker 规则

    Applocker 阻止的文件:

    (1)可执行文件:execom

    (2)脚本:ps1(powershell脚本)、bat(批处理脚本)、vbs(Visual Basic的脚本)

    (3)安装文件:msi

    (4)dll文件

    8.5、Applocker 规则条件

    (1)发布者 – 数字签名标识

    (2)路径

    (3)文件 hash

    9、认识 Token

    9.1、windows token

    ​ 访问令牌,用来描述进程或线程安全的对象,不用的用户登录都会生成一个对应的访问令牌,这个令牌在用户创建进程或线程会被使用进行拷贝。当使用这个令牌时,会获得这个令牌的所有权限

    9.2、token 的组成

    用户的 SID、用户组的 SID、用户登陆信息的状态 SID、等等

    10、Windows PowerShell

    一种脚本语言(可迭代),能够执行一些命令,后缀为.ps1

    10.1、优点

    (1)win7 之后默认集成

    (2)内存执行,不会在系统上写入任何文件,具有一定的隐蔽性

    (3)易于绕过一些杀毒软件

    10.2、版本

    查看版本 Get-Host
    
    • 1
    win7 -- powershell 2.0
    win8 -- powershell 3.0
    win8.1/2012 -- powershell 4.0
    win10/11 -- powershell 5.0
    
    • 1
    • 2
    • 3
    • 4

    请添加图片描述

    10.3、powershell 执行策略

    能不能运行用户所编写的脚本的功能

    (1)禁止任何脚本运行(Restricted:禁止一切运行

    (2)仅允许本地脚本运行(RemoteSigned:本地运行,远程不行

    (3)仅拥有签名的脚本程序可以运行(AllSigned

    (4)允许一切脚本运行(Unrestricted

    Get-ExecutionPolicy		//查看策略
    Set-ExecutionPolicy 	//执行策略
    
    • 1
    • 2

    请添加图片描述

    10.4、绕过策略

    正常运行脚本,报错
    .\xxx.ps1
    
    绕过方式
    powershell.exe -ep Bypass -File .\xxx.ps1
    powershell.exe -ep Bypass -WindowsStyle Hidden -Nologo -Nointeractive -Noprofile -File .\xxx.ps1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    请添加图片描述

    10.5、常见脚本

    powersplit
    nishang
    empire
    powercat
    
    • 1
    • 2
    • 3
    • 4

    11、认识 windows 域

    11.1、域的组成

    域控:Domain Controller 简称DC(公司老总级别)
    一台计算机
    
    域管理员:Appliance Domain 简称AD
    提供与服务的组件
    
    DNS服务器:域名与IP转换的服务(53端口)
    可以依靠DNS服务器定位域控
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    11.2、域中常见用户组

    域管理组 Domain Admins(高权限)
    组用户组 Domain Users
    企业系统管理组 Enterprise Admins(高权限)
    架构管理员组 Schema Admins(高权限)
    
    • 1
    • 2
    • 3
    • 4

    11.3、域内常见命令

    查看网络具体信息
    ipconfig
    ipconfig /all
    
    查看用户在域内的详细信息
    net user 用户名 /domain
    
    查看域内时间(通过实践定位域控)可以得到域控主机名称
    net time /domain 
    
    查看域内有多少台机器
    net view /domain:域名
    
    查看当前在线用户
    query user || qwinsta 
    
    查看域内所有用户组(需要权限)
    net group /domain
    
    查看域内成员列表
    net group "domain computers" /domain
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    11.4、查找域控方式的命令

    nltest /DClIST:域名
    
    • 1

    请添加图片描述

    查看域控组
    net group "domain controllers" /domain
    
    • 1
    • 2

    11.5、查看域内用户

    net user /domain
    dsquery user (需要高版本操作系统)
    net localgroup 用户组名 /domain
    
    • 1
    • 2
    • 3

    11.6、域内收集信息

    PowerSploit脚本中的PowerView
    需要先导入脚本 
    
    Import-Module .\PowerView.ps1
    Get-NetUser		#返回域内用户
    Get-NetDomainController	#获取域控
    Get-NetComputer	 #获取域内机器
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    请添加图片描述

  • 相关阅读:
    KSF绩效管理
    GRS全球回收标准-未来趋势
    【Android TV 开发】-->一些优秀 TV 开发相关框架 & 文章
    [cpp primer随笔] 14. 类的构造函数
    【赠书活动】浅谈C#中垃圾回收机制
    【人工智能】神经网络八股
    四路定时控制器设计原理
    关于华为OD,你应该知道的
    队列概述以及使用数组模拟实现队列(思路分析) [数据结构][Java]
    如何实现一个 Paxos
  • 原文地址:https://blog.csdn.net/qq_49433473/article/details/127345598