内网渗透
笔记
工作组
工作组介绍
在一个大型单位里,可能有成百上千台计算机互相连接组成局域网,这样局域网会很混乱,然后就出来了工作组(Work Group)工作组里的所有计算机都是对等的(没有服务器和客户机之分)
比如分组:如果我们修改到程序员组里面就可以访问程序员组里面的文件了,如果不分组的话里面就非常乱
- 程序员组
- 行政部组
- 财务部组
- 工人部组
添加/和创建工作组
下面这个我们如果工作组不存在他就会创建一个工作组(当然,暂时只有当前这台计算机在该工作组内)
域
什么是域
可以简单理解是一个升级版的域,我们想访问域里面的资源就需要相应的权限
域控制器(Domain Controller)
域控制器简称:DC
什么是域控制器
- 他是验证域的身份的
- 域控制器负责所有连入的计算机和用户的验证工作。域内的计算机如果想互相访问,都要经过域控制器的审核
- 域里面存放这整个域的用户和密码和属于那个域的信息,他存储是是一个数据库
域的分类
单域
通常在一个小公司里面一个域就够了
一个域里面有两个域控制器一个是用的服务器一个是做备份的服务器
- 如果第一个域除了毛病就可以用那个部分的域服务器
### 父域/和子域
需要在网络中划分多个域。第一个域称为父域,各分部的域称为该域的子域
在同一个域里面数据相互复制的他是不会进行压缩的,占用带宽比较大
比如:
- 有一个大公司一个在上海一个在北京,文件互相传输就会非常占用资源的而且还很慢,我们尽就可以创建一个父域
域树(Tree)
域树(Tree)是多个域通,两个域以上才是
不能访问或者管理其他域。如果两个域之间需要互相访问,则需要建立信任关系(Trust Relation)
- 比如我们下面图asia.abc.com和europe.abc.com进行通信访问要建立信任关系(Trust Relation)
子域之间用
.
进行分割代表一个层次,例如:域asia.abc.com 的级别比域abc.com 低
域森林
多个域树通过建立信任关系组成的集合
域森林 比如下面这个abc.com域树和abc.net的域树建立连接就成了一个域森林
域名服务器
域树中的计算机是使用DNS来定位控制器,服务器以及其他设备,网络服务的,所以域的名就是DNS域的名字,在内网渗透测试中,大部分是通过找DNS服务器来确定域控制器的位置域名服务器(DNS 服务器和域控制器通常配置在同一台机器上)
活动目录(AD)
什么活动目录,是域环境中提供目录服务的组件
- 目录用于存储有关网络对象
- 例如用户、组、计算机、共享资源、打印机和联系人等的信息
- 我们可以快速访问要访问的位置
简单讲他就相当于一个快捷方式
逻辑结构
在活动目录中,管理员不需要考虑被管理对象的地理位置,只需要按照一定的方式将这些对象放置在不同的容器中。这种不考虑被管理对象的具体地理位置的组织框架称为逻辑结构
活动目录的主主要功能
- 账号集中管理:所有账号均存储在服务器中,以便执行命令和重置密码等。
- 软件集中管理:统一推送软件、安装网络打印机等。利用软件发布策略分发软件,可以让用户自由选择需要安装的软件
- 环境集中管理:统一客户端桌面、IE、TCP/IP 协议等设置
- 增强安全性:统一部署杀毒软件和病毒扫描任务、集中管理用户的计算机权限、统一制定用户密码策略等。可以监控网络,对资料进行统一管理
- 更可靠,更短的宕机时间:例如,利用活动目录控制用户访问权限,利用群集、负载均衡等技术对文件服务器进行容灾设置。网络更可靠,宕机时间更短
- 活动目录是微软提供的统一管理基础平台,ISA、Exchange、SMS 等都依赖这个平台。
活动目录(AD)和域控制器(DC)的区别
活动目录(AD)
- 如果有一个比较大的网络,那我们就会考虑吧大量的对象(用户、组、计算机、共享资源、打印机和联系人等)进行类型分类,有顺序的放好,利用我们以后的查找
- 这个活动目录数据库就叫做(AD)
域控制器(DC)
- 那么我们叫活动目录数据库存放到那个电脑上,那个电脑就叫做DC
- 就是我们叫内网那个电脑装上AD那个电脑就是DC
安全域的划分
上面这个图可以将网络划分为三个区域
- 外网:这个安全等级最低
- DMZ 称为隔离区:这个安全等级中
- 内网:这个安全等级最高
域中计算机的分类
计算机的身份是不平等的
他的分类有
- 域控制器
- 域控制器用于管理所有的网络访问,包括登录服务器、访问共享目录和资源
- 成员服务器
- 他就是安装了服务器系统又加入了域的计算机他没有安装活动目录
- 其主要任务是提供网络资源比如,数据库服务器、Web服务器、邮件服务器、防火墙
- 客户机
- 他可以是安装了其他操作系统的计算机,用户利用这些计算机和域中的账户就可以登录域。这些计算机被称为域中的客户机。域用户账号通过域的安全验证后,即可访问网络中的各种资源
- 独立服务
- 独立服务器如果他不加入域也不安装活动目录他就是独立服务器
域内权限解读
域本地组
域本地组不能加入到其他组里面
域本地组主要用于授予本域内资源的访问权限,单域用户访问多域资源(必须是同一个域中的用户)
全局组
通用组
内网信息收集
我们在内网里面要知道
- 我是谁
- 这是那
- 我在哪
收集本机信息
查询网络配置信息
查询网络配置
1 | ipconfig /all |
查询操作系统及软件的信息
查看用户列表
通过分析本机用户列表,可以找出内网机器的命名规则。特别是个人机器的名称,可以用来推测整个域的用户命名方式比如:xxxx1,xxxx2,xxxx3
命令
1 | net user |
查询操作系统和版本信息
中文查看命令
systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本"
英文版本查看
systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
查看系统的体系结构
命令
1 | echo %PROCESSOR_ARCHITECTURE% |
查看安装的软件的版本和路径
1 | wmic product get name,version |
查看安装的软件及版本信息
1 | powershell "Get-Wmiobject -Class_Win32_Product | Select-Object -Property name,version" |
查询本机服务信息
1 | wmic service list brief |
查询进程列表
tasklist
可以查看当前进程列表和进程用户,分析软件、邮件客户端、VPN 和杀毒软件等进程查看进程信息
1 | tasklist |
查看进程信息
1 | wmic process list brief |
查看启动程序信息
VMware User Process “C:\Program Files\VMware\VMware Tools\vmtoolsd.exe” -n vmusr
查看计划任务
1 | schtasks /query /fo LIST /v |
查看主机开机时间
1 | net statistics workstation |
查询用户列表
查询用户列表
1 | net localgroup administrators |
查看当前在线用户
1 | query user || qwinsta |
列出或断开本地计算机与所连接的客户端之间的会话
1 | net session |
查询端口列表
1 | netstat -ano |
查看系统的详细信息
1 | systeminfo |
查看补丁列表
需要注意系统的版本、位数、域、补丁信息及更新频率等。域内主机的补丁通常是批量安装的,通过查看本机补丁列表,就可以找到未打补丁的漏洞
1 | systeminfo |
查看补丁列表
1 | wmic qfe get Caption,Description,HotFixID,InstalledOn |
查询本机共享列表
net查询
1 | net share |
wmic查询
1 | wmic share get name,path,status |
查询路由表
1 | route print 和arp -a |
查询防火墙相关配置
关闭防火墙
netsh advfirewall set allprofiles state offWindows Server2003及之前的版本
1 | netsh firewall set opmode disabele |
Windows Server2003及之后的版本
1 | netsh advfirewall set allprofiles state off |
查看防火墙配置
1 | netsh firewall show config |
修改防火墙配置
Windows Server2003及之前的版本,允许指定程序全部连接,命令如下
1 | netsh firewall add allowedprogram c:\nc.exe "allow nc " enable |
Windows Server2003之后的版本
1 | netsh advfirewall add rule name="pass nc" dir = in action = allow program = "C:\nc.exe" |
允许指定程序退出
1 | netsh advfirewall add rule name="Allow nc" dir=out action=allow program="C: \nc.exe" |
允许3389端口放行
1 | netsh advfirewall add rule name="Romote Desktop" protocol=TCP dir=in localport=3389 action=allow |
自定义防火墙日志的储存位置
1 | netsh advfirewall set currentprofile logging filename "要保存的位置" |
查看代理配置情况
查看代理配置情况
1 | reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" |
查询并开启远程连接服务
查看远程连接端口
在命令行环境中执行注册表查询语句连接的端口为0xd3d,转换后为3389
1 | reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-Tcp" /V PortNumber |
开启远程桌面
winserver 2003开启端口3389
1 | wmic path win32_terminalservicesertting where (__CLASS !="") call setallowtsconnections 1 |
在Windows Server2008和Windows Server2012中开启3389端口
1 | wmic /namespace:\root\cimv2\termainalservices path win_32terminalservicesetting where (__CLASS !="") call setallowtsconnections 1 |
1 | red add "HKLM\SYSTEM\CURRENT\CONTROLSET\CONTROL\TERMINAL SERVER" /v fSingleSessionPerUser /t REG_DWORD /d 0 /f |
Empire 下的主机信息收集
Empire 提供了用于收集主机信息的模块。输入命令
usemodule situational_awareness/host/ winenum
,即可查看本机用户、域组成员、密码设置时间、剪贴板内容、系统基本信息、网络适配器信息、共享信息等
查看主机信息
另外,situational_awareness/host/computerdetails 模块几乎包含了系统中所有有用的信息,例如目标主机事件日志、应用程序控制策略日志,包括RDP 登录信息、PowerShell 脚本运行和保存的信息等。运行这个模块需要管理员权限,读者可以自行尝试
自动化信息收集
我在网上找了的脚步,叫下面的文件复制到bat文件里面
1 | for /f "delims=" %%A in ('dir /s /b %WINDIR%\system32\*htable.xsl') do set "var=%%A" |