0x02 内网渗透篇

 来源如下图:(微信公众号:0x00实验室)

0x02 内网渗透篇_第1张图片

00 - 内网渗透的流程

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

01 - 白银票据与黄金票据的原理?

        金票:在 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 验证,不用验证账户和密码,所以也不担心域管密码修改

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

金票和银票的区别

  • 获取的权限不同
  • 认证流程不同
  • 加密方式不同

02 - 针对kerbores的攻击有哪些?

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

03 - 黄金票的条件要求?

  1. 域名称[AD PowerShell模块:(Get-ADDomain).DNSRoot]
  2. 域的SID 值[AD PowerShell模块:(Get-ADDomain).DomainSID.Value](就是域成员SID值去掉最后的)
  3. 目标服务器的 FQDN
  4. 可利用的服务
  5. 域的KRBTGT账户NTLM密码哈希
  6. 需要伪造的用户名

        一旦攻击者拥有管理员访问域控制器的权限,就可以使用Mimikatz来提取KRBTGT帐户密码哈希值

04 - 横向连接方式

$IPC、Psexec、WMI、Schtasks、AT、SC、WINRM

(143条消息) p66 内网安全-域横向批量at&schtasks&impacket_正经人_____的博客-CSDN博客

(143条消息) p67 内网安全-域横向 smb&wmi 明文或 hash 传递_正经人_____的博客-CSDN博客

p68 内网安全-域横向 PTH&PTK&PTT 哈希票据传递_正经人_____的博客-CSDN博客

p69 内网安全-域横向 CobaltStrike&SPN&RDP_正经人_____的博客-CSDN博客

05 - 如何获取内网中机器数量

可以使用命令:net user /domian

使用扫描器扫一下:kail - 扫描与爆破_正经人_____的博客-CSDN博客

06 - 内网环境不出网怎么办?  

  1. 通过webshell实现内网socket代理
  2. 正向链接
  3. ssh隧道
  4. 协议不同出网的方式不同,如dns对应dnscat2 tcp对应
  5. 测试是否是特定协议或端口出网

p71 内网安全-域横向网络&传输&应用层隧道技术_正经人_____的博客-CSDN博客

p70 内网安全-域横向内网漫游 Socks 代理隧道技术(NPS、FRP、CFS 三层内网漫游)_正经人_____的博客-CSDN博客

07 - kerberos协议认证

        Kerberos是一种网络身份认证的协议,协议设计目的是通过使用秘钥加密技

术为客户端/服务器应用程序提供强身份验证。该认证过程的实现不依赖于主机操作系统的认

证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据 包可以被任意的读取、修改和插入数据。在以上情况下,Kerberos作为一种可信任的第三方认证服务,通过传统的密码技术执行认证服务。

Kerberos认证流程:

  • DC,Domain Controller,域控
  • KDC,Key Distribution Center,秘钥分发中心
  • AD,Account Database,账户数据库
  • AS,Authentication Server,身份验证服务
  • TGS,Ticket Granting Server,票据授予服务
  • TGT,Ticket Granting Ticket,票据中心授予的票据先去AS身份验证服务,返回身份验 证,带着身份验证去TGS拿票据,带着拿回来的票据去服务器。

0x02 内网渗透篇_第2张图片

08 - mimikatz使用方法

mimikatz是一款强大的系统密码破解获取工具。可以破解哈希值,是一个可加载的

Meterpreter模块。

如果system的权限无法执行执行。需要先进行提权。

在meterpreter中输入run post/multi/recon/local_exploit_sugge

ster,进行提权漏洞检测

09 - 票据伪造

票据分为黄金票据和白银票据。

黄金票据是伪造TGT

伪造黄金票据必须拿到域控管理员的权限才可以。

伪造黄金票据的要求

  • 域名城
  • 域SID值
  • 域的KRBTGT账户NTLM哈希密码
  • 伪造用户名

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

拿下机器后,使用代理访问内网

windows环境:reGeorg与proxifier

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

11 - windowsLinux下操作命令

windows

  1. Regedit 查看策略表(windows+R执行命令)
  2. Msconfig 查看系统配置
  3. Taskmgr 启动任务管理器
  4. Eventvwr,msc 打开日志的命令
  5. Gpedit.msc 打开本地组策略
  6. Compmgmt.msc 计算机管理
  7. Lusrmgr.msc 打开用户与组
  8. Taskschd 打开计划任务
  9. Net user xxx /add 添加用户(cmd执行命令)
  10. Net localgroup administrators xxxx /add 把某用户放到管理员组里面
  11. Net session 查询当前会话
  12. Net start 查看当前运行的服务
  13. Net use 查看当前共享连接(Net share)
  14. Net share xxx /del 删除共享的链接
  15. 查看隐藏用户可以去,用户管理
  16. Findstr /s /I “hellow” **    # 查询包含hellow 的关键字

