成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何入侵Pocket內網

安全
我已經很多年沒把Firefox當作我的主力瀏覽器了,所以其實之前我都沒有聽說過Pocket,直到我在Bugzilla看到這么篇帖子,講的就是Mozilla基金會在所有版本的Firefox中預裝了Pocket插件,并且這個插件無法卸載。盡管這引起了用戶們的強烈抗議,基金會還是固執地綁定Pocket。

最近,Pocket應用的開發人員修復了幾個泄露數據的漏洞,黑客可從服務器上獲取敏感信息。這里獻上教程,供大家學習交流。

如何入侵Pocket內網

Pocket是什么

我已經很多年沒把Firefox當作我的主力瀏覽器了,所以其實之前我都沒有聽說過Pocket,直到我在Bugzilla看到這么篇帖子,講的就是Mozilla基金會在所有版本的Firefox中預裝了Pocket插件,并且這個插件無法卸載。盡管這引起了用戶們的強烈抗議,基金會還是固執地綁定Pocket。

Pocket的功能就是讓用戶保存網頁“稍后閱讀”。Pocket可以將你要閱讀或者一時沒有讀完的網頁標記下來,接著同步到服務器端,然后你就可以在不同的設備上閱讀。作為信息安全從業者,我發現這種功能通常都會導致安全問題,所以我就打算檢查一下Pocket有沒有問題。

事實上,這些漏洞中,大部分就可以被攻擊者利用了。攻擊者想要利用這些漏洞都不需要什么復雜的工具,甚至連腳本的知識都不需要。

嘗試1:協議處理程序

用戶可以通過Pocket網站上的隊列管理功能添加URL到隊列中。由于應用的用途主要是瀏覽網上的網頁,所以這些URL理應被限制,應該只允許http和https鏈接。所以首先我嘗試在隊列中添加以下鏈接:

   file:///etc/passwd
    ssh://localhost
    telnet://localhost:25

很遺憾,經過測試,這些都沒成功

嘗試2:利用Pocket功能作為內網代理

我之前在Apache服務器的狀態頁面看到過一條Apache錯誤信息。這種錯誤信息通常是.htaccess或者Apache配置文件限制了localhost或一些信任的網段訪問server-status的時候才會出現的:

Forbidden
 
You don't have permission to access /server-status on this server.

我在我的Pocket隊列中加了一條新鏈接:http://127.0.0.1/server-status。加入后,后端服務器就會發送HTTP請求獲取內容。Apache會信任來自localhost的請求嗎?

事實證明,這一招很管用,之后我就在Pocket隊列中看到了如下信息:

Apache Server Status for 127.0.0.1
 
Server Version: Apache/2.2.29 (Unix) DAV/2
Server Built: Mar 12 2015 03:50:17
Current Time: Tuesday, 28-Jul-2015 10:07:45 CDT
Restart Time: Tuesday, 28-Jul-2015 03:20:12 CDT
Parent Server Generation: 12
Server uptime: 6 hours 47 minutes 32 seconds
Total accesses: 241913 - Total Traffic: 4.1 GB
CPU Usage: u1209.24 s110.06 cu0 cs0 - 5.4% CPU load
9.89 requests/sec - 177.5 kB/second - 17.9 kB/request
40 requests currently being processed, 14 idle workers
...

服務器狀態情況的全部輸出被同步到了我的Android上。Apache的mod_status可以顯示出大量有用的信息,包括內部來源和目標IP地址,發送的請求中的URL的參數,還有查詢參數。對于Pocket應用,請求的URL包括Pocket用戶們正在瀏覽的URL,因為這些請求是通過HTTP GET方式進行的。

要隱藏上述的這些服務器信息,我們可以關閉Apache中的ExtendedStatus。大部分Pocket的后端服務器都關閉了ExtendedStatus,但是很小一部分的服務器還是開著,所以就導致攻擊者可以獲取到這些有用的信息。

另外,通過修改server-status 的GET參數,攻擊者可以強制然Pocket重新下載頁面,這樣黑客就有可能獲取到不同服務器的信息。

    http://127.0.0.1/server-status?meaningless_parameter=1
    http://127.0.0.1/server-status?meaningless_parameter=2
    http://127.0.0.1/server-status?meaningless_parameter=3

Pocket搭建在亞馬遜EC2上

既然Pocket存在漏洞可以讓用戶獲取到Pocket后端服務器的相關信息,我們就看看利用這個漏洞我們還能獲取到哪些信息。簡單使用dig命令,我們就可以知道Pocket用的是亞馬遜的EC2服務器。亞馬遜的EC2有個實例元數據服務。這個服務只能從內部訪問,無需驗證,在所有的EC2實例上都有。我們可以嘗試使用這個服務獲取更多的信息:

    http://169.254.169.254/latest/meta-data/
    http://169.254.169.254/latest/meta-data/hostname
    http://169.254.169.254/latest/meta-data/ami-id

在Pocket隊列中添加了上面的這些鏈接后,我就能看到完整的服務器回應了。EC2的元數據包括很多對攻擊者有用的信息,包括IAM登錄信息,還有關于這個instance的細節信息,包括可用區、instance類型、網絡類型、MAC地址,塊存儲器的信息等。

攻擊者還可以干什么呢?

對localhost的HTTP服務進行端口掃描,這可以繞過EC2的防火墻規則
對端口掃描的結果進行分析,識別開啟的web應用
在Pocket內部環境下進行漏洞利用

