
首先,如何防止溢出攻击
1. 尝试尽可能完成系统的漏洞修补程序. 最好使用Microsoft Windows Server系列之类的系统.
打开自动更新服务,然后服务器自动连接到Microsoft Update网站以在您指定的特定时间段内进行修补
更新. 如果出于安全原因您的服务器禁止连接到外部网络,则可以在内部网络上使用Microsoft WSUS服务
升级.
2. 停止所有不需要的系统服务和应用程序,并以最大容量降低服务器的攻击系数. 例如,前一阵子的MSDTC
溢出导致许多服务器挂断. 实际上,如果WED服务器根本不使用MSDTC服务,则可以使用MSDTC服务
确保停止,以免MSDTC溢出对您的服务器造成任何威胁.
3. 启用TCP / IP端口过滤,并且仅打开常用的TCP端口,例如21、80、25、110、3389等;如果安全要求级别更高
您可以关闭UDP端口. 当然,如果该缺陷导致不方便连接到服务器上的外部,建议在此处使用它
IPSec密封UDP. 在协议筛选中,“仅允许” TCP协议(协议号: 6),UDP协议(协议号: 17)和RDP协议(协议
谈判号码为: 27)必须使用协议;其他无用的则无法打开.

4. 启用IPSec策略: 对服务器的连接执行安全认证,并为服务器添加双重保险. 如③中所述,这里可以密封
一些危险的最终产品,例如: 135 145 139 445和UDP外部连接等,以及用于只读的加密和仅具有信任关系的IP
或通过网络进行通信等. (注意: 实际上,反反弹木马使用IPSec只是禁止外部访问UDP或不常见的TCP端口
是的,这里没有有关如何应用IPSec的更多信息,您可以转到服务器讨论搜索“ IPSec”一定程度上能防范缓冲区溢出攻击的措施有哪些,关于IPSec的信息将超过N.
应用程序信息..)
5. 删除,移动,重命名或使用访问控制列表(ACL)来控制关键系统文件,命令和文件
剪辑:
(1). 黑客在使外壳溢出后通常使用诸如net.exe net1.exe ipconfig.exe user.exe query.exe之类的
regedit.exe regsvr32.exe达到进一步控制服务器的目的,例如: 添加帐户,克隆管理员等;在这里你可以
删除或重命名这些命令程序. (注意: 删除和重命名时,请停止文件复制服务(FRS)或更改%windir%\
删除或重命名system32 \ dllcache \下的相应文件. )
(2). 或者,您可以将这些.exe文件移动到指定的文件夹中,以便管理员以后使用.

(3). 访问控制列表中的ACLS控件: 找到%windir%\ system32并找到cmd.exe,cmd32.exe net.exe net1.exe
ipconfig.exe tftp.exe ftp.exe user.exe reg.exe regedit.exe regedt32.exe regsvr32.exe这些黑人
客户使用的文件,定义在“属性”→“安全性”中访问它们的ACL用户,例如仅向管理员授予权限
访问,如果您需要防止某些溢出攻击以及成功溢出后对这些文件的非法使用,则只需将系统用户置于
访问权限在ACL中被拒绝.
(4). 如果您认为在GUI下太麻烦了,还可以使用系统命令CACLS.EXE编辑这些.exe文件的ACL
然后修改或将其写为.bat批处理文件,以执行和修改这些命令. (对于特定用户,请参阅
cacls /?帮忙执行,因为这里有太多命令,我不会一一列出,并用批处理代码编写!!
(5). 从整体安全的角度来看,还必须对C / D / E / F等磁盘进行安全ACLS设置,尤其是win2k
对于Winnt,Winnt \ System,文档和设置以及其他文件夹.
防止进一步入侵
6. 修改注册表以禁用命令解释器: (如果您认为⑤的方法太麻烦一定程度上能防范缓冲区溢出攻击的措施有哪些,则可以一劳永逸地尝试以下操作

一种禁止CMD操作的简便方法. 通过修改注册表,可以禁止用户使用命令解释器(CMD.exe)和运行批处理文件
(. bat文件). 特定方法: 创建一个新的双字节(REG_DWORD)并执行HKEY_CURRENT_USER\SoftwarePies\
Microsoft \ Windows \ System \ DisableCMD,将其值修改为1,将无法运行命令解释器或批处理文件. 维修
如果将值更改为2,将仅禁止命令解释器的操作,否则,如果将值更改为0,则将打开CMS命令解释器. 如果您的手工太麻了
如果您很烦,请将以下代码另存为* .reg文件并导入.
Windows注册表编辑器5.00版
[HKEY_CURRENT_USER\SoftwarePies\Microsoft\Windows\System]
“ DisableCMD” = dword: 00000001
7. 降级某些以“系统”权限运行的系统服务. (例如: Serv-U,Imail,IIS,Php,Mssql,
以系统权限运行的Mysql和其他系列服务或应用程序被其他管理员成员或什至用户运行权限所取代,
这会更安全...但是前提是您需要更多地了解这些基本操作状态,调用API等.
实际上,除了上述几点以外,还有N种防止溢出攻击的方法,例如溢出: 使用组策略

限制,编写保护筛选器程序以通过DLL将窗口加载到相关的SHell和动态链接程序中. 当然,自己写吧
用于验证和加密的代码需要相关且深入的Win32编程基础以及对Shellcode的更多研究;因为本文仅供讨论
在简单的解决方案上,其他方法不在此处详述.
第二,如何防止溢出并获取Shell后进一步入侵系统
1. 在1中完成上述工作之后,基本上可以防止眼睛黑客在溢出后获取shell;因为即使溢出溢出到
很有趣,但是在调用CMDSHELL以及进行外部连接时会卡住. (为什么,因为: 1.溢出后,该程序将无法再调用CMDSHLL
系统已被禁止访问CMD.exe. 2.溢出后,在反弹期间将无法再连接到外部IP. 所以基本上
用系统权限反弹外壳会更加困难...)
2. 当然,世界上没有绝对的安全性. 假设入侵者在获得用户的外壳后做了什么?普通入侵者
获取外壳程序后,您将使用系统命令添加一个帐户,例如通过tftp,ftp,vbs等传输文件以实现进度
服务器的一步控制. 在此,命令受上述方法限制. 入侵者无法通过tftp或ftp传输文件
,但它们仍然可以通过回显来写入批处理,可以使用批处理通过BAT / VBS / VBA等脚本从WEB下载文件,以及修改其他文件
潜在的损坏,例如磁盘文件. 因此,用户需要限制echo命令以及在其他磁盘系统上写入和修改文件的权限.
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-239174-1.html
卧槽amber变帅好多
其实还有一个更好的解决方案