项目实习(五)网络渗透实验
這是大學期間進行的生產實習內容,主要是進行一次簡單的網絡滲透測試。
實習的目的及任務
生產實習是實現理論知識和實踐相結合的重要環節。通過實習,學生將對于課堂學習的基礎和專業理論知識有更深入的掌握。特別是對信息安全技術與工程的最新發展和應用有較深入的了解。同時通過生產實習,進一步鍛煉學生理論與實踐相結合的能力,提高學習的主動性,為畢業后的社會工作打下良好的基礎。
(1)嚴格遵守企業各項規章制度,學生以真實員工的身份融入得到企業的生產環境和管理方式中。
(2)了解網絡滲透測試、軟件開發過程,參與軟件項目的管理與開發,了解最新軟件技術,熟悉網絡滲透測試、軟件開發工具,特別是網絡安全管理、密碼應用、計算機病毒與防護、網絡入侵檢測等方面的技術與工具在企業信息安全管理中的應用。
(3)鍛煉學生的人際交往和團隊精神、集體榮譽感和責任感,使他們日后能較快融入到社會工作中。
(4)學生通過實習,要認清自己能力,發現理論知識的不足,為后續學習增加動力和明確方向。
(5)實習結束后,提交實習心得或實習報告。
實習單位及崗位介紹
武漢夢極光科技有限公司成立于2018年5月,是一家提供軟件和信息技術服務新型互聯網企業。業務范圍包括:網絡安全產品開發、互聯網滲透測試、系統上線測試、應急響應、服務解決方案、安全運維等信息安全服務。目前公司主要的服務對象是公安和政府相關部門。
網絡滲透測試是通過模擬黑客的攻擊來評估網絡系統安全的一種評估方法,是從攻擊者的角度對網絡安全進行檢測,包括對系統的任何弱點、技術缺陷或漏洞的主動分析。滲透測試可以以更有說服力的方式證明網絡安全防御確實有效,或者查出問題,可以幫助阻擋網絡未來要面臨的攻擊。不僅能夠有效地檢驗網絡安全防護是否牢固,更重要的是提高企業對網絡安全的防護意識,并對企業網絡信息資產安全做更深入的風險評估。而網絡滲透工程師則是負責以上工作的崗位,其日常工作包括滲透測試技術服務的實施,滲透測試報告的編寫;負責滲透測試技術交流、培訓;負責代碼審計、漏洞檢測與驗證、漏洞挖掘等方面的內容。
實習內容
了解公司管理制度以及相應的安全規范,為步入信息安全行業提前打好基礎。企業管理制度學習內容包括企業文化學習、企業規章制度學習(如上下班時間、工作內容、如何請假等)、獎懲制度學習等等內容。安全規范學習,由于信息安全行業有其自身特殊性,所以在工作過程中需要特別注意操作規范。安全規范學習目的,一方面是規范的操作可以使甲方系統在測試過程中可以保持穩定運行,再者自己擁有強大的安全意識,才能贏得客戶認可。
一套完整規范的生產流程對于企業工作的開展、軟件的開發是起著非常重要的作用的,所以需要掌握信息安全企業在滲透測試或者軟件開發時需要用到的規范流程。
一. 滲透測試流程
(1)甲乙方確定測試對象、范圍、時間。確定范圍:測試目標的范圍,ip,域名,內外網;確定規則:能滲透到什么程度,時間,能否修改上傳?能否提權等;確定需求:web應用的漏洞(新上線程序),業務邏輯漏洞(針對業務的),人員權限管理漏洞(針對人員、權限)等等。根據需求和自己技術能力來確定能不能做,能做多少。
(2)信息收集。在這一部還不會直接對被測目標進行掃描,應當先從網絡上搜索一些相關信息,包括Google Hacking, Whois查詢, DNS等信息(如果考慮進行社會工程學的話,這里還可以相應從郵件列表/新聞組中獲取目標系統中一些邊緣信息如內部員工帳號組成,身份識別方式,郵件聯系地址等)。
(3)漏洞探索。這一步主要針對具體系統目標進行。如通過第一步的信息收集,已經得到了目標系統的IP地址分布及對應的域名,并且我們已經通過一些分析過濾出少許的幾個攻擊目標,這時,我們就可以針對它們進行有針對性的漏洞掃描,探測網站是否存在一些常見的Web漏洞。
(4)漏洞驗證。將上一步中發現的有可能可以成功利用的全部漏洞都驗證一遍。結合實際情況,搭建模擬環境進行試驗。成功后再應用于目標中。
(5)信息分析。主要是為下一步實施滲透做準備。
(6)修復建議。對所有產生的問題提出合理高效安全的解決辦法。
(7)輸出報告。報告中應當包含:薄弱點列表清單(按照嚴重等級排序),薄弱點詳細描述(利用方法),解決方法建議,參與人員/測試時間/內網/外網。
二. 軟件開發流程
(1)產品定義。產品定義是指確定產品需要做哪些事情。通常采用產品需求文檔來進行描述,PRD可能包含如下信息:產品的愿景,目標市場,競爭分析,產品功能的詳細描述,產品功能的優先級,產品用例,系統需求,性能需求,銷售及支持需求等。
(2)需求分析。指把軟件計劃期間建立的軟件可行性分析進行求精和細化,分析各種可能的解法,并且分配給各個軟件元素。
(3)市場分析。根據已獲得的市場調查資料,運用統計原理,分析市場及其銷售變化。
(4)產品定位。針對消費者或用戶對某種產品某種屬性的重視程度,塑造產品或企業的鮮明個性或特色,樹立產品在市場上一定的形象,從而使目標市場上的顧客了解和認識本企業的產品。
(5)產品規劃。通過調查研究,在了解市場、了解客戶需求、了解競爭對手、了解外在機會與風險以及市場和技術發展態勢的基礎上,根據公司自身的情況和發展方向,制定出可以把握市場機會,滿足消費者需要的產品的遠景目標以及實施該遠景目標的戰略、戰術的過程。
(6)產品研發。指產品、科技的研究和開發。
(7)產品運營。指基于企業經營和產品戰略,以最優的路徑和最高效的執行,建立產品在市場上的競爭優勢,并最終取得產品市場成功的過程。
本次校內生產實習中,作為項目成員參與了整個實習的工作。具體上為早上了解相關技術的具體實施過程及一些相關的基礎知識,下午開始自己動手去實驗驗證早上的理論知識,完成布置下來的任務。晚上回去總結一天的收獲,以及準備好下一天的內容。
這次實習中,著重講解并實戰練習了一次完整的網絡滲透測試。在進行網絡滲透測試之前,首先需要了解一些關于網絡滲透方面的知識點。
怎么定義網絡滲透呢 ?簡單來說,網絡滲透測試是通過模擬黑客的攻擊來評估網絡系統安全的一種評估方法,是從攻擊者的角度對網絡安全進行檢測,包括對系統的任何弱點、技術缺陷或漏洞的主動分析。滲透測試可以以更有說服力的方式證明網絡安全防御確實有效,或者查出問題,可以幫助阻擋網絡未來要面臨的攻擊。
網絡滲透有什么目的呢 ?可以讓我們了解當前系統的安全性,了解攻擊者可能利用的途徑。它能夠讓管理人員非常直觀的了解當前系統所面臨的問題。
還需了解幾個相關的網絡滲透名詞。比如端口,端口一般指網絡中面向連接服務和無連接服務的通信協議端口,是一種抽象的軟件結構,包括一些數據結構和I/O(基本輸入輸出)緩沖區。比如內網,內網是一個只有組織工作人員才能訪問的專用網絡,組織內部IT系統提供的大量信息和服務是公眾無法從互聯網獲得的,最簡單的形式是使用局域網(LAN)、城域網(MAN)和廣域網(WAN)的技術建立內網。比如Windows域,將網絡中多臺計算機邏輯上組織到一起,進行集中管理,這種區別于工作組的邏輯環境叫做域,域是組織與存儲資源的核心管理單元,在域中,至少有一臺域控制器,域控制器中保存著整個域的用戶帳號和安全數據庫。比如Webshell,這是通過Web入侵的一種腳本工具,可以據此對網站服務進行一定程度的控制。比如漏洞,硬件、軟件、協議等等的可利用安全缺陷,可能被攻擊者利用,對數據進行篡改,控制等。比如后門,這是黑客為了對主機進行長期的控制,在機器上種植的一段程序或留下的一個“入口”。
網絡滲透過程中使用的工具有哪些呢 ?最常用的就有nmap掃描工具,Wireshark網絡協議分析器,Metasploit安全漏洞檢測工具,BurpSuite web應用程序集成平臺,SQLMap sql自動化注入工具等。
網絡滲透的具體過程是什么呢 ?網絡滲透一般可以分為以下八個步驟進行:
1.明確目標;2.信息收集;3.漏洞探測;4.漏洞驗證;5.信息分析;6.獲取所需;7.信息整理;8.形成報告。各步驟具體操作如下:
(1)明確目標:確定測試對象、范圍、時間。確定范圍:測試目標的范圍,ip,域名,內外網;確定規則:能滲透到什么程度,時間,能否修改上傳?能否提權等;確定需求:web應用的漏洞(新上線程序),業務邏輯漏洞(針對業務的),人員權限管理漏洞(針對人員、權限)等等。根據需求和自己技術能力來確定能不能做,能做多少。
(2)信息收集:在這步可以通過主動掃描和開放搜索等方式,搜集目標的一些基本信息,如目標IP,網段,域名,端口,或者目標操作系統版本,目標應用信息與其版本信息和服務信息,如果利用社會工程學的話,這里還可以相應從郵件列表/新聞組中獲取目標系統中一些邊緣信息如目標的域名注冊人員信息,web應用中網站發帖人的id和管理員姓名等。最后還可能探測出目標的防護設備。
(3)漏洞探測:這步則進行有針對性的漏洞掃描,探測網站是否存在一些常見的Web漏洞。常用的方法有漏掃,利用awvs,IBM appscan等工具;結合漏洞去exploit-db等位置找;或者在網上尋找驗證poc。通常來說幾大漏洞中系統漏洞是因為系統沒有及時打補丁,Web應用漏洞則是Web應用開發問題,其它端口服務漏洞則是各種21/8080(st2)/7001/22/3389端口所致。
(4)漏洞驗證:這步將發現的有可能可以成功利用的全部漏洞都驗證一遍,為下一步實施滲透做準備。很多情況下我們可以根據目標服務/應用的版本就可以到一些安全網站上獲取針對該目標系統的漏洞利用代碼,milw0rm,securityfocus等網站,上面都對應有搜索模塊。不同的漏洞有不同的利用工具,很多時候,通過一個漏洞我們很難拿到網站的webshell,我們往往需要結合幾個漏洞來拿webshell。比如利用Sqlmap工具來進行SQL注入,XSS跨站腳本還有可以使用>Burpsuite工具進行抓包改包等操作,或者利用文件上傳漏洞使用一句話木馬來獲得webshell。結合實際情況,搭建模擬環境進行試驗。成功后再應用于目標中。
(5)信息分析:這步也是為了下一步實施滲透做準備,比如精準打擊:準備好上步探測到的漏洞的exp, 用來精準打擊;繞過防御機制:探查是否有防火墻等設備,如何繞過等;定制攻擊路徑:最佳工具路徑在哪,根據薄弱入口,搞定內網權限位置,確定最終目標;繞過檢測機制:是否有檢測機制,是否有流量監控,是否有殺毒軟件,惡意代碼檢測等(免殺);攻擊代碼:試驗經過得來的代碼,包括不限于xss代碼,sql注入語句等。
(6)獲取所需:這一步則是開始正式進行對目標網站的滲透,獲取內部信息,如基礎設施(網絡連接,vpn,路由,拓撲等),根據需要還可以進行進一步滲透,即內網滲透敏感數據。如有需要還能留下后門,添加管理賬號。最后則需清理痕跡,即清理相關日志(訪問,操作),上傳文件等。
(7)信息整理:主要整理滲透測試中三個方面的內容,整理滲透工具:整理滲透過程中用到的代碼,poc,exp等;整理收集信息:整理滲透過程中收集到的一切信息;整理漏洞信息:整理滲透過程中遇到的各種漏洞,各種脆弱位置信息。為最后形成報告,形成測試結果使用。
(8)形成報告:滲透測試的最后一步就是形成測試報告,按照之前第一步跟客戶確定好的范圍,需求來整理資料,并將資料形成報告。內容主要有:補充介紹,要對漏洞成因,驗證過程和帶來危害進行分析;修補建議,對所有產生的問題提出合理高效安全的解決辦法。
以下為部分滲透過程截圖:
(1)使用namp掃描工具掃描:
Nmap –sP Ping掃描
Namp –sS TCP SYN掃描
Namp –A 綜合掃描,包括系統探測,版本探測,腳本掃描,路由跟蹤
(2)編寫一個多線程的端口掃描器,掃描結果為 (開放端口 - > 對應服務 );對靶機進行掃描,代碼如下:
掃描結果:
(3)kali下滲透metasploitable靶機
登陸系統
端口滲透:6667——-irc_3281_backdoor,利用metasploit
6200——-vsftpd_234_backdoor,利用metasploit
(4)使用DVWA平臺對mysql常用注入語句進行測試。
輸入變為“’”時,頁面提示錯誤“You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘’’’’ at line 1”
結果如圖。看到這個結果,我們可以欣慰的知道,這個表單存在著注入漏洞
輸入1’ and 1=2 union select user(),database() –
可以得到連接數據庫的用戶為 root@localhost ,數據庫名稱為dvwa
輸入“ 1’ and 1=2 union select version(),database() – ”便得到了版本信息5.5.53
測試連接數據庫權限,輸入1’ and ord(mid(user(),1,1))=114 –
返回正常說明為root
查詢mysql數據庫,所有數據庫名字:這里利用mysql默認的數據庫infromation_scehma,該數據庫存儲了Mysql所有數據庫和表的信息。
輸入 1’ and 1=2 union select 1,schema_name from information_ schema.schemata –
爆出數據庫中字段的內容 1’ and 1=2 union select first_name,last_name from users – ,這里其實如果是存放管理員賬戶的表,那么用戶名,密碼信息字段就可以爆出來了
網絡滲透測試中也應該要注意到的幾點問題:
(1)在滲透測試中不使用含有拒絕服務的測試策略。(2)滲透測試時間盡量安排在業務量不大的時段或者晚上。(3)在滲透測試過程中如果出現被評估系統沒有響應的情況,應當立即停止測試工作,與用戶相關人員一起分析情況,在確定原因后,并待正確恢復系統,采取必要的預防措施(比如調整測試策略等)之后,才可以繼續進行。(4)測試人員會與用戶網站系統和安全管理人員保持良好溝通。隨時協商解決出現的各種難題。(5)測試方自控:由滲透測試方對本次測透測試過程中的三方面數據進行完整記錄:操作、響應、分析,最終形成完整有效的滲透測試報告提交給用戶。
總結:通過模擬的一次簡單的網絡滲透測試,了解到了(1)應用系統在正式部署上線前應在內網先進行安全測試,通過安全測試后再放至公網;(2)應用系統在開發過程中,應考慮網站應具備的安全功能需求,如:登錄框的驗證碼機制、口令的復雜度限制、口令的加密傳輸、后臺管理頁面限定IP訪問及上傳功能安全機制等方面;(3)建立統一、切實可用的的基礎環境規范并落實,如:中間件的安裝部署基線、操作系統的安裝部署基線等;(4)部署網站防篡改及網頁防火墻系統, 保護DMZ 區域內的所有WEB 網站。
實習心得體會
對于我們計算機專業來說,開發就是一個發展的概念。而專業工程實踐則更像是一個為我們以后更好的為社會可持續發展做出貢獻的先行站,是嘗試性的一步。開發性工作能夠有效改善社會的可持續發展,其本身應該隨著社會的發展而持續、穩定、協調地發展。信息資源是國家的戰略性資源,其是否能夠可持續地積累和利用顯得尤為重要。必須重視開發本身的可持續發展問題。影響開發可持續發展的因素也多種多樣,貫穿于開發的各個環節,既需要站在戰略高度來認識,又需要技術創新與制度創新并重,在各個環節落實具體措施,才能有利于開發工作的可持續發展,從而為人類社會的可持續發展提供持續的有效支持。
對于我們計算機從業人員來說,工程倫理的概念也顯得格外重要。在平時的工作中,應該把技術人道主義、技術愛國主義、技術公利主義、人與自然的和諧主義以及技術主體內部的平等互惠主義,作為在從事技術活動中應遵循的道德原則、規范與追求的道德價值目標。法律是道德的底線,計算機從業人員職業道德的最基本要求就是遵循國家關于計算機管理理方面的法律法規。如《計算機軟件保護條例》和《互聯網信息服務管理方法》等,這些法律法規是應當被每一位計算機職業從業人員所牢記的,嚴格遵守這些法律法規正是計算機專業人員職業道德的最基本要求。
未來一段時期, 我國將會利用國際產業轉移的重大機遇, 聚集各種資源, 突破核心技術制約,在集成電路、軟件、計算機與信息處理、現代移動通信、信息安全、信息服務和系統集成等技術領域加強創新,促進IT 產品更新換代,推動我國由IT 大國向IT 強國轉變,并進而推動國民經濟信息化進程,以信息化帶動工業化,走出一條新型工業化道路。所以,無論是從大的方向講,還是從小的方面講,培養和儲備高素質的IT 人才都顯得非常重要。所以對于我們計算機從業人員來說,這是個很好的機遇。但同時也該認識到,就目前而言,高校教育的穩定性與計算機產業的急速發展不能相互適應,社會缺乏的是有實際能力,能實際動手操作型的計算機人才。市場需要的是計算機專業人才, 而很多計算機專業畢業的學生都不能滿足市場的需求。所以我們打鐵還需自身硬,自身而言更需加倍努力,成為社會所需要的人才。
總結
以上是生活随笔為你收集整理的项目实习(五)网络渗透实验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c# datatable数据合并方法
- 下一篇: 什么是西安80坐标系