很多大企業或者小公司都會有只能通過內部訪問的web應用,這些應用通常無需驗證,因此很容易會被攻擊者利用。

server-status中的這些內部IP地址能用來干什么呢

從亞馬遜EC2元數據上可以看出,Pocket使用的EC2服務器是在us-east-1(美東1區)區域,網絡類型是classic(EC2有兩種網絡類型可選:EC2-Classic 和VPC。VPC更好一些,有些實例類型也只有VPC上才有。VPC在創建子網絡和訪問控制列表(ACL)的時候更加靈活)。

由于Pocket用的是EC2-Classic,要訪問server-status中的內部IP地址,只需要在us-east-1區域租個2美分/小時的t1.micro實例。這樣攻擊者就可以使用RFC-1918地址訪問這些實例上運行的服務了,例如ssh和http,甚至還可以進行端口掃描。

使用這些內部IP地址訪問后端服務器有幾個優點:

可以繞過前端負載平衡器和前端的WAF防火墻之類的東西,在有前端負載平衡器的情況下,攻擊者可以通過設置X-Forwarded-For修改源IP地址,黑客可以通過這種方法避開ACL或者偽造log。

輸入重定向

像Pocket這一類的應用在處理HTTP重定向鏈接的時候很有可能會忽視某些問題,造成安全隱患。那在URL隊列中加入重定向鏈接會發生什么呢?我輸入了file:///etc/passwd,后果很嚴重:

HTTP/1.1 301 Moved Permanently
Location: file:///etc/passwd
Content-Length: 52
Date: Tue, 28 Jul 2015 18:42:58 GMT
Connection: keep-alive
 
Moved Permanently. Redirecting to file:///etc/passwd

我在Android機上刷新了Pocket應用后,隊列中就增加了file:///etc/passwd。點擊之后,/etc/passwd完整的內容就呈現在了我眼前。

應Pocket的要求,/etc/passwd內容已刪除

漏洞能夠造成什么影響可以留給讀者考慮。

有了/etc/passwd之后能干什么

在測試Pocket的時候,我用這個重定向漏洞請求了file:///proc/self/status文件,這個文件可以用來獲取正在運行的進程的更多信息。

下面就是部分進程狀態信息:

Uid:        0              0              0              0
Gid:        0              0              0              0

以root身份運行這個進程能夠造成什么后果也留給讀者考慮。

把漏洞結合起來

Pocket針對我的報告快速做出了回應,所以我沒能夠把這些漏洞結合起來。但是設想如果真的有個心懷不軌的攻擊者發現了這些漏洞,他能做些什么呢?

1. 通過301重定向獲取file:///etc/passwd文件,然后獲取EC2用戶的home目錄

2. 從用戶home目錄獲取ssh私鑰

3. 使用/server-status獲取內部IP地址

4. 租一個EC2實例,地區設置在US-EAST-1地區

5. 用獲取的到的ssh私鑰連接Pocket后端服務器的IP地址

接下來能做什么,你懂的^_^

Pocket的漏洞披露政策還是很負責的,我把所有的漏洞細節第一時間提交給了Pocket官方,而漏洞披露時間是由提交者自行決定的,不過要在漏洞提交后的21天后,好讓Pocket有時間處理漏洞。現在漏洞都已經修復。

責任編輯:藍雨淚 來源: FreeBuf
相關推薦

2018-12-26 12:57:19

2015-10-10 09:31:41

2017-06-15 10:58:52

2018-06-27 14:07:35

2011-11-21 09:57:47

2012-10-10 11:36:02

2010-09-09 19:43:29

2009-02-09 10:05:00

內網管理內網安全

2010-09-07 09:12:17

2011-03-08 09:41:49

2011-03-15 15:41:43

2020-09-26 22:08:17

內網協議滲透

2015-04-22 11:11:19

2017-06-21 11:44:04

網絡安全信息安全安全漏洞

2015-03-13 09:10:29

2010-08-26 10:36:44

2010-09-25 14:26:21

2013-12-19 10:37:17

2014-06-09 10:33:40

2012-08-30 10:44:52

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕av网站 | 日韩欧美一级精品久久 | 亚洲高清在线观看 | 九九热精品在线视频 | 久久小视频 | 国产视频精品免费 | 99久久婷婷国产综合精品首页 | 草比网站 | 91婷婷韩国欧美一区二区 | 久久亚洲一区二区三 | 亚洲综合大片69999 | 国产日韩一区二区三免费高清 | 男女久久久| 中文字幕亚洲精品 | 亚洲一区二区三区四区五区午夜 | 日韩成人一区二区 | 成人精品在线观看 | 精品久久久久香蕉网 | 成人av一区| 中文字幕视频网 | 日韩在线一区二区 | 久久91 | 亚洲天堂二区 | 欧美高清视频在线观看 | 在线黄 | 一区二区在线 | 日韩三级在线 | 中文精品视频 | 超碰在线97国产 | 久久久久国产精品 | 久久精品一 | 欧美在线观看一区 | 丝袜美腿av| 日韩欧美手机在线 | 国产999精品久久久久久 | 精品一区二区视频 | 久久国产精品72免费观看 | 99亚洲 | 日韩视频在线观看 | 羞羞视频网站免费观看 | 国产一级片在线观看视频 |