Linux

  • 查看帐号文件
​​​​​​​cat /etc/passwd
  • 查看历史命令记录文件和命令
 cat ~/.history

        history                      // 显示终端执行过的命令

        history 10                 // 显示最近10条终端执行过的命令

        Ctrl+r                       // 搜索已经执行过的命令

  • 查看网站日志

        先进入日志文件所在目录(`/var/log`),然后使用 `tail -f `日志文件`.log` 命令

进行查看(查看的命令有:`cat`(查看全部)、`tail`(查看最后多少行)、`head`(查

看最开始多少)、`more`,配合`grep`使用)

  • 查看cpu占用率

        top`,简化版`top -bn 1 -i -c

  • 查看ssh登陆日志

        lastlog` 会列出所有用户最近登陆的信息(引用的是`/var/log/lastlog`文件中的信

息),只看`ssh`的话就`cat /var/log/lastlog

  • 查看是否有其他ssh登陆在线

        通过`who`命令检查当前在线用户

        在`/var/log/secure`可以看到登陆的情况在`/var/log/btmp`中可以查看到登陆失败的记录(可通过`lastb`命令进行检查)在`/var/log/lastlog`中可以查看最近登陆的记录(可通过`last`命令进行检查) 

如果在`ssh`的配置文件里(一般在`/etc/ssh/sshd_config`)和`syslog`配置文件中对日志文件做过定制的话那么需要根据具体情况定位日志文件

  • 查看中间件的日志

        进入/var/log下然后进入要查看的中间件日志目录进行查看

  • 分析命令被替换

        对linux几个指令集进行md5sum定期验证,md5sum如果变了那说明指令变了,然后对指令集进行还原

12 - linux常见的提权办法

  1. uid提权 (find / -perm -u=s -type f 2>/dev/null)
  2. (sudo git help config !/bin/bash或者!'sh'完成提权)
  3. 脏牛提权
  4. 内核提权
  5. 环境劫持
  6. suid提权
  7. cve-2021-4034
  8. docker提权

13 - 权限维持

Windows机器:

  1. 替换系统文件类(shift 后门,放大镜后门)
  2. 修改注册表类 - 自启动项、屏幕保护程序注册表、用户登陆初始化、登录脚本、映像劫持、影子账户、AppCertDlls 注册表项、AppInit_DLLs 注册表项、文件关联、用户登陆初始化、xx.Netsh Helper DLL
  3. 文件类 - 自启动文件夹、office Word StartUp 劫持
  4. 计划任务 - schtasks 、WMI、bitsadmin

Linux:

  1. 预加载型动态链接库后门
  2. strace 后门
  3. SSH 后门
  4. SUID 后门
  5. inetd 服务后门
  6. 协议后门
  7. vim 后门
  8. PAM 后门
  9. 进程注入
  10. Rootkit
  11. 端口复用

14 - 拿到shell后如何接管域控

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

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

frp、ew、ssh、Neo-reGeorg、netsh、Lcx

===========

网络层:Ipv6情况、icmp情况、Gre隧道0

传输层:Tcp 隧道、udp 隧道 常规端口转发

应用层:ssh隧道、http隧道、https隧道、dns隧道

16 - 内网横向扩展具体方法?

密码喷洒、IPC$、WMI、mimikatz、PTH、MS14-068、web漏洞、系统漏洞

17 - KDC服务默认开放哪些端口

88 kerberos krb5、464kerberos kpasswd(v5)

18 - 桌面有管理员会话,想要做会话劫持怎么做

提权到system权限,然后去通过工具,就能够劫持任何处于已登录用户的会话,而无需获得该用户的登录凭证。

终端服务会话可以是连接状态也可以是未连接状态

19 - 域内攻击方法有了解过吗

MS14-068、Roasting攻击离线爆破密码、非约束性委派、基于资源的约束委派、ntlm

relay、CVE-2021-42287/CVE-2021-42278

20 - 抓取密码的话会怎么抓

procdump+mimikatz 转储然后用mimikatz离线读取

Sam获取然后离线读取

21 - 什么版本之后抓不到密码

windows server 2012之后,或者打了补丁

抓不到的话怎么办

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

22 - psexecwmic的区别 

psexec会记录大量日志,wmic不会记录日志并且更为隐蔽

23 - 横向渗透命令执行手段

