大余
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9

HW期间,为防范钓鱼,即日起FreeBuf将取消投稿文章的一切外部链接。给您带来的不便,敬请谅解~
系列文章
简介
渗透测试-地基篇
该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维的操作和方式方法,望大家能共同加油学到东西。
请注意:
本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,本站及作者概不负责。
名言:
你对这行的兴趣,决定你在这行的成就!
一、前言
渗透测试人员需谨记《网络安全法》,根据《网络安全法》所示,未经授权的渗透测试都是不合法的,不管是出于何种目的。红队渗透人员在进行渗透期间,渗透测试的行为和项目必须在被渗透方授予权限可渗透后,才可进行渗透测试操作。
如今有一家dayu公司,需要对自己的业务以及整体的内网框架体系进行隐患挖掘,授予权限我进行对dayu公司的渗透测试操作,在签署了双方的《渗透测试授权书》后,我开始了对dayu公司的渗透之旅。
跳开思维讲,我此篇内容是内网渗透篇章,通过我的专栏:
社工钓鱼 -> 免杀过全杀软 -> 内网渗透
那么我通过了社工钓鱼的各种方式,将钓鱼文件进行免杀后,成功钓鱼到了该公司外围人员计算机,并控制了该计算机权限获得shell,并成功登录对方电脑。
但登陆对方电脑对于渗透测试人员最开始的感觉,面对的是一片“黑森林”,所以渗透测试人员首先需要对当前所处的环境进行判断。接下来将开始第一步内网渗透内网中的信息收集。
经过上期《渗透测试之地基内网篇:域森林内网信息收集(上)》
已经对这片“黑森林”有些清晰的思路了,那么还是需要扩大我们的域内信息库:
信息收集的深度,直接关系到内网渗透测试的成败!!
二、环境介绍
拓扑图简介
为了更好的演示接下来的渗透,我继续贴出了dayu公司的环境拓扑图,公司搭建环境:
三、域内基础信息收集
确定内网存在域后,获得shell控制后的主机也在域内,就可以进行域内相关信息的收集了。接下来介绍的大部分是通过LDAP协议到域控制器上进行查询的,所以需要权限认证才可以查询。
1、查询域
net view /domain
查询到域为:xiyou1中的用户!
2、查询域内所有计算机
net view /domain:xiyou1
收集到\USER1和\XIYOU两个域内计算机
3、查询域内所有用户组列表
net group /domain
拒绝访问,前面也提到了,有些情况是需要域控授权的。
那么为了让大家看到效果,我登录域控给大家显示:可看到,域内有11个组,身份如下:
*DnsUpdateProxy
*Domain Admins #域管理员
*Domain Computers #域内机器
*Domain Controllers #域控制器
*Domain Guests #域访客,权限较低
*Domain Users #域用户
*Enterprise Admins #企业系统管理员用户
*Enterprise Read-only Domain Controllers
*Group Policy Creator Owners
*Read-only Domain Controllers
*Schema Admins
提示:
在默认情况下,Domain Admins和Enterprise Admins对域内所有域控制器有完全控制权限!!
4、查询域内所有用户组列表
net group "domain computers" /domain
这是在域控的信息收集,演示给大家看:
收集到USER1$存在!
5、获取域密码信息-设置规则
net accounts /domain
这是在域控的信息收集,演示给大家看:
收集到了域密码策略、密码长度、错误锁定等等...
6、获取域信任信息
nltest /domain_trusts
在普通域用户通过查看域信任关系:
父域:dayu.com 父域计算机名:DAYU 子域:xiyou.dayu.com 子域计算机名:XIYOU1
以及子域和父域是信任关系!
四、查找域控制器
1、查找域控制器的机器名
nltest /DCLIST:xiyou.dayu
可看到机器名为:xiyou.xiyou.dayu.com
2、查看当前时间(非域控使用)
net time /domain
在通常情况下,时间服务器为主域控制器!
3、查看域控制器组
net group "domain controllers" /domain
netdom query pdc
#可以看到域控制器
域控制器组为:XIYOU
五、获取域内的用户和管理员信息
接下来演示大部分是已经通过普通域用户后,渗透提权拿下了子域用户,如何在子域控制器上信息收集这块,后期篇章会演示如何拿下子域!
1、查询所有域用户列表
1)向域控制器进行查询
net user /domain
可看到子域控制器的存在四个用户!
2)获取域内用户的详细信息
wmic useraccount get /all
在普通域用户下可看到常见参数包含:用户名、描述信息、SID、域名、状态等等!
3)查看存在的用户
dsquery user
可看到域内有四个用户,以及一个主域名!
常用的dsquery命令:
dsquery computer 查找目录中的计算机
dsquery contact 查找目录中的联系人
dsquery subnet 查找目录
dsquery group 查找目录中的组
dsquery ou 查找目录中的组织单位
dsquery site 查找目录中的站点
dsquery server 查找目录中的AD DC/LDS实例
dsquery user 查找目录中的用户
dsquery quota 查找目录中的配额规定
dsquery partition 查找目录中的分区
dsquery * 用通用的LDAP查询来查找目录中的任何对象
4)查询本地管理员组用户
net localgroup administrators
普通用户收集发现存在三个域用户,都属于域本地管理员组中!
2、查询域管理员用户组
1)查询域管理员用户
net group "domain admins" /domain
域管理员是administrator
2)查询企业管理员用户组
net group "Enterprise Admins" /domain
目前不存在企业管理员组!
六、定位域管理员
在内网旅行中的需求是:获取内网中特定用户或机器的权限,进而获得特定的资源!继续收集...
域管理员定位工具
1、psloggedon.exe
在Windows上可以执行net session来查看谁使用了本机资源,但是没有命令可用来查看谁在使用了远程计算机资源,谁登陆了远程计算机资源,使用psloggedon可以解决这一问题。
项目地址:
https://docs.microsoft.com/en-us/sysinternals/downloads/psloggedon
用法:
psloggedon [- ] [-l] [-x] [\\computername | username]
收集到:USER1\dayu是本域用户!
2、PVEFindADUser.exe
用于查找活动目录用户登录位置,枚举域用户,查找在特定计算机上登录的用户,包括本地用户,通过RDP登录的用户,用于运行服务和计划任务的用户。运行该工具需要.NET Framework2.0环境,并且具备管理员权限。
PVEFindADUser.exe -current
子域拒绝联系!!
3、netview.exe
项目地址:
https://github.com/mubix/netview
使用WinAPI枚举系统,利用NetSessionEnum找寻登录会话,利用NetShareEnum找寻共享,利用NetWkstaUserEnum枚举登录的用户。大部分功能不需要管理员权限。
参数 描述 -h 显示此帮助菜单 -f filename.txt 指定一个文件以从中提取主机列表 -e filename.txt 指定要排除的主机名文件 -o filename.txt 输出到文件而不是STDOUT -d domain 指定要从中拉出主机列表的域,如果未指定,则使用当前域 -g group 指定用于用户搜寻的组名,如果未指定,则使用“域管理员” -c 检查找到的共享以进行读取访问
在普通域用户发现非常重要信息:
子域IP为DNS的IP:10.10.3.6,用该工具还发现子域控制器上存在10.10.21.5的地址,存在多级内网情况!!
4、PowerView脚本(常用)
powerView.ps1是一款依赖powershell和wmi对内网进行查询的常用渗透测试脚本,集成在powersploit工具包中,是一个收集域信息很好用的脚本。
项目地址:
https://github.com/PowerShellEmpire/PowerTools/tree/master/PowerView
使用:
输入Get-ExecutionPolicy查看权限 输入Set-ExecutionPolicy UnRestricted修改权限 Import-Module .\powerview.ps1
更多PowerView命令参数:
Get-NetDomain: 获取当前用户所在域的名称 Get-NetUser: 获取所有用户的详细信息 Get-NetDomainController: 获取所有域控制器的信息 Get-NetComputer: 获取域内所有机器的详细信息 Get-NetOU: 获取域中的OU信息 Get-NetGroup: 获取所有域内组和组成员信息 Get-NetFileServer: 根据SPN获取当前域使用的文件服务器信息 Get-NetShare: 获取当前域内所有网络共享信息 Get-NetSession: 获取指定服务器的会话 Get-NetRDPSession: 获取指定服务器的远程连接 Get-NetProcess: 获取远程主机的进程 Get-UserEvent: 获取指定用户的日志 Get-ADObiect: 获取活动目录的对象 Get-NetGPO: 获取域内所有的组策略对象 Get-DomainPolicy: 获取域默认策略或域控制器策略 Invoke-UserHunter: 获取域用户登录的计算机信息及该用户是否有本地管理员权限 Invoke-ProcessHunter: 通过查询域内所有的机器进程找到特定用户 Invoke-UserEvenHunter: 根据用户日志查询某域用户登录过哪些域机器。
根据需求收集信息!!
七、查找域管理进程
一般在内网渗透中,通常围绕着收集明文凭据或者通过mimikatz提权等方法,如果内网环境非常的复杂,我们无法立即在用友权限的系统中获得域管理员进程,那么通常可以采用的方法是:在跳板机之间跳转,直至获得域管理员权限,同时进行一些分析工具,找到渗透测试的路径。
1、本机检查
列出本机的所有进程及进程用户
tasklist -v
2、查询域控制器的域用户会话
在域控制器中查询域用户会话列表,并将其与域管理员列表进行交叉引用,从而得到域管理会话的系统列表。
1)查询域控制器和域管理员列表
net group "Domain Controllers" /domain
net group "Domain Admins" /domain
2)收集所有活动域的会话列表
项目地址:
https://github.com/basicScandal/WinHackingBin
很遗憾没发现会话!!
3、扫描远程系统的NetBOIS信息
某些版本的windows操作系统允许用户通过NetBOIS查询已登录用户。下面这个windows命令行脚本就用于扫描远程系统活跃域中的管理会话。
for /F %i in (ips.txt) do @echo [+]Checking %i && nbtstat -A %i 2>NUL >nbsessions.txt && for /F %n in (names.txt) do @type nbsessions.txt | findstr /I %n > NUL && echo [!] %n was found logged into %i
创建ips.txt将IP填写入即可!可看到域的一些基本信息!
八、核心业务机器及敏感信息收集
在渗透中,发现重点核心业务机器是我们比较关心的,那么那些是核心业务机器和敏感内网信息,以及如何收集!
1、核心业务机器
高级管理人员 系统管理人员 财务/人事/业务人员的个人计算机 产品管理系统服务器 办公系统服务器 财务应用系统服务器 核心产品源码服务器(SVN/GIT服务器) 数据库服务器 文件服务器,共享服务器 电子邮件服务器 网站监控系统服务器 信息安全监控服务器其他分公司,生产工厂服务器等
2、敏感信息和敏感文件
站点源码备份文件,数据库备份文件等 各类数据库的Web 管理入口,例如 phpMyAdmin、Adminer 浏览器保存的密码和游览器的cookie 其他用户会话,3389和ipc$连接记录,回收站中的信息等 Windows的无线密码 网络内部的各种账号密码,包含电子邮箱,VPN,FTP、TeamView 等等
3、应用与文件形式信息收集
拿下一台机器后要先维权,权限稳了再收集信息,信息收集一定要全面仔细,信息收集完了再搞内网。往目标主机中传工具用完就删。翻文件的话,可以使用一些搜索命令来快速寻找。
指定目录下的文件中搜集各种账号密码:
findstr /si pass *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak
findstr /si userpwd *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak
findstr /si pwd *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak
findstr /si login *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak
findstr /si user *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak
4、前后端基本架构
渗透测试人员需要对目标网站的基本情况进行简单的判断,分析目标服务器所使用的web服务器、后端脚本、数据库、系统平台等。
下面列举一些常见的web架构:
ASP + Access + IIS 5.0/6.0 + Windows Server 2003
ASPX + MSSQL + IIS 7.0/7.5 + Windows Server 2008
PHP + MySQL + Apache
PHP + MySQL + IIS
PHP + MySQL + Nginx
JSP + MySQL + Nginx
JSP + MSSQL + Tomcat
JSP + Oracle + Tomcat
九、总结
通过对域内信息收集后,手动画出了简单的拓扑图:发现子域上存在父域和辅域,以及子域上还有多级网卡,目前还未延伸!和一些信息收集在笔记上记录着!目前需要EXP和强大的工具方法进行内网渗透,接下来将进行流量代理,代理到kali和windows攻击武器库机器上进行内网旅行渗透!
继续内网渗透的旅程!!
希望大家提高安全意识,没有网络安全就没有国家安全!
今天基础牢固就到这里,虽然基础,但是必须牢记于心。
作者:大余
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)