zoukankan      html  css  js  c++  java
  • 浅析内网信息收集

    文章前言

    在渗透测试中信息收集的深度与广度以及对关键信息的提取,直接或间接的决定了渗透测试的质量,本篇文章主要对内网中信息收集做一个简单的归纳以及介绍

    主机信息

    在内网渗透测试中,当我们拿下一台或多台可控的主机(大多数情况下都是边界主机)时,我们首先要对当前主机的信息进行简易收集,常见的信息包括以下几个方面:

    网络配置

    通过执行以下命令查看当前机器是否处于内网,以及内网网段是多少,以及DNS地址、域名信息等等:

    ipconfig /all
    

    操作系统

    通过执行以下命令来查看操作系统版本信息:

    systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本"
    


    如果目标主机是英文版本可以使用以下命令来查看主机系统信息:

    systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
    

    软件信息

    通过执行以下命令来查看目标主机上安装的第三方应用有哪些,可以作为后续渗透测试以及漏洞利用点:

    systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
    

    服务信息

    通过执行以下命令来获取本机服务信息,查看是否有可以可以进行深入利用的点:

    wmic service list brief
    

    查毒软件

    通过执行以下命令来查看目标主机上安装的杀毒软件有哪些:

    wmic /namespace:\rootsecuritycenter2 path antivirusproduct GET displayName,productState, pathToSignedProductExe
    

    开3389

    首先,我们需要确定远程连接的端口(一般是3389),在cmd下使用注册表查询语句,命令如下,得到连接端口为0xd3d,转换后为3389,如下图所示:

    REG QUERY "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp" /V PortNumber
    


    在 Windows Server 2003 中开启 3389 端口:
    首先,查看开启的端口——没有开启3389端口

    执行语句:

    wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1
    

    执行结果:

    成功开启3389端口:

    在 Windows Server 2008 和 Windows Server 2012 中开启 3389 端口
    查看当前开发端口———未开放3389端口

    之后执行如下命令来开启3389端口——管理员权限执行否则会报错

    wmic /namespace:\rootcimv2terminalservices path win32_terminalservicesetting where (__CLASS !="") call setallowtsconnections 1
    

    wmic /namespace:\rootcimv2terminalservices path win32_tsgeneralsetting where (TerminalName='RDP-Tcp') call setuserauthenticationrequired 1
    

    reg add "HKLMSYSTEMCURRENTCONTROLSETCONTROLTERMINAL SERVER" /v fSingleSessionPerUser /t REG_DWORD /d 0 /f
    


    之后成功开启3389端口:

    计划任务

    通过执行以下命令来查看目标主机上的计划任务信息:

    schtasks  /query  /fo  LIST /v
    

    用户列表

    执行如下命令,查看本机用户列表,通过分析本机用户列表,可以找出内部网络机器名的命名规则,特别是个人机器,可以推测出整个域的用户命名方式:

    net user
    


    执行如下命令,获取本地管理员(通常含有域用户)信息:

    net localgroup administrators
    


    执行如下命令,可以查看当前在线用户信息:

    query user || qwinsta
    

    端口信息

    查看端口列表、本机开放的端口所对应的服务和应用程序:

    netstat ano
    

    补丁信息

    查看系统的详细信息,需要注意系统的版本、位数、域、补丁信息及跟新频率等,一般域内主机的补丁都是批量安装的,通过查看本地计算机补丁列表,可以找到未打补丁的漏洞,当前更新了2个补,如下图所示:

    也可以使用wmic来查看补丁信息:

    wmic qfe get Caption,Description,HotFixID,InstalledOn
    

    查防火墙

    通过执行以下命令来查看防火墙的配置信息:

    netsh firewall show config
    


    我们也可以通过以下命令来关闭防火墙:
    Windows server 2003系统及以前版本,命令如下:

    netsh firewall set opmode disable
    

    Windows server 2003之后系统版本,命令如下:

    netsh advfirewall set allprofiles state off
    

    是否有域

    搜集完本机相关信息后,接下来,就要判断当前内网是否有域,如果有,需要判断所控主机是否在域内,下面介绍几种方法 :

    ipconfig

    使用ipconfig /all命令可以查看网关IP地址、DNS的IP地址以及判断当前主机是否在域内:

    ipconfig /all
    


    从上面我们可以看到域名信息以及DNS的地址信息,之后我们可以通过反向解析查询命令nslookup来解析域名的IP地址,使用解析出来的IP地址进行对比,判断域控制器和DNS服务器是否在同一台服务器上,如下图所示

    从而判断DNS域域控位于同一台服务器上(一般的配置大多数都是这样,也可以通过这种方法来查找域控)

    登录域信息

    执行如下命令,结果如下图所示,工作站域DNS名称显示域名(如果显示为WORKGROUP,则表示非域环境),登录域表明当前用户是域用户登录还是本地用户登录,此处表明当前用户是域用户登录:

    net config workstation
    

    域内信息

    下面简单的介绍几种域内信息的收集方法

    ICMP探测内网

    我们可以使用ICMP协议来探测内网信息:

    for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.174.%I | findstr "TTL="
    

    ARP探测内网

    同时我们可以使用MSF框架中的模块来探测内网信息:

    msf > use  auxiliary/scanner/discovery/arp_sweep
    msf > show options
    msf > set  interface eth0
    msf > set  smac 00:0c:29:92:fd:85
    msf > set  rhosts 192.168.174.1/24
    msf > set  threads 20
    msf > set  shost 192.168.174.131 (伪造源ip)
    msf > run
    

    TCP/UDP协议

    ScanLine是一款经典的端口扫描工具,Windows全版本通用,体积小仅使用单个文件,同时支持对TCP/UDP的端口扫描,命令如下

    scanline -h -t 22,445,3389 -u 53,161,137,139 -O c:windowstemplog.txt -p 192.168.174.1-254 /b
    

    端口信息收集

    a、MSF框架的auxiliary/scanner/portscan/tcp模块来实现端口扫描:

    可以看到,Metasploit 的内置端口扫描模块能够找到系统和开放端口~
    b、PowerSploit中的Invoke-Portscan.ps1脚本也可以用于进行端口扫描采集内网信息:

    Invoke-Portscan -Hosts 192.168.174.0/24 -T 4 -ports '445,1433,8080,3389,80' -oA c:windowstempres.txt
    


    查询域信息

    net view /domain
    

    查询域主机

    通过执行以下命令来查看当前域内有多少台主机,以及主机的主机名信息:

    net view /domain:XXX
    

    查询域用户

    通过执行以下命令来查看域内所有用户组列表信息

    net group /domain
    

    查找域控

    a、通过执行以下命令来查看域控

    Nslookup -type=SRV _ldap._tcp
    


    b、查看当前时间定位域控

    net time /domain
    


    c、查询域控制组定位域控

    net group "Domain Controllers" /domain
    

    查域用户信息

    net user /domain
    


    当然也可以使用dsquery指令:

    dsquery computer       ----- 寻找目录中的计算机
    dsquery contact        ----- 在目录中查找与指定的搜索条件相匹配的联系人
    dsquery subnet         ----- 寻找目录中的子网
    dsquery group          ----- 寻找目录中的群组
    dsquery ou             ----- 寻找目录中的组织单位
    dsquery site           ----- 寻找目录中的站点
    dsquery server         ----- 寻找目录中的域控制器
    dsquery user           ----- 寻找目录中的用户
    dsquery quota          ----- 寻找目录中的配额规格
    dsquery partition      ----- 寻找目录中的磁盘分区
    dsquery *              ----- 使用标准的LDAP查询在目录中寻找任何对象
    dsquery server domain Yahoo.com | dsget serverdnsname site   ---搜索域内域控制器的DNS主机名和站点名
    dsquery computer domainroot name *-xp limit 10                ----- 搜索域内以-xp结尾的机器10台
    dsquery user domainroot name admin* -limit                     ---- 搜索域内以admin开头的用户10个
    

    查询域管理员

    可以通过如下命令,查看当前域管理员信息:

    net group "Domain Admins" /domain
    

    获取域SID信息

    whoami /all
    


    可看到,当前域hacke的SID为S-1-5-21-180313546-3823935851-3686928739,域用户testuser的SID为 S-1-5-21-180313546-3823935851-3686928739-1106.

    查询当前权限

    本地普通用户:当前权限为 win-2008 本机的 user 用户

    本地管理员用户:当前权限为 win7-x64-test 本机的 administrator用户

    域内用户:当前权限为hacke域内的 administrator用户

    相关工具

    PowerSploit: https://github.com/PowerShellMafia/PowerSploit
    Nishang: https://github.com/samratashok/nishang
    Metasploit: https://github.com/rapid7/metasploit-framework
    Empire:https://github.com/EmpireProject/Empire
    PowerTools: https://github.com/PowerShellEmpire/PowerTools

    Github项目

    推两个Gith项目:
    项目地址:https://github.com/Al1ex/CSPlugins
    项目介绍:主要收集常用的CS好用的插件,涉及提权、漏洞利用、横向移动、信息收集、免杀等等

    项目地址:https://github.com/Al1ex/Pentest-tools
    项目介绍:主要收集一些内网渗透测试中常用到的工具

    文末小结

    当然,渗透测试中的信息收集也不仅限于上面的这几点,而且实战中的信息收集广度和深度还会更加深,本文算是抛砖引玉了~

  • 相关阅读:
    es5中的类 继承 (原型链继承,寄生继承,组合继承)
    typeScript类型
    javaScript 不可思议问题
    javaScript 运算符(操作符)
    window.a 与 window[a]区别
    Event Loop事件循环
    生产环境vue-router模式为history导致页面404
    Axios请求添加token
    vue页面利用keep-alive实现页面快速缓存
    js原型链原理
  • 原文地址:https://www.cnblogs.com/0daybug/p/13714976.html
Copyright © 2011-2022 走看看