存档

‘技术文章’ 分类的存档

WordPress < = 2.8.3 Remote admin reset password

2009年8月12日 没有评论 92 views

可以直接重置管理员的密码,但是无法获得重置后的密码,因为重置后的密码是发到管理员信箱的,除非你把管理员的信箱也拿到。WordPress 的 trac 上也已经发了修复的信息Changeset [11797] - Changeset [11804] 。在用 WordPress 的同学来这里下载 wp-login.php 覆盖一下吧。

=============================================
- Release date: August 10th, 2009
- Discovered by: Laurent Gaffié
- Severity: Medium
=============================================

I. VULNERABILITY
-------------------------
WordPress <= 2.8.3 Remote admin reset password
阅读全文...

分类: 技术文章 标签:

很不错的openssh后门

2009年8月11日 没有评论 250 views

试用了几个openssh backdoor,这个是用户体验最好的一个,好在哪自己看看、用用就知道了。唯一不足的地方是他只能用在3.6.1p2里,解决这个问题很简单,把 version.h改改再编译就是了。覆盖文件之后记得执行/usr/sbin/sshd -t测试并修正配置文件,直到没有提示为止。分享之。
阅读全文...

分类: 技术文章 标签: ,

简单的病毒扫描引擎

2009年8月11日 没有评论 124 views

void FindVirusFirst(CMyDlg *pDlg,char *FileName,char *FilePath)
{
char AVPath[256];
CString TempName;
char buf[10]={0};
char Temp[512];
char troname[32],tzm[32];
int offaddr;

GetCurrentDirectory(MAX_PATH,AVPath);
strcat(AVPath,"\\av.db");

ifstream in(AVPath,ios::in);
for(int i=0;i<256;i++) { in>>Temp;
if(Temp==NULL||strlen(Temp)==0)
break;
DecryptData((unsigned char*)Temp,strlen(Temp),12);
TempName=Temp;

offaddr=atoi(TempName.Left(TempName.Find("|")));

TempName.Delete(0,TempName.Find("|")+1);

strcpy(tzm,TempName.Left(TempName.Find("|")));
TempName.Delete(0,TempName.Find("|")+1);

strcpy(troname,TempName);

HANDLE hfile = CreateFile(FilePath,GENERIC_READ,0,NULL,OPEN_ALWAYS,0,NULL);
SetFilePointer(hfile,offaddr,0,FILE_BEGIN);
DWORD readsize;
ReadFile(hfile,buf,10,&readsize,NULL);
if(Search(buf,tzm)>=0)
{
int n=pDlg->m_trojan.GetItemCount();
pDlg->m_trojan.InsertItem(n,troname);
pDlg->m_trojan.SetItemText(n,1,"病毒/木马");
pDlg->m_trojan.SetItemText(n,2,"删除");
pDlg->m_trojan.SetItemText(n,3,FilePath);
pDlg->m_trojan.SetItemText(n,4,FileName);
CloseHandle(hfile);
break;
}

Temp[0]='\0';
CloseHandle(hfile);
}
in.close();
}

void ScanFile(LPVOID sDlg,char *FilePath,bool IsDeepScan)
{
CMyDlg *pDlg=(CMyDlg *)sDlg;
CFileFind file;
BOOL bContinue = file.FindFile(FilePath);
if(IsDeepScan)
{
CFileFind file;
BOOL bContinue = file.FindFile(FilePath);
while(bContinue)
{
bContinue = file.FindNextFile();
if(file.IsDots())
continue;
if(file.IsDirectory())
{
wsprintf(FilePath,"%s\\*.*",file.GetFilePath());
ScanFile(sDlg,FilePath,1);//递归子目录查杀
continue;
}
else if (file.IsSystem() || file.IsHidden())
XFindVirusFirst(pDlg,file.GetFileName().GetBuffer(0),file.GetFilePath().GetBuffer(0),1);
else
XFindVirusFirst(pDlg,file.GetFileName().GetBuffer(0),file.GetFilePath().GetBuffer(0),0);

pDlg->SetLog(file.GetFilePath().GetBuffer(0));

}
}
else
{
while(bContinue)
{
bContinue = file.FindNextFile();
if(file.IsDots())
continue;
else if (file.IsDirectory())
{
wsprintf(FilePath,"%s\\*.*",file.GetFilePath());
ScanFile(sDlg,FilePath,0);//递归子目录查杀
continue;
}
else if(file.GetLength() < 1024 ) continue; FindVirusFirst(pDlg,file.GetFileName().GetBuffer(0),file.GetFilePath().GetBuffer(0)); pDlg->SetLog(file.GetFilePath().GetBuffer(0));
}
}
}

分类: 技术文章 标签:

EXE自删除代码

2009年8月10日 没有评论 241 views

