

基本理论知识

#非军事区(DMZ)
---两个防火墙之间,为了解决安装防火墙后外部网络用户不能访问内部网络服务器 的问题,而设立的一个非安全系统与 安全系统 之间的缓冲区。
---该缓冲区位于企业内部网络和外部网络之间的小网络区域内。放置一些必须公开的 服务器 设施,如企业Web服务器(攻击点) 、FTP服务器 和论坛 等。
---有一些web服务器也放在内网,这样更加危险。
---另一方面,通过这样一个DMZ区域,更加有效地保护内部网络。因为这种网络部署,比起一般的防火墙方案,对来自外网的攻击者来说又多了一道关卡。
#工作组&域环境
---工作组:地位平等,管理分散,没有集中管理。(范围小的计算机在局域网内)
---域环境:地位不平等,管理集中,实现集中管理。(共享文件,不需要每台计算机去配置用户进行访问,可以直接访问)
---域环境也可以简单的理解为工作组的升级版,更好管理。
---这里我们把域环境和工作组区分开来是因为他们的攻击手段不同。
---工作组中的攻击手法如DNS劫持、ARP欺骗在域环境下是没有作用的。有一些攻击手段需要一些条件,这些条件在域环境下没有,相应的攻击手段就会失效。
#域控制器DC
---域控DC是这个域中的管理者,域里面的最高权限,判断是否拿下整个域,就是看你是否拿下这台域控制器(这里面dc就是域控制器)

#AD活动目录
---是微软所提供的目录服务(查询,身份验证),活动目录的核心包含了活动目录数据库。
---在活动目录数据库中包含了域中所有的对象(用户,计算机,组…),活动目录(Active Directory)是面向Windows Standard Server、Windows Enterprise Server 以及Windows Datacenter Server的目录服务。
---Active Directory储存了有关网络对象的信息,并且让管理员和用户能够轻松的查找和使用这些信息。
#单域
---网络由主域管理器和任意数量的代理程序组成(公司都在一起,都在这个域内)

---可以将单域网络与其它网络(单域或多域)组合以满足多站点 的需求,这是很重要的

#父域和子域
--总公司和分公司的关系,总公司可以管分公司

#域树和域森林
---域树由多个域组成,这些域共享同一表结构和配置,形成一个连续的名字空间。树中的域通过信任关系连接起来,活动目录包含一个或多个域树
---域林是指由一个或多个没有形成连续名字空间的域树组成,它与上面所讲的域树最明显的区别就在于这些域树之间没有形成连续的名字空间,而域树则是由一些具有连续名字空间的域组成。
#Linux域渗透问题
---AD域控制器只在windows server系统能做吗?Linux可以?
---linux上也有相应的活动目录的,不过要装LDAP环境,一般企很少会用LDAP来管理的,因为功能上不及域强大,而且用linux来管理的话要求技术人员门槛也比较高,个人认为Linux还是比较适合做服务器好一点。
---(就是说Linux上面的域环境需要环境支撑,而且功能没有windows上的域强大,所以大部分我们遇见的都是windows,这也是没有Linux的原因。当然,Linux这个操作系统也是可以加入域的,比如域内有Linux的操作系统,有Linux的服务器也行,只是很少)
#局域网技术适用问题
---不同的攻击技术手段适用面不同,这个我们要有所了解,比如arp欺骗适用于局域网,而不适用于域。
#内网安全流程
---熟悉基础概念-信息收集-后续探针-权限提升-横向渗透-权限维持
#环境介绍
---下图属于单域环境,Windows2008R2作为域控DC,有五个域成员主机(我开了三个)
---fileserver文件服务器、SqlServer数据库服务器、webserver网站服务器和两台个人PC(两台PC没开)。他们都是在192.168.3.0这个网段
---网站服务器有两个网卡,一个在3.31一个在230.131,这个230.133就好比是它的一个对外出口(外网接口)
---kali攻击机就好比攻击者,它通过230.131这个接口进入网站服务器计算机,由于这台计算机是处于内网连接(这里没有DMZ),所有它享有3这个网段的访问权限。
---拿下网站服务器后的首要攻击目标就是DC!只要拿下DC,也就相当于同时拿下了所有域成员主机权限。

---查看webserver的ip(分别登录administraotr和god\webadmin,发现他们的ip都是固定的,这样应该没有配置两个ip,只有配置了一个固定的ip)
---注意:ipconfig和ipconfig /all区别,加上all才能查看域


基本信息收集操作演示
#旨在了解当前服务器的计算机基本信息,为后续判断服务器角色,网络环境等做准备(假设已经拿下了一台)
---systeminfo 详细信息(操作系统版本、补丁编号等信息)


---net start 启动服务(查看当前主机开启了哪些服务,从服务中就可以判断它是什么角色,比如说文件传输、数据库等等)

---tasklist 进程列表(查看当前主机开启了哪些进程)

---schtasks 计划任务(若报错无法加载列资源,说明你的权限不够,因此要提权才能使用该命令(注意计划任务是以system权限运行))

网络信息收集操作演示
#旨在了解当前服务器的网络接口信息,为判断当前角色,功能,网络架构做准备
---ipconfig /all 判断存在域-最简单方式查看主DNS后缀
---和DNS域名解析一样,god.org为sqlserver. god.org的父域名

---net view /domain 判断存在域(我这里不行,但是在视频了如果是域环境,会显示当前域)


---net time /domain 判断主域(主域就是域控的意思)【在域环境下查看当前时间】
---是因为域成员计算机的时间一般会以域控制器为准,所以当执行net time /domain命令时,该计算机会去域控获取时间
---此时返回的OWA2010CN-God.god.org就是域控的计算机全名。然后可以通过nslookup来最终确认域控IP

---nslookup <域控制器全名> 追踪来源地址(我们可以通过nslookup和ping命令获取域控的对应ip地址,域控主机ip为3.21)


---netstat -ano 当前网络端口开放(进程编号和本地端口)

用户信息收集操作演示
#旨在了解当前计算机或域环境下的用户及用户组信息,便于后期利用凭据进行测试,系统默认常见用户身份(我们主要攻击Domain Admains和Enterprise Admains,大部分成员主机在Domain users域用户里):
---Domain Admins:域管理员(默认对域控制器有完全控制权)
---Domain Computers:域内机器
---Domain Controllers:域控制器
---Domain Guest:域访客,权限低
---Domain Users:域用户
---Enterprise Admins:企业系统管理员用户(默认对域控制器有完全控制权)

#相关用户收集操作命令:
---whoami /all 用户权限(组信息、特权信息)

---net config workstation 登录信息

---net user 当前电脑里面的用户(本地用户)

---net user /domain 当前域里面的用户

---进行计算机管理时,发现需要验证本地管理员的密码(域成员(webadmin)的权限不够,需要域管理员(Administrator)或者本地管理员才行)

---切换到Webserver的Administrator用户发现可以(用域名用户登录就会受到域名控制器的控制,webadmin在本地没有用户)

---net localgroup 本地用户组

---net group /domain 获取域用户组信息(域管理员、域控制器、域用户、企业管理员等等)

---wmic useraccount get /all 涉及域用户详细信息

---net group "Domain Admins" /domain 查询域管理员账户

---net group "Enterprise Admins" /domain 查询管理员用户组

---net group "Domain Controllers" /domain 查询域控制器

---net group "Domain Users" /domain 查询域管理员账户

凭据信息收集操作演示
#旨在收集各种密文,明文,口令等,为后续横向渗透做好测试准备
---计算机用户密码 HASH、明文获取:mimikatz(win),mimipenguin(linux)
---mimikatz下载:https://github.com/gentilkiwi/mimikatz/releases
---如果直接在Webserver的webadmin用户运行会报错(mimikatz运行需要域管理员权限,域用户无法运行,因为权限不够)

---切换到Webserver的本地管理员用户运行---privilege::debug

---sekurlsa::logonpasswords(本地管理员密码和域用户密码)


---webserver用户的哈希密码(不知道这个用户是啥情况)

---mimipenguin下载:
https://github.com/huntergregal/mimipenguin/releases/

---我这里是18.04.4超过版本了,需要以root运行

---如果成功,就会把root和其它用户的明文密码显示出来

