zoukankan      html  css  js  c++  java
  • 【内网渗透】— 内网信息收集(4)

    内网信息收集

    渗透测试人员进入内网后,面对的是一片"黑暗森林",所以,渗透测试人员首先要对当前所处的网络环境进行判断,判断主要涉及以下三方面:

    • 我是谁?—— 对当前机器角色的判断。
    • 这是哪?—— 对当前机器所处的网络环境的拓扑结构进行分析和判断。
    • 我在哪?—— 对当前机器所处区域的判断。
      本文主要介绍内网渗透测试中的一些常用的指令,实际中大家根据自己的实际情况,选择自己需要的指令,完成工作或者学习的任务。

    本机信息收集

    本机信息收集包括操作系统、权限、内网IP地址段、杀毒软件、端口、服务、补丁更新频率、网络连接、共享、会话等。如果是域内主机,那么操作系统、应用软件、补丁、服务、杀毒软件一般都是批量安装的。

    手动信息收集

    • 查询网络配置信息

      • inconfig /all
    • 查询操作系统及软件信息

      • systeminfo | findstr /B /C:"OS Name" /C:"OS Version" 查询操作系统和版本信息 英文系统
      • systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本" 查询操作系统和版本信息 中文系统
      • echo %PROCESSOR_ARCHITECTURE% 查看系统体系结构
      • wmic prouct get name, version 查看安装的软件的版本、路径等
      • powershell "Get-WmiObject -class Win32_Product |Select-Object -Property name, version" PowerShell收集软件的版本信息
    • 查询本机的服务信息

      • wmic service list brief 查询本机服务信息
    • 查询进程列表

      • tasklist 查看当前进程列表和进程用户
      • wmic process list brief 查询进程信息
    • 查看启动程序信息

      • wmic startup get command, caption
    • 查看计划任务

      • schtasks /query /fo LIST /v
    • 查看主机开机时间

      • net statistics workstation
    • 查询用户列表

      • net user 查看本机用户列表
      • net localgroup administrators 获取本地管理员信息
      • query user || qwinsta 查看在线用户
    • 列出或断开本地计算机与所连接的客户端的对话

      • net session
    • 查询端口列表

      • netstat -ano
    • 查看补丁列表

      • systeminfo 查看系统详情
      • wmic qfe get Caption,Description,HotFixID,InstalledOn 查看补丁的名称、描述、ID、安装时间等
    • 查询本机共享列表

      • net share 查看本机共享列表和可访问的域共享列表
      • wmic share get name,path,status 查找共享列表
    • 查询路由表以及所有可用接口的ARP缓存表

      • route print
      • arp -a
    • 查询防火墙相关配置

      • netsh firewall set opmode disable 关闭防火墙(Windows Server 2003 以前的版本)
      • netsh advfirewall set allprofiles state off 关闭防火墙(Windows Server 2003 以后的版本)
      • netsh firewall show config 查看防火墙配置

    自动信息收集

    为了简化手动信息收集的繁琐步骤,我们可用使用自动化脚本 —— WMIC(Windows Management InstrumentationCommand Line,Windows管理工具命令行)脚本,脚本下载地址,执行该脚本以后,会将信息收集的结果写入HTML文档。

    域信息收集

    查看当前全权限

    • whoami 查看当前权限
    • whoami /all 获取SID
    • net user xxx /domain 查询指定用户的详情信息

    判断是否存在域

    • ipcondig /all 可查看网关IP地址、DNS的IP地址、域名、本机是否和DNS服务器处在同一网段等... 然后,通过反向解析查询命令nslookup来解析域名的IP地址,用解析到的IP地址进行对比,判断域控服务器和DNS服务器是否在同一台机器上。
    • systeminfo 对比查看"域(域名)"和"登录服务器(域控制器)"的信息是否互相匹配。
    • net config workstation 对比查看"工作站域DNS名称(域名)"和"登录域()域控制器"的信息是否相匹配。
    • net time /domain 判断主域。

    探测域内存活主机

    • 使用nbtscan扫描本地或远程TCP/IP网络上开放的NetBIOS名称服务器,使用方法:nbt.exe 192.168.1.1/20, 输出的结果第一列为IP地址,第二列为机器名和所在域的名称,第三列即最后一列为及其所开启的服务的列表。
    • 使用ICMP协议快速探测内网
    • arp-scan工具 使用方法:arp.exe -t 192.168.1.1/20
    • Empire的arpscan模块
    • Nishang中的Invoke-ARPScan.ps1脚本
    • ScanLine脚本

    扫描域内端口信息

    • telnet命令进行扫描
    • S扫描器
    • Metatsploit框架,"msfconsole"下的"serach portscan"命令
    • PowerSploit的Invoke-ARPScan.ps1脚本
    • Nishang中的Invoke-PortScan模块
    • 端口banner信息的利用

    收集域内基础信息

    • net view /domain 查询域
    • net view /domain:HACHE 查询域内的所有计算机
    • net group /domain 查询域内的所有计算机
    • net group "domain computers" /domain 查询所有域成员计算机列表
    • net accounts /domain 获取域密码信息
    • nltest /domain_trusts 获取域信任信息

    查找域控制器

    • nltest /DCLIST:hacke 查看域控制器的机器名
    • Nslookup -type=SRV_ldap._tcp 查看域控制器的主机名
    • net time /domain 查看当前时间
    • net group "Domain Controllers" /domain 查看域控制器组
    • netdom query pdc 查看域控制器的机器名

    获取域内的用户和管理员信息

    • 查询域内用户列表
      • net user /domain 向域控制器进行查询
      • wmic useraccount get /all 获取域内用户的详细信息
      • dsquery user 查看存在的用户
      • net localgroup administrators 查询本地管理员用户
    • 查询域管理员用户组
      • net group "domain admins" /domain 查询域管理员用户
      • net group "Enterprise admins" /domain 查询管理员用户组

    定位域管理员

    在域网络攻击测试中,获取域内的一个支点后,需要获取域管理员权限;定位域内管理员的常规渠道,一是日志,二是会话。
    常见域管理员定位工具:

    • psloggedon.exe
    • PVEFindADUser.exe
    • netview.exe
    • Nmap的NSE脚本
    • PowerView脚本
    • Empire的user_hunter模块

    查找域管理进程

    • net group "Domain Admins" /domain 获取域管理员列表
    • tasklist /v 列出本机的所有进程及进程用户
    • net group "Domain Controllers" /domain 查询域控制器列表
    • NetSess -h 收集所有活动域的会话列表

    分析域内网段划分情况及拓扑结构

    在掌握了内网的相关信息后, 渗透测试人员可以分析目标网络的结构和安全防御策略,获取网络信息、各部门的IP地址段,绘制内网的拓扑结构图。

    域分析工具BloodHound

    BloodHound是一款免费的工具。一方面,BloodHound通过图与线的形式,将域内用户、计算机、组、会话、ACL以及域内所有的相关用户、组、计算机、登陆信息、访问控制策略之间的关系,直观地展现在Red Team成员面前,为他们更便捷地分析域内情况、更快速地在域内提升权限提供条件;另一方面,BloodHound帮助Blue Team成员更好地对己方网络系统进行安全检查,以保证域的安全性。BloodHound使用图形理论,在环境目录中自动理清大部分人员之间的关系和细节。使用BloodHound,可以快速、深入地了解活动目录中用户之间的关系,获取哪些用户具有管理员权限、哪些用户对所有的计算机都具有管理员权限、哪些用户是最有效的用户组成员等信息。

    BloodHound可以在域内导出相关的信息,将采集的手数据导入本地Neo4j数据库,并进行展示和分析。
    此外,由于BloodHound相关知识较多,有兴趣的朋友可以自行网上查阅相关资料,在此不做过多介绍。

    敏感信息的防护

    核心业务机器的类型

    • 核心业务机器
      • 高级管理人员、系统管理员、财务/人事/业务人员的计算机
      • 产品管理系统服务器
      • 办公系统服务器
      • 财务应用系统服务器
      • 核心产品原码服务器
      • 数据库服务器
      • 文件服务器、共享服务器
      • 电子邮件服务器
      • 网络监控系统服务器
      • 其他服务器
    • 敏感信息和敏感文件
      • 站点源码备份文件、数据库备份文件
      • 各类数据库的Web管理入口
      • 浏览器密码和浏览器Cookie
      • 其他用户会话、3389和ipc$连接记录,"回收站"中的信息
      • Windows无线密码
      • 网络内部的各种账号及密码

    敏感信息的防护

    在内网找中,攻击者经常会进行基于应用和文件的信息收集,从总体上来看,攻击者一是想进一步了解已攻陷机器所属人员的职位,二是想在机器中使用一些命令来寻找自己想要的资料。
    针对攻击者的行为,建议用户在内网中工作时,不要将特别重要的资料存储在公开的计算机中,在必要时应对Office文档进行加密且密码不能太简单。

  • 相关阅读:
    python 开发中的常用功能
    python 栈&队列&列表的区别
    python 内置函数简介及其作用
    python 正则表达式详解
    python scrapy
    python 文件操作
    python 爬虫实例
    浅谈tcp 与udp
    php正则匹配video 中或者img的宽度和高度。
    android技术积累:开发规范
  • 原文地址:https://www.cnblogs.com/catt1e/p/12723278.html
Copyright © 2011-2022 走看看