|
楼主 |
发表于 2008-10-28 17:52:48
|
显示全部楼层
|阅读模式
来自 湖南省邵阳市
先说注册表。很多命令行下访问注册表的工具都是交互式的,溢出产生的shell一般不能再次重定向输入/输出流,所以无法使用。
好在系统自带的regedit.exe足够用了。
1,读取注册表
先将想查询的注册表项导出,再用type查看,比如:
C:\\>regedit /e 1.reg \"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server\\WinStations\\RDP-Tcp\"
C:\\>type 1.reg | find \"PortNumber\"
\"PortNumber\"=dword:00***00d3d
C:\\>del 1.reg
所以终端服务的端口是3389(十六进制d3d)
2,修改/删除注册表项
先echo一个reg文件,然后导入,比如:
echo Windows Registry Editor Version 5.00 >1.reg
echo. >>1.reg
echo [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\TelnetServer\\1.0] >>1.reg
echo \"TelnetPort\"=dword:000****0913 >>1.reg
echo \"NTLM\"=dword:000****0001 >>1.reg
echo. >>1.reg
regedit /s 1.reg
将telnet服务端口改为2323(十六进制913),NTLM认证方式为1。
要删除一个项,在名字前面加减号,比如:
[-HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Serv-U]
要删除一个值,在等号后面用减号,比如:
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run]
\"KAVRun\"=-
3,用inf文件访问注册表
上面对注册表的三个操作,也可以用下面这个inf文件来实现:
[Version]
Signature=\"$WINDOWS NT$\"
[DefaultInstall]
AddReg=My_AddReg_Name
DelReg=My_DelReg_Name
[My_AddReg_Name]
HKLM,SOFTWARE\\Microsoft\\TelnetServer\\1.0,TelnetPort,0x000****0001,2323
HKLM,SOFTWARE\\Microsoft\\TelnetServer\\1.0,NTLM,0x000****0001,1
[My_DelReg_Name]
HKLM,SYSTEM\\CurrentControlSet\\Services\\Serv-U
HKLM,SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run,KAVRun
将它写入c:\\path\\reg.inf然后用下面这个命令“安装”:
rundll32.exe setupapi,InstallHinfSection DefaultInstall 128 c:\\path\\reg.inf
几点说明:
1,[Version]和[DefaultInstall]是必须的,AddReg和DelReg至少要有一个。My_AddReg_Name和My_DelReg_Name可以自定义。
0x000****0001表示REG_DWORD数据类型,0x000****0000或省略该项(保留逗号)表示REG_SZ(字符串)。0x000****0000表示REG_EXPAND_SZ。
2323也可以用0x913代替。
关于inf文件的详细信息,可以参考DDK帮助文档。
2,InstallHinfSection是大小写敏感的。它和setupapi之间只有一个逗号,没有空格。
128表示给定路径,该参数其他取值及含义参见MSDN。
特别注意,最后一个参数,必须是inf文件的全路径,不要用相对路径。
3,inf文件中的项目都是大小写不敏感的。 |
|