上一節講到滲透測試中的代碼審計講解,對整個(gè)代碼的函數分析以及危險語(yǔ)句的避讓操作,近期很多客戶(hù)找我們Sine安全想要了解如何獲取到網(wǎng)站的具體信息,以及我們整個(gè)滲透工作的流程,因為這些操作都是通過(guò)實(shí)戰累計下來(lái)的竟然,滲透測試是對網(wǎng)站檢查安全性以及穩定性的一個(gè)預防針,前提是必須要有客戶(hù)的授權才能做這些操作!
2.2. 站點(diǎn)信息
判斷網(wǎng)站操作系統
Linux大小寫(xiě)敏感
Windows大小寫(xiě)不敏感
描敏感文件
robots.txt
crossdomain.xml
sitemap.xml
xx.tar.gz
xx.bak
等
確定網(wǎng)站采用的語(yǔ)言
如PHP / Java / Python等
找后綴,比如php/asp/jsp
前端框架
如jQuery / BootStrap / Vue / React / Angular等
查看源代碼
中間服務(wù)器
如 Apache / Nginx / IIS 等
查看header中的信息
根據報錯信息判斷
根據默認頁(yè)面判斷
Web容器服務(wù)器
如Tomcat / Jboss / Weblogic等
后端框架
根據Cookie判斷
根據CSS / 圖片等資源的hash值判斷
根據URL路由判斷(如wp-admin)
根據網(wǎng)頁(yè)中的關(guān)鍵字判斷
根據響應頭中的X-Powered-By
CDN信息
常見(jiàn)的有Cloudflare、yunjiasu
探測有沒(méi)有WAF,如果有,什么類(lèi)型的
有WAF,找繞過(guò)方式
沒(méi)有,進(jìn)入下一步
掃描敏感目錄,看是否存在信息泄漏
掃描之前先自己嘗試幾個(gè)的url,人為看看反應
使用爬蟲(chóng)爬取網(wǎng)站信息
拿到一定信息后,通過(guò)拿到的目錄名稱(chēng),文件名稱(chēng)及文件擴展名了解網(wǎng)站開(kāi)發(fā)人員的命名思路,確定其命名規則,推測出更多的目錄及文件名
2.3. 端口信息
2.3.1. 常見(jiàn)端口及其脆弱點(diǎn)
FTP 21
默認用戶(hù)名密碼 anonymous:anonymous
暴力破解密碼
VSFTP某版本后門(mén)
SSH 22
暴力破解密碼
Telent 23
暴力破解密碼
SMTP 25
無(wú)認證時(shí)可偽造發(fā)件人
DNS 53 UDP
測試域傳送漏洞
SPF / DMARC Check
DDoS(DNS Query Flood / DNS 反彈)
SMB 137/139/445
未授權訪(fǎng)問(wèn)
弱口令
SNMP 161
Public 弱口令
LDAP 389
匿名訪(fǎng)問(wèn)
注入
Rsync 873
任意文件讀寫(xiě)
RPC 1025
NFS匿名訪(fǎng)問(wèn)
MSSQL 1433
弱密碼
Java RMI 1099
RCE
Oracle 1521
弱密碼
NFS 2049
權限設置不當
ZooKeeper 2181
無(wú)身份認證
MySQL 3306
弱密碼
RDP 3389
弱密碼
Postgres 5432
弱密碼
CouchDB 5984
未授權訪(fǎng)問(wèn)
Redis 6379
無(wú)密碼或弱密碼
Elasticsearch 9200
代碼執行
Memcached 11211
未授權訪(fǎng)問(wèn)
MongoDB 27017
無(wú)密碼或弱密碼
Hadoop 50070
除了以上列出的可能出現的問(wèn)題,暴露在公網(wǎng)上的服務(wù)若不是最新版,都可能存在已經(jīng)公開(kāi)的漏洞
2.3.2. 常見(jiàn)端口掃描方式
2.3.2.1. 全掃描
掃描主機嘗試使用三次握手與目標主機的某個(gè)端口建立正規的連接,若成功建立連接,則端口處于開(kāi)放狀態(tài),反之處于關(guān)閉狀態(tài)。 全掃描實(shí)現簡(jiǎn)單,且以較低的權限就可以進(jìn)行該操作。但是在流量日志中會(huì )有大量明顯的記錄。
2.3.2.2. 半掃描
在半掃描中,僅發(fā)送SYN數據段,如果應答為RST,則端口處于關(guān)閉狀態(tài),若應答為SYN/ACK,則端口處于監聽(tīng)狀態(tài)。不過(guò)這種方式需要較高的權限,而且部分防火墻已經(jīng)開(kāi)始對這種掃描方式做處理。
2.3.2.3. FIN掃描
FIN掃描是向目標發(fā)送一個(gè)FIN數據包,如果是開(kāi)放的端口,會(huì )返回RST數據包,關(guān)閉的端口則不會(huì )返回數據包,可以通過(guò)這種方式來(lái)判斷端口是否打開(kāi)。 這種方式并不在TCP三次握手的狀態(tài)中,所以不會(huì )被記錄,相對SYN掃描要更隱蔽一些。
2.3.3. Web服務(wù)
Jenkins
未授權訪(fǎng)問(wèn)
Gitlab
對應版本CVE
Zabbix
權限設置不當
2.3.4. 批量搜索
Censys
Shodan
ZoomEye
2.4. 搜索信息收集
2.4.1. 搜索引擎利用
恰當地使用搜索引擎(Google/Bing/Yahoo/Baidu等)可以獲取目標站點(diǎn)的較多信息。
常見(jiàn)的搜索技巧有:
site:域名
返回此目標站點(diǎn)被搜索引擎抓取收錄的所有內容
site:域名 keyword
返回此目標站點(diǎn)被搜索引擎抓取收錄的包含此關(guān)鍵詞的所有頁(yè)面
此處可以將關(guān)鍵詞設定為網(wǎng)站后臺,管理后臺,密碼修改,密碼找回等
site:域名 inurl:admin.php
返回目標站點(diǎn)的地址中包含admin.php的所有頁(yè)面,可以使用admin.php/manage.php或者其他關(guān)鍵詞來(lái)尋找關(guān)鍵功能頁(yè)面
link:域名
返回所有包含目標站點(diǎn)鏈接的頁(yè)面,其中包括其開(kāi)發(fā)人員的個(gè)人博客,開(kāi)發(fā)日志,或者開(kāi)放這個(gè)站點(diǎn)的第三方公司,合作伙伴等
related:域名
返回所有與目標站點(diǎn)”相似”的頁(yè)面,可能會(huì )包含一些通用程序的信息等
intitle:”500 Internal Server Error” “server at”
搜索出錯的頁(yè)面
inurl:”nph-proxy.cgi” “Start browsing”
查找代理服務(wù)器
除了以上的關(guān)鍵字,還有allintile、allinurl、allintext、inanchor、cache等。
還有一些其他的tips
查詢(xún)不區分大小寫(xiě)
* 代表某一個(gè)單詞
默認用and
OR 或者 | 代表邏輯或
單詞前跟+表強制查詢(xún)
引號引起來(lái)可以防止常見(jiàn)詞被忽略
括號會(huì )被忽略
搜索引擎的快照中也常包含一些關(guān)鍵信息,如程序報錯信息可以會(huì )泄漏網(wǎng)站具體路徑,或者一些快照中會(huì )保存一些測試用的測試信息,比如說(shuō)某個(gè)網(wǎng)站在開(kāi)發(fā)了后臺功能模塊的時(shí)候,還沒(méi)給所有頁(yè)面增加權限鑒別,此時(shí)被搜索引擎抓取了快照,即使后來(lái)網(wǎng)站增加了權限鑒別,但搜索引擎的快照中仍會(huì )保留這些信息。
另外也有專(zhuān)門(mén)的站點(diǎn)快照提供快照功能,如 Wayback Machine 和 Archive.org 等。
2.5. 目標人員信息收集
針對人員的信息收集考慮對目標重要人員、組織架構、社會(huì )關(guān)系的收集和分析。其中重要人員主要指高管、系統管理員、運維、財務(wù)、人事、業(yè)務(wù)人員的個(gè)人電腦。
最容易的入口點(diǎn)是網(wǎng)站,網(wǎng)站中可能包含網(wǎng)站的開(kāi)發(fā)、管理維護等人員的信息。從網(wǎng)站聯(lián)系功能中和代碼的注釋信息中都可能得到的所有開(kāi)發(fā)及維護人員的姓名和郵件地址及其他聯(lián)系方式。
在獲取這些信息后,可以在Github/Linkedin等網(wǎng)站中進(jìn)一步查找這些人在互聯(lián)網(wǎng)上發(fā)布的與目標站點(diǎn)有關(guān)的一切信息,分析并發(fā)現有用的信息。 如有對此需求滲透測試服務(wù)檢查網(wǎng)站漏洞可以聯(lián)系專(zhuān)業(yè)的網(wǎng)站安全公司來(lái)處理解決,國內推薦Sinesafe,綠盟,啟明星辰。
此外,可以對獲取到的郵箱進(jìn)行密碼爆破的操作,獲取對應的密碼。