内网安全
一、基本理论知识
隔离区(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欺骗适用于局域网,而不适用于域。
内网安全流程
熟悉基础概念-信息收集-后续探针-权限提升-横向渗透-权限维持
二、实战操作
1、信息收集
基本信息收集
旨在了解当前服务器的计算机基本信息,为后续判断服务器角色,网络环境等做准备
- systeminfo //详细信息
- net start //启动服务
- tasklist //进程列表
- schtasks //计划任务
网络信息收集
旨在了解当前服务器的网络接口信息,为判断当前角色,功能,网络架构做准备
-
ipconfig /all //判断存在域-dns
-
net view /domain //判断存在域,若存在域,会显示出当前域
-
net time /domain //判断主域(域控),会返回域控的计算机全名
因为域成员计算机的时间一般会以域控制器为准,所以当执行net time /domain命令时,该计算机会去域控获取时间
-
netstat -ano //当前网络端口开放
-
nslookup //追踪来源地址,获取域控的IP地址(ping命令也可以)
用户信息收集
旨在了解当前计算机或域环境下的用户及用户组信息,便于后期利用凭据进行测试
系统默认常见用户身份:
- Domain Admins:域管理员(默认对域控制器有完全控制权)
- Domain Computers:域内机器
- Domain Controllers:域控制器
- Domain Guest:域访客,权限低
- Domain Users:域用户
- Enterprise Admins:企业系统管理员用户(默认对域控制器有完全控制权)
相关用户收集操作命令:
- net config workstation //登录信息
- net user //本地用户
- net localgroup //本地用户组
- net user /domain //获取域用户信息
- net group /domain //获取域用户组信息
- wmic useraccount get /all //涉及域用户详细信息
- net group “domain admins” /domain //查询域管理员账户
- net group “enterprise admins” /domain //查询管理员用户组
- net group “domain controllers” /domain //查询域控制器
- …
凭据信息收集
旨在收集各种密文,明文,口令等,为后续横向渗透做好测试准备
计算机用户密码 HASH、明文获取:mimikatz(Windows),mimipenguin(Linux)
如果直接在Webserver的webadmin用户运行会报错(mimikatz运行需要域管理员权限,域用户无法运行,因为权限不够)
计算机各种协议服务口令获取:LaZagne(all),XenArmor(Windows)
这两个软件主要是通过自动化翻找以下内容,从而获取凭据
-
站点源码备份文件、数据库备份文件等
-
各类数据库 Web 管理入口,如 PHPMyAdmin
-
浏览器保存密码、浏览器 Cookies
-
其他用户会话、3389 和 ipc$连接记录、回收站内容
-
Windows 保存的 WIFI 密码
-
网络内部的各种帐号和密码,如:Email、VPN、FTP、OA 等探针主机域控架构服务操作演示
探针主机域控架构服务
为后续横向思路做准备,针对应用,协议等各类攻击手法(探针域内主机角色及服务信息,利用开放端口服务及计算机名判断)
探针域控制器名及地址信息
-
net time /domain
-
nslookup
-
ping
探针域内存活(在线)主机及地址信息
nbtscan 192.168.3.0/24 第三方工具(类似于nmap,可能需要做免杀,不推荐)
for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.3.%I | findstr "TTL="
(用for循环去ping1-254网段的主机,这是自带内部命令,不会被杀毒软件拦截)
其它探针方式如:nmap(易拦截)、masscan、第三方PowerShell脚本(windows的脚本开发语言)、nishang(推荐)、empire(推荐)等
NiShang简介:
利用Powershell,攻击者可以在无需接触磁盘的情况下执行命令等,并且相较已经被广泛关注并防御的Cmd而言,Powershell并非那么的引人瞩目。
Nishang是基于PowerShell的渗透测试专用工具。它集成了框架、脚本和各种payload,能够帮助渗透测试人员在对Windows目标的全过程检测中使用,是一款来源于作者实战经历的智慧结晶。(类似于MSF)
nishang使用:
-
进入powershell,进入nishang目录
-
设置执行策略(第一次运行先设置执行策略):
Set-ExecutionPolicy RemoteSigned
权限不够的话要以管理员身份运行powershell
-
导入模块 nishang:
Import-Module .\nishang.psm1
-
获取模块 nishang 的命令函数:
Get-Command -Module nishang
(每个参数对应一个功能模块) -
可以调用Invoke-Mimikatz的功能(查询本地Windows的账号密码)
-
获取常规计算机信息:Get-Information
-
端口扫描(查看目录对应文件有演示语法,其他函数同理):
Invoke-PortScan -StartAddress 192.168.3.21 -EndAddress 192.168.3.31 -ResolveHost -ScanPort
-
其他功能:删除补丁,反弹 Shell,凭据获取等
核心业务机器(渗透内网的第一条服务器的角色):
-
高级管理人员、系统管理员、财务/人事/业务人员的个人计算机
-
产品管理系统服务器
-
办公系统服务器
-
财务应用系统服务器
-
核心产品源码服务器(自建 SVN、GIT)
-
数据库服务器
-
文件或网盘服务器、共享服务器
-
电子邮件服务器
-
网络监控系统服务器
-
其他服务器(内部技术文档服务器、其他监控服务器等)