mirror of
https://github.com/rapid7/metasploit-payloads
synced 2025-04-06 01:16:37 +02:00
Add file and project changes
This commit is contained in:
parent
85dc7cc96e
commit
87dae3d449
c/meterpreter
91
c/meterpreter/source/extensions/stdapi/server/net/resolve.c
Normal file
91
c/meterpreter/source/extensions/stdapi/server/net/resolve.c
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
#include "precomp.h"
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include <ws2tcpip.h>
|
||||||
|
#include <winsock2.h>
|
||||||
|
#else
|
||||||
|
#include <netdb.h>
|
||||||
|
#include <arpa/inet.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
DWORD resolve_host(LPCTSTR hostname, char* addr, u_short* addr_type, u_short* addr_length)
|
||||||
|
{
|
||||||
|
struct hostent *he;
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
WSADATA data;
|
||||||
|
if (WSAStartup (MAKEWORD(1, 1), &data) != 0)
|
||||||
|
{
|
||||||
|
dprintf("Could not initialise Winsock.\n", stderr);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
he = gethostbyname (hostname);
|
||||||
|
if (he == NULL)
|
||||||
|
{
|
||||||
|
return h_errno;
|
||||||
|
}
|
||||||
|
|
||||||
|
for(i = 0; i < he->h_length; i++)
|
||||||
|
{
|
||||||
|
memcpy(addr+i, &(he->h_addr_list[0][i]), 1);
|
||||||
|
}
|
||||||
|
*addr_type = he->h_addrtype;
|
||||||
|
*addr_length = he->h_length;
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
WSACleanup ();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return h_errno;
|
||||||
|
}
|
||||||
|
|
||||||
|
DWORD request_resolve_host(Remote *remote, Packet *packet)
|
||||||
|
{
|
||||||
|
Packet *response = packet_create_response(packet);
|
||||||
|
LPCTSTR hostname = NULL;
|
||||||
|
char addr[16];
|
||||||
|
u_short addr_type;
|
||||||
|
u_short addr_length;
|
||||||
|
DWORD result = NULL;
|
||||||
|
|
||||||
|
hostname = packet_get_tlv_value_string(packet, TLV_TYPE_HOST_NAME);
|
||||||
|
|
||||||
|
if (!hostname)
|
||||||
|
result = ERROR_INVALID_PARAMETER;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result = resolve_host(hostname, addr, &addr_type, &addr_length);
|
||||||
|
packet_add_tlv_raw(response, TLV_TYPE_IP, addr, addr_length);
|
||||||
|
packet_add_tlv_uint(response, TLV_TYPE_ADDR_TYPE, addr_type);
|
||||||
|
}
|
||||||
|
|
||||||
|
packet_transmit_response(result, remote, response);
|
||||||
|
return ERROR_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
DWORD request_resolve_hosts(Remote *remote, Packet *packet)
|
||||||
|
{
|
||||||
|
Packet *response = packet_create_response(packet);
|
||||||
|
Tlv hostname = {0};
|
||||||
|
DWORD result = NULL;
|
||||||
|
int index = 0;
|
||||||
|
|
||||||
|
while( packet_enum_tlv( packet, index++, TLV_TYPE_HOST_NAME, &hostname ) == ERROR_SUCCESS )
|
||||||
|
{
|
||||||
|
char addr[16] = {0};
|
||||||
|
u_short addr_type = 0;
|
||||||
|
u_short addr_length = 0;
|
||||||
|
|
||||||
|
resolve_host((LPCTSTR)hostname.buffer, addr, &addr_type, &addr_length);
|
||||||
|
|
||||||
|
packet_add_tlv_raw(response, TLV_TYPE_IP, addr, addr_length);
|
||||||
|
packet_add_tlv_uint(response, TLV_TYPE_ADDR_TYPE, addr_type);
|
||||||
|
}
|
||||||
|
|
||||||
|
packet_transmit_response(result, remote, response);
|
||||||
|
return ERROR_SUCCESS;
|
||||||
|
}
|
@ -311,6 +311,7 @@
|
|||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\source\extensions\stdapi\server\net\config\arp.c" />
|
<ClCompile Include="..\..\source\extensions\stdapi\server\net\config\arp.c" />
|
||||||
<ClCompile Include="..\..\source\extensions\stdapi\server\net\config\netstat.c" />
|
<ClCompile Include="..\..\source\extensions\stdapi\server\net\config\netstat.c" />
|
||||||
|
<ClCompile Include="..\..\source\extensions\stdapi\server\net\resolve.c" />
|
||||||
<ClCompile Include="..\..\source\extensions\stdapi\server\stdapi.c">
|
<ClCompile Include="..\..\source\extensions\stdapi\server\stdapi.c">
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
@ -622,4 +623,4 @@
|
|||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.targets" />
|
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.targets" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
</Project>
|
</Project>
|
Loading…
x
Reference in New Issue
Block a user