找了一下程序自删除代码,真是众说纷纭啊,有远程线程注入的,批处理删除的,还有WINEXEC执行CMD删除的,都不是很好用,我在XP下面执行报错了,发现一个很好用的,放出来共享:

BOOL SelfDelete()
{
    TCHAR szFile[MAX_PATH], szCmd[MAX_PATH];
   
    if((GetModuleFileName(0,szFile,MAX_PATH)!=0) &&
    
     (GetShortPathName(szFile,szFile,MAX_PATH)!=0))
    
    {
    
     lstrcpy(szCmd,"/c del ");
    
     lstrcat(szCmd,szFile);
    
     lstrcat(szCmd," >> NUL");
    
    
    
     if((GetEnvironmentVariable("ComSpec",szFile,MAX_PATH)!=0) &&
     
      ((INT)ShellExecute(0,0,szFile,szCmd,0,SW_HIDE)>32))
     
      return TRUE;
    
    }
   
    return FALSE;
   
}

============================

加入到程序末尾调用就可以了,自己删除,润物细无声……

分类: 技术文章 标签:

从内存中加载并启动一个exe(C++版)

2009年8月7日 没有评论 436 views

原理:

1. 把你的程序读要内存

2. 以 CREATE_SUSPENDED模式CreateProcess打开svchost.exe

3. 修改svchost.exe页面的属性,然后把要运行的那个程序的内容拷贝到svchost.exe页面

4. 然后再运行 实质想当于是 披着/svchost.exe进程的相关信息/这张皮,而皮里面的肉都被改了

原文来自哪里忘记了,。呵呵

阅读全文...

分类: 技术文章 标签:

机器狗EXE源码发布

2009年8月7日 没有评论 94 views

来源:WinShell
源码危害比较大.提供出来只是给大家学习和研究之用.切勿用来做非法勾当..否则后果自负!
机器狗的生前身后,曾经有很多人说有穿透还原卡、冰点的病毒,但是在各个论坛都没有样本证据,直到2007年8月29日终于有人在社区里贴出了一个样本。这个病毒没有名字,图标是SONY的机器狗阿宝,就像前辈熊猫烧香一样,大家给它起了个名字叫机器狗。

工作原理:

机器狗本身会释放出一个pcihdd.sys到drivers目录,pcihdd.sys是一个底层硬盘驱动,提高自己的优先级接替还原卡或冰点的硬盘驱动,然后访问指定的网址,这些网址只要连接就会自动下载大量的病毒与恶意插件。然后修改接管启动管理器,最可怕的是,会通过内部网络传播,一台中招,能引发整个网络的电脑全部自动重启。
重点是,一个病毒,如果以hook方式入侵系统,接替硬盘驱动的方式效率太低了,而且毁坏还原的方式这也不是最好的,还有就是这种技术应用范围非常小,只有还原技术厂商范围内有传播,在这方面国际上也只有中国在用,所以,很可能就是行业内杠。
对于网吧而言,机器狗就是剑指网吧而来,针对所有的还原产品设计,可预见其破坏力很快会超过熊猫烧香。好在现在很多免疫补丁都以出现,发稿之日起,各大杀毒软件都以能查杀。

阅读全文...

分类: 技术文章 标签: ,

一个将自己代码插入IE进程的例子(VC代码)

2009年8月6日 没有评论 153 views

