第6章 远程控制

如果说漏洞是黑客进入计算机的入口,那么现在我们已经掌握了找到这个入口的方法,那就是对目标进行信息搜集。以笑脸漏洞为例,我们其实不仅仅发现了这个入口,甚至还找到了打开它的“钥匙”。这只是漏洞的一个特例,如果目标主机上运行的 vsftpd-2.3.4 被黑客使用笑脸漏洞成功渗透,就会自动在6200 端口打开一个连接,而黑客可以通过这个连接实现对目标主机的控制。如果将这个连接比作一个很小的入口,它可能刚好能让一个人爬行通过,而本章要介绍的就是如何将这个入口变大,大到卡车都可以进出自由。这个大的入口就是我们所说的远程控制。

6.1 为什么6200端口变成了一个“后门”

Netcat工具的使用:(以Metasploitable 2的80端口为例进行测试)

1.使用Netcat扫描某IP地址的指定端口

┌──(kali㉿kali)-[~]
└─$ nc -v 192.168.17.128 80

2.使用Netcat连接指定IP地址的指定端口

┌──(kali㉿kali)-[~]
└─$ nmap --script vuln -p 21 192.168.17.129

I:激活笑脸漏洞,使其开启6200端口:

┌──(kali㉿kali)-[~]
└─$ nmap -p 6200 192.168.17.129

编写python脚本(文件名:backdoor.py):

执行并验证:

(图)

I: 显示指定目录下的内容

 II: 尝试其它测试命令

┌──(kali㉿kali)-[~]
└─$ nc 192.168.17.128 21

┌──(kali㉿kali)-[~]
└─$ nmap -p 6200 192.168.17.128

┌──(kali㉿kali)-[~]
└─$ nc 192.168.17.129 21

┌──(kali㉿kali)-[~]
└─$ nc -v 192.168.17.129 6200

6.2 远程控制程序基础

1、远程控制程序:被控端 + 主控端

2、远程控制软件分类:

    按连接方式分:正向、反向(注意:现在大都采用反向远程控制方式)

    按目标系统分:Windows、Androd、iOS、各种版本的Linux操作系统。

6.3 如何使用MSFPC生成被控端并进行远程控制

在Kali 2中生成被控端的工具:MSFPC(msfvenom的优化版)

6.3.1 生成windows系统下的被控端并进行远程控制

测试windows系统实验使用的网络环境,填写以下IP地址:

测试用windows系统(WinXPenSP)的IP:      192.168.17.131        

测试用windows 7系统(32位Windows7)的IP:     192.168.17.130          

虚拟机Kali Linux 2的IP:      192.168.17.129       

步骤一:生成Windows操作系统下的被控端

步骤二:把被控端放到kali的网站主目录下,启动apache2,到目标靶机(WinXPenSP3)下载被控端并运行。

1.把被控端放到kali的网站主目录下
┌──(kali㉿kali)-[~]
└─$ cp windows-meterpreter-staged-reverse-tcp-443.exe /var/www/html

2、启动apache2

检查apache2服务是否启动

3、到目标靶机(WinXPenSP3)下载被控端并运行
(1)给被控端改一个好记的名字。

(2)在目标靶机下载被控端

(3)运行被控端

步骤三:在kali中运行主控端

配置对应的主控端

步骤四:控制目标靶机一(WinXPenSP3

1.查看会话,并选择会话。

2.列出当前目录下的所有文件等。

3、打开cmd执行各种命令,如查看文件夹内容、操作系统信息、关机。
Shell

设置1000毫秒后关机,并弹出提示信息“hello!”。

4、退出shell

步骤五:类似上述操作,控制目标靶机二(32Windows7

1.在kali中使用background命令回到主控端控制台。

2.到目标靶机(32位Windows7)下载被控端并运行

3.在kali中是否自动打开

4、查看并选择会话3,控制32位windows7。

5、打开cmd执行各种命令,如查看文件夹内容、操作系统信息、关机。
(1)输入shell

(2)查看操作系统信息

(3)延时关闭系统并显示提示信息

6、退出shell,关闭所有会话。

如果要结束会话1,使用什么命令?

sessions内使用exit,或者直接在主控端控制台使用k id

6.3.2 生成android系统下的被控端并进行远程控制

测试android系统实验使用的网络环境,填写以下IP地址:

测试用android系统的IP: 192.168.17.130       

虚拟机Kali Linux 2的IP:  192.168.17.132        

步骤一:生成android操作系统下的被控端

步骤二:把被控端放到kali的网站主目录下,启动apache2,到目标靶机(安卓虚拟机)下载被控端并运行。

1、把被控端放到kali的网站主目录下

将被控端改名为:android

2、启动apache2

检查apache2服务是否启动?

如果没有启动,启动apache2。

3、到目标靶机(安卓虚拟机)下载被控端并运行
(1)在目标靶机(安卓虚拟机)下载被控端

(2)运行被控端

更改设置:允许安装来自未知来源的应用。

更改之后,再次运行被控端,并选择打开。

步骤三:在kali中运行主控端

配置对应的主控端(一定要用root身份运行)

安卓机运行被控端之前,如下图。

安卓机运行被控端之后,如下图。

步骤四:控制目标靶机(安卓虚拟机)

1.查看会话,并选择会话

2、输入shell,执行各种命令,如查看操作系统信息、切换到root用户等。

查看当前用户帐号。

查看操作系统信息。

切换到root用户。

1.在安卓虚拟机中弹出提示信息,选择“拒绝”。

在kali中可以看到操作结果是什么?

2.在安卓虚拟机中弹出提示信息,选择“允许”。

在kali中可以看到操作结果是什么?

在kali中输入whoami,显示当前用户。

切换为root用户之后,可以对安卓机进行最大权限的控制,比如关闭selinux、读取文件等。

I:当前安卓机的selinux状态:许可

II:尝试在Download目录下载一个windows的被控端。

切换到Download目录,查看当前目录的所有文件:

下载windows的被控端win.exe和txt文件haha.txt:

III:删除Download目录中的所有文件

3、退出

6.3.3 生成Linux系统下的被控端并进行远程控制

生成Linux操作系统下的被控端(只做此步骤,后续步骤选做!)

6.4-6.5 如何使用msfvenom生成被控端并进行远程控制

在Kali 2中生成被控端的工具:msfvenom(msfvenom是渗透测试工具Metasploit中的一个命令)

前导练习:

1、查看帮助信息

2、查看所有可以使用的攻击模块

3、筛选出使用reverse_tcp的模块

6.4 如何使用msfvenom生成被控端并进行远程控制

6.4.1 生成windows系统下的被控端并进行远程控制

测试windows系统实验使用的网络环境,填写以下IP地址:

测试用windows系统(WinXPenSP)的IP:     192.168.17.131             

虚拟机Kali Linux 2的IP:    192.168.17.129                   

步骤一:生成Windows操作系统下的被控端并放入目标靶机运行

options(选项):

-p   指定要生成的攻击荷载(payload)

-f   输出格式(format)

-o   输出(out)存储payload的位置

方法一(教材): 将被控端payload.exe生成到/var/payload.exe

方法二:将被控端winpayload.exe生成到网站的目录(/var/www/html/)下,然后到靶机中用浏览器下载并运行。
1.将被控端改名为winpayload.exe复制到网站的目录(/var/www/html/)下 

2.检查apache2服务是否启动:systemctl status apache2.service

3.启动apache2服务:systemctl start apache2.service

4到靶机WinXPenSP3中用浏览器下载并运行

 

步骤二 :启动主控端

(参考6.5 如何在Kali Linux 2中启动主控端)

1.启动metasploit,进入metasploit(msf)的控制台。

2、使用handler模块,然后配置参数。
(1)use exploit/multi/handler

使用--list formats查看Metasploit所有支持的格式:

1.设置攻击载荷为windows/meterpreter/reverse_tcp

2.设置lhost为kali的IP

3.设置lpost为5000

4.发起攻击(等待目标靶机WinXPenSP3上线)

5.是否建立会话?

步骤三:控制目标靶机(WinXPenSP3

输入shell,执行各种命令,如查看操作系统信息、磁盘信息、关闭系统等。

1.查看操作系统信息

2.查看目标靶机有哪些磁盘

3.延时关闭系统并弹出提示框

4.退出控制

6.4.2 生成linux系统下的被控端并进行远程控制

测试linux系统实验使用的网络环境,填写以下IP地址:

测试用linux系统(Metasploitable2-Linux)的IP:     192.168.17.128            

虚拟机Kali Linux 2的IP:      192.168.17.129               

步骤一:生成linux操作系统下的被控端并放入目标靶机运行

1、查看linux的攻击载荷

2、生成被控端

(1)将被控端linuxpayload.elf生成到网站的目录(/var/www/html/)下,稍后到靶机中用浏览器下载并运行。

(2)检查apache2服务是否启动,如果未启动apache2服务,则需要启动。

步骤二 :启动主控端

(参考6.5 如何在Kali Linux 2中启动主控端)

1.启动metasploit,进入metasploit(msf)的控制台。

2.使用handler模块,然后配置参数。

(1)使用handler模块

(2)设置攻击载荷为linux/x86/meterpreter/reverse_tcp

(3)设置lhost为kali的IP

(4)设置lpost为5001

(5)发起攻击(等待目标靶机Metasploitable2-Linux上线)

步骤三 :到目标靶机(Metasploitable2-Linux)下载攻击载荷并运行。

1.下载被控端

2.查看被控端是否给了执行权限,没给则需要添加执行权限。

3.运行被控端

返回到kali,是否建立会话?

步骤四:控制目标靶机(Metasploitable2-Linux

输入shell,执行各种命令,如查看操作系统信息、磁盘信息、关闭系统等。

(1)查看操作系统信息

(2)查看主机名

(3)查看IP地址

(4)使用curl命令访问kali的网页

退出控制

6.4.3 生成android系统下的被控端并进行远程控制

测试android系统实验使用的网络环境,填写以下IP地址:

测试用android系统的IP:     192.168.17.130             

虚拟机Kali Linux 2的IP:      192.168.17.129          

步骤一:生成android操作系统下的被控端并放入目标靶机运行

1.查看android的攻击载荷(只查看使用reverse_tcp)

2、生成被控端
(1)将被控端androidpayload.apk生成到网站的目录(/var/www/html/)下

(2)检查apache2服务是否启动,如果未启动apache2服务,则需要启动。

步骤二 :启动主控端

(参考6.5 如何在Kali Linux 2中启动主控端)

1.启动metasploit,进入metasploit(msf)的控制台。

 

2、使用handler模块,然后配置参数。

(1)使用handler模块

(2)设置攻击载荷为android/meterpreter/reverse_tcp

(3)设置lhost为kali的IP

(4)设置lpost为5002

(5)发起攻击(等待目标靶机android-86_64-7.1-r5上线)

步骤三 :到目标靶机(android-86_64-7.1-r5)下载攻击载荷并运行。

1.下载被控端

2.运行被控端

返回到kali,是否建立了会话?

步骤四:控制目标靶机(android-86_64-7.1-r5

输入shell,执行各种命令,如查看操作系统信息、磁盘信息、关闭系统等。

1、输入:shell

2、查看当前用户名

3、查看操作系统信息

4、尝试切换到root用户 

(1)在安卓虚拟机中弹出提示信息,选择“拒绝”。

在kali中可以看到什么结果?

(2)在安卓虚拟机中弹出提示信息,选择“允许”。

在kali中可以看到什么结果?

在kali中输入whoami,显示当前用户。

切换为root用户之后,可以对安卓机进行最大权限的控制。

I:显示根目录的文件

II:进入存储卡中的下载目录(sdcard/Download),查看当前目录的文件。

III:删除Download目录中的文件

IV:关闭系统

关闭系统之后,主控端无法再继续控制了。

退出

6.6 远程控制被控端与杀毒软件的博弈

1、杀毒软件主要使用以下3种技术:

1)基于文件扫描的反病毒技术

2)基本内存扫描的反病毒技术

3)基于行为监控的反病毒技术

2、黑客主要使用的免杀手段:

  1)修改特征码

  2)添加花指令

  3)程序加密(加壳)

