MCPcopy Create free account
hub / github.com/secdev/scapy / SMB_DCERPC_Server

Class SMB_DCERPC_Server

scapy/layers/smbserver.py:1646–1739  ·  view source on GitHub ↗

DCE/RPC server than handles the minimum RPCs for SMB to work:

Source from the content-addressed store, hash-verified

1644
1645
1646class SMB_DCERPC_Server(DCERPC_Server):
1647 """
1648 DCE/RPC server than handles the minimum RPCs for SMB to work:
1649 """
1650
1651 def __init__(self, *args, **kwargs):
1652 self.shares = kwargs.pop("shares")
1653 super(SMB_DCERPC_Server, self).__init__(*args, **kwargs)
1654
1655 @DCERPC_Server.answer(NetrShareEnum_Request)
1656 def netr_share_enum(self, req):
1657 """
1658 NetrShareEnum [MS-SRVS]
1659 "retrieves information about each shared resource on a server."
1660 """
1661 nbEntries = len(self.shares)
1662 return NetrShareEnum_Response(
1663 InfoStruct=LPSHARE_ENUM_STRUCT(
1664 Level=1,
1665 ShareInfo=NDRUnion(
1666 tag=1,
1667 value=SHARE_INFO_1_CONTAINER(
1668 Buffer=[
1669 # Add shares
1670 LPSHARE_INFO_1(
1671 shi1_netname=x.name,
1672 shi1_type=x.type,
1673 shi1_remark=x.remark,
1674 )
1675 for x in self.shares
1676 ],
1677 EntriesRead=nbEntries,
1678 ),
1679 ),
1680 ),
1681 TotalEntries=nbEntries,
1682 ndr64=self.ndr64,
1683 )
1684
1685 @DCERPC_Server.answer(NetrWkstaGetInfo_Request)
1686 def netr_wksta_getinfo(self, req):
1687 """
1688 NetrWkstaGetInfo [MS-SRVS]
1689 "returns information about the configuration of a workstation."
1690 """
1691 return NetrWkstaGetInfo_Response(
1692 WkstaInfo=NDRUnion(
1693 tag=100,
1694 value=LPWKSTA_INFO_100(
1695 wki100_platform_id=500, # NT
1696 wki100_ver_major=5,
1697 ),
1698 ),
1699 ndr64=self.ndr64,
1700 )
1701
1702 @DCERPC_Server.answer(NetrServerGetInfo_Request)
1703 def netr_server_getinfo(self, req):

Callers 1

__init__Method · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…