65、内网安全-域环境&工作组&局域网探针方案

目录


我们攻击内网一般是借助web攻击,直接进去,然后再去攻击内网,那么攻击的对象一般大部分是web,一般网站这块就是放在dmz区,然后中间有两个防火墙,服务器被攻陷之后,你进入到的是dmz,我们想渗透内网的话,还需要进入内网,内网才是核心地方的一些数据,比如像企业服务器、文件服务器、数据库服务器,还有一些类似的财务的一些东西,还有公司内部的个人电脑

这个就是完整的内网架构,一般web服务器这里就称为dmz了,然后中间就有两个防火墙,出现了dmz大大加大了攻击的难度,拿到web权限之后,还要到内网里面去才行,只能说web服务器和内网是分割的,分割在dmz

dmz,把不得不向外部服务的东西,单独放在dmz这个区域,然后核心的东西放到内网,当然不是说所有的内网都是这样子,有些可能web服务器就在内网,这种就会形成一旦攻击成功之后,网站服务器一旦沦陷的话,就会影响到内网的安全性

局域网、工作组就是我们现在大部分的环境,就是我们自己个人电脑一般像大型公司里面,他们有各种部门,各种单位,分公司,有些小公司,几台计算机、一个小局域网,像这种情况,我们称之为局域网、工作组的机制

工作组,范围小的计算机,在一个局域网里面,像我们学校宿舍里面,一个网吧里面,或者自己家庭里面,都是属于你上网的设备都在局域网,不需要有任何一台计算机去管理这些计算机,但是域环境就相当于存在一台主机去管理一些计算机,然后都属于他管理,一般大型赛事里面会用到域环境的原因,比如说我想在每台电脑上面开一个共享文件,用来储存一些文件用的,这个时候如果,你要去搞这个事情的话,我们就需要在每个计算机上面配一个用户来访问这个文件共享,一台一台的配置,是非常繁琐的,但是域环境就能够解决这个事情,直接在域控上面下达一个指令,创建一个用户,就能实现这么个功能,便于管理,他是工作组的一个升级版,我们内网安全里面就会见识到这两个环境下面的渗透方案,也就是这两个环境我们为什么要单独区分开来,就是因为这两个下面的攻击手段是不一样的,比如像工作组里面的攻击手段,常说的arp欺骗、DNS劫持,这种攻击手段在域环境下是没有作用的,原因就是环境决定的,就是有些攻击手段需要攻击条件,但是这个条件在域环境下没有,所以攻击手段就失效

域控制器DC,域里面的管理者,就是管理服务器,象征着域里面的最高权限,最高的管理用户,一般是否拿下整个域,就是判断你有没有拿下域控制器

活动目录AD,域控制器上面的一个策略,他其实就是功能主体,比如说像域内主机,要安装软件,有什么策略,其实就是他在管,他就是类似功能策略

公司建立域环境,公司都加入到域里面,这种情况就是单域,这个时候假设有分公司了,这些分公司可能又是一个单独的域,但是他又被统管,总公司管理分公司,那么单独的分公司有独立的一个域,这种情况就会形成父域和子域,父域就是比子域的上一级,域树和域森林只是一个单词意思,就是说你的框架结构,有很多支,这就称为域森林,他只是一个表达的名词,具体没有什么太多的含义,就是一个类似的框架结构,这是一些基本概念

网上有单独的视频和文章去讲解这些概念,但是你没有必要去学,你自己在后期的学习过程中,测试过程中,你用你自己的攻击手法和一些理解,去理解这些概念就可以了,没必要搞得那么清楚,我们自己去理解他,用我们自己的渗透思维、攻击手法思维去理解他就可以了,不要看百度百科上面的相关介绍,看不懂的

linux上的域环境,需要环境才能支撑,而且功能没有windows强大,所以大部分我们基本上碰到的就是windows,这就是为什么没有linux的原因,Linux服务器的操作系统也是能够加域的,比如域里面有linux的操作系统,Linux的服务器,在域里面也是可以的,只是说他很少存在的,大部分都是windows服务器,这也是说内网里面我们都有windows操作的一个原因

碰到域控是linux的,按照正常思路来搞就可以了