6.6.1 msfvenom提供的免杀方法

步骤一:生成一个普通的payload

步骤二  :到安装了火绒杀毒软件的虚拟机下载攻击载荷。

(下载被控端,火绒杀毒软件是否弹出警告?)

 

步骤三:生成一个免杀的payload

1.查看msfvenom中可用的编码方式

2、使用评级为low的编码方式/x86/nonalpha生成一个免杀的payload

(执行2次,2次生成的Shellcode相同吗?)相同

 

3、使用评级为excellent的编码方式生成一个免杀的payload

(1)执行第1次(采用默认的1次编码):

(2)执行第2次(采用默认的1次编码):

(结果:执行2次,2次生成的Shellcode相同吗?)不同

(3)执行第3次(使用多次编码、多重编码):

(上述输入命令、结果截图并进行必要说明)

 步骤四:到安装了火绒杀毒软件的虚拟机下载攻击载荷。

(下载被控端,火绒杀毒软件是否弹出警告?)

步骤五:对上述生成的免杀payload加壳

1、对payload02.exe加壳

2、将payload02.exe复制为payload03exe

 

步骤六:到安装了火绒杀毒软件的虚拟机下载攻击载荷。

(下载被控端,火绒杀毒软件是否弹出警告?)

步骤七:测试payload.exepayload02.exepayload03.exe能不能正常连接到主控端