#计算机各种协议服务口令获取-LaZagne(all),XenArmor(win)
---获取的密码也有用来撞库,一般设置的密码都有规律的(可以把凭据信息设置成密码字典进行爆破)
#拉扎涅
---优点:免费;自动化脚本;支持win&linux&Mac
---缺点:很多密码都获取不到,不好用
---下载:https://github.com/AlessandroZ/LaZagne (注意不能直接点击运行会闪退,要在命令行里面运行)

---采用 all参数运行

---我的本地pc发现了一些密码

# XenArmor
---国外软件,价格40-50美元,网上可能有破解版,不过是老版
---下载地址:https://xenarmor.com/allinone-password-recovery-pro-software/(浏览器、WiFi、FTP的密码都可以发现)

#这两个软件主要是通过自动化翻找以下内容,从而获取凭据
---1.站点源码备份文件、数据库备份文件等
---2.各类数据库 Web 管理入口,如 PHPMyAdmin
---3.浏览器保存密码、浏览器 Cookies
---4.其他用户会话、3389 和 ipc$连接记录、回收站内容
---5.Windows 保存的 WIFI 密码
---6.网络内部的各种帐号和密码,如:Email、VPN、FTP、OA 等探针主机域控架构服务操作演示
案例 5-探针主机域控架构服务操作演示
#为后续横向思路做准备,针对应用,协议等各类攻击手法(探针域内主机角色及服务信息,利用开放端口服务及计算机名判断)
1.探针域控制器名及地址信息
---net time /domain
---nslookup
---ping

2.探针域内存活(在线)主机及地址信息
---nbtscan 192.168.3.0/24 第三方工具(类似于nmup,但是会标注域用户名和dc)
---下载:http://unixwiz.net/tools/nbtscan.html

---for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.3.%I | findstr "TTL="(用for循环去ping1-254网段的主机,这是自带内部命令,不会被杀毒软件拦截)
---这个没有域用户名和dc识别

---其它探针方式如:nmap(易拦截)、masscan、第三方PowerShell脚本(windows的脚本开发语言)、nishang(推荐)、empire(推荐)等
#NiShang简介:
---利用Powershell,攻击者可以在无需接触磁盘的情况下执行命令等,并且相较已经被广泛关注并防御的Cmd而言,Powershell并非那么的引人瞩目。
---Nishang是基于PowerShell的渗透测试专用工具。它集成了框架、脚本和各种payload,能够帮助渗透测试人员在对Windows目标的全过程检测中使用,是一款来源于作者实战经历的智慧结晶。(类似于MSF)
---Ni
Ni

---导入模块 nishang:Import-Module .\nishang.psm1

#设置执行策略(第一次运行先设置执行策略,这里还是权限不够)
---Set-ExecutionPolicy RemoteSigned

---以管理员运行powershell,注意这里的密码是DC的密码才行

---设置执行策略(首次执行nishang)

---导入模块

#获取模块 nishang 的命令函数
---Get-Command -Module nishang(每个参数对应一个功能模块)

---调用Invoke-Mimikatz的功能(查询本地windows账号密码)
---这里发现了域控(Administrator)的密码、域用户(webadmin)密码和本地管理员用户(Administrator)密码



#获取常规计算机信息:Get-Information
---登录用户

---安装的应用

---启用的服务

#端口扫描(查看目录对应文件有演示语法,其他同理)
---Invoke-PortScan -StartAddress 192.168.3.21 -EndAddress 192.168.3.31 -ResolveHost -ScanPort(扫了两次崩了两次)

---如果扫出来就会有:ip、主机名、开放端口(1433对应SQLserver数据库)
---除了口令攻击,还可以对服务进行攻击

#其他功能:删除补丁,反弹 Shell,凭据获取等
#核心业务机器(渗透内网的第一条服务器的角色):
---1.高级管理人员、系统管理员、财务/人事/业务人员的个人计算机
---2.产品管理系统服务器
---3.办公系统服务器
---4.财务应用系统服务器
---5.核心产品源码服务器(自建 SVN、GIT)
---6.数据库服务器
---7.文件或网盘服务器、共享服务器
---8.电子邮件服务器
---9.网络监控系统服务器
---10.其他服务器(内部技术文档服务器、其他监控服务器等)