2006年6月26日

NULL Sender 与 compurep.com.au 的退邮

Author: Hagen.GoO 转载请联系作者
MSN_contact: wantm009@hotmail.com
Keyword: NULL Sender,退邮
Quote:

朋友说他的邮件服务器给 compurep.com.au 的用户发送邮件,老是被退回,提示:

550 5.7.1 <Remote_user@compurep.com.au>... recipient denied, because MX 10 'mail.xxx.com.cn.' [2xx.6x.4x.2xx] for <Local_user@xxx.com.cn> did not accept the empty address, <>, as required by RFC 821, 1123, 2505, and 2821

于是我猜想可能是对方 AntiSPAM 校验 Mail From 而导致的问题,分析如下:

正常情况:Local_user@xxx.com.cn 发送邮件到 Remote_user@compurep.com.au 其简单会话是:
第一,xxx.com.cn 的 SMTP 连接到 compurep.com.au 的 MX 记录所指的服务器;
第二,xxx.com.cn 的 SMTP 外送 HELO/EHLO 命令,对方 SMTP 应答250;
第三,xxx.com.cn 的 SMTP 送 MAIL FROM:<Local_user@xxx.com.cn>,对方应答250;
第四,xxx.com.cn 的 SMTP 送 RCPT TO:<Remote_user@compurep.com.au>,对方给出250;
第五,xxx.com.cn 的 SMTP 送 DATA,开始发送邮件……

而当 compurep.com.au 的 SMTP 设置了 Mail From 校验以后,整个邮件发送的会话发生了细微变化,在上述的第三步中,对方的 SMTP 会另外新启用一个线程,连接到 xxx.com.cn 的 SMTP 继而校验 MAIL FROM:<Local_user@xxx.com.cn> 这条命令中包含的邮件地址是否真的存在,其完整过程简述如下:
第一,xxx.com.cn 的 SMTP 连接到 compurep.com.au 的 MX 记录所指的服务器;
第二,xxx.com.cn 的 SMTP 外送 HELO/EHLO 命令,对方 SMTP 应答250;
第三,xxx.com.cn 的 SMTP 送 MAIL FROM:<Local_user@xxx.com.cn>,对方应答250;
第四,compurep.com.au 的 SMTP 服务器新开线程,连接 xxx.com.cn MX 对应服务器;
第五,compurep.com.au 的 SMTP 服务器发送 HELO/EHLO 命令;xxx.com.cn 回应250;
第六,compurep.com.au 的 SMTP 发送 VRFY 和 EXPN 校验 Local_user 是否存在;
如果 VRFY EXPN 命令被禁,继续第七步,
如果得到250应答,校验成功,转到第九步 CASE1,
如果得到530回应,校验失败,转到第九步 CASE2,
第七,compurep.com.au 的 SMTP 发送 MAIL FROM:<> 命令,xxx.com.cn 回应250;
第八,compurep.com.au 的 SMTP 发送 RCPT TO:<Local_user@xxx.com.cn>
如果得到250应答,表示校验成功,转到第九步,执行 CASE1,
如果得到>500回应,校验失败,则转到第九步,执行 CASE2.
第九,xxx.com.cn 的 SMTP 送 RCPT TO:<Remote_user@compurep.com.au>,
CASE1:如果 Mail From 校验成功,compurep.com.au 给出250,继续第十步,
CASE2:校验失败,compurep.com.au 给出失败应答,Local_user@xxx.com.cn 收到错误信息;
第十,xxx.com.cn 的 SMTP 送 DATA,开始发送邮件……

出于安全考虑,现在 SMTP 一般都是禁用 VRFY EXPN 命令的,所以有些 AntiSPAM 中的 Mail From 策略干脆就不使用。另外也有一些 Mail From 的 AntpSPAM 策略是在第三步给出250回应前就执行。

按照 RFC 1123 的文档,某些Postmaster给出的 notification 的信息,其 Mail From 必须是空(NULL Sender)地址,即 MAIL FROM:<> 的格式。当某些 SMTP 因考虑垃圾邮件的缘故,拒绝 NULL Sender 后,便会和 RFC 1123 产生一点冲突。有些比较刻板的 MTA 其 Mail From 校验时,使用的就是 Postmaster 的 NULL Sender。

于是连接朋友 2xx.6x.4x.2xx 的 SMTP 端口,手动测试 MAIL FROM:<> 的命令,得到 “501 <> : domain string is NULL.”,证实朋友的 SMTP 确实拒绝 NULL Sender,这便和 compurep.com.au 的 Mail From 校验产生了不和谐。即在第八步时,compurep.com.au 得到501应答,预示无法校验到 Local_user@xxx.com.cn 是真实存在的,于是就产生了退邮。

朋友 SMTP 是 Trend InterScan Messaging Security Suite for SMTP ,找到趋势的官方KB,http://esupport.trendmicro.com/support/viewxml.do?ContentID=EN-121719&id=EN-121719,提示要修改 isntsmtp.ini 中的配置才能解决这个问题。

