这篇分为三个部分,基本认知,信息收集,后续探针,
基本认知
分为,名词,域,认知;
完整架构图
名词
dwz称之为军事区,两个防火墙之间的区域称之为dwz,但安全性比内网较低,在dwz有邮件服务器,web服务器,我一般攻击内网是借助的web服务器。有dwz的存在大大增加了渗透内网的难度,即使拿下了web权限,也是要在渗透内网才可以的。
把一些不得不对外开放的东西,放到dwz;不用对外开放的都放在内网。
局域网:小公司,几台计算机的成为局域网也叫做工作组;
和域环境的区别:
范围小的计算机在一个局域网里面我们叫做工作组,不用去管理这些计算机。域环境需要一台主机去管理这些计算机,在大型环境里面就会用到域环境,方便去管理每一台机器,不用一台一台去管理,工作组的升级版。
工作组和域环境的攻击手法也有所差异。
域控制器dc;就是这个域里面的管理者,
活动目录ad;这是域控制器上面的一个策略,功能主机,比如一些安装软件,策略啊,都是由他来管理,
域
单域;公司里面有一个域环境,把所有东西都放在哪一个域里面,就是单域,
父域和子域;假如公司有了分公司,分公司有一个自己单独的域,但是还是会被主公司统筹管理
域数和域森林;框架结果有很多分支就称之为域森林,
认知
linux域渗透问题;linux域需要一个叫ldap的环境支撑,而且功能环境没有windows那么强大,大部分碰到的域都是windwos; 所以讲这个内网只会讲一点点linux。
局域网技术适用问题;
比如搜索,很明显地给出了适合局域网攻击,
大概内网流程安全问题;
大概就是,前期把基础知识搞清楚,接下来就进行信息收集,信息收集完只会就会涉及权限提升,权限可在前也可在后,我一般喜欢放在前面,自己权限足够高才能更好的操作;接下来就是横向渗透,知识点主要集中在这块;接下来是权限维持,不过重点还是在前面横向渗透,把前面横向渗透搞清楚之后,权限维持也懂
域环境框架
别的所有设备都在一个网段,唯独web服务器有两个网段,不同的网段就是对外开发的网段,黑客攻击的网段也是这个对外开放的,黑客通过对外的网段攻击到计算机,由于内网网段处于内网的链接,又享有192.168.3.31的访问的权限,可以针对内网环境的一些主机进行访问,攻击,首要攻击目标就是域控机dc。
这是单域的情况框架
案例一信息收集
信息收集包括:
信息收集的意义:判断当前服务器的操作系统以及版本,计算机的基本信息,为后续判断服务器脚本和网络环境做准备,
旨在了解当前服务器的计算机基本信息,为后续判断服务器角色,网络环境等做准备
systeminfo 详细信息
net start 启动服务
tasklist 进程列表
schtasks 计划任务
在执行查看计划任务的适合就提示出来权限不够,这就是为什么要做提权操作,
案例二网络信息收集操作演示
旨在了解当前服务器的网络接口信息,为判断当前角色,功能,网络架构做准备
ipconfig /all 判断存在域:根据是否有"主DNS后缀"一栏判断是否存在域
net view /domain 判断存在域:能成功返回说明存在域
net time /domain 判断主域:会返回主域的时间,可以确定主域名,配合"nslookup""ping"确定IP地址
netstat -ano 当前网络端口开放
nslookup 域名 追踪来源地址
最简单的判断是域的方法 ipconfi /all
看回显这里,dns后缀有显示,就是在域里面
我本机执行就没有,
net view /domain,判断
看到回显有信息版本就是有域
我本机就没有
net time /domain 判断主域
net time是查看时间的意思,而加上/domain就是在域环境里面查看
出现了这个东西,前面输入ipconfig /all有一个dns后缀叫god.org
本机就没有
域森林和父域子域概念,dns后缀是got.org,现在有两个主机名字
这就出现了域森林,多余的型号,说明当前环境存在多域
这个就是父域
这个就相当于子域
为什么输入那个查看时间判断主域,因为域的时间一般都以域控制器为准,所以获取域时间,就会从域控上面获取,而前面显示的名字,就是域控的名字
这时候就可以利用nslockup 域控名字 去查看ip
这个ip地址就是域控的ip
也可以直接去ping主机名在获取到ip地址
netstak -ano
查看当前主机开放端口
信息主要是为了判断端口情况,为当前角色,功能,框架做出准备,知道当前服务器是干嘛用的,比如前面看基本上我发现这台主机的名字叫做webserver,webserver就是web服务器,这台计算机服务器就是网站服务提供。
每个服务器的角色,就大概知道干嘛用的。通过知道角色可以判断出来攻击手法,比如是网站服务器主机就用web攻击手段;自己的个人电脑,就不可能使用web攻击手法,他连网站都没有。
案例三用户信息收集操作演示
旨在了解当前计算机或域环境下的用户及用户组信息,便于后期利用凭据进行测试,系统默认常见用户身份(我们主要攻击Domain Admains和Enterprise Admains,大部分成员主机在Domain users域用户里)
Domain Admins:域管理员(默认对域控制器有完全控制权)
Domain Computers:域内机器
Domain Controllers:域控制器
Domain Guest:域访客,权限低
Domain Users:域用户
Enterprise Admins:企业系统管理员用户(默认对域控制器有完全控制权)
一般我们主要攻击目标就是Domain Admins:域管理员和Enterprise Admins:企业系统管理员用户
而用户一般都存放在Domain Users:域用户
net user 本地用户
在本地用户一个普通用户点计算机右键管理的时候,会弹窗要登录adminsteast账户密码次啊可以打开,而如果登录管理用户的就可以直接右键管理查看策略什么的信息
net user /domain 获取域用户信息
net localgroup 本地用户组
net group /domain 查看域里面用户组
wmic useraccount get /all 涉及域用户详细信息
就相当于知道了域里面的用户名以及ip,假如有了域用户的密码就能进行操作了,书记这个信息就是为了后续密码账户攻击做准备,有了域用户名就可以用密码上面的攻击套用上去进行攻击,爆破,
net group "Domain Admins" /domain 查询域管理员账户
net group "Enterprise Admins" /domain 查询管理员用户组
net group "Domain Controllers" /domain 查询域控制器
案例四凭据信息收集操作演示
分为两类,
计算机用户的hash值,和明文的获取,指的就是操作系统上的账户密码信息,
mimikatz(爆破hash值的神器),
imikatz下载:https://github.com/gentilkiwi/mimikatz/releases
这个需要管理员权限运行才可以,所以为什么课程安排是先进性提权,然后运行这个脚本,这个脚本有一个是免反弹式窗口的脚本,运行他就可以自动生成一个txt文件,里面就是运行后的结果,不用担心会出现没有反弹式窗口的情况
以管理员身份运行
之后就直接出来了明文密码和hash值
linux版本的脚本,没有mimiakatz好
mimipenguin下载:https://github.com/huntergregal/mimipenguin/releases/
打开下载链接有他支持的部分版本
下载好解压,直接运行脚本就会返回结果
计算机协议服务口令的获取,
要收集的信息
1.站点源码备份文件、数据库备份文件等
2.各类数据库 Web 管理入口,如PHPMyAdmin
3.浏览器保存密码、浏览器 Cookies
4.其他用户会话、3389 和 ipc$连接记录、回收站内容
5.Windows 保存的 WIFI 密码
6.网络内部的各种帐号和密码,如:Email、VPN、FTP、OA 等
收集这些的作用:内网的攻击大部分都是建立在口令上的攻击,而管理员设置的密码都会有一定规矩,可能跟自己名字有关吧,就比如正常人的微信密码和qq的肯定有相似,甚至一样。内网肯定有办公电脑,有办公电脑就有他个人信息在上面,
两个利用工具;LaZagne(all),XenArmor(win)
LaZagne
这个要注意免杀,听老师说就是改一下md5字符串就行
直接拖入命令行运行
选择参数所有
但是有很多秘密都得不到,这里的解释,就是这个脚本是给垃圾,只是支持面广而已
下载:https://github.com/AlessandroZ/LaZagne (注意不能直接点击运行会闪退,要在命令行里面运行)
XenArmor(win)
国外软件,价格40-50美元,网上可能有破解版,不过是老版
下载地址:https://xenarmor.com/allinone-password-recovery-pro-software/(浏览器、WiFi、FTP的密码都可以发现)
这个收费的就是牛逼
什么密码都翻出来了。连你忘了的密码都有,就是这么牛逼,付费就是不一样
获取这么口令密码的原因:这些口令密码就能是我的字典,开了3389协议,用这个字典去测试能不能登录,如果能登录我就拿到了新的一台内网服务器权限,拿到了之后再继续执行这个事情,然后字典就更加全面,
案例五探针主机域控架构服务操作演示
现在是一家把信息收集,收集好了,
探针域控制器以及地址信息
net time /domain,看到控制器的名字
nslookup 控制器名 查看控制器的详细信息
ping 域控名 获取到ip
探针域内存活(在线)主机及地址信息
存活主机就是指在线的主机,
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网段的主机,这是自带内部命令,不会被杀毒软件拦截)
不用担心扫描被杀
其它探针方式如:
nmap(易拦截)、masscan、第三方PowerShell脚本(windows的脚本开发语言)、nishang(推荐)、empire(推荐)等
PowerShell是windows上面的一个语言,和cmd差不多的,可以实现在windows实现功能开发语言,实现一些功能,攻击者就利用这个自己写一个PowerShell的脚本去攻击,
Nishang下载: https://github.com/samratashok/nishang
第一步导入模块,Import-Module .\nishang.psm1
如果导入不了,就设置一个执行策略
Set-ExecutionPolicy RemoteSigned
设置完之后点y就行
Get-Command -Module nishang 获取模块nishang的命令函数(有很多命令函数分别执行不同功能,比如以下命令)
Get-information 获取常规计算机信息
组,用户,密码,域,目录什么的都收集好了
Invoke-Mimikatz 获取计算机用户名密码
调用一下这个mimikatz参数
和执行mimikatz得到的一模一样
Invoke-Portscan -startaddress 192.168.3.0 -Endaddress 192.168.3.100 -ResolveHost -ScanPort 端口扫描(查看目录对应文件有演示语法,其他同理)
真的牛逼,根据名字在判断每个电脑的角色,有些设置了权限会出现访问不了,提权提到系统权限,就能突破这个限制,就不收用户的限制,
其他的功能:删除补丁,反弹shell,凭据获取
- 利用开放端口服务及计算机名判断
- 核心业务机器:
- 1.高级管理人员,系统管理员,财务/人事、业务人员的个人计算机
- 2.产品管理系统服务器
- 3.办公系统服务器
- 4.财务应用系统服务器
- 5.核心产品源码服务器
- 6.数据库服务器
- 7.文件或者网盘服务器
- 8.电子邮件服务器
- 9.网络监控系统服务器
- 10.其他服务器(内部技术文档服务器,其他监控服务器)
当前渗透成功的角色基本上可以确定能不能渗透成功的概率。
fa
cai