“网安+护网”终极300多问题面试笔记-1共3-内网&域相关

以下为已总结"网络安全"及"护网"面试,均在:(https://www.haotaoyun.com/category/soc/)



内网 & 域相关

你是如何做内网渗透的

bash 复制代码
 第一种方法:在具备 Webshell 的情况下,通过 Webshell 直接上传 CS 木马到对方服务器运行,在 CS 软件上面开启 SocksProxy 代理,把 kail 直接通过 cs socksProxy 代理攻击内网进行横向渗透。第二种方法:通过 reGeorg+Proxifie 进行内网渗透,把 tunnel.nosocket.php 脚本通过 Webshell 上传到 Web 站点目录进行访问,在本地自己电脑上面执行 reGeorgSocksProxy.py -p 9999 --u http://IP 地址 /tunnel.nosocket.php,最后配置 Proxifier 本地代理地址与端口进行横向内网渗透。

内网渗透的流程

bash 复制代码
 拿到跳板后,先探测一波内网存活主机
 用 net user /domian 命令查看跳板机是否在域内
 探测存活主机、提权、提取 hash、进行横向移动
 定位 dc 位置,查看是否有能直接提权域管的漏洞,拿到 dc 控制权后进行提权
 然后制作黄金票据做好维权,清理一路过来的日志擦擦脚印

内网信息收集

内网主机的基本信息(版本,补丁等)

systeminfo 详细信息

net start 启动服务

tasklist 进程列表

网络信息

ipconfig /all 判断存在域 -dns

net view /domain 判断存在域

net time /domain 判断主域,

通过查看时间返回计算机名 称信息包含域信息

netstat -ano 当前网络端口开放

nslookup 域名 追踪来源地址用户信息(域用户信息,组信 息等)whoami /all 用户权限

net user /domain 获取域用户信息

net group /domain 获取域用户组信息

凭据信息:收集各种密文,明文,口令等,为后续横向渗透 做好测试准备

内网横向渗透一般攻击技巧

bash 复制代码
 先对跳板机进行 nmap,nessus 扫描,扫出来相关网段下存活的主机和漏洞。利用 Mimikatz 或 PwDump7 获取域内单机密码与 Hash。利用 Windows 远程连接命令进行横向渗透,拿到目标机器的用户明文密码或者 NTLM Hash 后,可以用 Windows 自带的方法对远程目标系统进行命令行下的连接操作,连接远程主机并执行相关命令。最常见的就是建立 IPC 连接,通过跳板机连接目标机,进行上传、下载等操作。还有 c$ 盘共享连接,不过只能读取,通常不用。IPC 连接后可以上传木马等文件,然后通过定时命令创建计划任务,如 window 的 at 命令。哈希传递攻击(PTH),该方法通过找到与账户相关的密码散列值(NTLM Hash)来进行攻击。由于在 Windows 系统中,通常会使用 NTLM Hash 对访问资源的用户进行身份认证,所以该攻击可以在不需要明文密码的情况下,利用 LM HASH 和 NTLM HASH 直接远程登录目标主机或反弹 shell。使用 PsExec 直接连接攻击。利用服务进行攻击。

横向渗透命令执行手段

bash 复制代码
psexec,wmic,smbexec,winrm,net use 共享 + 计划任务 +type 命令
psexec 和 wmic 的区别:psexec 会记录大量日志,wmic 不会记录日志并且更为隐蔽

kerbores

kerbores 简介

bash 复制代码
Kerberos 是一种身份认证协议,被广泛运用在大数据生态中,甚至可以说是大数据身份认证的事实标准。

Kerberos 认证的大概流程

bash 复制代码
KDC(Key Distribution Center)密钥分发中心。在 KDC 中又分为两个部分:Authentication Service(AS, 身份验证服务) 和 Ticket Granting Service(TGS, 票据授权服务)
AD 会维护一个 Account Database(账户数据库). 它存储了域中所有用户的密码 Hash 和白名单。只有账户密码都在白名单中的 Client 才能申请到 TGT。当 Client 想要访问 Server 上的某个服务时, 需要先向 AS 证明自己的身份, 验证通过后 AS 会发放的一个 TGT, 随后 Client 再次向 TGS 证明自己的身份, 验证通过后 TGS 会发放一个 ST, 最后 Client 向 Server 发起认证请求, 这个过程分为三块:Client 与 AS 的交互,
Client 与 TGS 的交互,
Client 与 Server 的交互。

针对 kerbores 的攻击有哪些

bash 复制代码
 用户名爆破
密码喷洒和密码爆破
Kerberoasting
ASRepRoasting
黄金票据和白银票据
MS14-068
非约束委派、约束委派、基于资源的约束委派
票据传递(ptt/ptk/ptc)mimikatz 加密降级攻击 (万能钥匙)
使用恶意的 kerberos 证书做权限维持

黄金票据

原理

bash 复制代码
 在 Kerberos 认证中,Client(客户机) 通过 AS(身份认证服务) 认证后,AS 会给 Client 一个 Logon Session Key 和 TGT, 而 Logon Session Key 并不会保存在 KDC 中,krbtgt 的 NTLM Hash 又是固定的, 所以只要得到 krbtgt 的 NTLM Hash,就可以伪造 TGT 和 Logon Session Key 来进入下一步 Client 与 TGS 的交互。而已有了金票后, 就跳过 AS 验证, 不用验证账户和密码, 所以也不担心域管密码修改。黄金票据常用于权限维持。当我们获得域控的控制权限后,有可能获取域内所有用户的 hash,和 krbtgt 的 hash。这时,由于一些原因导致我们失去对目标的控制权,但是我们还留有一个普通用户的权限,并且 krbtgt 的密码没有更改,此时我们可以利用 krbtgt 用户的 ntlm hash 制作黄金票据伪造 tgt,重新获取域控的管理权限。

所需条件

bash 复制代码
 域名称 [AD PowerShell 模块:(Get-ADDomain).DNSRoot]
域的 SID 值 [AD PowerShell 模块:(Get-ADDomain).DomainSID.Value](就是域成员 SID 值去掉最后的)目标服务器的 FQDN
可利用的服务
域的 KRBTGT 账户 NTLM 密码哈希
需要伪造的用户名
一旦攻击者拥有管理员访问域控制器的权限,就可以使用 Mimikatz 来提取 KRBTGT 帐户密码哈希值

白银票据

原理

bash 复制代码
 如果说黄金票据是伪造的 TGT, 那么白银票据就是伪造的 ST。在 Kerberos 认证的第三部,Client 带着 ST 和 Authenticator3 向 Server 上的某个服务进行请求,Server 接收到 Client 的请求之后, 通过自己的 Master Key 解密 ST, 从而获得 Session Key。通过 Session Key 解密 Authenticator3, 进而验证对方的身份, 验证成功就让 Client 访问 server 上的指定服务了。所以我们只需要知道 Server 用户的 Hash 就可以伪造出一个 ST, 且不会经过 KDC, 但是伪造的门票只对部分服务起作用。

所需条件

bash 复制代码
 域名
域 sid
目标服务器名
可利用的服务
服务账号的 NTML HASH 
需要伪造的用户名

制作过程,主要使用工具还是 mimikatz 和 psexec

bash 复制代码
 第一步:管理员权限运行
mimikatzprivilege::debug #提升权限
sekurlsa::logonpasswords #获取 service 账户 hash 和 sid(同一个域下得 sid 一样)
 
第二步:清空本地票据缓存
kerberos::purge #清理本地票据缓存
kerberos::list #查看本地保存的票据
 
第三步:伪造白银票据并导入
 
第四步:访问域控的共享目录
dir \\win08\c$
远程登陆,执行命令
PsExec.exe \\win08 cmd.exe
whoami   #查看权限

黄金票据和白银票据的区别

票据相关:https://www.freebuf.com/articles/others-articles/329728.html

bash 复制代码
 获取的权限不同
金票:伪造的 TGT,可以获取任意 Kerberos 的访问权限
银票:伪造的 ST,只能访问指定的服务,如 CIFS
 
认证流程不同
金票:同 KDC 交互,但不同 AS 交互
银票:不同 KDC 交互,直接访问 Server
 
加密方式不同
金票:由 krbtgt NTLM Hash 加密
银票:由服务账号 NTLM Hash 加密

passwd 和 shadow 的区别

bash 复制代码
/etc/passwd 存储一般的用户信息,任何人都可以访问;/etc/shadow 存储用户的密码信息,只有 root 用户可以访问

如何获取内网中机器数量

bash 复制代码
 可以使用命令 net user /domian
使用扫描器扫一下

拿下边界机器如何内网渗透?

bash 复制代码
 拿下机器后,使用代理访问内网 
windows 环境:reGeorg 与 proxifier 
Linux 环境:reGeorg 与 proxychains,使用 nmap 等工具进行扫描,发现 web 服务的主机和其它信息。有时这些边界机器上会记录一些内网服务器上的一些信息(用户 ssh known_hosts  hosts 防火墙设置 记录、内网之间好多 waf 规则基本都是空,大多数 waf 防外部威胁,这时候可以拿到探测的内部一些开放的端口判断进行渗透,通常用户这里基本是统一命名的,拿到的各种记录 会暴露出部分内网通讯的 ip.

内网端口转发失败的原因

bash 复制代码
 防火墙的策略 此端口不允许出网
端口转发工具特征比较明显
端口无法提供服务
端口转发的 ip  肉鸡(攻击者已拿下的机子)无法访问

常见端口转发工具

Frp nc(netcat) lcx

内网环境不出网怎么办

bash 复制代码
 通过 webshell 实现内网 socket 代理
正向链接
ssh 隧道
协议不同出网的方式不同,如 dns 对应 dnscat2
测试是否是特定协议或端口出网

Windows 提权

bash 复制代码
A. 系统漏洞提权
1- 通过 Webshell 命令行执行 systeminfo 命令查看系统是否打了提权补丁,未打补丁的统可通过 github 下载系统提权漏洞 exp 进行提权,KB2592799、KB3000061、KB2592799 等。2- 通过 Webshell 找网站读写执行目录,把 cs 马或提权 exp 上传到对方服务器(如果 cmd 无法执行命令可单独上传 cmd.exe 到对方服务器,菜刀终端设置为 setp c:\XXX\cmd.exe)B.sc 命令提权(administrator-->system)例如:sc Create syscmd binPath="cmd /K start"type= own type= interactsc start systcmd,就得到了一个 system 权限的 cmd 环境
 
C. 不带引号的服务路径
当服务路径带空格的时候,路径空格目录前面一断就会当作文件执行,如 C:\ProgramFiles\MSBuild 这个目录,攻击者只要在 c 盘创建名为 Program.exe 的木马,最后只要系统重启就会执行 C:\Program.exe 文件。D. 不安全的服务权限提升
即使正确引用了服务路径,也可能存在其他漏洞。由于管理配置错误,用户可能对服务拥有过多的权限,例如,我们用木马替换服务调用的默认文件。E. 绕过系统 UAC 提升
可通过 msf 里面的 getsystem 绕过 UAC, 也可以通过 kail 模块的
exploit/windows/local/bypassuac_injection、exploit/windows/local/bypassuac_vbs、exploit/windows/local/ask 绕过 UAC

linux 提权

bash 复制代码
msf 和 cs 直接提权
内核漏洞提权,最出名的有脏牛漏洞(Dirty Cow),查看内核版本:uname -a。Linux 环境变量提权,可以通过写入环境变量的靠前路径一个同名恶意文件从而导致环境变量劫持。定时任务提权,通过配置 crontab 可以让系统周期性地执行某些命令或脚本,由于 cron 通常以 root 特权运行,如果可以修改其调度地任何脚本或二进制文件,便可以使用 root 权限执行任意代码。suid 提权,如果某个设置了 SUID 权限的程序运行后创建了 shell,那么 shell 进程的 EUID 也会是这个程序文件属主的 UID,如果属主为 root,便是一个 root shell。root shell 中运行的程序的 EUID 也都是 0,具备超级权限,于是便实现了提权。passwd/shadow 密码提权,可写,或者明文,或者可爆破。NFS 提权
docker 提权。

Windows 和 linux 权限维持

bash 复制代码
Windows 机器:1. 替换系统文件类 (shift 后门, 放大镜后门)
2. 修改注册表类
自启动项、屏幕保护程序注册表、用户登陆初始化、登录脚本、映像劫持、影
子账户、AppCertDlls 注册表项、AppInit_DLLs 注册表项、文件关联、用户
登陆初始化、xx.Netsh Helper DLL
3. 文件类
自启动文件夹、office Word StartUp 劫持
4. 计划任务
schtasks、WMI、bitsadmin
 
Linux:
##########
文件前面加. 进行隐藏。文件时间伪造,文件属性伪造。添加高权限用户。拷贝文件并赋予 suid 权限。/etc/crontab 添加计划任务
##########
1. 预加载型动态链接库后门
2.strace 后门
3.SSH 后门
4.SUID 后门
5.inetd 服务后门
6. 协议后门
7.vim 后门
8.PAM 后门
9. 进程注入
10.Rootkit
11. 端口复用

域控

bash 复制代码
 概念:可以对域内的机器进行控制,拥有较高的权限。域控是域控制器的简称,域控制器是指在 " 域 " 模式下,至少有一台服务器负责每一台联入网络的电脑和用户的验证工作。查找方法:去寻找 dns 域名服务器,一般域控就是 dns 域名服务器。命令:ipc onfig -all,还有 net time

拿到 shell 后如何接管域控

bash 复制代码
 如果拿到的就是域内用户,定位一下域控,提取本机 `hash` 看域管是否登陆过本机,是否有域用户的进程之类的注入域用户进程窃取下权限,然后使用一些域内漏洞来提权到域管从而接管域控,然后通过 `dcsync` 权限维持或者 `adminsdhound` 权限维持,也可以修改机器账号的 `useraccount` 位 8192 权限维持

内网渗透搭建隧道常见的攻击?

bash 复制代码
frp、ew、ssh、Neo-reGeorg、netsh、Lcx
 
===========
网络层:Ipv6 情况、icmp 情况、Gre 隧道 0 
传输层:Tcp 隧道、udp 隧道 常规端口转发
应用层:ssh 隧道、http 隧道、https 隧道、dns 隧道

KDC 服务默认开放哪些端口

bash 复制代码
88 和 464
88 kerberos krb5、464 kerberos kpasswd(v5)

抓取密码的话会怎么抓

bash 复制代码
procdump+mimikatz 转储然后用 mimikatz 离线读取
Sam 获取然后离线读取

mimikatz

使用方法

bash 复制代码
mimikatz 是一款强大的系统密码破解获取工具。可以破解哈希值,是一个可加载的 Meterpreter 模块。如果 system 的权限无法执行执行。需要先进行提权。在 meterpreter 中输入 run post/multi/recon/local_exploit_suggester,进行提权漏洞检测。

修改注册表 + 强制锁屏 + 等待目标系统管理员重新登录 = 截取明文密码

Win10 抓取明文,用 mimikatz 的 exe 版本。

Win2012 R2 等服务器版本抓取明文,用 mimikatz 的 powershell 版本。(网上有代码)

powershell 适用范围有限, 只能适用于 win7,2008r2 之后的系统。

实战时,由于必须在注册表登陆后才有明文,我们可以在 shell 中执行命令配置注册表之后,尝试利用锁屏脚本 (锁屏之前,一定要查看管理员是否在线),让管理员重新登录。

利用的是 lsass.exe 进程

windows server 2012 之后,或者打了补丁,抓不到的话怎么办

翻阅文件查找运维等等是否记录密码。或者 hash 传递、或者获取浏览器的账号密码

内网的白名单 如何突破

bash 复制代码
 利用已在白名单中的软件执行目标代码,甚至发动无文件攻击
白名单污染
暴力破解白名单防护软件

内网 135 端口有哪些利用方式

bash 复制代码
 爆破用户、wmic 执行命令进行横向

域控定位

bash 复制代码
cmd 定位:net group "Domain controllers" /Domain // 查询域控
net time /domain// 方式来定位域控,显示域控时间
DNS 解析记录定位:nslookup -type=all _ldap._tcp.dc._msdcs.tubai.com`  // 若当前主机 dns 为域内 dns,则可以通过解析记录定位
端口探测定位:扫描内网中同时开放 `389`、`636` 与 `53` 的机器,`389` 默认是 `LDAP` 协议端口,`636` 端口是 `LDAPS`,`53` 端口默认是 DNS 端口,主要用于域名解析,通过 DNS 服务器可以实现域名与 ip 地址之间转换,他们都是域控机器开放的端口
SPN 扫描定位:由于 `SPN` 本身就是正常的 `kerberos` 请求,所以扫描隐蔽,它不同于 `TCP` 与 `UDP` 常规端口扫描。大部分 windows 已经自带 `setspn.exe`,且此操作无需管理权限
命令:setspn -T tubai.com -Q /
扫描结果中根据:`CN=AD-SERVER,OU=Domain Controllers,DC=tubai,DC=com` 来进行域控的定位

域管定位

bash 复制代码
net group "Domain Admins" /domain // 查询域管理员
 
此外还可以通过一些工具定位:PSloggedon.exe、PVefindaduser.exe、powerView.ps1

域渗透思路

通过域成员主机,定位出域控制器 IP 以 及域管理员账号,利用域成员主机作为 跳板,扩大渗透范围。利用域管理员可以登陆域中任何成员主机的特性,定位出域管理员登陆过的主机 IP,设法从该域成员主机内存中 dump 出域管理员密码,进而拿下域控制器。

正向 shell 和反向 shell

bash 复制代码
 正向 Shell:攻击者连接被攻击者机器,可用于攻击者处于内网,被攻击者处于公网的情况。反向 Shell:被攻击者主动连接攻击者,可用于攻击者处于外网,被攻击者处于内网的情况。

隐藏痕迹方法

bash 复制代码
 跳板
代理服务器
Tor
日志
清除历史记录
粉碎文件

入侵 Linux 清除哪些日志

bash 复制代码
web 日志,如 apache 的 access.log,error.log。直接将日志清除过于明显, 一般使用 sed 进行定向清除 
e.g. sed -i -e'/192.169.1.1/d'history 命令的清除,也是对~/.bash_history 进行定向清除 
wtmp 日志的清除,/var/log/wtmp 
登录日志清除 /var/log/secure

阿里云学生领一年服务器方法

相关推荐
吃着火锅x唱着歌2 小时前
LeetCode 678.有效的括号字符串
算法·leetcode·职场和发展
夜瞬2 小时前
NLP学习笔记04:情感分析——从词典方法到 BERT
笔记·学习·自然语言处理
介一安全2 小时前
【Web安全】PHP内置Web服务器SSRF漏洞:从原理到实战利用全解析
web安全·网络安全·php·安全性测试
夜瞬2 小时前
NLP学习笔记04:情感分析实践练习实现说明
笔记·学习·自然语言处理
lhb07092 小时前
openssl预编译动态库dll下载(OpenSSL 1.1.1w最新版 OpenSSL 3.5.6 LTS)
笔记
風清掦2 小时前
【江科大STM32学习笔记-10】I2C通信协议 - 10.2 硬件 I2C 读写MPU6050
笔记·stm32·单片机·嵌入式硬件·学习
练习前端两年半3 小时前
Vue3 KeepAlive 深度揭秘:组件缓存的魔法是如何实现的?
前端·vue.js·面试
Engineer邓祥浩3 小时前
JVM学习笔记(10) 第三部分 虚拟机执行子系统 第9章 类加载及执行子系统的案例与实战
jvm·笔记·学习
Raink老师3 小时前
【AI面试临阵磨枪】OpenClaw 与 LangChain、AutoGPT、MetaGPT 的本质区别是什么?
人工智能·面试·langchain·ai 面试·ai 应用开发面试