目录
我们攻击内网一般是借助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/