1、pushebp
2、movcx,DatagramPort;udp端口值
3、3、单击Internet协议(TCP/IP),单击属性,单击高级,然后单击WINS选项卡。
4、retn4
5、moveax,[ebp+var_8]
6、call_NbtReadSingleParameter@16;NbtReadSingleParameter(x,x,x,x)
7、修改会立即生效,不必重新启动系统。
8、NameservicePort137/UDP
9、pushoffsetaSessionport;"SessionPort"
10、moveax,[ebp+var_8]
11、;__stdcallReadSmbDeviceInfo(KeyHandle)
12、顺便提一下,如果要关闭139端口,可以参考微软的KB299977:
13、call_NbtCreateAddressObjects@12;NbtCreateAddressObjects(x,x,x)
14、movsd
15、WindowsRegistryEditorVersion5.00
16、call_NbtOpenRegistry@12;NbtOpenRegistry(x,x,x)
17、push[ebp+var_8]
18、push[ebp+KeyHandle];Handle
19、pusheax;KeyHandle
20、1、单击开始,指向设置,然后单击和拨号连接。
21、push7F000001h
22、mov[eax+1F6h],cx
23、call_ReadParameters@8;ReadParameters(x,x)
24、pushesi
25、moveax,esi
26、popebp
27、"SessionPort"=dword:0000022b
28、push[ebp+KeyHandle]
29、push[ebp+KeyHandle]
30、callds:__imp__ZwClose@4;__declspec(dllimport)ZwClose(x)
31、push1BDh;默认值445
32、pushoffsetaParametersSmb;"Parameters\Smb"
33、moveax,[ebp+var_8]
34、movword_2BA8A,ax
35、SetDefaultPort:
36、jmpshortReturn
37、push0
38、4、单击禁用TCP/IP上的NetBIOS。
39、testesi,esi
40、ValueData:0
41、push[ebp+Handle]
42、moveax,[ebp+var_8]
43、push1
44、movcx,SessionPort;tcp端口值
45、movsd
46、movesi,offsetaSmbserver;"*SMBSERVER"
47、mov[eax+1F2h],cx
48、push[ebp+KeyHandle]
49、Type:REG_DWORD
50、2、单击您希望静态配置的本地连接,单击文件菜单中的属性。
51、NetBT服务对应的在WindowsNT4.0上对应的端口是:
52、pushoffsetaDatagramport;"DatagramPort"
53、修改这个端口有什么用处呢?
54、movSessionPort,1BDh;设置SessionPort为445
55、SessionPort139/TCP
56、movesi,eax
57、call_ReadSmbDeviceInfo@4;ReadSmbDeviceInfo(x)
58、movword_2BA88,ax
59、5、单击确定,单击确定,再次单击确定。
60、明确了流程,方法也就出来了。
61、66C786F60100008A00movwordptr[esi+1F6h],8Ah;138
62、call_NbtReadSingleParameter@16;NbtReadSingleParameter(x,x,x,x)
63、push1
64、movsd
65、然后重新启动系统。
66、66C786F40100008900movwordptr[esi+1F4h],89h;137
67、DatagramPort138/UDP
68、leaeax,[ebp+KeyHandle]
69、leaedi,[eax+1F8h]
70、movDatagramPort,1BDh;设置DatagramPort为445
71、"DatagramPort"=dword:0000022b
72、Return:
73、1、研究中有时候需要使用本机的445端口,例如做一些SMB会话劫持的试验。
74、movebp,esp
75、popesi
76、push1BDh;默认值445
77、ValueName:SmbDeviceEnabled
78、mov[eax+1F4h],di
79、然后NbtCreateAddressObjects根据这些信息,来打开端口,创建服务:
80、push[ebp+KeyHandle];int
81、66C786F20100008B00movwordptr[esi+1F2h],8Bh;139
82、KeyHandle=dwordptr8
83、movsd
84、pushoffset_NbtConfig
85、jlshortSetDefaultPort;如果键不存在则转向去设置默认值