大概就是前期把基本概念搞清楚,进行信息收集,信息收集完,就会涉及到权限提升,权限提升可在前,可在后,一般我是愿意把他放在前面的,一般攻击内网大部分就是你进入到内网一台服务器,比如说你控制一台内网服务器了,这个时候你要在内网里面进行渗透,首先你要确定这台主机你是否控制了最高权限,才能为后续做准备,因为即使你主机权限不够的话,比如说你那个网站的服务器在内网里面,你的权限只是web权限,这个时候你做过内网渗透,权限不够,很多操作,你受限,做不了,所以你第一步肯定是要进行权限提升,这个就是为什么我把权限提升放在前面,但是你会发现,网上的视频教程文章,都是把权限提升放在渗透测试的后面

他觉得你是先渗透到内网的一台服务器计算机了,这个时候你在那台计算机安排计划,这个就看你怎么理解他,我个人是把权限提升放在前面的,就是先要取到服务器权限之后,你才能进行渗透,所以它这个权限提升可在前可在后,所以不要纠结这个事情

关于内网渗透的横向渗透,这个相关的攻击方法,是我们后期的重点,权限维持肯定是不如前面的知识点重要,因为你即使拿下服务器之后,你要先确定拿下之后,你才会有权限维持的概念,所以重点还是在横向渗透,把这个搞清楚,权限维持你懂一点,或者说不懂,关系都不大,因为你拿下权限这个是原因,权限维持只是说是为了后期的控制,这些东西,你要先有这个权限之后,才能做权限维持,权限维持学不学都无所谓,但是横向渗透是必须要掌握的

域成员主机

网站服务器有两个网卡,一个叫3.31,一个叫230.131,这个230就好比是他的对外出口,他通过这个接口进入到这台计算机之后,控制了这台计算机,由于这个计算机是出于内网的一个连接,所以它享有3这个IP的网络权限,就是说能够针对他们内网主机进行一个访问了,他的首要攻击目标就是这个DC,因为他拿下这几台计算机权限,仅仅只是获得了一些内网其它主机的权限,但是还是没有获取DC,因为一旦获取dc权限的话,那就表示其它计算机全部遭殃,因为其它计算机都是受到DC的管理,大概的思维和简单的拓补图,我们已经给大家展示出来了

所以简单的内网就是这么个情况,这种就是属于单域的情况,如果是出现多域,很可能这里又可能出现一个外部连接,比如说像下面就又有一个域,域里面又属于这里面的其中一个

案例1-基本信息收集操作演示

旨在了解当前服务器的计算机基本信息,为后续判断服务器角色,网络环境等做准备

systeminfo 详细信息

net start 启动服务

tasklist 进程列表

schtasks 计划任务

服务器角色:服务器是干嘛的,在内网当中扮演什么角色

他每台电脑,每台服务器都是有一个角色的,他在内网中扮演什么角色,是仅仅使用还是用来文件传输,还是用来dns解析,各种各样一些乱七八遭的功能

一般完整的域环境要开个五六台的,32G以上才有可能扛得住

从启动服务里面就能判断他是什么角色,因为有些服务如果他有装的话,他有这些应用,说明是一些服务功能角色

计划任务加载不出来,是因为他的权限不够,这就是我们为什么要提权的原因,我为什么要把权限放在前面的原因

这里是个webadmin的一个用户,那这个用户可能是管理员,同时他还加载不了,原因是他受到域控制器的影响,所以有些命令他执行不了,所以就需要提权,突破这个域控的管理

案例2-网络信息收集操作演示

旨在了解当前服务器的网络接口信息,为判断当前角色,功能,网络架构做准备ipconfig /all 判断存在域-dns

net view /domain 判断存在域

net time /domain 判断主域

netstat -ano 当前网络端口开放

nslookup 域名 追踪来源地址

这就是最简单最直接判断你当前服务器是域环境,还是单纯的工作组、局域网的问题,因为在域环境里,通常会有dns解析服务器,由他来操作,所以必定会有主DNS后缀

我们要做内网渗透,肯定会获得一台内网服务器,才能做这些事情

主域就是域控的事情

域森林,多域的情况,也是我们父域、子域的意思,这个就相当于父域、子域

我们只有知道每个服务器的角色,才会有思路,你知道这台服务器是个web,我们在攻击他的时候,是不是可以进行网站的攻击,如果是个人电脑,那上面肯定是没有网站的,那就可以放弃网站攻击的相关手段,这也是为什么我们前期会介绍到信息收集的重要性,这就是为后续的思路和手法做准备

案例3-用户信息收集操作演示

旨在了解当前计算机或域环境下的用户及用户组信息,便于后期利用凭据进行测试系统默认常见用户身份:

Domain Admins: 域管理员(默认对域控制器有完全控制权)

Domain Computers: 域内机器

Domain Controllers: 域控制器

Domain Guest: 域访客,权限低

Domain Users: 域用户

Enterprise Admins: 企业系统管理员用户(默认对域控制器有完全控制权)

一般我们主要是攻击Domain Admins和Enterprise Admins,大部分成员组机在Domain Users这里,我在域控上面打开看一下

我们只有拿下域控,才会得到内网的所有权限

相关用户收集操作命令:

whoami /all 用户权限

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 查询域控制器

这个就是AD目录在控制,我们操作不了用户账户控制,是因为域成员,主机权限不够,受到权限的影响

为什么域方便,因为域能阻止很多不安全性的操作

我们点击切换用户

收集这些信息,是为了得到这些密码,我就享有域用户名的权限,他在那个组里面,我们就知道了,为了后续进行密码账号的攻击手法做准备,所以这些信息要全部收集到

攻击的时候可以用这些用户名进行密码的爆破,因为这些用户都是在域里面真实存在的,我们可以随便伪造一个用户名,密码搞个字典跑,看有没有这个口令,去尝试登录一些计算机

案例4-凭据信息收集操作演示

旨在收集各种密文,明文,口令等,为后续横向渗透做好测试准备

计算机用户HASH,明文获取-mimikatz(win),mimipenguin(linux)

计算机各种协议服务口令获取-LaZagne(all),XenArmor (win)

Netah WLAN show profiles

Netah WLAN show profile name="无线名称" key=clear

1.站点源码备份文件、数据库备份文件等

2.各类数据库Web管理入口,如PHPMyAdmin

3.浏览器保存密码、浏览器Cookies

4.其他用户会话、3389和ipc$连接记录、回收站内容

5.windows 保存的WIFI密码

6.网络内部的各种帐号和密码,如: Email、VPN、FTP、OA等

mimikatz(win),内网里面使用的最广的,内网里面这个工具是逃不掉的,必须使用,不使用他你搞不了事情

mimikatz时常更新,更新主要内容就是兼容,可能是一些年赛、一些功能,大体上功能都差不多

我们现在登录的用户是域成员,在domain user里面不是管理员,所以它的这个权限获取不来,你就执行不了他

linux是不适合在域控里面,有的人就是把linux加入到域控里面,他也可以加,你也不是说没有万一的情况,如果你在内网环境里面碰到这个情况,或者说你获取的就是Linux操作系统,我们要明文

如果不是root权限运行的文件,同样的获取不了,所以说权限提升的重要性就在这里,你不提到这个权限,你获取不了他的明文密码

linux在域环境下很少存在

内网的攻击大部分是建立在口令上的攻击,管理员很多为了方便,他会把一些账号密码设置成有规律的

所以我们获得一台电脑上面的一些比较重要信息的时候,就可能是那个密码,也可能是这个人自己的密码,比如说他是老板,他自己设计密码,和他网上通讯的密码是有关系的,比如他的QQ密码,浏览器访问网站的密码,个人电脑在这个内网里面,办公电脑,有人就肯定有它的个人信息在上面,那就收录这台电脑储存的信息,包括浏览器的信息,有没有在这上面连接其它电脑的信息,这些信息就比较关键,因为在连接的时候,有些各种应用,服务软件,他都会有类似的保存机制,问你是否保存密码,是否储存,就说明这个密码有可能泄露

https://github.com/AlessandroZ/LaZagne

改一下LaZagne的md5值就可以绕过免杀,他的支持面广,但是他比较垃圾,另外一个收费工具XenArmor (win)就会比他好很多,有钱就买,没钱就搞破解,网上有破解版,但是是老版

凡是他登录的网站都有登录密码,可以自己去网上找下破解版,跟新版本对比,会少一两个密码

我把这些密码口令获取到之后,这个口令密码是不是可以成为我的密码字典

假设你内网一台主机开了3389协议登录,我是不是就可以用这个用户名套用这个密码去不断测试,你能不能登录一台计算机,如果我能登录这台计算机,就相当于白送我内网一台服务器权限,我拿到另外一台计算机权限,我又可以重新操作这个事情,进一步把密码字典收集的更全,那对网络架构了解的更深刻,这个时候我们在渗透其它主机,渗透域控成功机率就会越大,这是一步步先取一台,再取两台,三台,慢慢的就会被你全部拿下

