snmp弱口令引起的資訊洩漏
0x00 snmp協議簡介
snmp協議即簡單網路管理協議(SNMP,Simple Network Management Protocol)。目前一共有3個版本:V1,V2c,V3。V3是最新的版本,在安全的設計上有了很大改進。不過目前廣泛應用的還是存在較多安全問題的V1和V2c版本,本文討論的內容也是基於這兩個版本。
瞭解更多snmp協議內容可以參考維基百科
顧名思義,snmp是用來進行網路管理的。cacti和mrtg等監控工具都是基於snmp協議。snmp協議工作的原理簡單點來說就是管理主機向被管理的主機或裝置傳送一個請求,這個請求包含一個community和一個oid。oid就是一個代號,代表管理主機這個請求想要的資訊。比如cpu的使用率的oid可能是112,記憶體的使用率的oid可能是113.這個oid是約定好的。被管理的主機收到這個請求後,先看請求的community是否和自己儲存的一致,如果一致,則把112代表的cpu使用率,或者113代表的記憶體使用率返回給管理主機。如果不一致,就不會返回任何資訊。所以community相當與一個認證的口令。需要提一句的是V1和V2c版本的snmp協議都是明文傳輸資料的,所以可以透過抓包嗅探等手段獲取認證需要的community。
管理主機透過snmp協議除了可以獲取被管理主機的資訊,還可以修改被管理主機的一些配置資訊(通常是路由器等裝置)。
透過上面提到的snmp的應用可以總結出snmp弱口令或者口令洩漏引起的安全問題:一是資訊洩漏,二是裝置的配置可能被修改從而被他人控制。本文討論第一種情況。
0x01 通用的資訊洩漏
看一下烏雲的幾個案例,熱熱身:
既然大家都說snmp引起資訊洩漏,導致伺服器可能被入侵。那我們就看看snmp到底可以洩漏那些資訊吧。下面是我總結的一些洩漏敏感資訊的節點oid(使用snmpwalk指令來獲取資訊)。歡迎補充指正。
系統資訊 1.3.6.1.2.1.1
樣例:
SNMPv2-MIB::sysDescr.0 = STRING: Linux xxoo.zwt.qihoo.net 2.6.18-164.el5xen #1 SMP Thu Sep 3 04:03:03 EDT 2009 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1876050197) 217 days, 3:15:01.97
SNMPv2-MIB::sysContact.0 = STRING: Root <[email protected]> (configure /etc/snmp/snmp.local.conf)
SNMPv2-MIB::sysName.0 = STRING: xxoo.zwt.qihoo.net
SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf)
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00
顯然,這個sysDescr是系統的描述資訊,這裡我們看到這臺機器的域名很可能是xxoo.zwt.qihoo.net,核心的版本是2.6.18-164.el5xen,系統是64位的。sysUpTimeInstance就是系統執行時間了。sysContact這裡顯示的是管理員的聯絡方式,這個例子中管理員沒有配置。
系統程式列表 1.3.6.1.2.1.25.4.2.1.2
樣例:
HOST-RESOURCES-MIB::hrSWRunName.11855 = STRING: "httpd"
HOST-RESOURCES-MIB::hrSWRunName.12579 = STRING: "vsftpd"
HOST-RESOURCES-MIB::hrSWRunName.14653 = STRING: "xinetd"
HOST-RESOURCES-MIB::hrSWRunName.32561 = STRING: "sshd"
這裡省略N多。從程式列表我們可以知道伺服器上開了那些服務,有哪些有意思的程式在跑。比如這個就可以看出來,它是開了ssh的。
系統安裝軟體列表 1.3.6.1.2.1.25.6.3.1.2
樣例:
HOST-RESOURCES-MIB::hrSWInstalledName.595 = STRING: "xorg-x11-xfs-1.0.2-4"
HOST-RESOURCES-MIB::hrSWInstalledName.598 = STRING: "openssh-server-4.3p2-36.el5"
HOST-RESOURCES-MIB::hrSWInstalledName.140 = STRING: "NetworkManager-glib-0.7.0-9.el5"
HOST-RESOURCES-MIB::hrSWInstalledName.141 = STRING: "gnome-mount-0.5-3.el5"
HOST-RESOURCES-MIB::hrSWInstalledName.143 = STRING: "MySQL-devel-community-5.0.81-0.rhel5"
同樣省略N多。有耐心慢慢分析的話是可以獲取很多資訊的。比如這裡我看可以到它的ssh是4.3p2版本的,這個版本貌似是存在缺陷的。還有裝了mysql,是5.0的
網口的數量,型別,實體地址和流量資訊等 1.3.6.1.2.1.2
樣例:
IF-MIB::ifNumber.0 = INTEGER: 3
IF-MIB::ifIndex.1 = INTEGER: 1
IF-MIB::ifIndex.2 = INTEGER: 2
IF-MIB::ifIndex.3 = INTEGER: 3
IF-MIB::ifDescr.1 = STRING: lo
IF-MIB::ifDescr.2 = STRING: eth0
IF-MIB::ifDescr.3 = STRING: sit0
IF-MIB::ifType.1 = INTEGER: softwareLoopback(24)
IF-MIB::ifType.2 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.3 = INTEGER: tunnel(131)
IF-MIB::ifPhysAddress.1 = STRING:
IF-MIB::ifPhysAddress.2 = STRING: aa:0:0:dc:5f:58
IF-MIB::ifPhysAddress.3 = STRING:
IF-MIB::ifInOctets.1 = Counter32: 19030140
IF-MIB::ifInOctets.2 = Counter32: 4072910622
IF-MIB::ifInOctets.3 = Counter32: 0
IF-MIB::ifOutOctets.1 = Counter32: 19030140
IF-MIB::ifOutOctets.2 = Counter32: 2001152942
IF-MIB::ifOutOctets.3 = Counter32: 0
cacti等系統就是透過獲取這些資料監控流量的。ifNumber是網口數量,ifType是網口型別,ifPhysAddress是mac地址,ifInOctets是流入的總流量,ifOutOctets是流出的總流量。等等。
IP-MAC地址轉換表 1.3.6.1.2.1.3.1
樣例:
RFC1213-MIB::atIfIndex.2.1.x.x.o.o = INTEGER: 2
RFC1213-MIB::atPhysAddress.2.1.x.x.o.o = Hex-STRING: 28 C0 DA 05 20 00
RFC1213-MIB::atNetAddress.2.1.x.x.o.o = Network Address: DC:B5:37:81
我的理解應該跟執行arp -a命令的輸出一樣吧。
網口的ip地址和子網掩碼 1.3.6.1.2.1.4.20
樣例:
IP-MIB::ipAdEntAddr.127.0.0.1 = IpAddress: 127.0.0.1
IP-MIB::ipAdEntAddr.x.x.o.o = IpAddress: x.x.o.o
IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1
IP-MIB::ipAdEntIfIndex.x.x.o.o = INTEGER: 2
IP-MIB::ipAdEntNetMask.127.0.0.1 = IpAddress: 255.0.0.0
IP-MIB::ipAdEntNetMask.x.x.o.o = IpAddress: 255.255.255.128
IP-MIB::ipAdEntBcastAddr.127.0.0.1 = INTEGER: 0
IP-MIB::ipAdEntBcastAddr.x.x.o.o = INTEGER: 1
路由表 1.3.6.1.2.1.4.21 鑑於打碼太複雜,就不提供樣例,可自己測試。
tcp connection table 1.3.6.1.2.1.6.13 相當與netstat -t 命令
開放的udp埠 1.3.6.1.2.1.7.5
此外在網際網路上有兩個oid被很多文章轉載:
1.3.6.1.4.77.1.2.25.1.1 //**使用者列表
1.3.6.1.4.77.1.4.1.0 //**域名
這兩個oid都是存在的。不過測試了幾臺機器都沒有返回任何資訊。如果大家有更準確的測試結果歡迎反饋。
0x02 能不能更給力一點
耐著性子看完了上文形形色色的oid,你肯定已經知道,有了snmp的community之後,從系統核心到mac地址,路由表,到tcp connection都被我們看光光了。可是,僅僅就這個程度麼?我們掌握了這麼多的資訊,這麼多的資訊,可是隻靠snmp卻依然無法控制這臺裝置。這是多麼憂傷的一件事情。
如果snmp不僅僅可以讀system up time,如果有個oid可以讀到/etc/passwd甚至可以讀到/etc/shadow那該多好啊。雖然目前這僅僅是YY,但是下面將要介紹一個類似的漏洞。那就是
先看一下烏雲案例:
中國移動H3C防火牆側漏,利用snmp獲取管理員密碼,成功登入裝置!
中國移動集團華為三層交換SNMP漏洞,可獲取管理帳號密碼,已成功登入
看到沒,透過特定的oid讀到了裝置中儲存的使用者名稱和密碼,可以成功登入。
關於這個cve的來龍去脈可以參考Kurt Grutzmacher發表的文章
HP/H3C and Huawei SNMP Weak Access to Critical Data
同時Kurt Grutzmacher也提供了
長話短說,本質上這依然是snmp引起的資訊洩漏,只不過這裡露的過於性感,用一個只讀許可權的community就可以讀取到登入需要的使用者名稱和密碼。目前已知可以獲取帳號的oid有一下三個:
1.3.6.1.4.1.2011.5.2.1.10.1
1.3.6.1.4.1.2011.10.2.12.1.1.1
1.3.6.1.4.1.25506.2.12.1.1.1
對於存在該漏洞的裝置,只需要以此walk上面3個oid就可以了。雖然廠商都發布補丁修復了這個漏洞。但是由於某些你懂的原因,存在這個漏洞的裝置依然有很多很多很多很多。so:請不要將本文提供的資訊用於非法用途,後果自負~~。
需要說一下的是,釋出這個漏洞的Kurt Grutzmacher在文章和掃描外掛中只提到了後面兩個oid,[email protected][email protected]
相關文章
- WebView引起的記憶體洩漏2019-09-25WebView記憶體
- 記憶體洩漏引起的 資料庫效能問題2021-05-06記憶體資料庫
- 弱口令測試2024-06-02
- 分析ThreadLocal的弱引用與記憶體洩漏問題2020-06-15thread記憶體
- 資料洩漏!我們的資訊還安全麼?2018-03-19
- js垃圾回收機制和引起記憶體洩漏的操作2018-09-05JS記憶體
- XX資訊系統弱口令下滲透過程與解決方案2024-07-24
- 千萬資訊洩漏,是誰在偷遊戲玩家的資料?2020-04-16遊戲
- 中鐵總回應12306資料洩漏傳言:網站未發生使用者資訊洩漏2018-06-14網站
- 一次由於八股文引起的記憶體洩漏2024-02-08記憶體
- Spring Boot引起的“堆外記憶體洩漏”排查及經驗總結2019-01-04Spring Boot記憶體
- 淺談網際網路中弱口令的危害2020-08-19
- 那麼弱口令是什麼意思呢?2022-12-26
- tomcat弱口令後臺getshell漏洞復現2024-04-08Tomcat
- 分析記憶體洩漏和goroutine洩漏2021-10-22記憶體Go
- 記憶體洩漏問題分析之非託管資源洩漏2020-12-31記憶體
- 2.67億Facebook使用者的個人資訊線上洩漏2019-12-20
- 大資料資訊時代,如何防止資料洩露,大資料防洩漏解決方案2018-11-01大資料
- 常見的弱口令 密碼字典 下載網站2024-03-09密碼網站
- go timer 洩漏2024-11-12Go
- 本田洩漏量達26,000名車主和車輛資訊2019-12-20
- 騰訊安全:弱口令密碼再遭爆破 新型木馬瞄準企業SQL資料庫下手2019-11-22密碼SQL資料庫
- 閃捷資訊:2021年度資料洩漏態勢分析報告2022-04-03
- Handler 訊息機制以及記憶體洩漏2020-04-05記憶體
- 記憶體洩漏的原因2018-07-10記憶體
- 納尼,Java 存在記憶體洩洩洩洩洩洩漏嗎?2019-05-22Java記憶體
- 我們通常這樣進行Linux弱口令檢測!2020-07-22Linux
- Handler洩漏處理2019-01-22
- 小程式中遇到observer函式引起的記憶體洩漏咋整?沒想到這麼簡單2019-03-27Server函式記憶體
- 解決記憶體洩漏(1)-ApacheKylin InternalThreadLocalMap洩漏問題分析2020-07-22記憶體Apachethread
- 八成資料洩漏因為內鬼:優質資訊售價驚人2018-09-19
- 酒店資訊洩露頻發 凱悅集團發起找漏獎勵2019-01-14
- 央行整治App代查徵信亂象:洩漏徵信資訊考核直接零分2018-05-08APP
- jvm 記憶體洩漏2024-11-24JVM記憶體
- Android 記憶體洩漏2020-11-19Android記憶體
- Goroutine 洩漏防治神器 goleak2021-03-28Go
- Java記憶體洩漏2020-12-06Java記憶體
- js記憶體洩漏2019-02-16JS記憶體