境拓撲
我們的目的是獲取redhook.DA域的一個可用的賬戶,當前攻擊者已在公司網絡內,但并未在同一個子網。
Compromising Client 1
假設我們已經獲取到了Client1的登陸憑據,如果網絡足夠大,你可以發現存儲在某處網絡共享上面的其他憑據(通過批量的腳本:vbs,ps1,.net等等)。關于怎么訪問網絡,你可以使用Cobalt Strike框架。
我們可以這樣做:
我們可以通過批量的腳本快速的獲得NETBIOS的信息。
在win上,可以用命令nbtstat -A IP獲得相同的信息,可以看到機器名是WIN7-ENT-CLI1,屬于REDHOOK域。
PsExec:
使用msf的psexec可以很容易的獲取到一個shell。BOB是一個本地用戶,不用指定SMBDomain參數。
我們也可以使用Impacket’s PsExec,但psexec的好處是可以傳遞hash。
不要忘了微軟自己的PSEXEC有額外的好處,添加一個-s參數會給你一個system的shell。
WMI
一些WMI的選項也可以讓你遠程系統上執行命令。最值得注意的是WMIC,不僅可以在遠程系統上執行命令,還可以通過內置的命令獲取系統的敏感信息和配置操作系統。
最好使用cmd.exe /c或powershell -exec bypass -command。
我們使用Impacket WmiExec可以獲取到一個半交互式的shell,執行命令并獲取輸出。
最后使用PowerSploit的Invoke-WmiCommand命令。
Pass-The-Hash, WCE & Mimikatz:
有時候你只能獲取到NTLM的hash值,可以使用msf的psexec或WCE或Mimikatz。
缺點是WCE可能會被發現,而mimikatz是直接加載內存。
Smash-And-Grab
Metasploit (Mimikatz & hashdump):
Secretsdump & Invoke-Mimikatz:
也可以使用Impacket’s SecretsDump和Powersploit’s Invoke-Mimikatz來獲取。mimikatz的腳本托管在攻擊者的服務器上。
可能還有其他技術,但是以上是最經典的。
Impersonation:
現在我們有了redhook域里的一臺機器并且能連接到不同的子網中,現在開始做一個信息收集。
要查詢域的信息,需要有一個域用戶,當前的bob用戶并不是域用戶或system權限,但是我們可以通過
NtQuerySystemInformation來發現其他用戶的token,進而模擬他們登陸。
meterpreter有這個插件,使這個過程非常簡單。
也可以使用incognito(下載地址:https://labs.mwrinfosecurity.com/blog/2012/07/18/incognito-v2-0-released/)
Reconnaissance
域偵察:
現在我們有了一個域用戶,我們需要盡快擴大戰果。
以上命令分別是:
通過簡單的信息收集,我們能了解到讓我們自己成為域管理員的途徑。
Socks Proxy:
最后一個事就是添加路由,讓我們通過代理能訪問系統,如果使用msf或cobalt strike那么就非常簡單。
使用session1 通過socks4a來進行進一步的掃描。
使用proxychains。
Compromising Client 2
Metasploit (PortProxy & PsExec):
共享的本地管理員賬戶,客戶端1和客戶端2的TemplateAdmin是通用的賬號,密碼也一樣。
我們可以使用portproxy從client1進行端口轉發。
client1監聽10.1.1.2:9988向10.0.0.128:9988發送流量。再配置psexec。
Impacket (PsExec) & netsh:
在client1上使用netsh手動設置轉發規則。
現在有個規則是把流量從10.0.0.129:5678轉發到10.1.1.3:445,Impacket’s PsExec需要一個自定義端口,編輯源碼來實現。
當完成轉發之后,記得清理規則。
C:\Windows\system32> netsh interface portproxy reset
如果我們獲取不到明文密碼,我們仍然可以冒充域管理員的令牌。
Smash-And-Grab 2
Metasploit Easy-Mode (Mimikatz & hashdump & incognito):
Impacket (PsExec) & incognito:
我們使用incognito來執行遠程命令。
文件傳輸
接下來我們就很容易來拖拽文件了。
Compromising Redrum-DC
Socks Proxy & Impacket (WmiExec):
我們要么獲取域管理員的密碼,要么我們自己新建一個域管理員。
還記得之前用戶socks代理么,我們可以使用它來訪問域內幾乎所有東西。
Sysinternals (PsExec) & Invoke-Mimikatz:
win2k12增強了hash的保護性,所以我們這樣來獲取hash值。
提取NTDS
很多時候提取了NTDS 說明滲透要結束了,下面我介紹一下訪問本地shell或通過wmi來執行命令的方法。
Volume Shadow Copy (Classic-Mode):
把文件拖到攻擊者的機器里面有很多方法,我介紹一種,可以簡單的使用Impacket’s SecretsDump本地解壓傳輸內容。
注意下NTDS可能會包含很多用戶,甚至上千,是非常大的,導出的時候要小心。
Socks Proxy & Impacket (SecretsDump) (Easy-Mode):
如果我們有socks代理,則很容易的使用明文密碼來執行SecretsDump 。
資源
*原文:fuzzysecurity Mottoin翻譯發布
原創文章,作者:Moto,轉載:http://www.mottoin.com/article/89413.html
公眾號:白帽子左一
領取配套練手靶場、安全全套課程及工具...
在前段時間的滲透中,我發現通過端口來進行滲透有時會提升我們的效率,所以才有了這篇文章的誕生;
端口滲透過程中我們需要關注幾個問題:
1、 端口的banner信息
2、 端口上運行的服務
3、 常見應用的默認端口
當然對于上面這些信息的獲取,我們有各式各樣的方法,最為常見的應該就是nmap了吧!
我們也可以結合其他的端口掃描工具,比如專門的3389、1433等等的端口掃描工具;
公認端口(Well Known Ports):0-1023,他們緊密綁定了一些服務;
注冊端口(Registered Ports):1024-49151,他們松散的綁定了一些服務;
動態/私有:49152-65535,不為服務分配這些端口;
當然這些端口都可以通過修改來達到欺騙攻擊者的目的,但是這就安全了嗎?
攻擊者又可以使用什么攻擊方式來攻擊這些端口呢?
還需要注明的一點是:很多木馬工具也有特定的端口,本文并沒有涉及到這塊的內容,大家可以自己去收集收集!
在對這些端口進行實戰講解時,我需要先闡述一下我對爆破這個方式的一些看法;
爆破:技術最簡單,需要的技術能力基本為0,工作效率與網絡、硬件等相關,在我看來爆破其實是最強大的攻擊方式,特別是結合一些特制的字典,結合社工我們可以在很短的時間達到最大的效果,只不過因為我們的pc或者字典不夠強大,所以很多時候我們不能進行一次優秀的爆破攻擊;
當然現在很多web應用以及服務端口都限制了暴力破解;
對于這種做了限制的我們可能就需要利用到本文提到的其他攻擊了!
文件共享服務端口滲透
ftp服務
FTP服務:ftp服務我分為兩種情況,第一種是使用系統軟件來配置,比如IIS中的FTP文件共享或Linux中的默認服務軟件;
第二種是通過第三方軟件來配置,比如Serv-U還有一些網上寫的簡易ftp服務器等;
默認端口:
20(數據端口);
21(控制端口);
69(tftp小型文件傳輸協議)
攻擊方式:
爆破:ftp的爆破工具有很多,這里我推薦owasp的
Bruter:https://sourceforge.net/projects/worawita/
以及msf中ftp爆破模塊;
匿名訪問:用戶名:anonymous 密碼:為空或任意郵箱
用戶名:FTP 密碼:FTP或為空
用戶名:USET 密碼:pass
當然還有不需要用戶名密碼直接訪問的,一般出現在局域網中;
嗅探:ftp使用明文傳輸技術(但是嗅探給予局域網并需要欺騙或監聽網關)
后門技術:在linux的vsftp某一版本中,存在著一個后門程序,只要在用戶名后面加上 就會在6200上打開一個監聽Shell
我們可以使用telnet直接連接;
https://www.freebuf.com/articles/system/34571.html
遠程溢出漏洞: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-2019-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
攻擊方式:
提權控制服務:
拒絕服務攻擊:
HTTP服務:對于http服務其實是我們目前這幾年比較常見的攻擊入口,所以這里會針對http服務進行一個詳細的詳解;
注:這個板塊的所有攻擊方式,如果涉及到常規的web漏洞不會提出來,除非是特定的服務器才會產生的漏洞;
IIS服務
默認端口:80/81/443
攻擊方式:
IIS
PUT寫文件:利用IIS漏洞,put方法直接將文件放置到服務器上
短文件名泄漏:這種一般沒啥影響
解析漏洞:詳細見apache服務
Apache/Tomcat/Nginx/Axis2
默認端口:80/8080
攻擊方式:
爆破:弱口令(爆破manager后臺)
HTTP慢速攻擊:可以把服務器打死,對一些大型的網站有影響;
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反序列化
GlassFish
默認端口:http 8080;IIOP 3700;控制臺4848
攻擊方式:
爆破:弱口令(對于控制臺)
任意文件讀?。?/span>
認證繞過:
Jenkins
默認端口:8080、8089
攻擊方式:
爆破:弱口令(默認管理員)
未授權訪問:
反序列化:
Resin
默認端口:8080
攻擊方式:
目錄遍歷
遠程文件讀取
Jetty
默認端口:8080
攻擊方式:
遠程共享緩沖區溢出
Lotus
影響的都是一些大型的企業,特別需要注意,經過以前的測試發現弱口令這個問題經常都存在,可能是很多管理員不知道如何去修改(不要打我)。
默認端口:1352
攻擊方式:
爆破:弱口令(admin password)控制臺
信息泄露
跨站腳本攻擊
針對所有的數據庫攻擊方式都存在SQL注入,這里先提出來在下面就不一一寫了免得大家說我占篇幅;當然不同的數據庫注入技巧可能不一樣,特別是NoSQL與傳統的SQL數據庫不太一樣。
MySQL數據庫
默認端口:3306
攻擊方式:
爆破:弱口令
身份認證漏洞:CVE-2012-2122
拒絕服務攻擊:利用sql語句是服務器進行死循環打死服務器
Phpmyadmin萬能密碼繞過:用戶名:‘localhost’@’@” 密碼任意
MSSQL數據庫
默認端口:1433(Server 數據庫服務)、1434(Monitor 數據庫監控)
攻擊方式:
爆破:弱口令/使用系統用戶
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)
SMTP協議
smtp:郵件協議,在linux中默認開啟這個服務,可以向對方發送釣魚郵件!
默認端口:25(smtp)、465(smtps)
攻擊方式:
爆破:弱口令
未授權訪問
POP3協議
默認端口:109(POP2)、110(POP3)、995(POP3S)
攻擊方式:
爆破;弱口令
未授權訪問;
IMAP協議
默認端口:143(imap)、993(imaps)
攻擊方式:
爆破:弱口令
配置不當
DNS服務
默認端口:53
攻擊方式:
區域傳輸漏洞
見2中的總結
DHCP服務
默認端口:67&68、546(DHCP Failover做雙機熱備的)
攻擊方式:
DHCP劫持;
SNMP協議
默認端口:161
攻擊方式:
爆破:弱口令
Zookeeper服務
zookeeper:分布式的,開放源碼的分布式應用程序協調服務;提供功能包括:配置維護、域名服務、分布式同步、組服務等。詳情請參考百度百科
默認端口:2181
攻擊方式:
未授權訪問;
Zabbix服務
zabbix:基于Web界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。監視各種網絡參數,保證服務器系統的安全運營。
默認端口:8069
攻擊方式:
遠程命令執行:
elasticsearch服務
elasticsearch:請百度(因為我覺得我解釋不清楚)
默認端口:9200()、9300()
攻擊方式:
未授權訪問;
遠程命令執行;
文件遍歷;
低版本webshell植入;
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代理針對代理來說沒有什么漏洞,一般只是在滲透過程中作為我們的代理,進入內網,或者滲透域和林的時候有幫助。這里不做過多描述,但是可以嘗試爆破一下代理的用戶名和密碼,萬一運氣好能登錄,不也~~~~
原文地址:http://33h.co/9nhta