前期从一台获取到两台的时候,那么这些密码、这些凭据信息,就是非常重要的,因为有了这些信息,你才能为你后续的攻击,成功的机会就会大大提高,你单纯的用一些攻击手段,是很难实现的,因为后续,我们在讲横向渗透的时候,包括你在网上看到的文章、视频、书籍全部都是建立在口令上面的攻击,很少有受到其它方面的攻击,而且你会发现,我讲的这些东西,都差不多,无非就是那个讲的好理解一些,也不会说那个就会出现新的干货,不可能,因为网上公开资料就那么多,他学的就是这么些东西,我学的也是这么个东西,无非就是思路比你好一点,讲解比你深刻一点,所以你不要听信网络上的培训,一下子变成大牛,不可能的事情,都是差不多的,没有太多的区别,你能学好,就是因为你知识点掌握的越多,然后思路开阔一些,这就是差距,其它差距就没有多少了,大部分的技术水平都在那个档次,不可能说相差很大

案例5-探针主机域控架构服务操作演示

为后续横向思路做准备,针对应用,协议等各类攻击手法

探针域控制器名及地址信息

net time /domain nslookup ping

探针域内存活主机及地址信息

bash 复制代码
nbtscan 192.168.3.0/24 第三方工具
for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.3.%I | findstr "TTI=" 自带内部命令

自带内部命令不会被杀毒软件拦截,就是他解决这个免杀行为,因为你上传第三方工具上去搞的,首先要考虑免杀问题,还有一些工具有这个指纹,有一些好的防火墙,他会拦截这个工具指纹,就像WAF一样,他会判断你这个鸟毛正在nmap,正在用什么工具在扫,我直接把你干掉,他会有这种功能,你用一些第三方工具,好是好,功能强大是强大,而且你会用,不好的地方,他会拦截指纹,工具是个黑客的扫描工具,他会拦截,因为内网里面很多情况下,都有防护软件,就像红蓝对抗里面,蓝队会监控流量,他就会发现你,你最好是用系统自带的命令,杀毒软件也不会拦截你,你也不用去下载,直接用他系统自带的,绝对香

nmap masscan 第三方Powershell脚本nishang empire等

nishang好一些,看个人,有人觉得empire好一些

#导入模块nishang

Import-Module .\nishang.psml

#设置执行策略

Set-ExecutionPolicy RemoteSigned

#获取模块nishang的命令函数

Get-Command -Module nishang

#获取常规计算机信息

Get-Information

#端口扫描(查看目录对应文件有演示语法,其他同理)

Invoke-Portscan -startaddress 192,168.3.0 -EndAddress 192.168.3.100 -ResolveHost -ScanPort

#其他功能: 删除补丁,反弹shell,凭据获取等

探针域内主机角色及服务信息

powershell其实就是windows上的脚本开发环境,他上面的语言就是powershell语言,和这个cmd命令差不多的语言,就是可以实现在windows上面采用编程开发语言,官方系统自带的语言,来实现一些功能的开发,所以我们攻击者可以利用这个语言,开发出相应的脚本,实现这个攻击,用官方自带的脚本语言去写这个框架

nishang就是类似于msf的一个功能,可以把你的权限反弹到框架上面来,这个框架在对权限进行信息收集

我们可以把拿到的权限反弹到nishang、empire上面,他们就能实现在这上面加载一些功能,就不需要额外的下载工具了,因为你下载一些恶意工具的话,下载也比较麻烦,而且会被杀毒软件查杀,你直接用powershell官方自带的框架和脚本,这个功能的实现就是用官方的编程语言开发的,所以它不会受到影响,这是他的优势

在域里面有些是个人主机,个人主机难免就会关机,但是服务器一般就不会关机,个人主机、存活主机一般指的是目前在线的域内主机情况,这里就不是扫描所有,因为有些主机他可能关闭了,所以说检测存活主机,就是这个域内有那些东西正常在线,这里会使用几个东西,我们着重讲第二个和第三个

nbtscan老牌的工具了,我这里网上看的文章,大部分都在介绍这个东西,都是你转载,我转载,说实在的,没必要用这个工具,这个工具既不免杀,也是个老牌的工具,还要去下载,他不是自带的,功能也不强大,我们何必要去使用他呢

利用开放端口服务及计算机名判断核心业务机器:

1.高级管理人员、系统管理员、财务/人事/业务人员的个人计算机

2.产品管理系统服务器

