目录
域或工作组环境判断
判断当前登录账户为本地账户还是域账户
本机信息收集
获取本机⽹络配置信息
查询操作系统和版本信息
查看系统体系结构
查看安装的软件及版本、路径
查询本机服务信息
查询进程列表
查看本机端口开放情况
查看主机开机时间
查看当前在线⽤户
查看、修改防火墙配置
查询并开启远程桌⾯连接服务
域内信息收集
查询域内用户
查询域管理员列表
查询域列表(如果有多个域)
查看域内时间(时间服务器)
查看所有域控制器列表
查询域信任信息
查询域密码信息
域或工作组环境判断
1、查看当前网卡和ip信息
ipconfig /all
(1)工作组中
只要没有加入域,主机的网卡不管有没有自定义dns服务器ip。 执行 ipconfg /all 后主DNS后缀都为空
(2)域环境
只要加入域,不管当前用户为域用户本还是本地用户,主DNS后缀,都为域名
systeminfo
工作组环境,systeminfo查询的显示为WORKGROUP,域环境查询的域是域名
域中,不管此时是什么用户登陆。查询的域是域名
3、查看当前登录域及域⽤户
net config workstation
工作组环境中,登录域显示workgroup
4、查看域内时间
net time /domain
该命令显示主域控制器的时间
- 如果当前主机处于工作组中未加入域,则显示找不到域控制器
- 加入了域,且当前用户为非域用户,为本地用户包括本地管理员,则显示拒绝访问
- 加入了域,且当前用户域用户,则显示域控的时间
判断当前登录账户为本地账户还是域账户
我们可以先查看主机名,再查看账户名
当前登录账户为本地用户,则whoami显示为 “ 计算机名\账户名 ”
当前登录账户为域用户,则whoami显示为 “ 域名前缀\账户名 ”
本机信息收集
分清楚是域还是⼯作组后,我们就可以对当前机器进⾏信息搜集了。
获取本机⽹络配置信息
ipconfig /all
通过查看⽹络配置信息,我们可以知道当前机器有两个⽹卡,有两个⽹卡也就代表我们可以扩⼤范围进⾏内⽹横⾏渗透,资产也就多了。"资产多也就代表我们有更多机会拿到域内其他主机的权限"!
查询操作系统和版本信息
英⽂版系统⽤这条命令:
systeminfo | findstr /B /C:"OS Nmae" /C:"OS Version"
中⽂版系统⽤这条命令:
systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本"
知道了当前系统是 Microsoft Windows 7 专业版 后,假设我们权限是⼀个普通⽤户权限,我们想要提权为 SYSTEM 或者其他⾼权限,那么我们就可以针对性的去搜集 Microsoft Windows 7 专业版 的提权EXP,这也是我们搜集信息的⽬的之⼀。
查看系统体系结构
echo %PROCESSOR_ARCHITECTURE%
通过查看查看系统体系结构我们就可以知道当前机器可以运⾏什么“软件”,因为我们在内⽹渗透中会⽤到很多⼯ 具,很多⼯具不⼀定是 AMD 的,所以我们需要考虑到兼容性的问题,这也是我们搜集信息的⽬的之⼀
查看安装的软件及版本、路径
wmic product get name,version
通过搜集当前本机安装了那些软件后,我们就知道当前机器的使⽤情况,⽐如某个软件有⼀些溢出、提权漏洞、⼜或者我们可以利⽤⼀些软件进⾏ DLL 劫持提权,当然这都是后话了。
查询本机服务信息
wmic service list brief
通过搜集当前本机的服务信息,我们就可以知道当前机器上有哪些服务,是开启的还是关闭的。
查询进程列表
1、查看当前进程列表和软件进程
tasklist
2、查看当前进程列表对应的⽤户身份
通过执⾏这条命令我们可以知道每个进程对应的⽤户,是那个⽤户启动的这个软件,但是这条命令只能看到和你⼀ 样级别或者⽐你低权限的⽤户的进程,这条命令我们会经常⽤到,后续讲 令牌窃取 会⽤到。
tasklist /v
3、查看当前进程是否有杀毒软件(AV)
tasklist /svc
通过执⾏完这条命令后,我们就可以知道当前有哪些软件,以及对应的 PID 号、服务名,我们还可以吧执⾏命令的返回结果去查询是否有杀毒软件 ——> 杀软在线查询
如下,查询出当前主机开启了360杀毒
查看本机端口开放情况
netstat -ano
通过查看本机端⼝开放情况我们就可以知道当前机器有没有与其他机器进⾏连接(可以扫下那个机器的C段,探测出隐形网段),⼜或者可以分析到当前机器有没有开放远程桌⾯ 3389、MySQL 服务 3306 ... 等等
查看主机开机时间
net statistics workstation
通过查看本机的开机时间(开机的时间,不是重启的时间),我们就能判断这台机器的管理员是不是经常关机,是不是经常在登陆这台机器。
查看当前在线⽤户
query user || qwinsta
如下显示当前登录了两个用户分别为yuwin7和test,yuwin7处于运行中就是目前登录的账户。而test显示断开,意思就是刚才登录了test但是我又切换到了yuwin7账户,所以显示断开,如果直接将test账户注销登陆,则这里只显示yuwin7。
通过查看当前在线⽤户我们就可以知道当前机器有没有管理员在登陆,因为有的时候我们可能需要远程登录到⽬标 服务器上,万⼀你盲⽬的登陆到⽬标服务器上,那么是不是就暴露了?就是这么⼀个道理。
查看、修改防火墙配置
windows中根据网络位置来设置不同的防火墙状态,分为域网络、专用网络、公用网络
查看防火墙开启关闭状态
netsh advfirewall show allprofiles
如下防火墙处于关闭状态
若是想修改防⽕墙配置信息就可以使⽤:
1. win 2003及之前的版本,运⾏指定程序全部连接:
netsh firewall add allowedprogram c:\nc.exe "allow nc" enable
2. win 2003之后的版本⽤这条:
netsh advfirewall firewall add rule name="pass nc" dir=in action=allow program="C:\nc.exe"
3. 允许指定程序连出,命令如下
netsh advfirewall firewall add rule name="Allow nc" dir=out action=allow program="C:
\nc.exe"
4. 允许 3389 端⼝放⾏,命令如下
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow
5. ⾃定义防⽕墙⽇志储存位置
netsh advfirewall set currentprofile logging filename "C:\windows\temp\fw.log"
关闭防火墙(需管理员权限)
1. win 2003及之前的版本⽤这条命令:
netsh firewall set opmode disable
2. win 2003之后的版本⽤这条命令:
netsh advfirewall set allprofiles state off
查询并开启远程桌⾯连接服务
·········
域内信息收集
环境:
- win7 加入域 test.lab
- win2012 为域控,目前有域用户 yuwin7和test
查询域内用户
通过查询域内⽤户我们就可以知道这个域内所有⽤户名
net user /domain
如下,发现有两个域用户
查询域管理员列表
net group "domain admins" /domain
如下,存在一个域管理员
查询域列表(如果有多个域)
如果机器加入了多个域,则可以查看。如下只有一个TEST域
net view /domain
查看域内时间(时间服务器)
通过查看域内时间(时间服务器),我们得知了当前域的时间,我们就可以使⽤定时任务+IPC来运⾏⼀些bat⽂件。
net time /domain
查看所有域控制器列表
一般在真实的内网环境中,一个域会存在多个域控制器,如主域控制器,辅域控制器。通过查看域控制器列表我们就可以得到域控制器对应的机器名是多少。
net group "Domain Controllers" /domain
如果想要知道它的 IP 是多少,我们只需要 Ping 它的机器名即可得到域控制器的 IP 地址。知道域控的 IP 后,我们就可以针对性的对域控制器渗透,只渗透核⼼机器,拿下域控制器权限整个域也就拿到⼿了
查询域信任信息
nltest /domain_trusts
通过查询域信任信息我们就可以知道当前有多少个域,域名是多少
如下,发现test.lab一个域
查询域密码信息
net accounts /domain
通过查询域密码信息我们就可以知道当前域⽤户多久修改⼀次密码,密码策略是多少(我们就可以根据密码策略来 制定⼀份密码字典,盲⽬的⽤字典会很浪费时间)