当进入内网后,我们首先需要对当前环境进行判断,要考虑如下两个问题:1、我是谁?(确定当前机器的角色)2、位于何处?(当前机器所处的环境)
为了解决这些问题,以及进一步扩大战果,我们需要进行信息收集
一、学习进程
1、域内常用命令
- 判断当前所在域
ipconfig /all #查看网卡配置信息,本机IP段,所在域
ping -a -4 192.168.112.100 #通过IP反射查找域名
net config workstation #查看计算机名、全名、用户名、系统版本、工作站、域、登录域
使用如下命令去建立与Windows7的连接,Windows7的IP地址为192.168.112.231
net use \\192.168.112.231 /user:denny 123456
使用如下命令将Windows7的命令行界面返回到本机上
PsExec.exe \\192.168.112.231 cmd.exe
- 查看当前存在几个域
net view /domain
如果该命令无法正常执行,则需要启动域控服务器上的Computer browser服务
- 查看域时间
net time /domain
- 管理域用户的相关操作(需要管理员权限)
net user 用户名 密码 /add /domain #添加域用户
net group "domain admins" 用户名 /add /domain #将该用户添加至管理员组中
- 看看该域里面有几个主机
net view /domain:woniuxy
ping一下域里面的主机,看看能否ping通
二、信息收集
2.1 本机信息
2.1.1 当前用户登录
whoami /fqdn #查看当前用户的FQDN(可分辨名称)
whoami /priv #查看当前用户拥有的安全特权
whoami /user #显示当前用户的信息以及安全标识符(SID)
whoami /all #显示当前用户名、属于的组以及安全标识符(SID)和当前用户访问令牌的特权
域中常见的用户身份(用户组):
- Domain Admins:域管理员,拥有对此域内的其他成员完全控制的权限
- Domian Controllers:域控制器
- Domian Users:域用户
- Domain Computers:域内机器
- Domain Guests:域内来宾用户组,低权限
2.1.2 用户列表信息
net user #查看本机用户
net user /domain #查看域内用户
2.1.3主机信息收集
通过主机信息判断拿到权限是普通计算机,还是服务器。我们可以通过主机的计算机名称、计算机上的文件和端口开放情况来进行判断
- 若主机上有"C:\\inetpub",说明其可能安装iis服务,是一台Web服务器
- 通过开放的端口进行确认,使用命令netstat 查看主机网络连接状态,若本地监听80、443端口,则可能为Web服务器;若监听53端口,则可能为DNS服务器
- 通过主机的计算机名称、计算机描述等信息,例如dc.woniuxy.com,说明此计算机可能为该域的DC
2.1.4 进程列表消息
查看进程列表,我们可以知道机器上运行着什么程序软件,有无杀毒软件、安全防护软件、VPN、FTP等服务或软件。方便后续利用,如免杀木马制作、提权等
- 使用系统命令tasklist
- 或使用第三方软件,如D盾
2.1.5系统信息
收集系统信息,如系统版本、补丁信息等
- 使用系统命令systeminfo
我们也可以使用命令dxdiag去查看整个操作系统的关键信息
- 使用wmic命令查看全部补丁信息
wmic qfe list full
2.2 域信息收集
我们在域中一般收集域用户信息,域控制器信息,域用户登录日志信息,域内所有用户名、全名和备注等信息,域内工作组信息,域管理账号信息,域内网段划分信息与域内组织单位信息等
而我们进入一个域环境,刚开始大概率获取的是域内普通用户权限,所以在前期要收集的信息多以域控的地址、域用户或者系统等信息为主。我们可以使用Windows系统自带的命令收集域基础信息,以下列举一些信息收集的方法
2.2.1 查找当前域
确定当前环境存在几个域,域的大致结构,常用命令如下:
net view /domain #查看当前存在几个域
net view /domain:域名称 #查看当前域中的所有计算机
2.2.2 查找域控
1、通过查看logoserver信息找到域控制器
set logonserver #查看客户端登录到哪台域控制器,简写为 set log
2、通过查找srv记录,找到域控
我们使用Kali通过MSF远程连接到Windows7上,我们将Windows锁定,锁定的目的是我们假设我们使用木马远程连接到了Windows7,使环境更加的真实
SRV记录是域名系统(DNS)资源记录。它用于标识托管特定服务的计算机。SRV资源记录用于查找Active Directory的域控制器。常用nslookup命令进行查询,如下:
nslookup -type=SRV _ldap._tcp.woniuxy.com #查找域控制器的轻型目录访问协议(LDAP)SRV记录
3、使用nltest命令查询工作站与域控间的信任关系
nltest /dclist:woniuxy.com #查找dc列表
2.2.3 查找域管理员
在域中若能获取域管理员的权限则可以对域内的其他成员完全控制,不过首先我们找到域管理员用户。我们可以使用"net group"命令查找域中的域管理员组成员,如下:
net group "domain admins" /domain #查找域中的域管理员组成员
2.3 主机发现
通过主机发现了解当前网络中设备的分布情况,查看内网有没有其他机器等,在域内进行横向渗透的时候也需要收集主机端口和ip信息
2.3.1 查看路由表
route print #打印当前windows主机上的路由表
2.3.2 查看ARP缓存
arp -a #查看当前设备上的arp缓存记录
2.3.3 使用ping探测
for /l %i in (1,1,255) do @ping 192.168.12.%i -w 1 -n 1|find /i "ttl="
三、信息收集工具
3.1 使用MSF框架进行信息搜集
此处用msfvenom制作exe类型的反弹shell木马后直接上传至域用户zhangsan的主机中运行,并用msf监听
以下展示meterpreter模块中使用对应工具进行信息搜集:
1、枚举域信息
run post/windows/gather/enum_domain
2、展示补丁信息
run post/windows/gather/enum_patches
3、查看用户最近打开文档
run post/windows/gather/dumplinks
以下msf的模块工具需要在域中使用,但因为内网一般不和kali在一个网段,我们可以使用MSF框架中自带的一个路由转发功能,在已经获取shell的meterpreter的session会话中添加一条去往内网的路由,此路由的下一跳转发,即网关,指向这个session。通过添加路由功能,可以直接使用MSF去访问原本不能直接访问的内网资源
4、主机存活探测
auxiliary/scanner/discovery/arp_sweep ARP #通过arp扫描
auxiliary/scanner/discovery/udp_sweep UDP #通过UDP扫描
auxiliary/scanner/netbios/nbname NETBIOS #通过NetBIOS扫描
auxiliary/scanner/snmp/snmp_enum SNMP #通过SNMP扫描
我们去扫描一下158这台机器的端口
5、端口扫描
auxiliary/scanner/portscan/syn #通过SYN进行端口扫描
auxiliary/scanner/portscan/tcp #通过TCP进行端口扫描
auxiliary/scanner/portscan/ack #通过ACK进行端口扫描
3.2 其他域信息收集工具
3.2.1 AdFind
我们要模拟攻击者的手段
首先进入到meterpreter中,看看上传文件需要啥命令
然后将AdFind.zip复制到Kali上,然后进行解压
将解压好的AdFind.exe通过meterpreter上传到Windows7上
然后shell进去
查看一下是否上传成功,发现名字不对,我们将名字改正回来
重命名成功
但尽量还是不要上传工具,容易被管理员发现,如果没办法需要权限维持的时候,我们将其藏得深一点即可
- 列出域控制器名称
AdFind.exe -sc dclist
- 查看域控版本
AdFind.exe -schema -s base objectversion
- 查看所有在线主机
AdFind.exe -sc computers_active
- 查看当前域内所有用户、用户组
AdFind.exe -users name
- 查看域管账号
AdFind.exe -default -f "(&(|(&(objectCategory=person)(objectClass=user))(onjectCategory=group))(adminCount=1))" -dn
- 其他命令
四、使用CS插件进行信息收集
我们先打开我们的公网服务器
开启CS服务端
在Kali上启动我们的客户端
然后点击connect连接,进入到CS的客户端的界面
将Windows7上的这个程序跑起来
发现那台Windows7的目标主机上线
CS自带了一些功能,在Explore上,我们使用net view那个功能,目的是去扫描IP
下图是扫描的结果,主机名、IP地址、操作系统版本号
然后我们进入到视图里面,有一个targets,点击
然后就会把我们扫描到的主机列举出来
然后在主机名那儿右击,jump,我们把这个动作称之为横向移动
jump一下,看看能不能让112.100这个域控上线
进来之后有点懵,不知道该填啥
因为我们作为攻击者无法知道域控的用户名和密码,我们只知道Windows7的,因为我们模拟已经拿下了WIndows7
然后发现底下有一个选项,大致的意思就是用当前这个连接的session的令牌,顾名思义,也就是zhangsan这个用户
勾选之后,域控的用户名和密码不需要填了
选择listener,目的就是想办法把这个木马植入到112.100这台域控环境上去
session选择当前这一台,也就是zhangsan
填写完毕
然后Launch
然后不可能一下子就跳过去,下一个文章将如何跳过去
接下来还可以进行端口扫描,先扫IP,后扫端口
信息采集只有这两种方式,net view和port scan
接下来,我们做插件,在Cobalt Strike这儿选择Script Manager
然后点击load加载插件
只加载下面两个插件,这两个插件功能很多,适合内网和域渗透
加载成功
加载之后我们针对这台主机进行信息搜集,是信息收集里的常用信息
想收集啥就勾选啥,然后点击运行,比如下图
然后就开始在Beacon这边所有任务都下发,完了之后开始给我们反馈,一个一个的输出
接下来看看内网信息可以采集什么
然后运行
主机名我们不知道,所以不输
然后Beacon那儿一口气给我们输出了我们想要的信息