信息收集
首先,收集目标内网的信息,包括子网结构、域名信息、IP地址范围、开放的端口和服务等。这包括通过主动扫描和渗透测试工具收集信息,以及利用公开的信息源进行信息搜集。
本机信息收集
查看系统配置信息
查看系统详细信息,如OS版本、补丁安装情况,可以根据这些信息筛选可利用的漏洞:
systeminfo
详细:
查询操作系统即软件的信息 :
systeminfo | findstr /B /C:"OS"
查看系统架构
:echo %processor_architecture%
查看系统启动时间:net statistics workstation
查看补丁信息:wmic qfe get caption,description,hotfixid,installedon
查看系统安装的软件版本等内容:wmic product get name,version
查杀软:wmic /node:localhost /namespace:\\root\securitycenter2 path antivirusproduct get displayname /format:list
查看防火墙配置信息:
netsh firewall show config
和netsh advfirewall firewall show config
查看系统服务信息
查看启动程序信息:wmic startup get command,caption
查看启动进程,可以根据启动进程判断主机在域中扮演的角色:net start
查询本机服务信息:wmic service list brief
查询进程信息:tasklist
查看计划任务:schtasks /query /fo LIST /V
查看端口开放情况:netstat -ano
注意,一般查看进程端口,先查进程pid,在根据pid查端口
判断是否存在域:net view /domain
查看主机名、域DNS、IP:ipconfig /all
查看系统登录信息
查看登录到系统的用户信息:query user/net session
域内信息收集
判断是否存在域:whoami
,如果当前账户为域用户,则返回结果通常为域名\用户名
ipconfig
如果是双网卡,一般存在内网
systeminfo
如果在域中,则如图,否则为 workgroup
补充:
工作组(Work Group)是局域网中的一个概念。它是最常见最简单最普通的资源管理模式,就是将不同的电脑按功能分别列入不同的组中,以方便管理。
工作组(Work Group)是最常见最简单最普通的资源管理模式,就是将不同的电脑按功能分别列入不同的组中,以方便管理。比如在一个网络内,可能有成百上千台工作电脑,如果这些电脑不进行分组,都列在"网上邻居"内,可想而知会有多么乱(恐怕网络邻居也会显示"下一页"吧)。
为了解决这一问题,Windows 9x/NT/2000 才引用了"工作组"这个概念,比如一所高校,会分为诸如数学系、中文系之类的,然后数学系的电脑全都列入数学系的工作组中,中文系的电脑全部都列入到中文系的工作组中......如果你要访问某个系别的资源,就在"网上邻居"里找到那个系的工作组名,双击就可以看到那个系别的电脑了。
查看登录信息:
net config workstation
在域中,通常计算机全名为计算机名.域名
但是我的电脑
不在域中,如图
查看时间服务器,域中机器的dns服务器和时间服务器通常为域控机
net time /domain
但是我的电脑不在域中
查看IP:
nslookup 域名
查看用户信息:
whoami /all
查看域内用户,可以将其作为字典,对其他主机的密码进行爆破:
net user /domain
但是我的电脑不在域中
探测域内存主机&端口
-
Ping 探测主机在线状态:使用命令行工具如
ping
或者网络扫描工具如nmap
来 ping 主机 IP 地址,以确定主机是否在线。 -
端口扫描:使用端口扫描工具如
nmap
来扫描主机的开放端口。例如,使用命令nmap -p <端口范围> <目标主机>
来扫描特定端口范围内的开放端口,如nmap -p 1-100 192.168.0.1
。 -
漏洞扫描:使用漏洞扫描工具如
Nessus
、OpenVAS
等,来扫描主机上存在的已知漏洞和安全风险。 -
域名解析:使用 DNS 相关工具如
nslookup
、dig
来解析域名,查找主机对应的 IP 地址。 -
端口探测工具:如
telnet
,通过尝试建立 TCP 连接来探测主机上特定端口的可用性。例如,使用命令telnet <目标主机> <端口号>
来尝试连接指定主机的特定端口,如telnet 192.168.0.1 80
。 -
网络发现工具:使用网络发现工具如
arp-scan
,可以扫描局域网内的主机,并列出其 IP 地址、MAC 地址等信息。 -
操作系统指纹识别:使用指纹识别工具如
nmap
的 OS Detection 功能,可以通过分析目标主机的网络行为,尝试识别主机所运行的操作系统。
注:探测存活主机和端口平时最容易想到的工具是
nmap
,但这个工具太大,直接安装存在风险,端口转发受限于网络环境
查看用户&机器&会话相关信息
Linux 环境下的查看方法:
-
用户相关信息:
- 用户列表:使用
cat /etc/passwd
命令可以查看系统上的用户列表。 - 用户权限和组信息:使用
id <用户名>
命令可以查看特定用户的权限和所属组。
- 用户列表:使用
-
机器相关信息:
- 硬件信息:使用
lshw
或sudo lshw
命令可以查看机器的硬件信息。 - 系统配置信息:使用
lsb_release -a
命令可以查看操作系统版本和发行版信息。
- 硬件信息:使用
-
会话相关信息:
- 当前登录用户:使用
who
或w
命令可以查看当前登录的用户信息。 - 当前运行的进程:使用
top
或htop
命令可以查看当前运行的进程和资源利用情况。
- 当前登录用户:使用
Windows 环境下的查看方法:
-
用户相关信息:
- 用户列表:在命令提示符或 PowerShell 中,使用
net user
命令可以列出系统上的用户列表。 - 用户权限和组信息:在命令提示符或 PowerShell 中,使用
whoami /all
命令可以查看当前登录用户的权限和所属组。
- 用户列表:在命令提示符或 PowerShell 中,使用
-
机器相关信息:
- 硬件信息:使用
systeminfo
命令可以查看机器的硬件信息。 - 系统配置信息:使用
systeminfo
命令可以查看操作系统版本和其他系统配置信息。
- 硬件信息:使用
-
会话相关信息:
- 当前登录用户:在命令提示符或 PowerShell 中,使用
query user
命令可以列出当前登录用户和会话信息。 - 当前运行的进程:在任务管理器中,可以查看当前运行的进程和资源利用情况。
- 当前登录用户:在命令提示符或 PowerShell 中,使用
macOS 环境下的查看方法:
-
用户相关信息:
- 用户列表:使用
dscl . -list /Users
命令可以列出系统上的用户列表。 - 用户权限和组信息:使用
id <用户名>
命令可以查看特定用户的权限和所属组。
- 用户列表:使用
-
机器相关信息:
- 硬件信息:使用
system_profiler SPHardwareDataType
命令可以查看机器的硬件信息。 - 系统配置信息:使用
sw_vers
命令可以查看操作系统版本和其他信息。
- 硬件信息:使用
-
会话相关信息:
- 当前登录用户:使用
who
命令可以查看当前登录的用户信息。 - 当前运行的进程:使用 Activity Monitor 应用程序可以查看当前运行的进程和资源利用情况。
- 当前登录用户:使用
典型的内网渗透流程的概述:
-
信息收集:首先,收集目标内网的信息,包括子网结构、域名信息、IP地址范围、开放的端口和服务等。这包括通过主动扫描和渗透测试工具收集信息,以及利用公开的信息源进行信息搜集。
-
漏洞扫描:在收集到足够的信息后,使用漏洞扫描工具扫描目标主机和服务,寻找存在的安全漏洞,如弱口令、漏洞软件或配置错误。
-
入侵和身份提升:一旦发现漏洞,攻击者可以尝试入侵目标主机或服务,并获取更高权限。这可以通过利用漏洞、利用弱口令、社交工程等方法来实现。一旦获得初始访问权限,攻击者可以使用提权工具或漏洞来提升自己的权限。
-
横向移动:一旦攻击者获得了内网中的一台主机的访问权限,他们可能会通过探测其他主机或设备,尝试在内网中横向移动。这可以通过利用弱密码、共享资源、漏洞利用等手段来实现,以获得对更多主机的访问权限。
-
信息收集与利用:获得足够的内网访问权限后,攻击者可以继续收集目标内网的更敏感信息,如数据库、用户凭证、敏感文档等。这些信息可能会被用于后续的攻击或其他非法活动。
-
持久性访问:为了长期访问目标内网,攻击者通常部署后门、定时任务等持久性手段,以保持对目标的访问权限,即使初始访问点被发现或修复。