内网信息收集
内网信息收集的作用
可以通过信息收集判断当前设备的角色、当前网络的环境、当前所属的区域,绘制出大概的内网整体的拓扑结构图
区域:
普通办公区设备
DMZ区域的WEB服务器
内网普通WEB服务器
开发测试服务器
文件共享服务器
代理服务器
DNS服务器
核心业务系统服务器设备信息:
设备提供服务
设备所处位置
设备主机名
设备内部文件
设备网络连接设备关键信息
敏感信息收集
资料、文件和数据
核心业务机器
敏感信息和文件
应用与文件形式信息收集
拿下一台机器后要先维权,权限稳了再收集信息,信息收集一定要全面仔细,信息收集完了再搞内网
往目标主机中传工具用完就删
翻文件的话,可以使用一些搜索命令来快速寻找
前后端基本架构
渗透测试人员需要对目标网站的基本情况进行简单的判断,分析目标服务器所使用的web服务器、后端脚本、数据库、系统平台等
本机信息收集
网络
ipconfig /all
ifconfig
操作系统
- systeminfo | findstr OS - systeminfo | findstr "KB" - systeminf0 | findstr /B /C:"OS 名称" /C:"OS 版本" - echo %PROCESSOR_ARCHITECTURE%
- uname –a - cat /proc/version
软件及版本
- wmic product get name,version - powershell "get-wmiobject -class win32_product | select-object -property name,version"
- dpkg –l - dpkg –l <软件名称>
服务
- wmic service list brief - net start - 检测是否安装杀软:https://www.ddosi.org/av/1.php
- service --status-all - service <服务名> status
进程
- tasklist - wmic process get name,processid
- ps –aux - ps –ef - ps –aux | gerp ftp
启动程序
wmic startup get command,caption
dmesg
计划任务
- at - schtasks - net start - chcp 437 && schtasks /query /fo LIST /v > tasks.txt
crontab -l
开机时间
net statistics workstation
- cat /proc/uptime - date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S" - cat /proc/uptime | awk -F. '{run_days=$1/86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf("系统已运行:%d天%d时%d分%d秒",run_days,run_hour,run_minute,run_second)}'
用户
- 本机用户列表:net user - 本地管理员组信息:net localgroup administrators - 当前在线用户:query user
- cat /etc/passwd - cat /etc/group
会话
net session
端口
netstat –ano
netstat –antpl
补丁
- systeminfo - wmic qfe get Caption,Description,HotFixID,InstalledOn
共享
- net share - wmic share get name,path,status
路由及ARP
- route print - arp -a
- route - arp –a
防火墙
- 查看防火墙配置:netsh firewall show config - 关闭防火墙配置:netsh firewall set opmode disable - 关闭防火墙配置:netsh advfirewall set allprofiles state off - 允许指定程序全部链接:netsh firewall add allowedprogram c:\nc.exe "allow nc" enable - 允许指定程序入站:netsh advfirewall firewall add rule name= "pass nc" dir=in action=allow program="C:\nc.exe" - 允许指定程序出站:netsh advfirewall firewall add rule name= "out nc" dir=out action=allow program="C:\nc.exe" - 允许RDP(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\temp\fw.log"
代理
- 代理配置:reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
远程
- 查看远程连接端口(16进制需要转成10进制):reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber - 查看远程桌面开启状态:REG query HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD - 打开远程桌面:REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f - 关闭远程桌面:wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 0 - 关闭远程桌面:REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 1 /f
权限及SID
whoami /all
whoami
自动收集信息
为了简化操作,可以创建一个脚本, 在目标机器上完成流程、服务、用户账号、用户组、网时区等信息的查询工作。
利用 WMIC 进行信息收集:创建 wmic.bat 文件 写入如下内容,运行后生成 .html 文件
域内信息收集
查询域名
ipconfig /all
查询DNS的记录
nslookup <域名>
存在用户
dsquery user
域内用户详细信息
wmic useraccount get /all
判断主域控
netdom query pdc
用时间服务器判断主域
net time /domain
当前登录域及用户信息
net config workstation
查询域
net view /domain
域内所有计算机
net view /domain:<域名>
所有域用户列表
net user /domain
本地管理员组用户
net localgroup administrators
查询域内所有用户
net group /domain
域管理员列表
net group "domain admins" /domain
企业管理员列表
net group "Enterprise admins" /domain
域成员计算机列表
net group "domain computers" /domain
域控列表
net group "domain controllers" /domain
域密码策略信息
net accounts /domain
域信任信息
nltest /domain_trusts
域控主机名
nltest /DCLIST:<域名>
域管理进程
tasklist -v
域内活跃主机探测
NetBIOS扫描
NetBIOS(Network Basic Input/Output System)即网络基本输入/输出系统协议
NetBIOS 协议是一种在局域网上的程序可以使用的应用程序编程接口(API),为程序提供了请求低级服务的统一的命令集,作用是为了给局域网提供网络以及其他特殊功能,几乎所有的局域网都是在 NetBIOS 协议的基础上工作的
nbtscan.exe 是一个命令行工具,可以扫描本地或者远程网路上开放的 NetBIOS 名称服务,可以获取对应的域名信息
某些版本的 windows 操作系统允许用户通过 NetBOIS 查询已登录用户,可用通过脚本扫描远程系统活跃域中的管理会话
ICMP扫描
ICMP 协议全称为 Internet Control Message Protocol (Internet控制报文协议),依次对内网中的每个 IP 地址执行 ping 命令,可以快速找到内网中全部存活的主机
ARP扫描
地址解析协议,即 ARP(Address Resolution Protocol),是根据 IP 地址获取物理地址的一个 CP/IP 协议。主机发送信息时将包含目标 IP 地址的 ARP 请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址
Nishang脚本
项目地址:https://github.com/samratashok/nishang
域内端口扫描
Metasploit
banner信息
常需扫描的端口有:22,80-89,110,389,1099,1433,2059,6379,7001,8080,1521,3306,3389,5432,53,161,137,139
21
ftp/tftp/vsftpd文件传输协议
爆破/嗅探/溢出/后门
22
ssh远程连接
爆破/openssh漏洞
23
Telnet远程连接
爆破/嗅探/弱口令
25
SMTP邮件服务
邮件伪造
53
DNS域名解析系统
域传送/劫持/缓存投毒/欺骗
67/68
DHCP服务
劫持/欺骗
110
pop3
爆破/嗅探
139
Samba服务
爆破/未授权访问/远程命令执行
143
Imap协议
爆破
161
SNMP协议
爆破/搜集目标内网信息
389
Ldap目录访问协议
注入/未授权访问/弱口令
445
smb
ms17-010/端口移出
512/513/514
Linux Rexec服务
爆破/Rlogin登录
873
Rsync服务
文件上传/未授权访问
1080
socket
爆破
1352
Lotus domino邮件服务
爆破/信息泄露
1433
mssql
爆破/注入/SA弱口令
1521
oracle
爆破/注入/TNS爆破/反弹shell
2049
Nfs服务
配置不当
2181
zookeeper服务
未授权访问
2375
docker remote api
未授权访问
3306
mysql
爆破/注入
3389
Rdp远程桌面链接
爆破/shift后门
4848
GlassFish控制台
爆破/认证绕过
5000
sybase/DB2数据库
爆破/注入/提权
5432
postgresql
爆破/注入/缓冲区溢出
5632
pcanywhere服务
抓密码/代码执行
5900
vnc
爆破/认证绕过
6379
Redis数据库
未授权访问/爆破
7001/7002
weblogic
java反序列化/控制台弱口令
80/443
http/https
web应用漏洞/心脏滴血
8069
zabbix服务
远程命令执行/注入
8161
activemq
弱口令/写文件
8080/8089
Jboss/Tomcat/Resin
爆破/PUT文件上传/反序列化
8083/8086
influxDB
未授权访问
9000
fastcgi
远程命令执行
9090
Websphere控制台
爆破/java反序列化/弱口令
9200/9300
elasticsearch
远程代码执行
11211
memcached
未授权访问
27017/27018
mongodb
未授权访问/爆破
定位域管理员
psloggedon
在 Windows 上可以执行 net session 来查看谁使用了本机资源,但是没有命令可用来查看谁在使用了远程计算机资源,谁登陆了远程计算机资源,使用 psloggedon 可以解决这一问题。
地址:https://docs.microsoft.com/en-us/sysinternals/downloads/psloggedon
用法:
psloggedon [- ] [-l] [-x] [\\computername | username]
PVEFindADUser
用于查找活动目录用户登录位置,枚举域用户,查找在特定计算机上登录的用户,包括本地用户,通过RDP登录的用户,用于运行服务和计划任务的用户。运行该工具需要 .NET Framework2.0 环境,并且具备管理员权限。
用法:
PVEFindADUser.exe -current
netview
使用 WinAPI 枚举系统,利用 NetSessionEnum 找寻登录会话,利用 NetShareEnum 找寻共享,利用 NetWkstaUserEnum 枚举登录的用户。大部分功能不需要管理员权限。
地址:https://github.com/mubix/netview
PowerView(常用)
powerView.ps1 是一款依赖 powershell 和 wmi 对内网进行查询的常用渗透测试脚本,集成在 powersploit 工具包中,是一个收集域信息很好用的脚本。
地址:https://github.com/PowerShellEmpire/PowerTools/tree/master/PowerView
PowerShell收集信息
PowerShell是微软推出的一款满足管理员对操作系统及应用程序扩展需求的一个脚本环境,是cmd.exe的加强版
4种执行权限
Restricted - 默认的设置,不允许任何script运行
AllSigned - 只能运行经过数字证书签名的script
RemoteSigned - 本地脚本不做限制,网络上下载的script就必须要有数字签名
Unrestricted - 允许所有的script运行,权限最高
脚本地址:https://github.com/PowerShellEmpire/PowerTools
PowerView
PowerView 是一款依赖 Powershell 和 WMI 对内网进行查询的渗透测试脚本
常用命令
Get-NetDomain
获取当前用户所在域的名称
Get-NetUser
获取所有用户的详细信息
Get-NetDomainController
获取所有域控制器的信息
Get-NetComputer
获取域内所有机器的详细信息
Get-NetPrinter
获取域中所有当前计算机对象的数组
Get-NetOU
获取域内的OU信息
Get-NetGroup
获取所有域内组和组成员的信息
Get-NetGroupMember
获取指定域组中所有当前用户的列表
Get-NetFileServer
根据SPN获取当前域使用的文件服务器信息
Get-NetShare
获取当前域内所有的网络共享信息
Get-DFSshare
获取域上所有分发文件系统共享的列表
Get-NetSubnet
获取域的其他网段
Get-NetSite
获取域内的当前站点
Get-NetDomainTrust
获取当前用户域的所有信任
Get-NetForestTrust
获取与当前用户的域关联的林的所有信任
Find-ForeignUser
枚举在其主域之外的组中的用户
Find-ForeignGroup
枚举域组的所有成员并查找查询域之外的用户
Invoke-MapDomainTrust
尝试构建所有域信任的关系映射
Get-NetLoggedon
获取主动登录到指定服务器的用户
Get-NetLocalGroup
获取一个或多个远程主机上本地组的成员
Get-NetSession
获取指定服务器的会话
Get-NetRDPSession
获取指定服务器的远程连接
Get-NetProcess
获取远程主机的进程
Get-UserEvent
获取指定用户的日志
Get-ADObject
获取活动目录的对象
Get-NetGPO
获取域内所有的组策略对象
Get-NetGPOGroup
获取域中设置”受限组”的所有GPO
Find-GPOLocation
获取用户/组,并通过GPO枚举和关联使其具有有效权限的计算机
Find-GPOComputerAdmin
获取计算机并通过GPO枚举确定谁对其具有管理权限
Get-DomainPolicy
获取域默认策略或域控制器策略
Get-DomainSID
返回指定域的SID
Invoke-UserHunter
获取域用户登录的计算机信息及该用户是否有本地管理员权限
Invoke-ProcessHunter
通过查询域内所有的机器进程找到特定用户
Invoke-UserEventHunter
根据用户日志查询某域用户登陆过哪些域机器
Invoke-ShareFinder
在本地域中的主机上查找(非标准)共享
Invoke-FileFinder
在本地域中的主机上查找潜在的敏感文件
Find-LocalAdminAccess
在域上查找当前用户具有本地管理员访问权限的计算机
Find-ManagedSecurityGroups
搜索受管理的活动目录安全组并标识对其具有写访问权限的用户,即这些组拥有添加或删除成员的能力
Get-ExploitableSystem
发现系统可能易受常见攻击
Invoke-EnumerateLocalAdmin
枚举域中所有计算机上本地管理员组的成员
Last updated