3.办公系统服务器

4.财务应用系统服务器

5.核心产品源码服务器(自建SVN、GIT)

6.数据库服务器

7.文件或网盘服务器、共享服务器

8.电子邮件服务器

9.网络监控系统服务器

10.其他服务器(内部技术文档服务器、其他监控服务器等)

攻击他的端口,攻击内网主机的端口,我们这个思路就顿时打开了,不仅是口令方面的攻击,还可以对它上面的服务进行攻击,因为有些服务你是访问到的,你既然能够探针到,那就是能访问到,所以说这个攻击是多方面的,有些是访问不了,可能他有些内网的屏蔽,或者他设置权限,有些是个人电脑或者是服务器,可能有些服务,他给的权限比较低,假设你是销售,你想看财务数据,肯定看不了,那只有财务内部的人才可以看,所以他们单独有个账号密码,你渗透的是谁的账号密码,那就相当于你当前能做什么事情,和你权限相关的事情,这也是为什么要提权的原因,就相当于你这个系统权限能突破你们之前做的事情,因为你那个用户登录上去,他只是电脑上面的一个普通用户,他连执行一些敏感东西都执行不了,那就谈不上信息收集,你运行一个ipconfig都运行不了,那还有什么作用呢

你权限不够很多东西,你都做不了

判断存活主机,你攻击不了,判断主机对应的IP地址,他的角色,判断他上面有什么端口,什么服务,来便于你对它主机有什么方案的筛选,他上面有web,你就攻击他web,没有web就不攻击他web,然后前期收集的凭据信息,都可以当做密码爆破字典

在实战下会出现各种各样的功能角色,就是要看你自己在进入这个内网之后,你当前服务器是什么角色,就能很大部分判断你能不能渗透成功的概率,你本来进入内网的时候,是获取一台比较重要的服务器,比如像数据库,或者高级管理员的个人电脑,他上面可能有些凭据,那像这种机率可能会比较大一点,你仅仅搞一个普通员工的个人电脑,他在上面就每天登录一下内网,看看资料而已,那就没有什么价值,所以内网渗透成功的几率是由很多方面来决定的,第一个看你当前拿下电脑的角色,第二个看内网有没有安全域,有没有一些防护软件,一大堆的,而且设计的非常严,涉及多个域而且每个域,设置的比较严,而且密码账号是比较复杂的,特别注重密码的隐私,而且有那些使用规范,不会在内网机器上遗留个人信息,公司内部培训安全意识一样,告诉你内网自己的计算机上面不能搞自己的东西,其实就是加强业务,防止黑客一旦拿下这个权限之后,获取的一些凭据信息,进行的渗透,所以很多情况都能决定渗透成功的后续机率,这个就是我提的一个题外话,我把这个讲完之后,大家就能知道了

涉及资源

http://unixwiz.net/tools/nbtscan.html

https://github.com/samratashok/nishang

https://github.com/AlessandroZ/LaZagne

https://github.com/gentilkiwi/mimikatz/releases

https://github.com/huntergregal/mimipenguin/releases/

https://nagareshwar.securityxploded.com/download-softwares/

https://xenarmor.com/allinone-password-recovery-pro-software/

https://pan.baidu.com/s/14eVDglqba1aRXi9BGcBbug 提取码: taqu

相关推荐
儒道易行40 分钟前
【DVWA】RCE远程命令执行实战
网络·安全·网络安全
Myli_ing1 小时前
HTML的自动定义倒计时,这个配色存一下
前端·javascript·html
Hacker_LaoYi1 小时前
网络安全与加密
安全·web安全
dr李四维1 小时前
iOS构建版本以及Hbuilder打iOS的ipa包全流程
前端·笔记·ios·产品运营·产品经理·xcode
雯0609~1 小时前
网页F12:缓存的使用(设值、取值、删除)
前端·缓存
℘团子এ2 小时前
vue3中如何上传文件到腾讯云的桶(cosbrowser)
前端·javascript·腾讯云
Koi慢热2 小时前
路由基础(全)
linux·网络·网络协议·安全
学习前端的小z2 小时前
【前端】深入理解 JavaScript 逻辑运算符的优先级与短路求值机制
开发语言·前端·javascript
彭世瑜2 小时前
ts: TypeScript跳过检查/忽略类型检查
前端·javascript·typescript
FØund4042 小时前
antd form.setFieldsValue问题总结
前端·react.js·typescript·html