【无标题】“@[内网信息收集]“
目录1. 内网渗透测试基础知识1.1 内网渗透1.2 网络的相关基础知识局域网工作组域单域父域子域域树域林域控DC2. 信息收集2.1 内网信息收集查看当前用户、权限查看网络配置信息查看主机路由信息查看操作系统信息查看端口连接信息查看当前会话列表查看当前进程信息查看计划任务查看自启动信息WMIC命令获取杀软名2.2 域内基础信息收集判断是否存在域环境一些方法查看域用户信息查看域用户组信息查看域内密码策略查看域控制器列表查看主域控制器定位域控制器查看域信任关系3. CS工具3.1 CS插件演示网络探针net view端口扫描查看结果密码凭证获取目标横向移动4. 域环境的一些基础知识域控与连网服务器主机域母盘环境5. Chorme历史记录和Cookie获取6. BloodHound工具用法步骤1.内网渗透测试基础知识。1.1内网渗透内网渗透是指获取目标服务器控制权后也就是利用我们之前所说的那些漏洞和方法进入到目标网站到 达服务器内部网络。然后通过内网信息收集内网代理权限提升纵向移动横向移动等技术对其所处的 内网环境进行渗透并最终获取内网其他主机权限的过程如域控制器域控、运维主机等等。1.2网络的相关基础知识局域网简单来说就是一定区域内的各种设备和数据库连接起来形成的计算机通信网。比如家用wifi。工作组工作组(Work Group)是最常见最简单最普通的资源管理模式就是将不同的电脑按功能分别列入不同的 组中以方便管理。比如高校、网吧。如何来进行设置工作组域通过工作组对局域网的计算机进行分类可以使资源的管理和访问更加层次化。但是工作组只适用于网络 中计算机不多、资产规模较小、对安全管理控制要求不严格的情况。当一个公司或者企业的网络规模越来越庞大 时达到几千甚至几万台主机服务器这时候使用工作组管理又会显得比较混乱了所以要使用域环境。域又分为单域、父域子域、域树、域林。单域网络环境中只有一个域。父域子域为了满足某些需求需要在一个域中划分出多个域。被划分的域叫做父域划分出来的分支 叫子域。域树多个域通过建立信任关系组成的一个域集合域林由一个或多个没有形成连续名字空间的域树组成的集合。域控DC“域”模式下至少有一台服务器负责每一台联入网络的电脑和用户的验证工作相当于一 个单位的门卫一样称为“域控制器Domain Controller简写为DC”。域控制器中包含了由这个域的 账户、密码、属于这个域的计算机等信息构成的数据库。当电脑联入网络时域控制器首先要鉴别这台 电脑是否是属于这个域的用户使用的登录账号是否存在、密码是否正确。如果以上信息有一样不正 确那么域控制器就会拒绝这个用户从这台电脑登录。不能登录用户就不能访问服务器上有权限保护 的资源他只能以对等网用户的方式访问Windows共享出来的资源这样就在一定程度上保护了网络上 的资源。通过以上知识学习我们明白了内网环境下域的基本概念和原理。接下来我们就要学习如何针对域环境 下的渗透。生产环境中域控管理员的账号具有权限可以登录任意一台域内的主机和服务器而域用户权限是比较低无 法在域成员主机上安装软件。所以我们可以设想以下场景某个域用户需要使用viso软件进行绘图操作于是联系管理员安装软件。管理员使用域管理员身份登录了 域成员主机帮助他安装了viso软件。于是这个有一定计算机基础的员工使用本地计算机的管理员身份执行 mimikatz(此命令是针对Windows系统获取密码)从内存中抓取了域管理员的密码成功使用域管理员账号 控制了整个域。因此域渗透的思路就是 1通过域成员主机定位出域控制器IP及域管理员账号 2利用域成员主机作为跳板渗透其他域成员 3利用域管理员可以登录域中任何成员主机的特性定位出域管理员登录过的主机IP设法从域成员主 机内存中dump出域管理员密码进而拿下域控制器 4渗透整个内网。2.信息收集拿下域成员主机之后如何定位出域控主机呢又如何知道域控主机登录过那些机 器呢 答案就是 ———— 域内信息收集由于域环境是独属于Windows系统微软的概念linux系统没有域控。所以我们域内信息收集命令大都是 针对Windows系统但是linux主机可以被添加为域成员。2.1内网信息收集渗透的本质是信息收集。有效的信息收集可以大大缩短渗透测试的时间。当我们通过前面所学的知识和方法通过web网站写入一句话木马控制目标服务之后需要以该服务器作为 跳板对其内网环境进行渗透。 对于我们目前的这台主机所在的网络位置、当前登录的用户、当前用户的权限、操作系统的信息、网络 配置信息以及当前主机运行的服务、进程信息等都是未知的。这就需要测试人员以当前主机为中心进行信息收 集1查看当前用户、权限 whoami /all作用查看当前用户以及当前用户所处的用户组、所拥有的特权等信息。 目的可以对当前用户所拥有的特权有大致了解并综合判断是否需要提升权限。2,查看网络配置信息ipconfig /all作用查看当前主机的网络配置情况包括主机的IP地址、主机名、网络适配器的信息等等 目的判断当前主机所处的内网网段可以通过工具扫描探测网段中存活的主机精确范围。3查看主机路由信息route print目的路由表中“网络目标”都是主机可以直接访问的。根据列中几个重要的IP地址段可以尝试探测其中存活 的主机。4查看操作系统信息systeminfo目的查看操作系统信息包括当前主机的主机名、操作系统版本、系统目录、所处的工作站域或工作组、 各网卡信息、安装的补丁信息等。5查看端口连接信息netstat -ano目的查看当前主机的端口连接情况包括当前主机的TCP、UDP等端口监听或开放状态以及当前主机与网络 中其他主机建立的连接情况。6查看当前会话列表net session目的查看当前主机与所连接的客户端主机之间的会话。7查看当前进程信息tasklist目的根据进程列表确定目标主机的本地程序运行情况并对目标主机上运行的杀毒软件进行识别。8查看计划任务schtasks /query /v /fo list目的查看当前主机上的所有计划任务。9查看自启动信息wmic startup get caption,command,location,user目的查看当前主机上所有的自启动程序信息过滤出程序名称、所执行的命令、程序路径、所属用户 wmic是微软为Windows管理规范提供的一个命令行工具提供从命令行接口和批处理脚本执行系统管理的支 持。10WMIC命令获取杀软名获取杀软名:WMIC /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName /Format:List获取杀软名和安装路径:WMIC /namespace:\\root\SecurityCenter2 path antivirusproduct GET displayName,productState,pathToSignedProductExeWMIC命令介绍及详细使用 https://mp.weixin.qq.com/s/ofhMvuSQ04B41zAvQ6losw2.2域内基础信息收集1判断是否存在域环境一些方法查看当前计算机名、用户名、系统版本、工作站、登录的域等信息net config workstation输出当前域的时间可用于判断当前用户是否处于域环境net time /domainnet user后面加上/domain 就能够返回所有域的用户信息net user /domain当然了很多命令都能够判断出是否处于域环境这里只是列了几个命令。2查看域用户信息查看所有的域用户net user /domain查看指定域用户的详细信息net user username /domain3查看域用户组信息列出域内所有的用户组net group /domain查询域用户组列所有的域用户net group domain users /domain查询域管理员用户组和域管用户net group domain admins /domain查询企业系统管理员组列出所有的企业系统管理员用户net group Enterprise Admins /domain在默认情况下Domain Admins组和Enterprise Admins组中的用户对域内所有域控制器和域成员主机拥 有完全控制权限。4查看域内密码策略可以根据密码策略构造字典爆破域内其他机器。net accounts /domain5查看域控制器列表查看域控制器列出所有域控制器的主机名。net group domain controllers /domain6查看主域控制器在域环境中主域控制器会同时被用作时间服务器使得域中所有计算机的时钟同步所以通过查询时间服务 器来找到主域控制器的名称。net time /domain7定位域控制器通过前面步骤知道主域控制器之后对主机名执行ping命令根据执行返回的内容即可知道目标主机在内网中 的IP地址。ping 主域控制器名假如主机名为OWA2010CN-GOD.god.orgping OWA2010CN-GOD.god.org如果发现返回ipv6地址可在命令后面加上-4参数指定返回ipv4地址ping OWA2010CN-GOD.god.org -4查看所有的IP地址配置信息可根据返回值判断是否处于域环境域控制器往往在域内同时会用作DNS服务器所以查看当前主机的DNS服务器地址也可以定位域控。一般正常的本机用户是使用DNS解析的如果受到DNS劫持就会有被攻击的风险。但是内网域不会存在 DNS劫持的问题因为在域环境中可以直接使用域控去分配DNS服务器通过这个域内的DNS去解析。ipconfig /all8查看域信任关系域信任用于多域环境中的跨域资源共享。一般情况下一个域用户只能访问本域内的资源无法跨域访问其 他域的资源而要想跨域访问就需要建立域信任。查询当前主机所在域和其他域的信任关系。nltest /domain_trusts以上部分主要介绍手工获取信息的命令当然在实际的工作中也可以使用工具来获取主机的用户密码和 哈希值。这些工具大多是通过读取SAM文件或者访问 lsass.exe进程的内存数据等操作实现的这些操 作大多需要管理员权限这意味着需要配合一些提权操作这些都可以通过CS插件中的一些工具来部分 实现LSTARladonolataowu谢公子等等。。。。 还有专门的域内信息收集的工具BloodHound内网域渗透提权分析工具。3.CS工具用户凭据密码收集内网渗透中当我们获取了某台机器的控制权后会以被攻陷的主机为跳板进行横向渗透进一步扩大 所掌握的资源范围。但是横向渗透中很多攻击方法都需要先获取到域内用户的密码和哈希值才能进行。 所以要尽可能的收集域内用户的登录凭据等信息。比如计算机的操作系统密码数据库密码浏览器 密码各大应用软件的密码信息等。什么是hash值Hash算法是一个广义的算法也可以认为是一种思想使用Hash算法可以提高存储空间的利用率可以 提高数据的查询效率也可以做数字签名来保障数据传递的安全性。所以Hash算法被广泛地应用在互联网应用 中。 采用安全性高的Hash算法如MD5、SHA时两个不同的文件几乎不可能得到相同的Hash结果。因此一 旦文件被修改就可检测出来。hash值的介绍https://baike.baidu.com/item/Hash/390310?frge_ala3.1CS插件演示通过web网站漏洞写入一句话木马然后通过菜刀、蚁剑、冰蝎、哥斯拉等木马利用工具连接上木马把 CS码上传到目标服务器运行上线1网络探针net view作用探测内网环境下存活的主机2端口扫描作用扫描内网环境下对外开放的端口。3查看结果打开“视图”选择”目标“即可查看。4密码凭证获取使用CS中集成的mimikatz来进行密码的获取选择”凭证提权“——选择抓取铭文密码运行时报错原因权限不够解决方案 使用CS插件提升权限在新增的system会话中运行mimikatz可直接获取用户凭据信息域账号密码以及哈希值5目标横向移动举例”mary“ 鼠标右键选择”横向移动“——”psexec“选择任意会话尝试横向移动运气好的话可以直接使用当前的账号密码移动到其他主机上从而扩大渗透的战 果#内网信息收集过程中会获取域内成员的账号net user /domain#利用域内账号密码通用性问题来尝试横向移动z这里只是演示了其中几种插件插件中的其他用法工具中都已经做了集成在实际工作中可以根据具体的情况去做收集。除了使用手工命令或者CS插件去收集各种内网环境信息之外还需要知道内网环境下的网络结构信息也 就是目标内网下的网络架构。这里需要使用BloodHound猎犬作用通过BloodHound工具可以看到内网环境下当前主机与域控之间的通信情况并根据当前主机所处 的域内环境给出合理的渗透方案和渗透路线。4.域环境的一些基础知识1域控与连网服务器主机通常情况下只有一台域控主句与联网服务器主机。域控主机设置域内的主机的操作权限。比如通常都会设置传输下载文件的时候需要域控的用户以及密码就是为了防止有人操作不当传输下载了带有恶意木马的文件。也就是说任何违规操作都会触发域控的登录导致违规操作失效从而防止有人违规给内网主机带来危害。并且域控可以强行控制域下的任意主机比如修改用户的密码或者修改主机的操作权限等等也就是说域控对所有域控下的主机有着绝对的权限。联网服务器主机:一般而言一个域普便只有一台服务器主机能够上网这是为了内网通信安全以及方便管理。因为域环境下的主机都需要通过该服务器主机上网有效的提高了安全。2域母盘环境作用创建一个通用的模块有新增的主机时直接将模块套过去就可以正常使用而不必用域控一个一个的设置新增的主机的用户名和密码以及设置该主机的操作的权限。危害此方法虽然提高了新增主机的设置流程效率但是也提高了危害因为这种方式生成的用户名和密码都带有相似性容易被信息收集后采用爆破的方法破解其用户和密码。4.Chorme历史记录和Cookie获取假如浏览器存放cookie值和路径为%localappdata%\google\chrome\USERDA~1\default\LOGIND~1 %localappdata%\google\chrome\USERDA~1\default\cookieschrome的用户信息保存在本地文件为sqlite数据库格式调用mimikatz工具1点击exe程序2,进入该目录的cmd命令行执行命令。Chorme历史记录mimikatz.exe privilege::debug log dpapi::chrome /in:%localappdata%\google\chrome\USERDA~1\default\LOGIND~1 exitCookie获取mimikatz.exe privilege::debug log dpapi::chrome /in:%localappdata%\google\chrome\USERDA~1\default\cookies /unprotect exit如果熟悉windows命令也可以自己创建bat批处理文件创建一个文本文档输入windosw中一些获取内网信息的命令以及权限及看放的端口等等然后把文件名后缀改为bat就可以了然后只需要点击文件即可运行实现多行命令批量运行。4.BloodHound工具用法步骤调用这工具时要先安装数据库的依赖jdk文件。1将工具SharpHound.exe上传到目标主机。2通过命令行调用上传的工具收集所有的信息。执行命令。SharpHound.exe -c all3启动本地的Neo4j服务cmd运行路径D:\6666\三阶段课程\05、内网信息收集-25.3.31\工具和脚本\工具\liequan\neo4j-community-3.5.9\bin启动命令neo4j.bat console4首次启动需要到网页去修改密码http://localhost:7474/默认账号密码 neo4j neo4j5将收集好的内网信息的压缩包上传点击左上角的3条横杆打开目录就可以查看工具获取的各类信息。