內含EXP | 華碩路由器曝遠程代碼執行漏洞!
大家好,我是小編
今天聊一聊華碩路由器漏洞
背景
AsusWRT是華碩中端和高端路由器使用的操作系統,它基於Linux系統,卻具有平滑的Web UI,適合在資源受限的路由器上運行。
然而,由於一些編碼錯誤,LAN中未經認證的攻擊者有可能以root許可權在路由器上執行遠程代碼。
由於漏洞的及時披露,目前問題已經得到解決。
技術細節
1
漏洞:HTTP伺服器身份驗證繞過
漏洞編號:CVE-2018-5999
攻擊向量:遠程
限制:無(容易被未經認證的攻擊者利用)
受影響的版本: v3.0.0.4.380.7743,可能會影響v3.0.0.4.384.10007之前的所有版本
AsusWRT HTTP伺服器在handle_request()上存在缺陷,允許未經身份驗證的用戶對某些操作執行POST請求。
在AsusWRT_source/router/httpd/httpd.c中:
handle_request(void)
{
...
handler->auth(auth_userid, auth_passwd, auth_realm);
auth_result = auth_check(auth_realm, authorization, url, file, cookies, fromapp);
if (auth_result != 0) <--- auth fails
{
if(strcasecmp(method, "post") == 0){
if (handler->input) {
handler->input(file, conn_fp, cl, boundary); <--- but POST request is still processed
}
send_login_page(fromapp, auth_result, NULL, NULL, 0);
}
//if(!fromapp) http_logout(login_ip_tmp, cookies);
return;
}
...
}
這可以與其他漏洞結合起來實現遠程代碼執行。
2
漏洞:未經授權的配置更改(NVRAM值設置)
漏洞編號:CVE-2018-6000
攻擊向量:遠程
限制:無(容易被未經認證的攻擊者利用)
受影響的版本:v3.0.0.4.380.7743,可能會影響v3.0.0.4.384.10007之前的所有版本
通過濫用漏洞CVE-2018-5999並將其發布到vpnupload.cgi,我們可以在HTTP伺服器代碼中調用do_vpnupload_post()。伺服器代碼中有一個漏洞,允許攻擊者直接設置NVRAM配置。
在AsusWRT_source/router/httpd/web.c中:
do_vpnupload_post(char *url, FILE *stream, int len, char *boundary)
{
...
if (!strncasecmp(post_buf, "Content-Disposition:", 20)) {
if(strstr(post_buf, "name="file""))
break;
else if(strstr(post_buf, "name="")) {
offset = strlen(post_buf);
fgets(post_buf+offset, MIN(len + 1, sizeof(post_buf)-offset), stream);
len -= strlen(post_buf) - offset;
offset = strlen(post_buf);
fgets(post_buf+offset, MIN(len + 1, sizeof(post_buf)-offset), stream);
len -= strlen(post_buf) - offset;
p = post_buf;
name = strstr(p, """) + 1;
p = strstr(name, """);
strcpy(p++, "0");
value = strstr(p, "rnrn") + 4;
p = strstr(value, "r");
strcpy(p, "0");
//printf("%s=%sn", name, value);
nvram_set(name, value);
}
}
...
}
這些NVRAM值包含非常重要的配置變數,例如管理員密碼,它可以讓通過身份驗證或未經身份驗證的攻擊者以這種方式進行設置。
一旦完成,代碼執行就很容易實現。一種方法是使用新密碼登錄Web界面,啟用SSH,重啟路由器並通過SSH登錄。
更好的選擇是濫用infosvr,這是一個在埠9999上運行的UDP守護進程。守護進程有一個特殊的模式,以root許可權執行數據包中接收到的一個命令。這個特殊的模式只有在ateCommand_flag被設置為1的情況下才能啟用,一般只發生在工廠測試或質量檢測中。
但是,我們可以使用上述的VPN配置上傳技術,將ateCommand_flag設置為1,然後發送PKT_SYSCMD到infosvr。守護進程將從數據包中讀取一個命令並以root許可權執行它,實現我們的命令執行而無需更改任何密碼。
(注意:infosvr用於在未設置ateCommand_flag的情況下,執行未經身份驗證的命令,進而發現CVE-2014-9583漏洞;2015年初華碩已修復此問題)。
數據包結構(來自AsusWRT_source/router/shared/iboxcom.h):
- Header
typedef struct iboxPKTEx
{
BYTE ServiceID;
BYTE PacketType;
WORD OpCode;
DWORD Info; // Or Transaction ID
BYTE MacAddress[6];
BYTE Password[32]; //NULL terminated string, string length:1~31, cannot be NULL string
} ibox_comm_pkt_hdr_ex;
- Body
typedef struct iboxPKTCmd
{
WORD len;
BYTE cmd[420]; <--- command goes here
} PKT_SYSCMD; // total 422 bytes
利用此漏洞的Metasploit模塊已經發布。
修正
儘快把路由器升級到AsusWRT v3.0.0.4.384.10007或更高版本。
微信公眾號後台回復關鍵詞:EXP,有驚喜哦~
更多精彩
手把手教你使用PowerShell繞過AppLocker一個幹掉所有「暴雪遊戲」的漏洞,暴雪玩家小心了!mitm6 - 通過IPv6攻破IPv4網路隱私防不勝防-讓你一手JavaScript又何妨 ,僅用 CSS實現網頁追蹤Purple Rain攻擊--躺著也能破解哈希?*IDEA值得分享 | 轉載註明出處
http://weixin.qq.com/r/00jcxCrEInddrW6n9x3B (二維碼自動識別)
推薦閱讀:
※為什麼華碩1080TI O11G在閑魚上那麼便宜?
※鍵了加了,燈了加了,為何華碩ROG大G二代這次竟然沒加價
※這個電腦靠譜嗎?華碩恩榮專賣店靠譜嗎?
※i7-8550U與MX150搭配,誰最合適?