推荐一个检测隐藏进程的工具

Author: Hagen.GoO 转载请联系作者
MSN_contact:
wantm009@hotmail.com
Keyword: Process Master,hidden processes detection,隐藏进程,木马
Quote:

前几天给某系统清理病毒时,发现 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 有一个不常见的键项,手动删掉以后,马上就又新的写入。

用 Regmon 监视注册表,发现是某进程执行的写入操作,但通过 taskmgr.exe 又看不到这个进程,试着用 Prcview 和 Sysinternals Process Explorer 都还是无法看到该进程。

搜索Google,找到 http://www.backfaces.com/ 的 Process Master 号称可以查杀隐藏进程,抱着怀疑的心态,下载来试用。感觉还真不错:程序很快就用红色高亮标注出了系统上的这个隐藏进程。虽然试用版不能中止进程,但可以查出隐藏进程,对于清剿病毒,已经起了很大帮助。这个工具对 Windows 管理员检测系统后门,木马还是非常有价值的。目前官方最新版是 1.1,下载地址:http://www.backfaces.com/download/procmast.zip。

贫穷·自杀·在“路”上

每年到6、7月,是高考的日子,也是贫穷的高考家长自杀的日子。这位家长 http://edu.people.com.cn/GB/4520191.html,更是在儿子考分出来前,选择了自我结束。论坛上,有人高谈是这个农民生孩子太多导致的贫穷;也有人骂这位家长是懦弱和逃避现实的。

农民的痛,谁人能体会?他们有保险吗?有福利吗?有就业权吗?!

农民没有养老保险,养老保险对于他们还是一个陌生新鲜的词眼。他们不多生养儿女,谁来养老,谁来送终?去年年终的时候,笔者做过一个简单调查,发现浙北农村,过一趟火葬场,费用没有低于1000元的,而千元对于农民来说所占年收入的比重不会太小。火葬应该是公益事业吧,我不知道这算不算是人权之一,但死人还要被剥一层皮,这就是中国农民。不过听说最近老家有农民办了养老保险,因为他们的土地被征用了,美其名曰是“买断”。

有人建议,农村也有养老福利院,老了可以去“享福”。殊不知,农村的养老院前面还有定语——“孤寡”。只要你生了一个孩子,恐怕就失去资格了。再说,现今的农村养老院,有几个不成麻将馆的?

农民靠天吃饭,虽然他们的世界里,没有老毛人定胜天的“豪迈”,但只要天还在,政府就永远把他们列为是就业者。网易上有个文章说,中国算上农民,失业率约20%;佩服作者和编辑勇气的同时,细想算来,失业率恐怕远远不止20%,面对随时失地的危险,农民的就业权在哪里?

退一万步说:即便农村的孩子花尽血汗,上完大学,又能如何?产业化与商业化催逼下的育人体制,有多少黑洞和血色?谁能担保升达事件不会重演?

结束生命,结束贫穷。这是需要勇气的,那怕是瞬间的勇气 ,这是农民对吃人社会的无声控诉,这是穷人面对吃人社会的唯一武器。这是底层被统治者的唯一声息。

农民,被侮辱和被糟蹋的,明天你是否在“路”上?

轻松删除被锁定的DLL文件之通用方法

Author: Hagen.GoO 转载请联系作者
MSN_contact:
wantm009@hotmail.com
Keyword: 锁定DLL,中止进程
Quote:

有些不能被杀毒软件查杀的恶意 DLL 动态链接库文件,通过 RUNDLL32.EXE 或其他线程注入的方式,自动加载并锁定在当前系统。
也有一些 DLL 文件被杀毒软件认出是病毒,但由于该 DLL 被系统进程锁定,不能清除或隔离。
遇到上述情况,你可以到安全模式下,试着删除该DLL文件。但如果你不懈于进安全模式,可以试着使用下面的方法:
  1. 使用第三方工具 ListDLLs.exe -d DLLNAME 找到加载该 DLL 的进程(ProcessNAME);
  2. 在 WindowsXP 下可以使用系统自带命令 tskill ProcessNAME 杀死进程;(注意,不要添加 .exe 的后缀)
    在 Windows2K 或其他 Windows 系统,中止进程可以使用第三方 PrcView 提供的 pv.exe -kf ProcessNAME;(注意,这需要完整的进程名)
  3. Attrib.exe -r -s -h DLLNAME 去除该 DLL 文件可能有的属性;
  4. 使用 Del DLLNAME 直接删除目标 DLL 文件。
上述的操作方法,应该非常通用的,但都需要在命令行(DOS)下进行。
步骤中使用的第三方工具,官方下载是:
ListDLLs http://www.sysinternals.com/Files/ListDlls.zip
PrcView http://www.teamcti.com/pview/PrcView.zip