渗透的本质是信息搜集,而信息搜集整理为后续的情报跟进提供了强大的保证。
进入内网后,首先需要对当前网络环境进行判断:
• 我是谁:当前机器的角色
• 这是哪:当前机器所处网络环境的拓扑结构
本机信息收集
基础信息:
内网网段信息,查看网卡信息收集内部地址段的信息
内网大小
核心业务信息:
内网OA办公系统、邮件服务器、网络监控系统、财务应用系统、核心产品源码(SVN服务器、git服务器等)
其他信息:
管理员密码、浏览器密码、cookie、无线密码、数据库密码、VPN历史密码、Teamview历史密码等
其他用户session、3389和IPC$连接记录,各用户回收站信息、用户列表
host文件和DNS缓存信息
AV、补丁、进程、服务、端口、网络代理信息、软件列表
计划任务、账号密码策略和锁定策略、共享文件、web服务器配置文件
启动项、系统日志、Web服务器日志、防火墙规则
本机信息包括操作系统、权限、内网IP地址段、杀毒软件、端口、服务、补丁更新频率、网络连接、共享、会话等。
如果是域内主机,操作系统,应用软件,补丁、服务、杀毒软件一般都是批量安装的。
1.查询网络配置信息
ipconfig/all
2.查询操作系统及软件的信息
systeminfo | findstr /B /C"OS 名称 " OS版本”
假如是英文版本就改为 Name 和· 版本就行
2.查看系统体系结构
echo %PROCESSOR_ARCHITECTURE%
3.查看安装的路径及版本、路径
利用wmic 命令,将结果输出到文本文件
wmic product get name,version
利用powersHELL 命令,收集软件的版本信息
powershell "Get-WmiObject -class Win32_Product | Select-Object -Property name,version"
3.查询本机服务信息
wmic service list brief
4.查询进程列表
tasklsit
wmic process brief
5.查看启动程序信息
wmic startup get command ,caption
6.查看计划任务
schtasks /query /fo LIST /v
7.查看主机开机时间
net statistics workstation
8.查询用户列表
执行如下命令,查看本机用户列表
net user
net localgroup administrator
查看当前在线用户
query user || qwinsta
9.列出或断开本地计算机与所连接的客户端之间的会话(需要管理员权限)
net sesssion
查询端口列表(常用命令)
netstat -ano
11.查看补丁列表
systeminfo
使用wmic命令查看安装在系统的补丁
wmic qfe get Caption ,Description ,HotFixID,InstalledOn
12.查询本机共享列表
net share
wmic share get name,path,status
13.查询路由表及所有可用接口的Arp缓存表
route print
arp -a
14.查询防火墙相关配置
1.关闭防火墙
windows server 2003及之前的版本:
netsh firewall set opmode disable
windows server 2003及之后的版本:
netsh advfirewall set allprofiles state off
2.查看防火墙配置
netsh firewall show config
3.修改防火墙配置
windwos server 2003 及之前的版本,允许指定程序全部连接
netsh firewall add allowedprogram c:\nc.exe "allow nc" enable
windows server 2003之后的版本:
允许指定程序进入,命令如下:
netsh advfirewall firewall add rule name="pass nc" dir=in action=allow program="C:\nc.exe"
允许指定程序退出,命令如下:
netsh advfirewall firewall add rule name="Allow nc" dir=out action=allow program="C:\nc.exe"
允许3389端口放行:
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow
Copy
4.自定义防火墙日志的存储位置
netsh advfirewall set currentprofile logging filename "C:\windows\temp\fw.log"
2.查看防火墙及配置
netsh firewall show config
15.查看代理配置情况
reg query "HKEY_CURRENT_USER\Software\Microsoft\windows\CurrentVersion\INternet settings"
为了简化操作,可以创建一个脚本,在目标机器上完成流程、服务、用户账户、用户组、网络接口、硬盘信息、网络共享信息、操作系统、安装的补丁、安装的软件、启动时运行的程序、时区等信息的查询工作。
1.下载地址:http://www.fuzzysecurity.com/scripts/files/wmic_info.rar
2.点击下载文件,然后生成了out.html
Empire 提供了用于收集主机信息的模块。输入命令”usemodule situational_awareness/host/winenum “
1.查看当前权限·
whoami
2.获取域SID
whoami/all
3.查询指定用户的详细信息
执行以下命令,查询当前用户的详细信息
net user xxx /domain
4、判断是否存在域
1.使用ipconfig命令
ipconfig/all
nslookup hacke.testlab
2.查看系统详细信息
systeminfo
3.查询当前登录域及登录用户信息
net config workstation
4.判断主域
net time /domain
内网存活主机探测是内网渗透测试中不可缺少的一个环节。可在白天和晚上分别·进行探测。
NetBIOS是局域网程序使用的一种程序编辑接口(API),为程序提供了请求级别服务的统一的命令集,为局域网提供了网络及其他特殊功能。
nbtscan是一个命令行工具,用于扫描本地或远程tcp/ip网络上的开放NEtBIos名称服务器。
除了利用NEtBIos探测内网,还可以利用icmp协议探测内网。
for /L %I in (1,1,254) Do @ping -w l -n 1 192.168.1.%I findstr "TTL="
1.arp-scan工具
arp -a
2.Empire 中的arpscan 模块
3.NIshang 中的invoke-Arpscan.ps1脚本
ScanLine是一款经典的端口扫描工具,可以在所有版本的windoWS 操作系统中使单个文件,用,体积小,仅使用单个文件,同时支持TCp/udp扫描
端口的banner信息 ,端口上运行的服务,常见应用的默认端口
利用telnet命令进行扫描
Telnet 协议是tcp/ip协议族的一员,是Internet远程登陆服务的标准协议和主要形式。
1.首先得开启服务
telnet 192.168.1.1 22
S扫描器
S扫描是2007年古老的扫描器,不建议使用了。
Metasploit 端口扫描
如果通过扫描发现了端口,可以使用客户端连接工具或者nc,获取服务端的Banner信息。获取Banner信息后,可以在漏洞库中查找对应cve编号的POc、exp、在exploitDB、seebug等平台上查看相关的漏洞利用工具,然后到目标系统中验证漏洞是否存在,从而有针对性地进行安全加固。
nc -nv 127.0.0.1 22
• 文件共享服务端口(21、22、69、2049、139、389)
• 远程连接服务端口(22、23、3389、5900、5632)
• Web应用服务端口(80、443、8080、7001、7002、8089、9090、4848、1352)
• 数据库服务端口(3306、1433、1521、5432、6379、5000、9200)
• 邮件服务端口(25、110、143)
• 网络常见协议端口(53、67、68、161)域内基础信息收集
ipconfig /all 查询本机IP段、所在域
nbtstat –A ip netbios 查询
netstat –an/ano/anb 网络连接查询
route print 路由表
cmdkey /l 是否保存了登录凭证
net session 查看是否有远程连接的session
net类
net user 本机用户
net user /domain 查询域用户
net user domain-admin /domain 查看管理员登陆时间,密码过期时间,是否有登陆脚本
net localgroup administrators 本机管理员(通常含有域用户)
net localgroup administrators /domain 登录本机的域管理员
net localgroup administrators workgroup\user001 /add 域用户添加到本机
net group /domain 查询域工作组
net group "domain admins" /domain 查询域管理员用户组
net group "Domain controllers" /domain 查询域控列表
net group "domain computers" /domain 获得所有域成员计算机列表
net view 查询同一域内机器
net view /domain 查询域列表
net view /domain:domainname
net accounts 查看本地密码策略
net accounts /domain 查看域密码策略
net time /domain 查看域时间
nltest /domain_trusts 获取域信任信息
dsquery
dsquery computer domainroot -limit 65535 && net group "domain
computers" /domain ------> 列出该域内所有机器名
dsquery user domainroot -limit 65535 && net user /domain------>列出该域内所有用户名
dsquery subnet ------>列出该域内网段划分
dsquery group && net group /domain ------>列出该域内分组
dsquery ou ------>列出该域内组织单位
dsquery server && net time /domain------>列出该域内域控制器
总结:域内信息收集的方法是进行域内渗透最重要的一步,在域内进行快速收集有用信息是内网渗透的关键。