TL; 博士
我很确定我们的小网络已经被某种蠕虫/病毒感染了。然而,它似乎只影响我们的 Windows XP 机器。Windows 7 机器和 Linux(嗯,是的)计算机似乎不受影响。防病毒扫描未显示任何内容,但我们的域服务器已记录了数千次针对各种有效和无效用户帐户(尤其是管理员)的失败登录尝试。我怎样才能阻止这种不明蠕虫的传播?
症状
我们的一些 Windows XP 用户报告了类似的问题,但并不完全相同。它们都经历了由软件启动的随机关机/重启。在其中一台计算机上弹出一个对话框,并在系统重新启动之前进行倒计时,显然是由 NT-AUTHORITY\SYSTEM 启动的,并且与 RPC 调用有关。特别是这个对话框与详细介绍旧的 RPC 漏洞利用蠕虫的文章中描述的完全相同。
当其中两台计算机重新启动时,它们在登录提示处重新启动(它们是域计算机),但列出的用户名为“admin”,即使它们没有以管理员身份登录。
在我们运行域的 Windows Server 2003 机器上,我注意到来自不同来源的数千次登录尝试。他们尝试了所有不同的登录名,包括管理员、管理员、用户、服务器、所有者和其他人。
有些日志列出了 IP,有些则没有。在那些确实有源 IP 地址(对于失败的登录)的那些中,其中两个对应于两台经历重新启动的 Windows XP 机器。就在昨天,我注意到来自外部 IP 地址的一系列登录尝试失败。跟踪路由显示外部 IP 地址来自加拿大 ISP。我们不应该从那里建立连接(尽管我们确实有 VPN 用户)。所以我仍然不确定来自外国 IP 的登录尝试是怎么回事。
很明显,这些计算机上存在某种恶意软件,它所做的部分工作是尝试枚举域帐户的密码以获取访问权限。
到目前为止我所做的
在意识到发生了什么之后,我的第一步是确保每个人都运行最新的防病毒软件并进行扫描。在受影响的计算机中,其中一台具有过期的防病毒客户端,但另外两台是当前版本的诺顿,并且对两个系统的完整扫描都没有结果。
服务器本身定期运行最新的防病毒软件,并且没有显示任何感染。
因此,3/4 的基于 Windows NT 的计算机具有最新的防病毒软件,但它没有检测到任何东西。但是,我确信某些事情正在发生,主要是通过各种帐户的数千次登录尝试失败来证明。
我还注意到我们的主文件共享的根目录具有非常开放的权限,所以我只是将它限制为普通用户读取+执行。管理员当然拥有完全访问权限。我还将让用户更新他们的密码(强密码),我将在服务器上重命名为管理员并更改其密码。
我已经把机器从网络上取下来了,一台正在换一台新的,但我知道这些东西会通过网络传播,所以我仍然需要深入了解。
此外,服务器具有仅打开某些端口的 NAT/防火墙设置。由于我来自 Linux 背景,因此我还没有完全调查一些打开端口的 Windows 相关服务。
怎么办?
所以所有现代和最新的防病毒软件都没有检测到任何东西,但我绝对相信这些计算机有某种病毒。我基于 XP 机器的随机重启/不稳定性以及源自这些机器的数千次登录尝试。
我打算做的是备份受影响机器上的用户文件,然后重新安装 Windows 并重新格式化驱动器。我还采取了一些措施来保护可能已用于传播到其他计算机的公共文件共享。
了解所有这些后,我能做些什么来确保该蠕虫不在网络的其他地方,我又该如何阻止它传播?
我知道这是一个冗长的问题,但我在这里超出了我的深度,可以使用一些指针。
感谢您的关注!
security windows windows-server-2003 malware network-monitoring
好的,所以我第一次学习和配置 openLDAP 部分基于本教程:
http://www.rjsystems.nl/en/2100-d6-openldap-provider.php
我正在尝试添加一个示例用户,但我想我在教程中注意到了一个类型。在示例 ldif 中,作者使用了cn: Christopher
. 我认为 cn 应该是一个较短的名称,如果不完全相同,则类似于 uid。所以在我的 ldif 中,我同时设置了cn
和gn
(givenName),但是我收到了关于 givenName 的错误:
ldap_add: Object class violation (65)
additional info: attribute 'givenName' not allowed
Run Code Online (Sandbox Code Playgroud)
这是我的 ldif:
dn: cn=tarcuri,ou=groups,dc=example,dc=com
cn: jsmith
gidNumber: 20000
objectClass: top
objectClass: posixGroup
dn: uid=tarcuri,ou=people,dc=example,dc=com
uid: jsmith
uidNumber: 20000
gidNumber: 20000
objectClass: top
objectClass: person
objectClass: posixAccount
objectClass: shadowAccount
cn: jsmith
gn: John
sn: Smith
loginShell: /bin/bash
homeDirectory: /home/jsmith
userPassword: john
Run Code Online (Sandbox Code Playgroud)
我将如何修改我的 ldif 文件以正确设置“givenName”,因为它似乎person
应该能够有一个名字。sn
毕竟需要。 …
tl;dr假设有基本(但正常)的 LDAP/PAM 配置,当我尝试将现有 UNIX/LDAP 用户添加到 Samba 时,smbpasswd 为什么会失败并显示此错误消息?
我在 Debian 服务器上有一个基本但有效的 LDAP 设置,该服务器几乎没有加载密码等的帐户,并且已经创建了它们相应的 UNIX 帐户。我还有一个基本的 PAM/NSS 配置,似乎可以正常工作。
我可以通过 LDAP 登录并使用帐户。现在我想使用 Samba 配置一个简单的文件共享,并让它通过 PAM/LDAP 后端对用户进行身份验证。我现在需要使用该smbpasswd
实用程序创建 Samba 用户,但这会导致错误。
首先,我设置 LDAP 密码:
# smbpasswd -W
Run Code Online (Sandbox Code Playgroud)
然后我尝试添加一个已在 LDAP 中配置的用户:
# smbpasswd -a new_user
New SMB password:
Retype SMB password:
Failed to add entry for user new_user.
Run Code Online (Sandbox Code Playgroud)
所以我不知道为什么这个命令失败了。起初我认为这是因为我需要将 LDAP 目录中的用户设置为sambaSamAccount
s。所以我更新了用户的 LDIF 文件,如下所示:
dn: cn=new_user,ou=group,dc=example,dc=com
cn: new_user
gidNumber: 1000
objectClass: top
objectClass: posixGroup
dn: uid=new_user,ou=people,dc=example,dc=com
objectClass: top
objectClass: inetOrgPerson
objectClass: posixAccount …
Run Code Online (Sandbox Code Playgroud)