看着别人的程序想插那个进程就插那个,我也想试下,于是从网上找了几段代码,最容易理解的是下面的代码,不过原来的代码编译后在VC IDE下测试正常,但离开IDE就出错,经过测试和程序启动运行知道是因为编译后,IE尚未启动完成,程序本身已经退出是出错的原因,因些我改进了一下, 贴在下面:
编译须 ntdll.lib文件(可以从http://lengie.ik8.com/test/ntdll_lib_dl.htm下载,里有Win2K,XP 32B,XP 64B三个版本,对应拷到编译器的LIB文件夹里就可以了),可将下面代码保存为 .c 文件然后编译(保存为 .cpp 文件可能会出错)

阅读全文...

分类: 技术文章 标签:

Serv-U FTP Server v8 本地提权

2009年8月5日 没有评论 202 views

作者:空虚浪子心

发布日期:2009-08-05
更新日期:2009-08-05

受影响系统:
serv-u8

不受影响系统:
其他版本不受影响

描述:
看cnbeta发现su出8这个版本了。
想想以前写过一个7的本地提权。
不知道8有什么安全方面的更改。
下载来研究下,发现居然还是可以提权的,只是su7的那个不能直接用,稍微修改了下执行的流程。

Su8的管理平台是http的,继承了su7的方式。
抓包,分析,发现了以下路程是可以利用的。
1, 管理员从管理控制台打开web页面时,是不需要验证密码的。
2, 管理员如果用某URL打开web页面时,虽然需要输入密码,但是无论输入什么,都可以进入。“/?Session=39893&Language=zh,CN&LocalAdmin=1”
3, 管理员可以添加用户有两种,一种是全局用户,一种是某个域下的用户。而权限设置也是两种,一种是全局,一种是针对用户。
4, 管理员添加了用户的这个包和设置权限这个包,是分开的。
所以,我可以抓包然后转换成php的socket连接post出去。
最后在用经典的ftp登陆,exec命令。达到提权。

前面su7已经说了很多,这里简单的说下好了。
.....登陆什么的。
1,获取ID。
2,给这个id添加权限。
3,给这个id赋予用户名,密码,目录,权限。
4,登陆后执行系统命令。

这段代码是不能直接当工具使用的。

<*来源:kxlzx(www.inbreak.net
*>

测试方法:

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

阅读全文...

分类: 技术文章 标签: ,

我是这样黑掉《黑客防线》的

2009年8月4日 没有评论 165 views

作者:小竹

草草虫:日防夜防,真没想到有人会拿黑防的站点来开刀。首先我向这位小竹大哥表示深深的敬意。的确,不是任何安全站点都是固若金汤的。网上猪蛋儿不就这样证明给我们看了吗?注入中作者并没用到什么高级的技巧,却是一个思路“精妙”吸引着我们。脚本小子敢这样向大家说:一个黑客能力的高低不在乎其黑了多少个站点,能是其思路是如何完美的发挥才是重要的。

  今天到黑防站上去看看文章,可能出于“职业”习惯,看到?classid=1之类的东东就不由自主的想加点什么参数进去。
当在页面http://www.hacker.com.cn/article/in...ssid=1加上①and 1=1和②and 1=2,都提示“处理 URL 时服务器上出错。请和系统管理员联络”,看起来象已经过滤了非法提交,IIS也关闭了错误提示,再加上一个③单引号’的时候,也出同样的错误提示,然而明显与前两个错误提示不同,因为前者显示了黑客防线的Logo才提示错误,后者则是一个空白的错误提示页。
这可是我从来没碰到过的特殊情况,到底能不能注入呢?
换个角度,从程序员的思路是怎么写这段程序的。首先,如果是用cint之类函数,那三种测试方法错误提示应该是完全一样的;如果没过滤的话,①②的结果应该是不一样的。排除了几种情况,最后觉得极可能是部分语句过滤,出现这种情况很可能是cint语句不小心放到SQL语句的后面,在SQL语句通过后,后面的语句报错。
虽然还不很确定实际的程序是怎么写的,但可以确定,这确实是一个注入点!
根据我写的《SQL注入漏洞全接触》,下一步就是判断数据库类型,因为错误提示都被屏蔽,只能**系统表测试了,输入:
http://www.hacker.com.cn/article/index.asp?classid=1 and (Select count(1) from sysobjects)>=0
提示出错,没出现Logo,说明是语句本身有错,极可能是表sysobjects不存在,也就是说数据库是Access,再拿一个Access应有的系统表试试(msysobjects在这个时候派不上用场,因为在Web下没有权限读取,SQL语句同样不能通过,所以,必须换个有权限的表如 MSysAccessObjects),果然,出现了黑防的Logo,证实数据库确实是Access。
接下来的猜解就比较简单了,用 (count(1) from admin)>=0测试出admin表存在,表中有username、password字段。本来以为下面就是用最普通的Ascii解码法猜解记录,小Case,没想到,一开始猜解,才发现这是最难啃的一块骨头:传统的Ascii对比中,无论条件是否成立,语句都是可以正确执行的,它是利用ASP 的出错而非SQL语句的出错来发现错误的,在这个页面,不管你成不成立,都是显示一个Logo然后报错,根据无法做出判断。
冥思苦想了半个钟头,终于想出一种方法,让SQL语句有条件的报错,先看看语句:
http://www.hacker.com.cn/article/index.asp?classid=1 and
(select top 1 iif(asc(mid(username,1,1))>96,1,username) from admin)>0
写出这个语句的时候,连我自己都好崇拜我自己,哈哈,别吐,解释一下,asc(mid(username,1,1))这个都看得懂,取username第一位的ASCII码,大于96的话,select出数字1,小于等于96的话,select输出字符串username,然后,拿select出的值与0比较。
1与0都是数字型,当ASCII码大于96的时候,SQL语句不会出错;username则是字符型,当ASCII码小于等于96的时候,SQL语句会出错。所以,两种情况的出错提示是不同的,我们可以根据出错提示判断语句是否成立,从而逐步缩小每一位字符的范围,得出username 的值。
于是,根据上面所说的方法,得出username的值为:chr(98)+ chr(114)+ chr(105)+ chr(103)+ chr(104)+ chr(116)=bright,password的值为chr(109)+ chr(105)+ chr(110)+ chr(103)+ chr(116)+ chr(105) + chr(97)+ chr(110)=mingtian,解码完成。
也许有人会说,黑防办得起安全杂志,为什么网站还有漏洞?其实,现在各种漏洞层出不穷,稍不留心就会给人找到漏洞。每天都有很多的网站被入侵,说句实话,我的网站也给人入侵过,网站被黑这种事在前几年看来是无比风光,是大网站才享有的“待遇”,而现在,给人黑却成了家丑不可外扬。在发表这篇文章之前,我问过黑防的负责人,不怕对杂志有负面影响吗?他回了一句“有则改之”,我相信,凭着这种实事求是的精神,黑防肯定会成员国内最有影响力的安全杂志。

分类: 技术文章 标签:

如何让主域名指向Public_html下的子目录

2009年8月4日 没有评论 74 views

编辑public_html目录下的.htaccess文件,加入如下语句.如果public_html下没有.htaccess文件,新建一个即可.

注意:将 yourmaindomain.com修改为你的域名,将subfolder修改为你要指向的public_html下的子目录.最后一行中的index.php修改为你的网站的主页名称.(修改粗体表示的内容,其他内容不要改动)

# .htaccess main domain to subfolder redirect
# Copy and paste the following code into the .htaccess file
# in the public_html folder of your hosting account
# make the changes to the file according to the instructions.

RewriteEngine on
# Change yourdomain.com to be your main domain.

RewriteCond %{HTTP_HOST} ^(www.)?yourmaindomain.com$

# Change ’subfolder’ to be the folder you will use for your main domain.

RewriteCond %{REQUEST_URI} !^/subfolder/

# Don’t change this line.

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

# Change ’subfolder’ to be the folder you will use for your main domain.

RewriteRule ^(.*)$ /subfolder/$1

# Change yourdomain.com to be your main domain again.

# Change ’subfolder’ to be the folder you will use for your main domain

# followed by / then the main file for your site, index.php, index.html, etc.

RewriteCond %{HTTP_HOST} ^(www.)?yourmaindomain.com$

RewriteRule ^(/)?$ subfolder/index.php [L]

分类: 技术文章 标签:

Thinkpad T400使用BT4无法进入StartX的解决方法

2009年8月3日 1 条评论 1,418 views

T400无法进入StartX的问题
原因是BT4对双显卡兼容性不好。解决办法,禁用ATI独显,使用集成显卡
进入BIOS,将Config --> Display --> Graphics Device 的选项改成 [Integrated graphics] 或 [Discrete Graphics] ,并禁用OS Detection for Switchable Graphics
F10保存设置,用BT4系统盘引导,然后你就可以看到美丽的图形界面了,BT可以支持T400内置的5100网卡,然后就可以开始研究了。

分类: 技术文章 标签: ,

高级Mysql攻击技术(翻译blackhat 2009文章)

2009年8月3日 没有评论 133 views

来源:cnbird

blog:http://blog.csdn.net/cnbird2008

1.简介(文章中的堆查询其实就是联查)
这个文章主要描述怎样再LAMP和WAMP平台上实施远程命令执行代码通过SQL注入漏洞。攻击者再Mysql平台上进行SQL注入必须处理一

些限制和约束。例如,在一个不流行的平台中进行远程命令执行漏洞的一些查询语句缺乏复杂的声明,相对其他平台来说。再最近的这

些年一些人开始仔细研究,这些人专注于利用SQL注入漏洞进行随心所欲的代码执行漏洞。然而,这些类型的攻击集中在支持堆查询

DBMS连接上。这个文档将会解释怎么使用不同的方法去完成那些不支持堆查询的DBMS连接,并且得到跟支持堆查询的DBMS相同的结果

2.描述
SQL注入漏洞是把恶意代码注入到正常的SQL查询中的一种攻击方式.SQL注入攻击允许恶意的用户去得到数据库的结构和挖掘出宝贵的

应用操作系统环境。
运行命令执行漏洞已经被证实了是最高级别的恶意用户去获得成功的SQL注入攻击行为。
Mysql是在LAMP和WAMP上最流行的数据库服务器软件套件。DBMS连接默认是不支持堆查询。这就使得一些技术去实施远程代码执行漏

洞的条件是在某些平台需要支持堆查询。

3.堆查询
堆查询是一个去定义是否数据库连接层某个时刻能运行多于一个的查询语句。每个查询用分号分隔开。
下面的就是再SQL注入攻击中的一个堆查询的例子
SELECT name FROM record WHERE id = 1; DROP table record; DROP table address--

在上面的例子中,在同一时刻这里有三个分离的查询请求。第一个查询是来自现实中应用程序的正常查询。这个查询允许进行数据库

查询,然而当堆查询默认进入Mysql-php应用,一个错误信息将会被应用程序返回,同时没有任何语句被执行。

阅读全文...

分类: 技术文章 标签: