天天看点

内网渗透基础知识(学习笔记)

文章目录

    • 0x00   闲聊
    • 0x01   什么是内网?
    • 0x02   什么是工作组?
    • 0x03   什么是域?
    • 0x04   什么是域控制器?
    • 0x05   什么是单域?什么是父子域?什么是域树?什么是域森林?
    • 0x06   什么是活动目录?
    • 0x07   什么是SAM?
    • 0x08   什么是Kerberos协议?
    • 0x09   什么是NTLM HASH 和 NET-NTLM HASH?
    • 0x10   什么是SMB?
    • 0x11   什么是IPC?
    • 0x12   什么是NetBIOS?
    • 0x13   什么是WMI?
    • 0x14   什么是Windows Access Token?
    • 0x15   什么是SID?
    • 0x16   虚拟安全域
    • 0x17   什么是堡垒机?
    • 0x18   域中计算机的分类
    • 0x19   域内权限

0x00   闲聊

     要开始学习内网了,了解一些知识点和术语先。(很多分类点借鉴了一些文章和徐哥的内网安全攻防,解释都是借鉴于百科- -)。刚学,可能有些理解不到位的地方,还请大佬们指出。

0x01   什么是内网?

   答:  内网就是局域网(LAN),比如内网中的机器,输入

ipconfig/ifconfig

发现我们的ip是192.168..,内网中一号机器是192.168.0.1,二号机器是192.168.0.2,以此类推,但是我们在浏览器中输入

ip.cn

发现都是同一个ip。

0x02   什么是工作组?

   答:  这是局域网中的一个概念,当我们局域网内的主机太多时,或者需要对不用户进行功能分类时,就需要用到工作组。就相当于把我们的文件分类装在不同的文件夹中,一个是学习一个是工作。我们可以右击 此电脑 的属性,发现可以直接看到我们所处的工作组,其右侧可以进行设置更改。工作组的凭证都是放在本地的。

0x03   什么是域?

   答:  域就是相当于进出更加严格、功能更加强大的工作组。域提供了更加安全的管理,能够使用活动目录等强大的功能,能够通过域控实施统一的管理和操作。每个域都是使用域名系统 (DNS) 域名来标识的。每个域都需要一个或多个域控制器。域用户的凭证是放在域控主机的。

0x04   什么是域控制器?

   答:  域控制器(Domain Controller)简称DC。相当于就是域里面的管理员,每台计算机进入域和相互访问都要经过DC的审核。DC是我们内网渗透的主要目的。

0x05   什么是单域?什么是父子域?什么是域树?什么是域森林?

   答:  单域就是一个域;父子域就是有隶属关系的两个域;域树就是多层的父子域,有一个根节点;而域森林就是多个树建立信任关系的集合,相当于把两棵树的根节点连在了一起。为什么要分这么多?我的理解是 1是为了更方便管理,2是感觉它就像AS一样,简化了域和域之间的交流,降低了带宽占用。

0x06   什么是活动目录?

   答:  活动目录(Active Directory)简称AD。它基于DNS,以树状结构存储了一个域内有关网络对象(例如用户、用户组、计算机、域、安全策略等等)的信息,其中包含所有域用户和计算机帐户的密码哈希值。它提供基础网络服务(DNS/DHCP等)、计算机管理、用户服务、资源管理、桌面配置、应用系统支撑等功能。

     该文件在所有域控制器之间自动同步,它只能被域管理员访问和修改。

ntds.dit

是AD中的数据库文件,它被保存在域控制器中

c:\windows\system32\ntds\ntds.dit

的位置。我的理解就是一个庞大的索引数据库+强大的统一调配器。

0x07   什么是SAM?

   答:  SAM(security account manager 安全账户管理器)。就是我们创建电脑用户时的一个用户唯一标识,它存在

c:/windows/system32/config/SAM

,类似于linux里的/etc/passwd文件,不过它是加密了的,显得更加复杂。而且我们可以通过删除/替换 SAM文件,通过PE 免密登录一些老版本系统的管理员账号。

0x08   什么是Kerberos协议?

   答:  Kerberos协议面向的是比较小的场景——局域网,是在不安全的环境中提供安全的认证服务,利用了对称密钥加密技术和时间戳技术。

     假如使用一对一的密钥认证,就需要非常大量的密钥对,这个时候就提供了一个KDC(密钥分配中心)充当中间人,每台机器交换密钥的对象都变成了KDC,减少了大量的密钥。

     KDC提供了一些服务,分别是AS(Authentication Service认证服务器,为Client生成TGT的服务)和TGS(Ticket-Granting Service授予票据服务器,为Client生成某个服务的 ticket)。TGT 的解释比较绕口不好理解,我觉得也是一种票据。

协议过程:

   1)客户端向KDC发送身份信息,请求TGT

   2)KDC将TGT加密后返回给客户端

   3)客户端用解密后的TGT和要请求的服务名去问KDC,访问服务器的Ticket是什么(只有真的客户端才能解密出TGT)

   4)KDC返回一个加密后的Ticket和加密后的Session Key 给Client(第一个加密是用的KDC和服务器的密钥,第二个加密是用的KDC和客户端的密钥)(Ticket由 用户名,用户IP,服务名,有效期, 时间戳,Session key 构成) (Session key用于Service对Client的身份鉴别)。

   5)Client解密出Session Key,然后将自己的用户名和用户IP,利用Session Key加密成Authenticator,然后把Authenticator和之前得到的Ticket发给服务器;

   6)服务器解密Ticket,拿到Session Key、用户名,用户IP,服务名,有效期。然后再用拿到的Session Key去解密Authenticator,用Authenticator里的数据和Ticket里的数据作对比进行验证客户端的真实性。认证成功就返回请求的服务结果。

0x09   什么是NTLM HASH 和 NET-NTLM HASH?

   答:  NTLM(New Technologies Lan Manager)HASH,通常是指SAM文件或ntds.dit文件中存储的HASH,生成流程是 :1)16进制编码 2)unicode编码 3)MD4加密。

    NET-NTLM HASH 是在上面的NTLM认证过程中,从服务器端返回的一个hash值,里面存储了用户名、ip、加密算法,密码hash等。

对NTLM Hash可以通过这些方式获取:

   1)导出SAM文件,配合SYSKEY利用mimikatz等工具获得

   2)改注册表用minikatz读取lsass.exe进程获取(2012 r2和8.1及以上版本都禁止明文缓存到内存,而mimikatz是基于内存获取明文密码)

   3)NTLM哈希传递

  对NET-NTLM HASH 可通过使用Responder和Inveigh等工具进行中间人攻击,伪造服务器端简历SMB连接获取。

0x10   什么是SMB?

   答:  SMB是一种协议,它运行在其他几种协议之上,通过SMB可以共享访问服务器上的各种资源和文件。如果是使用NetBIOS协议就是139端口,如果是使用的TCP协议就是445端口,现在使用445更多。

0x11   什么是IPC?

   答:  IPC(Inter-Process Communication 进程间通信),用于进程之间的通信。

    在NT/2000以后开始使用IPC$(Internet Process Connection),它是为了让进程间通信而开放的命名管道,通过验证账号和密码,连接双方可以建立安全的通道并以此通道进行加密数据的交换,从而实现在远程管理和查看计算机的共享资源。

    它有一个特点,即在同一时间内,两个 IP 之间只允许建立一个连接。NT/2000 在提供了 ipc$ 功能的同时,在初次安装系统时还打开了默认共享,即所有的逻辑共享 (c$,d$,e$ …… ) 和系统目录 winnt 或 windows(admin$) 共享。我们在cms命令行中输入 net share 就能查看共享。

    我们常说的IPC$漏洞就是IPC的空连接,但是它原本的危害就很小,只能访问 everyone 权限的共享,访问小部分注册表等。而且在2000及之后的版本,更是设置了权限和禁用空连接。

    IPC$是基于SMB和NetBIOS,所以使用的端口也是139/445,实际访问哪个端口由是否允许NetBIOS决定。

  建立空会话:

net use \\ip\ipc$ "" /user:""

(注:前边引号“”内为空密码,后边user:""引号中为空用户名)

  删除IPC$连接:

net use \\192.168.1.101\ipc$ /del

已建立连接后:

   查看远程主机的共享资源:

net view \\ip

   得到远程主机的 NetBIOS 用户名列表(需要打开自己的 NBT ):

nbtstat -A ip

   将目标C盘映射到本地Z盘:

net use z: \\192.168.1.101\c$

注意:不管我们是否建立IPC$成功,都会在日志中留下记录。

0x12   什么是NetBIOS?

   答:  NetBIOS(NETwork Basic Input/Output System 网络基本输入输出系统)是一种协议,主要用于数十台计算机的小型局域网,也是一种应用程序编程接口(API),被局域网上的程序所使用。

   在利用Windows NT4.0 构建的网络系统中,对每一台主机的唯一标识信息是它的NetBIOS名。系统可以利用WINS服务、广播及Lmhost文件等多种模式通过139端口将NetBIOS名解析为相应IP地址,从而实现信息通讯。

0x13   什么是WMI?

   答:  是Windows 2K/XP管理系统的核心;对于其他的Win32操作系统,WMI是一个有用的插件。用户可以使用 WMI 管理本地和远程计算机。它提供了一个访问操作系统构成单元的公共接口。其默认打开的是135端口,

0x14   什么是Windows Access Token?

   答: windows访问令牌,包含了登陆会话的安全信息(比如各种SID)。当用户登陆时,系统创建一个访问令牌,然后以该用户身份运行的的所有进程都拥有该令牌的一个拷贝。该令牌唯一表示该用户、用户的组和用户的特权。有两种令牌:主令牌和模拟的令牌。主令牌是与进程相关的;模拟的令牌是与模拟令牌的线程相关的。关于利用Windows Access Token攻击的视频,今天漏洞银行刚发了一个。

0x15   什么是SID?

   答: SID是安全标识符,是标识用户、组和计算机帐户的唯一的号码。在第一次创建该帐户时,将给网络上的每一个帐户发布一个唯一的 SID。它用来跟踪每个账户,而且永远不会更改,即使我们更改了管理员的名字它也不会变。

0x16   虚拟安全域

   答: 虚拟安全域是指,把相同安全等级、相同安全需求的计算机,归入一个逻辑组内,对这个组配置访问控制策略。可在复杂的网络中进行简单方便的安全管理。通常安全域之间通过防火墙进行危险隔离,常见的划分如下。

内网渗透基础知识(学习笔记)

    DMZ区里是一些需要被外网访问到的服务器(比如Web服务器,邮件服务器等),而我们内网中的文件服务器和数据库服务器又是不想被外网访问到的,如果把它们都放在一个区域,制定相同的策略,会有很大的风险,所以用防火墙设备把它们分割开。内网部分又可以分为办公区和核心区,只有运维人员和IT主管能进入核心区。

0x17   什么是堡垒机?

   答: 堡垒机是一种针对 内部运维人员 的运维安全审计系统。它的主要的功能是就是限制登录入口,集中权限账号管理,对不合法命令进行命令阻断,记录运维人员的操作,出事了追责。它和防火墙直观上的区别就是,防火墙是用于外网和DMZ,DMZ和内网之间的,堡垒机是用于运维人员和内网之间的。

0x18   域中计算机的分类

   答: 域类的计算机分为域控制器、成员服务器、独立服务器和客户机四种。

域控制器:在第四点已经说了;

成员服务器:加入了域,但是没有安装AD,例如Web服务器、邮件服务器、防火墙这些;

独立服务器:既没有加入域也没有安装AD,可有可无。

客户机:使用资源的机器。

0x19   域内权限

   答: 域相关内置组分为域本地组、全局组、通用组。组的概念在上面说过了。

域本地组:域本地组的成员可以来自森林中的任何域,用来规定访问同一个域内的资源权限,存储在DC中,不可嵌套在其他组下;

全局组:全局组的成员来自自己的域(必须同一个域),用来访问任意域中的资源,存储在DC中,可嵌套在其他组中;

通用组:通用组成员来自森林中的任何域,用来访问任意域中的资源,存储在GC(全局编录)中。

A-G-DL-P 策略:

先将A(Account用户账号)添加到G(Global Group全局组)中,再将其添加到DL(Domain Local Group域本地组)中,最后授予P(Permission 资源许可权限)。

一些重要的域本地组:

管理员组(Administratos):权力值max;

远程登录组(Remote Desktop Users):具有远程登录权限;

打印机操作员组(Print Operators):管打印机,并且可以在登录登录和关闭域控;

账号操作员组(Account Operators):创建和管理域内的用户和组,可登录域控,默认没有成员;

服务器操作员组(Server Operators):管理域服务器,可管理共享目录、打印机、备份、关闭域控等,默认没有成员;

备份操作员组(Backup Operators):执行备份和还原操作,可登录域控和关闭域控,默认没有成员。

一些重要的全局组、通用组:

域管理员组(Domain Admins):该组成员默认会被添加到每台域成员计算机的管理员组,所以也继承了管理员组的权限;

企业系统管理员组(Enterprise Admins):是域森林根域中的一个组,该组成员在域森林的每个域内都是管理员组成员;

架构管理员组(Schema Admins):是域森林根域中的一个组,可以修改AD和域森林的模式;

域用户组(Domain Users):所有域成员所在的组。