0x00 背景
在前段時間的滲透中,我發現通過端口來進行滲透有時會提升我們的效率,所以纔有了這篇文章的誕生;
首先分享一份關於端口及他們對應的服務文件:https://yunpan.cn/cYyNXEpZNYvxQ 訪問密碼 983e
這裏再分享一篇我曾經在百度文庫提交的端口滲透文章:請點我
再次看這篇文章發現寫的很簡單,也只描述了幾個常見的端口滲透;而且一般我們都是可以修改默認端口的,所以平時在滲透過程中,對端口信息的收集就是一個很重要的過程;然後對症下藥就可以更快的滲透進入我們需要的服務器;接下來就詳細通過滲透實戰對端口的滲透進行更加深入的剖析;
端口滲透過程中我們需要關注幾個問題:
1、 端口的banner信息
2、 端口上運行的服務
3、 常見應用的默認端口
當然對於上面這些信息的獲取,我們有各式各樣的方法,最爲常見的應該就是nmap了吧!我們也可以結合其他的端口掃描工具,比如專門的3389、1433等等的端口掃描工具;
服務默認端口
公認端口(Well Known Ports):0-1023,他們緊密綁定了一些服務;
註冊端口(Registered Ports):1024-49151,他們鬆散的綁定了一些服務;
動態/私有:49152-65535,不爲服務分配這些端口;
當然這些端口都可以通過修改來達到欺騙攻擊者的目的,但是這就安全了嗎?攻擊者又可以使用什麼攻擊方式來攻擊這些端口呢?
還需要註明的一點是:很多木馬工具也有特定的端口,本文並沒有涉及到這塊的內容,大家可以自己去收集收集!
關於爆破之我見
在對這些端口進行實戰講解時,我需要先闡述一下我對爆破這個方式的一些看法;
爆破:技術最簡單,需要的技術能力基本爲0,工作效率與網絡、硬件等相關,在我看來爆破其實是最強大的攻擊方式,特別是結合一些特製的字典,結合社工我們可以在很短的時間達到最大的效果,只不過因爲我們的pc或者字典不夠強大,所以很多時候我們不能進行一次優秀的爆破攻擊;當然現在很多web應用以及服務端口都限制了暴力破解;對於這種做了限制的我們可能就需要利用到本文提到的其他攻擊了!
分享一個團隊sai總結的字典:請點擊
聲明:本文總結的都是近兩年的常見漏洞,以前的老版漏洞以及危害性不大的漏洞沒有總結,望大家諒解!
0x01 實戰測試
文件共享服務端口滲透
ftp服務
FTP服務:ftp服務我分爲兩種情況,第一種是使用系統軟件來配置,比如IIS中的FTP文件共享或Linux中的默認服務軟件;第二種是通過第三方軟件來配置,比如Serv-U還有一些網上寫的簡易ftp服務器等;
默認端口:20(數據端口);21(控制端口);69(tftp小型文件傳輸協議)
攻擊方式:
爆破:ftp的爆破工具有很多,這裏我推薦owasp的Bruter 以及msf中ftp爆破模塊;
匿名訪問:用戶名:anonymous 密碼:爲空或任意郵箱
用戶名:FTP 密碼:FTP或爲空
用戶名:USET 密碼:pass
當然還有不需要用戶名密碼直接訪問的,一般出現在局域網中;
嗅探:ftp使用明文傳輸技術(但是嗅探給予局域網並需要欺騙或監聽網關)
後門技術:在linux的vsftp某一版本中,存在着一個後門程序,只要在用戶名後面加上 就會在6200上打開一個監聽Shell,我們可以使用telnet直接連接;詳細請點擊
遠程溢出漏洞:6.10.1 IIS FTP遠程溢出漏洞,在IIS FTP服務器中NLST命令存在一個緩衝區溢出漏洞,這個漏洞可能是攻擊者在服務器運行一條非法命令。
跳轉攻擊:(Bounce Attacks)攻擊者發送一個FTP”PORT”命令給目標FTP服務器,其中包含該主機的網絡地址和被攻擊的服務的端口號。這樣,客戶端就能命令FTP服務器發一個文件給被攻擊的服務。這個文件可能包括根被攻擊的服務有關的命令(如SMTP,NNTP等)。由於是命令第三方去連接到一種服務,而不是直接連接,就使得跟蹤攻擊者變得困難,並且還避開了基於網絡地址的訪問限制。(注:此種情況小白並沒有遇到過,只是總結一下,歡迎大牛指教)
案例分享:
NFS服務
nfs:網絡文件系統,允許網絡中的計算機通過TCP/IP網絡共享資源。基於Linux系統,配置方面很簡單,詳細配置請參考案例分享。在nfs配置中,有不做任何限制的,有限制用戶,有限制IP,以及在版本2.x中我們還可以使用證書來驗證用戶。當然不同的限制可以採用的攻擊方式也不一樣;就目前而言網上關於nfs的攻擊還是比較少的!
默認端口:2049
攻擊方式:
未授權訪問:未限制IP以及用戶權限設置錯誤
案例分享:
Samba服務
Samba服務:對於這個可以在windows與Linux之間進行共享文件的服務同樣是我們攻擊的關注點;samba登錄分爲兩種方式,一種是需要用戶名口令;另一種是不需要用戶名口令。在很多時候不光是pc機,還有一些服務器,網絡設備都開放着此服務,方便進行文件共享,但是同時也給攻擊者提供了便利。
默認端口:137(主要用戶NetBIOS Name Service;NetBIOS名稱服務)、139(NetBIOS Session Service,主要提供samba服務)
攻擊方式:
爆破:弱口令(爆破工具採用hydra)hydra -l username -P
PassFile IP smb
未授權訪問:給予public用戶高權限
遠程代碼執行漏洞:CVE-2015-0240等等
案例分享:
LDAP協議
ldap:輕量級目錄訪問協議,最近幾年隨着ldap的廣泛使用被發現的漏洞也越來越多。但是畢竟主流的攻擊方式仍舊是那些,比如注入,未授權等等;這些問題的出現也都是因爲配置不當而造成的。
默認端口:389
攻擊方式:
注入攻擊:盲注
未授權訪問:
爆破:弱口令
案例分享:
遠程連接服務端口滲透
SSH服務
SSH服務:這個服務基本會出現在我們的Linux服務器,網絡設備,安全設備等設備上,而且很多時候這個服務的配置都是默認的;對於SSH服務我們可能使用爆破攻擊方式較多。
默認端口:22
攻擊方式
爆破:弱口令、
漏洞:28退格漏洞、OpenSSL漏洞
案例分享:
Telnet服務
Telnet服務:在SSH服務崛起的今天我們已經很難見到使用telnet的服務器,但是在很多設備上同樣還是有這個服務的;比如cisco、華三,深信服等廠商的設備;我就有很多次通過telnet弱口令控制這些設備;
默認端口:23
攻擊方式
爆破:弱口令
嗅探:此種情況一般發生在局域網;
案例分享:
Windows遠程連接
遠程桌面連接:作爲windows上進行遠程連接的端口,很多時候我們在得到系統爲windows的shell的時候我們總是希望可以登錄3389實際操作對方電腦;這個時候我們一般的情況分爲兩種。一種是內網,需要先將目標機3389端口反彈到外網;另一種就是外網,我們可以直接訪問;當然這兩種情況我們利用起來可能需要很苛刻的條件,比如找到登錄密碼等等;
默認端口:3389
攻擊方式:
爆破:3389端口爆破工具就有點多了
Shift粘滯鍵後門:5次shift後門
3389漏洞攻擊:利用ms12-020攻擊3389端口,導致服務器關機;請參考
VNC服務
VNC:一款優秀的遠控工具,常用語類UNIX系統上,簡單功能強大;也
默認端口:5900+桌面ID(5901;5902)
攻擊方式:
爆破:弱口令
認證口令繞過:
拒絕服務攻擊:(CVE-2015-5239)
權限提升:(CVE-2013-6886)
案例分享:
Pcanywhere服務
PyAnywhere服務:一款遠控工具,有點類似vnc的功能;這個服務在以前很多黑客發的視頻裏面都有,利用pcanywhere來進行提權;
默認端口:5632
攻擊方式:
提權控制服務:
拒絕服務攻擊:
代碼執行:請參考
案例分享:
黑龍江物價局多處安全漏洞可能導致服務器淪陷(pcAnywhere提權+密碼突破)
Web應用服務端口滲透
HTTP服務:對於http服務其實是我們目前這幾年比較常見的攻擊入口,所以這裏會針對http服務進行一個詳細的詳解;
注:這個板塊的所有攻擊方式,如果涉及到常規的web漏洞不會提出來,除非是特定的服務器纔會產生的漏洞;
IIS服務
默認端口:80/81/443
攻擊方式:
IIS
PUT寫文件:利用IIS漏洞,put方法直接將文件放置到服務器上
短文件名泄漏:這種一般沒啥影響
解析漏洞:詳細見apache服務
案例分享:
用友軟件IIS寫權限(PUT)導致可獲取webshell控制服務器
Apache/Tomcat/Nginx/Axis2
默認端口:80/8080
攻擊方式:
爆破:弱口令(爆破manager後臺)
HTTP慢速攻擊:可以把服務器打死,對一些大型的網站有影響;
解析漏洞:請參考
案例分享:
安卓開發平臺存在上傳漏洞和Apache解析漏洞,成功獲取webshell
WebLogic
默認端口:7001
攻擊方式:
爆破:弱口令 4組:用戶名密碼均一致:system weblogic(密碼可能weblogic123) portaladmin guest
Congsole後臺部署webshell:
Java反序列化:
泄漏源代碼/列目錄:這個太老了,估計網上都沒有了吧!
SSRF窺探內網:央視網SSRF可窺探內網
案列分享:
Jboss
默認端口8080;其他端口1098/1099/4444/4445/8080/8009/8083/8093
攻擊方式:
爆破:弱口令(爆破jboss系統後臺)
遠程代碼執行:由於配置不當造成
Java反序列化:
案例分享
Websphere
默認端口:908*;第一個應用就是9080,第二個就是9081;控制檯9090
攻擊方式:
爆破:弱口令(控制檯)
任意文件泄漏:(CVE-2014-0823)
Java反序列化
案例分享:
中國電信某通用型業務系統(Websphere)GetShell漏洞
GlassFish
默認端口:http 8080;IIOP 3700;控制檯4848
攻擊方式:
爆破:弱口令(對於控制檯)
任意文件讀取:
認證繞過:
案例分享:
Jenkins
默認端口:8080、8089
攻擊方式:
爆破:弱口令(默認管理員)
未授權訪問:
反序列化:
案例分享:
Resin
默認端口:8080
攻擊方式:
目錄遍歷
遠程文件讀取
案例分享:
Jetty
默認端口:8080
攻擊方式:
Lotus
影響的都是一些大型的企業,特別需要注意,經過以前的測試發現弱口令這個問題經常都存在,可能是很多管理員不知道如何去修改(不要打我)。
默認端口:1352
攻擊方式:
爆破:弱口令(admin password)控制檯
信息泄露
跨站腳本攻擊
案例分享:
中電投集團某系統弱口令直達內網涉及/OA系統/內部郵箱/財務系統/人力資源系統
中國某大型金融機構地方業務弱口令導致數萬商戶信息泄露&訪問Lotus Domino後臺
數據庫服務端口滲透
針對所有的數據庫攻擊方式都存在SQL注入,這裏先提出來在下面就不一一寫了免得大家說我佔篇幅;當然不同的數據庫注入技巧可能不一樣,特別是NoSQL與傳統的SQL數據庫不太一樣。但是這不是本文需要介紹的重點,後面有時間會寫一篇不同數據庫的滲透技巧。
MySQL數據庫
默認端口:3306
攻擊方式:
爆破:弱口令
身份認證漏洞:CVE-2012-2122
拒絕服務攻擊:利用sql語句是服務器進行死循環打死服務器
Phpmyadmin萬能密碼繞過:用戶名:‘localhost’@’@” 密碼任意
案例分享:
MSSQL數據庫
默認端口:1433(Server 數據庫服務)、1434(Monitor 數據庫監控)
攻擊方式:
爆破:弱口令/使用系統用戶
案例分享:
從攻擊MSSQL到提權: 使用msf針對mssql的一次完整滲透
Oracle數據庫
默認端口:1521(數據庫端口)、1158(Oracle EMCTL端口)、8080(Oracle XDB數據庫)、210(Oracle XDB FTP服務)
攻擊方式:
爆破:弱口令
注入攻擊;
漏洞攻擊;
案例分享:
PostgreSQL數據庫
PostgreSQL是一種特性非常齊全的自由軟件的對象–關係型數據庫管理系統,可以說是目前世界上最先進,功能最強大的自由數據庫管理系統。包括我們kali系統中msf也使用這個數據庫;淺談postgresql數據庫攻擊技術 大部分關於它的攻擊依舊是sql注入,所以注入纔是數據庫不變的話題。
默認端口:5432
攻擊方式:
爆破:弱口令:postgres postgres
緩衝區溢出:CVE-2014-2669
案例分享:
MongoDB數據庫
MongoDB:NoSQL數據庫;攻擊方法與其他數據庫類似;關於它的安全講解:請參考
默認端口:27017
攻擊方式:
爆破:弱口令
未授權訪問;github有攻擊代碼;請點擊
案例分享:
Redis數據庫
redis:是一個開源的使用c語言寫的,支持網絡、可基於內存亦可持久化的日誌型、key-value數據庫。關於這個數據庫這兩年還是很火的,暴露出來的問題也很多。特別是前段時間暴露的未授權訪問。Exp:https://yunpan.cn/cYjzHxawFpyVt 訪問密碼 e547
默認端口:6379
攻擊方式:
爆破:弱口令
未授權訪問+配合ssh key提權;
案例分享:
SysBase數據庫
默認端口:服務端口5000;監聽端口4100;備份端口:4200
攻擊方式:
爆破:弱口令
命令注入:
案例分享:
DB2數據庫
默認端口:5000
攻擊方式:
安全限制繞過:成功後可執行未授權操作(CVE-2015-1922)
案例分享:
總結一下:對於數據庫,我們得知端口很多時候可以幫助我們去滲透,比如得知mysql的數據庫,我們就可以使用SQL注入進行mof、udf等方式提權;如果是mssql我們就可以使用xp_cmdshell來進行提權;如果是其它的數據庫,我們也可以採用對應的方式;比如各大數據庫對應它們的默認口令,版本對應的漏洞!
順便提一下:很多時候銀行企業採用的都是oracle、db2等大型數據庫;
郵件服務端口滲透
SMTP協議
smtp:郵件協議,在linux中默認開啓這個服務,可以向對方發送釣魚郵件!
默認端口:25(smtp)、465(smtps)
攻擊方式:
爆破:弱口令
未授權訪問
案例分享:
POP3協議
默認端口:109(POP2)、110(POP3)、995(POP3S)
攻擊方式:
爆破;弱口令
未授權訪問;
案例分享:
中國聯通沃郵箱等部分Android客戶端免密碼登陸(可獲取任意聯通用戶pop3密碼)
中航信郵箱密碼泄漏及VPN賬號和大量郵箱弱口令導致可內網漫遊拿到域控
IMAP協議
默認端口:143(imap)、993(imaps)
攻擊方式:
爆破:弱口令
配置不當
案例分享:
網絡常見協議端口滲透
DNS服務
默認端口:53
攻擊方式:
區域傳輸漏洞
見2中的總結
案例分享:
全球Top1000Websites中存在DNS區域傳送漏洞的網站列表
DHCP服務
默認端口:67&68、546(DHCP Failover做雙機熱備的)
攻擊方式:
DHCP劫持;
見2中總結
案例分享:
SNMP協議
默認端口:161
攻擊方式:
爆破:弱口令
案例分享:
其他端口滲透
Hadoop文件服務
默認端口:請參考
案例分享:
Zookeeper服務
zookeeper:分佈式的,開放源碼的分佈式應用程序協調服務;提供功能包括:配置維護、域名服務、分佈式同步、組服務等。詳情請參考百度百科
默認端口:2181
攻擊方式:
未授權訪問;
案例分享:
網上關於這方面的案例暫時不多,但是對於大數據逐漸氾濫的今天,這些漏洞未來會在烏雲上出現一大波!
Zabbix服務
zabbix:基於Web界面的提供分佈式系統監視以及網絡監視功能的企業級的開源解決方案。監視各種網絡參數,保證服務器系統的安全運營。
默認端口:8069
攻擊方式:
遠程命令執行:
案例分享:
網易zabbix運維不當,導致任意命令執行。(可提權、可內網滲透)
elasticsearch服務
elasticsearch:請百度(因爲我覺得我解釋不清楚)
默認端口:9200()、9300()
攻擊方式:
未授權訪問;
遠程命令執行;
文件遍歷;
低版本webshell植入;
案例分享:
memcache服務
默認端口:11211
案例分享:
Linux R服務
R服務:TCP端口512,513和514爲著名的rlogin提供服務。在系統中被錯誤配置從而允許遠程訪問者從任何地方訪問(標準的,rhosts + +)。
默認端口:512(remote process execution);513(remote login a la
telnet);514(cmd)
攻擊方式:
使用rlogin直接登錄對方系統;
RMI
RMI:我們使用這兩個端口很少的原因是因爲必須是java,而且rmi穿越防火牆並不好穿越;這裏我不會去涉及其他的東西,這裏提出RMI只是因爲在前段時間的java反序列化中,我們的小夥伴Bird寫過一個weblogic利用工具,裏面涉及到了RMI的一些東西,在有的時候使用socket不能成功時,我們可以使用RMI方式來進行利用;
默認端口:1090()、1099()
攻擊方式:
遠程命令執行(java反序列化,調用rmi方式執行命令)
這就是RMI的魅力了!
工具下載:請點我
Rsync服務
Rsync:類UNIX系統下的數據備份工具(remote sync),屬於增量備份;關於它的功能,大家自行百度百科吧,其實上面很多大家也看到了說是端口滲透,其實就是端口對應服務的滲透,服務一般出錯就在配置或者版本問題上,rsync也不例外。Rsync默認允許匿名訪問,如果在配置文件中沒有相關的用戶認證以及文件授權,就會觸發隱患。
默認端口:873
攻擊方式:
未授權訪問;
本地提權:rsync默認以root運行,利用rsync上傳一個文件,只要這個文件具有s權限,我們執行我們的攻擊腳本就可以具有root權限。詳細請參考 和 參考二
案例分享:
Socket代理
默認端口:1080
Socket代理針對代理來說沒有什麼漏洞,一般只是在滲透過程中作爲我們的代理,進入內網,或者滲透域和林的時候有幫助。這裏不做過多描述,但是可以嘗試爆破一下代理的用戶名和密碼,萬一運氣好能登錄,不也~~~~
案例分享:
0x02 總結兩句
圖解端口滲透
端口號 |
端口說明 |
攻擊技巧 |
21/22/69 |
ftp/tftp:文件傳輸協議 |
爆破 嗅探 溢出;後門 |
22 |
ssh:遠程連接 |
爆破 OpenSSH;28個退格 |
23 |
telnet:遠程連接 |
爆破 嗅探 |
25 |
smtp:郵件服務 |
郵件僞造 |
53 |
DNS:域名系統 |
DNS區域傳輸 DNS劫持 DNS緩存投毒 DNS欺騙 深度利用:利用DNS隧道技術刺透防火牆 |
67/68 |
dhcp |
劫持 欺騙 |
110 |
pop3 |
爆破 |
139 |
samba |
爆破 未授權訪問 遠程代碼執行 |
143 |
imap |
爆破 |
161 |
snmp |
爆破 |
389 |
ldap |
注入攻擊 未授權訪問 |
512/513/514 |
linux r |
直接使用rlogin |
873 |
rsync |
未授權訪問 |
1080 |
socket |
爆破:進行內網滲透 |
1352 |
lotus |
爆破:弱口令 信息泄漏:源代碼 |
1433 |
mssql |
爆破:使用系統用戶登錄 注入攻擊 |
1521 |
oracle |
爆破:TNS 注入攻擊 |
2049 |
nfs |
配置不當 |
2181 |
zookeeper |
未授權訪問 |
3306 |
mysql |
爆破 拒絕服務 注入 |
3389 |
rdp |
爆破 Shift後門 |
4848 |
glassfish |
爆破:控制檯弱口令 認證繞過 |
5000 |
sybase/DB2 |
爆破 注入 |
5432 |
postgresql |
緩衝區溢出 注入攻擊 爆破:弱口令 |
5632 |
pcanywhere |
拒絕服務 代碼執行 |
5900 |
vnc |
爆破:弱口令 認證繞過 |
6379 |
redis |
未授權訪問 爆破:弱口令 |
7001 |
weblogic |
Java反序列化 控制檯弱口令 控制檯部署webshell |
80/443/8080 |
web |
常見web攻擊 控制檯爆破 對應服務器版本漏洞 |
8069 |
zabbix |
遠程命令執行 |
9090 |
websphere控制檯 |
爆破:控制檯弱口令 Java反序列 |
9200/9300 |
elasticsearch |
遠程代碼執行 |
11211 |
memcacache |
未授權訪問 |
27017 |
mongodb |
爆破 未授權訪問 |