psexec,wmic,smbexec,winrm,net use共享+计划任务+type命令

24 - 内网的白名单 如何突破?

利用已在白名单中的软件执行目标代码,甚至发动无文件攻击

白名单污染

暴力破解白名单防护软件

25 - 内网135端口具体有哪些利用方式?

爆破用户、wmic执行命令进行横向

26 - 域控定位

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`来

进行域控的定位

27 - 域管定位

net group "Domain Admins" /domain            //   查询域管理员

此外还可以通过一些工具定位:PSloggedon.exe、PVefindaduser.exe、

powerView.ps1

28 - mimikatz是从哪个进程抓hash?

lsass.exe

29 - win2012 无法破解hash 怎么上桌面

hash pth传递

30 - 正向和反向shell

正向Shell:

攻击者连接被攻击者机器,可用于攻击者处于内网,被攻击者处于公网的情况

反向Shell:

被攻击者主动连接攻击者,可用于攻击者处于外网,被攻击者处于内网的情况

31 - 入侵Linux服务器后需要清除哪些日志?

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

32 - Windows提权的若干办法?

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

33 - 你是如何做内网渗透的?

第一种方法:在具备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 本地代理地址与端口进行横向内网渗透。

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

  1. 通过 nmap、nessus 扫描整个内网 ip 主机漏洞,如如 ms08-067、ms17-010、 ms12-020、ms15-035、ms19-0708、永恒之蓝2代、cve-2017-7494(samba)、cve- 2014-6271(破壳)、php cgi 等相关漏洞。
  2. 通过 nmap 扫内网 80、8080 端口,看内网是否存在大量 Web 站点,如果存在进行手 工或工具对 Web 站点进行漏洞检测,如注入、命令执行、反序列化、文件上传、弱口令等相关漏洞。
  3. 通过 ntscan、Bruter、hydra 工具对内网弱口令探测,如果发现一个服务器弱口令, 可以通过这个弱口令跑整个内网,一般密码一样。
  4. 适当的对内网主机进行 ARP 抓取密码。
  5. 如果内网有 AD 域的情况下,可以通过 MS14-068 漏洞、黄金票据、白银票据进行域控攻击,拿下域控就等于基本拿下整个内网。

35 - windows cmd如何下载文件

  1. certutil.exe
  2. powershell
  3. bitsadmin
  4. vbs
  5. ftp

36 - 隐藏痕迹

  1. 跳板
  2. 代理服务器
  3. Tor
  4. 日志
  5. 清除历史记录
  6. 粉碎文件

 37 - MySQL如何拿webshell

0x02 内网渗透篇_第3张图片

38 - HashNTML hash区别?

NTLM Hash(NT LAN Manager)是支持Net NTLM认证协议及本地认证过程中的一个重要

参数。其长 度为32位,由数字与字母组成。它的前身是LM Hash,目前基本淘汰,两者相差

不大,只是使用的加密 算法不同。

ntml hash生成方式 将明文口令转换成十六进制的格式 转换成Unicode格式,即在每个字

节之后添加0x00对Unicode字符串作MD4加密,生成32位十六进制数字串

39 - 内网中的信息收集技术

# 主机信息收集

  1. 网络配置 ipconfig /all
  2. 操作系统 systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本"
  3. 软件信息 systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
  4. 服务信息 wmic /namespace:\root\securitycenter2 path antivirusproduct GET displayName,productState, pathToSignedProductExe
  5. 用户列表 net user
  6. 本地管理员信息 net localgroup administrators
  7. 端口信息 netstat –ano
  8. 补丁信息 wmic qfe get Caption,Description,HotFixID,InstalledOn
  9. 查防火墙 netsh firewall show config

# 2域内信息收集

是否有域 使用ipconfig /all命令可以查看网关IP地址、DNS的IP地址以及判断当前主机

是否在域内:通过反 向解析查询命令nslookup来解析域名的IP地址,使用解析出来的IP地

址进行对比,判断域控制器和 DNS服务器是否在同一台服务器上

登录域信息 net config workstation

域内信息收集

ICMP探测内网 for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.174.%I

| findstr "TTL="

ARP探测内网

端口信息收集

查询域信息 net view /domain

查询域主机 net view /domain:XXX

查询域用户 net group /domain

查找域控 Nslookup -type=SRV _ldap._tcp net time /domain net group

"Domain Controllers" /domain

查域用户信息 net user /domain

查询域管理员 net group "Domain Admins" /domain

查询域sid信息 whoami /all

你可能感兴趣的:(小迪安全,网安知识总结,java,安全,网络)