php滲透
① 網站安全滲透測試怎麼做
信息收集:
1、獲取域名的whois信息,獲取注冊者郵箱姓名電話等。
2、查詢伺服器旁站以及子域名站點,因為主站一般比較難,所以先看看旁站有沒有通用性的cms或者其他漏洞。
3、查看伺服器操作系統版本,web中間件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞。
4、查看IP,進行IP地址埠掃描,對響應的埠進行漏洞探測,比如 rsync,心臟出血,mysql,ftp,ssh弱口令等。
5、掃描網站目錄結構,看看是否可以遍歷目錄,或者敏感文件泄漏,比如php探針。
6、google hack 進一步探測網站的信息,後台,敏感文件。
漏洞掃描:
開始檢測漏洞,如XSS,XSRF,sql注入,代碼執行,命令執行,越權訪問,目錄讀取,任意文件讀取,下載,文件包含, 遠程命令執行,弱口令,上傳,編輯器漏洞,暴力破解等。
漏洞利用:
利用以上的方式拿到webshell,或者其他許可權。
許可權提升:
提權伺服器,比如windows下mysql的udf提權。
日誌清理:
結束滲透測試工作需要做的事情,抹除自己的痕跡。
總結報告及修復方案:
報告上包括:
1、對本次網站滲透測試的一個總概括,發現幾個漏洞,有幾個是高危的漏洞,幾個中危漏洞,幾個低危漏洞。
2、對漏洞進行詳細的講解,比如是什麼類型的漏洞,漏洞名稱,漏洞危害,漏洞具體展現方式,修復漏洞的方法。
② 網路安全去應該去哪裡學習呢。
只要想學習哪裡學習都是有效果的。但需要結合自身的一些特點來調整學習方向,這樣學習起來會事半功倍,以下推薦3種學習線路,適用於不同的學習人群;
方法1:先學習編程,然後學習Web滲透及工具使用等
適用人群:有一定的代碼基礎的小夥伴
(1)基礎部分
基礎部分需要學習以下內容:
(1.1)計算機網路 :
重點學習OSI、TCP/IP模型,網路協議,網路設備工作原理等內容,其他內容快速通讀;
【推薦書籍】《網路是怎樣連接的_戶根勤》一書,簡明扼要,淺顯易懂,初學者的福音;如果覺得不夠專業,可以學習圖靈設計叢書的《HTTP權威指南》;
(1.2)linux系統及命令 :
由於目前市面上的Web伺服器7成都是運行在Linux系統之上,如果要學習滲透Web系統,最起碼還是要對linux系統非常熟悉,常見的操作命令需要學會;
學習建議:學習常見的10%左右的命令適用於90%的工作場景,和office軟體一樣,掌握最常用的10%的功能,基本日常使用沒什麼問題,遇到不會的,再去找相關資料;常見的linux命令也就50-60個,很多小白囫圇吞棗什麼命令都學,這樣其實根本記不住。
【推薦書籍】Linux Basics for Hackers;
(1.3)Web框架 :
熟悉web框架的內容,前端HTML,JS等腳本語言了解即可,後端PHP語言重點學習,切記不要按照開發的思路去學習語言,php最低要求會讀懂代碼即可,當然會寫最好,但不是開發,但不是開發,但不是開發,重要的事情說三遍;
資料庫:
需要學習SQL語法,利用常見的資料庫MySQL學習對應的資料庫語法,也是一樣,SQL的一些些高級語法可以了解,如果沒有時間完全不學也不影響後續學習,畢竟大家不是做資料庫分析師,不需要學太深;
(2)Web安全
(2.1)Web滲透
掌握OWASP排名靠前的10餘種常見的Web漏洞的原理、利用、防禦等知識點,然後配以一定的靶場練習即可;有的小白可能會問,去哪裡找資料,建議可以直接買一本較為權威的書籍,配合一些網上的免費視頻系統學習,然後利用開源的靶場輔助練習即可;
【推薦書籍】白帽子講Web安全(阿里白帽子黑客大神道哥作品)
【推薦靶場】常見的靶場都可以上github平台搜索,推薦以下靶場DVWA、bWAPP、upload-labs-master、SQL-lib-master、WebBug、pikachu等,有些是綜合靶場,有些是專門針對某款漏洞的靶場;
(2.2)工具學習
Web滲透階段還是需要掌握一些必要的工具,工具的學習b站上的視頻比較多,挑選一些講解得不錯的視頻看看,不要一個工具看很多視頻,大多數視頻是重復的,且很浪費時間;
主要要掌握的工具和平台:burp、AWVS、Appscan、Nessus、sqlmap、nmap、shodan、fofa、代理工具ssrs、hydra、mesa、airspoof等,以上工具的練習完全可以利用上面的開源靶場去練習,足夠了;
練習差不多了,可以去SRC平台滲透真實的站點,看看是否有突破,如果涉及到需要繞過WAF的,需要針對繞WAF專門去學習,姿勢也不是特別多,系統性學習學習,然後多總結經驗,更上一層樓;
(2.2)自動化滲透
自動化滲透需要掌握一門語言,且需要熟練運用,可以是任何一門自己已經掌握得很熟悉的語言,都可以,如果沒有一門掌握很好的,那我推薦學習python,最主要原因是學起來簡單,模塊也比較多,寫一些腳本和工具非常方便;
雖說不懂自動化滲透不影響入門和就業,但是會影響職業的發展,學習python不需要掌握很多不需要的模塊,也不需要開發成千上萬行的代碼,僅利用它編寫一些工具和腳本,少則10幾行代碼,多則1-200行代碼,一般代碼量相對開發人員已經少得不能再少了,例如一個精簡的域名爬蟲代碼核心代碼就1-20行而已;
幾天時間學習一下python的語法,有代碼基礎的,最快可能一天就可以學習完python的語法,因為語言都是相通的,但是學習語言最快的就是寫代碼,別無他法;接下來可以開始嘗試寫一些常見的工具,如爬蟲、埠探測、數據包核心內容提取、內網活躍主機掃描等,此類代碼網上一搜一大把;然後再寫一些POC和EXP腳本,以靶場為練習即可;有的小夥伴可能又要問了,什麼是POC和EXP,自己網路去,養成動手的好習慣啦;
(2.3)代碼審計
此處內容要求代碼能力比較高,因此如果代碼能力較弱,可以先跳過此部分的學習,不影響滲透道路上的學習和發展。
但是如果希望在Web滲透上需要走得再遠一些,需要精通一門後台開發語言,推薦php,因為後台採用php開發的網站占據最大,當然你還精通python、asp、java等語言,那恭喜你,你已經具備很好的基礎了;
代碼審計顧名思義,審計別人網站或者系統的源代碼,通過審計源代碼或者代碼環境的方式去審計系統是否存在漏洞(屬於白盒測試范疇)
那具體要怎麼學習呢?學習的具體內容按照順序列舉如下 :
掌握php一些危險函數和安全配置;
熟悉代碼審計的流程和方法;
掌握1-2個代碼審計工具,如seay等;
掌握常見的功能審計法;(推薦審計一下AuditDemo,讓你產生自信)
常見CMS框架審計(難度大); 代碼審計有一本國外的書籍《代碼審計:企業級Web代碼安全架構》,當然有空的時候可以去翻翻,建議還是在b站上找一套系統介紹的課程去學習;github上找到AuditDemo,下載源碼,搭建在本地虛擬機,然後利用工具和審計方法,審計AuditDemo中存在的10個漏洞,難度分布符合正態分布,可以挑戰一下;
至於CMS框架審計,可以去一些CMS官方網站,下載一些歷史存在漏洞的版本去審計,框架的學習利用官方網站的使用手冊即可,如ThinkPHP3.2版本是存在一些漏洞,可以嘗試讀懂代碼;但是切記不要一上來就看代碼,因為CMS框架的代碼量比較大,如果不系統先學習框架,基本屬於看不懂狀態;學習框架後能夠具備寫簡單的POC,按照代碼審計方法結合工具一起審計框架;其實也沒沒想像中的那麼難,如果你是開發人員轉行的,恭喜你,你已經具備代碼審計的先天性優勢。
可能有人會問:「我代碼很差,不學習代碼審計行不行?」其實代碼審計不是學習網路安全的必要條件,能夠掌握最好,掌握不了也不影響後續的學習和就業,但你需要選擇一個階段,練習得更專業精通一些,如web滲透或者內網滲透,再或者是自動化滲透;
(3)內網安全
恭喜你,如果學到這里,你基本可以從事一份網路安全相關的工作,比如滲透測試、Web滲透、安全服務、安全分析等崗位;
如果想就業面更寬一些,技術競爭更強一些,需要再學習內網滲透相關知識;
內網的知識難度稍微偏大一些,這個和目前市面上的學習資料還有靶場有一定的關系;內網主要學習的內容主要有:內網信息收集、域滲透、代理和轉發技術、應用和系統提權、工具學習、免殺技術、APT等等;
可以購買《內網安全攻防:滲透測試實戰指南》,這本書寫得還不錯,國內為數不多講內網的書籍,以書籍目錄為主線,然後配合工具和靶場去練習即可;
那去哪裡可以下載到內網靶場?如果你能力夠強,電腦配置高,可以自己利用虛擬機搭建內網環境,一般需要3台以上的虛擬機;你也可以到國外找一些內網靶場使用,有一些需要收費的靶場還可以;
(4)滲透拓展
滲透拓展部分,和具體工作崗位聯系也比較緊密,盡量要求掌握,主要有日誌分析、安全加固、應急響應、等保測評等內容;其中重點掌握前三部分,這塊的資料網路上也不多,也沒有多少成型的書籍資料,可通過行業相關的技術群或者行業分享的資料去學習即可,能學到這一步,基本上已經算入門成功,學習日誌分析、安全加固、應急響應三部分的知識也相對較為容易。
方法2:先學習Web滲透及工具,然後再學習編程
適用人群:代碼能力很弱,或者根本沒有什麼代碼能力,其他基礎也相對較差的小夥伴
基礎需要打好,再學習Web滲透比如linux系統、計算機網路、一點點的Web框架、資料庫還是需要提前掌握;
像php語言、自動化滲透和代碼審計部分內容,可以放在最後,當學習完畢前面知識後,也相當入門後,再來學習語言,相對會容易一些;
【優先推薦】方法2,對於小白來說,代碼基礎通常較弱,很多很多小白會倒在前期學習語言上,所以推薦方法2的學習,先學習web滲透和工具,也比較有意思,容易保持一個高漲的學習動力和熱情,具體學習內容我就不說了,請小夥伴們參照方法1即可。
方法3:選擇一些適合自己的課程學習
適用人群:需要體系化學習、增強實戰能力的小夥伴
具體根據自身條件來講,如果你自學能力較差,那建議選擇課程學習,網上各大平台等都有很多各式各樣的課程,是可以更快幫助你迅速入門的,然後再根據自己自身所欠缺的方面,不斷去完善和學習,最後達到你所要的優秀水平。
學習書籍推薦如下:
【基礎階段】
Linux Basics for Hackers(中文翻譯稿)
Wireshark網路分析(完整掃描版)
精通正則表達式(中文第3版)
圖解HTTP 彩色版
[密碼學介紹].楊新.中文第二版
網路是怎樣連接的_戶根勤
[PHP與MySQL程序設計(第4版)].W.Jason.Gilmore
【web滲透階段】
web安全攻防滲透測試實戰指南
白帽子講Web安全
Web安全深度
【自動化滲透階段】
Python編程快速上手-讓繁瑣工作自動化
【代碼審計階段】
代碼審計:企業級Web代碼安全架構
【內網滲透階段】
內網安全攻防:滲透測試實戰指南
社會工程防範釣魚欺詐
③ 內網滲透--對不出網目標的打法
配置網路
在VM虛擬機中按照下邊的網路拓撲進行配置網路。網路拓撲圖如下:
win7具有雙網卡,其中外網ip是192.168.8.133,內網網段是52。三台機器彼此互通,但是win server 2008和win2003不通外網。用我mac作為攻擊機,來對這個靶場環境進行滲透測試。
外網打點
在win7這台靶機上,使用PHPStudy讓網站可以運行起來。在攻擊機上,訪問 http://192.168.8.133 可以看到是一個phpStudy 探針。對這網站進行滲透,因為本文主要寫在內網滲透過程中對不出網主機的滲透,所以此處外網打點就不寫的很詳細了。
針對此靶場進行外網滲透拿許可權大致有這幾種方法:
通過phpmyadmin弱口令,進入phpmyadmin後台。然後知識點就變成了,通過phpmyadmin進行getshell,這個點又分為,得到網站絕對路徑後,使用select into outfile的方式寫shell和利用日誌寫shell。在此處,我是使用日誌寫shell的方法拿到許可權。因為secure_file_priv配置為null,禁止修改目錄下的文件,也就不能使用into outfile的方式寫入shell。
通過目錄掃描可以掃出beifen.rar,備份文件。在源碼中可以找到登陸後台的賬號密碼:admin/123456和登陸路徑/index.php?r=admin,在前台模板文件中添加一句話木馬連接也可獲取shell。
獲得webshell的信息收集
通過外網打點獲得的webshell,可以進行一波信息收集,摸清我是誰?我在哪?有沒有內網環境?有沒有殺軟?通過拿到webshell後的信息收集的結果來評估一下有沒有必要繼續深入或者初步了解繼續深入的話需要哪些手段。
我是誰?
蟻劍已經給出基礎信息
我在哪?
使用ipconfig /all 看一下網路信息
目標有兩個網卡,並且存在域環境,那麼就有打它內網的必要了。
有沒有殺軟?
tasklist查看一下進程信息
根據進程查一下是否有殺軟
目標沒有使用殺軟,還有域環境那麼讓它直接cs上線。
內網滲透
cs上線
內網信息收集
信息收集每個人都有自己的習慣,信息收集的順序和信息收集的項目也都不太一樣,只要根據自己的習慣和嗅覺,針對目標具體情況進行收集,以求盡快的拿下目標就好。信息收集的越全面突破口也就會越多,考慮到篇幅和文章內容匹配度等因素,此處並沒有寫出大量信息收集方法。
使用cs自帶的net view查看域信息。
使用cs自帶功能進行埠掃描,分別對8和52兩個網段進行掃描進行完這兩個步驟以後,cs會把掃到的目標列出來。
因為拿到的是管理員許可權,可以先抓一波密碼。用 cs 的 hashmp 讀內存密碼,用 mimikatz 讀注冊表密碼:logonpasswords。
此處打碼的地方是因為配置靶機登陸時靶機提示重置密碼,我給靶機改了個包含個人信息的密碼。蠢哭。拿到密碼後,目標主機沒有開啟防火牆,可以使用cs自帶的psexec做一波橫向,因為抓到很多域中機器密碼,域控密碼也抓到了。
內網橫向(通過登錄憑證)
這個靶機設置的比較簡單,抓到密碼後,因為抓到了域控登陸的憑證,那麼使用psexec即可橫向內網所有機器。因為,另外兩台內網的機器不出網,那麼就到了本文著重練習的點了,打不出網的機器。
不出網機器上線一般有以下幾種方式:
使用smb beacon
配置listener通過HTTP代理上線
使用pystinger搭建socks4代理
這幾種方式之前有師傅也在先知寫過 《不出網主機上線方法》 。此處我採用的SMB beacon這個方法。
SMB Beacon使用命名管道通過父級Beacon進行通訊,當兩個Beacons鏈接後,子Beacon從父Beacon獲取到任務並發送。因為鏈接的Beacons使用Windows命名管道進行通信,此流量封裝在SMB協議中,所以SMB beacon相對隱蔽。SMB beacon不能直接生成可用載荷, 只能使用 PsExec 或 Stageless Payload 上線。
首先得到內網中一台主機的beacon,抓取密碼後進行smb噴射,得到另一台開放445埠的機器上的administrator賬戶密碼,在目標機器不出網的情況下,可以使用Smb beacon使目標主機上線
使用條件
具有 SMB Beacon 的主機必須接受 445 埠上的連接。
只能鏈接由同一個 Cobalt Strike 實例管理的 Beacon。
利用這種beacon橫移必須有目標主機的管理員許可權或者說是擁有具有管理員許可權的憑據。
使用方法:
1.建立smb的listener
2.在cs中使用psexec進行橫向移動,選擇現有的beacon作為跳板,這里憑據必須是administrator ,即擁有目標主機管理員許可權
3.連接成功,可以看到smb beacon上線的主機右側有∞∞標識
使用這種方法上線的機器,主要是通過出網機作為一個中間人,不出網主機成功上線後,如果出網機一斷開,這個不出網主機也會斷。
內網橫向(通過ms-17010)
在拿下win7的時候,可以給它傳一個fscan,給win7做一個內網大保健。上傳fscan後,運行掃一下內網。
發現存在ms17010。
ms17010常見的幾種打法:
msf
ladon/ladon_ms17010
從msf分離出的exe
nessus里的exe
cs插件
這幾種打法,我在這個環境中都做過嘗試。過程就不一一敘述了,直接說我測試的結果。msf是最穩定的,但是打起來有稍許的麻煩因為要設置監聽模塊和選擇攻擊模塊等配置。ladon_ms17010方便但是不太穩有時候會打不成功。cs插件也不穩,並且在這種不出網網路不穩定的情況下成功率會變的更低。
這個圖片的ip可能跟上邊配置符不起來,因為我在測試過程中,網斷過幾次,ip就變了。所以,在打的時候,如果ladon和分離出的exe沒有打成,不要輕易放棄,用msf在打打試試,畢竟工具就是工具,不能過分依賴某個工具。
在這種不出網的情況下,可以優先考慮使用從msf分離出的exe和ladon_ms17010來打,打成功會直接通過自定義的dll新建一個用戶並加入管理員組,開啟3389埠。根據實際情況,可考慮在合適的時間段和條件下直接遠程登入,翻一下敏感數據,往往會因為運維人員的很多「好習慣」而給滲透帶來很多便利,比如說「密碼本.txt」。
msf打不出網機器的ms17010
msf在單兵作戰的時候還是很穩定很香的。首先,讓出網機器先在msf上線,可以用cs直接傳遞會話,或者生成個msf馬直接運行一下。在這的方法就很多了。win7在msf上線後,因為我們已經提前知道了,存在52這個不出網的段,那麼就需要在msf中添加路由。
查看路由
run get_local_subnets
添加路由
run autoroute -s 192.168.52.0/24
查看添加的路由
run autoroute -p
把shell切換到後台,然後使用ms17010模塊進行漏洞利用,監聽時使用正向監聽,即可
小貼士:
漏洞檢測方法:
use auxiliary/scanner/smb/smb_ms17_010
之後設置一下目標ip和線程即可,這里因為已經掃出存在漏洞的機器了,也就不在敘述。
漏洞利用常使用的是:
auxiliary/admin/smb/ms17_010_command
exploit/windows/smb/ms17_010_eternalblue
exploit/windows/smb/ms17_010_psexec
這里的第一個和第三個模塊需要目標開啟命名管道,並且比較穩定。第二個模塊只要存在漏洞即可,但是會有概率把目標打藍屏,而且殺軟攔截也會比較嚴格,如果有殺軟就基本可以放棄這個模塊了。
在打ms17010的時候,不妨使用auxiliary/admin/smb/ms17_010_command模塊探測一下是否可以使用命名管道。
use auxiliary/admin/smb/ms17_010_commandsetrhosts192.168.164.156192.168.164.161setcommandtasklistshow optionsrun
如果命令執行成功的話就可以優先考慮
auxiliary/admin/smb/ms17_010_commandexploit/windows/smb/ms17_010_psexec
這兩個模塊進行利用。
我在上邊打得時候因為目標機器沒有殺軟就直接使用exploit/windows/smb/ms17_010_eternalblue來打了,期間為了測試打過多次,確實出現了把目標機器打重啟的情況。
總結
這個靶場設計的技能點比較基礎,外網打點獲得shell後,直接可以通過cs上線,在管理員許可權下,抓取密碼,新建一個smb beacon然後使用psexec對內網兩台不出網的機器進行橫向。
④ 什麼是滲透測試服務這個介紹的真詳細
滲透測試是通過模擬惡意黑客的攻擊方法,來評估計算機網路系統安全的一種評估方法。這個過程包括對系統的任何弱點、技術缺陷或漏洞的主動分析,這個分析是從一個攻擊者可能存在的位置來進行的,並且從這個位置有條件主動利用安全漏洞。
專業服務
滲透測試有時是作為外部審查的一部分而進行的。這種測試需要探查系統,以發現操作系統和任何網路服務,並檢查這些網路服務有無漏洞。你可以用漏洞掃描器完成這些任務,但往往專業人士用的是不同的工具,而且他們比較熟悉這類替代性工具。
滲透測試的作用一方面在於,解釋所用工具在探查過程中所得到的結果。只要手頭有漏洞掃描器,誰都可以利用這種工具探查防火牆或者是網路的某些部分。但很少有人能全面地了解漏洞掃描器得到的結果,更別提另外進行測試,並證實漏洞掃描器所得報告的准確性了。