1、启动metasploit,进入metasploit(msf)的控制台。

2、使用handler模块,然后配置参数,发起攻击。

(1)使用handler模块

(2)设置攻击载荷为windows/meterpreter/reverse_tcp

(3)设置lhost为kali的IP

(4)设置lpost为5000

(5)发起攻击

 

(6)目标靶机分别运行payload02.exe和payload03.exe后,kali是否建立会话?

(上述输入命令、结果截图并进行必要说明)

6.6.2 PowerSploit提供的免杀方法

步骤一:在kali中启动PowerSploit

方法一:菜单

方法二:命令行

步骤二:将PowerSploit目录当作一个网站发布

 步骤三:在靶机(或其它虚拟机)中访问PowerSploit

在地址栏输入kali的IP

是否能打开由python启动的http服务?

步骤四:PowerSploit功能一:检测被控端的特征码(使用AntivirusBypass

方法:将程序拆分成n个部分,分别使用杀毒软件对这n个文件进行检查;找出报毒部分反复执行拆分操作,直到发现特征码所在位置。

1、启动PowerSploit的方法:开始/搜索程序和文件(输入:PowerShell,选择Windows PowerShell)

2、下载脚本文件Find-AVSignature.psl:

输入命令:

注:需要在括号中输入脚本所在目录!

3、使用脚本文件Find-AVSignature.psl查找攻击载荷的特征码

(1)使用脚本文件Find-AVSignature.psl将测试文件(位于桌面的payload.exe)分解成多个小文件,保存到桌面的tmp文件夹中:

注:先退出火绒!

结果:生成几个小文件。

(2)选中所有文件,使用火绒进行杀毒,找到报毒的文件是哪些?

(3)对报毒的文件重复上述分解、查毒过程,直到找到特征码所在的位置。

注:每深入一次分解,分解小文件的大小要逐级降低,如改为:-interval 1000、-interval 100。

 

步骤五:PowerSploit功能二:实现将DLL注入进程(使用CodeExecution

提供了4个脚本:

Invoke-DllInjection.psl:用于将DLL文件注入到一个进程。

Invoke-ReflectivePEInjection.psl

Invoke-Shellcode.psl

Invoke-WmiCommand.psl。

例:生成一个DLL类型的反向被控端,注入进程。

1、生成一个DLL类型的反向被控端

(1)查看可用于windows系统的dll类型的反向控制攻击载荷

由于目标靶机是64位系统,所以需要使用64位的攻击载荷来生成dll。

 

(2)生成dll文件payload01.dll

2、生成对应的主控端

(1)启动metasploit,进入metasploit(msf)的控制台。

(2)使用handler模块,然后配置参数。

I:使用handler模块

II:设置攻击载荷为windows/x64/meterpreter/reverse_tcp

III:设置lhost为kali的IP

IV:设置lpost为5000

V:发起攻击(等待目标靶机64位win7上线)

3、在64位win7系统中下载payload01.dll

(1)在64位win7中下载脚本Invoke-DllInjection.ps1

(2)下载payload01.dll到桌面。

注:先退出火绒,再下载。否则会被火绒清除。

下载是否成功?

4、将payload01.dll注入到进程中

(1)调出进程编号选项

(2)注入到“记事本”进程中

I:启动记事本,看到记事本进程及其PID是多少?

II:注入进程:

完成注入!

5、实现远程控制

(1)kali中是否建立会话? 

(2)执行一些命令:查看当前进程号、用户id、当前目录、列现当前目录下所有文件等。

注意:程序被注入后,可能会出现工作异常的情况,所以不要注入到系统进程里,否则会引起程序崩溃。记事本是否已经崩溃?会话还在吗?

 (3)靶机中查看到这个kali建立的会话进程

6、在靶机中结束kali建立的会话进程,kali打开的会话是否关闭?

 (1)在靶机中结束kali建立的会话进程

(2)Kali中打开的会话是否关闭?

7、这次生成的是64位的攻击载荷,对64位的进程有效,那么对32位的进程有否有效?

请尝试注入32位的进程!

8、注入到资源管理器。

(1)查看资源管理器的进程PID号

(2)执行注入命令

查看到kali是否建立会话?

(3)查看到64位win7系统的资源管理器是否崩溃?

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

2021级计算机网络技术2班梁嘉敏

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

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

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

打赏作者

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

抵扣说明:

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

余额充值