有2種思路:php
通常內網安全檢查使用第一種思路,實際的攻擊2種思路結合實現。html
按照第一種思路,我的認爲能夠分爲4個階段:python
第二種思路,社工的比重更大一些,本篇很少作介紹。mysql
該階段識別內網存活的主機 IP, 運行端口掃描和漏洞掃描獲取能夠利用的漏洞linux
使用端口掃描工具能夠實現主機發現的功能,但也有些動做小的主機發現工具(Kali),能夠有效的發現存活主機。本身寫個 ping 的循環腳本也能夠。ios
不受限的測試直接端口掃描了。git
2.2 端口掃描github
有受權的狀況下直接使用 nmap 、masscan 等端口掃描工具直接獲取開放的端口信息。
做爲跳板機可使用 Metasploit 作端口掃描,也能夠在跳板主機上上傳端口掃描工具,使用工具掃描。web
入侵到服務器上也能夠根據服務器的環境使用自定義的端口掃描腳本掃描端口。算法
python 3 的端口掃描腳本
1 |
# This script runs on Python 3 |
有個使用 Python 端口掃描的介紹
https://thief.one/2018/05/17/1/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io
Windows 下基於 Powershell 的端口掃描腳本。
https://github.com/BornToBeRoot/PowerShell_IPv4PortScanner/tree/master/Scripts
發現端口後使用客戶端鏈接工具或者 nc 鏈接,獲取服務端的 banner 信息。
2.3 漏洞掃描
有受權的狀況下,使用綠盟極光、Nessus、Nexpose 等漏掃工具直接掃描目標,能夠直接看到存活主機和主機的漏洞狀況。
獲取目標的主機存活信息和端口開放信息後,就能夠嘗試分析目標的網絡結構,安全防護策略。按照辦公網和生產網分別說一下:
按照系統區分:
按照網絡區分:
按照設備區分:
辦公網的安全防禦水平通常較差(相對),能繞過殺毒軟件基本上就暢通無阻了,利用信任關係容易擴大攻擊面,獲取數據也比生產網簡單。
按照系統區分:
按照網絡區分:
根據目標開展的不一樣業務,對應的服務器可能存在不一樣的網段上,分析服務器上運行的服務和進程能夠推斷目標使用的運維監控管理系統和安全防禦系統,能夠大概推斷出入侵目標的 IT 運維水平和安全防禦水平,在接下來的入侵考慮採用什麼樣的方法。
使用端口掃描、漏洞掃描驗證掃描目標開放的端口,在對應端口上開放的服務,運行該服務的軟件和版本號。
若是隻是使用端口掃描,只是發現開放的端口,接着使用 nc 能夠獲取端口上服務的 banner 信息,獲取 banner 信息後須要在漏洞庫上查找對應 CVE,後面就是驗證漏洞是否存在。若是是使用漏洞掃描工具能夠直接獲取對應端口上的漏洞,後面也是驗證漏洞。
安全檢查通常是儘量的發現全部漏洞,對漏洞的風險進行評估和修復。入侵的話只關注高危遠程代碼執行和敏感信息泄露漏洞等能夠直接利用的漏洞。
漏洞驗證能夠找對應的 CVE 編號的 POC、EXP,利用代碼在 ExploitDB 、seebug上查看或者在 github 上搜索是否有相關的漏洞驗證或利用的工具。
2.1 Web
從公網直接攻擊目標對外的 Web 應用,或者在受權的狀況下在內網進行滲透測試,若是是入侵目的能夠直接尋找注入、上傳、代碼執行、文件包含等高危漏洞,嘗試獲取系統權限,或者直接能拿到敏感數據。
容許掃描的話通常使用 WVS 直接掃描,也可使用專門掃描特定漏洞的掃描工具如 sqlmap、XSStrike 等工具掃描特定類型的漏洞。不容許直接掃描,使用 Burp 手工慢慢找了。
Tomcat是Apache Jakarta軟件組織的一個子項目,Tomcat是一個JSP/Servlet容器,它是在SUN公司的JSWDK(Java Server Web Development Kit)基礎上發展起來的一個JSP和Servlet規範的標準實現,使用Tomcat能夠體驗JSP和Servlet的最新規範.
是一個運行EJB的J2EE應用服務器。它是開放源代碼的項目,遵循最新的J2EE規範。從JBoss項目開始至今,它已經從一個EJB容器發展成爲一個基於的 J2EE 的一個Web 操做系統(operating system for web),它體現了 J2EE 規範中最新的技術。
端口:8080
攻擊方法:
參考:
WebLogic是美國Oracle公司出品的一個Application Server,確切的說是一個基於JAVAEE架構的中間件,WebLogic是用於開發、集成、部署和管理大型分佈式Web應用、網絡應用和數據庫應用的Java應用服務器。將Java的動態功能和Java Enterprise標準的安全性引入大型網絡應用的開發、集成、部署和管理之中
IBM公司一套典型的電子商務應用開發工具及運行環境。
Struts2是一個優雅的,可擴展的框架,用於建立企業準備的Java Web應用程序。出現的漏洞也着實的多每爆一個各大漏洞平臺上就會被刷屏。
Spring Framework 是一個開源的Java/Java EE全功能棧(full-stack)的應用程序框架,以Apache License 2.0開源許可協議的形式發佈,也有.NET平臺上的移植版本。Spring Framework提供了一個簡易的開發方式,這種開發方式,將避免那些可能導致底層代碼變得繁雜混亂的大量的屬性文件和幫助類。
通常分自動化部署和運維監控相關的的工具。漏洞能夠經過搜索引擎搜索,github搜索,ExploitDB搜索,官網上的安全通告獲取。
內網的通用類應用比較常見的問題是弱口令,若是一個管理員能夠登陸幾個系統,那在這幾個系統的帳號、密碼也基本上是同樣的。
GitLab是一個利用 Ruby on Rails 開發的開源應用程序,實現一個自託管的項目倉庫,可經過Web界面進行訪問公開的或者私人項目。
Jenkins是一種跨平臺的持續集成和交付的應用軟件,它便於不斷穩定地交付新的軟件版本,並提升你的工做效率。這款開發運維工具還讓開發人員更容易把項目的變化整合起來,並使用大量的測試和部署技術。
Puppet Enterprise專門管理基礎設施即代碼(IAC),在這種類型的IT基礎設施配置過程當中,系統用代碼而不是腳本流程來自動構建、管理和配置。因爲它是代碼,整個過程易於重複。Puppet有助於更容易控制版本、自動化測試和持續交付,能夠更快速地響應問題或錯誤。
Ansible是一種配置和管理工具,面向客戶端的軟件部署和配置,支持Unix、Linux和Windows。它使 用JSON和YAML,而不是IAC,根本不須要節點代理就能夠安裝。它能夠經過OpenStack在內部系統上使用,也能夠在亞馬遜EC2上使用。
Nagios是一款開源的電腦系統和網絡監視工具,能有效監控Windows、Linux和Unix的主機狀態,交換機路由器等網絡設置,打印機等。在系統或服務狀態異常時發出郵件或短信報警第一時間通知網站運維人員,在狀態恢復後發出正常的郵件或短信通知。
Zabbix 是一款強大的開源分佈式監控系統, 可以將SNMP
、JMX
、Zabbix Agent
提供的數據經過WEB GUI
的方式進行展現.
Cacti是一套基於PHP,MySQL,SNMP及RRDTool開發的網絡流量監測圖形分析工具。
Splunk Enterprise 能夠從任何來源監控和分析機器數據,以提供操做智能,從而優化您的 IT、安全和業務績效。Splunk Enterprise 具備直觀的分析功能、機器學習、打包應用程序和開放式 API,是一個靈活的平臺,可從重點用例擴展到企業範圍的分析主幹。
還有常見郵件應用、CMS 應用,在搜索引擎上查找對應的漏洞,利用已知漏洞進行攻擊。
一部分是使用騰訊企業郵箱、阿里企業郵箱的,很難有可利用的漏洞,另一種是能獨立部署的郵件系統,政企經常使用的郵箱應用:
PostgreSQL是一種特性很是齊全的自由軟件的對象–關係型數據庫管理系統,能夠說是目前世界上最早進,功能最強大的自由數據庫管理系統。包括kali系統中msf也使用這個數據庫;淺談postgresql數據庫攻擊技術大部分關於它的攻擊依舊是sql注入,因此注入纔是數據庫不變的話題。
MongoDB,NoSQL數據庫;攻擊方法與其餘數據庫相似》
Redis是一個開源的使用c語言寫的,支持網絡、可基於內存亦可持久化的日誌型、key-value數據庫。關於這個數據庫這兩年仍是很火的,暴露出來的問題也不少。特別是前段時間暴露的未受權訪問。
FTP服務:ftp服務我分爲兩種狀況,第一種是使用系統軟件來配置,好比IIS中的FTP文件共享或Linux中的默認服務軟件;第二種是經過第三方軟件來配置,好比Serv-U還有一些網上寫的簡易ftp服務器等;
默認端口:20(數據端口);21(控制端口);69(tftp小型文件傳輸協議)
NFS(Network File System)即網絡文件系統,是FreeBSD支持的文件系統中的一種,它容許網絡中的計算機之間經過TCP/IP網絡共享資源。在NFS的應用中,本地NFS的客戶端應用能夠透明地讀寫位於遠端NFS服務器上的文件,就像訪問本地文件同樣。現在NFS具有了防止被利用導出文件夾的功能,但遺留系統中的NFS服務配置不當,則仍可能遭到惡意攻擊者的利用。
Samba是linux和unix系統上實現SMB/CIFS協議的一個免費軟件,由服務器和客戶端程序構成。而SMB是局域網支持共享文件和打印機的一種通訊協議,爲局域網內不一樣計算機之間提供文件及打印機等資源的共享服務。
SSH 是協議,一般使用 OpenSSH 軟件實現協議應用。SSH 爲 Secure Shell 的縮寫,由 IETF 的網絡工做小組(Network Working Group)所制定;SSH 爲創建在應用層和傳輸層基礎上的安全協議。SSH 是目前較可靠,專爲遠程登陸會話和其它網絡服務提供安全性的協議。利用 SSH 協議能夠有效防止遠程管理過程當中的信息泄露問題。
Telnet協議是TCP/IP協議族中的一員,是Internet遠程登錄服務的標準協議和主要方式。它爲用戶提供了在本地計算機上完成遠程主機工做的能力。在終端使用者的電腦上使用telnet程序,用它鏈接到服務器。
終端使用者能夠在telnet程序中輸入命令,這些命令會在服務器上運行,就像直接在服務器的控制檯上輸入同樣。能夠在本地就能控制服務器。
VNC(Virtual Network Computing),爲一種使用RFB協議的顯示屏畫面分享及遠程操做軟件。此軟件藉由網絡,可發送鍵盤與鼠標的動做及即時的顯示屏畫面。
smtp:郵件協議,在linux中默認開啓這個服務,能夠向對方發送釣魚郵件!
使用 VMware vCloud 可將現有數據中心內的虛擬基礎架構資源池化,並將其做爲基於目錄的服務交付。經過與雲計算基礎架構的最佳平臺 VMware vSphere 配合使用,VMware vCloud Director 可爲客戶提供構建安全的私有云,從而改變 IT 部門交付和管理基礎架構服務以及用戶訪問和使用這些服務的方式。
通常組織中不少獨立安裝的 Esxi 形式的私有云,或獨立部署的虛擬化系統。
OpenStack是基礎設施即服務(IaaS)軟件,讓任何人均可以自行建立和提供雲計算服務。此外,OpenStack也用做建立防火牆內的「私有云」(Private Cloud),提供機構或企業內各部門共享資源。
Docker是一個開放源代碼軟件項目,讓應用程序佈署在軟件容器下的工做能夠自動化進行,藉此在Linux操做系統上,提供一個額外的軟件抽象層,以及操做系統層虛擬化的自動管理機制[1]。
Docker利用Linux核心中的資源分脫機制,例如cgroups,以及Linux核心名字空間(name space),來建立獨立的軟件容器(containers)。這能夠在單一Linux實體下運做,避免引導一個虛擬機形成的額外負擔。
Linux核心對名字空間的支持徹底隔離了工做環境中應用程序的視野,包括進程樹、網絡、用戶ID與掛載文件系統,而核心的cgroup提供資源隔離,包括CPU、內存、block I/O與網絡。
從0.9版本起,Dockers在使用抽象虛擬是經由libvirt的LXC與systemd - nspawn提供界面的基礎上,開始包括libcontainer函數庫作爲以本身的方式開始直接使用由Linux核心提供的虛擬化的設施。
Elasticsearch 是一個分佈式的搜索和分析引擎,能夠用於全文檢索、結構化檢索和分析,並能將這三者結合起來。Elasticsearch 基於 Lucene 開發,如今是使用最廣的開源搜索引擎之一,Wikipedia、Stack Overflow、GitHub 等都基於 Elasticsearch 來構建他們的搜索引擎。
Hadoop是一個開源的框架,可編寫和運行分佈式應用處理大規模數據,是專爲離線和大規模數據分析而設計的,並不適合那種對幾個記錄隨機讀寫的在線事務處理模式。
Hadoop=HDFS(文件系統,數據存儲技術相關)+ Mapreduce(數據處理),Hadoop的數據來源能夠是任何形式,在處理半結構化和非結構化數據上與關係型數據庫相比有更好的性能,具備更靈活的處理能力,無論任何數據形式最終會轉化爲key/value,key/value是基本數據單元。
用函數式變成Mapreduce代替SQL,SQL是查詢語句,而Mapreduce則是使用腳本和代碼,而對於適用於關係型數據庫,習慣SQL的Hadoop有開源工具hive代替。 Hadoop就是一個分佈式計算的解決方案。
參考:
Hive是Hadoop家族中一款數據倉庫產品,Hive最大的特色就是提供了類SQL的語法,封裝了底層的MapReduce過程,讓有SQL基礎的業務人員,也能夠直接利用Hadoop進行大數據的操做。
參考:
Apache Sqoop(SQL-to-Hadoop) 項目旨在協助 RDBMS 與 Hadoop 之間進行高效的大數據交流。
用戶能夠在 Sqoop 的幫助下,輕鬆地把關係型數據庫的數據導入到 Hadoop 與其相關的系統 (如HBase和Hive)中;同時也能夠把數據從 Hadoop 系統裏抽取並導出到關係型數據庫裏。除了這些主要的功能外,Sqoop 也提供了一些諸如查看數據庫表等實用的小工具。
參考
HBase創建在HDFS之上,提供高可靠性、高性能、列存儲、可伸縮、實時讀寫的數據庫系統。
它介於NoSQL和RDBMS之間,僅能經過行鍵(row key)和行鍵序列來檢索數據,僅支持單行事務(可經過Hive支持來實現多表聯合等複雜操做)。主要用來存儲非結構化和半結構化的鬆散數據。
與Hadoop同樣,HBase目標主要依靠橫向擴展,經過不斷增長廉價的商用服務器,來增長計算和存儲能力。
參考:
Spark是UC Berkeley AMP lab所開源的類Hadoop MapReduce的通用的並行計算框架,Spark基於map reduce算法實現的分佈式計算,擁有Hadoop MapReduce所具備的優勢;但不一樣於MapReduce的是Job中間輸出和結果能夠保存在內存中,從而再也不須要讀寫HDFS。
參考:
SecWiki 總結了:
一般域內滲透的過程
假設到這裏已經從外網或內網利用漏洞入侵到到一臺服務器,而且經過提權獲取了主機管理員權限,接下來要作的工做是獲取域管理員權限,並找到敏感數據。
一般會使用到的工具:
通常熟練使用一種就夠用了,以 Empire 爲例:
Empire 和 Metasploit 的使用原理是同樣的,都是先設置一個監聽,而後去生成一個木馬,而後在目標主機運行該木馬,咱們的監聽就會鏈接上反彈回來的代理。
參考:
域滲透另一個工具 mimikatz,用於抓 Windows 密碼,使用參考:
參考:
端口轉發及代理類工具
在中轉服務器上下載端口轉發工具(加密壓縮):
關於打包
Rar文件打包,壓縮d:\data\目錄下全部2013-01-01後修改的doc文件,100M/包密碼爲Pass,-x爲排除選項
1 |
rar.exe a–r –v100m new.rar –ta20130101000000 –hpPass –n*.doc –x*.exe d:\data\ |
7z加密,壓縮d:\data下全部文件,密碼爲Pass,分卷100M/包
1 |
7z.exe a c:\xx.7z -pPass -mhe d:\data -v100m |
Linux用 tar 打包文件是能夠加密碼,要跟openssl結合使用。
1 |
tar -zcvf - pma|openssl des3 -salt -k password | dd of=pma.des3 |
使用 tar 對加密文件解壓:
1 |
dd if=pma.des3 |openssl des3 -d -k password|tar zxf - |
### 3.4.2 文件傳輸
幾個思路
使用端口轉發直接傳送數據;
搭建 FTP、HTTP 協議;
上傳到雲端再下載;
通常用Matisploit 的 msfvenom,使用參考:
SET 也能夠生成後門程序,另外也能夠關注一下最新的 Office、PDF 的漏洞
這部分對於安全檢查、或受權滲透測試工做不是重點,一般也不考慮。
在作日誌清理前須要瞭解如下的內容:
Windows日誌類型
Linux操做日誌
Linux歷史操做
1 |
unset HISTORY HISTFILE HISTSAVE HISTZONE HISTORY HISTLOG; export HISTFILE=/dev/null; |
SSHD登錄記錄
刪除~/.ssh/known_hosts中記錄
修改文件時間戳
touch –r 原文件要修改文件
刪除臨時使用文件,尤爲是tmp目錄
logtamper
工具介紹
我的習慣使用 kali 自帶工具,特定 POC 先從 Github 上搜索。
推薦一個工具介紹的網站:https://www.kitploit.com/
滲透注意事項