内网渗透知识点总结

最近打了不少春秋云镜的内网渗透的徽章,所以打算对内网的知识点进行一个总结学习。

一、内网是什么?

内网也指局域网,是指在某个区域由多台计算机互连而成的计算机组,组网范围通常在数千米以内。

在局域网中,可以实现文件管理、应用软件共享、打印机共享、工作组内的日程安排、电子邮件和传真通信服务等。

内网是封闭的,可以由办公室内的两台计算机组成,也可以由一个公司内的大量计算机组成。

简单来说:内网就是某一区域内封闭的计算机组,由大量的计算机组成。

一个简单的网络拓扑图:

image-20240603162935647

2752372-20220719180949017-1117785613

可以看出就是内网是独立于外网的,外网无法直接去访问内网中的主机,只有通过VPN,代理等技术去间接访问。

https://websec.readthedocs.io/zh/latest/intranet/index.html Web安全学习笔记

二、内网渗透又是什么?

内网渗透,从字面上理解便是对目标服务器所在内网进行渗透并最终获取域控权限的一种渗透。内网渗透的前提是获取一个webshell,可以是低权限的webshell,因为可以通过提权获取高权限

在进行内网渗透之前需要了解一个概念,域环境。在内网中,往往可能存在几百上千台机器,例如需要对机器进行升级、打补丁,设置权限等,管理员不可能一台一台地更新修改,因此衍生出了域环境。 (域控DC一般都是Windows系统) (但并不绝对,Linux也能够成为域控)

管理员以一台主机作为域控制器新建一个域,将其他主机加入域中,以域控来操作其他主机。因为域控的最高权限,导致了域控所在的主机的管理员账户密码可以登陆任意一台主机,所以内网渗透的最终目标,往往是拿下域控的权限

三、内网必须知识—-内网穿透

在渗透测试过程中,我们拿下了一台服务器的权限,并且通过netstat -ano发现开启了3389端口,想要远程桌面连接的时候发现无法连接。这是因为我们获取的服务器所处的环境为内网,而内网主机的3389端口,是公网IP通过端口映射的。也就是说,我们连接的外网IP地址的3389端口,映射到内网中,不一定是那台服务器的3389端口。

解决这种问题的方法有俩种:

  • 让目标机器去连接外网主机(必须有一台公网服务器,内网主机能够访问互联网)
  • 在目前机器上设置一个信号站(放一个web文件在目标机器上,所有流量都要经过这个文件通信) (一般情况下就是socks隧道的搭建)

在渗透测试过程中,内网主机不能访问互联网是很常见的。

这里可以使用的就是stowaway搭建网络代理 ———————https://blog.csdn.net/qq_44159028/article/details/129681017

四、内网结构

https://www.freebuf.com/articles/network/306068.html

1、工作组Work Group:

是最常见最简单最普通的资源管理模式,就是将不同的电脑按功能分别列入不同的组中,以方便管理。

2、域

域是一个有安全边界的计算机集合,域通过安全边界来隔离本域和外部资源。

域又可以再进一步的分类:

  • 单域 就两台主机,一台DC一台备份DC
  • 父域,子域 划分多个域,第一个域为父域,其他为子域
  • 域树(tree) 域树是多个域通过建立信任关系组成的集合。
  • 域林(forest) 域林是由一个或多个没有形成连续名字空间的域树组成,它和域树最大的区别就是域林之间没有形成连续的名字空间,而域树则是由一些具有连续名字空间的域组成。
  • DNS域名服务器 DNS服务器,计算机使用DNS来定位DC、服务器和其他计算机的,所以域的名字就是DNS域的名字。

3、活动目录(AD)

简写为AD,它是 Windows Server 中负责架构中大型网络环境的集中式目录管理服务

活动目录的功能:

  • 账户集中管理
  • 软件集中管理
  • 环境集中管理
  • 增强安全性
  • 更可靠、更短的宕机时间

活动目录与域控制器的区别

由域网络中的众多对象组成的层次结构的数据库被称为活动目录数据库(AD库)。要实现域环境其实就是要安装AD,如果内网中某台机器安装了AD,那么他就是DC。也就实现了只需要在活动目录中对某个账号修改一次密码,在整个域中任意一台机器上都可使用该账号登录。
方便了DC对域内其他机器的统一管理

4、安全域

安全域的划分目的:

将一组安全等级相同的计算机划如同一网段。

这个网段内的计算机拥有相同的网络边界,并在网络边界上通过部署防火墙来实现对其他安全域的网络控制策略,从而允许哪些IP地址访问域,允许此域访问哪些IP地址和网段进行设置。

这些措施将使得网络风险最小化,当攻击发生时,可以尽可能地将威胁隔离从而降低对域内计算机的影响

DMZ

DMZdemilitarized zone,中文名为“隔离区”,或称“非军事化区”。它是为了解决安装防火墙后外部网络的访问用户不能访问内部网络服务器的问题,从而设立的一个非安全系统与安全系统之间的缓冲区。

简答来说:DMZ就是将内网与外网进行隔离,存放一些必须公开的服务器设施,用来对外提供服务。

办公区

公司员工日常的工作区,一般会安装防病毒软件、主机入侵检测产品等。办公区般能够访问DMZ。如果运维人员也在办公区,那么部分主机也能访问核心数据区(很多大企业还会使用堡垒机来统一管理用户的登录行为)。

攻击者如果想进入内网,一般会使用鱼叉攻击、水坑攻击,当然还有社会工程学手段。办公区人员多而杂,变动也很频繁,在安全管理上可能存在诸多漏洞,是攻击者进入内网的重要途径之一。

核心区

存储企业最重要的数据、文档等信息资产,通过日志记录、安全审计等安全措施进行严密的保护,往往只有很少的主机能够访问。从外部是很难直接访问核心区的。

一般来说,能够直接访问核心区的只有运维人员或者IT部门的主管,所以,攻击者会重点关注这些用户的信息(攻击者在内网中进行横向移动攻击时,会优先查找这些主机)

五、域权限

  1. 域本地组

    多域用户访问单域资源(访问同一域),不能嵌套在其他组中,只能在其所在域内指派权限

  2. 全局组

    单域用户访问多域资源(必须是同一域里面的用户),能够嵌套在其他组中,可在域林中的任何域指派权限

  3. 通用组

    多域用户访问多域资源,成员信息不保存在域控制器中,而是保存在全局编录(GC)中,任何变化都会导致全林复制

A-G-DL-P策略

1
2
3
4
5
6
7
8
9
10
A:Account,用户账号

G:Global Group,全局组

U:Universal Group,通用组

DL:Domain Local Group,域本地组

P:Permission,许可,资源权限
先将用户账号添加至全局组中,再将全局组添加至域本地组中,然后为域本地组分配资源权限

域内权限解读

  • 域本地组:来自全林作用于本域
  • 全局组:来组本域作用于全林
  • 通用组:来自全林作用于全林
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
本地域组的权限
Administrators(管理员组) ————最重要的权限

Remote Desktop Users(远程登录组)

Print Operators(打印机操作员组)

Account Operators(帐号操作员组)

Server Operaters(服务器操作员组)

Backup Operators(备份操作员组)
全局组、通用组的权限:
Domain Admins(域管理员组)————最最最重要的权限,一般来说域渗透是看重这个

Enterprise Admins(企业系统管理员组)————最重要的权限,其次是去看重这个权限

Schema Admins(架构管理员组)————最重要的权限

Domain Users(域用户组)

六、内网信息收集 重点

目标资产信息搜集的程度,决定渗透过程的复杂程度。
目标主机信息搜集的深度,决定后渗透权限持续把控。
渗透的本质是信息搜集,而信息搜集整理为后续的情报跟进提供了强大的保证。

Windows

系统相关

1
2
3
4
5
6
7
8
9
10
11
#查看系统信息
systeminfo /all

#查看补丁列表
wmic qfe getCaption,Description,HotFixID,InstalledOn

#查看主机开机时间
net statistics workstation

#查看计划任务
schtasks /query /fo LIST /v #query显示所有计划任务

用户相关

1
2
3
4
5
6
7
#检查当前用户,权限
whoami /user && whoami /priv
whoami /all #查看当前域并获取域SID

#查看在线用户信息
quser
query user || qwinsta

程序相关

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#查看杀毒软件
wmic /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntivirusProduct Get displayName /Format:List

#查看安装的程序和版本
wmic product getname,version

#查询运行的进程
tasklist
wmic process list brief
wmic process getprocessid,executablepath,name #显示进程的路径、名称、pid
wmic servicelist brief #查看本机服务

#远程桌面连接历史记录
cmdkey /l

#查看自启动程序列表
wmic startuo getcommand,caption

网络连接相关

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#tcp/udp网络连接状态,端口信息
netstat -ano

ipconfig /all #查询本机IP段,所在域等
route print #打印路由信息
arp -a #查看arp缓存,可以发现内网主机

#查看局域网信息
net view #查看同一域内机器列表
net view \\ip #查看某ip共享
net view \\GHQ #查看GHQ计算机的共享资源列表
net view /domain #查看内网存在多少个域
net view /domin:XYZ #查看XYZ域的机器列表
net accounts /domain #查询域用户密码过期等信息

#查看本机共享
net share
wmic share getname,path,status

域相关

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#判断是否存在域
net config workstation # 查看当前计算机名,全名,用户名,系统版本,工作站域,登陆的域等
net view /domain # 查看域

#查看主域服务器
net time /domain #主域服务器会同时作为时间服务器

nltest /DCLIST:god #查看域控制器主机名,god为域名

#查看域用户相关信息
net user /domain #显示所在域的用户
net user 域用户 /domain #获取域用户详细信息
net user /domain XXX 123456 #修改用户密码,需要域管理员权限

net group /domain #查看域内用户组列表
net group "domain admins"/domain #获取域管理员列表
net group "domain controllers"/domain #查看域控制器组
net group "domain computers"/domain #查看域机器

#列出域信任关系
nltest /domain_trusts #列出域与域之间的信任关系

#获得域内用户详细信息
wmic useraccount get/all #可以获取到域用户的用户名、描述信息、SID、域名、状态等。

Linux

系统相关

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cat /etc/issue         #查看系统名称
cat /etc/Lsb-release #查看系统名称,版本号
cat /etc/*release #查看linux发行信息
uname -an #查看内核版本
cat /proc/version #查看内核信息
cat /proc/cpuinfo #查看cpu信息

#查看文件系统
df -a

#查看系统日志
sudo cat /var/log/syslog

#查看命令记录
cat /root/.bash_history
cat ~/.bash_history

用户相关

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
whoami     #查看当前shell权限
id #查看当前用户的权限和所在的管理组

#查看登录信息
w
who
last #登入过的用户信息
lastlog #显示系统中所有用户最近一次登录信息

#查看账号信息
cat /etc/sudoers
cat /etc/group
cat /etc/passwd

#列出目前用户可执行与无法执行的指令
sudo -l

网络相关

1
2
3
4
5
6
7
8
9
#查询本机IP信息
ifconfig
ip a

#查看端口信息
netstat -anpt

#查看网卡配置
cat /etc/network/interfaces

程序相关

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#查看进程信息
ps -ef #标准格式显示
ps aux #BSD格式显示

#资源占有情况
top -c

cat /etc/inetd.conf #由inetd管理的服务列表
cat /etc/xinetd.conf #由xinetd管理的服务列表

#查看计划任务
crontab -l
ls -al /etc/cron*
cat /etc/cron.allow
cat /etc/cron.deny
cat /etc/crontab

#查看开机启动项
/etc/rc.d/init.d/

配置信息

1
2
3
4
5
6
7
8
9
10
11
iptables –L   #查看防火墙配置(注意需要root权限)
cat /etc/resolv.conf #查看dns配置文件
cat /etc/network/interfaces #查看网卡配置文件
cat /etc/apache2/apache2.conf #查看apache配置文件
cat /etc/my.conf #mysql配置

#查看suid文件
find / -perm -u=s -type f 2>/dev/null

#最近五天的文件
find / -ctime +1 -ctime -5

七、内网域渗透常用工具

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
1、WCE
WCE(Windows 凭据管理器)是安全人员广泛使用的一种安全工具,常用于列出登录会话以及添加、修改、和删除关联凭据(如LM hash、NTLM hash、明文密码和Kerberos票据)。
2、mimikatz
mimikatz主要用于从内存中获取明文密码、现金票据和密钥等。
3、Responder
Responder可以嗅探网络中的所有LLMNR包和获取各主机的信息。
4、BeEF
BeEF利用XSS通过Java Script对目标浏览器进行测试,同时可以配合MSF进行进一步渗透。
5、DSHashes
DSHashes主要从NTDSXtract中提取用户易于理解的散列值。
6、PowerSploit
PowerSploit是基于PowerShell的测试框架,主要用于信息收集、权限提升以及权限维持。
7、Nishang
Nishang也是一款基于PowerShell的测试工具,集成各类payload用于渗透测试。
8、Empire
类似于MSF,也是一款拥有丰富模块和接口的渗透测试工具。
9、ps_encoder.py
ps_encoder.py是使用base64封装的powershell命令包,目的是混淆和压缩代码。
10、smbexec
smbexec是使用Samba工具的快速PsExec类工具,它通过ipc$进行连接,将psexec.exe释放到目标主机中,铜鼓欧服务管理(SCManager)进程创建psexecsvc服务并启动服务并能直接提供目标主机的system权限。
11、the-backdoor-factory-master
the-backdoor-factory-master可以对PE、ELF、Mach-O等二进制文件注入shellcode。
12、Veil
Veil用于生成绕过常见防病毒解决方案的MSF有效载荷。
13、MSF
世界上最常用的渗透测试框架。
14、Cobalt Strike
Cobalt Strike主要用于内网渗透,并提供团队协作功能。
15、Nmap
Nmap主要用于发现主机、扫描端口、识别服务和操作系统等
16、Wireshark
Wireshark主要用于网络协议和数据包分析,可以通过网络接口对整个网络接口进行监听。
17、Putty
Putty在windows下主要作为连接SSH 以及 Telnet 的客户端。
18、sqlmap
sqlmap主要用于检测和利用SQL注入漏洞。
19、Burp Suite
Burp Suite主要用于对web应用程序进行测试,最重要的几个模块为Intruder、Proxy、Repeater,用于抓包分析、参数爆破以及重放攻击。
20、Hydra
Hydra(九头蛇)主要用于登录爆破。
21、Getif
Getif主要用于收集SNMP设备的信息。
22、Cain&Abel
Cain&Abel是windows中的一个密码恢复工具,可以通过嗅探网络,来破解加密密码、记录VoIP会话、恢复无线网络密钥、显示面膜框、发现缓存中的密码、分析路由信息、并能恢复各种密码。

更详细见https://websec.readthedocs.io/zh/latest/intranet/index.html

域渗透基础知识大全:https://decemberus.com/2023/08/02/%E5%9F%9F%E6%B8%97%E9%80%8F%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/ 重点