一.常用術語
常用術語包括:
腳本(asp、php、jsp):編寫網站的語言
html(css、js、html):超文本標記語言,解釋給瀏覽器的靜態編程語言
HTTP/HTTPS協議:通訊標準,明文或密文
CMS(B/S):網站內容管理系統,常見的比如Discuz、DedeCMS、wordPress/ target=_blank class=infotextkey>WordPress等,針對CMS漏洞進行滲透測試
MD5: 加密算法,得到加密后的hash值
肉雞、抓雞、跳板:被控制的電腦稱為肉雞,控制過程叫抓雞;如果直接攻擊會暴露IP,此時通過已經拿下的電腦進行攻擊,則稱為跳板
一句話、小馬、大馬:比如 <?php eval($_POST[eastmount]); ?>,本身一句話木馬是沒有危害的,它通過預處理全局變量來執行POST參數
webshell、提權、后門:網站后門可稱為webshell
源碼打包、脫褲:源碼打包和數據庫脫褲都是常見的手段,但無法脫褲一定不去執行
嗅探、掃描、注入、上傳、提權、rookit
0day、1day、nday
代碼審計
安全分享及漏洞庫網站推薦:
安全測試集相關網站推薦:
在線分析或沙箱平臺推薦:
安全技術會議推薦:
安全學術會議推薦:
二.滲透測試流程
OWASP top 10 測試標準是安全招聘的常見問題,也是滲透測試的經典標準,詳見參考文獻2。
OWASP(開放式Web應用程序安全項目)的工具、文檔、論壇和全球各地分會都是開放的,對所有致力于改進應用程序安全的人士開放,其最具權威的就是“10項最嚴重的Web 應用程序安全風險列表” ,總結了Web應用程序最可能、最常見、最危險的十大漏洞,是開發、測試、服務、咨詢人員應知應會的知識。
注入injection:將不安全的命令發送給解析器,產生類似于SQL注入、NoSQL注入、OS注入和LDAP注入的缺陷。攻擊者可以構造惡意數據通過注入缺陷的解析器執行沒有權限的非預期命令或訪問數據。
失效的身份認證:通過錯誤使用應用程序的身份認證和會話管理功能,攻擊者能夠破譯密碼、密鑰或會話令牌,或者暫時或永久的冒充其他用戶的身份。
敏感數據泄露:通常敏感信息包括密碼、財務數據、醫療數據等,由于Web應用或API未加密或不正確的保護敏感數據,這些數據極易遭到攻擊者利用。由于未加密的信息極易遭到破壞和利用,因此我們應該加強對敏感數據的保護,Web應用應該在傳輸數據、存儲數據以及瀏覽器交互數據時進行加密,保證數據安全。
外部實體 XXE:XXE全稱為XML External Entity attack,即XML外部實體注入攻擊,早期或配置錯誤的XML處理器評估了XML文件外部實體引用,攻擊者可以利用這個漏洞竊取URI文件處理器的內部文件和共享文件、監聽內部掃描端口、執行遠程代碼和實施拒絕服務攻擊。
失效的訪問控制:通過身份驗證的用戶,可以訪問其他用戶的相關信息。攻擊者可以利用這個漏洞去查看未授權的功能和數據,如訪問用戶的賬戶、敏感文件、獲取和正常用戶相同的權限等。
安全配置錯誤:安全配置錯誤是比較常見的漏洞,由于操作者的不當配置,導致攻擊者可以利用這些配置獲取更高的權限,安全配置錯誤可以發生在各個層面,包含平臺、web服務器、應用服務器、數據庫、架構和代碼。
跨站腳本攻擊 XSS:當應用程序的網頁中包含不受信任的、未經恰當驗證、轉義的數據,或使用HTML、JAVAScript的瀏覽器API更新現有網頁時,就會出現XSS漏洞,跨站腳本攻擊是最普遍的Web應用安全漏洞,甚至在某些安全平臺都存在XSS漏洞。它會執行攻擊者在瀏覽器中的腳本,并劫持用戶會話,破壞網站或用戶重定向到惡意站點,使用XSS甚至可以執行拒絕服務攻擊。
不安全的反序列化:它可以導致遠程代碼執行、重放攻擊、注入攻擊或特權升級攻擊。
使用含有已知漏洞的組件:組件(如庫、框架或軟件模塊)擁有應用程序相同的權限,如果應用程序中含有已知漏洞,攻擊者可以利用漏洞獲取數據或接管服務器。同時,使用這些組件會破壞應用程序防御,造成各種攻擊產生嚴重的后果。
不足的日志記錄和監控:這個和等保有一定的關系,不足的日志記錄和監控,以及事件響應缺失或無效的集成,使攻擊者能夠進一步攻擊系統、保持持續性的或攻擊更多的系統,以及對數據的不當操作。
滲透測試(Penetration test)并沒有一個標準的定義,國外一些安全組織達成共識的通用說法是:滲透測試是通過模擬惡意黑客的攻擊方法,來評估計算機網絡系統安全的一種評估方法。 這個過程包括對系統的任何弱點、技術缺陷或漏洞的主動分析,這個分析是從一個攻擊者可能存在的位置來進行的,并且從這個位置有條件主動利用安全漏洞。
換句話說,滲透測試是滲透人員在不同的位置(比如內網、外網)利用各種手段對某個特定網絡進行測試,以發現和挖掘系統中存在的漏洞,然后輸出滲透測試報告,并提交給網絡所有者。網絡所有者根據滲透人員提供的滲透測試報告,可以清晰知曉系統中存在的安全隱患和問題。
滲透測試流程包括:
確定目標:目標包括網站、系統、網段等
信息收集:占滲透測試大部分時間,信息收集越全面后續的滲透越容易,包括IP、端口、協議、旁站、C段、whois、DNS、后臺URL、CMS、身份、郵箱、社工等
漏洞探測:常見漏洞包括SQL注入、XSS、越權、文件上傳、Bash、下載漏洞、文件包含、變量覆蓋、代碼執行、文件泄露等
漏洞驗證:建議撰寫POC,避免撰寫EXP。(POC是指漏洞驗證,英文為Proof of Concept ,表示一段漏洞證明的代碼;EXP是指漏洞利用,全稱Exploit,指利用系統漏洞進行攻擊的動作;Payload是“有效載荷”,指成功exploit之后,真正在目標系統執行的代碼或指令;Shellcode是Payload的一種,由于其建立正向/反向shell而得名)
編寫報告
信息整理
獲取所需
信息分析
三.環境配置
虛擬機應用配置
系統安裝
HTTP協議
網站搭建配置
1.虛擬機應用配置
安裝詳見前文 十一,虛擬機VMware+Kali安裝入門及Sqlmap基本用法”。
注意,虛擬機有個快照功能可以幫助我們迅速恢復之前的狀態。
虛擬機網絡配置在右下角位置。
如果想要虛擬機上網,通常我們會選擇“Net模式”,讓它自動獲取IP即可。
也可以設置自定義模式。
如何在虛擬機中搭建網站,讓外網能夠訪問呢?
選擇“橋接模式”,直接連接物理網絡,復制物理網絡連接狀態,此時在同一個網段進行訪問。這里在虛擬機中搭建一個網站,其虛擬機IP地址為192.168.0.104,如下圖所示。
此時物理機通過IP地址可以直接訪問該虛擬機中搭建好的網站,注意端口號為99。
那么,又怎么通過外網訪問呢?接著需要配置迅捷網絡的路由器,點擊“高級用戶”->“虛擬服務器”映射IP。設置虛擬服務器,添加一個HTTP協議的服務器,IP地址為192.168.0.104,端口號為99。
此時,當外網訪問本機物理IP地址時,就會跳轉訪問虛擬機中搭建的網站。其本機物理IP地址為182.46.195.40。
外網訪問的最終結果如下圖所示,也推薦大家搭建網站進行滲透測試。
PS:后續隨著教程深入會分享如何搭建網站以及域名解析。
2.HTTP協議
HTTP(明文)和HTTPS(密文)
HTTP協議(HyperText Transfer Protocol,超文本傳輸協議)是因特網上應用最為廣泛的一種網絡傳輸協議,所有的WWW文件都必須遵守這個標準。它是一種詳細規定了瀏覽器和萬維網服務器之間互相通信的規則,是萬維網交換信息的基礎,允許將HTML文檔從Web服務器傳送到Web瀏覽器。
HTTP協議是基于TCP/IP協議之上的應用層協議,它是一個客戶端和服務器端請求和應答的標準。客戶端是終端用戶,服務器端是網站。通過使用Web瀏覽器、網絡爬蟲或者其它的工具,客戶端發起一個到服務器上指定端口(默認端口為80)的HTTP請求。下圖是HTTP協議的原理圖,通常包括兩部分:
HTTP客戶端發起一個請求,建立一個到服務器指定端口的TCP連接。
HTTP服務器則在那個端口監聽客戶端發送過來的請求。一旦收到請求,服務器向客戶端發回一個狀態行,比如成功訪問的狀態碼為“HTTP/1.1 200 OK”,同時返回響應消息,包括請求文件、錯誤消息、或者其它一些信息。
推薦文章:HTTP協議超級詳解 - 愛文飛翔
HTTPS(全稱Hyper Text Transfer Protocol over SecureSocket Layer),是以安全為目標的HTTP通道,在HTTP的基礎上通過傳輸加密和身份認證保證了傳輸過程的安全性。HTTPS在HTTP的基礎下加入SSL層,HTTPS 的安全基礎是 SSL,因此加密的詳細內容就需要SSL。HTTPS 存在不同于HTTP的默認端口及一個加密/身份驗證層(在 HTTP與 TCP 之間)。這個系統提供了身份驗證與加密通訊方法。它被廣泛用于萬維網上安全敏感的通訊,例如交易支付等方面。如果你足夠細心,你會發現現在很多大型互聯網網站,如百度、淘寶、騰訊很早就已經把HTTP換成HTTPS了。
響應碼很多目錄掃描工具就是通過HTTP響應碼來判斷頁面是否存在。200、302、403、404、500都是常見的響應碼。
URL
在WWW上,每一信息資源都有統一的且在網上唯一的地址,該地址就叫URL(Uniform Resource Locator,統一資源定位符),它是WWW的統一資源定位標志,就是指網絡地址。
URL由三部分組成:資源類型、存放資源的主機域名、資源文件名;也可認為由4部分組成:協議、主機、端口、路徑。URL的一般語法格式如下,方括號為可選項。
protocol :// hostname[:port] / path / [parameters][?query]#fragment
例如“
www.eastmount.com/admin/index.html”,某些情況下,它是偽靜態網頁,雖然看似HTML文件,但存在數據庫交互。常見的動態網站編寫腳本包括:
index.php
index.asp
index.jsp
HTTP Header
HTTP消息頭是指在超文本傳輸協議( Hypertext Transfer Protocol ,HTTP)的請求和響應消息中,協議頭部分的那些組件。HTTP消息頭用來準確描述正在獲取的資源、服務器或者客戶端的行為,定義了HTTP事務中的具體操作參數。這里以Python獲取消息頭為例:
# -*- coding:utf-8 -*-
import urllib
import webbrowser as web
url = "http://www.baidu.com
content = urllib.urlopen(url)
print content.info() #頭信息
print content.geturl() #請求url
print content.getcode() #http狀態碼
#保存網頁至本地并通過瀏覽器打開
open("baidu.html","w").write(content.read())
web.open_new_tab("baidu.html")
該段調用調用urllib.urlopen(url)函數打開百度鏈接,并輸出消息頭、url、http狀態碼等信息,如下圖所示。
一方面分析HTTP頭對網站滲透非常重要;另一方面它也存在安全隱患,在PHP中通常會使用 $_SERVER[“HTTP_CLIENT_IP”] 或者 $_SERVER[“HTTP_X_FORWARDED_FOR”] 來獲取IP。因此,可以通過修改HTTP頭中的X-Forwarder-For:、client-ip:來進行攻擊。例如:
突破服務器訪問限制ip
HTTP頭注入攻擊
BurpSuite抓包分析
Burpsuite是用于攻擊web應用程序的集成平臺,包含了許多工具。Burpsuite為這些工具設計了許多接口,以加快攻擊應用程序的過程。所有工具都共享一個請求,并能處理對應的HTTP 消息、持久性、認證、代理、日志、警報。通常利用Burpsuite抓包分析,尋找Web漏洞。
后續作者會結合Cracer教程深入講解,也推薦大家閱讀作者之前的文章:
三.Burp Suite工具安裝配置、Proxy基礎用法及暴庫示例
GET傳參和POST傳參區別
采用GET方法,瀏覽器會與表單處理服務器建立連接,然后直接在一個傳輸步驟中發送所有的表單數據,瀏覽器會將數據直接附在表單的 action URL之后,兩者之間用問號進行分隔。這種方法傳遞數據數據量較小,并且不安全。形如:
http://www.example.com/login?name=me&pwd=123456
采用POST方法,瀏覽器將會按照下面兩步來發送數據。首先,瀏覽器將與 action屬性中指定的表單處理服務器建立聯系,一旦建立連接之后,瀏覽器就會按分段傳輸的方法將數據發送給服務器。在服務器端,一旦POST樣式的應用程序開始執行時,就應該從一個標志位置讀取參數,而一旦讀到參數,在應用程序能夠使用這些表單值以前,必須對這些參數進行解碼。用戶特定的服務器會明確指定應用程序應該如何接受這些參數。對那些有許多字段或是很長的文本域的表單來說,就應該采用 POST 方法來發送。同時,POST方法的安全性更高。形如:
http://www.example.com/login
HTTP請求方法還包括:GET、POST、OPTIONS、PUT、MOVE、DELETE、TRACE。下圖采用BurpSuite抓取POST請求參數。
注意,錯誤配置HTTP方法可能導致的安全事件。服務器存在允許PUT方式和MOVE方式,這時我們可以通過PUT方式傳入一個webshell.txt,然后通過MOVE方式結合解析漏洞很快地拿到網站的Webshell。
WAF
Web應用防護系統(Web Application Firewall,簡稱 WAF)也稱為:=網站應用級入侵防御系統。Web應用防火墻是通過執行一系列針對HTTP/HTTPS的安全策略來專門為Web應用提供保護的一款產品。
推薦作者前文:[網絡安全自學篇] 三十三.文件上傳漏洞之繞狗一句話原理和繞過安全狗(六)
防火墻技術是通過有機結合各類用于安全管理與篩選的軟件和硬件設備,幫助計算機網絡于其內、外網之間構建一道相對隔絕的保護屏障,以保護用戶資料與信息安全性的一種技術。
防火墻技術的功能主要在于及時發現并處理計算機網絡運行時可能存在的安全風險、數據傳輸等問題,其中處理措施包括隔離與保護,同時可對計算機網絡安全當中的各項操作實施記錄與檢測,以確保計算機網絡運行的安全性,保障用戶資料與信息的完整性,為用戶提供更好、更安全的計算機網絡使用體驗。
安全狗以SECaaS安全即為用戶提供一站式的云安全產品與服務,包括(云)主機安全、WEB應用安全、網站防篡改、抗DDoS云服務、安全大數據態勢感知等。其基本功能包括:
網站安全狗: 面向網站安全,包括網馬掃描及查殺(自有引擎,只針對網頁木馬);網馬主動防御功能(可主動攔截網馬上傳和訪問的動作);防SQL注入功能、防XSS跨站攻擊功能;防盜鏈防下載;以及防止CC攻擊。
服務器安全狗: 面向服務器安全的,包括基于內核驅動的抗DDOS攻擊、抗ARP攻擊、抗WEB CC攻擊功能;基于內核驅動的文件系統主動保護功能(可防止文件被篡改、保護系統文件);基于內核驅動的服務器其他方面的主動防御功能(系統賬號、注冊表、遠程登陸等方面的保護);以及服務器全面優化及體檢功能。
安全狗服云: 基于云端的監控和保護。安全狗服云利用云計算技術,為用戶構造一個全面的服務器和網站的監控和防護平臺,利用這個平臺,用戶可以做到24小時的服務器健康監控、資源監控和資源告警;24小時的服務器可用性監控;網站安全云掃描,發現網站存在的各種漏洞;基于云端技術的網站防篡改功能,保障網站文件不被非法修改。
<?php
$a='b';
$$a='assert';
$b($_POST[fox]);
?>
3.網站搭建配置
常見網站搭建包括ASP網站搭建、Java網站SSH搭建、PHP網站搭建 ,比如phpStudy、WAMP/LAMP。參考作者文章:phpStudy搭建Upload-labs靶場及CTF題PHP XAMPP配置PHP環境和Apache80端口被占用解決方案
它的優勢是可以切換各種PHP版本。
IIS網站搭建也是非常基礎的知識,這里推薦大家閱讀 “[網絡安全自學篇] 四十二.DNS欺騙和釣魚網站原理詳解及漏洞還原” 文章實驗部分。
一個聰明的安全工程師,是需要熟悉常見的CMS框架的。
內容管理系統(content management system,CMS)是一種位于WEB 前端(Web 服務器)和后端辦公系統或流程(內容創作、編輯)之間的軟件系統。內容的創作人員、編輯人員、發布人員使用內容管理系統來提交、修改、審批、發布內容。這里指的“內容”可能包括文件、表格、圖片、數據庫中的數據甚至視頻等一切你想要發布到Internet、Intranet以及Extranet網站的信息。
常見CMS如下:
企業建站系統:MetInfo(米拓)、蟬知、SiteServer CMS(.net平臺)等
B2C商城系統:商派shopex、ecshop、hishop、xpshop等
門戶建站系統:DedeCMS(織夢,PHP+MySQL)、帝國CMS(PHP+mysql)、PHPCMS、動易、cmstop,dianCMS(易點CMS,.net平臺)等
博客系統:wordpress、Z-Blog等
論壇社區:discuz、phpwind、wecenter等
問答系統:Tipask、whatsns等
知識百科系統:HDwiki
B2B門戶系統:destoon、B2Bbuilder、友鄰B2B等
人才招聘網站系統:騎士CMS、PHP云人才管理系統
房產網站系統:FangCms等;
在線教育建站系統:kesion(科汛,ASP)、EduSoho網校
電影網站系統:蘋果cms、ctcms、movcms等
小說文學建站系統:JIEQI CMS
寫到這里,上部分網絡安全基礎知識就介紹完畢,接下來將分享windows基礎知識及DOS命令。上部分主要的知識點包括:
了解常見術語
熟悉滲透測試流程
熟練操作虛擬機配置及系統安裝
學會搭建網站測試環境
掌握常見CMS框架
熟悉網絡基礎知識,包括HTTP、協議、GET和POST等
四.Windows基礎知識
該部分主要分為三部分內容:
系統目錄、服務、端口、注冊表
黑客常用的DOS命令及批處理
powershell
1. 系統目錄、服務、端口、注冊表
系統目錄
熟悉系統目錄方便我們進行滲透操作。包括系統自身創建的目錄、程序或人為創建的目錄。比較重要的幾個目錄包括Windows、Program files/Program files(x86)、ProgramData、用戶等。
(1) Windows
Windows系統目錄指操作系統的主要文件存放的目錄。目錄中的文件直接影響到系統是否正常工作,了解這些目錄的功能,對使用系統會有很大的幫助。
其中的核心目錄包括System32,該文件夾下config/SAM是存儲加密過的系統帳號的密碼文件。該文件被系統占用無法打開,但PE系統下能操作管理員密碼,也可以通過lc5、彩虹表、PwDum7.exe獲取。
PwDum7.exe軟件讀取SAM文件,此時為密文。
pass.exe軟件獲取密碼“123.com”,必須管理員權限才能讀取。
另一個核心文件為WindowsSystem32driversetchosts文件,相當于本地的小型DNS,定義了域名和IP。
打開如下圖所示:
注意,hosts文件的優先級高于DNS服務器。
如果我們直接ping百度,它會返回百度的真實IP地址(115.239.210.27),如下圖所示。
但如果在hosts文件中增加域名解析記錄,則它會優先ping本地hosts文件中的記錄(1.1.1.1)。如果你的hosts文件被污染,則就是DNS欺騙或釣魚網站,
詳細推薦作者前文:四十二.DNS欺騙和釣魚網站原理詳解及漏洞還原。
域名解析(Domain Name Resolution) 是把域名指向網站空間IP,讓人們通過注冊的域名可以方便地訪問到網站的一種服務。IP地址是網絡上標識站點的數字地址,為了方便記憶,采用域名來代替IP地址標識站點地址。域名解析就是域名到IP地址的轉換過程。域名的解析工作由DNS服務器完成。
例如,當企業員工電腦訪問該購物網站時,會去DNS服務器進行解析;然后找到地址2.2.2.2,并返回給企業員工電腦;最后訪問該購物Web服務器,假設是IIS,它會將購物網站的首頁返回給你的瀏覽器。
(2) Program files/Program files(x86)
操作系統各種程序默認安裝到的目錄,包括32位和64位。其文件夾包括:Common Files(提供程序中的一些共享配置文件)、 Internet Explorer(網絡瀏覽器)、NetMeeting(網絡聊天軟件)、Microsoft office(辦公軟件集合)、Windows Media Player(媒體播放器)等。
比如騰訊QQ、微信通訊軟件。
(3) Perflogs
它是Windows系統的日志信息,如磁盤掃描錯誤信息、測試信息等,該目錄不建議刪除,刪除反而會重新生成并降低系統速度。
(4) ProgramData
C盤的一個系統文件夾(隱藏),它是公用的被創建文件夾或文件存放的地方,由創建者完整控制,程序運行或啟動生成的臨時文件通常存放該目錄,電腦病毒也比較喜歡感染該目錄。
(5) 用戶
存放系統賬號相關的文件或文件夾。在Web滲透中該目錄有什么用呢?當我們提取某個服務器后,通常會去查詢該目錄中存在的用戶名,該目錄是信息深入收集所必須查找的目錄,包括桌面、我的文檔等敏感信息或文件。
比如QQ的文件接收信息。如果存在敏感文件,是不是就會泄露了相關信息。
服務
服務是一種應用程序類型,它在后臺運行。服務應用程序通常可以在本地和通過網絡為用戶提供一些功能,例如客戶端/服務器應用程序、Web服務器、數據庫服務器以及其他基于服務器的應用程序。如果某個服務未打開,你就不能享受對應這個服務的功能。
在運行中輸入“services.msc”打開服務。
顯示如下圖所示,可以打開描述查看具體信息。
比如虛擬機的網絡服務,需要打開才能讓虛擬機連接上網。
比如虛擬機的網絡服務,需要打開才能讓虛擬機連接上網。
除了計算機內置的服務,我們軟件也需要注冊相關的服務,包括后面要講得metasploit安裝后面的軟件,也需要安裝相關的服務。
服務決定了計算機的一些功能是否被啟用,不同的服務對應的功能不同,通過計算機提供的服務可以有效地實現資源共享。常見的服務包括:
Web服務:搭建網站
DNS服務:用于域名解析
DHCP服務:用于客戶機配置可用IP
郵件服務:發送郵件
Telnet服務:Windows遠程連接
SSH服務:通過ssh服務連接該主機
FTP服務:文件傳輸協議服務,為互聯網提供文件存儲和訪問
SMB服務:用于Web連接和客戶端與服務器之間的信息溝通
服務是可以設置“自動”(啟動)、“手動”、“禁用”三種類型,后面用到時會具體講解。
在CMD中輸入 “netstat -an” 顯示網絡連接、路由表和網絡接口信息,可以讓用戶得知目前都有哪些網絡連接(IP+端口)正在運作。
Cracer安全工具包提供了各種工具,推薦大家嘗試學習。
比如利用Hydra工具進行Telnet遠程服務器密碼爆破,如下圖所示,也推薦大家閱讀前面作者的文章 “三十八.hack the box滲透之BurpSuite和Hydra密碼爆破及Python加密Post請求(二)”。如果想提高爆破成功率,字典和社工(目標生日、姓名)非常重要。
端口
(1) 端口的作用
我們知道,一臺擁有IP地址的主機可以提供許多服務,比如Web服務、FTP服務、SMTP服務等,這些服務完全可以通過1個IP地址來實現。那么,主機是怎么區分不同的網絡服務呢?顯然不能只靠IP地址,因為IP地址與網絡服務的關系是一對多的關系,實際上是通過“IP地址+端口號”來區分不同的服務的。
需要注意的是,端口并不是一一對應的。比如你的電腦作為客戶機訪問一臺WWW服務器時,WWW服務器使用“80”端口與你的電腦通信,但你的電腦則可能使用“3456”這樣的端口。如下圖所示:
(2) 端口的分類
端口共1-65535號,知名端口范圍從0到1023,這些端口號一般固定分配給一些服務,大家盡量不要使用。比如21端口分配給FTP服務,25端號分配給SMTP郵件傳輸協議服務,80端口分配給HTTP服務,135端口分配給RPC遠程過程調用服務等等。
動態端口的范圍從1024到65535,這些端口號一般不固定分配給某個服務,也就是說許多服務都可以使用這些端口。只要運行的程序向系統提出訪問網絡的申請,那么系統就可以從這些端口號中分配一個供該程序使用。比如1024端口就是分配給第一個向系統發出申請的程序,在關閉程序進程后,就會釋放所占用的端口號。注意,端口沖突就不能正常工作。
同時,動態端口號也常常被病毒木馬程序所利用,如冰河默認連接端口號是7626、WAY 2.4連接端口號是8011、Netspy 3.0連接端口號是7306、YAI病毒連接端口號是1024等等。
(3) 常見的端口
4)黑客通過端口可以干什么
信息收集
目標探測
服務判斷
系統判斷
角色分析
注冊表
注冊表(Registry,繁體中文版Windows稱之為登錄檔)是微軟Windows系統中的一個重要的數據庫,用于存儲系統和應用程序的設置信息。早在Windows 3.0退出OLE技術的時候,注冊表就已經出現。隨后推出的Windows NT是第一個從系統級別廣泛使用注冊表的操作系統。但是,從Microsoft Windows 95開始,注冊表才真正成為Windows用戶經常接觸的內容,并在其后的操作系統中繼續沿用至今。在安全領域,注冊表是非常強大且常用的。
(1) 打開注冊表
運行中輸入“regedit”。
打開如下圖所示,包括五個根鍵,每個鍵值控制的內容不一樣。
(2) 注冊表的作用
注冊表是Windows操作系統中的一個核心數據庫,其中存放著各種參數,直接控制著Windows的啟動、硬件驅動程序的裝載以及一些Windows應用程序的運行,從而在整個系統中起著核心作用。這些作用包括了軟硬件的相關配置和狀態信息,比如注冊表中保存有應用程序和資源管理器外殼的初始條件、首選項和卸載數據等,聯網計算機的整個系統的設置和各種許可,文件擴展名與應用程序的關聯,硬件部件的描述、狀態和屬性,性能記錄和其他底層的系統狀態信息,以及其他數據等。
如果我們的電腦中了木馬,怎么清除對應的木馬呢?
第一種方法,開機自啟動是植入木馬常用的操作,進行查找及清除。
在運行中輸入“msconfig”,可以查看開機自啟動程序和服務,如下圖所示,圖中“計算器”就是之前另一篇文章植入的“木馬”。當木馬設置成開機自啟動服務時,是非常可怕的一件事,參考作者前文。
三十六.WinRAR漏洞復現(CVE-2018-20250)及惡意軟件自啟動劫持
四十三.木馬原理詳解、遠程服務器IPC$漏洞及木馬植入實驗
如果電腦被植入木馬,我們可以通過其位置找到對應的木馬并清除,下圖顯示的是VBS木馬。
如果程序未放置在開機自啟動的位置,而是插入注冊表中,又怎么清除呢?
第二種方法,通過注冊表查找并清除木馬。
通過查找注冊表的內容,然后再獲取鍵值的位置并進行清除。
第三種方法,通過網絡遠程連接查詢和外部交互的IP地址和端口。
輸入“netstat -an” 或 “netstat -o”,顯示如下圖所示。如果每當我們開機,它就會自動連接遠程某個地址和端口,說明我們中了木馬且肉雞自動上線。
(3) 注冊表結構
HKEY_CLASSES_ROOT
管理文件系統。根據在Windows中安裝的應用程序的擴展名,該根鍵指明其文件類型的名稱,相應打開該文件所要調用的程序等等信息。
HKEY_CURRENT_USER
管理系統當前的用戶信息。在這個根鍵中保存了本地計算機中存放的當前登錄的用戶信息,包括用戶登錄用戶名和暫存的密碼,在用戶登錄Windows時,其信息的項拷貝到HKEY_CURRENT_USER中。
HKEY_LOCAL_macHINE
管理當前系統硬件配置。在這個根鍵中保存了本地計算機硬件配置數據,此根鍵下的子關鍵字包括在SYSTEM.DAT中,用來提供HKEY_LOCAL_MACHINE所需的信息,或者在遠程計算機中可訪問的一組鍵中。
HKEY_USERS
管理系統的用戶信息。在這個根鍵中保存了存放在本地計算機口令列表中的用戶標識和密碼列表,同時每個用戶的預配置信息都存儲在HKEY_USERS根鍵中,HKEY_USERS是遠程計算機中訪問的根鍵之一。
HKEY_CURRENT_CONFIG
管理當前用戶的系統配置。在這個根鍵中保存著定義當前用戶桌面配置如顯示器等的數據,該用戶使用過的文檔列表(MRU)、應用程序配置和其他有關當前用戶的Windows中文版安裝的信息。
(4) 入侵中常用的注冊表
2.黑客常用的DOS命令
ping和ipconfig等網絡命令
- ping -t -l 65550 ip:死亡之ping,發送大于64K的文件并一直ping就成立死亡之ping。
- inconfig:查看ip地址,比如“ipconfig /all”,包括計算機名稱、IP地址、MAC地址、DNS等。
- ipconfig /release:釋放ip
- ipconfig /renew:重新獲得ip
- systeminfo:查看系統信息,主要用來檢測是否安裝了補丁
arp -a:顯示ARP緩存的命令,它可以顯示電腦上所有的ARP緩存條目。ARP協議是將IP地址映射為MAC地址的協議,其在協議上使用ARP請求及ARP應答報文來實現。
net view:查看局域網內其他計算機名稱
telnet:連接遠程終端。
關機及對話命令
- color:改變cmd顏色,比如“color a”。
shutdown -s -t 180 -c “你被黑了,系統馬上關機”:設置關機,如果需要取消,則輸入“shutdown -a”
- msg:用于系統命令彈框提示,比如輸入msg administrator “hello hacker”。如果某臺電腦同時被兩名黑客攻擊,可以通過該方法和對方交流。
文件及目錄操作命令
- dir:查看當前目錄,目錄“DIR”表示文件夾,其余表示文件。還包括文件大小和修改時間。
cd:切換目錄。輸入“cd …”表示返回上一層目錄,“cd Software”表示去到當前目錄,“D:”表示切換至D盤。
start www.baidu.com:打開網頁
start 123.txt:打開123.txt文件,也可以使用“notepad 123.txt”
del 123.txt:刪除文件,刪除之后再次打開則會提示找不到該文件。
copy con c:abc.txt:創建abc.txt文件,并填寫內容,輸入“Ctrl+Z+回車”創建成功。
type abc.txt:在CMD中打開文件內容,滲透中經常使用。
- md file_name:創建目錄。
- rd file_name:刪除文件夾。
- ren 原文件名 新文件名:重命名文件名稱。
- copy:復制文件
- move:移動文件
net命令
- net use k:192.168.1.1c $:Windows滲透測試中常用命令。比如輸入“net use K: 192.168.3.100c $”,此時磁盤映射多了個C盤。
- net use k:192.168.1.1c$ /del
增加的C盤如下圖所示,并且能訪問或修改相關的文件。
- net start:查看開啟的服務。
- net start 服務名:開啟服務,比如“net start telnet”、“net start schedule”。
- net stop 服務名:停止服務。
net user:查看有哪些用戶。調用“net user”查看計算機當前用戶。
- net uesr 用戶名 密碼 /add:建立用戶。調用“net user xiao /add”添加新用戶“xiao”。
- net password 密碼:更改系統登錄密碼。
net localGroup administrators 用戶名 /add:把用戶添加到管理員中,使其具有管理員權限,注意administrator后加s用復數。我們將“xiao”用戶添加到管理員中。
net user 賬戶名:查看賬戶的屬性。輸入“net user xiao”,可以看到其為管理員組。
C:Users\xiuzhang>net user
\DESKTOP-KUPRQ86 的用戶帳戶
-------------------------------------------------------------------------------
Administrator DefaultAccount Guest
WDAGUtilityAccount xiuzhang
命令成功完成。
C:Users\xiuzhang>net user xiuzhang
用戶名 xiuzhang
全名
注釋
用戶的注釋
國家/地區代碼 000 (系統默認值)
帳戶啟用 Yes
帳戶到期 從不
上次設置密碼 2020/2/3 12:28:17
密碼到期 從不
密碼可更改 2020/2/3 12:28:17
需要密碼 No
用戶可以更改密碼 Yes
允許的工作站 All
登錄腳本
用戶配置文件
主目錄
上次登錄 2020/2/20 11:33:08
可允許的登錄小時數 All
本地組成員 *Administrators
全局組成員 *None
命令成功完成。
C:Users\xiuzhang>
-net localgroup:查看本地組。
請大家注意,“Remote Desktop Users”為遠程桌面組,繞過安全狗可能會遇到該組。下圖展示了將其添加到遠程桌面組的代碼“net localgroup “remote desktop users” xiao /add”。
net user guest /active:yes:激活guest用戶。
net user guest 12345:用guest用戶登錄后將密碼改為“12345”。
服務器提權不建議大家創建用戶登錄,盡量避免管理員看到新增用戶,可以啟用guest并創建密碼,再增加到管理員組或遠程桌面組。相對比直接創建用戶更隱蔽,最后會進行還原與痕跡清除。所以,安全防火墻和日志是非常重要的安全保護數段。
- net share:查看本地開啟的共享。
- net share ipc $:開啟ipc $共享(中間無空格,但由于Markdown語法問題作者加空格)。
- net share ipc $ /del:刪除ipc $共享。
- net share c $ /del:刪除C盤共享。
netstat命令
netstart -a:查看開啟了哪些端口,常用netstat -an。
netstat -n:查看端口的網絡連接情況。
netstat -v:查看正在進行的工作。
netstat -an:顯示網絡連接、路由表和網絡接口信息,可以讓用戶得知目前都有哪些網絡連接(IP+端口)正在運作。
tasklist:查看系統進程。調用“taskkill /im cmd.exe”可以結束進程。
netsh:網絡工具。常用來創建無線,比如“netsh wlan set hostednetwork mode=allow ssid=cc key=1122334455”。
at命令
- at id號:開啟已注冊的某個計劃任務,如下圖所示,“22:51”執行該關機任務。
AT命令已啟用,改用schtasks.exe。
at /delete:停止所有計劃任務,用參數/yes則不需要確認就直接停止。
at id號 /delete:停止某個已注冊的計劃任務。
at:查看所有的計劃任務。
attrib:文件名(目錄名)查看某文件(目錄)的屬性。
attrib 文件名 -A -R -S -H 或 +A +R +S +H:去掉或添加某文件的存檔,只讀、系統、隱藏屬性;用+則是添加為某屬性。
批處理文件是DOS命令的組合文件,寫在批處理文件的命令會被逐一執行,后綴名為“.bat”。比如創建一個批處理文件“x.bat”,包含3條DOS命令。
DIR查看已經已經創建成功。
本地C盤的批處理文件“x.bat”如果被執行或加載到自啟動項,則會執行該命令。
可以看到,創建的管理員用戶“cr”已經存在,后續會執行關機。
3.Powershell
Powershell在安全領域也是非常重要的技能,推薦大家閱讀作者兩篇前文。十九.Powershell基礎入門及常見用法(一)二十.Powershell基礎入門及常見用法(二)
Windows PowerShell 是一種命令行外殼程序和腳本環境,使命令行用戶和腳本編寫者可以利用 .NET Framework的強大功能。它引入了許多非常有用的新概念,從而進一步擴展了您在 Windows 命令提示符和 Windows Script Host 環境中獲得的知識和創建的腳本。
五.總結
寫到這里,Cracer學習視頻第一篇文章就介紹完畢,主要包括兩部分內容:
第一部分講解網絡安全基礎知識,包括:常見術語、滲透測試流程、虛擬機配置及系統安裝、搭建網站測試環境、常見CMS框架、網絡基礎知識,包括HTTP、協議、GET和POST等。
第二部分講解Windows基礎知識及DOS命令,包括計算機目錄、注冊表、計算機服務名稱、常用端口及對應服務、常用黑客DOS命令、Powershell等。






